commit 8dd70e9b229b56e6da10567876d70e9a982c9903 Author: jaynus Date: Sun Jan 11 08:42:31 2015 -0800 Initial commit. main, core (not complete) and to-merge. diff --git a/TO_MERGE/ace/air_hud/$PBOPREFIX$ b/TO_MERGE/ace/air_hud/$PBOPREFIX$ new file mode 100644 index 0000000000..de3c844caa --- /dev/null +++ b/TO_MERGE/ace/air_hud/$PBOPREFIX$ @@ -0,0 +1 @@ +x\uo\Addons\sys_air_hud \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/CfgEventhandlers.hpp b/TO_MERGE/ace/air_hud/CfgEventhandlers.hpp new file mode 100644 index 0000000000..8ab0e82308 --- /dev/null +++ b/TO_MERGE/ace/air_hud/CfgEventhandlers.hpp @@ -0,0 +1,23 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; + +class Extended_GetIn_EventHandlers { + class ADDON { + init = QUOTE(call FUNC(onGetin)); + }; +}; + +class Extended_GetOut_EventHandlers { + class ADDON { + init = QUOTE(call FUNC(onGetout)); + }; +}; diff --git a/TO_MERGE/ace/air_hud/CfgUI.hpp b/TO_MERGE/ace/air_hud/CfgUI.hpp new file mode 100644 index 0000000000..2ea940757f --- /dev/null +++ b/TO_MERGE/ace/air_hud/CfgUI.hpp @@ -0,0 +1,30 @@ +class RscPicture; +class RscText; +class RscControlsGroupNoScrollbars; + +class RscInGameUI +{ + class RscUnitInfo + { + class CA_Radar: RscControlsGroupNoScrollbars + { + class controls + { + class CA_RadarBackground: RscPicture { + colorText[] = {0,0,0,0}; + text = ""; + }; + class CA_RadarIcon: RscPicture { + colorText[] = {0,0,0,0}; + }; + class CA_Heading: RscText { + colorText[] = {0,0,0,0}; + }; + }; + }; + }; +}; +class CfgInGameUI +{ + +}; \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/CfgVehicles.hpp b/TO_MERGE/ace/air_hud/CfgVehicles.hpp new file mode 100644 index 0000000000..8ae39f954b --- /dev/null +++ b/TO_MERGE/ace/air_hud/CfgVehicles.hpp @@ -0,0 +1,35 @@ +class CfgVehicles { + class AllVehicles; + + class Air: AllVehicles { + class Turrets; + }; + class Helicopter: Air + { + class Turrets: Turrets { + class MainTurret; + }; + commanderCanSee = 2+32; + gunnerCanSee = 2+32; + driverCanSee = 2+32; + + }; + class Helicopter_Base_F: Helicopter { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + }; + class Heli_Attack_01_base_F: Helicopter_Base_F { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + }; + class B_Heli_Attack_01_F: Heli_Attack_01_base_F { + driverCanEject = 1; + class Turrets: Turrets { + class MainTurret: MainTurret { + stabilizedInAxes = 4; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/CfgWeapons.hpp b/TO_MERGE/ace/air_hud/CfgWeapons.hpp new file mode 100644 index 0000000000..a396afe5d5 --- /dev/null +++ b/TO_MERGE/ace/air_hud/CfgWeapons.hpp @@ -0,0 +1,10 @@ +class CfgWeapons { + class LauncherCore; + + class RocketPods: LauncherCore { + canLock = 1; + }; + class missiles_DAGR: RocketPods { + canLock = 1; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/XEH_post_init.sqf b/TO_MERGE/ace/air_hud/XEH_post_init.sqf new file mode 100644 index 0000000000..6904ee6c47 --- /dev/null +++ b/TO_MERGE/ace/air_hud/XEH_post_init.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" +NO_DEDICATED; + diff --git a/TO_MERGE/ace/air_hud/XEH_pre_init.sqf b/TO_MERGE/ace/air_hud/XEH_pre_init.sqf new file mode 100644 index 0000000000..244906c51f --- /dev/null +++ b/TO_MERGE/ace/air_hud/XEH_pre_init.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +PREP(laserHudDesignateOn); +PREP(laserHudDesignateOff); + + +GVAR(laser) = nil; + +FUNC(getPosASL) = {visiblePositionASL (_this select 0)}; \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/config.cpp b/TO_MERGE/ace/air_hud/config.cpp new file mode 100644 index 0000000000..304cdab63a --- /dev/null +++ b/TO_MERGE/ace/air_hud/config.cpp @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "uo_main", "uo_sys_laser", "a3_ui_f" }; + version = VERSION; + }; +}; + +#include "CfgUI.hpp" + +#include "CfgEventhandlers.hpp" +#include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/fnc_laserHudDesignateOff.sqf b/TO_MERGE/ace/air_hud/fnc_laserHudDesignateOff.sqf new file mode 100644 index 0000000000..8718146aea --- /dev/null +++ b/TO_MERGE/ace/air_hud/fnc_laserHudDesignateOff.sqf @@ -0,0 +1,19 @@ +#include "script_component.hpp" + +if(isNil QGVAR(laser)) exitWith { + false +}; +if(!local GVAR(laser)) then { + false +}; + +_handle = GVAR(laser) getVariable ["ACE_PFH_HANDLE", nil]; +if(!isNil "_handle") then { + [_handle] call cba_fnc_removePerFrameHandler; +}; + +REM(ACE_LASERS, GVAR(laser)); +deleteVehicle GVAR(laser); +GVAR(laser) = nil; + +true \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/fnc_laserHudDesignateOn.sqf b/TO_MERGE/ace/air_hud/fnc_laserHudDesignateOn.sqf new file mode 100644 index 0000000000..ee69fb84fe --- /dev/null +++ b/TO_MERGE/ace/air_hud/fnc_laserHudDesignateOn.sqf @@ -0,0 +1,87 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +TRACE_1("enter", _this); + +FUNC(magnitude) = { + _this distance [0, 0, 0] +}; + +FUNC(mat_normalize3d) = { + private ["_mag"]; + PARAMS_3(_vx,_vy,_vz); + + _mag = _this call FUNC(magnitude); + if (_mag == 0) then {_mag = 1}; + [(_vx/_mag), (_vy/_mag), (_vz/_mag)] +}; + +FUNC(laserHudDesignatePFH) = { + _args = _this select 0; + _laserTarget = _args select 0; + _shooter = _args select 1; + + _vehicle = vehicle _shooter; + _weapon = currentWeapon _vehicle; + + if(!alive _shooter || isNull _vehicle || isNull _laserTarget) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + }; + + // Retrieve the gunner and turret memory point information + _gunnerInfo = [_vehicle, _weapon] call CBA_fnc_getFirer; + + _turret = [_vehicle, _gunnerInfo select 1] call CBA_fnc_getTurret; + _pov = getText (_turret >> "memoryPointGunnerOptics"); + _gunBeg = getText (_turret >> "gunBeg"); + _gunEnd = getText (_turret >> "gunEnd"); + TRACE_3("", _pov, _gunBeg, _gunEnd); + + // Pull the PIP pov or barrel direction, depending on how the model is set up + _povPos = ATLtoASL ( _vehicle modelToWorld (_vehicle selectionPosition _pov ) ); + _povDir = [0,0,0]; + if(_pov == "pip0_pos") then { + _pipDir = ATLtoASL ( _vehicle modelToWorld (_vehicle selectionPosition "pip0_dir" ) ); + _povDir = [_povPos, _pipDir] call BIS_fnc_vectorDiff; + } else { + _gunBeginPos = ATLtoASL ( _vehicle modelToWorld (_vehicle selectionPosition _gunBeg ) ); + _gunEndPos = ATLtoASL ( _vehicle modelToWorld (_vehicle selectionPosition _gunEnd ) ); + _povDir = [_gunEndPos, _gunBeginPos] call BIS_fnc_vectorDiff; + }; + + TRACE_4("", _povDir, _povPos, _gunBeginPos, _gunEndPos); + + _result = [_povPos, _povDir] call uo_sys_laser_fnc_shootCone; + + if((count _result) > 0) then { + _resultPositions = _result select 2; + + if((count _resultPositions) > 0) then { + _firstResult = _resultPositions select 0; + _pos = _firstResult select 0; + + // If the laser has moved less than a half meter, then dont move it. + // Just regular use of lasers will commonly make them move this much, + // but not across multiple close frames. + // This loses accuracy a little, but saves position updates per frame. + //if( ((getPosASL _laserTarget) distance _pos) > 0.5) then { + _laserTarget setPosATL (ASLToATL _pos); + //}; +#ifdef DEBUG_MODE_FULL + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,0,0,1], ASLToATL _pos, 0.75, 0.75, 0, "", 0.5, 0.025, "TahomaB"]; +#endif + }; + }; +}; + +if(isNil QGVAR(laser)) then { + _laserTarget = "LaserTargetW" createVehicle (getpos player); + _handle = [FUNC(laserHudDesignatePFH), 0, [_laserTarget, player]] call cba_fnc_addPerFrameHandler; + _laserTarget setVariable ["ACE_PFH_HANDLE", _handle, false]; + + GVAR(laser) = _laserTarget; +} else { + [] call FUNC(laserHudDesignateOff); + [] call FUNC(laserHudDesignateOn); +}; + diff --git a/TO_MERGE/ace/air_hud/fnc_onGetin.sqf b/TO_MERGE/ace/air_hud/fnc_onGetin.sqf new file mode 100644 index 0000000000..873c19c234 --- /dev/null +++ b/TO_MERGE/ace/air_hud/fnc_onGetin.sqf @@ -0,0 +1 @@ +player addAction ["Laser Designator On", { _this call uo_sys_air_hud_fnc_laserHudDesignateOn }, name player]; diff --git a/TO_MERGE/ace/air_hud/fnc_onGetout.sqf b/TO_MERGE/ace/air_hud/fnc_onGetout.sqf new file mode 100644 index 0000000000..aceb4f54bd --- /dev/null +++ b/TO_MERGE/ace/air_hud/fnc_onGetout.sqf @@ -0,0 +1 @@ +player addAction ["Laser Designator Off", { _this call uo_sys_air_hud_fnc_laserHudDesignateOff }, name player]; \ No newline at end of file diff --git a/TO_MERGE/ace/air_hud/script_component.hpp b/TO_MERGE/ace/air_hud/script_component.hpp new file mode 100644 index 0000000000..6f0ab5bc8c --- /dev/null +++ b/TO_MERGE/ace/air_hud/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT sys_air_hud +#include "\x\uo\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_AIR_HUD + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_AIR_HUD + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_AIR_HUD +#endif + +#include "\x\uo\Addons\main\script_macros.hpp" diff --git a/TO_MERGE/ace/arty_aimingpoints/$PBOPREFIX$ b/TO_MERGE/ace/arty_aimingpoints/$PBOPREFIX$ new file mode 100644 index 0000000000..95dd20da50 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/$PBOPREFIX$ @@ -0,0 +1 @@ +x\ace\addons\sys_arty_aimingpoints \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/ACE_ARTY_AimingStakes.p3d b/TO_MERGE/ace/arty_aimingpoints/ACE_ARTY_AimingStakes.p3d new file mode 100644 index 0000000000..4f4daabf2b Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/ACE_ARTY_AimingStakes.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/ACE_ARTY_AimingStakesW.p3d b/TO_MERGE/ace/arty_aimingpoints/ACE_ARTY_AimingStakesW.p3d new file mode 100644 index 0000000000..2c557f3fa9 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/ACE_ARTY_AimingStakesW.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/CfgEventHandlers.hpp b/TO_MERGE/ace/arty_aimingpoints/CfgEventHandlers.hpp new file mode 100644 index 0000000000..67bd580002 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/CfgEventHandlers.hpp @@ -0,0 +1,31 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + clientInit = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; + +class Extended_Init_EventHandlers { + class ACE_Arty_M1A1_Collimator { + init = QUOTE(call COMPILE_FILE(XEH_collimator_init)); + }; + class ACE_Arty_M2A2_Aiming_Circle { + init = QUOTE(_this call FUNC(aimingCircleInit)); + }; +}; + +class Extended_GetIn_Eventhandlers { + class ACE_Arty_M2A2_Aiming_Circle { + clientGetin = QUOTE(_this call FUNC(aimingCircleGetIn)); + }; +}; +class Extended_GetOut_Eventhandlers { + class ACE_Arty_M2A2_Aiming_Circle { + clientGetout = QUOTE(_this call FUNC(aimingCircleGetOut)); + }; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/CfgVehicles.hpp b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles.hpp new file mode 100644 index 0000000000..e887c80201 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles.hpp @@ -0,0 +1,153 @@ +class CfgVehicles { + class Thing; + class ReammoBox; + class ACE_Arty_BaseThing; + // aiming stakes classes + #include "CfgVehicles_AimingStakes.hpp" + #include "CfgVehicles_Ammoboxes.hpp" + #include "CfgVehicles_Collimator.hpp" + class Land; + class LandVehicle: Land { + class NewTurret; + }; + class StaticWeapon: LandVehicle { + class Turrets; + }; + class StaticCannon: StaticWeapon { + class Turrets: Turrets { + class MainTurret; + }; + }; + class ace_aimingcircle_base: StaticCannon { + class Turrets: Turrets { + class MainTurret : MainTurret { + class ViewOptics; + }; + }; + }; + class ACE_Arty_M2A2_Aiming_Circle: ace_aimingcircle_base { + scope = 2; + displayName = $STR_DSS_ACE_ARTY_AIMINGCIRCLE_M2A2; + model = QPATHTO_M(ace_arty_m2a2_aiming_circle.p3d); + icon = QPATHTO_T(data\equip\m2a2_icon_ca.paa); + vehicleClass = "ACE_Arty_Equipment"; + animated = 0; + reversed = 0; + autocenter = 0; + mapSize = 0.5; + class Turrets: Turrets + { + class MainTurret: MainTurret + { + weapons[] = {}; + magazines[] = {}; + memoryPointsGetInGunner = "pos_gunner_dir"; + memoryPointsGetInGunnerDir = "pos_gunner"; + gunnerOpticsModel = "\x\ace\addons\sys_arty_m119\ace_arty_m119_scope"; + gunnerAction = "M2_Gunner"; + gunBeg = "gunBegin"; + gunEnd = "gunEnd"; + proxyIndex = 1; + maxHorizontalRotSpeed = 4; + class ViewOptics : ViewOptics { + initFov = 0.0787019; + minFov = 0.0787019; + maxFov = 0.0787019; + }; + }; + }; + + class AnimationSources { + class MainGun { + source="user"; + animPeriod=0.02; + initPhase=0; + minValue="-400"; + maxValue="800"; + }; + class MainTurret { + source="user"; + initPhase = 0; + animPeriod=0.02; + minValue="-6400"; + maxValue="6400"; + }; + class upper_motion { + source="user"; + initPhase = 0; + animPeriod=0.002; + minValue="-6400"; + maxValue="6400"; + }; + class deflection_knob { + source="user"; + initPhase = 0; + animPeriod=0.02; + minValue="-100"; + maxValue="100"; + }; + class deflection_knob_coarse { + type="rotation"; + source="user"; + initPhase = 0; + animPeriod=0.02; + minValue="-64"; + maxValue="64"; + }; + class elevation_knob { + source="user"; + initPhase = 0; + animPeriod=0.02; + minValue="-100"; + maxValue="100"; + }; + class elevation_knob_coarse { + source="user"; + initPhase = 0; + animPeriod=0.02; + minValue="-4"; + maxValue="8"; + }; + class orienting_knobs { + source="user"; + initPhase = 0; + animPeriod=0.02; + minValue="-6400"; + maxValue="6400"; + }; + class left_cover { + source="user"; + initPhase = 0; + animPeriod=1; + minValue="0"; + maxValue="1"; + }; + class right_cover { + source="user"; + initPhase = 0; + animPeriod=1; + minValue="0"; + maxValue="1"; + }; + class compass_needle { + source = "user"; + initPhase = 0; + animPeriod=0.02; + minValue="-360"; + maxValue="360"; + }; + }; + + // class MarkerLights { + // class Whitelight { + // name = "optic_backlight"; + // color[] = {1,1,1, 0.0025}; + // ambient[] = {1,1,1, 0.0025}; + // brightness = 0.0005; + // size = 0.00004; + // blinking = "false"; + // }; + // }; + ACE_CARGO_ONLY; ACE_Weight = 20.5; + }; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_AimingStakes.hpp b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_AimingStakes.hpp new file mode 100644 index 0000000000..2067034bac --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_AimingStakes.hpp @@ -0,0 +1,44 @@ + // ace mortars aiming posts base class + class ACE_Arty_AimingStakes : ACE_Arty_BaseThing { + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + + model = QPATHTO_M(ACE_ARTY_AimingStakes.p3d); + animated = 0; + reversed = 0; + autocenter = 1; + sectionsInherit = "ACE_ARTY_AimingStakes"; + hiddenSelections[] = {"all"}; + class AnimationSources{}; + ACE_NOCARGOLOAD; ACE_Weight = 10000; + }; + + // aiming posts for US mortar usage + // 2x M1A2 (ie 2m height) aiming Posts with M58, illumunation device, green + class ACE_Arty_AimingPost_M1A2_M58 : ACE_Arty_AimingStakes { + scope = 2; + displayName = $STR_DN_ACE_ARTY_AIMINGPOST_M1A2_M58; + hiddenSelections[] = {"lamp_1","lightpoint_1"}; + class MarkerLights { + class Greenlight { + name = "lightpoint_0"; + color[] = { 0, 0.5, 0.1, 0.0025 }; + ambient[] = { 0, 0.5, 0.1, 0.0025 }; + brightness = 0.0015; + size = 0.00001; + blinking = "false"; + }; + }; + ACE_CARGO_ONLY; ACE_Weight = 3; + }; + // 2x M1A2 (ie 2m height) aiming Posts with M59, illumunation device, orange + class ACE_Arty_AimingPost_M1A2_M59 : ACE_Arty_AimingPost_M1A2_M58 { + displayName = $STR_DN_ACE_ARTY_AIMINGPOST_M1A2_M59; + class MarkerLights: MarkerLights { + class Orangelight: Greenlight { + color[] = {255/255, 74/255, 0/255, 0.0025}; + ambient[] = {255/255, 74/255, 0/255, 0.0025}; + }; + }; + }; diff --git a/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_AmmoBoxes.hpp b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_AmmoBoxes.hpp new file mode 100644 index 0000000000..fc1e5218c5 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_AmmoBoxes.hpp @@ -0,0 +1,12 @@ + class ACE_ArtyEquip_Box: ReammoBox { + vehicleClass = "ACE_Arty_Equipment"; + picture = "pictureThing"; + class TransportWeapons { + ACE_M_WEP(ACE_Arty_AimingPost_M1A2_M58, 12); + ACE_M_WEP(ACE_Arty_AimingPost_M1A2_M59, 12); + ACE_M_WEP(ACE_Arty_M1A1_Collimator, 6); + ACE_M_WEP(ACE_Arty_M2A2_Aiming_Circle, 2); + + }; + class TransportMagazines {}; + }; diff --git a/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_Collimator.hpp b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_Collimator.hpp new file mode 100644 index 0000000000..4f0bd9adcb --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/CfgVehicles_Collimator.hpp @@ -0,0 +1,82 @@ +class ACE_Arty_M1A1_Collimator: ACE_Arty_AimingStakes { + scope = 2; + displayName = "$STR_DSS_ACE_ARTY_COLLIMATOR_M1A1"; + model = QPATHTO_M(sa_collimator.p3d); + animated = 1; + reversed = 0; + autocenter = 0; + class Reflectors { + class Reflector { + color[] = {1,1,1, 1}; + ambient[] = {1,1,1, 1}; + position = "optic_backlight"; + direction = "optic_proxy"; + hitpoint = "optic_backlight"; + selection = "optic_backlight"; + brightness = 0.001; + size = 0.01; + }; + }; + class AnimationSources { + class elevate_optic { + source = "user"; + animPeriod = 0.01; + minValue="-300"; + maxValue="300"; + }; + class rotate_optic { + source = "user"; + animPeriod = 0.01; + minValue="-6400"; + maxValue="6400"; + }; + }; + ACE_CARGO_ONLY; ACE_Weight = 14.5; +}; + +class ACE_Arty_Collimator_Proxy: ACE_Arty_BaseThing { // No idea wether this should be hidden or not + scope = 1; + displayName = "Collimator Proxy"; + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + model = QPATHTO_M(collimator_test.p3d); + animated = 1; + reversed = 0; + autocenter = 0; + sectionsInherit = "collimator_test"; + + class AnimationSources{ + class offset { + source = "user"; + animPeriod = 0.00001; + minValue = -100; + maxValue = 100; + }; + class expand_ul { + source = "user"; + animPeriod = 0.00001; + minValue = -1; + maxValue = 1; + }; + class expand_ur { + source = "user"; + animPeriod = 0.00001; + minValue = -1; + maxValue = 1; + }; + class expand_ll { + source = "user"; + animPeriod = 0.00001; + minValue = -1; + maxValue = 1; + }; + class expand_lr { + source = "user"; + animPeriod = 0.00001; + minValue = -1; + maxValue = 1; + }; + }; + ACE_CARGO_ONLY; ACE_Weight = 14.5; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/CfgWeapons.hpp b/TO_MERGE/ace/arty_aimingpoints/CfgWeapons.hpp new file mode 100644 index 0000000000..94d9e8d371 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/CfgWeapons.hpp @@ -0,0 +1,40 @@ +class CfgWeapons { + class Launcher; + class ACE_BaseAimingPost: Launcher { + displayName = "Aiming Post"; + descriptionShort = ""; + type = 4; + model = QPATHTO_M(ACE_ARTY_AimingStakesW.p3d); + picture = QPATHTO_T(data\equip\w_stake_ca.paa); + class Library { + libTextDesc = ""; + }; + ACE_Weight = 3; + }; + class ACE_Arty_AimingPost_M1A2_M58: ACE_BaseAimingPost { + scope = 2; + displayName = $STR_DN_ACE_ARTY_AIMINGPOST_M1A2_M58; + descriptionShort = $STR_DSS_ACE_ARTY_AIMINGPOST_M1A2_M58; + }; + class ACE_Arty_AimingPost_M1A2_M59: ACE_BaseAimingPost { + scope = 2; + displayName = $STR_DN_ACE_ARTY_AIMINGPOST_M1A2_M59; + descriptionShort = $STR_DSS_ACE_ARTY_AIMINGPOST_M1A2_M59; + }; + class ACE_Arty_M1A1_Collimator: ACE_BaseAimingPost { + scope = 2; + displayName = $STR_DSS_ACE_ARTY_COLLIMATOR_M1A1; + descriptionShort = $STR_DSS_ACE_ARTY_COLLIMATOR_M1A1; + picture = QPATHTO_T(data\equip\collimator_item_ca.paa); + model = QPATHTO_M(sa_collimator_wep.p3d); + ACE_Weight = 14.5; + }; + class ACE_Arty_M2A2_Aiming_Circle: ACE_BaseAimingPost { + scope = 2; + displayName = $STR_DSS_ACE_ARTY_AIMINGCIRCLE_M2A2; + descriptionShort = $STR_DSS_ACE_ARTY_AIMINGCIRCLE_M2A2; + picture = QPATHTO_T(data\equip\m2a2_item_ca.paa); + model = QPATHTO_M(ace_arty_m2a2_aiming_circle_wep.p3d); + ACE_Weight = 20.5; + }; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/XEH_collimator_init.sqf b/TO_MERGE/ace/arty_aimingpoints/XEH_collimator_init.sqf new file mode 100644 index 0000000000..7376f3d63f --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/XEH_collimator_init.sqf @@ -0,0 +1,6 @@ +//XEH_collimator_init.sqf +#include "script_component.hpp" + +PARAMS_1(_collimator); + +_adjustCollimator = _collimator addAction [localize "STR_ACE_ARTY_ADJUST_COLLIMATOR", "fnc_adjustCollimator.sqf", [], -100, false, true, "", "alive _target"]; diff --git a/TO_MERGE/ace/arty_aimingpoints/XEH_post_init.sqf b/TO_MERGE/ace/arty_aimingpoints/XEH_post_init.sqf new file mode 100644 index 0000000000..0aa8309c30 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/XEH_post_init.sqf @@ -0,0 +1,10 @@ +// #define DEBUG_MODE_FULL +#include "script_component.hpp" + +ADDON = false; + +["player", [ace_sys_interaction_key], 1, [QPATHTO_F(fnc_menuDef_stake), "main"]] call CBA_ui_fnc_add; +["player", [ace_sys_interaction_key_self], 9, [QPATHTO_F(fnc_menuDef_stake_self), "main"]] call CBA_ui_fnc_add; +[QGVAR(aimingCircleLightEvent), { _this call FUNC(aimingCircleHandleLight); }] call CBA_fnc_addEventHandler; + +ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/XEH_pre_init.sqf b/TO_MERGE/ace/arty_aimingpoints/XEH_pre_init.sqf new file mode 100644 index 0000000000..a71d525693 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/XEH_pre_init.sqf @@ -0,0 +1,476 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP(menuDef_stake); +PREP(menuDef_stake_self); + +PREP(isKindOf); + +PREP(onPickupStake); +PREP(onPlaceStake); +PREP(onModifyStake); + +PREP(onPlaceStakeConfirm); +PREP(onPlaceStakeCancel); + +ACE_ARTY_COLLIMATORS = []; +ACE_ARTY_COLLIMATORS_PFH_ID = -1; + +FUNC(milsFromGunBarrel) = { + private "_gunDir"; + PARAMS_2(_gun,_obj); + // TODO: get relative directoin of placement from barrel in mils +}; + +FUNC(findGun) = { + private["_detectorPos", "_distance", "_target","_targets","_closeDist"]; + _target = objNull; + _detectorPos = [0, 0, 0]; + + for [ + {_distance = 10}, + {(_distance <= viewdistance) && ((_detectorPos select 2) > -2) && isNull _target}, + {_distance = _distance + 10} + ] do { + _detectorPos = positionCameraToWorld [0, 0, _distance]; + _targets = _detectorPos nearEntities ["StaticWeapon", 10]; + + if (count _targets > 0) exitWith { + private["_closeDist", "_dist"]; + _closeDist = 9999; + { + private["_gun"]; + _gun = _x; + _dist = player distance _gun; + if(_dist < _closeDist) then { + _closeDist = _dist; + _target = _gun; + }; + } forEach _targets; + _target + }; + }; + _target +}; + +FUNC(collimatorHandler) = { + _gp = positionCameraToWorld [0,0,0]; + _gp set[2, getTerrainHeightASL [_gp select 0, _gp select 1]]; + _nearCollimators = (positionCameraToWorld [0,0,0]) nearEntities ["ACE_Arty_M1A1_Collimator", 20]; + _moved = false; + { + _lastPos = _x getVariable [QGVAR(colLastPos), [0,0,0]]; + if(_lastPos distance (getPosASL _x) > 0) exitWith { + _moved = true; + }; + } forEach _nearCollimators; + _proxies = (positionCameraToWorld [0,0,0]) nearEntities ["ACE_Arty_Collimator_Proxy", 20]; + if((count _proxies) != (count _nearCollimators)) then { + _moved = true; + }; + if(_moved) then { + ACE_ARTY_COLLIMATORS = []; + { + deleteVehicle _x; + } forEach _proxies; + }; + _newCollimators = _nearCollimators - ACE_ARTY_COLLIMATORS; + { + // player sideChat format["creating proxyaaaa"]; + _collimatorProxy = "ACE_Arty_Collimator_Proxy" createVehicleLocal (getPos _x); + _collimatorProxy setDir 180; + _collimatorProxy attachTo [_x, [0,0,0], "optic_proxy"]; + _x setVariable ["ace_collimator_proxy", _collimatorProxy]; + } forEach _newCollimators; + _oldCollimators = ACE_ARTY_COLLIMATORS - _nearCollimators; + { + // player sideChat format["deleting proxy"]; + _collimatorProxy = _x getVariable "ace_collimator_proxy"; + detach _collimatorProxy; + deleteVehicle _collimatorProxy; + } forEach _oldCollimators; + ACE_ARTY_COLLIMATORS = _nearCollimators; + { + _collimatorProxy = _x getVariable "ace_collimator_proxy"; + _x setVariable [QGVAR(colLastPos), (getPosASL _x)]; + _cp = _collimatorProxy modelToWorld (_collimatorProxy selectionPosition "optic"); + _cp set[2, getTerrainHeightASL [_cp select 0, _cp select 1]]; + _dis = (_gp distance _cp); + _disDif = 0.59-(_dis * 0.062); + _collimatorProxy animate["expand_ul", _disDif]; + _collimatorProxy animate["expand_ur", _disDif]; + _collimatorProxy animate["expand_ll", _disDif]; + _collimatorProxy animate["expand_lr", _disDif]; + _offset = 0; + _relDir = [_collimatorProxy, _gp] call BIS_fnc_relativeDirTo; + _relDir = (_relDir-180); + _relDir = DEG2MIL(_relDir); + _cf = -0.0011*(_dis^2) + 0.1335*_dis - 1.005; + _relDir = _relDir + (_relDir*_cf); + _collimatorProxy animate["offset", _relDir]; + _colRot = _x animationPhase "rotate_optic"; + _collimatorProxy setDir MIL2DEG(_colRot); + // player sideChat format["ds: %1", _colRot]; + // _wepVec = (vehicle player) weaponDirection ((weapons (vehicle player)) select 0); + // _wepDir = (_wepVec call CBA_fnc_vect2polar) select 1; + // _wepDir = DEG2MIL(_wepDir); + // player sideChat format["_wepDir: %1", _wepDir]; + } forEach ACE_ARTY_COLLIMATORS; +}; + +FUNC(startCollimatorHandler) = { + ACE_ARTY_COLLIMATORS = []; + ACE_ARTY_COLLIMATORS_PFH_ID = [FUNC(collimatorHandler), 0.0, []] call CBA_fnc_addPerFrameHandler; +}; + +FUNC(endCollimatorHandler) = { + { + _collimatorProxy = _x getVariable "ace_collimator_proxy"; + detach _collimatorProxy; + deleteVehicle _collimatorProxy; + } forEach ACE_ARTY_COLLIMATORS; + [ACE_ARTY_COLLIMATORS_PFH_ID] call CBA_fnc_removePerFrameHandler; + ACE_ARTY_COLLIMATORS = []; +}; + +FUNC(onAlignCollimator) = { + // player sideChat format["lol"]; + GVAR(aligningCollimator) = _this select 0; + _pos = GVAR(aligningCollimator) modelToWorld (GVAR(aligningCollimator) selectionPosition "sight_begin"); + _camera = "camera" camCreate _pos; + _camera cameraEffect ["internal", "back"]; + _camera camSetTarget (GVAR(aligningCollimator) modelToWorld (GVAR(aligningCollimator) selectionPosition "sight_end")); + _camera camSetFov 0.2; + _camera camCommit 0.1; + + + showCinemaBorder false; + GVAR(collimatorAlignHorz) = GVAR(aligningCollimator) animationPhase "rotate_optic"; + GVAR(collimatorAlignVert) = GVAR(aligningCollimator) animationPhase "elevate_optic"; + [] call FUNC(addKeys); + _func = { + _camera = (_this select 0) select 0; + if(GVAR(aligning)) then { + _pos = GVAR(aligningCollimator) modelToWorld (GVAR(aligningCollimator) selectionPosition "sight_begin"); + _camera camSetPos _pos; + _camera camSetTarget (GVAR(aligningCollimator) modelToWorld (GVAR(aligningCollimator) selectionPosition "sight_end")); + camUseNVG ace_sys_nvg_on; + _camera camSetFov 0.2; + _camera camCommit 0.1; + } else { + _camera cameraEffect ["terminate", "back"]; + cutrsc ["default", "PLAIN DOWN"]; + camDestroy _camera; + [] call FUNC(removeKeys); + [(_this select 1)] call CBA_fnc_removePerFrameHandler; + }; + }; + GVAR(aligning) = true; + [_func, 0.05, [_camera]] call CBA_fnc_addPerFrameHandler; +}; + +FUNC(addKeys) = { + GVAR(key_dn) = (findDisplay 46) displayAddEventHandler["KeyDown", '["KeyDown", _this] call FUNC(keyEvent)']; + GVAR(key_up) = (findDisplay 46) displayAddEventHandler["KeyUp", '["KeyUp", _this] call FUNC(keyEvent)']; +}; + +FUNC(removeKeys) = { + (findDisplay 46) displayRemoveEventhandler ["KeyDown", GVAR(key_dn)]; + (findDisplay 46) displayRemoveEventhandler ["KeyUp", GVAR(key_up)]; +}; + +FUNC(keyEvent) = { + _event = _this select 0; + _parameters = _this select 1; + + if (GVAR(presstime) == time) exitwith {false}; + GVAR(presstime) = time; + switch(_event) do { + case "KeyDown": { + _key = _parameters select 1; + switch(_key) do { + case 0xCD: { GVAR(collimatorAlignHorz) = GVAR(collimatorAlignHorz) + 0.25; }; + case 0xCB: { GVAR(collimatorAlignHorz) = GVAR(collimatorAlignHorz) - 0.25; }; + case 0xD0: { GVAR(collimatorAlignVert) = GVAR(collimatorAlignVert) + 0.25; }; + case 0xC8: { GVAR(collimatorAlignVert) = GVAR(collimatorAlignVert) - 0.25; }; + case 1: { GVAR(aligning) = false; }; + }; + }; + }; + if ((GVAR(aligningCollimator) animationPhase "rotate_optic") != GVAR(collimatorAlignHorz)) then { + GVAR(aligningCollimator) animate ["rotate_optic", GVAR(collimatorAlignHorz)]; + }; + if ((GVAR(aligningCollimator) animationPhase "elevate_optic") != GVAR(collimatorAlignVert)) then { + GVAR(aligningCollimator) animate ["elevate_optic", GVAR(collimatorAlignVert)]; + }; + !(GVAR(aligning)) +}; + +GVAR(placingStake) = false; + + + +/* +AIMING CIRCLE CODE +*/ + +GVAR(aimingCircleViewIndex) = 1; +GVAR(aimingCircleCurrentViews) = nil; +GVAR(aimingCircleCurrentDeflection) = 0; +GVAR(aimingCircleCurrentDeflectionFine) = 0; + +GVAR(aimingCircleCurrentElevation) = 0; +GVAR(aimingCircleCurrentElevationFine) = 0; + +GVAR(aimingCircleCurrentOrientation) = 0; + + +GVAR(aimingCircleMainViews) = [ + [["view_elevation", "gunEnd"], 0.5, 0, [], 0, [], 0], + ["gunnerview", 0.5, 0, [], 0, [], 0], + [["view_deflection", "centerpoint"], 0.45, 0, [], 0, [], 0], + [["view_needle", "view_target_reticle"], 0.44, 0, [], 0, [], 0] +]; + +// +GVAR(currentAimingCircle) = nil; +GVAR(aimingCircleCam) = nil; +GVAR(aimingCircleDisplayOpen) = false; +GVAR(aimingCircleActionIds) = []; +GVAR(aimingCircleLights) = []; +GVAR(aimingCircleLightLoopPid) = [] spawn { }; + + +FUNC(aimingCircleGetOut) = { + PARAMS_3(_circle,_pos,_unit); + + if (_unit == player) then { + { + GVAR(currentAimingCircle) removeAction _x; + } forEach GVAR(aimingCircleActionIds); + _needleUnlocked = GVAR(currentAimingCircle) getVariable[QGVAR(aimingCircleNeedleUnlocked), false]; + if(_needleUnlocked) then { + GVAR(currentAimingCircle) setVariable[QGVAR(aimingCircleNeedleUnlocked), false]; + }; + GVAR(aimingCircleActionIds) = []; + GVAR(currentAimingCircle) = nil; + }; +}; + +FUNC(aimingCircleCloseDisplay) = { + GVAR(aimingCircleCam) cameraEffect ["terminate", "back"]; + cutrsc ["default", "PLAIN DOWN"]; + camDestroy GVAR(aimingCircleCam); + GVAR(aimingCircleCam) = nil; + GVAR(currentAimingCircle) switchCamera "INTERNAL"; + GVAR(aimingCircleDisplayOpen) = false; +}; + +FUNC(aimingCircleInitDisplay) = { + GVAR(aimingCircleDisplayOpen) = true; + [GVAR(aimingCircleMainViews), GVAR(aimingCircleViewIndex)] call FUNC(aimingCircleSetView); +}; + +FUNC(aimingCircleSetView) = { + _views = _this select 0; + GVAR(aimingCircleCurrentViews) = _views; + _index = _this select 1; + _selectedView = _views select _index; + if(IS_ARRAY((_selectedView select 0))) then { + GVAR(currentAimingCircle) switchCamera "INTERNAL"; + _viewPositions = _selectedView select 0; + _snap = false; + _camPos = (GVAR(currentAimingCircle) modelToWorld (GVAR(currentAimingCircle) selectionPosition (_viewPositions select 0))); + _targetPos = (GVAR(currentAimingCircle) modelToWorld (GVAR(currentAimingCircle) selectionPosition (_viewPositions select 1))); + if (isNil QGVAR(aimingCircleCam)) then { + GVAR(aimingCircleCam) = "camera" camCreate _camPos; + _snap = true; + showCinemaBorder false; + }; + preloadCamera _targetPos; + 5 preloadObject GVAR(currentAimingCircle); + GVAR(aimingCircleCam) camPreload 5; + GVAR(aimingCircleCam) camSetPos _camPos; + GVAR(aimingCircleCam) cameraEffect ["internal", "back"]; + GVAR(aimingCircleCam) camSetTarget _targetPos; + GVAR(aimingCircleCam) camSetFov (_selectedView select 1); + if(_snap) then { + GVAR(aimingCircleCam) camCommit 0; + } else { + GVAR(aimingCircleCam) camCommit (_selectedView select 2); + }; + } else { + GVAR(aimingCircleCam) cameraEffect ["terminate", "back"]; + cutrsc ["default", "PLAIN DOWN"]; + camDestroy GVAR(aimingCircleCam); + GVAR(aimingCircleCam) = nil; + if((_selectedView select 0) == "gunnerview") then { + GVAR(currentAimingCircle) switchCamera "GUNNER"; + }; + }; +}; + +FUNC(aimingCircleHandleAdjustKey) = { + _key = _this select 1; + _shift = _this select 2; + _ctrl = _this select 3; + _orient = false; + if(GVAR(currentAimingCircle) animationPhase "right_cover" == 1) then { + _orient = true; + }; + + if(_key == 205 || {_key == 203}) then { + if(!_shift) then { + _amount = 1; + if(_ctrl) then { + _amount = 0.25; + }; + if(_key == 203) then { + _amount = _amount*-1; + }; + if(_orient) then { + GVAR(aimingCircleCurrentOrientation) = GVAR(aimingCircleCurrentOrientation) + _amount; + GVAR(currentAimingCircle) animate ["MainTurret", GVAR(aimingCircleCurrentOrientation)]; + GVAR(currentAimingCircle) animate ["orienting_knobs", GVAR(aimingCircleCurrentOrientation)]; + } else { + GVAR(aimingCircleCurrentDeflectionFine) = GVAR(aimingCircleCurrentDeflectionFine) + _amount; + GVAR(aimingCircleCurrentDeflection) = GVAR(aimingCircleCurrentDeflection) + _amount; + GVAR(currentAimingCircle) animate ["upper_motion", GVAR(aimingCircleCurrentDeflection)]; + GVAR(currentAimingCircle) animate ["deflection_knob", GVAR(aimingCircleCurrentDeflectionFine)]; + }; + } else { + _amount = 100; + if(_key == 203) then { + _amount = _amount*-1; + }; + if(_orient) then { + _currentPhase = GVAR(currentAimingCircle) animationPhase "MainTurret"; + if(_currentPhase == GVAR(aimingCircleCurrentOrientation)) then { + GVAR(aimingCircleCurrentOrientation) = GVAR(aimingCircleCurrentOrientation) + _amount; + GVAR(currentAimingCircle) animate ["MainTurret", GVAR(aimingCircleCurrentOrientation)]; + GVAR(currentAimingCircle) animate ["orienting_knobs", GVAR(aimingCircleCurrentOrientation)]; + }; + } else { + _currentPhase = GVAR(currentAimingCircle) animationPhase "upper_motion"; + if(_currentPhase == GVAR(aimingCircleCurrentDeflection)) then { + GVAR(aimingCircleCurrentDeflection) = GVAR(aimingCircleCurrentDeflection) + _amount; + GVAR(currentAimingCircle) animate ["upper_motion", GVAR(aimingCircleCurrentDeflection)]; + GVAR(currentAimingCircle) animate ["deflection_knob_coarse", (GVAR(currentAimingCircle) animationPhase "deflection_knob_coarse")+(_amount/100)]; + }; + }; + }; + }; +}; + +FUNC(aimingCircleHandleKey) = { + _key = _this select 1; + _move = false; + if(_key in [203, 205, 200, 208]) then { + _this call FUNC(aimingCircleHandleAdjustKey); + } else { + if(_key in (actionKeys "MoveForward")) then { + GVAR(aimingCircleViewIndex) = (GVAR(aimingCircleViewIndex) - 1) max 0; + _move = true; + }; + if(_key in (actionKeys "MoveBack")) then { + GVAR(aimingCircleViewIndex) = (GVAR(aimingCircleViewIndex) + 1) min ((count GVAR(aimingCircleCurrentViews))-1); + _move = true; + }; + if(_move) then { + [GVAR(aimingCircleMainViews), GVAR(aimingCircleViewIndex)] call FUNC(aimingCircleSetView); + }; + }; +}; + +FUNC(aimingCircleMonitor) = { + if(player in GVAR(currentAimingCircle)) then { + if(cameraView == "GUNNER") then { + if(!GVAR(aimingCircleDisplayOpen)) then { + createDialog "ace_sys_aimingpoints_aimingCircleDisplay"; + }; + }; + if(GVAR(aimingCircleDisplayOpen)) then { + [GVAR(aimingCircleMainViews), GVAR(aimingCircleViewIndex)] call FUNC(aimingCircleSetView); + }; + _needleUnlocked = GVAR(currentAimingCircle) getVariable[QGVAR(aimingCircleNeedleUnlocked), false]; + if(_needleUnlocked) then { + _currentAzi = GVAR(currentAimingCircle) getVariable[QGVAR(aimingCircleCurrentAzi), 0]; + _currentDir = (getDir GVAR(currentAimingCircle)); + if(_currentDir != _currentAzi) then { + GVAR(currentAimingCircle) setVariable[QGVAR(aimingCircleCurrentAzi), _currentDir, true]; + GVAR(currentAimingCircle) animate ["compass_needle", _currentDir]; + }; + }; + } else { + [(_this select 1)] call CBA_fnc_removePerFrameHandler; + }; +}; + +FUNC(aimingCircleHandleLight) = { + _ac = _this select 0; + _state = _this select 1; + if(_state) then { + _light = "#lightPoint" createVehicleLocal [0,0,0]; + _light lightAttachObject [_ac, [0,0,2]]; + _light setLightBrightness 0.005; + _light setLightAmbient[1, 0.5, 0.5]; + _light setLightColor[1, 0.5, 0.5]; + GVAR(aimingCircleLights) set[(count GVAR(aimingCircleLights)), [_ac, _light]]; + _ac setVariable [QGVAR(aimingCircleLightPoint), _light]; + if(scriptDone GVAR(aimingCircleLightLoopPid)) then { + GVAR(aimingCircleLightLoopPid) = [] spawn FUNC(aimingCircleLightLoop); + }; + } else { + _lightObj = _ac getVariable QGVAR(aimingCircleLightPoint); + _ac setVariable [QGVAR(aimingCircleLightPoint), nil]; + deleteVehicle _lightObj; + }; +}; + +FUNC(aimingCircleLightLoop) = { + while { (count GVAR(aimingCircleLights)) > 0 } do { + _tempArray = []; + { + _ac = _x select 0; + _light = _x select 1; + if(!alive _ac) then { + deleteVehicle _light; + } else { + if(alive _light) then { + _tempArray set[(count _tempArray), _x]; + }; + }; + } forEach GVAR(aimingCircleLights); + GVAR(aimingCircleLights) = _tempArray; + sleep 0.1; + }; +}; + +FUNC(aimingCircleGetIn) = { + PARAMS_3(_circle,_pos,_unit); + + if (_unit == player) then { + GVAR(currentAimingCircle) = _circle; + [FUNC(aimingCircleMonitor), 0] call CBA_fnc_addPerFrameHandler; + _actionId = GVAR(currentAimingCircle) addAction ["Uncover Orienting Knobs", QPATHTO_C(fnc_uncoverKnobs.sqf), [], -100, false, true, "", "gunner _target == player && {(_target animationPhase 'right_cover') == 0}"]; + GVAR(aimingCircleActionIds) set[(count GVAR(aimingCircleActionIds)), _actionId]; + _actionId = GVAR(currentAimingCircle) addAction ["Cover Orienting Knobs", QPATHTO_C(fnc_coverKnobs.sqf), [], -100, false, true, "", "gunner _target == player && {(_target animationPhase 'right_cover') == 1}"]; + GVAR(aimingCircleActionIds) set[(count GVAR(aimingCircleActionIds)), _actionId]; + _actionId = GVAR(currentAimingCircle) addAction ["Unlock Compass Needle", QPATHTO_C(fnc_needle.sqf), [], -100, false, true, "", format["gunner _target == player && !(_target getVariable[""%1"", false])", QGVAR(aimingCircleNeedleUnlocked)]]; + GVAR(aimingCircleActionIds) set[(count GVAR(aimingCircleActionIds)), _actionId]; + _actionId = GVAR(currentAimingCircle) addAction ["Lock Compass Needle", QPATHTO_C(fnc_needle.sqf), [], -100, false, true, "", format["gunner _target == player && (_target getVariable[""%1"", false])", QGVAR(aimingCircleNeedleUnlocked)]]; + GVAR(aimingCircleActionIds) set[(count GVAR(aimingCircleActionIds)), _actionId]; + _actionId = GVAR(currentAimingCircle) addAction ["Turn On Lamp", QPATHTO_C(fnc_lamp.sqf), [], -100, false, true, "", format["gunner _target == player && !(_target getVariable[""%1"", false])", QGVAR(aimingCircleLampOn)]]; + GVAR(aimingCircleActionIds) set[(count GVAR(aimingCircleActionIds)), _actionId]; + _actionId = GVAR(currentAimingCircle) addAction ["Turn Off Lamp", QPATHTO_C(fnc_lamp.sqf), [], -100, false, true, "", format["gunner _target == player && (_target getVariable[""%1"", false])", QGVAR(aimingCircleLampOn)]]; + GVAR(aimingCircleActionIds) set[(count GVAR(aimingCircleActionIds)), _actionId]; + }; +}; + +FUNC(aimingCircleInit) = { + _ac = _this select 0; + _ac setVectorUp [0,0,0.000001]; +}; + +ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/ace_arty_m2a2_aiming_circle.p3d b/TO_MERGE/ace/arty_aimingpoints/ace_arty_m2a2_aiming_circle.p3d new file mode 100644 index 0000000000..145427616b Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/ace_arty_m2a2_aiming_circle.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/ace_arty_m2a2_aiming_circle_wep.p3d b/TO_MERGE/ace/arty_aimingpoints/ace_arty_m2a2_aiming_circle_wep.p3d new file mode 100644 index 0000000000..6defc67eb8 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/ace_arty_m2a2_aiming_circle_wep.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/collimator_test.p3d b/TO_MERGE/ace/arty_aimingpoints/collimator_test.p3d new file mode 100644 index 0000000000..8d33a1a6a0 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/collimator_test.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/config.cpp b/TO_MERGE/ace/arty_aimingpoints/config.cpp new file mode 100644 index 0000000000..3c095fc073 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/config.cpp @@ -0,0 +1,25 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = { + "ACE_Arty_AimingPost_M1A2_M58", + "ACE_Arty_AimingPost_M1A2_M59", + "ACE_Arty_M1A1_Collimator", + "ACE_Arty_M2A2_Aiming_Circle" + }; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"CAWeapons", "ace_sys_arty", "ace_sys_interaction", "ace_main"}; + author[] = {"Nou"}; + VERSION_CONFIG; + }; +}; + +PRELOAD_ADDONS; + +#include "CfgEventHandlers.hpp" +#include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" +#include "dialogs.hpp" + + diff --git a/TO_MERGE/ace/arty_aimingpoints/data/aimingPosts_M1A2_co.paa b/TO_MERGE/ace/arty_aimingpoints/data/aimingPosts_M1A2_co.paa new file mode 100644 index 0000000000..8286187139 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/aimingPosts_M1A2_co.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/c2.paa b/TO_MERGE/ace/arty_aimingpoints/data/c2.paa new file mode 100644 index 0000000000..22e372c078 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/c2.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/c2.rvmat b/TO_MERGE/ace/arty_aimingpoints/data/c2.rvmat new file mode 100644 index 0000000000..4b385d0562 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/data/c2.rvmat @@ -0,0 +1,13 @@ +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0,0,0,1}; +specularPower=1; +PixelShaderID="Normal"; +VertexShaderID="Basic"; +class Stage0 +{ + texture="x\ace\Addons\sys_arty_aimingpoints\data\collimator_pattern_alpha.paa"; + uvSource="tex"; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/data/collimator_pattern.paa b/TO_MERGE/ace/arty_aimingpoints/data/collimator_pattern.paa new file mode 100644 index 0000000000..fead2a387d Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/collimator_pattern.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/collimator_pattern_alpha.paa b/TO_MERGE/ace/arty_aimingpoints/data/collimator_pattern_alpha.paa new file mode 100644 index 0000000000..f3fa68a9c9 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/collimator_pattern_alpha.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/equip/collimator_item_ca.paa b/TO_MERGE/ace/arty_aimingpoints/data/equip/collimator_item_ca.paa new file mode 100644 index 0000000000..4499418cb6 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/equip/collimator_item_ca.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/equip/m2a2_icon_ca.paa b/TO_MERGE/ace/arty_aimingpoints/data/equip/m2a2_icon_ca.paa new file mode 100644 index 0000000000..6c8770c304 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/equip/m2a2_icon_ca.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/equip/m2a2_item_ca.paa b/TO_MERGE/ace/arty_aimingpoints/data/equip/m2a2_item_ca.paa new file mode 100644 index 0000000000..9bac2bc7c6 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/equip/m2a2_item_ca.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/equip/w_stake_ca.paa b/TO_MERGE/ace/arty_aimingpoints/data/equip/w_stake_ca.paa new file mode 100644 index 0000000000..b6586bb219 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/equip/w_stake_ca.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_co.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_co.paa new file mode 100644 index 0000000000..ffbf425cc8 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_co.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_mat.rvmat b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_mat.rvmat new file mode 100644 index 0000000000..fd71e189d6 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_mat.rvmat @@ -0,0 +1,123 @@ +ambient[] = {1.28,1.2,1.55,1.0}; // ambient color shine +diffuse[] = {1.28,1.2,1.55,1.0}; // diffuse color shine +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; // unused +emmisive[] = {0.0,0.0,0.0,1.0}; // emmisive color +specular[] = {0.375,0.375,0.375,1}; // specular color + +specularPower = 10.0; // glosiness + +PixelShaderID = "Super"; // type of pixelshader +VertexShaderID = "Super"; // type of vertexshader +/********************************* +** STAGE 1 Normal Map (NOHQ) ** +*********************************/ +class Stage1 +{ + texture = "x\ace\addons\sys_arty_aimingpoints\data\m2a2_1_nohq.paa"; // path to normal map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 2 Detail Map (DT) ** +*********************************/ +class Stage2 +{ + texture = "ca\data\destruct\metal_rough_half_dt.paa"; // path to detail map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {19.9239,-1.74311,0}; + up[] = {1.74311,19.9239,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; +}; +/********************************* +** STAGE 3 Micro Map (MC) ** +*********************************/ +class Stage3 +{ + texture = "#(argb,8,8,3)color(0,0,0,0,MC)"; // micro color + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {0.984808,-0.173648,0}; + up[] = {0.173648,0.984808,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; +}; +/********************************* +** STAGE 4 Ambient Shadow (AS) ** +*********************************/ +class Stage4 +{ + texture = "#(argb,8,8,3)color(1,1,1,1,AS)"; // path to as map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 5 Specular (SMDI) ** +*********************************/ +class Stage5 +{ + texture = "x\ace\addons\sys_arty_aimingpoints\data\m2a2_1_smdi.paa"; // path to smdi map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 6 Fresnel reflection ** +*********************************/ +class Stage6 +{ + texture = "#(ai,16,2,2)fresnel(1.4,1.16)"; // fresnel reflection terms #(ai, size,size, tile)fresnel(term 1, term 2) + uvSource = "none"; +}; +/********************************* +** STAGE 7 Reflection map ** +*********************************/ +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; // path to reflection map + uvSource = "none"; // source of uv mapping +}; +/********************************* +** STAGE 7 Thermal ** +*********************************/ +class StageTI +{ + texture = ""; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_nohq.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_nohq.paa new file mode 100644 index 0000000000..ed214b9f65 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_nohq.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_smdi.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_smdi.paa new file mode 100644 index 0000000000..9996478690 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_1_smdi.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_co.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_co.paa new file mode 100644 index 0000000000..addc6a96fb Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_co.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_mat.rvmat b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_mat.rvmat new file mode 100644 index 0000000000..33c87aa03e --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_mat.rvmat @@ -0,0 +1,124 @@ +ambient[] = {1.28,1.2,1.55,1.0}; // ambient color shine +diffuse[] = {1.28,1.2,1.55,1.0}; // diffuse color shine +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; // unused +emmisive[] = {0.0,0.0,0.0,1.0}; // emmisive color +specular[] = {0.375,0.375,0.375,1}; // specular color + +specularPower = 10.0; // glosiness + +PixelShaderID = "Super"; // type of pixelshader +VertexShaderID = "Super"; // type of vertexshader +/********************************* +** STAGE 1 Normal Map (NOHQ) ** +*********************************/ +class Stage1 +{ + texture = "x\ace\addons\sys_arty_aimingpoints\data\m2a2_2_nohq.paa"; // path to normal map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 2 Detail Map (DT) ** +*********************************/ +class Stage2 +{ + texture = "ca\data\destruct\metal_rough_half_dt.paa"; // path to detail map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {19.9239,-1.74311,0}; + up[] = {1.74311,19.9239,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; +}; +/********************************* +** STAGE 3 Micro Map (MC) ** +*********************************/ +class Stage3 +{ + texture = "#(argb,8,8,3)color(0,0,0,0,MC)"; // micro color + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {0.984808,-0.173648,0}; + up[] = {0.173648,0.984808,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; +}; +/********************************* +** STAGE 4 Ambient Shadow (AS) ** +*********************************/ +class Stage4 +{ + texture = "#(argb,8,8,3)color(1,1,1,1,AS)"; // path to as map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 5 Specular (SMDI) ** +*********************************/ +class Stage5 +{ + texture = "x\ace\addons\sys_arty_aimingpoints\data\m2a2_2_smdi.paa"; // path to smdi map + //texture = "#(argb,8,8,3)color(1,1,1,1,SMDI)"; + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 6 Fresnel reflection ** +*********************************/ +class Stage6 +{ + texture = "#(ai,16,2,2)fresnel(1.4,1.16)"; // fresnel reflection terms #(ai, size,size, tile)fresnel(term 1, term 2) + uvSource = "none"; +}; +/********************************* +** STAGE 7 Reflection map ** +*********************************/ +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; // path to reflection map + uvSource = "none"; // source of uv mapping +}; +/********************************* +** STAGE 7 Thermal ** +*********************************/ +class StageTI +{ + texture = ""; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_nohq.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_nohq.paa new file mode 100644 index 0000000000..79f16cac50 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_nohq.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_smdi.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_smdi.paa new file mode 100644 index 0000000000..eb00d4af65 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_2_smdi.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_co.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_co.paa new file mode 100644 index 0000000000..6deeca95e2 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_co.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_mat.rvmat b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_mat.rvmat new file mode 100644 index 0000000000..98e9d30943 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_mat.rvmat @@ -0,0 +1,124 @@ +ambient[] = {1.28,1.2,1.55,1.0}; // ambient color shine +diffuse[] = {1.28,1.2,1.55,1.0}; // diffuse color shine +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; // unused +emmisive[] = {0.0,0.0,0.0,1.0}; // emmisive color +specular[] = {0.375,0.375,0.375,1}; // specular color + +specularPower = 10.0; // glosiness + +PixelShaderID = "Super"; // type of pixelshader +VertexShaderID = "Super"; // type of vertexshader + +/********************************* +** STAGE 1 Normal Map (NOHQ) ** +*********************************/ +class Stage1 +{ + texture = "x\ace\addons\sys_arty_aimingpoints\data\m2a2_3_nohq.paa"; // path to normal map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 2 Detail Map (DT) ** +*********************************/ +class Stage2 +{ + texture = "ca\data\destruct\metal_rough_half_dt.paa"; // path to detail map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {19.9239,-1.74311,0}; + up[] = {1.74311,19.9239,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; +}; +/********************************* +** STAGE 3 Micro Map (MC) ** +*********************************/ +class Stage3 +{ + texture = "#(argb,8,8,3)color(0,0,0,0,MC)"; // micro color + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {0.984808,-0.173648,0}; + up[] = {0.173648,0.984808,0}; + dir[] = {0,0,0}; + pos[] = {0,0,0}; + }; +}; +/********************************* +** STAGE 4 Ambient Shadow (AS) ** +*********************************/ +class Stage4 +{ + texture = "#(argb,8,8,3)color(1,1,1,1,AS)"; // path to as map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 5 Specular (SMDI) ** +*********************************/ +class Stage5 +{ + texture = "x\ace\addons\sys_arty_aimingpoints\data\m2a2_3_smdi.paa"; // path to smdi map + uvSource = "tex"; // source of uv mapping + /***************************** + ** UV Distorsion ** + *****************************/ + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +/********************************* +** STAGE 6 Fresnel reflection ** +*********************************/ +class Stage6 +{ + texture = "#(ai,16,2,2)fresnel(1.4,1.16)"; // fresnel reflection terms #(ai, size,size, tile)fresnel(term 1, term 2) + uvSource = "none"; +}; +/********************************* +** STAGE 7 Reflection map ** +*********************************/ +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; // path to reflection map + uvSource = "none"; // source of uv mapping +}; +/********************************* +** STAGE 7 Thermal ** +*********************************/ +class StageTI +{ + texture = ""; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_nohq.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_nohq.paa new file mode 100644 index 0000000000..0ed99ffe46 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_nohq.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_smdi.paa b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_smdi.paa new file mode 100644 index 0000000000..3cf7050d1a Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_3_smdi.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/m2a2_reflector_mat.rvmat b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_reflector_mat.rvmat new file mode 100644 index 0000000000..ffb2bb54aa --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/data/m2a2_reflector_mat.rvmat @@ -0,0 +1,75 @@ +class StageTI +{ + texture=""; +}; +ambient[]={1.28,1.2,1.55,1}; +diffuse[]={1.28,1.2,1.55,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.99999928,0.99999994,0.99999988,1}; +specularPower=100; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_aimingpoints\data\m2a2_1_nohq.tga"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="ca\data\destruct\metal_rough_half_dt.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="#(argb,8,8,3)color(0,1,1,1,SMDI)"; + uvSource="none"; +}; +class Stage6 +{ + texture="#(ai,16,2,2)fresnel(1.4,1.16)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_co.paa"; + uvSource="none"; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator.rvmat b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator.rvmat new file mode 100644 index 0000000000..7ee38ccacf --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator.rvmat @@ -0,0 +1,78 @@ +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,1}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=301.79999; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="x\ace\Addons\sys_arty_aimingpoints\data\sa_collimator_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="ca\data\destruct\metal_rough_half_dt.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={10,0,0}; + up[]={0,5,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\Addons\sys_arty_aimingpoints\data\sa_collimator_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,64,64,1)fresnel(4.74,1.16)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_co.paa"; + uvSource="none"; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_co.paa b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_co.paa new file mode 100644 index 0000000000..df857c4d2b Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_co.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_nohq.paa b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_nohq.paa new file mode 100644 index 0000000000..f666114d4f Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_nohq.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_smdi.paa b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_smdi.paa new file mode 100644 index 0000000000..d159e240d4 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/data/sa_collimator_smdi.paa differ diff --git a/TO_MERGE/ace/arty_aimingpoints/dialogs.hpp b/TO_MERGE/ace/arty_aimingpoints/dialogs.hpp new file mode 100644 index 0000000000..99dcd6f38f --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/dialogs.hpp @@ -0,0 +1,120 @@ +//dialogs.hpp + +#define __X SafeZoneX +#define __Y SafeZoneY +#define __W SafeZoneW +#define __H SafeZoneH + +#define __SX(var1) x = ((var1 * safeZoneW) + safeZoneX) +#define __SY(var1) y = ((var1 * safeZoneH) + safeZoneY) +#define __SW(var1) w = (var1 * safeZoneW) +#define __SH(var1) h = (var1 * safeZoneH) + +// 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_LISTNBOX 102 +#define CT_TOOLBOX 6 +#define CT_CHECKBOXES 7 +#define CT_PROGRESS 8 +#define CT_HTML 9 +#define CT_STATIC_SKEW 10 +#define CT_ACTIVETEXT 11 +#define CT_TREE 12 +#define CT_STRUCTURED_TEXT 13 +#define CT_CONTEXT_MENU 14 +#define CT_CONTROLS_GROUP 15 +#define CT_SHORTCUTBUTTON 16 +#define CT_XKEYDESC 40 +#define CT_XBUTTON 41 +#define CT_XLISTBOX 42 +#define CT_XSLIDER 43 +#define CT_XCOMBO 44 +#define CT_ANIMATED_TEXTURE 45 +#define CT_OBJECT 80 +#define CT_OBJECT_ZOOM 81 +#define CT_OBJECT_CONTAINER 82 +#define CT_OBJECT_CONT_ANIM 83 +#define CT_LINEBREAK 98 +#define CT_USER 99 +#define CT_MAP 100 +#define CT_MAP_MAIN 101 + +// Static styles +#define ST_POS 0x0F +#define ST_HPOS 0x03 +#define ST_VPOS 0x0C +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 +#define ST_DOWN 0x04 +#define ST_UP 0x08 +#define ST_VCENTER 0x0c + +#define ST_TYPE 0xF0 +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_TITLE_BAR 32 +#define ST_PICTURE 48 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX 96 +#define ST_GROUP_BOX2 112 +#define ST_HUD_BACKGROUND 128 +#define ST_TILE_PICTURE 144 +#define ST_WITH_RECT 160 +#define ST_LINE 176 + +#define ST_SHADOW 0x100 +#define ST_NO_RECT 0x200 +#define ST_KEEP_ASPECT_RATIO 0x800 + +#define Mainback_IDC 1104 +//MP Menu +#define Paused_Title_IDC 523 +#define CA_B_SAVE_IDC 103 +#define CA_B_Skip_IDC 1002 +#define CA_B_REVERT_IDC 119 +#define CA_B_Respawn_IDC 1010 +#define CA_B_Options_IDC 101 +#define CA_B_Abort_IDC 104 +//SP Menu +#define CA_PGTitle_IDC 523 +#define PG_Save_IDC 103 +#define PG_Skip_IDC 1002 +#define PG_Revert_IDC 119 +#define PG_Again_IDC 1003 +#define PG_Options_IDC 101 +#define PG_Abort_IDC 104 + +#define ACE_SETTINGS_IDC 113801 +#define ACE_LOGO_IDC 113805 + +#define FontM "Zeppelin32" +#define ClrWhite 1,1,1 +#define ClrBlack 0,0,0 +#define ClrGray 0.5,0.5,0.5 +#define ClrBlue 0.2,0.5,1 + + + +class ace_sys_aimingpoints_aimingCircleDisplay { + idd = 7832; + movingEnable = 0; + name = "ace_sys_aimingpoints_aimingCircleDisplay"; + onLoad = "_this call ace_sys_arty_aimingpoints_fnc_aimingCircleInitDisplay"; + onUnload = "_this call ace_sys_arty_aimingpoints_fnc_aimingCircleCloseDisplay"; + onKeyDown = "_this call ace_sys_arty_aimingpoints_fnc_aimingCircleHandleKey"; + class controlsBackground { + }; + class objects { + // define controls here + }; + class controls { + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_coverKnobs.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_coverKnobs.sqf new file mode 100644 index 0000000000..f648f782b1 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_coverKnobs.sqf @@ -0,0 +1,4 @@ +//fnc_coverKnobs.sqf +#include "\x\ace\addons\sys_arty_aimingpoints\script_component.hpp" +GVAR(currentAimingCircle) animate ["right_cover", 0]; +GVAR(currentAimingCircle) animate ["left_cover", 0]; diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_isKindOf.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_isKindOf.sqf new file mode 100644 index 0000000000..b57c89ad1a --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_isKindOf.sqf @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +private["_ret", "_parent"]; + +PARAMS_3(_mag,_type,_superClass); + +_ret = false; + +_parent = configName (inheritsFrom ( configFile >> _superClass >> _mag)); +while { _parent != "" } do { + if (_parent == _type) exitWith { + _ret = true; + }; + _parent = configName (inheritsFrom ( configFile >> _superClass >> _parent)); +}; + +_ret \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_lamp.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_lamp.sqf new file mode 100644 index 0000000000..c89250bc34 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_lamp.sqf @@ -0,0 +1,5 @@ +//fnc_lamp.sqf +#include "\x\ace\addons\sys_arty_aimingpoints\script_component.hpp" +_currentState = GVAR(currentAimingCircle) getVariable [QGVAR(aimingCircleLampOn), false]; +GVAR(currentAimingCircle) setVariable [QGVAR(aimingCircleLampOn), !_currentState, true]; +[QGVAR(aimingCircleLightEvent), [GVAR(currentAimingCircle), !_currentState]] call CBA_fnc_globalEvent; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_menuDef_stake.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_menuDef_stake.sqf new file mode 100644 index 0000000000..9efe14dd17 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_menuDef_stake.sqf @@ -0,0 +1,110 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +TRACE_1("enter", _this); + +private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus", "_goodStake", "_obj", "_objList"]; +PARAMS_2(_target,_params); + +_menuDef = []; +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; +//----------------------------------------------------------------------------- + +if (GVAR(placingStake)) exitWith { + TRACE_1("EXITINGGGG", GVAR(placingStake)); + _menuDef +}; + +_goodStake = false; +_isCollimator = false; +_isAimingCircle = false; +GVAR(pickupStakeObject) = nil; +_obj = nil; +if(_target isKindOf "ACE_Arty_AimingStakes" || {_target isKindOf "ACE_Arty_M2A2_Aiming_Circle"}) then { + _obj = _target; + _goodStake = true; + if (typeOf _obj == "ACE_Arty_M1A1_Collimator") then { + _isCollimator = true; + }; + if(typeOf _obj == "ACE_Arty_M2A2_Aiming_Circle") then { + _isAimingCircle = true; + }; +} else { + _objList = (getPos player) nearObjects["ACE_Arty_AimingStakes", 1.5]; + + + if (count _objList > 0) then { + { + private["_stake", "_rPos"]; + _stake = _x; + + _rPos = player worldToModel (getPos _stake); + TRACE_2("checking", _stake, _rPos); + if (_rPos select 1 > 0) exitWith { + TRACE_1("done!", _stake); + _obj = _stake; + _goodStake = true; + if (typeOf _stake == "ACE_Arty_M1A1_Collimator") then { + _isCollimator = true; + }; + }; + } forEach _objList; + }; +}; + +if (!_goodStake) exitWith { + TRACE_1("EXITINGGGG BAD STAKE", _menuDef,GVAR(placingStake)); + _menuDef +}; + +GVAR(pickupStakeObject) = _obj; +TRACE_1("doing menu"); +_menus = +[ + [ + ["main", "", _menuRsc], + [ + [localize "STR_ACE_ARTY_ALLIGN_COLLIMATOR", + { [GVAR(pickupStakeObject)] call FUNC(onAlignCollimator) }, + "", "", "", -1, + 1, (_goodStake && {_isCollimator})], + // Moved to sys_cargo\fnc_carry! + [localize "STR_ACE_ARTY_PICKUP_STAKE", + { [GVAR(pickupStakeObject)] call FUNC(onPickupStake) }, + "", "", "", -1, + 1, (_goodStake)], + [localize "STR_ACE_ARTY_RAISE_STAKE", + { [GVAR(pickupStakeObject), 0.25] call FUNC(onModifyStake) }, + "", "", "", -1, + 1, (_goodStake && {!_isCollimator} && {!_isAimingCircle})], + [localize "STR_ACE_ARTY_LOWER_STAKE", + { [GVAR(pickupStakeObject), -0.25] call FUNC(onModifyStake) }, + "", "", "", -1, + 1, (_goodStake && {!_isCollimator} && {!_isAimingCircle})] + ] + ] +]; +//----------------------------------------------------------------------------- + +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this}else{""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _this, __FILE__]; +}; + +TRACE_1("",_menuDef); +if(isNil "_menuDef") then {_menuDef = [] }; +_menuDef // return value diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_menuDef_stake_self.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_menuDef_stake_self.sqf new file mode 100644 index 0000000000..913f45dd78 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_menuDef_stake_self.sqf @@ -0,0 +1,64 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +TRACE_1("enter", _this); + +private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus", "_playerHasStake", "_wepArray"]; +private []; +// _this==[_target, _menuNameOrParams] +_target = _this select 0; +_params = _this select 1; + +_menuDef = []; +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; +//----------------------------------------------------------------------------- + +if (GVAR(placingStake)) exitWith { _menuDef }; + +_playerHasStake = false; +GVAR(selfInteractStake) = nil; +{ + private["_wep"]; + _wep = _x; + if ([_wep, "ACE_BaseAimingPost", "CfgWeapons"] call FUNC(isKindOf)) exitWith { + GVAR(selfInteractStake) = _wep; + _playerHasStake = true; + }; +} forEach (weapons player); + +_playerInVehicle = (vehicle player != player); + +_menus = +[ + [ + ["main", localize "STR_ACE_MENU_EQUIPPLAYER", _menuRsc], + [ + [localize "STR_ACE_ARTY_PLACE_STAKE", + { [GVAR(selfInteractStake)] call FUNC(onPlaceStake) }, + "", "", "", -1, + 1, !_playerInVehicle && {_playerHasStake}] + ] + ] +]; +//----------------------------------------------------------------------------- + +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this}else{""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _this, __FILE__]; +}; + +_menuDef // return value diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_needle.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_needle.sqf new file mode 100644 index 0000000000..159991ed79 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_needle.sqf @@ -0,0 +1,4 @@ +//fnc_needle.sqf +#include "\x\ace\addons\sys_arty_aimingpoints\script_component.hpp" +_needleUnlocked = GVAR(currentAimingCircle) getVariable[QGVAR(aimingCircleNeedleUnlocked), false]; +GVAR(currentAimingCircle) setVariable[QGVAR(aimingCircleNeedleUnlocked), !_needleUnlocked]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onFineMoveStake.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onFineMoveStake.sqf new file mode 100644 index 0000000000..dc30361926 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onFineMoveStake.sqf @@ -0,0 +1,2 @@ +#include "script_component.hpp" + diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onModifyStake.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onModifyStake.sqf new file mode 100644 index 0000000000..3f389569ca --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onModifyStake.sqf @@ -0,0 +1,18 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_pos", "_atl"]; + +PARAMS_2(_stake,_action); + +_atl = getPosATL _stake; +if ((_atl select 2) <= -1.75 && {_action < 0}) exitWith { }; +if ((_atl select 2) >= 0 && {_action > 0}) exitWith { }; + +_pos = getPos _stake; +_pos set[2, (_pos select 2) + _action]; + +_stake setPos _pos; +{ + _x reveal _obj; +} forEach playableUnits; diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onPickupStake.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onPickupStake.sqf new file mode 100644 index 0000000000..47c78bb3ec --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onPickupStake.sqf @@ -0,0 +1,13 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_stake", "_class"]; +//TRACE_1("", _this); + +PARAMS_1(_stake); + +_class = typeOf _stake; + +// deleteVehicle _stake; + +[_stake] call FUNC(onPlaceStake); diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStake.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStake.sqf new file mode 100644 index 0000000000..2efe1cbfda --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStake.sqf @@ -0,0 +1,97 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +#define ACE_TEXT_RED(Text) ("" + ##Text + "") +#define ACE_TEXT_SILVER(Text) ("" + ##Text + "") +#define ACE_TEXT_ORANGE(Text) ("" + ##Text + "") + +TRACE_1("enter", _this); + +GVAR(placingStake) = true; + +// begin stake placement +private["_localStake", "_pos", "_dir"]; + +PARAMS_1(_stake); +if(IS_STRING(_stake)) then { + player removeWeapon _stake; + + _localStake = _stake createVehicle [0,0,0]; +} else { + _localStake = _stake; +}; +TRACE_1("", _localStake); + +_pos = player modelToWorld [0, 1, 0]; +_dir = getDir player; +_stakeType = typeOf _localStake; +[_pos, _dir, _localStake, _stakeType] spawn { + private["_gunArray", "_confirmPlaceAction", "_cancelPlaceAction"]; + + PARAMS_4(_pos,_dir,_obj,_stakeType); + + player setVariable [QGVAR(stakePlaced), false, false]; + player setVariable [QGVAR(stakeCancel), false, false]; + player setVariable [QGVAR(registeredGun),objNull,false]; + + _confirmPlaceAction = player addAction[ACE_TEXT_SILVER(localize "STR_ACE_ARTY_PLACE_STAKE"),QPATHTO_F(fnc_onPlaceStakeConfirm),[_obj],-99,false,false,"","_target == player"]; + _cancelPlaceAction = player addAction[ACE_TEXT_RED(localize "STR_ACE_ARTY_TAKE_STAKE"),QPATHTO_F(fnc_onPlaceStakeCancel),[_obj],-100,false,false,"","_target == player"]; + _registerGunAction = player addAction[ACE_TEXT_ORANGE(localize "STR_ACE_ARTY_REGISTERGUN2STAKE"),QPATHTO_F(fnc_onRegisterGun),[],-101,false,false,"","_target == player && {cursorTarget isKindOf ""StaticWeapon""}"]; + + _obj attachTo [player, [0, 1, 0]]; + _obj setDir 0; + if (typeOf _obj == "ACE_Arty_M1A1_Collimator") then { + _obj setDir 180; + }; + _atlPos = [0,0,0]; + _aslPos = [0,0,0]; + while {!(player getVariable QGVAR(stakePlaced)) && {!(player getVariable QGVAR(stakeCancel))} && {alive player}} do{ + private["_distance", "_gun"]; + _pos = getPos _obj; + _atlPos = getPosATL _obj; + _aslPos = getPosASL _obj; + _dir = getDir player; + if (typeOf _obj == "ACE_Arty_M1A1_Collimator") then { + _dir = (_dir + 180) mod 360; + }; + // _obj setDir _dir; + // _obj setPos _pos; + // _obj setVectorUp[0,0,0.00001]; // fix incase we are on an incline + // TODO: show the "distance from gun" and "mil from gun" hints...? or a non-interrupt dialog? + //_gun = player getVariable [QGVAR(registeredGun),objNull]; + _gun = [] call FUNC(findGun); // keep working code in till you find a better fix rocko! :O + _distance = (_obj distance _gun) max 0; + _dn = if (!isNull _gun) then { getText(configFile >> "CfgVehicles" >> typeOf _gun >> "displayName") } else { "" }; + hintSilent format[localize "STR_ACE_ARTY_DISTANCE2GUN",_dn,_distance]; + sleep 0.1; + }; + detach _obj; + if ((player getVariable QGVAR(stakePlaced)) && {alive player}) then { + // deleteVehicle _obj; + + // _obj = _stakeType createVehicle _pos; + // player sideChat format["atl: %1, agl: %2", (_atlPos select 2), (_pos select 2)]; + // if(abs((_atlPos select 2)-(_pos select 2)) < 0.05) then { + // _aslPos set[2, (getTerrainHeightASL [_aslPos select 0, _aslPos select 1])]; + // }; + + _obj setPosASL _aslPos; + _obj setDir _dir; + _obj setVectorUp[0,0,0.00001]; // fix incase we are on an incline + { + (group _x) reveal _obj; + } forEach playableUnits; + (group player) reveal _obj; + + } else { + deleteVehicle _obj; + player addWeapon _stakeType; + }; + + // remove action item menus + player removeAction _confirmPlaceAction; + player removeAction _cancelPlaceAction; + player removeAction _registerGunAction; + + GVAR(placingStake) = false; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStakeCancel.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStakeCancel.sqf new file mode 100644 index 0000000000..b923847374 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStakeCancel.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +player setVariable [QGVAR(stakeCancel), true, false]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStakeConfirm.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStakeConfirm.sqf new file mode 100644 index 0000000000..d5abb78213 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onPlaceStakeConfirm.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +player setVariable [QGVAR(stakePlaced), true, false]; diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_onRegisterGun.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_onRegisterGun.sqf new file mode 100644 index 0000000000..d706584838 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_onRegisterGun.sqf @@ -0,0 +1,9 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_3(_target,_caller,_id); + +if (cursorTarget isKindOf "StaticWeapon") then { + player removeAction _id; + player setVariable [QGVAR(registeredGun),cursorTarget,false]; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/fnc_uncoverKnobs.sqf b/TO_MERGE/ace/arty_aimingpoints/fnc_uncoverKnobs.sqf new file mode 100644 index 0000000000..95df8d279f --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/fnc_uncoverKnobs.sqf @@ -0,0 +1,4 @@ +//fnc_uncoverKnobs.sqf +#include "\x\ace\addons\sys_arty_aimingpoints\script_component.hpp" +GVAR(currentAimingCircle) animate ["right_cover", 1]; +GVAR(currentAimingCircle) animate ["left_cover", 1]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/license.txt b/TO_MERGE/ace/arty_aimingpoints/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/arty_aimingpoints/model.cfg b/TO_MERGE/ace/arty_aimingpoints/model.cfg new file mode 100644 index 0000000000..dff2e213fd --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/model.cfg @@ -0,0 +1,320 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + class ACE_ARTY_AimingStakes_Skeleton: Default { + skeletonInherit = "Default"; + }; + class collimator_test_skeleton: Default { + skeletonInherit = "Default"; + skeletonBones[] = { + "stand","", + "Optics","stand", + "pattern","Optics", + "ll","pattern", + "lr","pattern", + "ur","pattern", + "ul","pattern" + + }; + }; + + class sa_collimator_skeleton: Default { + skeletonInherit = "Default"; + skeletonBones[] = { + "body","", + "optic_rotate_body","body", + "optic","optic_rotate_body" + }; + }; + + class ace_arty_m2a2_aiming_circle_skeleton: Default { + skeletonInherit = "Default"; + skeletonBones[] = { + "base","", + "OrientKnobLeft","base", + "OrientKnobRight","base", + "KnobCapLeft","base", + "KnobCapRight","base", + "LowerMotion","base", + "needle","base", + "UpperMotion","LowerMotion", + "MaskBox","LowerMotion", + "eye","UpperMotion", + "DeflectionKnob","UpperMotion", + "DeflectionKnobCoarse","DeflectionKnob", + "ElevationKnob","UpperMotion", + "ElevationKnobCoarse","ElevationKnob", + "ElevationOptic","UpperMotion" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + }; + class ACE_ARTY_AimingStakes: Default { + sectionsInherit = "Default"; + sections[] = {"all","stake","lamps","lamp_0","lamp_1","lightpoint_0","lightpoint_1"}; + skeletonName = "ACE_ARTY_AimingStakes_Skeleton"; + class Animations {}; + }; + class ACE_ARTY_AimingStakesW: ACE_ARTY_AimingStakes {}; + + class ace_arty_m2a2_aiming_circle: Default { + sectionsInherit = "Default"; + sections[] = {}; + skeletonName = "ace_arty_m2a2_aiming_circle_skeleton"; + class Animations { + class MainGun { + type="rotation"; + selection="ElevationOptic"; + sourceAddress = "clamp"; + source="user"; + axis="optic_elevation_axis"; + animPeriod=0.01; + initPhase=0; + maxValue="800"; + minValue="-400"; + angle1="rad -45"; + angle0="rad 22.5"; + }; + class MainTurret { + type="rotation"; + source="user"; + selection="LowerMotion"; + sourceAddress = "loop"; + axis="motion_rotation_axis"; + animPeriod=0.005; + minValue="-6400"; + maxValue="6400"; + angle0="rad -360"; + angle1="rad +360"; + }; + class upper_motion { + type="rotation"; + source="user"; + selection="UpperMotion"; + sourceAddress = "loop"; + axis="motion_rotation_axis"; + animPeriod=0.01; + initPhase=0; + minValue="-6400"; + maxValue="6400"; + angle0="rad -360"; + angle1="rad +360"; + }; + class deflection_knob { + type="rotation"; + source="user"; + selection="DeflectionKnob"; + sourceAddress = "loop"; + axis="deflection_rotation_axis"; + animPeriod=0.01; + minValue="-100"; + maxValue="100"; + angle0="rad -360"; + angle1="rad +360"; + }; + class deflection_knob_coarse { + type="rotation"; + source="user"; + selection="DeflectionKnobCoarse"; + sourceAddress = "loop"; + axis="deflection_rotation_axis"; + animPeriod=0.01; + minValue="-64"; + maxValue="64"; + angle0="rad -720"; + angle1="rad +720"; + }; + class elevation_knob { + type="rotation"; + source="user"; + selection="ElevationKnob"; + sourceAddress = "loop"; + axis="elevation_rotation_axis"; + animPeriod=0.01; + minValue="-100"; + maxValue="100"; + angle1="rad -360"; + angle0="rad +360"; + }; + class elevation_knob_coarse { + type="rotation"; + source="user"; + selection="ElevationKnobCoarse"; + sourceAddress = "loop"; + axis="elevation_rotation_axis"; + animPeriod=0.01; + minValue="-4"; + maxValue="8"; + angle1="rad -360"; + angle0="rad +360"; + }; + class orienting_knobs { + type="rotation"; + source="user"; + selection="OrientingKnobs"; + sourceAddress = "loop"; + axis="orienting_knob_axis"; + animPeriod=0.01; + minValue="-6400"; + maxValue="6400"; + angle0="rad -360"; + angle1="rad +360"; + }; + class left_cover { + type="rotation"; + source="user"; + selection="KnobCapLeft"; + sourceAddress = "clamp"; + axis="cover_left_rotation_axis"; + animPeriod=1; + minValue="0"; + maxValue="1"; + angle0="rad 0"; + angle1="rad +45"; + }; + class right_cover { + type="rotation"; + source="user"; + selection="KnobCapRight"; + sourceAddress = "clamp"; + axis="cover_right_rotation_axis"; + animPeriod=1; + minValue="0"; + maxValue="1"; + angle0="rad 0"; + angle1="rad -45"; + }; + class compass_needle + { + type="rotation"; + source="user"; + animPeriod = 0;//Unknown + sourceAddress = "loop"; + selection="needle"; + axis="motion_rotation_axis"; + minValue="-360"; + maxValue="360"; + angle0="rad +360"; + angle1="rad -360"; + }; + }; + }; + + class sa_collimator: Default { + sectionsInherit = "Default"; + sections[] = {"backlight_reflector"}; + skeletonName = "sa_collimator_skeleton"; + class Animations { + class elevate_optic { + type="rotation"; + selection="optic"; + sourceAddress = "clamp"; + source="user"; + axis="optic_axis"; + animPeriod=0; + initPhase=0; + minValue="-300"; + maxValue="300"; + angle0="rad 16.875"; + angle1="rad -16.875"; + }; + class rotate_optic { + type="rotation"; + source="user"; + selection="optic_rotate_body"; + sourceAddress = "loop"; + axis="optic_rotate_axis"; + memory = true; + animPeriod=0; + minValue="-6400"; + maxValue="6400"; + angle0="rad -360"; + angle1="rad +360"; + }; + }; + }; + + class collimator_test: Default { + sectionsInherit = "Default"; + sections[] = {"ll","ul","lr","ur","stand","Optics","pattern"}; + skeletonName = "collimator_test_skeleton"; + class Animations { + class expand_ul { + type="translation"; + source="user"; + selection="ul"; + sourceAddress = "clamp"; + axis="ul_axis"; + memory = true; + animPeriod=0.0001; + minValue="-1"; + maxValue="1"; + offset0="-1"; + offset1="1"; + }; + class expand_lr { + type="translation"; + source="user"; + selection="lr"; + sourceAddress = "clamp"; + axis="lr_axis"; + memory = true; + animPeriod=0.0001; + minValue="-1"; + maxValue="1"; + offset0="-1"; + offset1="1"; + }; + class expand_ur { + type="translation"; + source="user"; + selection="ur"; + sourceAddress = "clamp"; + axis="ur_axis"; + memory = true; + animPeriod=0.0001; + minValue="-1"; + maxValue="1"; + offset0="-1"; + offset1="1"; + }; + class expand_ll { + type="translation"; + source="user"; + selection="ll"; + sourceAddress = "clamp"; + axis="ll_axis"; + memory = true; + animPeriod=0.0001; + minValue="-1"; + maxValue="1"; + offset0="-1"; + offset1="1"; + }; + + class offset { + type="translation"; + source="user"; + selection="pattern"; + sourceAddress = "clamp"; + axis="offset_axis"; + memory = true; + animPeriod=0.0001; + minValue="-100"; + maxValue="100"; + offset0="-0.23377"; + offset1="0.23377"; + }; + + + }; + }; +}; diff --git a/TO_MERGE/ace/arty_aimingpoints/sa_collimator.p3d b/TO_MERGE/ace/arty_aimingpoints/sa_collimator.p3d new file mode 100644 index 0000000000..fe84040933 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/sa_collimator.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/sa_collimator_wep.p3d b/TO_MERGE/ace/arty_aimingpoints/sa_collimator_wep.p3d new file mode 100644 index 0000000000..ec211657a3 Binary files /dev/null and b/TO_MERGE/ace/arty_aimingpoints/sa_collimator_wep.p3d differ diff --git a/TO_MERGE/ace/arty_aimingpoints/script_component.hpp b/TO_MERGE/ace/arty_aimingpoints/script_component.hpp new file mode 100644 index 0000000000..0b333bfb26 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/script_component.hpp @@ -0,0 +1,15 @@ +#define COMPONENT sys_arty_aimingpoints +#include "\x\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_AIMINGPOINTS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_AIMINGPOINTS + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_AIMINGPOINTS +#endif + +#include "\x\ace\addons\main\script_macros.hpp" +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC \ No newline at end of file diff --git a/TO_MERGE/ace/arty_aimingpoints/stringtable.xml b/TO_MERGE/ace/arty_aimingpoints/stringtable.xml new file mode 100644 index 0000000000..5f40ea29d0 --- /dev/null +++ b/TO_MERGE/ace/arty_aimingpoints/stringtable.xml @@ -0,0 +1,178 @@ + + + + + +Richtlatte ausrichten +Align Stake +Align Stake to %1 +Zarovnat Tyč +Align Stake +Dopasuj słup celowniczy +Align Stake +Выровнять Стойку +Align Stake + + +Richtlatte hoch +Raise Stake +Raise Stake +Zvýšit výšku tyče +Raise Stake +Podnieś słup celowniczy +Raise Stake +Поднять Стойку +Raise Stake + + +Richtlatte runter +Lower Stake +Lower Stake +Snižít výšku tyče +Lower Stake +Opuść słup celowniczy +Lower Stake +Опустить Стойку +Lower Stake + + +Richtlatte aufnehmen +Pickup Aiming Point +Pickup Aiming Point +Sebrat zaměřovací tyč +Pickup Aiming Point +Zabierz słup celowniczy +Pickup Aiming Point +Взять Стойку +Pickup Aiming Point + + +Richtlatte platzieren +Place Aiming Point +Place Aiming Point +Umístit zaměřovací tyč +Place Aiming Point +Ustaw słup celowniczy +Place Aiming Point +Установить прицельную стойку +Place Aiming Point + + +Richtlatte einpacken +Pack Aiming Point +Pack Aiming Point +Sbalit zaměřovací tyč +Pack Aiming Point +Spakuj słup celowniczy +Pack Aiming Point +Упаковать прицельную стойку +Pack Aiming Point + + +Kollimator ausrichten +Align Collimator +Align Collimator +Zarovnat kolimátor +Align Collimator +Dopasuj kolimator +Align Collimator +Выровнять коллиматор +Align Collimator + + +Kollimator einstellen +Adjust Collimator +Adjust Collimator +Nastavit kolimátor +Adjust Collimator +Wyreguluj kolimator +Adjust Collimator +Отрегулировать коллиматор +Adjust Collimator + + +Abstand zu %1: %2 m +Distance to %1: %2 m +Distance to %1: %2 m +Vzdálenost k %1: %2 m +Distance to %1: %2 m +Odległość do %1: %2 m +Distance to %1: %2 m +Дистанция до %1: %2 m +Distance to %1: %2 m + + + + + +Richtlatte (M58) +M1A2 M58 Aiming Post +M1A2 M58 Aiming Post +M1A2 M58 zaměřovací tyč +M1A2 M58 Aiming Post +Słup celowniczy M1A2 M58 +M1A2 M58 Aiming Post +Прицельная стойка M1A2 M58 +M1A2 M58 Aiming Post + + +Richtlatte (M59) +M1A2 M59 Aiming Post +M1A2 M59 Aiming Post +M1A2 M59 zaměřovací tyč +M1A2 M59 Aiming Post +Słup celowniczy M1A2 M59 +M1A2 M59 Aiming Post +Прицельная стойка M1A2 M59 +M1A2 M59 Aiming Post + + + + + +Farbe: grün +Aiming Post, M1A2 with M58, green +Aiming Post, M1A2 with M58, green +Zaměřovací tyč, M1A2 s M58, zelená +Aiming Post, M1A2 with M58, green +Słup celowniczy M1A2 M59 (zielony) +Aiming Post, M1A2 with M58, green +Прицельная стойка, M1A2 с M58, зелёная +Aiming Post, M1A2 with M58, green + + +Farbe: orange +Aiming Post, M1A2 with M59, orange +Aiming Post, M1A2 with M59, orange +Zaměřovací tyč, M1A2 s M59, oranžová +Aiming Post, M1A2 with M59, orange +Słup celowniczy M1A2 M59 (pomarańczowy) +Aiming Post, M1A2 with M59, orange +Прицельная стойка, M1A2 с M59, оранжевая +Aiming Post, M1A2 with M59, orange + + +Kollimator (M1A1) +Collimator, M1A1 +Collimator, M1A1 +Kolimátor, M1A1 +Collimator, M1A1 +Kolimator M1A1 +Collimator, M1A1 +Коллиматор, M1A1 +Collimator, M1A1 + + +Aiming Circle, M2A2 +Aiming Circle, M2A2 +Aiming Circle, M2A2 +Aiming Circle, M2A2 +Aiming Circle, M2A2 +Okrąg celowniczy M2A2 +Aiming Circle, M2A2 +Буссоль, M2A2 +Aiming Circle, M2A2 + + + + diff --git a/TO_MERGE/ace/arty_ammunition/$PBOPREFIX$ b/TO_MERGE/ace/arty_ammunition/$PBOPREFIX$ new file mode 100644 index 0000000000..b41fba868e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/$PBOPREFIX$ @@ -0,0 +1 @@ +x\ace\Addons\sys_arty_ammunition \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/105mm/CfgAmmo.hpp new file mode 100644 index 0000000000..0cffdb6f74 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/CfgAmmo.hpp @@ -0,0 +1,165 @@ + +// class name structure +// prefix_caliber_shell_fuze_setting +class ace_arty_howitzer_105mm_base : ace_arty_howitzer_base { + whistleDist = 1500; + //soundFly[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\arty_flightsound",10,1.2,600}; +}; + +class ace_arty_105mm_m1_m782_pd: ace_arty_howitzer_105mm_base { + hit = 110; + indirecthit = 50; + indirecthitrange = 11.52; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m1_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; + caliber = 6; +}; + +class ace_arty_105mm_m1_m782_time: ace_arty_105mm_m1_m782_pd { + hit = 0; + indirecthit = 0; + indirecthitrange = 0; + CraterEffects = ""; + ExplosionEffects = ""; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_time.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_105mm_m1_explosion"; +}; + +class ace_arty_105mm_m1_m782_prox: ace_arty_105mm_m1_m782_time { + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_prox.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_105mm_m1_explosion"; +}; + +class ace_arty_105mm_m1_m782_delay: ace_arty_105mm_m1_m782_prox { + ACE_FRAG_SKIP = 1; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_delay.sqf"; + soundHit[] = {"",0,1,0}; +}; + +class ace_arty_105mm_m1_explosion : ace_arty_howitzer_105mm_base { + hit = 110; + indirecthit = 50; + indirecthitrange = 11.52; + explosionTime = 0.0001; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m1_shell.p3d"; // Add model or : No shape for ammo type ace_arty_105mm_m1_explosion +}; + +class ace_arty_105mm_m1_delay_action: ace_arty_105mm_m1_m782_pd { + explosionTime = 0.05; + deflecting=65; +}; + + +class ace_arty_105mm_m314a3_m782 : ace_arty_howitzer_105mm_base { + hit = 0; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m314a3_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "GrenadeExplosion"; + caliber = 6; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 500; + ACE_ARTY_BASEEJECT_COMPENSATE = 0; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.25; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_time.sqf"; + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\105mm\eject_illum.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; + +class ace_arty_105mm_m84a1_m782 : ace_arty_howitzer_105mm_base { + hit = 0; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m84a1_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "WPExplosion"; + caliber = 6; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_time.sqf"; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 150; + ACE_ARTY_BASEEJECT_COMPENSATE = 1; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.125; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\105mm\eject_smoke_m84.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; + +class ace_arty_105mm_m916_m782 : ace_arty_howitzer_105mm_base { + hit = 0; + indirecthit = 0; + indirecthitrange = 5; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m916_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = ""; + caliber = 6; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_time.sqf"; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 50; + ACE_ARTY_BASEEJECT_COMPENSATE = 1; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.25; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\105mm\eject_dpicm.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; + + +class ace_arty_105mm_m60a2_m782_pd: ace_arty_howitzer_105mm_base { + hit = 110; + indirecthit = 50; + indirecthitrange = 11.52; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m60a2_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "ace_arty_WPExplosion"; + caliber = 6; +}; + +class ARTY_SmokeShellWhite; +class ace_arty_105mm_m84a1_m782_smokeCanisterHC : ARTY_SmokeShellWhite { + explosionTime = 6; + timeToLive = 120; + smokeColor[] = {1, 1, 1, 1}; + effectsSmoke = "ace_arty_105mm_m84a1_m782_smokeCanisterHC_effect"; + model = "\ca\Weapons\granat"; +}; + +class ace_arty_105mm_m314a3_m782_flare :FlareBase { + model="\ca\Weapons\granat"; + lightColor[] = {0.8, 0.8, 0.8, 0}; + deflecting=65; +}; + +class G_40mm_HE; +class ace_arty_dpicm_m80 : G_40mm_HE { + hit = 100; + ace_hit = 100; + ace_heat = 1; + indirectHit = 24; + indirectHitRange = 5; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m80_bomblet.p3d"; + ExplosionEffects = "ace_arty_dpicmEffects"; +}; diff --git a/TO_MERGE/ace/arty_ammunition/105mm/CfgMagazines.hpp b/TO_MERGE/ace/arty_ammunition/105mm/CfgMagazines.hpp new file mode 100644 index 0000000000..21c3d833ec --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/CfgMagazines.hpp @@ -0,0 +1,201 @@ +class ace_arty_105mm_default : ace_arty_howitzer_default { + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\105mm\tables\ace_arty_105mm_genericBtab_%1_chg%2.sqf"; // 1 = angle (LA/HA) 2 = chg# + ACE_ARTY_BTABS_KEY = "ace_arty_105mm_genericBtab_%1_chg%2"; + scope = 2; + ACE_Weight = 18.10; +}; + +class ace_arty_105mm_m1 : ace_arty_105mm_default { + scope = 1; + type = 0; + displayName = "105mm M1 HE"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_105mm_m1_m782_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m14_chg%1.paa"; + ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m1.paa"; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m1_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd", "prox", "time", "delay"}; + ACE_ARTY_FUZE_DESC[] = {"Point Detonate", "Proximity", "Time", "Delay"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_105mm_m1_m782_pd", "ace_arty_105mm_m1_m782_prox", "ace_arty_105mm_m1_m782_time", "ace_arty_105mm_m1_m782_delay"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 8; + ACE_ARTY_INEFFECT = "HE"; +}; + +class ace_arty_105mm_m1_m782_pd_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M1 - M782 PD Chg. 1"; + ammo = "ace_arty_105mm_m1_m782_pd"; + initSpeed = 205; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_105mm_m1"; +}; + +class ace_arty_105mm_m1_m782_pd_chg2 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 223; displayName = "105mm M1 - M782 PD Chg. 2"; }; +class ace_arty_105mm_m1_m782_pd_chg3 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 247; displayName = "105mm M1 - M782 PD Chg. 3"; }; +class ace_arty_105mm_m1_m782_pd_chg4 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 278; displayName = "105mm M1 - M782 PD Chg. 4"; }; +class ace_arty_105mm_m1_m782_pd_chg5 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 325; displayName = "105mm M1 - M782 PD Chg. 5"; }; +class ace_arty_105mm_m1_m782_pd_chg6 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 393; displayName = "105mm M1 - M782 PD Chg. 6"; }; +class ace_arty_105mm_m1_m782_pd_chg7 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 494; displayName = "105mm M1 - M782 PD Chg. 7"; }; +class ace_arty_105mm_m1_m782_pd_chg8 : ace_arty_105mm_m1_m782_pd_chg1 { initSpeed = 616; displayName = "105mm M1 - M782 PD Chg. 8"; }; + +class ace_arty_105mm_m1_m782_time_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M1 - M782 TIME Chg. 1"; + ammo = "ace_arty_105mm_m1_m782_time"; + initSpeed = 205; +}; + +class ace_arty_105mm_m1_m782_time_chg2 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 223; displayName = "105mm M1 - M782 TIME Chg. 2"; }; +class ace_arty_105mm_m1_m782_time_chg3 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 247; displayName = "105mm M1 - M782 TIME Chg. 3"; }; +class ace_arty_105mm_m1_m782_time_chg4 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 278; displayName = "105mm M1 - M782 TIME Chg. 4"; }; +class ace_arty_105mm_m1_m782_time_chg5 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 325; displayName = "105mm M1 - M782 TIME Chg. 5"; }; +class ace_arty_105mm_m1_m782_time_chg6 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 393; displayName = "105mm M1 - M782 TIME Chg. 6"; }; +class ace_arty_105mm_m1_m782_time_chg7 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 494; displayName = "105mm M1 - M782 TIME Chg. 7"; }; +class ace_arty_105mm_m1_m782_time_chg8 : ace_arty_105mm_m1_m782_time_chg1 { initSpeed = 616; displayName = "105mm M1 - M782 TIME Chg. 8"; }; + +class ace_arty_105mm_m1_m782_prox_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M1 - M782 PROX Chg. 1"; + ammo = "ace_arty_105mm_m1_m782_prox"; + initSpeed = 205; +}; + +class ace_arty_105mm_m1_m782_prox_chg2 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 223; displayName = "105mm M1 - M782 PROX Chg. 2"; }; +class ace_arty_105mm_m1_m782_prox_chg3 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 247; displayName = "105mm M1 - M782 PROX Chg. 3"; }; +class ace_arty_105mm_m1_m782_prox_chg4 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 278; displayName = "105mm M1 - M782 PROX Chg. 4"; }; +class ace_arty_105mm_m1_m782_prox_chg5 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 325; displayName = "105mm M1 - M782 PROX Chg. 5"; }; +class ace_arty_105mm_m1_m782_prox_chg6 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 393; displayName = "105mm M1 - M782 PROX Chg. 6"; }; +class ace_arty_105mm_m1_m782_prox_chg7 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 494; displayName = "105mm M1 - M782 PROX Chg. 7"; }; +class ace_arty_105mm_m1_m782_prox_chg8 : ace_arty_105mm_m1_m782_prox_chg1 { initSpeed = 616; displayName = "105mm M1 - M782 PROX Chg. 8"; }; + +class ace_arty_105mm_m1_m782_delay_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M1 - M782 DELAY Chg. 1"; + ammo = "ace_arty_105mm_m1_m782_delay"; + initSpeed = 205; +}; + +class ace_arty_105mm_m1_m782_delay_chg2 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 223; displayName = "105mm M1 - M782 DELAY Chg. 2"; }; +class ace_arty_105mm_m1_m782_delay_chg3 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 247; displayName = "105mm M1 - M782 DELAY Chg. 3"; }; +class ace_arty_105mm_m1_m782_delay_chg4 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 278; displayName = "105mm M1 - M782 DELAY Chg. 4"; }; +class ace_arty_105mm_m1_m782_delay_chg5 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 325; displayName = "105mm M1 - M782 DELAY Chg. 5"; }; +class ace_arty_105mm_m1_m782_delay_chg6 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 393; displayName = "105mm M1 - M782 DELAY Chg. 6"; }; +class ace_arty_105mm_m1_m782_delay_chg7 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 494; displayName = "105mm M1 - M782 DELAY Chg. 7"; }; +class ace_arty_105mm_m1_m782_delay_chg8 : ace_arty_105mm_m1_m782_delay_chg1 { initSpeed = 616; displayName = "105mm M1 - M782 DELAY Chg. 8"; }; + +class ace_arty_105mm_m314a3 : ace_arty_105mm_default { + scope = 1; + type = 0; + displayName = "105mm M314A3 Illumination"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_105mm_m314a3_m782_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m14_chg%1.paa"; + ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\M314A3.paa"; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m314a3_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_105mm_m314a3_m782"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 7; + ACE_ARTY_INEFFECT = "ILLUM"; +}; + +class ace_arty_105mm_m314a3_m782_time_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M314A3 - M782 TIME Chg. 1"; + ammo = "ace_arty_105mm_m314a3_m782"; + initSpeed = 205; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_105mm_m314a3"; +}; + +class ace_arty_105mm_m314a3_m782_time_chg2 : ace_arty_105mm_m314a3_m782_time_chg1 { initSpeed = 223; displayName = "105mm M314A3 - M782 TIME Chg. 2"; }; +class ace_arty_105mm_m314a3_m782_time_chg3 : ace_arty_105mm_m314a3_m782_time_chg1 { initSpeed = 247; displayName = "105mm M314A3 - M782 TIME Chg. 3"; }; +class ace_arty_105mm_m314a3_m782_time_chg4 : ace_arty_105mm_m314a3_m782_time_chg1 { initSpeed = 278; displayName = "105mm M314A3 - M782 TIME Chg. 4"; }; +class ace_arty_105mm_m314a3_m782_time_chg5 : ace_arty_105mm_m314a3_m782_time_chg1 { initSpeed = 325; displayName = "105mm M314A3 - M782 TIME Chg. 5"; }; +class ace_arty_105mm_m314a3_m782_time_chg6 : ace_arty_105mm_m314a3_m782_time_chg1 { initSpeed = 393; displayName = "105mm M314A3 - M782 TIME Chg. 6"; }; +class ace_arty_105mm_m314a3_m782_time_chg7 : ace_arty_105mm_m314a3_m782_time_chg1 { initSpeed = 494; displayName = "105mm M314A3 - M782 TIME Chg. 7"; }; + +class ace_arty_105mm_m84a1 : ace_arty_105mm_default { + scope = 1; + type = 0; + displayName = "105mm M84A1 Base Ejecting HC Smoke"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_105mm_m84a1_m782_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m14_chg%1.paa"; + ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\M84A1.paa"; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m84a1_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_105mm_m84a1_m782"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 7; + ACE_ARTY_INEFFECT = "SMOKE"; +}; + +class ace_arty_105mm_m84a1_m782_time_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M84A1 - M782 TIME Chg. 1"; + ammo = "ace_arty_105mm_m84a1_m782"; + initSpeed = 205; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_105mm_m84a1"; +}; + +class ace_arty_105mm_m84a1_m782_time_chg2 : ace_arty_105mm_m84a1_m782_time_chg1 { initSpeed = 223; displayName = "105mm M84A1 - M782 TIME Chg. 2"; }; +class ace_arty_105mm_m84a1_m782_time_chg3 : ace_arty_105mm_m84a1_m782_time_chg1 { initSpeed = 247; displayName = "105mm M84A1 - M782 TIME Chg. 3"; }; +class ace_arty_105mm_m84a1_m782_time_chg4 : ace_arty_105mm_m84a1_m782_time_chg1 { initSpeed = 278; displayName = "105mm M84A1 - M782 TIME Chg. 4"; }; +class ace_arty_105mm_m84a1_m782_time_chg5 : ace_arty_105mm_m84a1_m782_time_chg1 { initSpeed = 325; displayName = "105mm M84A1 - M782 TIME Chg. 5"; }; +class ace_arty_105mm_m84a1_m782_time_chg6 : ace_arty_105mm_m84a1_m782_time_chg1 { initSpeed = 393; displayName = "105mm M84A1 - M782 TIME Chg. 6"; }; +class ace_arty_105mm_m84a1_m782_time_chg7 : ace_arty_105mm_m84a1_m782_time_chg1 { initSpeed = 494; displayName = "105mm M84A1 - M782 TIME Chg. 7"; }; + +class ace_arty_105mm_m916 : ace_arty_105mm_default { + scope = 1; + type = 0; + displayName = "105mm M916 Base Ejecting DPICM"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_105mm_m916_m782_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m14_chg%1.paa"; + ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\M916.paa"; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m916_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_105mm_m916_m782"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 8; + ACE_ARTY_INEFFECT = "DPICM"; +}; + +class ace_arty_105mm_m916_m782_time_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M916 - M782 TIME Chg. 1"; + ammo = "ace_arty_105mm_m916_m782"; + initSpeed = 205; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_105mm_m916"; +}; +// m119 setVariable ["ace_sys_arty_currentRound", ["ace_arty_105mm_m1_m782_pd_chg6", [0], random (10000)]]; m119 fire "ace_arty_m119"; +class ace_arty_105mm_m916_m782_time_chg2 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 223; displayName = "105mm M916 - M782 TIME Chg. 2"; }; +class ace_arty_105mm_m916_m782_time_chg3 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 247; displayName = "105mm M916 - M782 TIME Chg. 3"; }; +class ace_arty_105mm_m916_m782_time_chg4 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 278; displayName = "105mm M916 - M782 TIME Chg. 4"; }; +class ace_arty_105mm_m916_m782_time_chg5 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 325; displayName = "105mm M916 - M782 TIME Chg. 5"; }; +class ace_arty_105mm_m916_m782_time_chg6 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 393; displayName = "105mm M916 - M782 TIME Chg. 6"; }; +class ace_arty_105mm_m916_m782_time_chg7 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 494; displayName = "105mm M916 - M782 TIME Chg. 7"; }; +class ace_arty_105mm_m916_m782_time_chg8 : ace_arty_105mm_m916_m782_time_chg1 { initSpeed = 616; displayName = "105mm M916 - M782 TIME Chg. 8"; }; + + +class ace_arty_105mm_m60a2 : ace_arty_105mm_default { + scope = 1; + type = 0; + displayName = "105mm M60A2 WP"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_105mm_m60a2_m782_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m14_chg%1.paa"; + ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\M60A2.paa"; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m60a2_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd"}; + ACE_ARTY_FUZE_DESC[] = {"Point Detonate"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_105mm_m60a2_m782"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 7; + ACE_ARTY_INEFFECT = "WP"; +}; + +class ace_arty_105mm_m60a2_m782_pd_chg1 : ace_arty_howitzer_mag { + displayName = "105mm M60A2 - M782 PD Chg. 1"; + ammo = "ace_arty_105mm_m60a2_m782_pd"; + initSpeed = 205; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_105mm_m60a2"; +}; + +class ace_arty_105mm_m60a2_m782_pd_chg2 : ace_arty_105mm_m60a2_m782_pd_chg1 { initSpeed = 223; displayName = "105mm M60A2 - M782 PD Chg. 2"; }; +class ace_arty_105mm_m60a2_m782_pd_chg3 : ace_arty_105mm_m60a2_m782_pd_chg1 { initSpeed = 247; displayName = "105mm M60A2 - M782 PD Chg. 3"; }; +class ace_arty_105mm_m60a2_m782_pd_chg4 : ace_arty_105mm_m60a2_m782_pd_chg1 { initSpeed = 278; displayName = "105mm M60A2 - M782 PD Chg. 4"; }; +class ace_arty_105mm_m60a2_m782_pd_chg5 : ace_arty_105mm_m60a2_m782_pd_chg1 { initSpeed = 325; displayName = "105mm M60A2 - M782 PD Chg. 5"; }; +class ace_arty_105mm_m60a2_m782_pd_chg6 : ace_arty_105mm_m60a2_m782_pd_chg1 { initSpeed = 393; displayName = "105mm M60A2 - M782 PD Chg. 6"; }; +class ace_arty_105mm_m60a2_m782_pd_chg7 : ace_arty_105mm_m60a2_m782_pd_chg1 { initSpeed = 494; displayName = "105mm M60A2 - M782 PD Chg. 7"; }; diff --git a/TO_MERGE/ace/arty_ammunition/105mm/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/105mm/CfgVehicles.hpp new file mode 100644 index 0000000000..bdbffc40a6 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/CfgVehicles.hpp @@ -0,0 +1,63 @@ +class ace_arty_m1_cartridge : ACE_Arty_ShellHolder { + scope = 1; + icon = "iconThing"; + mapSize = 0; // iconsize on map... small object such as a tree is 0.7 + + displayName = "M1 HE Cartridge"; + + vehicleClass = "Objects"; + nameSound = "obj_object"; + + picture = "pictureThing"; + class Library {libTextDesc = "";}; + descriptionShort = ""; + + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + type = 1; + + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m1_cartridge.p3d"; + animated = false; + reversed = false; + class EventHandlers { + killed = "_this call ace_sys_arty_ammunition_fnc_onShellDestroyed"; + }; + + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_105mm_m1"; +}; + +class ace_arty_m84a1_cartridge: ace_arty_m1_cartridge { + displayName = "M84A1 Smoke Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m84a1_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_105mm_m84a1"; +}; + +class ace_arty_m314a3_cartridge : ace_arty_m1_cartridge { + displayName = "M314A3 Illum Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m314a3_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_105mm_m314a3"; +}; + +class ace_arty_m916_cartridge : ace_arty_m1_cartridge { + displayName = "M916 DPICM Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m916_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_105mm_m916"; +}; + +class ace_arty_m60a2_cartridge : ace_arty_m1_cartridge { + displayName = "M602A2 WP Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m60a2_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_105mm_m60a2"; +}; +class ACE_UsedTubes; +class ace_arty_m14_casing : ACE_UsedTubes { + model = "\x\ace\addons\sys_arty_ammunition\105mm\ace_arty_m14_casing.p3d"; +}; + +class ace_arty_105mm_m314a3_m782_parachute : ACE_HuntIR { + class EventHandlers { + EXTENDED_EVENTHANDLERS + }; + SLX_XEH_DISABLED = 0; +}; // Defined in 60mm diff --git a/TO_MERGE/ace/arty_ammunition/105mm/XEH_illum_init.sqf b/TO_MERGE/ace/arty_ammunition/105mm/XEH_illum_init.sqf new file mode 100644 index 0000000000..cea0e827cb --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/XEH_illum_init.sqf @@ -0,0 +1,71 @@ +//XEH_illum_init.sqf +#define MAX_ILL 2.1 + +private["_flareChute", "_pos", "_light", "_sm", "_sp"]; + +_flareChute = _this select 0; +_pos = getPos (_flareChute); + +_light = "#lightpoint" createVehicleLocal _pos; +_light setPos _pos; +_light setLightBrightness MAX_ILL; +_light setLightAmbient[238/255, 233/255, 183/255]; +_light setLightColor[241/255, 226/255, 62/255]; +_light lightAttachObject [_flareChute, [0,0,-0.8]]; + +_sm = "#particlesource" createVehicleLocal getPos (_flareChute); +_sm setParticleRandom [0.5, [0, 0, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0, 360]; +_sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 30, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.3,4], + [[0.9,0.9,0.9,0.6], [1,1,1,0.3], [1,1,1,0]],[1],0.1,0.1,"","",_light]; +_sm setDropInterval 0.02; + +_sp = "#particlesource" createVehicleLocal getPos (_flareChute); +_sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +_sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +_sp setDropInterval 0.001; + +// _sp2 = "#particlesource" createVehicleLocal getPos (_flareChute); +// _sp2 setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +// _sp2 setParticleParams ["\ca\Data\Flare12", + // "", "Billboard", 1, 0.1, [0, 0, 0], + // [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + // [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +// _sp2 setDropInterval 0.001; + + +//_flareChute setVectorDir _chuteVel; + +[_flareChute, _light, _sp, _sm] spawn { + private["_shell", "_light", "_sp", "_sm", "_start", "_b", "_s"]; + _shell = _this select 0; + _light = _this select 1; + _sp = _this select 2; + _sm = _this select 3; + + + _start = time; + _b = MAX_ILL; + _s = 0; + waitUntil { + if((_start + 50) < time) then { + _b = (_b - random (0.1)) max 0; + _light setLightBrightness _b; + }; + if((_start + 60) < time) then { + deleteVehicle _light; + deleteVehicle _sp; +// deleteVehicle _sp2; + deleteVehicle _sm; + }; + sleep 0.1; + (!alive _shell && (_start + 60) < time); + }; + deleteVehicle _light; + deleteVehicle _sp; + deleteVehicle _sm; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_105mm_box.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_105mm_box.p3d new file mode 100644 index 0000000000..c65f66bb1d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_105mm_box.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m14_casing.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m14_casing.p3d new file mode 100644 index 0000000000..1d68cf8389 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m14_casing.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m1_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m1_cartridge.p3d new file mode 100644 index 0000000000..13f2e41299 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m1_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m1_shell.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m1_shell.p3d new file mode 100644 index 0000000000..6fffc478a8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m1_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m314a3_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m314a3_cartridge.p3d new file mode 100644 index 0000000000..d2a9d3f23b Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m314a3_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m314a3_shell.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m314a3_shell.p3d new file mode 100644 index 0000000000..982ef1afa1 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m314a3_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m60a2_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m60a2_cartridge.p3d new file mode 100644 index 0000000000..df6023c0f8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m60a2_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m60a2_shell.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m60a2_shell.p3d new file mode 100644 index 0000000000..6fffc478a8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m60a2_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m80_bomblet.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m80_bomblet.p3d new file mode 100644 index 0000000000..bc31bca4a2 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m80_bomblet.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m84a1_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m84a1_cartridge.p3d new file mode 100644 index 0000000000..cf10590ea8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m84a1_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m84a1_shell.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m84a1_shell.p3d new file mode 100644 index 0000000000..477ef1e88b Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m84a1_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m916_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m916_cartridge.p3d new file mode 100644 index 0000000000..09b7ea46b5 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m916_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m916_shell.p3d b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m916_shell.p3d new file mode 100644 index 0000000000..2ebc25a04c Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/ace_arty_m916_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/M1.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M1.paa new file mode 100644 index 0000000000..23b06d3e7b Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M1.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/M314A3.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M314A3.paa new file mode 100644 index 0000000000..7291e387c8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M314A3.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/M60A2.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M60A2.paa new file mode 100644 index 0000000000..ecaaaa73cd Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M60A2.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/M84A1.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M84A1.paa new file mode 100644 index 0000000000..b9e1708bb0 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M84A1.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/M916.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M916.paa new file mode 100644 index 0000000000..a70423b06c Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/M916.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg1.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg1.paa new file mode 100644 index 0000000000..0f0937cb00 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg1.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg2.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg2.paa new file mode 100644 index 0000000000..c06dfd085d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg2.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg3.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg3.paa new file mode 100644 index 0000000000..b3b2f82207 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg3.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg4.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg4.paa new file mode 100644 index 0000000000..c0d6c10121 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg4.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg5.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg5.paa new file mode 100644 index 0000000000..831e7051a7 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg5.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg6.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg6.paa new file mode 100644 index 0000000000..f40af8f0c3 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg6.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg7.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg7.paa new file mode 100644 index 0000000000..fd188d79b8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg7.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg8.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg8.paa new file mode 100644 index 0000000000..ec7f5dc3fe Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/images/m14_chg8.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/M67_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/M67_text_co.paa new file mode 100644 index 0000000000..954ed20432 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/M67_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/M67_text_smdi.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/M67_text_smdi.paa new file mode 100644 index 0000000000..d29fa57c06 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/M67_text_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text.rvmat new file mode 100644 index 0000000000..3d25b10c54 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text.rvmat @@ -0,0 +1,82 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=23.4; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\crate_text_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\crate_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_co.paa new file mode 100644 index 0000000000..134fc19152 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_nohq.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_nohq.paa new file mode 100644 index 0000000000..659141a54c Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_smdi.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_smdi.paa new file mode 100644 index 0000000000..ab72090b8f Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/crate_text_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text.rvmat new file mode 100644 index 0000000000..649def88a4 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text.rvmat @@ -0,0 +1,87 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=23.4; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage0 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m1_text_co.paa"; + uvSource="tex"; +}; +class Stage1 +{ + texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m1_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text_co.paa new file mode 100644 index 0000000000..1ea24da5e5 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text_smdi.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text_smdi.paa new file mode 100644 index 0000000000..1a8f9529dc Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m1_text_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m314A3_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m314A3_text.rvmat new file mode 100644 index 0000000000..b6fa851d17 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m314A3_text.rvmat @@ -0,0 +1,87 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=23.4; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage0 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m314a3_text_co.paa"; + uvSource="tex"; +}; +class Stage1 +{ + texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m1_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m314A3_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m314A3_text_co.paa new file mode 100644 index 0000000000..863012b9a2 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m314A3_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m60a2_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m60a2_text.rvmat new file mode 100644 index 0000000000..a1d2b8291f --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m60a2_text.rvmat @@ -0,0 +1,82 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=23.4; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m1_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m60a2_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m60a2_text_co.paa new file mode 100644 index 0000000000..765082b9be Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m60a2_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m67_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m67_text.rvmat new file mode 100644 index 0000000000..8460ed298a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m67_text.rvmat @@ -0,0 +1,87 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=100; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage0 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m67_text_co.paa"; + uvSource="tex"; +}; +class Stage1 +{ + texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m67_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m84a1_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m84a1_text.rvmat new file mode 100644 index 0000000000..1370b4f75a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m84a1_text.rvmat @@ -0,0 +1,87 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=23.4; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage0 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m84a1_text_co.paa"; + uvSource="tex"; +}; +class Stage1 +{ + texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m1_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m84a1_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m84a1_text_co.paa new file mode 100644 index 0000000000..131100611f Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m84a1_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m916_text.rvmat b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m916_text.rvmat new file mode 100644 index 0000000000..130c39e24c --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m916_text.rvmat @@ -0,0 +1,87 @@ +ambient[]={1,1,1,1}; +diffuse[]={0.70999998,0.70999998,0.70999998,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={1,1,1,1}; +specularPower=23.4; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage0 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m916_text_co.paa"; + uvSource="tex"; +}; +class Stage1 +{ + texture="#(argb,8,8,3)color(0.5,0.5,1,1,NOHQ)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,0.5,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\105mm\data\textures\m1_text_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(3.5,1.22)"; + uvSource="none"; +}; +class Stage7 +{ + texture="ca\data\env_land_plastic_co.paa"; + uvSource="none"; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m916_text_co.paa b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m916_text_co.paa new file mode 100644 index 0000000000..8cdf189f71 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/105mm/data/textures/m916_text_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/105mm/eject_dpicm.sqf b/TO_MERGE/ace/arty_ammunition/105mm/eject_dpicm.sqf new file mode 100644 index 0000000000..8c035bd025 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/eject_dpicm.sqf @@ -0,0 +1,100 @@ +//eject_dpicm.sqf +#define PRNG(number) (random (number)) //([_seedSeq, 0, number] call ace_sys_arty_fnc_prng) +#define DPICM_SPREAD 25 + +private["_roundSettings", "_roundData", "_seed", "_seedSeq", "_velocity", "_gVel", "_rv", "_pos"]; +private["_p", "_vP", "_vH", "_vA", "_sMin", "_sMax", "_az", "_el", "_g"]; + +_shell = _this select 6; + +_roundSettings = []; +_roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; +{ + if((_x select 0) == _shell) exitWith { + _roundSettings = _x; + }; +} forEach _roundData; + +_seed = 101; +if((count _roundSettings) > 0) then { + _seed = _roundSettings select 3; +}; + +_seedSeq = _seed call ace_sys_arty_fnc_randomSequence; + +_velocity = velocity _shell; + +if ((_velocity select 0) != 0 && {(_velocity select 1) != 0} && {(_velocity select 2) != 0}) then { // velocity not 0 + + _gVel = [_velocity,0.25] call ACE_fnc_vectorMultiply; + _rv = (3.6*sqrt((_gVel select 0)^2 + (_gVel select 1)^2 + (_gVel select 2)^2))*0.278; + _pos = getPos _shell; + + _p = (_gVel call CBA_fnc_vect2Polar); + + _vP = (abs(_p select 2)/90); + _vH = ((abs(_p select 2)/45) min 1); + _vA = 360*_vH*_vP; + _vA = (DPICM_SPREAD + _vA) mod 360; + + _sMin = ((_vA)/2)*-1; + _sMax = (_vA); + for "_i" from 1 to 42 do { + _az = (_p select 1); + + _az = _az + (_sMin + (PRNG(_sMax))); + + if(_az < 0) then { + _az = _az + 360; + } else { + if(_az >= 360) then { + _az = _az - 360; + }; + }; + + _el = (_p select 2); + + _el = _el + (-20*1.5 + (PRNG(40))); + + if(_el > 90) then { + _el = abs(_el - 180); + _az = (_az + 180) mod 360; + }; + + if(_el < -90) then { + _el = (_el + 180)*-1; + _az = (_az + 180) mod 360; + }; + + _v = [(_p select 0) + (-5 + (PRNG(10))), _az, _el] call CBA_fnc_polar2vect; + + _g = "ace_arty_dpicm_m80" createVehicle [((_pos select 0) + PRNG(0.5)), ((_pos select 1) + PRNG(0.5)), ((_pos select 2) + PRNG(0.5))]; + _g setVelocity _v; + //_g setVectorDir _v; + _g setPos [((_pos select 0) + PRNG(0.5)), ((_pos select 1) + PRNG(0.5)), ((_pos select 2) + PRNG(0.5))]; + //_g setVelocity _v; + #ifdef DEBUG_MODE_FULL + [_g, _marker] spawn { + private ["_bbb"]; + _bbb = _this select 0; + _marker = _this select 1; + + waitUntil { + if(alive _bbb) then { + drop ["\Ca\Data\Cl_basic","","Billboard",1,5,(getPos _bbb),[0,0,0],1,1.275,1.0,0.0,[1],[[1,0,0,1]],[0],0.0,2.0,"","",""]; + _marker = createMarkerLocal [format["m%1", random(1000)+time], (getPos _bbb)]; + _marker setMarkerTypeLocal "Dot"; + _marker setMarkerColorLocal "ColorRed"; + + _marker setMarkerSizeLocal [0.1, 0.1]; + }; + (!alive _bbb) + }; + _marker setMarkerColorLocal "ColorGreen"; + _marker setMarkerSizeLocal [0.6, 0.6]; + }; + #endif + }; + false + +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/eject_illum.sqf b/TO_MERGE/ace/arty_ammunition/105mm/eject_illum.sqf new file mode 100644 index 0000000000..28dfc310a8 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/eject_illum.sqf @@ -0,0 +1,20 @@ +//eject_illum.sqf +private["_shell", "_velocity", "_pos", "_flareChute", "_chuteVel"]; + +_shell = _this select 6; + +_velocity = velocity _shell; + +_pos = getPos _shell; + +_flareChute = "ace_arty_105mm_m314a3_m782_parachute" createVehicle _pos; +_flareChute setPos _pos; +////player sideChat format["chutPos: %1", _pos]; +_chuteVel = [_velocity,0.25] call ACE_fnc_vectorMultiply; +////player sideChat format["p: %1", (_chuteVel call CBA_fnc_vect2Polar)]; + +_flareChute setVelocity _chuteVel; + + + +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/eject_smoke_m84.sqf b/TO_MERGE/ace/arty_ammunition/105mm/eject_smoke_m84.sqf new file mode 100644 index 0000000000..538afe844f --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/eject_smoke_m84.sqf @@ -0,0 +1,78 @@ +//eject_dpicm.sqf +#define PRNG(number) (random (number)) +#define SMOKE_SPREAD 40 + +private["_roundSettings", "_roundData", "_seed", "_seedSeq", "_velocity", "_gVel", "_rv", "_pos"]; +private["_p", "_vP", "_vH", "_vA", "_sMin", "_sMax", "_az", "_el", "_g", "_grenades", "_v"]; + +_shell = _this select 6; + +_roundSettings = []; +_roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; +{ + if((_x select 0) == _shell) exitWith { + _roundSettings = _x; + }; +} forEach _roundData; + +_seed = 101; +if((count _roundSettings) > 0) then { + _seed = _roundSettings select 3; +}; + +_seedSeq = _seed call ace_sys_arty_fnc_randomSequence; + +_velocity = velocity _shell; +_pos = getPos _shell; +_p = [0,0,0]; +if !((_velocity select 0) == 0 && {(_velocity select 1) == 0} && {(_velocity select 2) == 0}) then { // velocity not 0 + _gVel = [_velocity,0.125] call ACE_fnc_vectorMultiply; + _p = (_gVel call CBA_fnc_vect2Polar); +}; +//setAccTime 0.25; +_vP = (abs(_p select 2)/90); +_vH = ((abs(_p select 2)/45) min 1); +_vA = 360*_vH*_vP; +_vA = (SMOKE_SPREAD + _vA) mod 360; + +_sMin = ((_vA)/2)*-1; +_sMax = (_vA); +////player sideChat format["p: %4 va: %1 vP: %2 vH: %3", _sMax, _vP, _vH, (_p select 2)]; +_grenades = []; +for "_i" from 1 to 3 do { + _az = (_p select 1); + + _az = _az + (_sMin + (PRNG(_sMax))); + + if(_az < 0) then { + _az = _az + 360; + } else { + if(_az >= 360) then { + _az = _az - 360; + }; + }; + + _el = (_p select 2); + + _el = _el + (-20*1.5 + (PRNG(40))); + + if(_el > 90) then { + _el = abs(_el - 180); + _az = (_az + 180) mod 360; + }; + + if(_el < -90) then { + _el = (_el + 180)*-1; + _az = (_az + 180) mod 360; + }; + + _v = [(_p select 0) + (-5 + (PRNG(10))), _az, _el] call CBA_fnc_polar2vect; + + _g = "ace_arty_105mm_m84a1_m782_smokeCanisterHC" createVehicle [((_pos select 0) + PRNG(0.5)), ((_pos select 1) + PRNG(0.5)), ((_pos select 2) + PRNG(0.5))]; + //_g setVelocity _v; + _grenades set[(count _grenades), [_g, _v]]; +}; + +["ace_arty_ammo_105mmSmokeEvent", [_grenades]] call CBA_fnc_globalEvent; + +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg1.sqf new file mode 100644 index 0000000000..17feca83f9 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg1.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg1 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,947.285,[[4584.31,-2002.4,39.35,230.306,-67.132],[4540.88,-1900.52,38.8667,227.869,-66.6668],[4497.08,-1800.1,38.3833,225.406,-66.1876],[4452.92,-1701.14,37.9,222.918,-65.6937],[4406.85,-1600.33,37.4,220.32,-65.1665],[4360.4,-1501.14,36.9,217.697,-64.6222],[4312,-1400.37,36.3833,214.962,-64.0409],[4263.18,-1301.38,35.8667,212.205,-63.4395],[4212.37,-1201.08,35.3333,209.335,-62.7966],[4161.12,-1102.73,34.8,206.444,-62.1302],[4106.2,-1000.41,34.2333,203.351,-61.3949],[4050.8,-900.345,33.6667,200.238,-60.6302],[3994.91,-802.581,33.1,197.109,-59.8345],[3935.23,-701.608,32.5,193.782,-58.9563],[3873.33,-600.595,31.8833,190.35,-58.0133],[3810.88,-502.425,31.2667,186.911,-57.0268],[3744.47,-402.071,30.6167,183.284,-55.9373],[3673.99,-300.078,29.9333,179.475,-54.7332],[3602.86,-201.733,29.25,175.68,-53.4654],[3525.8,-100.311,28.5167,171.631,-52.029],[3446.23,-1.0595,27.7667,167.528,-50.4736],[3360.51,99.7444,26.9667,163.211,-48.7116],[3270.31,199.106,26.1333,158.799,-46.7555],[3171.88,299.852,25.2333,154.159,-44.4953],[3066.85,398.684,24.2833,149.437,-41.9323],[2949.44,498.806,23.2333,144.478,-38.875],[2815.5,599.99,22.05,139.295,-35.1324],[2662.56,698.957,20.7167,134.087,-30.5261],[2468.46,799.853,19.05,128.743,-24.1951],[2183.36,899.687,16.65,123.889,-14.0996],[1803.4,947.284,13.5333,123.705,-0.0259861]]], + [46,978.99,[[4543.64,-2000.08,39.7,230.552,-67.6013],[4502.48,-1901.25,39.2333,228.188,-67.1616],[4459.5,-1800.3,38.75,225.714,-66.6926],[4416.17,-1700.82,38.2667,223.214,-66.2092],[4372.47,-1602.82,37.7833,220.69,-65.7107],[4326.9,-1503.03,37.2833,218.053,-65.1785],[4279.41,-1401.62,36.7667,215.303,-64.61],[4231.52,-1301.99,36.25,212.529,-64.0218],[4181.66,-1201.02,35.7167,209.64,-63.3929],[4131.38,-1102,35.1833,206.729,-62.7409],[4079.09,-1001.95,34.6333,203.705,-62.043],[4024.74,-901.089,34.0667,200.568,-61.2954],[3969.93,-802.518,33.5,197.412,-60.5174],[3911.38,-700.682,32.9,194.053,-59.6584],[3852.31,-601.489,32.3,190.681,-58.7613],[3791.07,-502.336,31.6833,187.205,-57.7971],[3725.93,-400.936,31.0333,183.535,-56.7316],[3658.5,-300.302,30.3667,179.772,-55.5832],[3588.76,-200.744,29.6833,175.923,-54.3438],[3514.92,-100.294,28.9667,171.904,-52.9716],[3438.65,-1.77115,28.2333,167.822,-51.4858],[3356.4,98.6351,27.45,163.51,-49.801],[3268.01,199.885,26.6167,158.998,-47.8901],[3175.13,299.008,25.75,154.411,-45.7638],[3074.06,398.603,24.8167,149.624,-43.3046],[2962.74,498.52,23.8,144.637,-40.4127],[2837.17,599.203,22.6667,139.422,-36.9114],[2693.16,699.368,21.3833,134.062,-32.5778],[2518.62,799.434,19.85,128.599,-26.8795],[2279.21,899.871,17.7833,123.262,-18.3619],[1800.55,978.987,13.7667,121.388,-0.0768658]]], + [47,1010.62,[[4501.75,-2002.42,40.0667,230.911,-68.0915],[4461.39,-1903.08,39.6,228.537,-67.6616],[4419.23,-1801.6,39.1167,226.053,-67.203],[4376.73,-1701.59,38.6333,223.542,-66.7303],[4333.88,-1603.05,38.15,221.005,-66.2428],[4289.18,-1502.69,37.65,218.355,-65.7223],[4242.6,-1400.7,37.1333,215.589,-65.1662],[4195.63,-1300.47,36.6167,212.798,-64.5908],[4148.26,-1202.03,36.1,209.982,-63.995],[4098.96,-1102.32,35.5667,207.051,-63.3577],[4047.68,-1001.55,35.0167,204.005,-62.6755],[3995.97,-902.896,34.4667,200.938,-61.9664],[3940.64,-800.615,33.8833,197.662,-61.1836],[3884.83,-700.789,33.3,194.368,-60.3672],[3826.92,-600.707,32.7,190.964,-59.4903],[3766.87,-500.632,32.0833,187.452,-58.5477],[3704.66,-400.834,31.45,183.836,-57.533],[3640.23,-301.599,30.8,180.122,-56.4395],[3571.88,-200.809,30.1167,176.221,-55.2293],[3501.21,-101.373,29.4167,172.237,-53.9208],[3426.48,-1.40164,28.6833,168.087,-52.4701],[3347.61,98.4511,27.9167,163.788,-50.8598],[3262.76,199.494,27.1,159.272,-49.0317],[3173.55,298.742,26.25,154.662,-46.9962],[3076.35,398.905,25.3333,149.823,-44.6382],[2969.15,499.919,24.3333,144.745,-41.8593],[2851.69,599.476,23.25,139.54,-38.5894],[2718.15,698.846,22.0333,134.151,-34.5776],[2556.84,799.795,20.5833,128.513,-29.3124],[2349.6,899.725,18.75,122.917,-21.9201],[1967.58,999.784,15.45,118.389,-7.0024],[1794.11,1010.62,13.9833,119.065,-0.0697251]]], + [48,1042.14,[[4455.73,-2002.32,40.4167,231.214,-68.5716],[4416.15,-1902.51,39.95,228.831,-68.1512],[4374.82,-1800.55,39.4667,226.336,-67.7027],[4333.15,-1700.04,38.9833,223.813,-67.2404],[4291.14,-1601,38.5,221.264,-66.7636],[4247.31,-1500.12,38,218.6,-66.2544],[4203.13,-1400.86,37.5,215.909,-65.7282],[4157.08,-1300.02,36.9833,213.102,-65.1658],[4110.65,-1200.97,36.4667,210.269,-64.5835],[4062.32,-1100.62,35.9333,207.319,-63.9604],[4013.59,-1002.23,35.4,204.345,-63.3139],[3962.91,-902.836,34.85,201.254,-62.6213],[3910.24,-802.675,34.2833,198.048,-61.8787],[3855.56,-701.979,33.7,194.726,-61.0818],[3798.82,-600.993,33.1,191.291,-60.2258],[3741.58,-502.671,32.5,187.84,-59.3306],[3680.63,-401.819,31.8667,184.186,-58.3405],[3617.52,-301.491,31.2167,180.429,-57.2732],[3552.2,-201.983,30.55,176.574,-56.121],[3482.99,-101.252,29.85,172.534,-54.8441],[3411.47,-2.16495,29.1333,168.415,-53.4608],[3334.23,99.24,28.3667,164.04,-51.8895],[3252.84,199.913,27.5667,159.528,-50.1415],[3167.22,299.114,26.7333,154.904,-48.1941],[3073.81,399.657,25.8333,150.026,-45.9347],[2972.41,499.904,24.8667,144.958,-43.3136],[2861.04,599.563,23.8167,139.709,-40.2218],[2735.83,698.845,22.65,134.265,-36.4684],[2587.27,799.564,21.2833,128.542,-31.6255],[2403.39,899.239,19.6167,122.762,-25.0638],[2124.1,999.589,17.1333,117.267,-14.0963],[1784.2,1042.14,14.1833,116.735,-0.00123388]]], + [49,1073.52,[[4407.01,-2003.4,40.7667,231.547,-69.057],[4368.24,-1903.12,40.3,229.155,-68.6462],[4327.75,-1800.66,39.8167,226.65,-68.2081],[4288.33,-1703.1,39.35,224.204,-67.7721],[4245.75,-1600.09,38.85,221.555,-67.2904],[4204.24,-1502.03,38.3667,218.967,-66.8096],[4160.96,-1402.18,37.8667,216.263,-66.2958],[4115.85,-1300.72,37.35,213.441,-65.7467],[4070.37,-1201.04,36.8333,210.592,-65.178],[4023.03,-1100.04,36.3,207.624,-64.5695],[3975.29,-1000.98,35.7667,204.63,-63.938],[3925.64,-900.905,35.2167,201.517,-63.2613],[3874.04,-800.028,34.65,198.286,-62.5356],[3822.01,-701.451,34.0833,195.033,-61.7794],[3767.98,-602.412,33.5,191.664,-60.9673],[3710.38,-500.442,32.8833,188.084,-60.0691],[3652.26,-401.317,32.2667,184.49,-59.1279],[3592.04,-302.518,31.6333,180.788,-58.1133],[3528.09,-201.858,30.9667,176.886,-56.9895],[3461.95,-102.288,30.2833,172.889,-55.7739],[3391.94,-1.84079,29.5667,168.709,-54.425],[3317.99,98.8491,28.8167,164.359,-52.9261],[3240,199.105,28.0333,159.857,-51.2579],[3157.91,298.207,27.2167,155.228,-49.3984],[3068.22,399.074,26.3333,150.319,-47.2379],[2972.47,498.401,25.4,145.277,-44.7733],[2865.31,599.547,24.3667,139.918,-41.8094],[2746.42,699.65,23.2333,134.381,-38.254],[2610.13,799.102,21.95,128.653,-33.8198],[2443.24,899.2,20.4,122.703,-27.8685],[2211.43,999.839,18.2833,116.76,-18.7384],[1774.72,1073.52,14.4,114.363,-0.0315567]]], + [50,1104.72,[[4354.25,-2002.11,41.1,231.825,-69.5333],[4316.27,-1901.39,40.6333,229.424,-69.132],[4277.98,-1801.99,40.1667,226.996,-68.7188],[4238,-1700.45,39.6833,224.452,-68.2778],[4197.69,-1600.38,39.2,221.88,-67.8229],[4157.05,-1501.79,38.7167,219.28,-67.3534],[4114.66,-1401.39,38.2167,216.562,-66.8518],[4071.93,-1302.62,37.7167,213.817,-66.3331],[4027.4,-1202.3,37.2,210.952,-65.7784],[3981.05,-1100.63,36.6667,207.967,-65.1846],[3934.31,-1000.9,36.1333,204.954,-64.5683],[3885.71,-900.12,35.5833,201.82,-63.9079],[3836.69,-801.468,35.0333,198.662,-63.2208],[3785.76,-702.084,34.4667,195.384,-62.4834],[3732.88,-602.207,33.8833,191.987,-61.6912],[3678.02,-502.083,33.2833,188.473,-60.8392],[3621.15,-401.976,32.6667,184.843,-59.9217],[3562.22,-302.157,32.0333,181.102,-58.9325],[3499.64,-200.412,31.3667,177.156,-57.8362],[3436.5,-102.131,30.7,173.207,-56.6797],[3368,-0.398293,29.9833,168.968,-55.3643],[3297.25,99.4327,29.25,164.648,-53.9351],[3222.6,199.117,28.4833,160.164,-52.344],[3142.3,299.956,27.6667,155.442,-50.5313],[3057.91,398.965,26.8167,150.608,-48.505],[2965.97,498.84,25.9,145.52,-46.147],[2864.61,599.502,24.9,140.16,-43.3533],[2753.58,698.636,23.8167,134.639,-40.0453],[2625.68,798.742,22.5833,128.813,-35.8976],[2471.57,899.814,21.1167,122.695,-30.41],[2272.37,999.701,19.25,116.534,-22.5573],[1871.48,1099.91,15.5833,111.47,-4.94246],[1763.69,1104.71,14.6167,111.968,-0.0835649]]], + [51,1135.7,[[4298.8,-2002.06,41.4333,232.133,-70.0151],[4261.63,-1900.89,40.9667,229.723,-69.6233],[4224.16,-1801.03,40.5,227.286,-69.22],[4186.38,-1702.51,40.0333,224.82,-68.8045],[4146.94,-1601.91,39.55,222.237,-68.3608],[4107.17,-1502.78,39.0667,219.626,-67.9029],[4065.7,-1401.81,38.5667,216.896,-67.4136],[4023.88,-1302.47,38.0667,214.137,-66.9076],[3980.31,-1201.56,37.55,211.257,-66.3663],[3936.38,-1102.43,37.0333,208.348,-65.8054],[3890.65,-1002.02,36.5,205.318,-65.2047],[3843.1,-900.522,35.95,202.164,-64.5608],[3795.14,-801.145,35.4,198.984,-63.8908],[3745.31,-701.008,34.8333,195.681,-63.1716],[3693.58,-600.346,34.25,192.257,-62.3988],[3641.41,-502.176,33.6667,188.811,-61.5911],[3585.78,-401.146,33.05,185.148,-60.6967],[3528.14,-300.37,32.4167,181.369,-59.7321],[3468.46,-200.135,31.7667,177.478,-58.6901],[3406.7,-100.738,31.1,173.481,-57.5629],[3341.28,-0.141817,30.4,169.286,-56.3109],[3273.68,98.7886,29.6833,165.002,-54.9509],[3202.29,197.855,28.9333,160.542,-53.4362],[3125.42,298.418,28.1333,155.828,-51.7091],[3042.94,399.4,27.2833,150.889,-49.7375],[2954.74,499.636,26.3833,145.766,-47.4833],[2859.01,599.516,25.4167,140.425,-44.8545],[2753.92,698.738,24.3667,134.868,-41.7347],[2634.12,798.807,23.1833,128.996,-37.8625],[2492.31,899.742,21.8,122.802,-32.8257],[2315.53,999.679,20.1,116.458,-25.8628],[2041.79,1099.63,17.5167,110.324,-13.8033],[1749.27,1135.7,14.8167,109.565,-0.0732944]]], + [52,1166.44,[[4240.67,-2003.34,41.7667,232.471,-70.5023],[4204.32,-1901.7,41.3,230.054,-70.1202],[4167.67,-1801.37,40.8333,227.607,-69.7269],[4130.72,-1702.38,40.3667,225.132,-69.3216],[4092.15,-1601.28,39.8833,222.539,-68.8889],[4053.25,-1501.66,39.4,219.916,-68.4423],[4012.69,-1400.17,38.9,217.173,-67.9649],[3971.79,-1300.3,38.4,214.4,-67.4712],[3930.55,-1202.08,37.9,211.598,-66.9604],[3887.59,-1102.34,37.3833,208.674,-66.4137],[3842.88,-1001.29,36.85,205.626,-65.828],[3797.79,-902.189,36.3167,202.549,-65.2196],[3750.91,-802.074,35.7667,199.348,-64.5671],[3702.2,-701.168,35.2,196.022,-63.8665],[3653.07,-602.571,34.6333,192.67,-63.1355],[3600.61,-500.728,34.0333,189.097,-62.3263],[3547.7,-401.551,33.4333,185.501,-61.4785],[3492.85,-302.439,32.8167,181.786,-60.5644],[3434.52,-201.109,32.1667,177.855,-59.5506],[3374.17,-100.578,31.5,173.813,-58.4535],[3311.76,-1.1562,30.8167,169.666,-57.2641],[3245.71,99.1154,30.1,165.321,-55.9407],[3175.95,199.601,29.35,160.792,-54.4659],[3102.41,299.62,28.5667,156.095,-52.8191],[3025.01,398.448,27.75,151.253,-50.9765],[2940.47,498.99,26.8667,146.105,-48.8262],[2848.63,599.639,25.9167,140.707,-46.3148],[2749.3,698.629,24.9,135.138,-43.3782],[2635.7,799.563,23.75,129.176,-39.7188],[2505.73,899.324,22.45,122.989,-35.1169],[2345.29,999.927,20.8667,116.475,-28.8113],[2122.1,1099.7,18.7,109.938,-18.9698],[1733.34,1166.44,15.0167,107.137,-0.0844271]]], + [53,1196.9,[[4178.57,-2002.3,42.0833,232.754,-70.9814],[4143.04,-1900.24,41.6167,230.328,-70.6089],[4108.5,-1803.06,41.1667,227.961,-70.2391],[4071.09,-1700.06,40.6833,225.388,-69.83],[4034.69,-1601.98,40.2167,222.874,-69.4227],[3996.68,-1501.84,39.7333,220.241,-68.9875],[3958.36,-1403.19,39.25,217.578,-68.5381],[3918.39,-1302.73,38.75,214.793,-68.0576],[3876.76,-1200.65,38.2333,211.884,-67.5434],[3834.77,-1100.34,37.7167,208.944,-67.0104],[3792.44,-1001.84,37.2,205.974,-66.4576],[3748.39,-902.078,36.6667,202.879,-65.8652],[3702.58,-801.275,36.1167,199.658,-65.2296],[3656.38,-702.607,35.5667,196.408,-64.5675],[3606.97,-600.33,34.9833,192.932,-63.8347],[3557.14,-500.527,34.4,189.43,-63.0685],[3505.45,-400.493,33.8,185.804,-62.2431],[3451.86,-300.491,33.1833,182.055,-61.3528],[3396.35,-200.796,32.55,178.187,-60.3911],[3338.88,-101.695,31.9,174.202,-59.3506],[3277.93,-1.07758,31.2167,170.005,-58.194],[3214.94,98.1467,30.5167,165.706,-56.9373],[3148.35,197.858,29.7833,161.211,-55.5363],[3076.55,299.506,29,156.436,-53.9364],[3002.54,398.055,28.2,151.602,-52.1823],[2921.59,498.726,27.3333,146.439,-50.1328],[2833.53,599.949,26.4,140.997,-47.7356],[2738.21,699.998,25.4,135.348,-44.9277],[2632.23,799.854,24.3,129.417,-41.5256],[2512.02,898.907,23.0667,123.224,-37.2863],[2365.62,999.668,21.5833,116.607,-31.5515],[2173.59,1099.63,19.6667,109.815,-23.0948],[1714.17,1196.9,15.2,104.7,-0.0289631]]], + [54,1227.03,[[4113.82,-2002.66,42.4,233.068,-71.4661],[4079.11,-1900.16,41.9333,230.635,-71.1032],[4045.37,-1802.55,41.4833,228.259,-70.743],[4010.1,-1702.63,41.0167,225.767,-70.3584],[3973.28,-1600.56,40.5333,223.154,-69.9476],[3937.44,-1503.4,40.0667,220.601,-69.5384],[3898.72,-1400.82,39.5667,217.835,-69.0856],[3860.99,-1303.21,39.0833,215.13,-68.6331],[3820.33,-1200.54,38.5667,212.207,-68.1326],[3780.66,-1102.88,38.0667,209.348,-67.6307],[3737.99,-1000.56,37.5333,206.266,-67.0754],[3694.97,-900.19,37,203.153,-66.4984],[3651.59,-801.79,36.4667,200.01,-65.8985],[3606.49,-702.412,35.9167,196.739,-65.2543],[3559.63,-602.282,35.35,193.34,-64.562],[3510.99,-501.639,34.7667,189.812,-63.8171],[3460.53,-400.731,34.1667,186.156,-63.0145],[3409.64,-302.512,33.5667,182.477,-62.1725],[3355.46,-201.794,32.9333,178.572,-61.2381],[3299.37,-101.632,32.2833,174.547,-60.2269],[3241.34,-2.32717,31.6167,170.406,-59.1304],[3179.87,98.1557,30.9167,166.052,-57.9095],[3114.89,199.199,30.1833,161.495,-56.5477],[3047.82,298.002,29.4333,156.851,-55.0597],[2975.62,398.258,28.6333,151.932,-53.3569],[2898.18,498.886,27.7833,146.764,-51.4049],[2815.38,598.714,26.8833,141.389,-49.162],[2724,699.763,25.9,135.671,-46.484],[2623.82,799.756,24.8333,129.709,-43.2835],[2511.45,898.79,23.65,123.48,-39.3381],[2376.9,999.535,22.25,116.794,-34.0882],[2207.98,1099.18,20.5167,109.865,-26.6711],[1931.64,1199.95,17.7333,102.956,-12.8105],[1695.27,1227.03,15.4,102.224,-0.08572]]], + [55,1256.83,[[4045.2,-2000.75,42.7,233.326,-71.9437],[4012.53,-1901.5,42.25,230.973,-71.6031],[3979.6,-1803.46,41.8,228.59,-71.2526],[3945.18,-1703.08,41.3333,226.089,-70.8783],[3909.24,-1600.53,40.85,223.467,-70.4785],[3874.26,-1502.9,40.3833,220.905,-70.0803],[3837.74,-1403.23,39.9,218.22,-69.6545],[3799.66,-1301.71,39.4,215.41,-69.1992],[3761.26,-1201.82,38.9,212.569,-68.7279],[3721.25,-1100.33,38.3833,209.6,-68.2232],[3680.92,-1000.64,37.8667,206.599,-67.6997],[3640.25,-902.764,37.35,203.567,-67.1564],[3596.61,-800.603,36.8,200.307,-66.5548],[3552.6,-700.564,36.25,197.015,-65.9281],[3508.23,-602.679,35.7,193.693,-65.2746],[3460.77,-501.249,35.1167,190.14,-64.5505],[3412.92,-402.315,34.5333,186.559,-63.7923],[3361.89,-300.48,33.9167,182.746,-62.9512],[3310.44,-201.517,33.3,178.91,-62.0667],[3255.73,-100.36,32.65,174.844,-61.0839],[3199.12,-0.0227988,31.9833,170.659,-60.0178],[3140.6,99.1812,31.3,166.358,-58.8592],[3078.67,199.205,30.5833,161.846,-57.5666],[3013.28,299.408,29.8333,157.134,-56.1216],[2944.35,399.108,29.05,152.237,-54.5022],[2870.34,499.528,28.2167,147.074,-52.6443],[2791.14,599.524,27.3333,141.682,-50.5079],[2705.11,699.547,26.3833,136.009,-47.9984],[2610.58,799.36,25.35,130.042,-44.9937],[2504.24,899.263,24.2,123.729,-41.2773],[2381.07,998.954,22.8833,117.062,-36.4935],[2227.87,1099.55,21.2667,109.956,-29.7905],[2007.96,1199.91,18.9833,102.655,-18.777],[1673.2,1256.83,15.5833,99.7375,-0.0754084]]], + [56,1286.24,[[3973.93,-2000.3,43,233.616,-72.4272],[3942.07,-1900.65,42.55,231.255,-72.0957],[3909.95,-1802.21,42.1,228.865,-71.7547],[3876.39,-1701.41,41.6333,226.355,-71.3905],[3842.55,-1601.95,41.1667,223.815,-71.0152],[3807.22,-1500.36,40.6833,221.151,-70.614],[3771.6,-1400.25,40.2,218.455,-70.1996],[3735.69,-1301.63,39.7167,215.727,-69.7715],[3698.25,-1201.21,39.2167,212.873,-69.3132],[3660.5,-1102.43,38.7167,209.987,-68.8387],[3621.18,-1002.13,38.2,206.972,-68.3302],[3580.26,-900.482,37.6667,203.826,-67.785],[3538.99,-800.799,37.1333,200.646,-67.218],[3496.09,-700.084,36.5833,197.335,-66.609],[3452.83,-601.515,36.0333,193.992,-65.9739],[3407.89,-502.238,35.4667,190.517,-65.2906],[3361.24,-402.493,34.8833,186.91,-64.5544],[3312.86,-302.53,34.2833,183.171,-63.7603],[3262.71,-202.614,33.6667,179.301,-62.9021],[3209.4,-100.441,33.0167,175.198,-61.9483],[3155.62,-1.54422,32.3667,171.076,-60.94],[3098.6,98.8397,31.6833,166.727,-59.8164],[3039.67,197.806,30.9833,162.265,-58.5923],[2975.96,299.433,30.2333,157.487,-57.1913],[2910.25,398.536,29.4667,152.619,-55.6547],[2839.61,498.703,28.65,147.469,-53.8907],[2763.93,598.82,27.7833,142.068,-51.8604],[2681.64,699.408,26.85,136.357,-49.4727],[2592.59,798.735,25.85,130.407,-46.6574],[2492.11,899.163,24.7333,124.041,-43.1646],[2376.85,999.476,23.4667,117.293,-38.7084],[2238.66,1099.26,21.9667,110.167,-32.6887],[2051.72,1199.66,19.9667,102.634,-23.3581],[1649.68,1286.23,15.7667,97.2268,-0.089421]]], + [57,1315.23,[[3900.04,-2001.37,43.3,233.938,-72.9162],[3869,-1901.31,42.85,231.57,-72.5942],[3837.71,-1802.46,42.4,229.173,-72.2628],[3805,-1701.23,41.9333,226.656,-71.9089],[3772.02,-1601.33,41.4667,224.106,-71.5441],[3738.79,-1502.78,41,221.526,-71.1678],[3704.09,-1402.15,40.5167,218.82,-70.7656],[3669.12,-1303.02,40.0333,216.083,-70.3499],[3632.64,-1202.05,39.5333,213.217,-69.9049],[3595.87,-1102.73,39.0333,210.318,-69.4441],[3557.56,-1001.85,38.5167,207.289,-68.9503],[3518.94,-902.779,38,204.226,-68.4376],[3478.75,-802.432,37.4667,201.03,-67.8875],[3436.97,-701.025,36.9167,197.7,-67.2966],[3394.83,-601.758,36.3667,194.337,-66.6802],[3351.06,-501.754,35.8,190.839,-66.017],[3305.63,-401.252,35.2167,187.206,-65.3023],[3258.5,-300.503,34.6167,183.439,-64.5311],[3210.98,-202.456,34.0167,179.643,-63.7206],[3160.4,-101.935,33.3833,175.61,-62.8195],[3108.04,-1.99271,32.7333,171.447,-61.8422],[3052.51,99.5021,32.05,167.052,-60.7527],[2995.13,199.618,31.35,162.538,-59.5651],[2935.87,298.015,30.6333,157.913,-58.2676],[2871.92,398.614,29.8667,152.973,-56.7795],[2804.57,498.371,29.0667,147.844,-55.1059],[2732.34,598.437,28.2167,142.443,-53.1783],[2653.71,699.406,27.3,136.707,-50.9086],[2568.53,799.581,26.3167,130.696,-48.2285],[2475.18,898.576,25.25,124.406,-45.0007],[2367.56,999.015,24.0333,117.623,-40.8644],[2240.77,1098.94,22.6167,110.432,-35.3713],[2075.97,1199.82,20.8,102.721,-27.1811],[1789.38,1299.75,17.7,95.0918,-10.4623],[1623.14,1315.23,15.9333,94.7035,-0.031154]]], + [58,1343.77,[[3822.39,-2000.27,43.5833,234.204,-73.3992],[3793.28,-1903.54,43.15,231.919,-73.0981],[3761.69,-1800.61,42.6833,229.426,-72.7644],[3730.99,-1702.59,42.2333,226.991,-72.433],[3698.89,-1602.24,41.7667,224.434,-72.079],[3666.54,-1503.24,41.3,221.845,-71.7138],[3632.77,-1402.14,40.8167,219.13,-71.3233],[3598.72,-1302.52,40.3333,216.382,-70.9198],[3563.21,-1201.06,39.8333,213.504,-70.4878],[3527.42,-1101.24,39.3333,210.592,-70.0404],[3491.34,-1003.07,38.8333,207.647,-69.5767],[3452.53,-900.221,38.3,204.47,-69.0631],[3414.64,-802.442,37.7833,201.358,-68.5458],[3373.97,-700.393,37.2333,198.01,-67.9725],[3332.96,-600.477,36.6833,194.627,-67.3745],[3291.62,-502.725,36.1333,191.21,-66.7502],[3247.41,-401.45,35.55,187.553,-66.0574],[3202.83,-302.682,34.9667,183.864,-65.3309],[3155.31,-201.037,34.35,179.933,-64.5237],[3107.39,-102.28,33.7333,175.972,-63.6731],[3056.45,-1.35517,33.0833,171.771,-62.726],[3003.75,98.7254,32.4167,167.44,-61.6964],[2949.27,197.648,31.7333,162.985,-60.5745],[2890.29,299.624,31,158.194,-59.289],[2829.44,399.37,30.25,153.295,-57.8786],[2765.31,498.565,29.4667,148.194,-56.292],[2696.46,598.416,28.6333,142.804,-54.4636],[2621.4,699.586,27.7333,137.054,-52.3081],[2541.42,798.747,26.7833,131.1,-49.8057],[2452.13,899.091,25.7333,124.714,-46.7355],[2351.87,999.008,24.5667,117.946,-42.9028],[2234.55,1099.18,23.2167,110.697,-37.8473],[2087.88,1199.6,21.55,102.926,-30.5949],[1868.8,1299.72,19.1,94.8112,-17.8784],[1596.77,1343.77,16.1167,92.1452,-0.0982172]]], + [59,1371.84,[[3742.14,-2000.74,43.8667,234.503,-73.8879],[3713.83,-1903.64,43.4333,232.212,-73.5958],[3683.11,-1800.31,42.9667,229.712,-73.2721],[3653.24,-1701.9,42.5167,227.269,-72.9506],[3622.02,-1601.14,42.05,224.704,-72.607],[3590.56,-1501.72,41.5833,222.106,-72.2527],[3557.71,-1400.19,41.1,219.382,-71.8738],[3524.59,-1300.13,40.6167,216.623,-71.4822],[3491.21,-1201.58,40.1333,213.83,-71.0772],[3456.4,-1101.24,39.6333,210.907,-70.6434],[3421.32,-1002.55,39.1333,207.949,-70.1938],[3384.77,-902.339,38.6167,204.857,-69.7117],[3346.73,-800.806,38.0833,201.628,-69.1942],[3308.39,-701.242,37.55,198.365,-68.6553],[3268.52,-600.661,37,194.963,-68.076],[3228.32,-502.238,36.45,191.526,-67.471],[3185.34,-400.243,35.8667,187.845,-66.7996],[3142,-300.748,35.2833,184.13,-66.0954],[3097.05,-201.058,34.6833,180.276,-65.3344],[3050.47,-101.438,34.0667,176.284,-64.5107],[3002.22,-2.1663,33.4333,172.155,-63.6173],[2951.01,98.9524,32.7667,167.783,-62.6209],[2898.06,198.95,32.0833,163.28,-61.5347],[2842.05,299.796,31.3667,158.543,-60.3187],[2784.23,398.653,30.6333,153.691,-58.9852],[2721.92,499.336,29.85,148.515,-57.4511],[2656.38,598.816,29.0333,143.145,-55.7182],[2586.18,698.168,28.1667,137.499,-53.7136],[2508.5,799.604,27.2167,131.407,-51.2971],[2424.56,899.374,26.2,125.049,-48.4252],[2330.02,999.72,25.0667,118.236,-44.83],[2221.81,1099.29,23.7833,111.002,-40.1921],[2089.55,1199.32,22.2333,103.198,-33.6909],[1906.35,1299.55,20.1167,94.8513,-23.1156],[1567.46,1371.83,16.2833,89.5736,-0.0923244]]], + [60,1399.38,[[3659.29,-2002.87,44.15,234.835,-74.3823],[3630.73,-1901.66,43.7,232.45,-74.0882],[3601.95,-1801.64,43.25,230.033,-73.7857],[3572.93,-1702.83,42.8,227.584,-73.4742],[3542.61,-1601.65,42.3333,225.011,-73.1413],[3512.04,-1501.8,41.8667,222.405,-72.798],[3481.23,-1403.31,41.4,219.766,-72.4438],[3449.06,-1302.76,40.9167,216.999,-72.0647],[3415.52,-1200.31,40.4167,214.099,-71.6589],[3382.83,-1102.82,39.9333,211.262,-71.2528],[3347.61,-1000.32,39.4167,208.193,-70.8028],[3313.25,-902.824,38.9167,205.187,-70.3507],[3276.31,-800.705,38.3833,201.944,-69.8497],[3239.06,-700.55,37.85,198.663,-69.3279],[3201.51,-602.389,37.3167,195.347,-68.7841],[3161.29,-500.308,36.75,191.786,-68.1808],[3120.73,-400.546,36.1833,188.188,-67.5493],[3078.64,-300.306,35.6,184.449,-66.8678],[3036.21,-202.597,35.0167,180.675,-66.1522],[2990.97,-102.095,34.4,176.653,-65.3558],[2944.13,-1.90835,33.7667,172.49,-64.4919],[2895.65,97.6735,33.1167,168.188,-63.5527],[2844.25,198.769,32.4333,163.641,-62.5031],[2791.14,298.453,31.7333,158.964,-61.3557],[2735.02,398.613,31,154.052,-60.0678],[2675.83,498.583,30.2333,148.917,-58.6179],[2612.21,599.658,29.4167,143.463,-56.9443],[2545.4,698.838,28.5667,137.825,-55.0452],[2472.68,798.81,27.65,131.821,-52.7954],[2392.59,899.474,26.65,125.404,-50.0718],[2303.6,999.93,25.55,118.575,-46.7072],[2202.78,1099.56,24.3167,111.317,-42.4112],[2081.51,1199.86,22.85,103.447,-36.4837],[1922.35,1299.94,20.95,94.9805,-27.3434],[1535.33,1399.38,16.4333,86.9877,-0.00761077]]], + [61,1426.39,[[3572.81,-2002.9,44.4167,235.113,-74.8715],[3545.09,-1901.33,43.9667,232.721,-74.5868],[3517.15,-1800.95,43.5167,230.298,-74.2938],[3488.99,-1701.77,43.0667,227.842,-73.9922],[3459.55,-1600.2,42.6,225.262,-73.6699],[3430.95,-1503.52,42.15,222.741,-73.3494],[3399.98,-1401.08,41.6667,219.999,-72.9943],[3368.76,-1300.11,41.1833,217.221,-72.6271],[3337.29,-1200.63,40.7,214.408,-72.2474],[3305.57,-1102.67,40.2167,211.561,-71.8544],[3272.5,-1002.95,39.7167,208.579,-71.4332],[3238.05,-901.662,39.2,205.46,-70.9815],[3203.32,-802.183,38.6833,202.304,-70.5119],[3167.19,-701.422,38.15,199.008,-70.0075],[3130.76,-602.647,37.6167,195.675,-69.4817],[3092.89,-502.898,37.0667,192.201,-68.9158],[3053.55,-402.403,36.5,188.583,-68.3059],[3012.72,-301.401,35.9167,184.82,-67.6476],[2970.38,-200.145,35.3167,180.913,-66.9359],[2927.68,-101.597,34.7167,176.97,-66.1865],[2882.24,-0.557088,34.0833,172.773,-65.3513],[2835.21,99.9094,33.4333,168.434,-64.4431],[2786.57,199.499,32.7667,163.956,-63.4532],[2736.29,297.896,32.0833,159.343,-62.3717],[2681.87,399.284,31.35,154.374,-61.1284],[2625.73,498.4,30.6,149.286,-59.7593],[2565.32,598.948,29.8,143.865,-58.1784],[2500.55,699.836,28.95,138.133,-56.3466],[2431.34,799.883,28.05,132.122,-54.2151],[2356.31,899.459,27.0833,125.772,-51.677],[2272.71,999.717,26.0167,118.953,-48.5355],[2179.02,1098.95,24.8333,111.715,-44.5709],[2066.96,1199.81,23.4333,103.775,-39.1318],[1926.52,1299.42,21.7,95.2699,-31.1242],[1697.32,1399.81,18.9167,86.1486,-15.2339],[1503.32,1426.39,16.6,84.368,-0.0588216]]], + [62,1452.82,[[3482.78,-2000.85,44.6667,235.335,-75.3564],[3456.91,-1902.71,44.2333,233.027,-75.0912],[3429.82,-1801.95,43.7833,230.598,-74.8079],[3402.53,-1702.38,43.3333,228.136,-74.5163],[3374,-1600.42,42.8667,225.549,-74.2047],[3346.27,-1503.35,42.4167,223.021,-73.8949],[3316.25,-1400.49,41.9333,220.271,-73.5514],[3287.03,-1302.56,41.4667,217.58,-73.2088],[3256.53,-1202.61,40.9833,214.758,-72.8421],[3224.73,-1100.79,40.4833,211.802,-72.4491],[3192.67,-1000.62,39.9833,208.808,-72.0417],[3160.36,-902.108,39.4833,205.777,-71.6191],[3126.71,-802.092,38.9667,202.607,-71.1654],[3091.68,-700.771,38.4333,199.296,-70.678],[3056.38,-601.431,37.9,195.947,-70.1699],[3019.67,-501.093,37.35,192.453,-69.6229],[2982.67,-402.925,36.8,188.922,-69.051],[2943.11,-301.214,36.2167,185.137,-68.4154],[2903.22,-202.018,35.6333,181.314,-67.7476],[2861.86,-102.651,35.0333,177.344,-67.0247],[2817.84,-0.73695,34.4,173.117,-66.2189],[2773.45,98.0777,33.7667,168.855,-65.3655],[2726.34,198.694,33.1,164.337,-64.4113],[2677.64,298.155,32.4167,159.678,-63.3683],[2626.13,398.413,31.7,154.77,-62.197],[2571.75,498.823,30.95,149.62,-60.8774],[2514.47,598.697,30.1667,144.239,-59.3856],[2452.99,699.252,29.3333,138.531,-57.6562],[2387.22,799.335,28.45,132.523,-55.6429],[2315.85,899.387,27.5,126.146,-53.2429],[2237.47,999.153,26.4667,119.361,-50.3166],[2149.38,1098.91,25.3167,112.081,-46.614],[2046.16,1199.47,23.9833,104.149,-41.6395],[1919.55,1299.3,22.3667,95.5776,-34.4747],[1734.21,1399.91,20.0333,86.1878,-21.7299],[1468.59,1452.82,16.75,81.7337,-0.0303354]]], + [63,1478.64,[[3390.28,-2000.54,44.9167,235.592,-75.8474],[3365.22,-1902.07,44.4833,233.278,-75.5912],[3339,-1800.96,44.0333,230.843,-75.3175],[3312.57,-1701.05,43.5833,228.375,-75.0358],[3285.94,-1602.36,43.1333,225.874,-74.7456],[3258.1,-1501.3,42.6667,223.245,-74.4353],[3230.04,-1401.59,42.2,220.581,-74.1151],[3201.76,-1303.25,41.7333,217.883,-73.7844],[3172.24,-1202.85,41.25,215.052,-73.4303],[3141.45,-1100.57,40.75,212.085,-73.0509],[3111.46,-1003.26,40.2667,209.18,-72.671],[3079.14,-900.947,39.75,206.037,-72.2495],[3046.56,-800.438,39.2333,202.853,-71.8114],[3013.71,-701.755,38.7167,199.632,-71.3557],[2979.54,-601.834,38.1833,196.267,-70.8656],[2944.02,-500.89,37.6333,192.756,-70.3379],[2908.21,-402.111,37.0833,189.206,-69.7861],[2871.02,-302.635,36.5167,185.508,-69.1906],[2832.42,-202.705,35.9333,181.662,-68.5469],[2792.4,-102.575,35.3333,177.666,-67.85],[2750.93,-2.51135,34.7167,173.521,-67.094],[2706.84,99.789,34.0667,169.113,-66.2498],[2662.39,198.785,33.4167,164.67,-65.3528],[2615.27,299.24,32.7333,159.968,-64.3475],[2566.6,398.244,32.0333,155.125,-63.2452],[2514,499.871,31.2833,149.916,-61.9741],[2459.76,598.93,30.5167,144.582,-60.568],[2401.49,699,29.7,138.906,-58.9373],[2339.1,798.955,28.8333,132.911,-57.0379],[2271.3,899.304,27.9,126.52,-54.7716],[2196.75,999.87,26.8833,119.682,-52.0041],[2114.08,1099.66,25.7667,112.394,-48.5484],[2019.34,1199.13,24.5,104.538,-44.0132],[1903.39,1299.71,22.9667,95.8712,-37.4986],[1746.34,1399.67,20.9167,86.4163,-26.7871],[1432.58,1478.64,16.9,79.0755,-0.0329656]]], + [64,1503.83,[[3295.27,-2002.02,45.1667,235.883,-76.3443],[3271.05,-1903.21,44.7333,233.565,-76.0973],[3245.7,-1801.75,44.2833,231.124,-75.8333],[3220.15,-1701.49,43.8333,228.65,-75.5616],[3194.4,-1602.43,43.3833,226.143,-75.2817],[3167.48,-1501,42.9167,223.507,-74.9824],[3140.35,-1400.91,42.45,220.836,-74.6735],[3113.01,-1302.17,41.9833,218.129,-74.3545],[3084.47,-1201.37,41.5,215.289,-74.0129],[3055.7,-1102.07,41.0167,212.411,-73.6594],[3025.7,-1000.94,40.5167,209.396,-73.2804],[2995.47,-901.477,40.0167,206.341,-72.8871],[2963.97,-800.459,39.5,203.146,-72.4649],[2932.23,-701.264,38.9833,199.91,-72.0256],[2899.2,-600.807,38.45,196.53,-71.5531],[2865.9,-502.351,37.9167,193.109,-71.0601],[2831.3,-402.942,37.3667,189.541,-70.5287],[2795.35,-302.812,36.8,185.824,-69.9552],[2758.05,-202.202,36.2167,181.955,-69.3353],[2719.37,-101.364,35.6167,177.934,-68.6638],[2679.29,-0.566751,35,173.76,-67.9353],[2637.78,99.9128,34.3667,169.433,-67.143],[2594.83,199.782,33.7167,164.955,-66.2793],[2550.41,298.737,33.05,160.327,-65.3355],[2503.38,398.796,32.35,155.437,-64.275],[2453.7,499.331,31.6167,150.29,-63.0798],[2401.31,599.675,30.85,144.891,-61.7278],[2346.18,699.113,30.05,139.255,-60.192],[2287.08,798.783,29.2,133.282,-58.4025],[2222.78,899.255,28.2833,126.889,-56.2655],[2153.17,998.819,27.3,120.125,-53.6985],[2074.56,1099.96,26.2,112.743,-50.4352],[1986.75,1199.06,24.9833,104.914,-46.2602],[1880.99,1299.35,23.5333,96.2571,-40.3656],[1743.19,1399.47,21.6667,86.7197,-31.0501],[1461.33,1500,17.9167,76.4931,-6.43387],[1395.29,1503.83,17.05,76.3937,-0.0703381]]], + [65,1528.35,[[3196.88,-2001.49,45.4,236.12,-76.8378],[3173.5,-1902.38,44.9667,233.797,-76.5997],[3149.02,-1800.6,44.5167,231.351,-76.3454],[3124.35,-1700.01,44.0667,228.87,-76.0835],[3099.49,-1600.62,43.6167,226.356,-75.8138],[3074.43,-1502.46,43.1667,223.808,-75.5359],[3048.25,-1401.98,42.7,221.13,-75.2385],[3021.85,-1302.84,42.2333,218.416,-74.9314],[2994.3,-1201.62,41.75,215.567,-74.6025],[2966.53,-1101.9,41.2667,212.68,-74.2621],[2937.58,-1000.33,40.7667,209.654,-73.8972],[2908.39,-900.423,40.2667,206.589,-73.5185],[2878.98,-802.187,39.7667,203.485,-73.1252],[2848.34,-702.463,39.25,200.237,-72.7027],[2816.46,-601.456,38.7167,196.842,-72.2482],[2784.33,-502.443,38.1833,193.406,-71.7738],[2750.93,-402.455,37.6333,189.821,-71.2626],[2716.24,-301.721,37.0667,186.084,-70.7107],[2680.24,-200.484,36.4833,182.193,-70.1139],[2643.95,-101.778,35.9,178.26,-69.4859],[2605.27,-0.225697,35.2833,174.059,-68.7854],[2566.28,98.4113,34.6667,169.817,-68.044],[2524.84,199.177,34.0167,165.305,-67.2145],[2481.99,299.06,33.35,160.639,-66.3076],[2437.7,397.744,32.6667,155.822,-65.3133],[2389.77,499.421,31.9333,150.623,-64.1658],[2340.34,598.815,31.1833,145.282,-62.8963],[2287.16,699.637,30.3833,139.574,-61.4225],[2231.29,798.867,29.55,133.632,-59.7388],[2170.41,899.297,28.65,127.247,-57.7266],[2104.44,999.252,27.6833,120.462,-55.3073],[2030.96,1099.89,26.6167,113.121,-52.2759],[1948.65,1199.49,25.4333,105.251,-48.3887],[1851.45,1299.63,24.05,96.5991,-43.0092],[1728.27,1399.89,22.3167,87.008,-34.7462],[1531.18,1499.98,19.5833,76.3782,-17.8423],[1355.5,1528.35,17.1833,73.6958,-0.0194209]]], + [66,1552.17,[[3096.07,-2002.83,45.6333,236.392,-77.3373],[3073.53,-1903.4,45.2,234.064,-77.1084],[3049.94,-1801.29,44.75,231.613,-76.8638],[3026.16,-1700.36,44.3,229.128,-76.612],[3002.2,-1600.64,43.85,226.608,-76.3526],[2978.05,-1502.14,43.4,224.053,-76.0853],[2952.81,-1401.29,42.9333,221.368,-75.7993],[2927.37,-1301.8,42.4667,218.646,-75.5039],[2900.82,-1200.2,41.9833,215.788,-75.1876],[2874.05,-1100.09,41.5,212.892,-74.8602],[2847.07,-1001.5,41.0167,209.958,-74.521],[2818.95,-901.129,40.5167,206.882,-74.1571],[2790.6,-802.429,40.0167,203.767,-73.7792],[2761.08,-702.222,39.5,200.506,-73.3731],[2730.36,-600.71,38.9667,197.098,-72.9363],[2699.39,-501.187,38.4333,193.646,-72.4804],[2667.21,-400.668,37.8833,190.044,-71.9889],[2634.77,-302.327,37.3333,186.398,-71.4742],[2600.08,-200.444,36.75,182.487,-70.9011],[2565.11,-101.085,36.1667,178.531,-70.298],[2528.86,-1.56235,35.5667,174.419,-69.6437],[2491.3,97.8574,34.95,170.149,-68.9324],[2451.38,199.456,34.3,165.605,-68.1363],[2411.14,297.727,33.65,161.02,-67.2882],[2367.44,399.78,32.95,156.043,-66.3108],[2323.37,497.855,32.25,151.033,-65.2602],[2275.77,598.457,31.5,145.636,-64.044],[2225.63,698.507,30.7167,139.98,-62.6617],[2171.83,799.225,29.8833,133.957,-61.0492],[2114.3,899.452,29,127.591,-59.1575],[2051.89,999.623,28.05,120.797,-56.8812],[1983.37,1099.48,27.0167,113.52,-54.0727],[1906.41,1199.29,25.8667,105.642,-50.4641],[1816.28,1299.84,24.5333,96.9539,-45.514],[1705.82,1399.57,22.9167,87.3962,-38.1697],[1544.32,1499.88,20.5833,76.5983,-24.4876],[1314.53,1552.17,17.3167,70.9742,-0.00278175]]], + [67,1575.28,[[2991.99,-2002.21,45.85,236.61,-77.8341],[2970.3,-1902.49,45.4167,234.278,-77.6142],[2947.6,-1800.09,44.9667,231.822,-77.3793],[2925.57,-1702.59,44.5333,229.424,-77.1465],[2902.52,-1602.51,44.0833,226.898,-76.8976],[2878.43,-1500.02,43.6167,224.243,-76.6314],[2855.01,-1402.44,43.1667,221.647,-76.3667],[2830.54,-1302.57,42.7,218.918,-76.0832],[2804.99,-1200.58,42.2167,216.053,-75.7796],[2779.24,-1100.08,41.7333,213.148,-75.4654],[2753.29,-1001.08,41.25,210.204,-75.1399],[2726.23,-900.296,40.75,207.118,-74.7906],[2698.96,-801.174,40.25,203.992,-74.4279],[2670.56,-700.526,39.7333,200.719,-74.038],[2641.93,-601.711,39.2167,197.404,-73.632],[2612.15,-501.662,38.6833,193.938,-73.1948],[2581.19,-400.595,38.1333,190.32,-72.7234],[2549.98,-301.701,37.5833,186.657,-72.2297],[2517.57,-202.117,37.0167,182.838,-71.6961],[2483.95,-102.087,36.4333,178.862,-71.1182],[2449.08,-1.86634,35.8333,174.726,-70.4913],[2412.96,98.2777,35.2167,170.429,-69.8095],[2375.55,198.064,34.5833,165.972,-69.0665],[2335.86,299.698,33.9167,161.234,-68.2329],[2295.84,397.787,33.25,156.456,-67.3414],[2252.47,499.218,32.5333,151.281,-66.3116],[2207.72,598.64,31.8,145.951,-65.1726],[2159.51,699.884,31.0167,140.232,-63.8489],[2108.82,799.902,30.2,134.254,-62.3358],[2054.57,899.772,29.3333,127.916,-60.5604],[1995.64,999.992,28.4,121.125,-58.4224],[1931.93,1098.8,27.4,113.933,-55.8274],[1859.06,1199.91,26.2667,105.961,-52.4338],[1776.83,1299.03,25,97.4028,-47.9526],[1676.26,1399.1,23.4667,87.8148,-41.3318],[1537.97,1499.51,21.3833,76.9462,-29.7564],[1272.38,1575.28,17.45,68.2293,-0.024556]]], + [68,1597.63,[[2885.59,-2003.51,46.0667,236.865,-78.3369],[2864.76,-1903.5,45.6333,234.529,-78.1262],[2842.96,-1800.78,45.1833,232.068,-77.9011],[2821.81,-1702.98,44.75,229.665,-77.678],[2799.67,-1602.59,44.3,227.134,-77.4395],[2777.36,-1503.41,43.85,224.568,-77.1937],[2754.04,-1401.86,43.3833,221.87,-76.9306],[2730.54,-1301.66,42.9167,219.134,-76.659],[2706.85,-1202.81,42.45,216.361,-76.3783],[2682.13,-1101.9,41.9667,213.448,-76.0774],[2657.21,-1002.5,41.4833,210.497,-75.7657],[2631.23,-901.277,40.9833,207.402,-75.4313],[2605.05,-801.718,40.4833,204.265,-75.084],[2577.78,-700.613,39.9667,200.98,-74.7107],[2550.29,-601.338,39.45,197.653,-74.3218],[2521.7,-500.809,38.9167,194.173,-73.9031],[2492.88,-402.287,38.3833,190.65,-73.4655],[2462.92,-302.822,37.8333,186.971,-72.9932],[2431.81,-202.644,37.2667,183.135,-72.4827],[2399.53,-101.996,36.6833,179.138,-71.9297],[2366.06,-1.13253,36.0833,174.979,-71.3296],[2331.38,99.6783,35.4667,170.657,-70.677],[2296.42,197.552,34.85,166.288,-69.9847],[2259.28,297.49,34.2,161.638,-69.2082],[2219.91,398.928,33.5167,156.703,-68.3348],[2179.25,498.929,32.8167,151.605,-67.373],[2136.31,599.383,32.0833,146.225,-66.2843],[2091.03,699.617,31.3167,140.569,-65.0465],[2043.39,798.913,30.5167,134.644,-63.6319],[1992.35,898.4,29.6667,128.342,-61.9718],[1936.83,998.64,28.75,121.565,-59.9717],[1875.72,1099.52,27.75,114.234,-57.4984],[1808.93,1198.68,26.6667,106.427,-54.4097],[1731.13,1299.8,25.4167,97.7065,-50.2021],[1639.98,1398.99,23.9667,88.2036,-44.249],[1518.14,1499.74,22.05,77.27,-34.1541],[1229.07,1597.63,17.5833,65.4621,-0.0902661]]], + [69,1619.2,[[2776.07,-2002.92,46.2667,237.066,-78.8378],[2756.1,-1902.64,45.8333,234.726,-78.6362],[2735.99,-1803.44,45.4,232.352,-78.4289],[2714.94,-1701.58,44.95,229.852,-78.2074],[2693.72,-1600.9,44.5,227.316,-77.9792],[2672.33,-1501.44,44.05,224.744,-77.7439],[2650.79,-1403.2,43.6,222.136,-77.5014],[2628.27,-1302.65,43.1333,219.393,-77.2417],[2605.57,-1203.45,42.6667,216.613,-76.9733],[2581.88,-1102.17,42.1833,213.693,-76.6856],[2558.01,-1002.39,41.7,210.733,-76.3877],[2533.11,-900.775,41.2,207.628,-76.0679],[2508.02,-800.821,40.7,204.481,-75.7358],[2482.74,-702.551,40.2,201.292,-75.3906],[2456.41,-602.799,39.6833,197.954,-75.0192],[2429.01,-501.773,39.15,194.462,-74.6193],[2401.4,-402.75,38.6167,190.925,-74.2013],[2372.7,-302.762,38.0667,187.23,-73.7501],[2342.89,-202.04,37.5,183.376,-73.2623],[2311.97,-100.826,36.9167,179.359,-72.7339],[2280.79,-2.15661,36.3333,175.295,-72.1767],[2247.57,99.3423,35.7167,170.948,-71.5537],[2214.09,197.911,35.1,166.553,-70.8928],[2178.51,298.589,34.45,161.871,-70.1512],[2141.73,398.363,33.7833,157.022,-69.3379],[2102.78,499.271,33.0833,151.884,-68.4203],[2062.59,598.429,32.3667,146.58,-67.4057],[2019.24,699.783,31.6,140.868,-66.2258],[1974.57,798.222,30.8167,135.003,-64.9059],[1925.7,899.097,29.9667,128.622,-63.3241],[1873.51,999.064,29.0667,121.869,-61.4529],[1816.97,1098.48,28.1,114.656,-59.1785],[1753.04,1199.95,27.0167,106.677,-56.2403],[1681.57,1299.89,25.8167,98.0655,-52.3988],[1597.38,1399.67,24.4167,88.5102,-46.941],[1490.02,1499.35,22.65,77.686,-38.1343],[1307.26,1599.69,19.6833,65.0493,-17.3698],[1183.54,1619.2,17.7,62.6773,-0.0571379]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 2280.79; +_maxRange = 3446.23; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg2.sqf new file mode 100644 index 0000000000..a64705455a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg2.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg2 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1099.15,[[5084.41,-2003.09,41.0833,235.285,-66.716],[5040.83,-1902.86,40.6167,233.027,-66.2693],[4995.32,-1800.44,40.1333,230.665,-65.7934],[4951.01,-1702.91,39.6667,228.362,-65.3206],[4904.74,-1603.32,39.1833,225.953,-64.8166],[4856.46,-1501.85,38.6833,223.439,-64.2793],[4807.78,-1401.97,38.1833,220.902,-63.7249],[4757.05,-1300.47,37.6667,218.258,-63.1335],[4705.88,-1200.73,37.15,215.593,-62.5224],[4654.27,-1102.78,36.6333,212.908,-61.8905],[4598.86,-1000.49,36.0833,210.03,-61.1941],[4542.96,-900.279,35.5333,207.133,-60.472],[4486.58,-802.181,34.9833,204.221,-59.7229],[4426.26,-700.477,34.4,201.117,-58.8975],[4365.39,-601.217,33.8167,198.001,-58.0385],[4302.23,-501.707,33.2167,194.788,-57.1181],[4236.73,-402.206,32.6,191.481,-56.1312],[4167.05,-300.415,31.95,187.995,-55.0433],[4096.72,-201.838,31.3,184.516,-53.9038],[4022.09,-101.725,30.6167,180.872,-52.6471],[3943.07,-0.659567,29.9,177.077,-51.2605],[3861.42,98.528,29.1667,173.231,-49.7645],[3773.33,199.683,28.3833,169.18,-48.0751],[3680.54,299.79,27.5667,165.036,-46.2072],[3581.03,399.957,26.7,160.752,-44.0989],[3474.64,499,25.7833,156.376,-41.7196],[3357.24,598.828,24.7833,151.827,-38.9398],[3226.53,698.577,23.6833,147.15,-35.6504],[3076.05,798.92,22.4333,142.341,-31.6096],[2894.82,899.729,20.95,137.479,-26.3985],[2658.56,999.338,19.05,132.886,-19.1122],[2076.38,1099.15,14.5167,131.339,-0.0164026]]], + [46,1135.7,[[5040.91,-2000.88,41.4667,235.584,-67.2068],[4998.14,-1900.15,41,233.315,-66.7696],[4955.03,-1800.73,40.5333,231.023,-66.32],[4911.56,-1702.64,40.0667,228.708,-65.8576],[4866.16,-1602.47,39.5833,226.287,-65.3647],[4818.8,-1500.39,39.0833,223.758,-64.839],[4772.64,-1403.22,38.6,221.291,-64.315],[4722.88,-1301.02,38.0833,218.63,-63.737],[4672.69,-1200.58,37.5667,215.947,-63.1395],[4622.07,-1101.9,37.05,213.242,-62.5218],[4569.38,-1001.94,36.5167,210.429,-61.8618],[4514.56,-900.892,35.9667,207.509,-61.1563],[4459.27,-801.945,35.4167,204.57,-60.4243],[4401.81,-702.23,34.85,201.526,-59.641],[4342.14,-601.981,34.2667,198.379,-58.8022],[4280.22,-501.443,33.6667,195.13,-57.9031],[4216,-400.874,33.05,191.783,-56.9387],[4149.44,-300.544,32.4167,188.342,-55.9031],[4080.5,-200.735,31.7667,184.812,-54.79],[4009.14,-101.743,31.1,181.202,-53.5924],[3933.5,-1.53511,30.4,177.43,-52.2702],[3853.5,99.2822,29.6667,173.509,-50.8097],[3770.88,197.919,28.9167,169.545,-49.2311],[3681.86,298.074,28.1167,165.383,-47.4468],[3586.3,398.681,27.2667,161.057,-45.4302],[3484.03,498.585,26.3667,156.613,-43.1511],[3371.04,599.833,25.3833,151.955,-40.482],[3248.96,698.687,24.3333,147.26,-37.4148],[3107.69,799.764,23.1333,142.325,-33.6243],[2944.55,899.161,21.7667,137.386,-28.9307],[2736.32,999.86,20.05,132.437,-22.4865],[2416.15,1099.6,17.4667,128.248,-11.8332],[2070.64,1135.7,14.75,128.878,-0.0016359]]], + [47,1172.16,[[4995.91,-2003.51,41.8667,235.994,-67.7178],[4953.98,-1902.22,41.4,233.716,-67.2906],[4911.71,-1802.24,40.9333,231.414,-66.8513],[4867.56,-1700.09,40.45,229.005,-66.3831],[4824.58,-1602.82,39.9833,226.655,-65.9177],[4778.14,-1500.11,39.4833,224.112,-65.404],[4732.88,-1402.34,39,221.63,-64.8918],[4685.66,-1302.78,38.5,219.04,-64.3453],[4636.46,-1201.61,37.9833,216.339,-63.7617],[4586.85,-1102.21,37.4667,213.616,-63.1583],[4535.19,-1001.49,36.9333,210.782,-62.5136],[4483.09,-902.707,36.4,207.928,-61.8455],[4428.9,-802.897,35.85,204.965,-61.1309],[4372.59,-702.284,35.2833,201.893,-60.3661],[4314.1,-601.1,34.7,198.715,-59.5468],[4255.1,-502.375,34.1167,195.522,-58.6934],[4192.17,-400.721,33.5,192.137,-57.752],[4128.68,-301.897,32.8833,188.745,-56.7679],[4061.14,-200.838,32.2333,185.168,-55.6819],[3991.22,-100.55,31.5667,181.504,-54.5128],[3918.89,-1.34098,30.8833,177.761,-53.2529],[3842.32,98.7503,30.1667,173.859,-51.8603],[3761.4,199.094,29.4167,169.813,-50.32],[3676.05,299.017,28.6333,165.644,-48.6145],[3584.33,399.762,27.8,161.291,-46.6848],[3487.94,498.369,26.9333,156.877,-44.5435],[3381.13,599.121,25.9833,152.207,-42.0291],[3263.63,699.863,24.95,147.373,-39.0839],[3133.18,799.584,23.8167,142.431,-35.5895],[2981.57,899.864,22.5167,137.333,-31.2298],[2798.1,999.388,20.9667,132.23,-25.5436],[2542.94,1099.39,18.85,127.377,-16.9993],[2063.15,1172.16,14.9833,126.394,-0.00488022]]], + [48,1208.49,[[4944.93,-2000.12,42.2333,236.273,-68.2036],[4905.3,-1901.97,41.7833,234.068,-67.8008],[4863.86,-1801.46,41.3167,231.755,-67.3715],[4822.09,-1702.27,40.85,229.418,-66.9299],[4778.46,-1600.95,40.3667,226.973,-66.4591],[4734.47,-1501.09,39.8833,224.502,-65.9739],[4690.11,-1402.69,39.4,222.007,-65.4737],[4643.85,-1302.48,38.9,219.401,-64.9399],[4595.63,-1200.64,38.3833,216.683,-64.3699],[4547.01,-1100.56,37.8667,213.941,-63.7804],[4497.97,-1002.27,37.35,211.177,-63.1704],[4446.93,-902.704,36.8167,208.301,-62.5183],[4393.84,-802.082,36.2667,205.314,-61.8206],[4338.66,-700.622,35.7,202.215,-61.0737],[4283,-601.44,35.1333,199.098,-60.2968],[4225.21,-501.755,34.55,195.874,-59.464],[4165.24,-401.814,33.95,192.544,-58.5703],[4103.06,-301.877,33.3333,189.112,-57.6105],[4038.62,-202.214,32.7,185.582,-56.5786],[3970.16,-100.612,32.0333,181.867,-55.4387],[3899.34,-0.0413654,31.35,178.066,-54.2097],[3826.11,99.1783,30.65,174.189,-52.8828],[3748.66,198.932,29.9167,170.158,-51.4142],[3666.91,298.567,29.15,165.988,-49.7874],[3578.95,399.389,28.3333,161.616,-47.9445],[3486.47,498.421,27.4833,157.162,-45.8979],[3385.67,598.365,26.5667,152.501,-43.5339],[3274.49,699.157,25.5667,147.624,-40.7575],[3150.74,799.943,24.4667,142.572,-37.4518],[3012.15,898.913,23.25,137.452,-33.4745],[2844.68,999.415,21.8,132.142,-28.2861],[2627.44,1099.58,19.95,126.913,-20.9879],[2216,1199.84,16.5333,123.047,-6.01439],[2053.9,1208.49,15.2167,123.886,-0.027443]]], + [49,1244.65,[[4892.4,-2001.68,42.6167,236.665,-68.7091],[4853.58,-1903.03,42.1667,234.451,-68.3159],[4812.99,-1801.99,41.7,232.129,-67.8968],[4772.07,-1702.26,41.2333,229.782,-67.4656],[4729.33,-1600.37,40.75,227.324,-67.0058],[4687.73,-1503.36,40.2833,224.927,-66.5485],[4642.79,-1400.95,39.7833,222.332,-66.0434],[4597.47,-1300.14,39.2833,219.711,-65.522],[4551.77,-1200.94,38.7833,217.065,-64.9835],[4504.15,-1100.17,38.2667,214.306,-64.4081],[4456.13,-1001.17,37.75,211.523,-63.8127],[4406.14,-900.876,37.2167,208.626,-63.1761],[4355.72,-802.531,36.6833,205.707,-62.5159],[4301.7,-700.21,36.1167,202.583,-61.7873],[4247.2,-600.158,35.55,199.438,-61.0292],[4192.23,-502.408,34.9833,196.276,-60.24],[4133.52,-401.453,34.3833,192.912,-59.3687],[4072.65,-300.462,33.7667,189.441,-58.4325],[4011.23,-202.319,33.15,185.962,-57.4527],[3945.91,-101.999,32.5,182.291,-56.3698],[3876.6,-0.0472202,31.8167,178.435,-55.1723],[3806.65,98.251,31.1333,174.589,-53.9104],[3730.88,199.616,30.4,170.485,-52.4797],[3652.64,298.803,29.65,166.324,-50.9289],[3568.36,399.529,28.85,161.942,-49.1703],[3479.69,498.801,28.0167,157.46,-47.2157],[3382.93,599.439,27.1167,152.741,-44.9542],[3277.87,699.81,26.15,147.85,-42.339],[3162.46,799.628,25.1,142.799,-39.2657],[3032.68,899.115,23.9333,137.582,-35.5511],[2880.53,998.984,22.5833,132.188,-30.8445],[2689.83,1099.31,20.9167,126.708,-24.4335],[2403.92,1199.74,18.4667,121.633,-13.9516],[2042.87,1244.65,15.45,121.354,-0.0706346]]], + [50,1280.6,[[4835.43,-2000.95,42.9833,237.006,-69.205],[4797.42,-1901.81,42.5333,234.783,-68.8211],[4757.67,-1800.27,42.0667,232.452,-68.4118],[4717.6,-1700.04,41.6,230.095,-67.9908],[4677.21,-1601.13,41.1333,227.711,-67.5575],[4635.02,-1500.1,40.65,225.216,-67.0952],[4592.49,-1400.54,40.1667,222.695,-66.6185],[4549.6,-1302.46,39.6833,220.148,-66.1269],[4504.87,-1202.59,39.1833,217.487,-65.6019],[4458.27,-1101.1,38.6667,214.712,-65.041],[4411.27,-1001.39,38.15,211.91,-64.4605],[4362.34,-900.349,37.6167,208.994,-63.8396],[4313,-801.251,37.0833,206.053,-63.1956],[4261.68,-701.121,36.5333,202.996,-62.5061],[4208.35,-600.183,35.9667,199.825,-61.7672],[4154.56,-501.538,35.4,196.634,-60.9979],[4098.71,-402.421,34.8167,193.332,-60.1723],[4039.15,-300.36,34.2,189.825,-59.2602],[3979.06,-201.135,33.5833,186.305,-58.3053],[3916.8,-102.225,32.95,182.684,-57.2772],[3850.67,-1.43606,32.2833,178.869,-56.1398],[3782.26,98.2776,31.6,174.965,-54.9114],[3709.85,198.888,30.8833,170.887,-53.5503],[3633.35,299.762,30.1333,166.647,-52.0404],[3554.39,398.142,29.3667,162.357,-50.4002],[3467.72,499.563,28.5333,157.764,-48.4983],[3376.66,598.857,27.6667,153.089,-46.3791],[3277.56,698.629,26.7333,148.203,-43.9239],[3168.43,798.729,25.7167,143.102,-41.0312],[3045.36,899.605,24.5833,137.756,-37.5206],[2904.22,999.976,23.3,132.242,-33.163],[2735.07,1099.3,21.7833,126.649,-27.4787],[2502.51,1199.68,19.7333,121.086,-18.9258],[2028.08,1280.6,15.6667,118.816,-0.0572673]]], + [51,1316.3,[[4775.45,-2001.62,43.35,237.379,-69.7059],[4738.25,-1902,42.9,235.149,-69.3315],[4700.76,-1803.57,42.45,232.893,-68.9467],[4661.56,-1702.77,41.9833,230.526,-68.5363],[4622.04,-1603.29,41.5167,228.133,-68.114],[4580.78,-1501.67,41.0333,225.628,-67.6634],[4539.16,-1401.51,40.55,223.094,-67.1989],[4497.21,-1302.82,40.0667,220.535,-66.7196],[4453.46,-1202.31,39.5667,217.86,-66.2078],[4407.86,-1100.16,39.05,215.068,-65.6609],[4363.37,-1002.99,38.55,212.34,-65.1133],[4315.51,-901.186,38.0167,209.405,-64.5085],[4267.25,-801.318,37.4833,206.443,-63.8811],[4217.05,-700.387,36.9333,203.364,-63.2091],[4166.43,-601.577,36.3833,200.262,-62.5106],[4113.83,-502.021,35.8167,197.043,-61.7614],[4059.22,-401.957,35.2333,193.71,-60.9573],[4002.56,-301.633,34.6333,190.263,-60.0933],[3943.8,-201.309,34.0167,186.706,-59.1638],[3882.93,-101.257,33.3833,183.041,-58.1627],[3819.89,-1.76299,32.7333,179.274,-57.0831],[3753.02,99.297,32.05,175.314,-55.8874],[3683.89,199.008,31.35,171.267,-54.5933],[3610.78,299.264,30.6167,167.047,-53.1572],[3533.63,399.411,29.85,162.672,-51.5615],[3452.33,498.752,29.05,158.162,-49.7856],[3365.1,598.437,28.2,153.455,-47.7655],[3270.06,699.069,27.2833,148.506,-45.4211],[3167.01,798.968,26.3,143.385,-42.7005],[3052.2,899.227,25.2167,138.027,-39.4389],[2921.7,999.381,24,132.456,-35.4245],[2767.73,1099.13,22.5833,126.716,-30.2627],[2569.05,1199.23,20.7833,120.882,-22.955],[2221.07,1299.82,17.7,115.792,-8.84472],[2011.57,1316.3,15.8833,116.254,-0.0642618]]], + [52,1351.71,[[4711.08,-2000.03,43.7,237.702,-70.1983],[4676.06,-1903.65,43.2667,235.546,-69.8467],[4638.03,-1801.07,42.8,233.198,-69.4576],[4601.07,-1703.39,42.35,230.907,-69.0718],[4562.43,-1603.38,41.8833,228.505,-68.6602],[4522.07,-1501.2,41.4,225.988,-68.2211],[4481.39,-1400.47,40.9167,223.443,-67.7682],[4440.36,-1301.22,40.4333,220.87,-67.301],[4397.58,-1200.11,39.9333,218.181,-66.802],[4354.43,-1100.63,39.4333,215.464,-66.2863],[4310.94,-1002.79,38.9333,212.721,-65.7529],[4264.15,-900.275,38.4,209.767,-65.1637],[4218.45,-802.799,37.8833,206.878,-64.5718],[4169.39,-701.053,37.3333,203.778,-63.9178],[4119.91,-601.417,36.7833,200.652,-63.2377],[4068.5,-501.003,36.2167,197.407,-62.5082],[4015.11,-400.047,35.6333,194.044,-61.725],[3961.27,-301.572,35.05,190.66,-60.9071],[3903.86,-200.207,34.4333,187.066,-60.0024],[3845.94,-101.699,33.8167,183.457,-59.054],[3784.35,-1.00193,33.1667,179.644,-58.0037],[3720.61,98.883,32.5,175.729,-56.869],[3654.69,197.646,31.8167,171.719,-55.6413],[3583.29,299.498,31.0833,167.429,-54.2456],[3509.58,399.17,30.3333,163.069,-52.7283],[3431.86,498.344,29.55,158.56,-51.0388],[3348.37,598.24,28.7167,153.832,-49.1149],[3257.28,699.534,27.8167,148.833,-46.8787],[3160.13,798.912,26.8667,143.715,-44.3255],[3051.58,899.6,25.8167,138.299,-41.2549],[2931.31,998.675,24.6667,132.735,-37.5707],[2788.34,1099.8,23.3167,126.823,-32.7928],[2612.87,1199.83,21.6833,120.802,-26.3436],[2357.62,1299.53,19.35,114.963,-15.9602],[1991.44,1351.71,16.0833,113.684,-0.0109024]]], + [53,1386.79,[[4645.04,-2003.67,44.0667,238.138,-70.7087],[4609.5,-1903.09,43.6167,235.893,-70.3531],[4572.34,-1800.03,43.15,233.537,-69.974],[4536.21,-1701.87,42.7,231.237,-69.598],[4498.45,-1601.37,42.2333,228.825,-69.1969],[4460.37,-1502.19,41.7667,226.385,-68.7838],[4420.62,-1400.88,41.2833,223.829,-68.3429],[4380.53,-1301.05,40.8,221.244,-67.888],[4340.12,-1202.7,40.3167,218.632,-67.4185],[4297.98,-1102.55,39.8167,215.901,-66.9167],[4254.07,-1000.78,39.3,213.051,-66.3801],[4209.78,-900.794,38.7833,210.171,-65.8244],[4165.14,-802.605,38.2667,207.265,-65.2484],[4117.21,-700.092,37.7167,204.143,-64.6118],[4070.34,-602.693,37.1833,201.09,-63.9701],[4020.13,-501.406,36.6167,197.819,-63.2607],[3969.48,-402.416,36.05,194.525,-62.5211],[3915.4,-300.146,35.45,191.014,-61.703],[3860.84,-200.53,34.85,187.482,-60.8469],[3804.28,-100.952,34.2333,183.835,-59.9246],[3745.68,-1.68815,33.6,180.077,-58.9298],[3683.45,99.4628,32.9333,176.111,-57.827],[3619.09,199.537,32.25,172.046,-56.6332],[3552.56,298.211,31.55,167.887,-55.3387],[3480.61,399.555,30.8,163.451,-53.8653],[3406.38,498.401,30.0333,158.951,-52.2594],[3326.54,598.33,29.2167,154.213,-50.4288],[3240.98,698.236,28.35,149.272,-48.3396],[3147.9,798.648,27.4167,144.084,-45.9068],[3045.42,899.421,26.4,138.637,-43.0227],[2931.59,999.605,25.2833,132.968,-39.5507],[2800.91,1099.72,24.0167,127.044,-35.1998],[2644.09,1199.38,22.5167,120.914,-29.4539],[2431.63,1299.8,20.5167,114.66,-20.8106],[1971.52,1386.79,16.3,111.074,-0.0615657]]], + [54,1421.51,[[4573.35,-2001.39,44.4,238.442,-71.1982],[4538.64,-1900.38,43.95,236.19,-70.8518],[4503.64,-1800.55,43.5,233.909,-70.4958],[4468.36,-1701.91,43.05,231.602,-70.1298],[4431.48,-1600.89,42.5833,229.18,-69.7393],[4394.3,-1501.2,42.1167,226.73,-69.3371],[4356.82,-1402.85,41.65,224.252,-68.9228],[4317.68,-1302.42,41.1667,221.657,-68.4804],[4276.86,-1200.09,40.6667,218.941,-68.0077],[4237.08,-1102.69,40.1833,216.288,-67.5355],[4194.21,-1000.27,39.6667,213.422,-67.0135],[4152.37,-902.839,39.1667,210.62,-66.4905],[4107.38,-800.764,38.6333,207.602,-65.9122],[4062.01,-700.629,38.1,204.555,-65.3117],[4016.26,-602.464,37.5667,201.48,-64.6879],[3967.24,-500.354,37,198.186,-63.998],[3917.8,-400.533,36.4333,194.865,-63.2785],[3866.47,-300.204,35.85,191.421,-62.5052],[3814.71,-202.373,35.2667,187.956,-61.6967],[3759.52,-101.708,34.65,184.273,-60.8012],[3702.34,-1.31555,34.0167,180.473,-59.835],[3643.14,98.519,33.3667,176.56,-58.7908],[3580.35,199.926,32.6833,172.441,-57.6317],[3515.44,299.98,31.9833,168.222,-56.3742],[3448.38,398.344,31.2667,163.914,-55.0074],[3375.98,498.942,30.5,159.331,-53.4494],[3299.72,598.737,29.7,154.593,-51.7092],[3217.9,698.888,28.85,149.63,-49.721],[3128.77,799.998,27.9333,144.39,-47.4023],[3033.81,898.754,26.9667,139.031,-44.7431],[2926.24,999.681,25.8833,133.289,-41.4794],[2805.7,1099.26,24.6833,127.346,-37.4856],[2663.3,1198.93,23.2833,121.121,-32.2908],[2479.24,1299.71,21.5,114.619,-24.8204],[2172.06,1399.97,18.5833,108.543,-10.8084],[1948.05,1421.51,16.5,108.454,-0.0516628]]], + [55,1455.82,[[4498.71,-2000.68,44.7333,238.778,-71.6932],[4466.09,-1902.97,44.3,236.602,-71.3687],[4431.94,-1802.64,43.85,234.316,-71.0225],[4397.52,-1703.51,43.4,232.001,-70.6667],[4361.54,-1601.97,42.9333,229.571,-70.2869],[4325.26,-1501.76,42.4667,227.112,-69.8959],[4288.69,-1402.88,42,224.624,-69.493],[4250.5,-1301.9,41.5167,222.018,-69.0627],[4212.01,-1202.39,41.0333,219.381,-68.6185],[4171.85,-1101.03,40.5333,216.624,-68.1437],[4131.37,-1001.29,40.0333,213.836,-67.6525],[4090.56,-903.203,39.5333,211.019,-67.1442],[4046.67,-800.423,39,207.983,-66.5821],[4003.79,-702.699,38.4833,205.013,-66.017],[3957.77,-600.693,37.9333,201.821,-65.3919],[3911.36,-500.805,37.3833,198.601,-64.7412],[3863.14,-400.137,36.8167,195.255,-64.0424],[3814.52,-301.783,36.25,191.883,-63.313],[3762.59,-200.204,35.65,188.287,-62.5053],[3710.22,-101.297,35.05,184.669,-61.6588],[3655.93,-2.46843,34.4333,180.931,-60.7457],[3598.21,98.5561,33.7833,176.974,-59.7326],[3538.49,198.767,33.1167,172.905,-58.6357],[3476.72,297.852,32.4333,168.73,-57.4459],[3411.36,397.762,31.7167,164.356,-56.1214],[3342.34,497.86,30.9667,159.796,-54.6444],[3268.02,599.529,30.1667,154.965,-52.9575],[3189.85,699.748,29.3333,149.991,-51.0674],[3106.19,799.549,28.45,144.81,-48.9022],[3015.3,899.383,27.5,139.377,-46.3709],[2915.4,999.014,26.4667,133.686,-43.3566],[2802.98,1098.74,25.3167,127.696,-39.6536],[2671.07,1199.43,23.9833,121.339,-34.8642],[2508.95,1299.64,22.3667,114.727,-28.3061],[2276.08,1399.52,20.0833,108.082,-17.6938],[1922.92,1455.82,16.7,105.81,-0.0651224]]], + [56,1489.69,[[4421.11,-2001.63,45.0667,239.146,-72.1934],[4389.29,-1903.47,44.6333,236.965,-71.8779],[4356,-1802.69,44.1833,234.671,-71.5414],[4322.43,-1703.1,43.7333,232.349,-71.1954],[4287.34,-1601.08,43.2667,229.911,-70.8262],[4251.97,-1500.38,42.8,227.443,-70.446],[4216.31,-1401,42.3333,224.945,-70.0543],[4180.36,-1302.98,41.8667,222.418,-69.6505],[4142.83,-1202.9,41.3833,219.77,-69.219],[4103.69,-1100.94,40.8833,217,-68.7577],[4064.22,-1000.6,40.3833,214.199,-68.2805],[4024.43,-901.902,39.8833,211.367,-67.7866],[3982.98,-801.667,39.3667,208.409,-67.2578],[3939.83,-700.094,38.8333,205.325,-66.6911],[3896.33,-600.476,38.3,202.211,-66.1022],[3852.47,-502.842,37.7667,199.067,-65.4899],[3805.48,-401.31,37.2,195.697,-64.812],[3758.09,-302.083,36.6333,192.299,-64.1043],[3708.9,-202.382,36.05,188.775,-63.3428],[3657.87,-102.457,35.45,185.124,-62.5222],[3604.97,-2.57022,34.8333,181.349,-61.6367],[3548.73,99.5809,34.1833,177.35,-60.654],[3492,198.467,33.5333,173.337,-59.6168],[3431.83,298.851,32.85,169.108,-58.4632],[3369.64,397.83,32.15,164.775,-57.209],[3302.41,499.486,31.4,160.141,-55.7771],[3233.05,598.635,30.6333,155.429,-54.2109],[3158.47,698.868,29.8167,150.453,-52.4184],[3078.56,799.074,28.95,145.245,-50.3631],[2991.65,899.784,28.0167,139.755,-47.9564],[2897.57,999.267,27.0167,134.054,-45.1335],[2791.39,1099.9,25.9,127.979,-41.6534],[2671.16,1199.26,24.65,121.655,-37.3098],[2525.03,1299.66,23.15,114.929,-31.4273],[2330.55,1399.59,21.1833,107.993,-22.5883],[1894.41,1489.69,16.8833,103.155,-0.0134422]]], + [57,1523.07,[[4339.29,-2000.45,45.3833,239.464,-72.687],[4308.3,-1901.9,44.95,237.277,-72.3804],[4275.85,-1800.7,44.5,234.976,-72.0533],[4243.14,-1700.67,44.05,232.646,-71.717],[4210.18,-1601.85,43.6,230.287,-71.3712],[4175.71,-1500.64,43.1333,227.81,-71.002],[4140.97,-1400.77,42.6667,225.303,-70.6216],[4105.95,-1302.23,42.2,222.766,-70.2294],[4069.39,-1201.62,41.7167,220.108,-69.8103],[4032.53,-1102.49,41.2333,217.418,-69.3775],[3994.09,-1001.53,40.7333,214.604,-68.9144],[3955.33,-902.209,40.2333,211.758,-68.4352],[3914.96,-801.321,39.7167,208.786,-67.9219],[3874.25,-702.234,39.2,205.781,-67.3895],[3831.89,-601.867,38.6667,202.649,-66.8186],[3787.83,-500.433,38.1167,199.386,-66.2058],[3743.41,-401.131,37.5667,196.092,-65.5673],[3697.26,-301.083,37,192.669,-64.8808],[3649.36,-200.528,36.4167,189.116,-64.1419],[3601.05,-102.479,35.8333,185.536,-63.3682],[3549.54,-1.59358,35.2167,181.726,-62.5097],[3496.19,99.0156,34.5833,177.791,-61.5818],[3440.96,199.061,33.9333,173.733,-60.5769],[3383.82,298.242,33.2667,169.557,-59.4867],[3323.29,398.589,32.5667,165.166,-58.2721],[3259.31,499.484,31.8333,160.567,-56.9163],[3193.29,598.127,31.0833,155.88,-55.4337],[3122.21,698.206,30.2833,150.911,-53.7355],[3045.98,798.637,29.4333,145.69,-51.7866],[2964.47,898.248,28.5333,140.256,-49.5447],[2874.53,999.048,27.55,134.47,-46.8638],[2775.94,1098.76,26.4833,128.434,-43.6543],[2663.8,1198.76,25.2833,122.035,-39.6305],[2529.8,1299.97,23.8667,115.184,-34.2662],[2361.98,1399.36,22.1167,108.114,-26.6718],[2081.86,1499.71,19.25,101.069,-12.1133],[1865.99,1523.07,17.0833,100.462,-0.0778515]]], + [58,1555.95,[[4254.55,-2001,45.7,239.815,-73.1859],[4224.38,-1902.03,45.2667,237.622,-72.8883],[4192.79,-1800.4,44.8167,235.315,-72.5708],[4162.14,-1703.63,44.3833,233.065,-72.2567],[4128.86,-1600.66,43.9167,230.611,-71.9087],[4096.51,-1502.6,43.4667,228.215,-71.5633],[4062.7,-1402.21,43,225.7,-71.1944],[4028.61,-1303.16,42.5333,223.154,-70.814],[3993.03,-1202,42.05,220.485,-70.4076],[3957.16,-1102.32,41.5667,217.784,-69.9877],[3919.74,-1000.78,41.0667,214.958,-69.5385],[3882.02,-900.875,40.5667,212.098,-69.0736],[3844,-802.625,40.0667,209.207,-68.592],[3804.39,-702.864,39.55,206.187,-68.0759],[3763.16,-601.795,39.0167,203.036,-67.5225],[3721.6,-502.693,38.4833,199.854,-66.9468],[3678.38,-402.587,37.9333,196.539,-66.3285],[3633.48,-301.701,37.3667,193.092,-65.6636],[3586.88,-200.274,36.7833,189.512,-64.9478],[3539.88,-101.344,36.2,185.903,-64.1981],[3491.13,-2.2326,35.6,182.164,-63.3891],[3439.23,99.4331,34.9667,178.191,-62.4906],[3386.89,198.022,34.3333,174.196,-61.5429],[3331.32,298.425,33.6667,169.972,-60.4881],[3273.86,397.695,32.9833,165.632,-59.3411],[3213.06,497.784,32.2667,161.075,-58.0605],[3148.87,598.051,31.5167,156.313,-56.6277],[3079.77,699.881,30.7167,151.257,-54.985],[3008.56,798.296,29.9,146.138,-53.1746],[2930.82,898.352,29.0167,140.677,-51.0491],[2846.4,998.433,28.0667,134.926,-48.5487],[2752.12,1099.83,27.0167,128.772,-45.4983],[2647.75,1199.62,25.8667,122.359,-41.7737],[2526.89,1299.15,24.55,115.573,-36.9656],[2376.57,1399.54,22.9333,108.321,-30.2035],[2160.87,1499.57,20.65,100.836,-19.0376],[1834.26,1555.94,17.2667,97.7569,-0.0767037]]], + [59,1588.27,[[4166.83,-2003.33,46.0167,240.2,-73.6902],[4136.36,-1900.14,45.5667,237.916,-73.3905],[4106.78,-1801.86,45.1333,235.689,-73.094],[4075.82,-1700.95,44.6833,233.346,-72.7776],[4044.61,-1601.23,44.2333,230.972,-72.4522],[4013.15,-1502.71,43.7833,228.569,-72.1173],[3980.27,-1401.83,43.3167,226.045,-71.7596],[3947.13,-1302.29,42.85,223.49,-71.3909],[3912.52,-1200.62,42.3667,220.81,-70.9968],[3877.63,-1100.43,41.8833,218.098,-70.5896],[3842.46,-1001.73,41.4,215.354,-70.1688],[3805.79,-901.232,40.9,212.482,-69.7184],[3768.82,-802.38,40.4,209.577,-69.2518],[3730.31,-701.99,39.8833,206.541,-68.7518],[3690.23,-600.263,39.35,203.373,-68.2155],[3649.81,-500.498,38.8167,200.171,-67.6577],[3609.07,-402.724,38.2833,196.937,-67.0768],[3565.43,-301.051,37.7167,193.467,-66.4331],[3521.42,-201.692,37.15,189.965,-65.7601],[3475.74,-101.864,36.5667,186.328,-65.0348],[3428.36,-1.818,35.9667,182.558,-64.2521],[3379.25,98.1815,35.35,178.654,-63.4059],[3328.39,197.858,34.7167,174.62,-62.4896],[3274.39,299.419,34.05,170.351,-61.4694],[3218.55,399.887,33.3667,165.959,-60.3595],[3160.85,498.935,32.6667,161.45,-59.1492],[3099.87,598.437,31.9333,156.726,-57.7949],[3034.15,699.833,31.15,151.693,-56.2411],[2966.41,798.093,30.35,146.583,-54.529],[2892.34,898.415,29.4833,141.107,-52.5163],[2811.81,999.219,28.55,135.309,-50.1455],[2724.67,1098.77,27.55,129.26,-47.3445],[2626.34,1199.45,26.4333,122.775,-43.861],[2515.06,1298.8,25.1833,115.97,-39.465],[2379.91,1399.12,23.6833,108.652,-33.4269],[2198.63,1499.54,21.7,100.909,-24.0964],[1799.36,1588.27,17.4333,95.0383,-0.00466495]]], + [60,1619.99,[[4075.05,-2003.65,46.3167,240.534,-74.1888],[4045.45,-1900.05,45.8667,238.245,-73.8984],[4016.71,-1801.38,45.4333,236.012,-73.6111],[3986.62,-1700.05,44.9833,233.662,-73.3046],[3957.43,-1603.6,44.55,231.37,-73.0011],[3925.74,-1500.97,44.0833,228.87,-72.6647],[3894.93,-1403.24,43.6333,226.429,-72.3306],[3862.74,-1303.2,43.1667,223.865,-71.9737],[3829.12,-1201.02,42.6833,221.177,-71.5921],[3795.23,-1100.3,42.2,218.454,-71.1979],[3761.07,-1001.07,41.7167,215.699,-70.7905],[3725.45,-900.01,41.2167,212.814,-70.3543],[3689.53,-800.595,40.7167,209.895,-69.9025],[3653.33,-702.848,40.2167,206.943,-69.4341],[3614.4,-600.45,39.6833,203.759,-68.9153],[3575.15,-500.006,39.15,200.539,-68.3755],[3535.58,-401.545,38.6167,197.285,-67.8134],[3494.45,-302.115,38.0667,193.896,-67.209],[3451.71,-201.943,37.5,190.37,-66.5584],[3407.36,-101.27,36.9167,186.707,-65.857],[3361.35,-0.345439,36.3167,182.906,-65.0999],[3314.96,97.8767,35.7167,179.076,-64.3039],[3265.57,198.581,35.0833,175.004,-63.4184],[3214.46,298.71,34.4333,170.8,-62.4574],[3161.59,397.963,33.7667,166.467,-61.4123],[3105.59,498.37,33.0667,161.902,-60.2447],[3046.41,599.31,32.3333,157.114,-58.9372],[2985.35,697.98,31.5833,152.22,-57.5022],[2919.63,798.066,30.7833,147.021,-55.8518],[2849.16,898.479,29.9333,141.541,-53.9484],[2772.43,999.819,29.0167,135.711,-51.7033],[2690.74,1098.76,28.05,129.694,-49.0942],[2598.26,1199.81,26.9667,123.174,-45.8395],[2494.72,1299.43,25.7667,116.326,-41.7759],[2372.54,1399.05,24.3667,109.01,-36.354],[2214.86,1499.59,22.5833,101.126,-28.2907],[1949.29,1599.79,19.6333,93.1046,-12.2359],[1764.5,1619.99,17.6167,92.2832,-0.0588822]]], + [61,1651.09,[[3979.31,-2001.97,46.6,240.818,-74.6825],[3951.63,-1901.83,46.1667,238.609,-74.4119],[3923.74,-1802.75,45.7333,236.37,-74.134],[3894.55,-1701,45.2833,234.015,-73.8374],[3865.13,-1600.42,44.8333,231.628,-73.5322],[3835.47,-1501.04,44.3833,229.21,-73.2183],[3805.57,-1402.88,43.9333,226.761,-72.895],[3774.33,-1302.38,43.4667,224.189,-72.5496],[3742.83,-1203.22,43,221.585,-72.1934],[3709.95,-1101.97,42.5167,218.853,-71.8123],[3676.81,-1002.19,42.0333,216.087,-71.4184],[3642.25,-900.565,41.5333,213.191,-70.9967],[3607.4,-800.574,41.0333,210.259,-70.5599],[3572.28,-702.245,40.5333,207.293,-70.107],[3535.69,-602.41,40.0167,204.193,-69.6212],[3497.62,-501.271,39.4833,200.957,-69.0998],[3459.23,-402.107,38.95,197.686,-68.5568],[3419.33,-301.945,38.4,194.276,-67.9728],[3377.87,-201.012,37.8333,190.727,-67.3441],[3336.07,-102.411,37.2667,187.144,-66.686],[3291.45,-0.588593,36.6667,183.315,-65.955],[3246.45,98.5406,36.0667,179.454,-65.1863],[3199.82,197.576,35.45,175.454,-64.354],[3150.26,298.792,34.8,171.21,-63.4267],[3098.98,399.172,34.1333,166.832,-62.4179],[3045.98,498.4,33.45,162.324,-61.3179],[2989.9,598.428,32.7333,157.584,-60.086],[2930.71,698.61,31.9833,152.621,-58.7027],[2868.33,798.262,31.2,147.447,-57.1449],[2801.37,898.599,30.3667,141.973,-55.347],[2729.73,998.472,29.4833,136.231,-53.2652],[2651.95,1098.32,28.5333,130.162,-50.7997],[2565.14,1199.43,27.4833,123.635,-47.7669],[2469.07,1298.84,26.3333,116.792,-44.0258],[2356.46,1399.04,25,109.403,-39.0676],[2216.82,1499.39,23.3667,101.453,-31.9803],[2012.82,1599.73,21.0167,93.0214,-19.7433],[1726.57,1651.09,17.7833,89.5143,-0.0419768]]], + [62,1681.53,[[3880.7,-2002.18,46.8833,241.136,-75.182],[3853.87,-1901.67,46.45,238.922,-74.9204],[3826.84,-1802.21,46.0167,236.678,-74.6516],[3798.54,-1700.06,45.5667,234.317,-74.3648],[3771.07,-1602.81,45.1333,232.013,-74.0809],[3742.32,-1502.98,44.6833,229.589,-73.7776],[3712.28,-1400.74,44.2167,227.042,-73.4536],[3683.07,-1303.39,43.7667,224.553,-73.1317],[3651.45,-1200.23,43.2833,221.846,-72.775],[3620.68,-1102,42.8167,219.199,-72.4193],[3588.55,-1001.72,42.3333,216.423,-72.0388],[3556.17,-902.942,41.85,213.613,-71.6451],[3522.41,-802.361,41.35,210.67,-71.2235],[3487.23,-700.168,40.8333,207.591,-70.7715],[3452.92,-602.979,40.3333,204.577,-70.3174],[3416.02,-501.191,39.8,201.325,-69.8139],[3378.83,-401.371,39.2667,198.035,-69.2896],[3340.15,-300.526,38.7167,194.606,-68.7257],[3301.17,-201.838,38.1667,191.14,-68.1366],[3260.67,-102.449,37.6,187.534,-67.5017],[3218.64,-2.60011,37.0167,183.785,-66.8164],[3175.06,97.4555,36.4167,179.895,-66.0755],[3129.89,197.453,35.8,175.862,-65.2732],[3081.87,299.694,35.15,171.58,-64.3789],[3033.45,398.642,34.5,167.269,-63.4307],[2982.11,499.061,33.8167,162.712,-62.3706],[2929.06,598.041,33.1167,158.027,-61.2114],[2871.74,699.66,32.3667,152.996,-59.8789],[2812.62,798.728,31.6,147.856,-58.4102],[2749.09,898.828,30.7833,142.399,-56.7142],[2681.05,998.838,29.9167,136.652,-54.749],[2607.09,1099.27,28.9833,130.547,-52.4187],[2525.75,1199.97,27.9667,124.044,-49.595],[2435.51,1299.94,26.85,117.151,-46.1035],[2332.06,1399.66,25.5833,109.776,-41.5789],[2206.76,1499.62,24.0667,101.804,-35.2662],[2036.47,1599.84,22.0333,93.1964,-25.1294],[1687.13,1681.53,17.95,86.7201,-0.0553252]]], + [63,1711.26,[[3778.22,-2000.46,47.15,241.404,-75.6777],[3753.25,-1903.46,46.7333,239.271,-75.4347],[3727.08,-1803.62,46.3,237.023,-75.1753],[3699.68,-1701.07,45.85,234.656,-74.8984],[3673.09,-1603.42,45.4167,232.346,-74.6244],[3645.26,-1503.18,44.9667,229.916,-74.3316],[3616.17,-1400.5,44.5,227.362,-74.0188],[3587.9,-1302.73,44.05,224.866,-73.708],[3558.35,-1202.65,43.5833,222.244,-73.3757],[3527.49,-1100.43,43.1,219.494,-73.0202],[3497.47,-1003.13,42.6333,216.804,-72.6656],[3465.04,-900.432,42.1333,213.885,-72.2727],[3433.45,-802.7,41.65,211.028,-71.8792],[3400.5,-703.221,41.15,208.037,-71.4575],[3366.19,-602.184,40.6333,204.909,-71.0051],[3331.59,-502.961,40.1167,201.743,-70.5349],[3295.6,-402.47,39.5833,198.438,-70.0295],[3258.17,-300.924,39.0333,194.99,-69.486],[3220.44,-201.528,38.4833,191.504,-68.9181],[3181.25,-101.402,37.9167,187.875,-68.306],[3140.58,-0.786904,37.3333,184.1,-67.6451],[3099.57,97.2999,36.75,180.29,-66.9508],[3055.87,198.201,36.1333,176.226,-66.1777],[3010.6,298.801,35.5,172.018,-65.3386],[2963.76,398.807,34.85,167.667,-64.4258],[2915.31,497.917,34.1833,163.177,-63.4306],[2864,598.154,33.4833,158.438,-62.3154],[2809.79,698.895,32.75,153.458,-61.0624],[2752.62,799.475,31.9833,148.245,-59.65],[2692.43,899.182,31.1833,142.814,-58.0523],[2627.91,999.162,30.3333,137.073,-56.1998],[2557.69,1100,29.4167,130.946,-54.0009],[2481.65,1199.99,28.4333,124.489,-51.3787],[2398.36,1298.73,27.3667,117.683,-48.1825],[2302.39,1398.82,26.15,110.277,-44.0237],[2188.08,1499.3,24.7167,102.238,-38.3173],[2040.01,1599.91,22.8833,93.4968,-29.5805],[1771.44,1699.92,19.6167,84.41,-10.0909],[1646.19,1711.26,18.1167,83.9014,-0.102621]]], + [64,1740.28,[[3672.94,-2000.69,47.4167,241.706,-76.1793],[3648.79,-1903.36,47,239.569,-75.9449],[3623.48,-1803.16,46.5667,237.316,-75.6947],[3596.99,-1700.24,46.1167,234.944,-75.4277],[3571.28,-1602.23,45.6833,232.628,-75.1633],[3544.38,-1501.61,45.2333,230.191,-74.8809],[3517.26,-1402.19,44.7833,227.722,-74.5902],[3488.91,-1300.37,44.3167,225.126,-74.2794],[3461.36,-1203.45,43.8667,222.59,-73.9704],[3431.53,-1100.75,43.3833,219.831,-73.6279],[3402.51,-1002.99,42.9167,217.132,-73.2861],[3372.21,-903.2,42.4333,214.301,-72.9202],[3340.62,-801.562,41.9333,211.335,-72.5281],[3308.77,-701.568,41.4333,208.331,-72.1216],[3276.67,-603.244,40.9333,205.291,-71.6998],[3242.15,-500.231,40.4,202.008,-71.232],[3208.44,-402.302,39.8833,198.789,-70.7603],[3172.27,-300.104,39.3333,195.323,-70.2368],[3135.8,-200.048,38.7833,191.818,-69.6898],[3099.04,-102.167,38.2333,188.274,-69.1177],[3059.74,-0.76711,37.65,184.476,-68.4817],[3020.11,98.113,37.0667,180.639,-67.8134],[2977.87,199.862,36.45,176.545,-67.0691],[2935.29,298.709,35.8333,172.414,-66.2829],[2890.02,399.711,35.1833,168.025,-65.4048],[2843.21,499.852,34.5167,163.491,-64.4471],[2794.83,598.817,33.8333,158.816,-63.3999],[2743.65,698.546,33.1167,153.892,-62.2231],[2689.63,798.393,32.3667,148.725,-60.8968],[2631.51,899.724,31.5667,143.212,-59.3631],[2570.43,999.512,30.7333,137.488,-57.6195],[2505.1,1098.77,29.85,131.464,-55.588],[2432.94,1199.58,28.8833,124.963,-53.1192],[2353.82,1299.7,27.8333,118.063,-50.1041],[2265.02,1399.31,26.6667,110.686,-46.2834],[2161.19,1499.05,25.3167,102.692,-41.1438],[2030.19,1599.69,23.6333,93.8937,-33.4876],[1832.75,1699.7,21.1333,84.4019,-19.3482],[1602.41,1740.28,18.2667,81.0662,-0.0717522]]], + [65,1768.52,[[3564.86,-2002.98,47.6833,242.044,-76.6865],[3540.62,-1901.41,47.25,239.817,-76.4518],[3516.18,-1800.89,46.8167,237.559,-76.2107],[3491.55,-1701.43,46.3833,235.269,-75.963],[3466.73,-1603.04,45.95,232.949,-75.7085],[3440.76,-1502.03,45.5,230.506,-75.4366],[3414.57,-1402.21,45.05,228.03,-75.1567],[3388.19,-1303.61,44.6,225.521,-74.8683],[3360.61,-1202.66,44.1333,222.884,-74.56],[3332.82,-1103.05,43.6667,220.212,-74.2417],[3303.8,-1001.33,43.1833,217.408,-73.9011],[3274.55,-901.088,42.7,214.566,-73.5487],[3245.07,-802.359,42.2167,211.688,-73.1839],[3214.33,-701.837,41.7167,208.673,-72.7928],[3183.34,-602.978,41.2167,205.62,-72.387],[3151.07,-502.598,40.7,202.427,-71.9513],[3117.49,-400.898,40.1667,199.089,-71.483],[3083.64,-301.178,39.6333,195.712,-70.9948],[3048.45,-200.445,39.0833,192.188,-70.4689],[3012.97,-101.881,38.5333,188.624,-69.919],[2976.13,-2.63059,37.9667,184.913,-69.3254],[2936.8,99.8734,37.3667,180.941,-68.6647],[2897.14,199.679,36.7667,176.929,-67.9686],[2856.05,299.404,36.15,172.766,-67.2132],[2813.5,398.767,35.5167,168.454,-66.3915],[2768.34,499.965,34.85,163.879,-65.4722],[2722.8,597.626,34.1833,159.274,-64.4918],[2673.44,698.611,33.4667,154.295,-63.363],[2621.34,799.785,32.7167,149.065,-62.09],[2567.62,898.372,31.95,143.709,-60.6807],[2508.72,999.901,31.1167,137.894,-59.0102],[2446.92,1099.18,30.25,131.875,-57.1],[2379.76,1198.78,29.3167,125.459,-54.8185],[2305.92,1298.52,28.3,118.597,-52.029],[2222.82,1398.77,27.1667,111.18,-48.4852],[2126.51,1499.36,25.8667,103.113,-43.7597],[2009.15,1599.79,24.3,94.3019,-36.9623],[1847.22,1699.4,22.1667,84.6925,-25.4959],[1557.24,1768.51,18.4167,78.2062,-0.0749888]]], + [66,1795.96,[[3453.07,-2003.43,47.9333,242.333,-77.1907],[3429.7,-1901.53,47.5,240.102,-76.965],[3406.14,-1800.67,47.0667,237.84,-76.7332],[3382.4,-1700.87,46.6333,235.545,-76.495],[3358.48,-1602.14,46.2,233.219,-76.2502],[3333.44,-1500.77,45.75,230.77,-75.9887],[3308.2,-1400.59,45.3,228.288,-75.7195],[3282.76,-1301.62,44.85,225.772,-75.4421],[3256.18,-1200.28,44.3833,223.127,-75.1455],[3229.38,-1100.29,43.9167,220.446,-74.8394],[3202.38,-1001.65,43.45,217.729,-74.5232],[3174.19,-900.95,42.9667,214.879,-74.1846],[3145.78,-801.754,42.4833,211.991,-73.834],[3116.15,-700.743,41.9833,208.964,-73.4582],[3086.29,-601.391,41.4833,205.899,-73.0681],[3055.19,-500.496,40.9667,202.691,-72.6493],[3023.84,-401.424,40.45,199.443,-72.2135],[2991.22,-301.1,39.9167,196.05,-71.7446],[2958.34,-202.777,39.3833,192.616,-71.2553],[2923.12,-100.536,38.8167,188.925,-70.7115],[2887.62,-0.624125,38.25,185.191,-70.1412],[2850.77,99.757,37.6667,181.306,-69.5246],[2813.64,197.596,37.0833,177.379,-68.8755],[2774.06,298.219,36.4667,173.188,-68.1515],[2733.07,398.516,35.8333,168.842,-67.3638],[2690.66,498.193,35.1833,164.344,-66.5049],[2645.71,599.369,34.5,159.579,-65.5416],[2599.27,699.115,33.8,154.666,-64.4842],[2550.2,799.317,33.0667,149.494,-63.2918],[2498.48,899.304,32.3,144.069,-61.942],[2444.04,998.362,31.5,138.404,-60.4076],[2384.54,1099.5,30.6333,132.283,-58.5812],[2321.05,1199.39,29.7167,125.856,-56.4376],[2251.15,1299.91,28.7167,118.943,-53.8128],[2174.71,1398.71,27.6333,111.636,-50.5764],[2085.64,1499.47,26.3833,103.558,-46.2432],[1980.01,1599.32,24.9167,94.7877,-40.186],[1840.3,1699.39,23,85.0605,-30.4035],[1510.66,1795.95,18.5667,75.3213,-0.116452]]], + [67,1822.57,[[3337.69,-2002.03,48.1667,242.573,-77.6923],[3316.07,-1903.74,47.75,240.424,-77.484],[3293.4,-1802.53,47.3167,238.158,-77.2615],[3270.56,-1702.38,46.8833,235.859,-77.033],[3247.54,-1603.3,46.45,233.529,-76.7981],[3223.45,-1501.55,46,231.075,-76.5472],[3199.17,-1401,45.55,228.586,-76.2888],[3174.69,-1301.65,45.1,226.064,-76.0227],[3150.03,-1203.52,44.65,223.507,-75.7483],[3124.26,-1103.08,44.1833,220.82,-75.4548],[3097.35,-1000.48,43.7,217.998,-75.1407],[3071.16,-902.812,43.2333,215.238,-74.827],[3043.83,-803.135,42.75,212.341,-74.4909],[3015.33,-701.621,42.25,209.304,-74.1306],[2986.6,-601.761,41.75,206.227,-73.7565],[2956.68,-500.335,41.2333,203.007,-73.3549],[2926.52,-400.728,40.7167,199.745,-72.9369],[2896.13,-302.966,40.2,196.444,-72.5016],[2863.52,-200.956,39.65,192.886,-72.0179],[2830.64,-101.102,39.1,189.285,-71.5118],[2796.49,-0.508779,38.5333,185.531,-70.9653],[2762.07,97.7272,37.9667,181.735,-70.3916],[2725.33,199.134,37.3667,177.671,-69.7522],[2688.29,297.819,36.7667,173.565,-69.0772],[2648.88,398.989,36.1333,169.187,-68.323],[2608.1,499.572,35.4833,164.653,-67.5002],[2565.92,599.263,34.8167,159.963,-66.6003],[2522.34,697.744,34.1333,155.121,-65.6132],[2475.17,799.199,33.4,149.893,-64.4733],[2426.52,898.359,32.65,144.522,-63.2113],[2374.19,998.924,31.85,138.78,-61.745],[2318.11,1099.8,31,132.683,-60.0332],[2258.2,1199.79,30.1,126.257,-58.0232],[2193.28,1299.27,29.1333,119.427,-55.603],[2120.98,1399.36,28.0667,112.034,-52.5652],[2038.85,1499.66,26.8667,103.998,-48.6016],[1942.06,1599.92,25.4667,95.1871,-43.0993],[1819.69,1699.49,23.7167,85.4709,-34.6183],[1615.09,1799.98,20.8333,74.5548,-16.2701],[1461.5,1822.57,18.7,72.4189,-0.0715824]]], + [68,1848.32,[[3219.64,-2002.78,48.4,242.849,-78.2003],[3198.04,-1900.26,47.9667,240.61,-77.9925],[3177.11,-1802.66,47.55,238.426,-77.7875],[3155.17,-1702.19,47.1167,236.123,-77.5684],[3133.06,-1602.79,46.6833,233.788,-77.3434],[3109.92,-1500.7,46.2333,231.328,-77.1029],[3087.47,-1403.52,45.8,228.927,-76.8646],[3063.09,-1300.11,45.3333,226.305,-76.6002],[3039.41,-1201.64,44.8833,223.741,-76.3373],[3014.65,-1100.82,44.4167,221.046,-76.0559],[2989.7,-1001.36,43.95,218.314,-75.7654],[2964.55,-903.278,43.4833,215.545,-75.465],[2938.31,-803.158,43,212.639,-75.1432],[2910.94,-701.181,42.5,209.592,-74.7981],[2883.35,-600.853,42,206.504,-74.4399],[2855.55,-502.198,41.5,203.376,-74.0679],[2826.6,-402.038,40.9833,200.102,-73.6681],[2796.47,-300.578,40.45,196.679,-73.2379],[2766.1,-201.109,39.9167,193.213,-72.7888],[2734.54,-100.648,39.3667,189.594,-72.3045],[2702.72,-2.36753,38.8167,185.932,-71.7973],[2668.7,99.4497,38.2333,182.003,-71.2324],[2634.41,198.739,37.65,178.028,-70.6377],[2598.86,298.188,37.05,173.896,-69.9923],[2562.03,397.529,36.4333,169.604,-69.2904],[2522.88,499.042,35.7833,165.036,-68.5045],[2482.4,599.696,35.1167,160.308,-67.6447],[2440.57,699.174,34.4333,155.422,-66.7012],[2396.34,799.428,33.7167,150.261,-65.6367],[2349.65,899.808,32.9667,144.83,-64.4313],[2300.49,999.621,32.1833,139.136,-63.06],[2248.79,1098.13,31.3667,133.193,-61.4923],[2192.4,1198.2,30.4833,126.779,-59.6153],[2130.13,1299.88,29.5167,119.811,-57.3112],[2062.96,1399.38,28.4833,112.472,-54.5093],[1987.51,1498.78,27.3333,104.522,-50.9007],[1898.07,1599.99,25.9833,95.6387,-45.8666],[1788.67,1699.74,24.35,85.8927,-38.3635],[1626.98,1799.94,21.9667,74.8441,-24.0867],[1411.06,1848.32,18.8333,69.4914,-0.0651161]]], + [69,1873.17,[[3098.15,-2001.74,48.6167,243.076,-78.7064],[3078.24,-1902.88,48.2,240.92,-78.5154],[3057.37,-1801.07,47.7667,238.645,-78.3114],[3036.34,-1700.31,47.3333,236.337,-78.1019],[3015.15,-1600.61,46.9,233.997,-77.8865],[2993.79,-1501.99,46.4667,231.624,-77.6651],[2971.44,-1400.74,46.0167,229.124,-77.4284],[2948.92,-1300.68,45.5667,226.59,-77.1845],[2926.21,-1201.85,45.1167,224.02,-76.9332],[2902.49,-1100.65,44.65,221.318,-76.6642],[2878.58,-1000.81,44.1833,218.578,-76.3864],[2854.48,-902.337,43.7167,215.801,-76.0993],[2829.33,-801.811,43.2333,212.885,-75.7916],[2803.97,-702.798,42.75,209.931,-75.4728],[2777.54,-601.987,42.25,206.833,-75.1307],[2750.91,-502.844,41.75,203.694,-74.7754],[2723.16,-402.175,41.2333,200.408,-74.3934],[2694.29,-300.183,40.7,196.971,-73.9825],[2665.2,-200.177,40.1667,193.49,-73.5534],[2635.87,-102.186,39.6333,189.965,-73.105],[2604.46,-0.311725,39.0667,186.173,-72.6059],[2572.8,99.2188,38.5,182.336,-72.0818],[2539.95,199.192,37.9167,178.339,-71.5141],[2505.89,299.351,37.3167,174.181,-70.8979],[2470.6,399.428,36.7,169.861,-70.2276],[2434.07,499.143,36.0667,165.378,-69.4967],[2396.27,598.202,35.4167,160.732,-68.6975],[2356.2,698.704,34.7333,155.805,-67.7985],[2314.83,797.734,34.0333,150.717,-66.8084],[2270.13,899.364,33.2833,145.23,-65.6607],[2224.05,998.398,32.5167,139.592,-64.3835],[2174.56,1098.41,31.7,133.57,-62.8916],[2121.58,1198.27,30.8333,127.179,-61.139],[2064.04,1298.47,29.9,120.327,-59.0255],[2000.8,1398.83,28.8833,112.944,-56.4098],[1929.65,1499.73,27.75,104.885,-53.0331],[1848.31,1599.81,26.4667,96.1115,-48.4946],[1750.13,1699.32,24.9333,86.397,-41.8364],[1614.06,1799.58,22.8333,75.2888,-30.0017],[1359.33,1873.17,18.9667,66.5396,-0.1023]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 2604.46; +_maxRange = 3943.07; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg3.sqf new file mode 100644 index 0000000000..d96e9f093c --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg3.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg3 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1311.78,[[5753.24,-2002.13,43.35,241.557,-66.375],[5709.51,-1903.1,42.9,239.493,-65.9501],[5663.78,-1801.65,42.4333,237.332,-65.4979],[5617.65,-1701.5,41.9667,235.149,-65.0334],[5571.15,-1602.65,41.5,232.946,-64.5563],[5522.58,-1501.67,41.0167,230.643,-64.0482],[5473.6,-1402.13,40.5333,228.319,-63.5255],[5422.5,-1300.71,40.0333,225.895,-62.9686],[5370.96,-1200.87,39.5333,223.451,-62.3947],[5318.98,-1102.65,39.0333,220.989,-61.803],[5264.8,-1002.87,38.5167,218.426,-61.1723],[5208.39,-901.732,37.9833,215.764,-60.4996],[5151.49,-802.509,37.45,213.086,-59.804],[5092.29,-702.221,36.9,210.309,-59.0615],[5030.75,-601.088,36.3333,207.436,-58.2688],[4968.66,-502.212,35.7667,204.553,-57.4464],[4902.32,-400.017,35.1667,201.493,-56.5418],[4835.37,-300.429,34.5667,198.428,-55.6008],[4765.93,-200.829,33.95,195.279,-54.5936],[4693.95,-101.487,33.3167,192.051,-53.5149],[4617.46,-0.191693,32.65,188.665,-52.3285],[4540.24,97.694,31.9833,185.3,-51.087],[4456.41,199.063,31.2667,181.714,-49.6879],[4369.78,298.59,30.5333,178.09,-48.1833],[4278.28,398.032,29.7667,174.363,-46.5272],[4179.79,498.698,28.95,170.481,-44.665],[4074.14,599.503,28.0833,166.48,-42.5724],[3961.12,699.267,27.1667,162.413,-40.2227],[3836.36,799.937,26.1667,158.205,-37.4932],[3699.51,899.229,25.0833,153.971,-34.3345],[3541.59,999.7,23.85,149.639,-30.4799],[3355.27,1099.35,22.4167,145.381,-25.6614],[3112.63,1199.49,20.5833,141.39,-19.0134],[2668.33,1299.92,17.3167,139.203,-6.22239],[2452.09,1311.78,15.7667,140.675,-0.00420841]]], + [46,1355.02,[[5706.61,-2001.62,43.7833,241.959,-66.8969],[5663.72,-1902.03,43.3333,239.886,-66.4816],[5620.47,-1803.61,42.8833,237.791,-66.0555],[5575.25,-1702.82,42.4167,235.597,-65.6018],[5529.65,-1603.32,41.95,233.382,-65.1357],[5482.03,-1501.66,41.4667,231.065,-64.6394],[5434,-1401.44,40.9833,228.727,-64.1287],[5385.56,-1302.67,40.5,226.368,-63.6029],[5335.04,-1202.06,40,223.908,-63.0426],[5284.08,-1103.05,39.5,221.427,-62.465],[5230.97,-1002.45,38.9833,218.844,-61.849],[5175.66,-900.454,38.45,216.159,-61.192],[5119.88,-800.365,37.9167,213.456,-60.5125],[5063.6,-702.211,37.3833,210.737,-59.8094],[5003.29,-600.071,36.8167,207.833,-59.0355],[4942.43,-500.18,36.25,204.917,-58.2324],[4881.04,-402.567,35.6833,201.991,-57.3988],[4815.45,-301.734,35.0833,198.887,-56.4812],[4747.42,-200.842,34.4667,195.692,-55.4988],[4676.89,-100.157,33.8333,192.414,-54.4462],[4605.72,-2.49022,33.2,189.142,-53.3471],[4528.19,99.4533,32.5167,185.627,-52.1062],[4449.92,197.78,31.8333,182.137,-50.805],[4365.1,299.219,31.1,178.428,-49.338],[4277.47,398.527,30.35,174.686,-47.7579],[4183.04,499.435,29.55,170.768,-45.9786],[4083.62,598.955,28.7167,166.788,-44.0167],[3975.07,699.927,27.8167,162.629,-41.7672],[3859.18,799.064,26.8667,158.432,-39.2387],[3729.54,899.598,25.8167,154.068,-36.2528],[3583.62,999.992,24.65,149.627,-32.6935],[3414.48,1099.9,23.3167,145.18,-28.3137],[3206.04,1199.44,21.7,140.864,-22.5768],[2901.02,1299.92,19.3833,137.163,-13.6702],[2446.74,1355.02,16.0333,137.993,-0.0537185]]], + [47,1398.14,[[5656.51,-2002.49,44.2167,242.394,-67.4228],[5614.47,-1902.33,43.7667,240.312,-67.0171],[5572.08,-1803.34,43.3167,238.208,-66.6009],[5527.75,-1701.94,42.85,236.003,-66.1578],[5483.05,-1601.83,42.3833,233.776,-65.7025],[5437.98,-1503.04,41.9167,231.526,-65.2345],[5390.91,-1402.12,41.4333,229.175,-64.7359],[5343.45,-1302.65,40.95,226.801,-64.2227],[5293.93,-1201.3,40.45,224.324,-63.6756],[5243.99,-1101.54,39.95,221.825,-63.1116],[5191.94,-1000.16,39.4333,219.222,-62.51],[5139.44,-900.54,38.9167,216.6,-61.8886],[5086.49,-802.698,38.4,213.958,-61.2466],[5029.64,-700.528,37.85,211.129,-60.5392],[4972.28,-600.434,37.3,208.282,-59.8062],[4914.43,-502.447,36.75,205.422,-59.0463],[4852.52,-400.856,36.1667,202.375,-58.2094],[4790.06,-301.705,35.5833,199.319,-57.3391],[4725.24,-202.302,34.9833,196.169,-56.4074],[4656.18,-100.259,34.35,192.842,-55.3815],[4586.49,-1.21786,33.7167,189.518,-54.3097],[4512.44,99.7436,33.05,186.028,-53.1292],[4435.8,199.673,32.3667,182.47,-51.8605],[4356.55,298.254,31.6667,178.853,-50.4956],[4270.8,399.559,30.9167,175.02,-48.9559],[4182.25,498.432,30.15,171.161,-47.2947],[4086.96,598.466,29.3333,167.135,-45.4223],[3984.74,698.571,28.4667,162.98,-43.3132],[3873.44,799.295,27.5333,158.671,-40.8937],[3752.79,898.94,26.5333,154.285,-38.1231],[3616.39,999.932,25.4167,149.729,-34.8031],[3461.64,1099.9,24.1667,145.143,-30.7984],[3277.33,1199.28,22.7,140.594,-25.7164],[3032.11,1299.41,20.7833,136.286,-18.5058],[2437,1398.14,16.2833,135.313,-0.0545236]]], + [48,1441.1,[[5601.42,-2001.08,44.6333,242.785,-67.9378],[5560.22,-1900.38,44.1833,240.694,-67.5416],[5518.68,-1800.85,43.7333,238.58,-67.135],[5476.8,-1702.49,43.2833,236.444,-66.7178],[5433.01,-1601.76,42.8167,234.206,-66.2734],[5388.86,-1502.34,42.35,231.945,-65.8166],[5342.75,-1400.76,41.8667,229.579,-65.3298],[5296.24,-1300.63,41.3833,227.191,-64.8288],[5249.35,-1201.95,40.9,224.781,-64.3127],[5200.43,-1101.44,40.4,222.266,-63.7624],[5151.1,-1002.54,39.9,219.729,-63.1948],[5099.69,-902.063,39.3833,217.087,-62.5891],[5046.17,-800.201,38.85,214.338,-61.9425],[4992.17,-700.255,38.3167,211.57,-61.2734],[4937.71,-602.251,37.7833,208.784,-60.5805],[4879.35,-500.282,37.2167,205.807,-59.8171],[4820.46,-400.571,36.65,202.815,-59.0243],[4759.31,-300.32,36.0667,199.722,-58.1758],[4697.61,-202.531,35.4833,196.621,-57.2928],[4631.8,-101.871,34.8667,193.337,-56.3199],[4563.59,-1.43922,34.2333,189.963,-55.2761],[4492.94,98.4827,33.5833,186.504,-54.1553],[4419.79,197.601,32.9167,182.969,-52.9507],[4342.26,297.952,32.2167,179.278,-51.6223],[4260.24,398.931,31.4833,175.446,-50.1568],[4173.64,499.89,30.7167,171.489,-48.539],[4084.25,598.105,29.9333,167.515,-46.7901],[3986.25,698.945,29.0833,163.302,-44.7764],[3881.35,799.114,28.1833,158.98,-42.5052],[3767.41,899.02,27.2167,154.534,-39.8981],[3640.18,999.882,26.15,149.913,-36.8103],[3499.24,1098.75,24.9833,145.275,-33.1713],[3331.83,1199.09,23.6167,140.507,-28.5575],[3122.25,1299.31,21.9333,135.832,-22.375],[2802.09,1400,19.4167,131.862,-12.2788],[2423.01,1441.1,16.5167,132.632,-0.00394509]]], + [49,1483.85,[[5542.89,-2001.18,45.05,243.21,-68.4572],[5504.04,-1903.66,44.6167,241.189,-68.085],[5463.37,-1803.53,44.1667,239.067,-67.6886],[5420.84,-1700.93,43.7,236.842,-67.2664],[5379.49,-1603.2,43.25,234.673,-66.8483],[5336.26,-1503.14,42.7833,232.401,-66.4029],[5291.11,-1400.89,42.3,230.023,-65.9282],[5245.58,-1300.08,41.8167,227.622,-65.4394],[5199.67,-1200.72,41.3333,225.197,-64.936],[5153.38,-1102.84,40.85,222.75,-64.4174],[5105.09,-1003.16,40.35,220.196,-63.8641],[5054.76,-901.874,39.8333,217.535,-63.2736],[5004.01,-802.346,39.3167,214.851,-62.6633],[4951.17,-701.483,38.7833,212.06,-62.0115],[4897.87,-602.553,38.25,209.25,-61.3365],[4842.44,-502.585,37.7,206.333,-60.6149],[4784.82,-401.802,37.1333,203.311,-59.843],[4724.98,-300.435,36.55,200.184,-59.0167],[4664.61,-201.519,35.9667,197.046,-58.1565],[4601.96,-102.37,35.3667,193.809,-57.2345],[4535.23,-0.608845,34.7333,190.387,-56.2182],[4467.89,98.135,34.1,186.965,-55.1549],[4396.34,198.768,33.4333,183.37,-53.9822],[4322.32,298.345,32.75,179.7,-52.7196],[4243.94,398.835,32.0333,175.876,-51.3259],[4161.11,499.612,31.2833,171.914,-49.7862],[4075.6,597.921,30.5167,167.921,-48.1214],[3981.71,699.3,29.6833,163.663,-46.201],[3883.02,798.589,28.8167,159.35,-44.074],[3775.58,898.4,27.8833,154.87,-41.6267],[3657.2,998.596,26.8667,150.225,-38.7661],[3523.61,1099.64,25.7333,145.402,-35.3273],[3372.32,1199.07,24.4667,140.549,-31.1636],[3188.47,1299.04,22.95,135.646,-25.7366],[2937.46,1399.8,20.9167,130.973,-17.7718],[2409.21,1483.85,16.7667,129.905,-0.0431533]]], + [50,1526.34,[[5480.87,-2002.82,45.4667,243.667,-68.9805],[5441.38,-1901.01,45.0167,241.56,-68.6034],[5401.56,-1800.36,44.5667,239.429,-68.2166],[5361.42,-1700.88,44.1167,237.274,-67.8194],[5320.96,-1602.58,43.6667,235.096,-67.4117],[5278.65,-1501.91,43.2,232.813,-66.9773],[5235.99,-1402.55,42.7333,230.506,-66.5305],[5191.44,-1301.05,42.25,228.092,-66.0543],[5146.51,-1201,41.7667,225.654,-65.5637],[5101.21,-1102.42,41.2833,223.192,-65.0582],[5053.96,-1002,40.7833,220.621,-64.5189],[5006.31,-903.209,40.2833,218.028,-63.9622],[4956.66,-802.847,39.7667,215.325,-63.3678],[4904.97,-701.114,39.2333,212.512,-62.7329],[4852.83,-601.305,38.7,209.678,-62.0753],[4798.59,-500.422,38.15,206.735,-61.3721],[4743.88,-401.644,37.6,203.773,-60.6423],[4687.03,-302.109,37.0333,200.704,-59.8611],[4628,-202.049,36.45,197.53,-59.0242],[4566.73,-101.712,35.85,194.254,-58.1269],[4503.2,-1.35568,35.2333,190.878,-57.1639],[4437.36,98.7495,34.6,187.407,-56.1295],[4369.17,198.321,33.95,183.846,-55.0171],[4296.81,299.486,33.2667,180.112,-53.789],[4221.98,399.332,32.5667,176.304,-52.4647],[4142.83,499.759,31.8333,172.346,-51.0008],[4061.1,597.987,31.0833,168.344,-49.4175],[3971.21,699.715,30.2667,164.053,-47.588],[3876.68,799.715,29.4167,159.686,-45.5597],[3775.52,898.959,28.5167,155.198,-43.2652],[3663.76,999.467,27.5333,150.494,-40.5753],[3541.1,1098.99,26.4667,145.681,-37.43],[3401.38,1198.94,25.2667,140.705,-33.5967],[3236.1,1299.19,23.8667,135.619,-28.7236],[3026.13,1399.3,22.1167,130.596,-22.047],[2682.55,1499.88,19.3167,126.407,-10.2701],[2391.21,1526.34,17,127.175,-0.0306241]]], + [51,1568.54,[[5413.95,-2002.29,45.8667,244.08,-69.4941],[5376.76,-1903.73,45.4333,242.044,-69.1402],[5337.82,-1802.51,44.9833,239.906,-68.7634],[5298.56,-1702.44,44.5333,237.743,-68.3765],[5258.98,-1603.56,44.0833,235.556,-67.9793],[5217.6,-1502.27,43.6167,233.263,-67.5561],[5175.88,-1402.29,43.15,230.945,-67.1208],[5132.3,-1300.14,42.6667,228.519,-66.6567],[5089.88,-1202.88,42.2,226.152,-66.1954],[5044.05,-1100.18,41.7,223.591,-65.686],[4999.38,-1002.42,41.2167,221.091,-65.1782],[4952.79,-902.869,40.7167,218.48,-64.6361],[4904.23,-801.718,40.2,215.759,-64.0572],[4855.27,-702.337,39.6833,213.014,-63.4584],[4804.29,-601.634,39.15,210.157,-62.8184],[4752.88,-502.874,38.6167,207.279,-62.1551],[4697.78,-400.101,38.05,204.199,-61.4235],[4643.83,-302.509,37.5,201.192,-60.6856],[4586.13,-201.36,36.9167,197.985,-59.8714],[4527.91,-102.674,36.3333,194.763,-59.0229],[4465.82,-1.06524,35.7167,191.345,-58.0866],[4403.17,97.7103,35.1,187.919,-57.1074],[4336.54,198.713,34.45,184.306,-56.0262],[4267.57,298.938,33.7833,180.603,-54.8617],[4196.22,398.078,33.1,176.819,-53.606],[4120.68,498.091,32.3833,172.872,-52.2171],[4040.86,598.346,31.6333,168.778,-50.6797],[3956.68,698.169,30.85,164.557,-48.976],[3866.21,798.801,30.0167,160.146,-47.0465],[3769.32,899.112,29.1333,155.586,-44.8606],[3663.98,999.578,28.1833,150.849,-42.3375],[3548.09,1100,27.15,145.942,-39.3781],[3419.45,1199.34,26.0167,140.921,-35.8612],[3269.97,1299.18,24.7167,135.733,-31.4654],[3087.16,1399.08,23.15,130.48,-25.6552],[2829.64,1499.77,20.9833,125.452,-16.7797],[2371.21,1568.53,17.2333,124.421,-0.0385797]]], + [52,1610.38,[[5343.57,-2003.42,46.2667,244.526,-70.012],[5305.8,-1900.56,45.8167,242.405,-69.6539],[5269.14,-1802.58,45.3833,240.338,-69.3002],[5230.76,-1701.97,44.9333,238.167,-68.9234],[5192.07,-1602.53,44.4833,235.972,-68.5365],[5151.61,-1500.67,44.0167,233.669,-68.1241],[5110.82,-1400.1,43.55,231.34,-67.7],[5069.69,-1300.86,43.0833,228.986,-67.2637],[5028.23,-1202.95,42.6167,226.607,-66.8146],[4984.94,-1102.97,42.1333,224.118,-66.3355],[4939.77,-1001.11,41.6333,221.517,-65.8242],[4894.23,-900.841,41.1333,218.89,-65.2964],[4848.31,-802.203,40.6333,216.239,-64.7511],[4800.46,-702.01,40.1167,213.475,-64.1685],[4750.64,-600.46,39.5833,210.596,-63.5458],[4700.4,-500.844,39.05,207.695,-62.9002],[4648.14,-400.17,38.5,204.68,-62.2094],[4595.44,-301.611,37.95,201.645,-61.4917],[4540.67,-202.313,37.3833,198.498,-60.7228],[4483.81,-102.509,36.8,195.241,-59.8981],[4424.8,-2.44775,36.2,191.877,-59.013],[4363.62,97.6113,35.5833,188.408,-58.0618],[4298.54,199.981,34.9333,184.744,-57.0111],[4232.87,299.125,34.2833,181.079,-55.9078],[4163.2,399.822,33.6,177.231,-54.6877],[4091.16,499.169,32.9,173.305,-53.3696],[4014.97,599.051,32.1667,169.218,-51.9096],[3934.56,698.817,31.4,164.989,-50.2907],[3848.05,799.773,30.5833,160.549,-48.455],[3757.08,898.939,29.7333,156.022,-46.4139],[3657.96,999.022,28.8167,151.278,-44.0531],[3548.63,1099.96,27.8167,146.307,-41.2761],[3428.81,1199.44,26.7333,141.222,-38.0156],[3292.58,1298.75,25.5167,135.972,-34.0258],[3127.98,1399.64,24.0667,130.502,-28.8063],[2916.47,1499.52,22.2333,125.11,-21.5073],[2524.41,1599.79,18.9167,120.88,-6.77964],[2349.21,1610.38,17.4667,121.643,-0.0684493]]], + [53,1651.84,[[5268.33,-2002.43,46.65,244.927,-70.5211],[5232.81,-1902.87,46.2167,242.878,-70.1855],[5195.61,-1800.6,45.7667,240.725,-69.8279],[5159.5,-1703.2,45.3333,238.627,-69.4746],[5121.7,-1603.2,44.8833,236.424,-69.0981],[5082.18,-1500.75,44.4167,234.112,-68.6968],[5043.76,-1403.18,43.9667,231.857,-68.299],[5003.59,-1303.28,43.5,229.493,-67.8747],[4961.65,-1201.22,43.0167,227.017,-67.4222],[4919.35,-1100.6,42.5333,224.515,-66.9559],[4876.71,-1001.46,42.05,221.987,-66.475],[4832.22,-900.468,41.55,219.345,-65.9615],[4787.37,-801.093,41.05,216.677,-65.4311],[4740.63,-700.132,40.5333,213.894,-64.8644],[4693.5,-600.951,40.0167,211.086,-64.2777],[4644.44,-500.464,39.4833,208.162,-63.6502],[4594.96,-401.929,38.95,205.215,-62.9993],[4543.5,-302.39,38.4,202.153,-62.3022],[4490.04,-202.069,37.8333,198.977,-61.5552],[4434.51,-101.202,37.25,195.688,-60.7538],[4376.9,-0.0350261,36.65,192.286,-59.8934],[4318.79,98.4741,36.05,188.871,-58.994],[4256.9,199.531,35.4167,185.254,-57.9999],[4194.45,297.538,34.7833,181.632,-56.957],[4126.47,399.814,34.1,177.724,-55.7734],[4057.85,498.436,33.4167,173.824,-54.5251],[3985.23,597.883,32.7,169.753,-53.1418],[3906.79,699.685,31.9333,165.431,-51.572],[3825.86,798.733,31.15,161.065,-49.8649],[3738.91,898.509,30.3167,156.498,-47.9261],[3644.04,999.69,29.4167,151.682,-45.6796],[3542.83,1098.97,28.4667,146.765,-43.1238],[3429.71,1199.57,27.4167,141.58,-40.0632],[3302.52,1299.93,26.25,136.204,-36.3543],[3155.28,1399.66,24.9167,130.68,-31.7007],[2972.24,1499.69,23.2833,125.036,-25.3934],[2703.89,1599.99,20.9333,119.658,-15.2628],[2323.2,1651.83,17.6833,118.859,-0.0431973]]], + [54,1692.85,[[5189.66,-2003.22,47.0333,245.361,-71.0348],[5154.97,-1903.16,46.6,243.307,-70.7083],[5118.65,-1800.37,46.15,241.147,-70.3604],[5083.4,-1702.46,45.7167,239.042,-70.0167],[5046.49,-1601.93,45.2667,236.83,-69.6503],[5009.29,-1502.58,44.8167,234.593,-69.2739],[4970.39,-1400.81,44.35,232.245,-68.8727],[4931.17,-1300.35,43.8833,229.87,-68.4598],[4891.63,-1201.21,43.4167,227.469,-68.0348],[4851.77,-1103.41,42.95,225.041,-67.5972],[4808.71,-1000.15,42.45,222.413,-67.1137],[4766.74,-901.828,41.9667,219.845,-66.6313],[4722.96,-801.705,41.4667,217.161,-66.1159],[4678.83,-703.216,40.9667,214.452,-65.5833],[4632.84,-603.187,40.45,211.626,-65.0138],[4584.97,-501.815,39.9167,208.681,-64.4046],[4536.69,-402.386,39.3833,205.712,-63.7726],[4486.48,-301.914,38.8333,202.625,-63.0956],[4434.31,-200.622,38.2667,199.421,-62.3699],[4381.68,-101.622,37.7,196.194,-61.614],[4327.04,-2.13799,37.1167,192.854,-60.8025],[4270.36,97.5802,36.5167,189.4,-59.9303],[4209.99,199.927,35.8833,185.74,-58.9659],[4149.08,299.239,35.25,182.069,-57.9537],[4086.01,397.962,34.6,178.297,-56.8618],[4019.11,498.2,33.9167,174.335,-55.6522],[3948.29,599.361,33.2,170.19,-54.3108],[3875.15,698.608,32.4667,165.972,-52.8555],[3796.27,799.785,31.6833,161.507,-51.2016],[3713.22,899.866,30.8667,156.914,-49.3598],[3624.2,999.952,30,152.134,-47.2638],[3529.08,1098.85,29.0833,147.214,-44.8763],[3424.19,1198.45,28.0833,142.051,-42.0565],[3305.72,1299.28,26.9667,136.601,-38.6237],[3171.48,1398.94,25.7167,130.997,-34.4043],[3008.17,1499.82,24.2167,125.143,-28.7979],[2792.39,1599.84,22.2667,119.329,-20.6511],[2295.27,1692.85,17.9,116.05,-0.0399085]]], + [55,1733.38,[[5106.24,-2001.94,47.4,245.751,-71.5408],[5072.39,-1901.42,46.9667,243.69,-71.2231],[5038.27,-1801.94,46.5333,241.604,-70.8974],[5003.87,-1703.52,46.1,239.493,-70.5633],[4967.87,-1602.45,45.65,237.274,-70.2072],[4931.57,-1502.55,45.2,235.028,-69.8414],[4893.62,-1400.21,44.7333,232.672,-69.4514],[4856.73,-1302.76,44.2833,230.373,-69.0646],[4818.17,-1202.99,43.8167,227.961,-68.6519],[4777.9,-1101.06,43.3333,225.436,-68.2115],[4737.29,-1000.59,42.85,222.882,-67.7573],[4696.35,-901.596,42.3667,220.301,-67.2887],[4653.65,-800.765,41.8667,217.602,-66.7881],[4610.6,-701.561,41.3667,214.876,-66.2706],[4565.74,-600.785,40.85,212.032,-65.7173],[4520.51,-501.797,40.3333,209.16,-65.1441],[4473.43,-401.52,39.8,206.169,-64.5305],[4424.46,-300.164,39.25,203.058,-63.8732],[4375.08,-200.926,38.7,199.921,-63.1896],[4323.77,-100.927,38.1333,196.666,-62.4561],[4270.5,-0.405525,37.55,193.293,-61.6686],[4216.77,97.6277,36.9667,189.899,-60.8459],[4159.47,198.517,36.35,186.295,-59.9357],[4100.11,299.153,35.7167,182.579,-58.9549],[4038.64,399.249,35.0667,178.755,-57.8964],[3975.03,498.508,34.4,174.831,-56.7525],[3907.63,598.965,33.7,170.715,-55.4834],[3837.99,697.76,32.9833,166.516,-54.1065],[3762.79,798.839,32.2167,162.053,-52.5404],[3683.57,899.156,31.4167,157.445,-50.7951],[3598.55,999.885,30.5667,152.625,-48.8067],[3507.63,1099.86,29.6667,147.636,-46.5385],[3408.94,1199.48,28.7,142.446,-43.9005],[3298.85,1299.91,27.6333,136.978,-40.7282],[3175.28,1399.51,26.45,131.316,-36.8649],[3028.97,1499.91,25.0667,125.377,-31.865],[2846.52,1599.22,23.3667,119.353,-24.9977],[2556.48,1699.96,20.7167,113.585,-12.8875],[2265.39,1733.38,18.1167,113.216,-0.0601672]]], + [56,1773.39,[[5019.39,-2002.52,47.7667,246.174,-72.0515],[4986.38,-1901.53,47.3333,244.108,-71.7428],[4953.12,-1801.58,46.9,242.016,-71.4263],[4919.59,-1702.67,46.4667,239.898,-71.1017],[4884.48,-1601.09,46.0167,237.672,-70.7557],[4849.09,-1500.68,45.5667,235.418,-70.4002],[4813.42,-1401.45,45.1167,233.138,-70.035],[4777.46,-1303.43,44.6667,230.83,-69.6594],[4739.87,-1203.06,44.2,228.409,-69.2587],[4700.61,-1100.51,43.7167,225.872,-68.8311],[4662.4,-1002.87,43.25,223.395,-68.4055],[4622.51,-903.188,42.7667,220.802,-67.9509],[4580.9,-801.636,42.2667,218.09,-67.4653],[4538.94,-701.704,41.7667,215.349,-66.9632],[4495.22,-600.167,41.25,212.487,-66.4263],[4451.14,-500.41,40.7333,209.596,-65.87],[4406.69,-402.459,40.2167,206.679,-65.2934],[4358.98,-300.203,39.6667,203.545,-64.656],[4310.87,-200.055,39.1167,200.384,-63.993],[4262.34,-102.046,38.5667,197.198,-63.303],[4210.44,-0.46909,37.9833,193.793,-62.5397],[4158.1,98.6309,37.4,190.367,-61.7423],[4103.8,197.94,36.8,186.822,-60.8842],[4045.97,299.838,36.1667,183.062,-59.934],[3987.64,398.684,35.5333,179.289,-58.9352],[3925.69,499.388,34.8667,175.31,-57.8276],[3861.63,598.995,34.1833,171.23,-56.6281],[3793.82,699.471,33.4667,166.958,-55.2951],[3723.8,797.994,32.7333,162.606,-53.8455],[3648.3,898.369,31.95,157.994,-52.1938],[3567.2,999.551,31.1167,153.148,-50.3099],[3482.02,1098.56,30.25,148.198,-48.2004],[3387.69,1199.7,29.3,142.913,-45.6969],[3285.66,1299.23,28.2833,137.469,-42.7773],[3170.65,1399.43,27.15,131.731,-39.2061],[3038.83,1498.95,25.8667,125.768,-34.7307],[2877.47,1599.1,24.3167,119.533,-28.6882],[2653.43,1699.77,22.2,113.225,-19.346],[2231.73,1773.39,18.3167,110.372,-0.0214133]]], + [57,1812.83,[[4927.86,-2001.1,48.1167,246.551,-72.5553],[4896.95,-1903.55,47.7,244.56,-72.2672],[4864.54,-1803.11,47.2667,242.463,-71.96],[4831.88,-1703.71,46.8333,240.34,-71.645],[4797.69,-1601.62,46.3833,238.107,-71.3092],[4763.22,-1500.68,45.9333,235.846,-70.9642],[4728.47,-1400.92,45.4833,233.557,-70.6097],[4693.44,-1302.36,45.0333,231.241,-70.2452],[4656.83,-1201.43,44.5667,228.811,-69.8563],[4619.91,-1101.83,44.1,226.351,-69.4557],[4581.36,-1000.08,43.6167,223.774,-69.028],[4543.85,-903.233,43.15,221.258,-68.6021],[4503.32,-801.001,42.65,218.532,-68.1311],[4462.46,-700.381,42.15,215.776,-67.644],[4421.26,-601.396,41.65,212.991,-67.1403],[4378.34,-500.856,41.1333,210.084,-66.6011],[4335.06,-402.113,40.6167,207.147,-66.0423],[4290.02,-302.099,40.0833,204.087,-65.4435],[4243.17,-201.026,39.5333,200.903,-64.8015],[4195.94,-102.082,38.9833,197.691,-64.1331],[4146.86,-2.39873,38.4167,194.356,-63.4152],[4095.91,97.7855,37.8333,190.898,-62.6435],[4043.06,198.221,37.2333,187.318,-61.8128],[3988.27,298.648,36.6167,183.617,-60.9175],[3931.5,398.79,35.9833,179.799,-59.9512],[3872.73,498.363,35.3333,175.868,-58.9066],[3810.39,599.488,34.65,171.729,-57.7467],[3745.95,699.246,33.95,167.49,-56.4876],[3677.83,799.532,33.2167,163.06,-55.0858],[3605.95,899.688,32.45,158.455,-53.5223],[3530.24,999.01,31.65,153.694,-51.7749],[3449.01,1098.65,30.8,148.708,-49.7774],[3360.54,1199.19,29.8833,143.444,-47.4461],[3264.66,1298.96,28.9,137.97,-44.7224],[3157.87,1399.03,27.8167,132.209,-41.4309],[3036.55,1498.92,26.6,126.171,-37.3407],[2891.81,1599.34,25.1667,119.813,-31.9527],[2705.64,1699.34,23.35,113.274,-24.2216],[2368.86,1799.92,20.1333,107.264,-8.45043],[2196.21,1812.83,18.5167,107.503,-0.00611106]]], + [58,1851.66,[[4832.95,-2001.65,48.4667,246.962,-73.0641],[4802.87,-1903.67,48.05,244.967,-72.7846],[4771.33,-1802.77,47.6167,242.864,-72.4866],[4739.54,-1702.9,47.1833,240.735,-72.181],[4706.25,-1600.32,46.7333,238.496,-71.8552],[4673.95,-1502.63,46.3,236.312,-71.5331],[4640.13,-1402.33,45.85,234.017,-71.1894],[4606.05,-1303.23,45.4,231.693,-70.8361],[4570.41,-1201.72,44.9333,229.253,-70.4591],[4534.49,-1101.54,44.4667,226.784,-70.0707],[4498.28,-1002.69,44,224.286,-69.6706],[4460.47,-901.748,43.5167,221.669,-69.2432],[4422.35,-802.279,43.0333,219.021,-68.8019],[4382.59,-700.957,42.5333,216.252,-68.3302],[4342.5,-601.264,42.0333,213.452,-67.8421],[4302.1,-503.222,41.5333,210.622,-67.337],[4258.63,-400.492,41,207.573,-66.7783],[4216.18,-302.818,40.4833,204.589,-66.2165],[4170.62,-200.868,39.9333,201.382,-65.595],[4124.67,-101.037,39.3833,198.146,-64.9478],[4076.92,-0.431185,38.8167,194.784,-64.2527],[4028.78,97.8578,38.25,191.395,-63.5269],[3977.37,199.365,37.65,187.78,-62.7231],[3925.53,298.198,37.05,184.143,-61.8804],[3870.32,399.576,36.4167,180.282,-60.9459],[3814.64,497.885,35.7833,176.405,-59.9619],[3755.52,598.003,35.1167,172.312,-58.8688],[3692.88,699.356,34.4167,168.01,-57.6529],[3628.17,799.062,33.7,163.609,-56.3298],[3559.84,898.94,32.95,159.019,-54.8536],[3487.8,998.307,32.1667,154.257,-53.2031],[3410.44,1098.38,31.3333,149.248,-51.3144],[3326.06,1199.84,30.4333,143.93,-49.1066],[3236.1,1299.36,29.4833,138.457,-46.569],[3137.22,1398.64,28.45,132.721,-43.5439],[3024.34,1499.32,27.2833,126.599,-39.7662],[2893.78,1599.32,25.95,120.196,-34.9393],[2731.68,1699.56,24.3167,113.478,-28.2463],[2494.44,1799.95,21.9667,106.693,-17.1683],[2158.83,1851.66,18.7167,104.607,-0.0165825]]], + [59,1889.83,[[4733.46,-2000.28,48.8,247.328,-73.5669],[4704.2,-1901.89,48.3833,245.328,-73.2959],[4673.52,-1800.56,47.95,243.22,-73.007],[4642.6,-1700.26,47.5167,241.085,-72.7106],[4611.44,-1601.02,47.0833,238.922,-72.4065],[4580.02,-1502.85,46.65,236.732,-72.0943],[4547.14,-1402.04,46.2,234.43,-71.7614],[4514,-1302.42,45.75,232.098,-71.419],[4479.35,-1200.38,45.2833,229.65,-71.0537],[4445.67,-1103.23,44.8333,227.26,-70.691],[4409.2,-1000.26,44.35,224.663,-70.2896],[4373.71,-902.212,43.8833,222.125,-69.8898],[4336.65,-802.111,43.4,219.465,-69.4626],[4298,-700.128,42.9,216.683,-69.0058],[4260.33,-603.085,42.4167,213.962,-68.5492],[4219.74,-501.049,41.9,211.022,-68.044],[4178.82,-400.795,41.3833,208.051,-67.5201],[4137.55,-302.35,40.8667,205.049,-66.9765],[4094.61,-202.654,40.3333,201.919,-66.3936],[4049.96,-101.92,39.7833,198.66,-65.768],[4003.56,-0.373155,39.2167,195.272,-65.0959],[3956.78,98.8664,38.65,191.855,-64.3941],[3908.21,198.579,38.0667,188.309,-63.6386],[3857.83,298.514,37.4667,184.637,-62.8243],[3805.61,398.409,36.85,180.838,-61.9454],[3751.52,497.987,36.2167,176.917,-60.9952],[3694.08,599.455,35.55,172.773,-59.9392],[3634.69,699.84,34.8667,168.514,-58.7927],[3573.3,798.816,34.1667,164.149,-57.5455],[3508.42,898.257,33.4333,159.584,-56.1535],[3438.47,999.604,32.65,154.729,-54.5615],[3364.86,1099.82,31.8333,149.71,-52.7754],[3287.52,1198.14,30.9833,144.555,-50.7667],[3201.77,1298.95,30.05,139.007,-48.3678],[3108.94,1398.54,29.05,133.242,-45.5504],[3004.18,1499.3,27.9333,127.09,-42.0718],[2885.57,1598.78,26.6833,120.675,-37.7218],[2741.43,1699.31,25.1833,113.837,-31.8158],[2549.62,1799.4,23.2167,106.756,-22.9118],[2119.58,1889.83,18.9167,101.686,-0.0552945]]], + [60,1927.3,[[4630.62,-2000.98,49.1333,247.728,-74.075],[4602.19,-1902.16,48.7167,245.724,-73.8125],[4572.39,-1800.4,48.2833,243.611,-73.5327],[4543.51,-1703.51,47.8667,241.554,-73.2569],[4513.24,-1603.78,47.4333,239.387,-72.9627],[4481.55,-1501.34,46.9833,237.106,-72.649],[4449.61,-1400.06,46.5333,234.797,-72.3265],[4418.61,-1303.65,46.1,232.544,-72.0074],[4384.95,-1201.06,45.6333,230.088,-71.6539],[4352.24,-1103.37,45.1833,227.69,-71.3029],[4318.05,-1003.36,44.7167,225.173,-70.9281],[4282.34,-901.201,44.2333,222.534,-70.5277],[4246.35,-800.505,43.75,219.864,-70.1142],[4210.06,-701.295,43.2667,217.161,-69.6871],[4172.22,-600.251,42.7667,214.333,-69.2301],[4134.06,-500.845,42.2667,211.473,-68.7571],[4095.61,-403.1,41.7667,208.582,-68.2671],[4054.25,-300.697,41.2333,205.465,-67.7247],[4012.54,-200.241,40.7,202.315,-67.1609],[3970.5,-101.762,40.1667,199.133,-66.5743],[3926.78,-2.30452,39.6167,195.821,-65.9443],[3881.36,97.9033,39.05,192.378,-65.2668],[3834.22,198.623,38.4667,188.803,-64.5373],[3785.31,299.606,37.8667,185.097,-63.7508],[3735.99,397.897,37.2667,181.365,-62.9252],[3683.49,498.684,36.6333,177.401,-62.0082],[3629.14,598.913,35.9833,173.313,-61.0147],[3572.91,698.281,35.3167,169.105,-59.9366],[3513.36,798.823,34.6167,164.677,-58.7346],[3450.4,899.922,33.8833,160.039,-57.3921],[3385.43,998.773,33.1333,155.306,-55.9231],[3315.5,1099.07,32.3333,150.288,-54.2391],[3240.49,1199.74,31.4833,145.01,-52.3047],[3160.31,1299.59,30.5833,139.511,-50.0768],[3073.33,1399.01,29.6167,133.747,-47.4564],[2976.36,1499.16,28.55,127.617,-44.2624],[2866.07,1599.66,27.35,121.105,-40.2491],[2737.42,1699.26,25.9667,114.263,-35.0177],[2572.45,1799.9,24.2167,106.971,-27.4119],[2308.47,1899.68,21.4667,99.7198,-13.3688],[2076.83,1927.3,19.1,98.7524,-0.0302535]]], + [61,1964.03,[[4524.4,-2003.8,49.4667,248.163,-74.5881],[4495.7,-1900.61,49.0333,246.074,-74.324],[4467.9,-1802.34,48.6167,244.039,-74.0638],[4438.75,-1701.15,48.1833,241.894,-73.7863],[4409.37,-1601.01,47.75,239.721,-73.5015],[4379.76,-1501.91,47.3167,237.519,-73.2092],[4348.76,-1400.15,46.8667,235.203,-72.8974],[4318.68,-1303.26,46.4333,232.944,-72.5888],[4286.02,-1200.15,45.9667,230.48,-72.2469],[4254.27,-1101.96,45.5167,228.074,-71.9075],[4221.09,-1001.43,45.05,225.547,-71.545],[4187.65,-902.236,44.5833,222.99,-71.1712],[4152.72,-800.932,44.1,220.308,-70.7717],[4117.52,-701.108,43.6167,217.594,-70.359],[4082.03,-602.785,43.1333,214.848,-69.9324],[4045.03,-502.674,42.6333,211.975,-69.4758],[4006.48,-400.965,42.1167,208.972,-68.9867],[3967.61,-301.048,41.6,205.935,-68.479],[3928.42,-202.951,41.0833,202.866,-67.952],[3886.37,-100.554,40.5333,199.564,-67.3681],[3843.96,-0.27991,39.9833,196.229,-66.7596],[3801.21,97.8386,39.4333,192.862,-66.1247],[3755.48,199.514,38.85,189.259,-65.4207],[3709.37,298.692,38.2667,185.625,-64.6831],[3661.55,398.061,37.6667,181.859,-63.887],[3610.64,499.999,37.0333,177.856,-63.0024],[3559.3,598.86,36.4,173.828,-62.0691],[3504.78,699.552,35.7333,169.569,-61.0298],[3448.42,799.117,35.05,165.189,-59.899],[3388.79,899.516,34.3333,160.588,-58.6356],[3327.23,997.923,33.6,155.884,-57.2536],[3260.88,1098.13,32.8167,150.877,-55.6681],[3189.64,1199.09,31.9833,145.589,-53.8453],[3113.41,1299.66,31.1,140.053,-51.7439],[3032.09,1398.59,30.1667,134.317,-49.3138],[2941.14,1499.2,29.1333,128.152,-46.3435],[2838.85,1599.99,27.9833,121.602,-42.6526],[2721.91,1699.51,26.6833,114.725,-37.9371],[2577.69,1799.72,25.1,107.362,-31.3435],[2374.21,1899.96,22.9,99.6551,-20.5954],[2032.3,1964.03,19.2833,95.7918,-0.0336656]]], + [62,1999.98,[[4412.65,-2000.81,49.7667,248.473,-75.0864],[4385.91,-1901.21,49.35,246.46,-74.841],[4358.95,-1802.54,48.9333,244.421,-74.5895],[4330.7,-1700.92,48.5,242.271,-74.3213],[4302.22,-1600.34,48.0667,240.093,-74.0462],[4273.51,-1500.82,47.6333,237.885,-73.7637],[4244.58,-1402.36,47.2,235.649,-73.4737],[4214.3,-1301.27,46.75,233.297,-73.1641],[4183.78,-1201.36,46.3,230.914,-72.8457],[4153.01,-1102.65,45.85,228.5,-72.518],[4120.85,-1001.58,45.3833,225.965,-72.168],[4088.44,-901.843,44.9167,223.398,-71.8071],[4055.77,-803.457,44.45,220.8,-71.4348],[4021.66,-703.005,43.9667,218.076,-71.0367],[3986.08,-600.662,43.4667,215.223,-70.6107],[3951.42,-503.274,42.9833,212.432,-70.1846],[3914.06,-400.871,42.4667,209.414,-69.7127],[3876.4,-300.254,41.95,206.361,-69.2228],[3838.43,-201.449,41.4333,203.274,-68.7142],[3798.91,-101.386,40.9,200.054,-68.1681],[3757.83,-0.278179,40.35,196.697,-67.5814],[3716.41,98.6831,39.8,193.307,-66.9691],[3673.38,198.365,39.2333,189.781,-66.31],[3628.72,298.528,38.65,186.118,-65.5994],[3582.4,398.92,38.05,182.319,-64.8322],[3534.39,499.277,37.4333,178.384,-64.0026],[3484.66,599.323,36.8,174.315,-63.1039],[3433.19,698.767,36.15,170.116,-62.1285],[3378.62,799.727,35.4667,165.681,-61.0403],[3322.22,899.283,34.7667,161.125,-59.8531],[3262.62,999.318,34.0333,156.349,-58.5235],[3199.76,1099.17,33.2667,151.363,-57.0306],[3133.57,1198.13,32.4667,146.185,-55.3493],[3061.2,1299.22,31.6,140.627,-53.3707],[2983.92,1399.1,30.6833,134.837,-51.08],[2898.79,1499.69,29.6833,128.671,-48.3216],[2805.63,1598.65,28.6,122.233,-44.9912],[2696.96,1699.69,27.35,115.229,-40.652],[2569.42,1798.97,25.9,107.876,-34.877],[2400.01,1899.42,24,99.9588,-26.0145],[1986.01,1999.98,19.4667,92.8053,-0.0685302]]], + [63,2035.11,[[4297.65,-2000,50.0667,248.817,-75.5906],[4271.76,-1900.03,49.65,246.801,-75.3536],[4245.66,-1800.99,49.2333,244.757,-75.1108],[4219.36,-1702.88,48.8167,242.686,-74.8619],[4191.79,-1601.87,48.3833,240.503,-74.5965],[4164,-1501.9,47.95,238.291,-74.324],[4135.99,-1402.99,47.5167,236.05,-74.0441],[4106.68,-1301.43,47.0667,233.691,-73.7455],[4077.13,-1201.04,46.6167,231.301,-73.4382],[4047.35,-1101.85,46.1667,228.88,-73.1221],[4016.22,-1000.28,45.7,226.337,-72.7843],[3984.84,-900.029,45.2333,223.761,-72.4361],[3953.21,-801.128,44.7667,221.152,-72.0769],[3920.18,-700.137,44.2833,218.416,-71.6926],[3886.9,-600.635,43.8,215.646,-71.2954],[3853.34,-502.644,43.3167,212.844,-70.8846],[3818.36,-402.887,42.8167,209.91,-70.4445],[3781.91,-301.554,42.3,206.842,-69.9728],[3745.17,-202.026,41.7833,203.739,-69.4828],[3706.93,-101.208,41.25,200.5,-68.9567],[3668.39,-2.36964,40.7167,197.226,-68.4089],[3628.31,97.4519,40.1667,193.814,-67.8197],[3586.68,198.03,39.6,190.263,-67.1853],[3543.47,299.125,39.0167,186.573,-66.5012],[3499.9,397.706,38.4333,182.849,-65.7835],[3453.46,499.147,37.8167,178.88,-64.9855],[3406.63,597.694,37.2,174.88,-64.1442],[3356.85,698.39,36.55,170.637,-63.2067],[3305.35,798.228,35.8833,166.26,-62.1867],[3250.82,899.253,35.1833,161.646,-61.0463],[3194.5,998.585,34.4667,156.911,-59.7984],[3135.04,1098.03,33.7167,151.955,-58.397],[3071.05,1198.95,32.9167,146.683,-56.7835],[3003.79,1298.32,32.0833,141.225,-54.9586],[2930.47,1398.96,31.1833,135.399,-52.8034],[2850.96,1499.2,30.2167,129.257,-50.2497],[2763.74,1598.73,29.1667,122.781,-47.1601],[2664.42,1699.04,27.9833,115.818,-43.2325],[2548.43,1799.01,26.6167,108.382,-38.0331],[2402.32,1899.21,24.9167,100.381,-30.4657],[2175.21,1999.66,22.3167,91.9591,-16.5062]]], + [64,2069.37,[[4179.38,-2001.47,50.3667,249.197,-76.1004],[4154.34,-1901.11,49.95,247.177,-75.8719],[4129.1,-1801.68,49.5333,245.13,-75.6378],[4103.68,-1703.19,49.1167,243.055,-75.398],[4077.02,-1601.77,48.6833,240.868,-75.1421],[4050.15,-1501.38,48.25,238.651,-74.8794],[4023.08,-1402.06,47.8167,236.404,-74.6097],[3994.73,-1300.05,47.3667,234.039,-74.3218],[3967.23,-1202.94,46.9333,231.731,-74.0367],[3938.44,-1103.26,46.4833,229.304,-73.7322],[3908.35,-1001.16,46.0167,226.753,-73.407],[3878.01,-900.394,45.55,224.169,-73.0716],[3847.43,-800.965,45.0833,221.551,-72.7255],[3816.62,-702.898,44.6167,218.9,-72.3684],[3784.45,-602.786,44.1333,216.121,-71.9863],[3750.9,-500.805,43.6333,213.209,-71.5771],[3717.07,-400.457,43.1333,210.261,-71.1531],[3682.98,-301.769,42.6333,207.278,-70.7135],[3647.47,-201.56,42.1167,204.16,-70.2419],[3610.52,-100.031,41.5833,200.903,-69.7355],[3573.26,-0.475415,41.05,197.609,-69.2081],[3535.7,97.0781,40.5167,194.28,-68.6584],[3495.48,198.502,39.95,190.706,-68.0482],[3454.92,297.599,39.3833,187.096,-67.4094],[3411.62,399.949,38.7833,183.236,-66.6996],[3367.96,499.61,38.1833,179.341,-65.9529],[3322.71,599.196,37.5667,175.305,-65.1441],[3275.85,698.428,36.9333,171.13,-64.2663],[3226.1,799.5,36.2667,166.706,-63.2864],[3174.68,899.442,35.5833,162.148,-62.2173],[3121.56,997.928,34.8833,157.462,-61.0479],[3064.14,1099.01,34.1333,152.432,-59.7036],[3003.63,1199.61,33.35,147.183,-58.188],[2939.99,1298.99,32.5333,141.731,-56.4734],[2871.84,1398.22,31.6667,135.993,-54.486],[2796.44,1499.52,30.7167,129.794,-52.0848],[2714.96,1599.13,29.7,123.315,-49.223],[2623.21,1699.28,28.5667,116.36,-45.6278],[2516.84,1799.8,27.2667,108.863,-40.904],[2388.52,1899.27,25.7167,100.861,-34.3231],[2208,1999.9,23.5667,92.1595,-23.3457]]], + [65,2102.73,[[4056.86,-2001.23,50.65,249.532,-76.6067],[4032.69,-1900.52,50.2333,247.509,-76.3867],[4008.32,-1800.74,49.8167,245.458,-76.1613],[3983.77,-1701.88,49.4,243.379,-75.9304],[3958.03,-1600.07,48.9667,241.187,-75.6839],[3933.09,-1503.16,48.55,239.051,-75.4408],[3906.95,-1403.41,48.1167,236.799,-75.1813],[3879.59,-1300.95,47.6667,234.429,-74.9043],[3853.04,-1203.4,47.2333,232.115,-74.63],[3825.25,-1103.26,46.7833,229.681,-74.3371],[3796.2,-1000.68,46.3167,227.123,-74.0241],[3767.96,-903.016,45.8667,224.623,-73.7131],[3738.45,-803.046,45.4,221.998,-73.3805],[3707.65,-700.935,44.9167,219.243,-73.0247],[3676.59,-600.301,44.4333,216.452,-72.6569],[3645.28,-501.166,43.95,213.626,-72.2764],[3612.64,-400.213,43.45,210.666,-71.8688],[3579.73,-300.913,42.95,207.67,-71.4461],[3545.46,-200.065,42.4333,204.536,-70.9926],[3510.91,-101.034,41.9167,201.365,-70.5211],[3474.95,-0.742804,41.3833,198.053,-70.0145],[3438.71,97.5536,40.85,194.705,-69.4863],[3399.89,199.775,40.2833,191.108,-68.9],[3360.75,299.678,39.7167,187.473,-68.2861],[3321.29,397.226,39.15,183.801,-67.6425],[3279.18,497.908,38.55,179.877,-66.9266],[3235.53,598.555,37.9333,175.807,-66.1509],[3190.32,698.887,37.3,171.593,-65.3088],[3143.54,798.616,36.65,167.236,-64.3927],[3093.94,899.862,35.9667,162.627,-63.3678],[3042.7,999.696,35.2667,157.883,-62.2462],[2989.79,1097.78,34.55,153.011,-61.0154],[2932.7,1198.01,33.7833,147.794,-59.5966],[2871.34,1299.36,32.9667,142.245,-57.9564],[2806.91,1398.82,32.1167,136.502,-56.0912],[2736.78,1499.08,31.2,130.375,-53.8764],[2660.85,1598.45,30.2167,123.921,-51.2344],[2575.07,1699.4,29.1167,116.914,-47.9057],[2477.9,1799.58,27.8833,109.438,-43.6344],[2362.38,1899.49,26.4333,101.373,-37.7736],[2210.42,1999.94,24.55,92.5662,-28.6365]]], + [66,2135.15,[[3931.13,-2003.33,50.9333,249.904,-77.1188],[3907.83,-1902.26,50.5167,247.878,-76.9074],[3884.35,-1802.1,50.1,245.824,-76.6908],[3860.68,-1702.87,49.6833,243.742,-76.4688],[3835.88,-1600.68,49.25,241.546,-76.232],[3811.83,-1503.39,48.8333,239.405,-75.9983],[3786.64,-1403.23,48.4,237.148,-75.7489],[3760.27,-1300.36,47.95,234.772,-75.4827],[3734.67,-1202.39,47.5167,232.453,-75.2191],[3707.88,-1101.82,47.0667,230.012,-74.9375],[3680.88,-1002.46,46.6167,227.538,-74.6476],[3652.66,-900.696,46.15,224.939,-74.3377],[3624.21,-800.267,45.6833,222.304,-74.0179],[3595.54,-701.19,45.2167,219.635,-73.6879],[3565.61,-600.021,44.7333,216.834,-73.3347],[3535.44,-500.344,44.25,213.997,-72.9693],[3505.03,-402.183,43.7667,211.125,-72.591],[3473.32,-302.256,43.2667,208.116,-72.1855],[3440.3,-200.752,42.75,204.968,-71.7504],[3407.01,-101.059,42.2333,201.782,-71.298],[3372.36,-0.0775652,41.7,198.453,-70.8118],[3337.44,98.9166,41.1667,195.086,-70.3049],[3301.14,198.892,40.6167,191.574,-69.759],[3263.43,299.619,40.05,187.916,-69.1704],[3225.42,398.002,39.4833,184.22,-68.5533],[3184.84,499.576,38.8833,180.266,-67.8666],[3143.93,598.442,38.2833,176.274,-67.143],[3100.39,699.817,37.65,172.023,-66.3361],[3056.48,798.083,37.0167,167.738,-65.481],[3009.88,898.112,36.35,163.196,-64.5244],[2960.54,999.322,35.65,158.398,-63.4517],[2909.59,1098.83,34.9333,153.463,-62.2738],[2855.82,1198.44,34.1833,148.286,-60.9458],[2797.96,1299.51,33.3833,142.762,-59.4097],[2737.15,1399.02,32.55,137.026,-57.6627],[2670.88,1499.78,31.65,130.878,-55.5858],[2600.29,1598.46,30.7,124.477,-53.1503],[2520.28,1699.71,29.6333,117.458,-50.0736],[2431.89,1798.73,28.4667,110.074,-46.2292],[2325.96,1899.99,27.0833,101.89,-40.915],[2195.54,1999.21,25.4,93.1346,-33.1694]]], + [67,2166.59,[[3801.31,-2003.78,51.2,250.231,-77.6282],[3778.88,-1902.38,50.7833,248.202,-77.4252],[3756.28,-1801.88,50.3667,246.145,-77.2173],[3733.51,-1702.31,49.95,244.059,-77.0042],[3710.55,-1603.67,49.5333,241.944,-76.7858],[3686.5,-1502.1,49.1,239.713,-76.5527],[3662.25,-1401.58,48.6667,237.451,-76.3132],[3637.81,-1302.12,48.2333,235.158,-76.0673],[3613.18,-1203.74,47.8,232.834,-75.8145],[3587.41,-1102.73,47.35,230.388,-75.5444],[3561.43,-1002.91,46.9,227.908,-75.2664],[3534.28,-900.688,46.4333,225.301,-74.9692],[3507.89,-803.368,45.9833,222.753,-74.6736],[3479.32,-700.233,45.5,219.98,-74.346],[3451.51,-602.046,45.0333,217.267,-74.0191],[3422.49,-501.813,44.55,214.421,-73.6689],[3393.24,-403.09,44.0667,211.538,-73.3065],[3362.74,-302.575,43.5667,208.517,-72.9179],[3330.97,-200.458,43.05,205.356,-72.5009],[3298.94,-100.145,42.5333,202.155,-72.0674],[3266.66,-1.66308,42.0167,198.915,-71.6162],[3233.07,98.0468,41.4833,195.53,-71.1309],[3198.15,198.768,40.9333,191.999,-70.6082],[3162.96,297.32,40.3833,188.428,-70.0614],[3125.32,399.439,39.8,184.598,-69.4534],[3087.38,499.044,39.2167,180.728,-68.8143],[3048.04,598.833,38.6167,176.706,-68.1219],[3007.27,698.539,38,172.534,-67.3705],[2965.05,797.882,37.3667,168.211,-66.5531],[2920.25,899.056,36.7,163.625,-65.6382],[2873.94,999.088,36.0167,158.891,-64.6372],[2824.96,1099.95,35.3,153.898,-63.5115],[2774.41,1198.79,34.5667,148.768,-62.2709],[2719.96,1299.43,33.7833,143.279,-60.8351],[2662.69,1398.84,32.9667,137.561,-59.2021],[2600.2,1499.91,32.0833,131.405,-57.259],[2533.57,1599.33,31.15,124.967,-54.9784],[2460.31,1698.86,30.1333,118.079,-52.1878],[2377.87,1798.87,29,110.632,-48.6392],[2282.33,1899.18,27.7,102.53,-43.9014],[2165.91,1999.26,26.1333,93.6786,-37.0751]]], + [68,2197.01,[[3667.48,-2002.6,51.45,250.514,-78.1357],[3645.93,-1900.88,51.0333,248.482,-77.9412],[3624.22,-1800.07,50.6167,246.421,-77.7419],[3602.34,-1700.18,50.2,244.331,-77.5376],[3580.29,-1601.23,49.7833,242.212,-77.3282],[3558.07,-1503.22,49.3667,240.063,-77.1135],[3534.78,-1402.32,48.9333,237.797,-76.8842],[3511.31,-1302.47,48.5,235.499,-76.6486],[3487.66,-1203.7,48.0667,233.17,-76.4065],[3462.9,-1102.28,47.6167,230.717,-76.1479],[3437.95,-1002.06,47.1667,228.231,-75.8816],[3412.81,-903.04,46.7167,225.71,-75.6073],[3386.52,-801.655,46.25,223.061,-75.3139],[3360.03,-701.61,45.7833,220.376,-75.011],[3333.33,-602.927,45.3167,217.654,-74.6982],[3305.47,-502.176,44.8333,214.799,-74.3632],[3277.38,-402.928,44.35,211.905,-74.0164],[3248.09,-301.865,43.85,208.873,-73.6445],[3218.57,-202.461,43.35,205.802,-73.2586],[3187.82,-101.511,42.8333,202.587,-72.8441],[3156.83,-2.38516,42.3167,199.333,-72.4128],[3124.58,97.9959,41.7833,195.932,-71.9488],[3091.05,199.416,41.2333,192.382,-71.4489],[3057.26,298.675,40.6833,188.79,-70.926],[3022.16,398.647,40.1167,185.047,-70.3614],[2985.74,499.089,39.5333,181.151,-69.7508],[2947.97,599.748,38.9333,177.102,-69.0892],[2909.9,697.676,38.3333,173.011,-68.3909],[2869.38,798.038,37.7,168.653,-67.6106],[2827.46,897.782,37.05,164.141,-66.7596],[2783.02,999.028,36.3667,159.36,-65.8048],[2737.11,1098.85,35.6667,154.43,-64.7565],[2688.61,1199.12,34.9333,149.238,-63.5739],[2637.48,1299.18,34.1667,143.791,-62.2348],[2583.67,1398.32,33.3667,138.101,-60.7118],[2524.86,1499.54,32.5,131.951,-58.898],[2462.1,1599.51,31.5833,125.491,-56.7677],[2394.17,1698.52,30.6,118.653,-54.2032],[2317.46,1799.03,29.5,111.184,-50.9342],[2229.43,1899.9,28.25,103.044,-46.6127],[2125.04,1999.87,26.7833,94.194,-40.5587]]], + [69,2226.38,[[3530.57,-2003.91,51.7,250.834,-78.6493],[3509.92,-1901.87,51.2833,248.8,-78.4634],[3489.11,-1800.74,50.8667,246.736,-78.2728],[3468.14,-1700.52,50.45,244.643,-78.0775],[3447,-1601.23,50.0333,242.52,-77.8773],[3425.7,-1502.89,49.6167,240.367,-77.672],[3403.38,-1401.64,49.1833,238.097,-77.4528],[3380.88,-1301.43,48.75,235.794,-77.2275],[3358.21,-1202.3,48.3167,233.459,-76.996],[3334.48,-1100.51,47.8667,231.001,-76.7487],[3311.45,-1003.6,47.4333,228.601,-76.5037],[3286.46,-900.498,46.9667,225.98,-76.2317],[3262.16,-802.321,46.5167,223.418,-75.9613],[3236.78,-701.821,46.05,220.725,-75.672],[3211.19,-602.677,45.5833,217.996,-75.3731],[3184.48,-501.444,45.1,215.13,-75.0531],[3157.56,-401.71,44.6167,212.227,-74.7217],[3129.49,-300.138,44.1167,209.183,-74.3663],[3101.2,-200.219,43.6167,206.099,-73.9975],[3072.68,-101.978,43.1167,202.975,-73.6144],[3042.98,-2.25071,42.6,199.706,-73.2027],[3012.08,98.7575,42.0667,196.289,-72.7597],[2980.93,197.77,41.5333,192.83,-72.2973],[2948.56,297.755,40.9833,189.22,-71.7986],[2914.93,398.482,40.4167,185.456,-71.2602],[2880.04,499.71,39.8333,181.536,-70.6777],[2844.87,598.404,39.25,177.573,-70.0645],[2807.38,699.94,38.6333,173.339,-69.3801],[2769.59,798.557,38.0167,169.062,-68.6554],[2729.43,899.298,37.3667,164.511,-67.8439],[2687.9,999.152,36.7,159.803,-66.9562],[2644.99,1097.8,36.0167,154.941,-65.9822],[2598.54,1199.44,35.2833,149.69,-64.8569],[2550.65,1298.78,34.5333,144.294,-63.6108],[2499.12,1399.54,33.7333,138.522,-62.1621],[2444.99,1498.71,32.9,132.51,-60.5046],[2386.02,1599.05,32,126.043,-58.52],[2322.11,1698.91,31.0333,119.162,-56.1283],[2250.93,1799.43,29.9667,111.707,-53.1226],[2171.23,1898.88,28.7833,103.699,-49.2533],[2075.96,1999.92,27.3833,94.7685,-43.7986]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 3042.98; +_maxRange = 4617.46; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg4.sqf new file mode 100644 index 0000000000..9bd77ad4a3 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg4.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg4 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1600.35,[[6613.52,-2000.28,46.2,249.067,-66.2257],[6569.83,-1902,45.7667,247.206,-65.827],[6524.1,-1801.06,45.3167,245.255,-65.403],[6477.97,-1701.27,44.8667,243.284,-64.9685],[6431.47,-1602.63,44.4167,241.295,-64.5233],[6382.83,-1501.59,43.95,239.213,-64.0497],[6333.78,-1401.84,43.4833,237.112,-63.5637],[6284.32,-1303.39,43.0167,234.994,-63.0648],[6232.66,-1202.82,42.5333,232.782,-62.534],[6178.75,-1100.3,42.0333,230.475,-61.9693],[6126.18,-1002.68,41.55,228.229,-61.4076],[6071.34,-903.248,41.05,225.89,-60.8098],[6014.18,-802.194,40.5333,223.457,-60.1733],[5956.51,-702.882,40.0167,221.009,-59.5171],[5896.46,-602.218,39.4833,218.47,-58.8181],[5833.97,-500.409,38.9333,215.839,-58.0733],[5770.92,-400.659,38.3833,213.198,-57.3032],[5705.37,-300.072,37.8167,210.47,-56.4822],[5639.22,-201.735,37.25,207.738,-55.632],[5568.54,-100.101,36.65,204.843,-54.6984],[5497.19,-1.06332,36.05,201.951,-53.7291],[5423.18,97.9817,35.4333,198.985,-52.694],[5344.41,199.326,34.7833,195.873,-51.5583],[5262.84,299.964,34.1167,192.703,-50.3436],[5178.4,399.594,33.4333,189.483,-49.0438],[5091.02,497.901,32.7333,186.226,-47.6523],[4996.45,598.953,31.9833,182.792,-46.0909],[4896.62,699.701,31.2,179.283,-44.3787],[4791.41,799.442,30.3833,175.725,-42.5015],[4678.49,899.289,29.5167,172.084,-40.4026],[4555.46,999.798,28.5833,168.345,-38.0152],[4422,1099.28,27.5833,164.588,-35.3073],[4273.26,1198.76,26.4833,160.802,-32.1474],[4101.8,1298.91,25.2333,157.017,-28.3284],[3895,1399.66,23.75,153.36,-23.4966],[3624.85,1499.43,21.85,150.232,-16.893],[2991.48,1599.98,17.55,150.957,-0.993886],[2951.17,1600.35,17.2833,151.396,-0.00269305]]], + [46,1652.5,[[6563.19,-2003.2,46.7,249.617,-66.7855],[6518.74,-1900.5,46.25,247.676,-66.3813],[6475.57,-1802.67,45.8167,245.787,-65.9828],[6430.37,-1702.19,45.3667,243.807,-65.5589],[6384.79,-1602.87,44.9167,241.807,-65.1244],[6337.13,-1501.1,44.45,239.713,-64.6622],[6289.06,-1400.62,43.9833,237.599,-64.1879],[6240.58,-1301.43,43.5167,235.466,-63.7009],[6189.95,-1200.08,43.0333,233.238,-63.1828],[6138.88,-1100.17,42.55,230.992,-62.65],[6087.38,-1001.71,42.0667,228.727,-62.1022],[6033.65,-901.401,41.5667,226.367,-61.5189],[5979.45,-802.692,41.0667,223.991,-60.9182],[5922.96,-702.395,40.55,221.52,-60.2783],[5864.13,-600.704,40.0167,218.953,-59.5967],[5804.78,-500.911,39.4833,216.374,-58.8926],[5743.03,-400.016,38.9333,213.701,-58.142],[5680.72,-301.198,38.3833,211.019,-57.3655],[5615.95,-201.589,37.8167,208.248,-56.5372],[5548.67,-101.42,37.2333,205.391,-55.6531],[5478.83,-0.933821,36.6333,202.451,-54.7091],[5406.37,99.6163,36.0167,199.432,-53.7005],[5331.25,199.964,35.3833,196.341,-52.6223],[5253.41,299.83,34.7333,193.183,-51.4689],[5172.79,398.924,34.0667,189.967,-50.2345],[5087.32,499.288,33.3667,186.623,-48.8794],[4998.92,598.072,32.65,183.244,-47.4267],[4903.39,699.236,31.8833,179.693,-45.796],[4802.63,799.752,31.0833,176.073,-44.006],[4696.52,898.893,30.25,172.413,-42.0412],[4580.62,999.49,29.35,168.613,-39.8001],[4454.63,1099.93,28.3833,164.742,-37.2505],[4316.06,1199.97,27.3333,160.828,-34.31],[4159.99,1299.86,26.1667,156.896,-30.8322],[3978.96,1399.26,24.8333,153.036,-26.5914],[3753.35,1499.16,23.2,149.39,-21.0373],[3421.35,1599.73,20.85,146.62,-12.488],[2942.7,1652.5,17.5667,148.484,-0.0334234]]], + [47,1704.49,[[6505.58,-2000.09,47.1667,250.059,-67.3184],[6463.63,-1900.61,46.7333,248.182,-66.9385],[6421.34,-1802.15,46.3,246.285,-66.5496],[6377.06,-1701.03,45.85,244.295,-66.136],[6332.4,-1601.05,45.4,242.284,-65.712],[6287.38,-1502.24,44.95,240.254,-65.2773],[6240.3,-1401.01,44.4833,238.128,-64.8147],[6192.81,-1301.07,44.0167,235.982,-64.3399],[6144.94,-1202.44,43.55,233.817,-63.8521],[6094.93,-1101.68,43.0667,231.554,-63.333],[6044.49,-1002.37,42.5833,229.273,-62.7991],[5991.87,-901.172,42.0833,226.895,-62.2306],[5938.79,-801.562,41.5833,224.498,-61.645],[5883.47,-700.325,41.0667,222.003,-61.0211],[5827.67,-600.832,40.55,219.493,-60.3775],[5771.38,-503.11,40.0333,216.968,-59.7132],[5710.93,-401.057,39.4833,214.265,-58.9825],[5649.95,-301.067,38.9333,211.55,-58.2263],[5586.54,-200.239,38.3667,208.743,-57.4194],[5522.57,-101.665,37.8,205.928,-56.583],[5456.12,-2.58167,37.2167,203.026,-55.6898],[5385.23,99.4894,36.6,199.958,-54.7083],[5313.67,198.772,35.9833,196.893,-53.6868],[5239.48,297.794,35.35,193.754,-52.5938],[5160.64,398.756,34.6833,190.467,-51.3932],[5079.04,498.71,34,187.123,-50.1064],[4992.61,599.642,33.2833,183.653,-48.6928],[4903.26,698.727,32.55,180.152,-47.1751],[4806.83,799.814,31.7667,176.483,-45.4705],[4705.22,899.894,30.95,172.753,-43.5971],[4598.3,998.216,30.1,168.993,-41.5385],[4479.55,1099.21,29.1667,165.04,-39.1451],[4350.77,1199.19,28.1667,161.044,-36.4211],[4207.29,1299.19,27.0667,156.988,-33.2301],[4041.94,1399.92,25.8167,152.891,-29.356],[3847.12,1499.25,24.3667,148.942,-24.5426],[3589.27,1599.63,22.4833,145.343,-17.834],[3066.89,1699.95,18.7833,144.368,-3.70081],[2929.32,1704.49,17.8333,145.578,-0.0197375]]], + [48,1756.26,[[6445.6,-2002.52,47.65,250.608,-67.8687],[6404.52,-1902.42,47.2167,248.724,-67.4984],[6363.11,-1803.34,46.7833,246.819,-67.1193],[6319.75,-1701.55,46.3333,244.82,-66.716],[6276.03,-1600.91,45.8833,242.8,-66.3026],[6231.94,-1501.42,45.4333,240.759,-65.8787],[6187.49,-1403.11,44.9833,238.698,-65.444],[6141.01,-1302.41,44.5167,236.54,-64.9813],[6094.14,-1203.01,44.05,234.362,-64.5061],[6045.18,-1101.45,43.5667,232.085,-64.0003],[5995.8,-1001.33,43.0833,229.788,-63.4799],[5946.01,-902.654,42.6,227.471,-62.9445],[5894.06,-802.132,42.1,225.055,-62.3742],[5841.67,-703.211,41.6,222.621,-61.7865],[5787.06,-602.698,41.0833,220.088,-61.1602],[5730.2,-500.789,40.55,217.455,-60.4924],[5672.83,-400.782,40.0167,214.807,-59.8022],[5614.96,-302.704,39.4833,212.145,-59.0885],[5552.93,-200.641,38.9167,209.304,-58.3034],[5490.34,-100.82,38.35,206.452,-57.4894],[5425.33,-0.438412,37.7667,203.508,-56.6198],[5359.73,97.4984,37.1833,200.561,-55.7165],[5289.74,198.335,36.5667,197.444,-54.7233],[5217.19,298.969,35.9333,194.248,-53.6601],[5142.02,399.123,35.2833,190.978,-52.5214],[5064.19,498.503,34.6167,187.643,-51.3007],[4981.67,599.157,33.9167,184.169,-49.9586],[4896.34,698.228,33.2,180.652,-48.5172],[4804.13,799.688,32.4333,176.948,-46.896],[4708.93,898.452,31.65,173.239,-45.1504],[4604.52,999.932,30.8,169.321,-43.1495],[4494.79,1099.02,29.9167,165.393,-40.9471],[4373.32,1199.9,28.95,161.294,-38.3873],[4241.87,1298.86,27.9167,157.189,-35.4724],[4091.5,1399.4,26.75,152.961,-31.9558],[3917.14,1499.51,25.4167,148.757,-27.6457],[3702.19,1599.34,23.8,144.726,-22.0262],[3389.76,1699.78,21.5,141.403,-13.4149],[2913.54,1756.26,18.1,142.65,-0.0247557]]], + [49,1807.77,[[6380,-2002.83,48.1167,251.119,-68.4077],[6339.8,-1902.14,47.6833,249.228,-68.0466],[6299.27,-1802.46,47.25,247.316,-67.677],[6256.84,-1700.05,46.8,245.309,-67.2838],[6215.63,-1602.51,46.3667,243.355,-66.8959],[6172.48,-1502.34,45.9167,241.305,-66.4829],[6128.98,-1403.33,45.4667,239.234,-66.0594],[6083.48,-1301.91,45,237.064,-65.6087],[6037.61,-1201.78,44.5333,234.873,-65.1456],[5991.35,-1102.96,44.0667,232.661,-64.6699],[5943.04,-1002.01,43.5833,230.349,-64.1633],[5894.31,-902.505,43.1,228.016,-63.642],[5843.49,-801.111,42.6,225.582,-63.0867],[5792.23,-701.31,42.1,223.128,-62.5143],[5740.53,-603.122,41.6,220.655,-61.9241],[5684.9,-500.195,41.0667,217.999,-61.2742],[5630.55,-402.287,40.55,215.408,-60.6236],[5572.18,-300.04,40,212.634,-59.9074],[5515.08,-202.867,39.4667,209.929,-59.1885],[5453.88,-101.784,38.9,207.043,-58.3972],[5390.31,-0.0893633,38.3167,204.06,-57.5516],[5326.16,99.1751,37.7333,201.07,-56.673],[5259.59,198.703,37.1333,197.991,-55.7331],[5190.53,298.238,36.5167,194.825,-54.727],[5118.95,397.511,35.8833,191.58,-53.6492],[5042.89,498.729,35.2167,188.176,-52.4635],[4964.18,598.937,34.5333,184.708,-51.1907],[4882.76,697.816,33.8333,181.185,-49.8233],[4794.65,799.457,33.0833,177.457,-48.2832],[4703.66,898.692,32.3167,173.708,-46.6242],[4605.72,999.132,31.5,169.802,-44.7579],[4500.66,1099.69,30.6333,165.777,-42.6598],[4388.28,1199.18,29.7167,161.683,-40.3029],[4264.23,1299.55,28.7167,157.447,-37.5635],[4126.06,1399.95,27.6167,153.121,-34.3412],[3969.04,1499.84,26.3833,148.765,-30.4644],[3781.61,1599.83,24.9333,144.441,-25.557],[3538.13,1699.52,23.0833,140.423,-18.7957],[3068.81,1799.89,19.6167,138.419,-5.09743],[2895.34,1807.77,18.3667,139.699,-0.0495918]]], + [50,1858.96,[[6308.85,-2001.05,48.5667,251.593,-68.9361],[6271.04,-1903.67,48.15,249.768,-68.5978],[6231.38,-1803.39,47.7167,247.85,-68.2379],[6189.86,-1700.35,47.2667,245.835,-67.8549],[6149.55,-1602.18,46.8333,243.873,-67.477],[6107.35,-1501.36,46.3833,241.813,-67.0747],[6064.79,-1401.7,45.9333,239.732,-66.6622],[6021.89,-1303.22,45.4833,237.63,-66.2389],[5977.02,-1202.34,45.0167,235.427,-65.7882],[5931.79,-1102.77,44.55,233.202,-65.3251],[5884.53,-1001.04,44.0667,230.876,-64.8319],[5836.89,-900.737,43.5833,228.528,-64.3243],[5788.84,-801.896,43.1,226.158,-63.8018],[5738.71,-701.201,42.6,223.686,-63.2449],[5688.15,-602.112,42.1,221.193,-62.6707],[5635.46,-501.43,41.5833,218.598,-62.0582],[5582.32,-402.512,41.0667,215.984,-61.4257],[5526.99,-302.279,40.5333,213.267,-60.7506],[5469.43,-200.94,39.9833,210.448,-60.0298],[5411.37,-101.687,39.4333,207.615,-59.2829],[5351.01,-1.64035,38.8667,204.682,-58.4847],[5288.33,98.9671,38.2833,201.652,-57.6312],[5223.26,199.892,37.6833,198.528,-56.7178],[5157.61,298.185,37.0833,195.399,-55.7667],[5087.67,399.043,36.45,192.098,-54.7195],[5015.22,499.418,35.8,188.716,-53.5963],[4940.21,599.015,35.1333,185.262,-52.3905],[4860.69,699.887,34.4333,181.657,-51.0625],[4778.48,799.169,33.7167,178.002,-49.6336],[4691.59,898.682,32.9667,174.226,-48.0589],[4597.95,999.808,32.1667,170.27,-46.2848],[4499.38,1099.55,31.3333,166.248,-44.3275],[4393.76,1198.96,30.45,162.118,-42.1246],[4278.88,1298.49,29.5,157.864,-39.6012],[4150.37,1399.45,28.45,153.434,-36.6185],[4007.82,1498.97,27.3,148.976,-33.1118],[3840.22,1599.63,25.9667,144.425,-28.73],[3635.84,1699.17,24.3667,140.018,-23.0414],[3340.31,1799.66,22.1,136.152,-14.2965],[2872.44,1858.96,18.6167,136.75,-0.0273265]]], + [51,1909.78,[[6233.7,-2001.13,49.0167,252.1,-69.4679],[6196.72,-1903.2,48.6,250.27,-69.1385],[6157.95,-1802.35,48.1667,248.345,-68.7879],[6118.86,-1702.52,47.7333,246.398,-68.4288],[6079.45,-1603.73,47.3,244.429,-68.0611],[6038.19,-1502.25,46.85,242.362,-67.6696],[5996.58,-1401.92,46.4,240.271,-67.2681],[5954.64,-1302.76,45.95,238.159,-66.8561],[5910.78,-1201.18,45.4833,235.945,-66.4175],[5866.55,-1100.9,45.0167,233.708,-65.9667],[5821.95,-1001.93,44.55,231.449,-65.5033],[5775.38,-900.821,44.0667,229.086,-65.0097],[5728.41,-801.165,43.5833,226.701,-64.5014],[5681.05,-702.979,43.1,224.295,-63.9779],[5631.65,-602.975,42.6,221.784,-63.4198],[5580.16,-501.337,42.0833,219.168,-62.8245],[5528.23,-401.453,41.5667,216.531,-62.2095],[5474.16,-300.212,41.0333,213.789,-61.553],[5419.62,-200.895,40.5,211.029,-60.8736],[5362.89,-100.516,39.95,208.165,-60.1478],[5305.66,-2.24284,39.4,205.285,-59.3952],[5244.42,99.6535,38.8167,202.218,-58.5662],[5182.64,199.113,38.2333,199.14,-57.7039],[5118.52,298.835,37.6333,195.966,-56.7805],[5052.02,398.561,37.0167,192.7,-55.7908],[4983.1,498.022,36.3833,189.347,-54.7292],[4909.87,599.428,35.7167,185.826,-53.5595],[4834.09,699.818,35.0333,182.232,-52.3018],[4755.72,798.873,34.3333,178.577,-50.9483],[4672.81,898.477,33.6,174.786,-49.4556],[4585.27,997.98,32.8333,170.878,-47.8083],[4491.07,1098.69,32.0167,166.795,-45.9504],[4390.02,1199.52,31.15,162.575,-43.8559],[4281.97,1299.28,30.2333,158.268,-41.4953],[4162.73,1399.92,29.2333,153.792,-38.7413],[4031.98,1499.14,28.15,149.259,-35.5387],[3881.16,1599.48,26.9167,144.584,-31.6083],[3701.22,1699.97,25.4667,139.882,-26.6024],[3469.72,1799.47,23.6333,135.428,-19.7191],[3035.34,1899.78,20.2833,132.604,-5.99661],[2847.19,1909.78,18.8667,133.777,-0.0251307]]], + [52,1960.16,[[6154.54,-2003.14,49.4667,252.643,-70.0029],[6116.95,-1900.74,49.0333,250.734,-69.6694],[6080.52,-1803.22,48.6167,248.877,-69.3412],[6042.32,-1702.8,48.1833,246.923,-68.9919],[6003.81,-1603.41,47.75,244.947,-68.634],[5963.49,-1501.31,47.3,242.872,-68.2531],[5922.83,-1400.35,46.85,240.773,-67.8624],[5881.84,-1300.55,46.4,238.651,-67.4614],[5840.52,-1201.93,45.95,236.506,-67.0499],[5797.31,-1100.92,45.4833,234.258,-66.6116],[5753.74,-1001.21,45.0167,231.987,-66.161],[5709.81,-902.831,44.55,229.692,-65.6977],[5663.94,-802.349,44.0667,227.293,-65.2039],[5617.68,-703.328,43.5833,224.871,-64.6952],[5569.42,-602.45,43.0833,222.343,-64.1528],[5520.76,-503.182,42.5833,219.792,-63.5931],[5470.04,-402.319,42.0667,217.135,-62.9959],[5417.24,-300.056,41.5333,214.369,-62.3583],[5365.64,-202.812,41.0167,211.671,-61.7193],[5310.25,-101.294,40.4667,208.779,-61.0148],[5254.37,-1.86801,39.9167,205.869,-60.2842],[5196.3,98.3508,39.35,202.854,-59.5026],[5135.98,199.129,38.7667,199.738,-58.666],[5075.13,297.45,38.1833,196.61,-57.7952],[5010.23,398.677,37.5667,193.296,-56.8354],[4942.96,499.696,36.9333,189.889,-55.8054],[4875.07,597.69,36.3,186.485,-54.728],[4801.14,699.974,35.6167,182.82,-53.5092],[4726.5,798.631,34.9333,179.174,-52.2287],[4647.48,898.146,34.2167,175.378,-50.8153],[4563.97,997.888,33.4667,171.449,-49.2544],[4473.99,1099.24,32.6667,167.324,-47.4915],[4379.29,1199.21,31.8333,163.117,-45.5412],[4277.83,1298.84,30.95,158.784,-43.3393],[4167.51,1398.58,30,154.304,-40.8081],[4044.14,1499.76,28.95,149.616,-37.8038],[3907.33,1599.47,27.8,144.868,-34.2544],[3748.55,1699.16,26.4833,140.034,-29.8519],[3552.6,1799.13,24.8833,135.211,-24.0266],[3271.58,1899.58,22.6333,130.818,-15.0625],[2819.58,1960.16,19.1167,130.78,-0.044279]]], + [53,2010.08,[[6069.9,-2003.17,49.9,253.146,-70.5283],[6033.19,-1900.23,49.4667,251.232,-70.2039],[5997.6,-1802.18,49.05,249.369,-69.8846],[5960.29,-1701.2,48.6167,247.41,-69.5448],[5922.67,-1601.24,48.1833,245.427,-69.1966],[5884.76,-1502.32,47.75,243.421,-68.8399],[5845.06,-1400.72,47.3,241.314,-68.4601],[5805.03,-1300.27,46.85,239.183,-68.0703],[5764.68,-1200.99,46.4,237.029,-67.6703],[5723.99,-1102.91,45.95,234.851,-67.2595],[5681.46,-1002.46,45.4833,232.569,-66.8218],[5638.57,-903.321,45.0167,230.263,-66.3718],[5593.78,-802.052,44.5333,227.85,-65.892],[5548.62,-702.234,44.05,225.413,-65.3978],[5501.5,-600.525,43.55,222.868,-64.8707],[5453.99,-500.415,43.05,220.299,-64.3268],[5406.08,-401.928,42.55,217.707,-63.7654],[5356.15,-301.887,42.0333,215.007,-63.1659],[5304.17,-200.489,41.5,212.197,-62.5256],[5251.74,-101.02,40.9667,209.366,-61.8623],[5197.2,-0.490997,40.4167,206.427,-61.1532],[5142.2,97.9275,39.8667,203.47,-60.4172],[5083.35,199.971,39.2833,200.317,-59.6058],[5023.97,299.57,38.7,197.15,-58.7608],[4962.36,399.427,38.1,193.882,-57.8549],[4898.47,499.285,37.4833,190.515,-56.8828],[4832.25,598.871,36.85,187.054,-55.8385],[4763.67,697.903,36.2,183.506,-54.7157],[4690.91,798.495,35.5167,179.786,-53.4761],[4615.66,897.746,34.8167,175.995,-52.1395],[4534.25,999.76,34.0667,171.968,-50.6279],[4450.21,1099.35,33.3,167.902,-48.992],[4361.64,1198.13,32.5,163.73,-47.181],[4264.68,1299.13,31.6333,159.314,-45.0918],[4161.03,1399.06,30.7167,154.791,-42.729],[4046.67,1499.85,29.7167,150.071,-39.9615],[3921.31,1599.21,28.6333,145.268,-36.7284],[3776.76,1699.68,27.4,140.277,-32.739],[3606.37,1799.22,25.9667,135.257,-27.6861],[3382.73,1899.83,24.1167,130.3,-20.5371],[2969.36,1999.89,20.7833,126.801,-6.33418]]], + [54,2059.45,[[5979.87,-2001.27,50.3167,253.61,-71.0453],[5945.41,-1901.76,49.9,251.765,-70.742],[5910.68,-1803.17,49.4833,249.898,-70.4317],[5874.27,-1701.62,49.05,247.933,-70.1014],[5837.56,-1601.09,48.6167,245.944,-69.7631],[5800.55,-1501.59,48.1833,243.931,-69.4164],[5763.24,-1403.14,47.75,241.895,-69.061],[5724.19,-1302.03,47.3,239.757,-68.6826],[5684.81,-1202.09,46.85,237.594,-68.2941],[5645.11,-1103.32,46.4,235.407,-67.8952],[5603.61,-1002.17,45.9333,233.114,-67.4701],[5561.76,-902.315,45.4667,230.796,-67.0329],[5518.06,-800.296,44.9833,228.37,-66.5669],[5475.51,-703.164,44.5167,226.004,-66.1036],[5429.54,-600.61,44.0167,223.443,-65.5921],[5384.74,-502.985,43.5333,220.944,-65.082],[5336.44,-400.295,43.0167,218.248,-64.5191],[5289.31,-302.58,42.5167,215.615,-63.9562],[5238.61,-200.182,41.9833,212.782,-63.3351],[5189.07,-102.812,41.4667,210.016,-62.7121],[5135.89,-1.16458,40.9167,207.05,-62.0248],[5082.25,98.3842,40.3667,204.064,-61.3113],[5026.5,198.723,39.8,200.968,-60.5474],[4968.61,299.617,39.2167,197.764,-59.7287],[4910.21,398.046,38.6333,194.545,-58.8757],[4847.92,499.379,38.0167,191.132,-57.9343],[4785.08,597.875,37.4,187.711,-56.9499],[4718.24,698.579,36.75,184.104,-55.8629],[4649.05,798.495,36.0833,180.408,-54.6921],[4575.72,899.678,35.3833,176.54,-53.3982],[4499.93,999.255,34.6667,172.604,-52.0004],[4419.85,1099.05,33.9167,168.523,-50.4531],[4335.39,1198.38,33.1333,164.317,-48.7388],[4244.63,1298.49,32.3,159.924,-46.7975],[4147.42,1398.23,31.4167,155.387,-44.5985],[4039.87,1499.76,30.45,150.597,-42.0149],[3923.59,1599.35,29.4167,145.729,-39.036],[3792.6,1699.13,28.2667,140.687,-35.4436],[3640.65,1798.86,26.95,135.514,-30.9604],[3451.26,1899.73,25.3333,130.236,-24.9191],[3182.6,1999.73,23.0833,125.344,-15.6311]]], + [55,2108.24,[[5885.84,-2001.46,50.7333,254.108,-71.5661],[5852.23,-1901.44,50.3167,252.259,-71.2714],[5818.36,-1802.34,49.9,250.387,-70.97],[5782.84,-1700.25,49.4667,248.416,-70.649],[5748.41,-1603.04,49.05,246.498,-70.3331],[5712.32,-1502.96,48.6167,244.48,-69.9965],[5674.54,-1400.12,48.1667,242.359,-69.6381],[5637.86,-1302.17,47.7333,240.292,-69.2841],[5599.46,-1201.59,47.2833,238.121,-68.9069],[5560.74,-1102.18,46.8333,235.925,-68.5196],[5520.26,-1000.35,46.3667,233.621,-68.1068],[5480.91,-903.391,45.9167,231.376,-67.6977],[5438.3,-800.611,45.4333,228.938,-67.2456],[5396.82,-702.737,44.9667,226.559,-66.7961],[5353.5,-602.797,44.4833,224.07,-66.3165],[5308.31,-500.966,43.9833,221.469,-65.8048],[5262.74,-400.738,43.4833,218.842,-65.2764],[5216.8,-302.138,42.9833,216.19,-64.7306],[5168.92,-201.985,42.4667,213.426,-64.1474],[5119.08,-100.477,41.9333,210.548,-63.524],[5068.81,-0.90336,41.4,207.646,-62.8779],[5016.53,99.727,40.85,204.632,-62.1863],[4963.8,198.24,40.3,201.596,-61.468],[4909,297.492,39.7333,198.45,-60.6982],[4852.11,397.247,39.15,195.194,-59.8728],[4791.42,499.997,38.5333,191.737,-58.9615],[4730.19,599.926,37.9167,188.268,-58.0083],[4666.74,699.576,37.2833,184.699,-56.9828],[4601.04,798.663,36.6333,181.035,-55.8784],[4531.33,899.299,35.95,177.188,-54.6571],[4459.25,998.582,35.25,173.263,-53.3377],[4383.03,1098.4,34.5167,169.178,-51.8762],[4302.57,1198.09,33.75,164.951,-50.2558],[4216.02,1298.97,32.9333,160.513,-48.4183],[4123.21,1399.94,32.0667,155.902,-46.3339],[4024.02,1499.8,31.15,151.164,-43.9679],[3916.45,1598.89,30.1667,146.283,-41.2331],[3794.72,1699.71,29.0667,141.129,-37.9178],[3656.52,1799.98,27.8333,135.825,-33.8631],[3493.69,1899.24,26.4,130.444,-28.6919],[3280.1,1999.4,24.55,125.045,-21.3137]]], + [56,2156.39,[[5787.82,-2003.8,51.15,254.64,-72.0906],[5755.06,-1903.28,50.7333,252.787,-71.8046],[5722.05,-1803.65,50.3167,250.912,-71.5121],[5687.43,-1701.01,49.8833,248.937,-71.2006],[5653.88,-1603.27,49.4667,247.014,-70.894],[5618.71,-1502.62,49.0333,244.99,-70.5673],[5583.25,-1403.01,48.6,242.941,-70.2325],[5546.13,-1300.67,48.15,240.788,-69.8758],[5510.09,-1203.22,47.7167,238.689,-69.5234],[5472.37,-1103.16,47.2667,236.485,-69.1479],[5432.93,-1000.64,46.8,234.173,-68.7476],[5394.59,-903.014,46.35,231.918,-68.3508],[5354.5,-803.055,45.8833,229.553,-67.9276],[5312.64,-700.928,45.4,227.077,-67.4762],[5270.43,-600.249,44.9167,224.574,-67.011],[5227.87,-501.038,44.4333,222.045,-66.5313],[5184.96,-403.317,43.95,219.49,-66.0365],[5138.71,-300.528,43.4333,216.732,-65.4901],[5093.57,-202.724,42.9333,214.038,-64.9433],[5045.03,-100.236,42.4,211.139,-64.3396],[4997.6,-2.78375,41.8833,208.305,-63.7335],[4946.68,98.9437,41.3333,205.265,-63.0643],[4895.33,198.566,40.7833,202.201,-62.369],[4841.97,298.973,40.2167,199.022,-61.6237],[4786.56,399.93,39.6333,195.73,-60.8243],[4730.66,498.413,39.05,192.421,-59.9903],[4671.06,599.793,38.4333,188.907,-59.0687],[4610.92,698.327,37.8167,185.382,-58.1037],[4546.97,799.06,37.1667,181.661,-57.0365],[4480.78,898.993,36.5,177.844,-55.8851],[4412.32,997.815,35.8167,173.938,-54.6412],[4338.15,1099.75,35.0833,169.766,-53.2297],[4261.58,1199.51,34.3333,165.53,-51.6983],[4180.83,1298.8,33.55,161.156,-49.9969],[4094.07,1398.83,32.7167,156.578,-48.0644],[4001.17,1498.48,31.8333,151.836,-45.8678],[3898.41,1599.88,30.8667,146.815,-43.2765],[3787.34,1699.29,29.8333,141.69,-40.2747],[3662.27,1798.84,28.6833,136.357,-36.6346],[3515.39,1899.42,27.35,130.781,-32.0014],[3334.69,1999.59,25.7333,125.113,-25.7835]]], + [57,2203.86,[[5683.19,-2000.28,51.5333,255.058,-72.5966],[5652.57,-1903.32,51.1333,253.276,-72.3301],[5620.41,-1803.2,50.7167,251.397,-72.0463],[5586.7,-1700.04,50.2833,249.417,-71.7441],[5554.02,-1601.79,49.8667,247.489,-71.4466],[5519.76,-1500.61,49.4333,245.459,-71.1296],[5485.23,-1400.46,49,243.404,-70.8047],[5450.41,-1301.35,48.5667,241.323,-70.4716],[5415.32,-1203.31,48.1333,239.218,-70.13],[5378.59,-1102.63,47.6833,237.006,-69.7659],[5341.56,-1003.13,47.2333,234.768,-69.3919],[5302.85,-901.201,46.7667,232.42,-68.9931],[5263.81,-800.579,46.3,230.045,-68.5828],[5224.46,-701.279,45.8333,227.642,-68.1604],[5184.78,-603.32,45.3667,225.214,-67.7255],[5143.36,-503.298,44.8833,222.672,-67.2613],[5100.15,-401.385,44.3833,220.014,-66.7656],[5056.58,-301.081,43.8833,217.329,-66.2535],[5012.64,-202.409,43.3833,214.617,-65.7241],[4966.87,-102.189,42.8667,211.789,-65.1582],[4919.22,-0.61684,42.3333,208.842,-64.5527],[4871.17,99.0147,41.8,205.869,-63.9246],[4821.19,199.698,41.25,202.778,-63.2518],[4770.79,298.256,40.7,199.664,-62.5522],[4718.42,397.547,40.1333,196.433,-61.8018],[4664.05,497.333,39.55,193.088,-60.9961],[4607.64,597.366,38.95,189.628,-60.1303],[4549.15,697.385,38.3333,186.057,-59.1986],[4486.94,799.702,37.6833,182.282,-58.1679],[4424.18,898.779,37.0333,178.501,-57.0838],[4357.6,999.392,36.35,174.527,-55.8827],[4288.77,1098.64,35.65,170.466,-54.5824],[4215.99,1198.4,34.9167,166.233,-53.139],[4139.18,1298.01,34.15,161.843,-51.5344],[4056.56,1398.79,33.3333,157.227,-49.7095],[3968,1499.63,32.4667,152.417,-47.6323],[3873.36,1599.33,31.55,147.462,-45.2654],[3769.01,1699.81,30.55,142.254,-42.4688],[3654.68,1798.77,29.4667,136.905,-39.1683],[3521.17,1899.95,28.2167,131.211,-34.9879],[3364.2,1999.58,26.7667,125.412,-29.6199]]], + [58,2250.58,[[5575.9,-2003.09,51.9333,255.585,-73.1178],[5544.86,-1901.61,51.5167,253.725,-72.8487],[5513.56,-1801.03,51.1,251.841,-72.5734],[5482.02,-1701.34,50.6833,249.934,-72.2918],[5450.22,-1602.58,50.2667,248.001,-72.0034],[5416.89,-1500.86,49.8333,245.967,-71.6963],[5383.28,-1400.16,49.4,243.906,-71.3815],[5349.41,-1300.5,48.9667,241.82,-71.0588],[5315.26,-1201.9,48.5333,239.708,-70.7277],[5279.52,-1100.63,48.0833,237.488,-70.3748],[5243.49,-1000.54,47.6333,235.241,-70.0123],[5207.16,-901.63,47.1833,232.968,-69.6398],[5169.19,-800.332,46.7167,230.583,-69.2425],[5130.9,-700.349,46.25,228.17,-68.8335],[5092.31,-601.699,45.7833,225.73,-68.4124],[5052,-500.954,45.3,223.174,-67.9627],[5011.37,-401.682,44.8167,220.591,-67.4989],[4968.99,-300.56,44.3167,217.891,-67.0033],[4926.26,-201.062,43.8167,215.162,-66.4911],[4883.18,-103.21,43.3167,212.406,-65.9613],[4836.84,-0.67724,42.7833,209.439,-65.3759],[4790.11,99.926,42.25,206.443,-64.7685],[4742.98,198.571,41.7167,203.421,-64.1378],[4693.98,298.218,41.1667,200.28,-63.4618],[4643.06,398.642,40.6,197.019,-62.7366],[4590.19,499.608,40.0167,193.638,-61.9578],[4536.87,598.091,39.4333,190.237,-61.1443],[4480.01,699.461,38.8167,186.622,-60.2442],[4422.65,797.973,38.2,182.993,-59.3003],[4361.66,898.672,37.55,179.156,-58.2548],[4298.54,998.556,36.8833,175.216,-57.1248],[4231.66,1099.68,36.1833,171.082,-55.871],[4162.56,1199.16,35.4667,166.862,-54.5106],[4089.57,1298.82,34.7167,162.471,-52.9975],[4012.62,1397.98,33.9333,157.927,-51.3118],[3928.29,1499.8,33.0833,153.067,-49.3511],[3839.77,1599.13,32.2,148.12,-47.1566],[3743.59,1698.48,31.25,142.955,-44.6031],[3636.13,1799.12,30.2,137.485,-41.5291],[3515.34,1899.49,29.0333,131.782,-37.7801],[3375.56,1999.19,27.7,125.875,-33.0398]]], + [59,2296.51,[[5462.17,-2000.05,52.3,255.997,-73.6221],[5433.18,-1902.2,51.9,254.209,-73.3718],[5402.76,-1801.13,51.4833,252.322,-73.1052],[5372.09,-1700.97,51.0667,250.41,-72.8324],[5341.17,-1601.72,50.65,248.474,-72.5531],[5310.02,-1503.4,50.2333,246.513,-72.2672],[5277.35,-1402.15,49.8,244.448,-71.9626],[5244.43,-1301.93,49.3667,242.356,-71.6503],[5211.24,-1202.75,48.9333,240.239,-71.3299],[5176.49,-1100.89,48.4833,238.012,-70.9884],[5141.47,-1000.19,48.0333,235.758,-70.6376],[5106.16,-900.67,47.5833,233.476,-70.277],[5070.57,-802.349,47.1333,231.167,-69.9064],[5033.36,-701.671,46.6667,228.745,-69.5109],[4995.85,-602.318,46.2,226.294,-69.1037],[4956.68,-500.837,45.7167,223.727,-68.6689],[4917.19,-400.821,45.2333,221.131,-68.2203],[4877.38,-302.292,44.75,218.506,-67.7572],[4835.86,-201.953,44.25,215.762,-67.2623],[4794,-103.251,43.75,212.99,-66.7503],[4750.38,-3.00576,43.2333,210.096,-66.2026],[4704.98,98.5846,42.7,207.08,-65.6161],[4659.2,198.228,42.1667,204.035,-65.0072],[4611.59,298.915,41.6167,200.868,-64.3543],[4563.59,397.47,41.0667,197.674,-63.6748],[4512.23,499.633,40.4833,194.261,-62.9233],[4460.44,599.327,39.9,190.824,-62.138],[4406.71,699.253,39.3,187.268,-61.293],[4351,799.151,38.6833,183.593,-60.3825],[4293.29,898.746,38.05,179.805,-59.4],[4233.54,997.751,37.4,175.906,-58.3383],[4170.17,1098.27,36.7167,171.804,-57.1598],[4103.1,1199.72,36,167.505,-55.85],[4033.83,1299.26,35.2667,163.123,-54.4252],[3960.74,1398.62,34.5,158.571,-52.8371],[3882.14,1499.09,33.6833,153.774,-51.0253],[3797.9,1599.59,32.8167,148.766,-48.9556],[3707.9,1698.9,31.9,143.592,-46.5874],[3608.7,1798.92,30.9,138.136,-43.7757],[3498.37,1898.77,29.8,132.429,-40.3846],[3371.5,1999.09,28.55,126.42,-36.1226]]], + [60,2341.6,[[5345.71,-2003.52,52.6833,256.518,-74.1412],[5316.39,-1901.13,52.2667,254.653,-73.8889],[5288.02,-1803.66,51.8667,252.839,-73.6412],[5258.24,-1703.01,51.45,250.924,-73.3774],[5228.21,-1603.26,51.0333,248.984,-73.1073],[5196.74,-1500.51,50.6,246.94,-72.8196],[5166.23,-1402.66,50.1833,244.95,-72.5361],[5134.25,-1301.9,49.75,242.853,-72.234],[5102.02,-1202.19,49.3167,240.729,-71.9241],[5069.53,-1103.53,48.8833,238.579,-71.6062],[5035.52,-1002.22,48.4333,236.319,-71.2672],[5001.23,-902.074,47.9833,234.03,-70.9188],[4966.67,-803.124,47.5333,231.713,-70.5606],[4930.55,-701.785,47.0667,229.282,-70.1784],[4894.12,-601.766,46.6,226.821,-69.7848],[4857.4,-503.085,46.1333,224.331,-69.3792],[4819.07,-402.312,45.65,221.723,-68.946],[4780.42,-303.017,45.1667,219.086,-68.4989],[4740.11,-201.877,44.6667,216.327,-68.0209],[4699.46,-102.366,44.1667,213.538,-67.5264],[4657.12,-1.27539,43.65,210.626,-66.9973],[4614.43,98.0241,43.1333,207.685,-66.4488],[4569.99,198.62,42.6,204.618,-65.8611],[4525.18,297.25,42.0667,201.523,-65.2504],[4477.17,399.859,41.5,198.206,-64.5749],[4430.18,497.265,40.95,194.959,-63.8915],[4379.93,598.188,40.3667,191.489,-63.135],[4327.79,699.392,39.7667,187.895,-62.3206],[4275.2,797.92,39.1667,184.279,-61.4671],[4219.21,898.974,38.5333,180.443,-60.5209],[4161.25,999.493,37.8833,176.491,-59.4979],[4101.27,1099.18,37.2167,172.427,-58.3903],[4039.24,1197.72,36.5333,168.26,-57.1888],[3972.08,1299.31,35.8,163.794,-55.8192],[3902.75,1398.69,35.05,159.246,-54.3254],[3828.11,1499.58,34.25,154.432,-52.6195],[3749.61,1598.98,33.4167,149.478,-50.7081],[3663.99,1699.7,32.5167,144.227,-48.4758],[3572.7,1798.44,31.5667,138.832,-45.9129],[3469.1,1899.88,30.5,133.011,-42.7589],[3354.52,1999.23,29.3333,127.017,-38.9448]]], + [61,2385.79,[[5222.99,-2001.21,53.0333,256.925,-74.6449],[5195.68,-1902.5,52.6333,255.132,-74.4107],[5167,-1800.53,52.2167,253.239,-74.1612],[5139.25,-1703.47,51.8167,251.397,-73.9163],[5110.12,-1603.26,51.4,249.454,-73.6552],[5079.58,-1500.01,50.9667,247.406,-73.3771],[5049.98,-1401.68,50.55,245.411,-73.1031],[5018.95,-1300.42,50.1167,243.309,-72.811],[4987.67,-1200.2,49.6833,241.179,-72.5114],[4956.15,-1101.02,49.25,239.023,-72.2041],[4924.37,-1002.92,48.8167,236.839,-71.8886],[4891.11,-902.188,48.3667,234.543,-71.5521],[4857.58,-802.641,47.9167,232.219,-71.2062],[4822.53,-700.677,47.45,229.778,-70.837],[4787.19,-600.025,46.9833,227.307,-70.4567],[4751.57,-500.704,46.5167,224.807,-70.0649],[4715.67,-402.736,46.05,222.277,-69.6611],[4678.18,-302.713,45.5667,219.627,-69.2296],[4639.08,-200.812,45.0667,216.854,-68.7682],[4599.66,-100.532,44.5667,214.05,-68.2909],[4559.92,-1.89696,44.0667,211.216,-67.7969],[4518.51,98.2726,43.55,208.256,-67.2679],[4475.42,199.776,43.0167,205.169,-66.701],[4431.96,299.324,42.4833,202.051,-66.1119],[4386.78,399.904,41.9333,198.806,-65.4798],[4341.22,498.343,41.3833,195.531,-64.8211],[4293.89,597.491,40.8167,192.13,-64.113],[4243.34,699.919,40.2167,188.501,-63.3287],[4192.37,799.684,39.6167,184.846,-62.5065],[4139.52,899.403,39,181.068,-61.6192],[4084.79,998.8,38.3667,177.168,-60.6603],[4028.12,1097.59,37.7167,173.15,-59.6222],[3968.03,1197.87,37.0333,168.918,-58.4675],[3904.43,1299.04,36.3167,164.478,-57.1811],[3838.77,1398.27,35.5833,159.944,-55.7783],[3767.98,1499.4,34.8,155.125,-54.1749],[3693.49,1599.38,33.9833,150.147,-52.3772],[3613.67,1699.32,33.1167,144.938,-50.3156],[3526.86,1799.73,32.1833,139.447,-47.9012],[3432.89,1898.89,31.1833,133.746,-45.0688],[3326.83,1999.16,30.0667,127.674,-41.5764]]], + [62,2429.05,[[5096.39,-2001.38,53.3833,257.367,-75.1537],[5069.92,-1902.25,52.9833,255.571,-74.9275],[5043.23,-1803.93,52.5833,253.751,-74.6962],[5015.22,-1702.37,52.1667,251.83,-74.4498],[4986.98,-1601.72,51.75,249.883,-74.1976],[4958.52,-1501.98,51.3333,247.91,-73.9394],[4929.84,-1403.16,50.9167,245.911,-73.675],[4899.77,-1301.38,50.4833,243.805,-73.3931],[4869.46,-1200.64,50.05,241.671,-73.104],[4838.9,-1100.94,49.6167,239.509,-72.8073],[4808.11,-1002.3,49.1833,237.319,-72.5028],[4775.88,-901.014,48.7333,235.016,-72.178],[4743.38,-800.903,48.2833,232.683,-71.8441],[4710.63,-701.987,47.8333,230.322,-71.5006],[4676.39,-600.69,47.3667,227.843,-71.1339],[4641.88,-500.718,46.9,225.333,-70.7561],[4607.09,-402.09,46.4333,222.792,-70.3666],[4570.76,-301.377,45.95,220.13,-69.9504],[4534.15,-202.149,45.4667,217.437,-69.5204],[4495.96,-101.085,44.9667,214.619,-69.0605],[4457.45,-1.65776,44.4667,211.769,-68.5844],[4417.34,99.3394,43.95,208.791,-68.0746],[4376.9,198.537,43.4333,205.782,-67.5457],[4334.82,299.02,42.9,202.643,-66.9784],[4292.38,397.527,42.3667,199.474,-66.3885],[4246.92,499.996,41.8,196.074,-65.7353],[4202.43,597.256,41.25,192.745,-65.0736],[4154.85,698.013,40.6667,189.185,-64.3403],[4105.49,799.035,40.0667,185.494,-63.5499],[4055.71,897.367,39.4667,181.779,-62.7202],[4002.72,998.201,38.8333,177.833,-61.799],[3947.86,1098.48,38.1833,173.764,-60.8014],[3891.11,1197.9,37.5167,169.575,-59.7189],[3831,1298.5,36.8167,165.17,-58.5127],[3767.45,1399.67,36.0833,160.555,-57.166],[3701.87,1498.59,35.3333,155.848,-55.6931],[3631.27,1598.97,34.5333,150.858,-54.0055],[3555.56,1699.72,33.6833,145.612,-52.0681],[3474.61,1799.68,32.7833,140.148,-49.8385],[3386.8,1899.21,31.8167,134.423,-47.2183],[3288.89,1999.49,30.75,128.338,-44.0278]]], + [63,2471.32,[[4965.9,-2004.12,53.7333,257.843,-75.6672],[4939.2,-1900.44,53.3167,255.97,-75.4398],[4913.36,-1801.73,52.9167,254.148,-75.2166],[4887.33,-1703.82,52.5167,252.301,-74.9884],[4859.99,-1602.72,52.1,250.351,-74.7452],[4832.44,-1502.52,51.6833,248.374,-74.4962],[4804.68,-1403.24,51.2667,246.372,-74.2412],[4775.57,-1300.98,50.8333,244.261,-73.9693],[4747.36,-1203.62,50.4167,242.205,-73.7013],[4717.79,-1103.38,49.9833,240.038,-73.4155],[4686.84,-1000.41,49.5333,237.758,-73.1107],[4656.79,-902.341,49.1,235.534,-72.8092],[4625.35,-801.653,48.65,233.195,-72.4874],[4593.65,-702.155,48.2,230.826,-72.1564],[4560.51,-600.247,47.7333,228.338,-71.8031],[4528.3,-503.226,47.2833,225.909,-71.4522],[4493.43,-400.404,46.8,223.268,-71.0636],[4459.49,-302.509,46.3333,220.687,-70.6765],[4424.06,-202.569,45.85,217.982,-70.2625],[4387.1,-100.761,45.35,215.15,-69.8197],[4349.85,-0.580351,44.85,212.285,-69.3613],[4312.29,97.9475,44.35,209.388,-68.8864],[4273.17,197.998,43.8333,206.361,-68.3776],[4232.45,299.37,43.3,203.203,-67.8318],[4191.39,398.778,42.7667,200.012,-67.2641],[4148.7,499.203,42.2167,196.688,-66.6543],[4105.66,597.476,41.6667,193.333,-66.0183],[4059.64,699.319,41.0833,189.742,-65.3131],[4013.22,798.669,40.5,186.121,-64.5745],[3965.08,898.218,39.9,182.368,-63.7774],[3915.18,997.701,39.2833,178.484,-62.9159],[3862.14,1099.41,38.6333,174.366,-61.958],[3808.63,1197.83,37.9833,170.228,-60.945],[3751.9,1297.71,37.3,165.865,-59.8157],[3691.87,1398.45,36.5833,161.281,-58.5547],[3628.49,1499.4,35.8333,156.488,-57.1433],[3561.68,1599.88,35.05,151.5,-55.5596],[3491.39,1699.17,34.2333,146.338,-53.7776],[3416.1,1798.34,33.3667,140.926,-51.7255],[3332.76,1899.6,32.4167,135.107,-49.2651],[3242.67,1999.2,31.4,129.061,-46.3606]]], + [64,2512.55,[[4829.45,-2001.14,54.05,258.205,-76.168],[4804.66,-1901.23,53.65,256.405,-75.9576],[4779.68,-1802.11,53.25,254.58,-75.7426],[4754.51,-1703.81,52.85,252.731,-75.5227],[4728.08,-1602.28,52.4333,250.778,-75.2883],[4701.45,-1501.65,52.0167,248.798,-75.0484],[4674.6,-1401.93,51.6,246.791,-74.8027],[4647.54,-1303.15,51.1833,244.758,-74.5509],[4619.18,-1201.41,50.75,242.615,-74.2825],[4590.59,-1100.71,50.3167,240.443,-74.007],[4561.78,-1001.06,49.8833,238.242,-73.7243],[4532.73,-902.47,49.45,236.012,-73.434],[4502.34,-801.238,49,233.666,-73.1242],[4471.69,-701.189,48.55,231.29,-72.8056],[4440.81,-602.341,48.1,228.883,-72.4777],[4408.53,-501.121,47.6333,226.355,-72.1275],[4375.98,-401.231,47.1667,223.796,-71.7664],[4343.18,-302.691,46.7,221.204,-71.3941],[4308.94,-202.077,46.2167,218.488,-70.9958],[4274.41,-102.954,45.7333,215.738,-70.5842],[4238.41,-2.00603,45.2333,212.86,-70.1437],[4202.12,97.2979,44.7333,209.948,-69.6873],[4164.32,198.159,44.2167,206.905,-69.1982],[4126.2,297.212,43.7,203.828,-68.6903],[4086.54,397.536,43.1667,200.617,-68.1452],[4045.3,498.917,42.6167,197.271,-67.5596],[4003.72,598.157,42.0667,193.891,-66.9486],[3960.52,698.13,41.5,190.375,-66.291],[3915.69,798.598,40.9167,186.723,-65.5821],[3869.19,899.309,40.3167,182.934,-64.817],[3820.99,1000,39.7,179.011,-63.9898],[3772.38,1097.79,39.0833,175.06,-63.1182],[3720.72,1197.68,38.4333,170.873,-62.1475],[3665.93,1299.12,37.75,166.45,-61.065],[3609.32,1399.18,37.05,161.907,-59.8844],[3549.48,1499.75,36.3167,157.141,-58.5628],[3487.75,1598.03,35.5667,152.275,-57.1128],[3419.91,1699.73,34.75,146.999,-55.4096],[3348.65,1799.58,33.9,141.557,-53.4848],[3272.49,1898.54,33,135.877,-51.2591],[3188.46,1998.59,32.0167,129.812,-48.5812]]], + [65,2552.7,[[4689.21,-2000.81,54.3667,258.603,-76.6744],[4665.28,-1900.53,53.9667,256.8,-76.4719],[4641.16,-1801.04,53.5667,254.973,-76.2649],[4616.86,-1702.35,53.1667,253.121,-76.0532],[4591.34,-1600.42,52.75,251.165,-75.8276],[4566.65,-1503.41,52.35,249.261,-75.606],[4540.74,-1403.25,51.9333,247.251,-75.3696],[4513.57,-1300.07,51.5,245.132,-75.1177],[4487.24,-1201.81,51.0833,243.067,-74.8694],[4459.64,-1100.63,50.65,240.89,-74.6045],[4431.82,-1000.49,50.2167,238.684,-74.3325],[4403.78,-901.418,49.7833,236.449,-74.0533],[4375.53,-803.42,49.35,234.184,-73.7666],[4345.96,-702.809,48.9,231.801,-73.4604],[4316.15,-603.392,48.45,229.388,-73.1453],[4284.99,-501.575,47.9833,226.852,-72.8088],[4253.58,-401.082,47.5167,224.284,-72.4618],[4221.92,-301.933,47.05,221.683,-72.104],[4188.86,-200.68,46.5667,218.955,-71.7212],[4155.54,-100.912,46.0833,216.193,-71.3257],[4121.96,-2.65133,45.6,213.398,-70.9165],[4086.94,97.389,45.1,210.472,-70.4783],[4050.45,199.02,44.5833,207.413,-70.0087],[4013.67,298.85,44.0667,204.318,-69.5209],[3975.4,399.985,43.5333,201.087,-68.9973],[3936.81,499.145,43,197.821,-68.4521],[3896.69,599.304,42.45,194.417,-67.8659],[3856.24,697.299,41.9,190.98,-67.2537],[3812.99,798.834,41.3167,187.298,-66.5742],[3769.38,897.862,40.7333,183.584,-65.8614],[3722.89,999.783,40.1167,179.623,-65.0691],[3676.01,1098.82,39.5,175.632,-64.234],[3627.46,1197.48,38.8667,171.506,-63.3282],[3575.92,1297.95,38.2,167.138,-62.3178],[3521.33,1399.65,37.5,162.531,-61.1885],[3464.96,1499.68,36.7833,157.803,-59.9532],[3405.44,1599.87,36.0333,152.852,-58.5665],[3342.72,1699.53,35.25,147.692,-57.0051],[3275.4,1799.88,34.4167,142.235,-55.2038],[3203.37,1899.76,33.5333,136.511,-53.1187],[3125.16,1999.63,32.5833,130.462,-50.6504]]], + [66,2591.71,[[4545.19,-2003.21,54.6833,259.036,-77.1862],[4522.12,-1902.55,54.2833,257.232,-76.9916],[4498.88,-1802.67,53.8833,255.403,-76.7927],[4475.45,-1703.6,53.4833,253.549,-76.5894],[4450.85,-1601.26,53.0667,251.59,-76.3727],[4427.06,-1503.85,52.6667,249.684,-76.1598],[4402.07,-1403.27,52.25,247.671,-75.9328],[4376.9,-1303.62,51.8333,245.631,-75.7002],[4350.5,-1200.96,51.4,243.479,-75.4521],[4324.93,-1103.22,50.9833,241.382,-75.2075],[4298.12,-1002.59,50.55,239.172,-74.9466],[4271.1,-903.018,50.1167,236.932,-74.6786],[4242.82,-800.747,49.6667,234.574,-74.3926],[4215.37,-703.372,49.2333,232.273,-74.1095],[4186.64,-603.418,48.7833,229.852,-73.8071],[4156.61,-501.038,48.3167,227.309,-73.484],[4127.43,-403.563,47.8667,224.824,-73.163],[4095.83,-300.252,47.3833,222.121,-72.8074],[4065.07,-201.885,46.9167,219.477,-72.4529],[4032.97,-101.457,46.4333,216.705,-72.0735],[4000.6,-2.52895,45.95,213.898,-71.6811],[3966.86,98.2088,45.45,210.958,-71.2608],[3932.84,197.294,44.95,207.984,-70.8251],[3897.41,297.919,44.4333,204.873,-70.3578],[3860.53,399.883,43.9,201.624,-69.856],[3823.35,499.881,43.3667,198.339,-69.3336],[3785.87,597.883,42.8333,195.017,-68.789],[3745.73,699.791,42.2667,191.45,-68.1848],[3705.25,799.378,41.7,187.847,-67.5523],[3663.24,899.434,41.1167,184.101,-66.8696],[3619.68,999.706,40.5167,180.214,-66.1316],[3574.53,1099.93,39.9,176.184,-65.3325],[3527.77,1199.82,39.2667,172.015,-64.4654],[3479.37,1299.1,38.6167,167.707,-63.5226],[3428.06,1399.87,37.9333,163.153,-62.4688],[3375.05,1499.22,37.2333,158.469,-61.3165],[3319.04,1599.02,36.5,153.551,-60.0228],[3259.96,1698.61,35.7333,148.411,-58.5659],[3196.47,1799.27,34.9167,142.951,-56.8839],[3128.47,1899.89,34.05,137.2,-54.9354],[3055.88,1999.25,33.1333,131.195,-52.6687]]], + [67,2629.55,[[4396.46,-2004.17,54.9833,259.43,-77.6952],[4374.26,-1903.16,54.5833,257.624,-77.5086],[4351.89,-1802.92,54.1833,255.794,-77.3178],[4329.34,-1703.48,53.7833,253.937,-77.1227],[4305.67,-1600.76,53.3667,251.976,-76.9148],[4282.77,-1502.98,52.9667,250.067,-76.7105],[4258.73,-1402.01,52.55,248.051,-76.4926],[4234.5,-1301.96,52.1333,246.007,-76.2695],[4210.08,-1202.83,51.7167,243.934,-76.0408],[4184.48,-1100.74,51.2833,241.749,-75.7968],[4159.67,-1003.56,50.8667,239.619,-75.5562],[4133.67,-903.51,50.4333,237.374,-75.2993],[4106.46,-800.745,49.9833,235.01,-75.0251],[4080.05,-702.888,49.55,232.704,-74.7537],[4052.41,-602.43,49.1,230.276,-74.4638],[4024.55,-503.173,48.65,227.817,-74.1653],[3995.42,-401.529,48.1833,225.232,-73.8463],[3966.07,-301.215,47.7167,222.613,-73.5173],[3936.48,-202.253,47.25,219.96,-73.1777],[3905.59,-101.202,46.7667,217.178,-72.8143],[3874.46,-1.64404,46.2833,214.359,-72.4385],[3841.99,99.7525,45.7833,211.406,-72.0358],[3809.27,199.503,45.2833,208.417,-71.6184],[3776.28,297.583,44.7833,205.392,-71.1853],[3741.92,397.152,44.2667,202.229,-70.7205],[3706.17,498.006,43.7333,198.925,-70.221],[3669,599.931,43.1833,195.479,-69.6838],[3631.52,699.711,42.6333,191.994,-69.1226],[3593.75,797.314,42.0833,188.473,-68.5359],[3553.35,898.419,41.5,184.7,-67.8839],[3511.46,999.781,40.9,180.781,-67.1788],[3469.23,1098.44,40.3,176.826,-66.4362],[3424.27,1199.59,39.6667,172.616,-65.6086],[3378.94,1297.63,39.0333,168.374,-64.7321],[3329.62,1399.88,38.35,163.767,-63.7269],[3279.89,1498.4,37.6667,159.135,-62.6544],[3226.05,1599.92,36.9333,154.146,-61.421],[3170.51,1699.17,36.1833,149.035,-60.0624],[3110.75,1799.86,35.3833,143.587,-58.4928],[3047.94,1898.98,34.55,137.937,-56.7105],[2979.49,1999.31,33.65,131.89,-54.5957]]], + [68,2666.16,[[4243.12,-2003.74,55.2667,259.785,-78.2025],[4221.8,-1902.39,54.8667,257.978,-78.0236],[4200.3,-1801.82,54.4667,256.145,-77.8408],[4178.64,-1702.04,54.0667,254.286,-77.6539],[4156.81,-1603.07,53.6667,252.402,-77.4628],[4133.9,-1500.83,53.25,250.41,-77.259],[4111.73,-1403.53,52.85,248.472,-77.0587],[4088.45,-1303.07,52.4333,246.425,-76.8451],[4065,-1203.54,52.0167,244.349,-76.6262],[4040.41,-1101.01,51.5833,242.16,-76.3926],[4016.59,-1003.41,51.1667,240.026,-76.1623],[3991.62,-902.919,50.7333,237.776,-75.9164],[3966.45,-803.492,50.3,235.495,-75.6638],[3940.11,-701.381,49.85,233.094,-75.3941],[3913.56,-600.449,49.4,230.66,-75.1165],[3886.8,-500.714,48.95,228.193,-74.8308],[3859.82,-402.192,48.5,225.693,-74.5365],[3831.64,-301.324,48.0333,223.066,-74.2218],[3803.22,-201.8,47.5667,220.404,-73.897],[3773.56,-100.162,47.0833,217.611,-73.5494],[3743.66,-0.0103934,46.6,214.781,-73.1899],[3713.52,98.6325,46.1167,211.916,-72.8178],[3682.1,199.065,45.6167,208.914,-72.4189],[3650.43,297.835,45.1167,205.874,-72.0051],[3617.44,398.124,44.6,202.695,-71.5608],[3583.11,499.729,44.0667,199.374,-71.0834],[3548.51,599.356,43.5333,196.013,-70.5858],[3512.53,699.992,42.9833,192.507,-70.0499],[3476.26,798.461,42.4333,188.962,-69.4897],[3438.6,897.613,41.8667,185.271,-68.8851],[3399.51,997.206,41.2833,181.432,-68.2316],[3357.85,1099.72,40.6667,177.334,-67.5039],[3315.84,1199.34,40.05,173.198,-66.7352],[3272.34,1298.6,39.4167,168.914,-65.8996],[3226.16,1399.68,38.75,164.37,-64.965],[3178.44,1499.63,38.0667,159.683,-63.9431],[3129.14,1598.11,37.3667,154.858,-62.8227],[3075.86,1699.16,36.6167,149.67,-61.5309],[3019.73,1799.72,35.8333,144.246,-60.0698],[2960.7,1899.04,35.0167,138.6,-58.4104],[2897.5,1998.19,34.15,132.643,-56.4782]]], + [69,2701.51,[[4085.27,-2001.95,55.5333,260.102,-78.7085],[4064.82,-1900.29,55.1333,258.293,-78.5374],[4045.08,-1803.6,54.75,256.535,-78.3699],[4024.31,-1703.47,54.35,254.675,-78.1913],[4002.51,-1600.02,53.9333,252.709,-78.0009],[3981.42,-1501.54,53.5333,250.794,-77.8139],[3960.17,-1403.88,53.1333,248.853,-77.6225],[3937.86,-1303.04,52.7167,246.803,-77.4183],[3915.37,-1203.11,52.3,244.724,-77.2091],[3891.8,-1100.19,51.8667,242.531,-76.9859],[3868.96,-1002.19,51.45,240.392,-76.7657],[3845.03,-901.285,51.0167,238.138,-76.5307],[3820.9,-801.44,50.5833,235.852,-76.2893],[3796.59,-702.668,50.15,233.534,-76.0412],[3771.14,-601.249,49.7,231.094,-75.7762],[3745.49,-501.021,49.25,228.621,-75.5034],[3719.64,-402.002,48.8,226.114,-75.2224],[3692.62,-300.612,48.3333,223.479,-74.9219],[3665.39,-200.562,47.8667,220.809,-74.6117],[3637.94,-101.871,47.4,218.103,-74.2914],[3609.29,-1.11002,46.9167,215.263,-73.9484],[3580.41,98.1486,46.4333,212.387,-73.5935],[3550.3,199.225,45.9333,209.373,-73.2129],[3519.95,298.646,45.4333,206.32,-72.818],[3488.34,399.614,44.9167,203.126,-72.3941],[3456.47,498.761,44.4,199.892,-71.9531],[3423.32,599.166,43.8667,196.513,-71.4787],[3389.9,697.571,43.3333,193.095,-70.9837],[3354.1,799.902,42.7667,189.42,-70.4338],[3318.01,899.908,42.2,185.704,-69.8572],[3281.63,997.552,41.6333,181.948,-69.2522],[3242.81,1098.33,41.0333,177.93,-68.5781],[3202.57,1199.06,40.4167,173.759,-67.8468],[3160.91,1299.48,39.7833,169.436,-67.0515],[3117.79,1399.28,39.1333,164.962,-66.1846],[3073.21,1498.17,38.4667,160.339,-65.2373],[3026,1598.15,37.7667,155.455,-64.173],[2976.13,1698.61,37.0333,150.313,-62.9735],[2923.54,1798.87,36.2667,144.922,-61.6168],[2868.2,1898.23,35.4667,139.293,-60.0759],[2807.71,1999.69,34.6,133.214,-58.2437]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 3609.29; +_maxRange = 5497.19; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg5.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg5.sqf new file mode 100644 index 0000000000..0b535933f4 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg5.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg5 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,2059.32,[[7893.48,-2002.24,50.35,259.299,-66.4553],[7850.16,-1903.63,49.9333,257.668,-66.0908],[7804.72,-1802.03,49.5,255.955,-65.7036],[7758.9,-1701.41,49.0667,254.225,-65.3078],[7712.69,-1601.81,48.6333,252.478,-64.9032],[7666.1,-1503.22,48.2,250.715,-64.4896],[7617.31,-1401.94,47.75,248.867,-64.0501],[7568.11,-1301.79,47.3,247.003,-63.6002],[7518.49,-1202.78,46.85,245.123,-63.1396],[7466.59,-1101.34,46.3833,243.157,-62.6502],[7414.24,-1001.17,45.9167,241.176,-62.1485],[7361.44,-902.278,45.45,239.179,-61.6341],[7306.29,-801.234,44.9667,237.097,-61.0875],[7250.65,-701.609,44.4833,235,-60.5262],[7192.59,-600.064,43.9833,232.817,-59.9298],[7134.01,-500.082,43.4833,230.621,-59.3167],[7074.92,-401.685,42.9833,228.414,-58.6862],[7013.32,-301.696,42.4667,226.123,-58.0159],[6949.16,-200.307,41.9333,223.749,-57.3032],[6884.41,-100.799,41.4,221.368,-56.5685],[6817.03,-0.179513,40.85,218.907,-55.7871],[6749.04,98.3821,40.3,216.443,-54.9806],[6678.34,197.748,39.7333,213.904,-54.1223],[6604.88,297.689,39.15,211.293,-53.2088],[6528.59,397.966,38.55,208.616,-52.2362],[6449.44,498.328,37.9333,205.876,-51.2004],[6367.34,598.512,37.3,203.079,-50.0968],[6282.25,698.242,36.65,200.235,-48.9207],[6191.89,799.662,35.9667,197.278,-47.6351],[6098.36,899.862,35.2667,194.295,-46.2636],[6001.6,998.52,34.55,191.298,-44.8005],[5896.97,1099.59,33.7833,188.168,-43.1667],[5788.87,1198.03,33,185.065,-41.422],[5670.23,1299.22,32.15,181.825,-39.4401],[5543.08,1399.89,31.25,178.564,-37.2387],[5407.18,1498.83,30.3,175.338,-34.7986],[5254.96,1599.27,29.25,172.072,-31.9621],[5083.37,1699.72,28.0833,168.865,-28.6416],[4884.11,1799.9,26.75,165.827,-24.6394],[4640.54,1899.11,25.15,163.197,-19.575],[4287.13,1999.53,22.8833,161.658,-12.0251]]], + [46,2125.24,[[7832.67,-2000.07,50.9,259.877,-67.0209],[7790.23,-1900.81,50.4833,258.24,-66.6654],[7747.44,-1802.44,50.0667,256.585,-66.3025],[7702.58,-1701.11,49.6333,254.847,-65.9169],[7657.33,-1600.77,49.2,253.092,-65.5226],[7611.71,-1501.44,48.7667,251.32,-65.1195],[7565.71,-1403.14,48.3333,249.53,-64.7072],[7517.53,-1302.16,47.8833,247.655,-64.2691],[7468.95,-1202.31,47.4333,245.763,-63.8205],[7419.96,-1103.62,46.9833,243.855,-63.3611],[7368.73,-1002.51,46.5167,241.858,-62.8729],[7317.05,-902.68,46.05,239.846,-62.3722],[7263.07,-800.646,45.5667,237.746,-61.8401],[7208.61,-700.02,45.0833,235.63,-61.2938],[7153.68,-600.823,44.6,233.499,-60.7326],[7098.28,-503.075,44.1167,231.354,-60.1562],[7038.53,-400.21,43.6,229.048,-59.5226],[6980.2,-302.284,43.1,226.805,-58.8915],[6919.4,-202.793,42.5833,224.476,-58.2203],[6856.07,-101.929,42.05,222.061,-57.5063],[6792.17,-2.95816,41.5167,219.639,-56.77],[6725.68,97.0953,40.9667,217.136,-55.9864],[6656.54,198.015,40.4,214.553,-55.1523],[6584.69,299.574,39.8167,211.893,-54.2642],[6512.17,398.736,39.2333,209.237,-53.3449],[6436.88,498.195,38.6333,206.511,-52.3656],[6358.75,597.698,38.0167,203.722,-51.3219],[6275.59,699.553,37.3667,200.801,-50.1794],[6191.61,798.257,36.7167,197.905,-48.9916],[6102.43,898.575,36.0333,194.895,-47.6921],[6007.93,999.935,35.3167,191.786,-46.2711],[5910.2,1099.51,34.5833,188.667,-44.7532],[5806.93,1199.06,33.8167,185.484,-43.0946],[5695.7,1299.92,33,182.198,-41.2445],[5578.58,1399.12,32.15,178.913,-39.225],[5450.76,1499.4,31.2333,175.549,-36.9372],[5311.9,1599.12,30.25,172.18,-34.3546],[5156.84,1699.41,29.1667,168.8,-31.355],[4980.12,1799.9,27.95,165.483,-27.7973],[4773.4,1899.33,26.55,162.39,-23.4703],[4507.41,1999.55,24.7833,159.763,-17.699]]], + [47,2190.93,[[7768.74,-2003.87,51.4667,260.558,-67.6013],[7727.21,-1903.92,51.05,258.916,-67.2552],[7683.65,-1800.91,50.6167,257.189,-66.8876],[7641.42,-1702.78,50.2,255.511,-66.5264],[7597.14,-1601.7,49.7667,253.748,-66.1426],[7552.49,-1501.63,49.3333,251.967,-65.7501],[7507.47,-1402.57,48.9,250.169,-65.3486],[7460.32,-1300.79,48.45,248.283,-64.922],[7412.77,-1200.14,48,246.379,-64.4851],[7364.82,-1100.64,47.55,244.458,-64.0377],[7316.47,-1002.29,47.1,242.52,-63.5793],[7265.9,-901.551,46.6333,240.493,-63.0921],[7214.9,-802.094,46.1667,238.45,-62.5922],[7161.62,-700.457,45.6833,236.316,-62.0609],[7107.88,-600.238,45.2,234.166,-61.5151],[7053.68,-501.457,44.7167,232.001,-60.9543],[6997.12,-400.803,44.2167,229.747,-60.358],[6940.07,-301.731,43.7167,227.478,-59.7444],[6880.6,-201.043,43.2,225.121,-59.0917],[6820.6,-102.093,42.6833,222.753,-58.4193],[6758.11,-1.79915,42.15,220.298,-57.7036],[6693.08,99.6331,41.6,217.757,-56.9418],[6627.46,199.01,41.05,215.21,-56.1549],[6559.24,299.218,40.4833,212.582,-55.3167],[6490.39,397.182,39.9167,209.953,-54.4497],[6416.8,498.427,39.3167,207.172,-53.499],[6340.45,599.787,38.7,204.321,-52.4853],[6263.37,698.372,38.0833,201.482,-51.4329],[6181.33,799.238,37.4333,198.509,-50.2801],[6096.35,899.395,36.7667,195.485,-49.0492],[6008.36,998.542,36.0833,192.422,-47.7347],[5915.14,1098.65,35.3667,189.259,-46.296],[5816.55,1199.09,34.6167,186.013,-44.722],[5712.46,1299.22,33.8333,182.707,-43.0006],[5602.74,1398.33,33.0167,179.369,-41.1186],[5482.67,1499.37,32.1333,175.906,-38.9796],[5354.27,1599.06,31.2,172.442,-36.5999],[5212.6,1699.26,30.1833,168.932,-33.866],[5054.86,1799.07,29.0667,165.447,-30.6928],[4873.24,1899.07,27.8,162.035,-26.8828],[4652.03,1999.99,26.2833,158.827,-22.0466]]], + [48,2256.33,[[7696.67,-2001.69,52,261.145,-68.1551],[7656.02,-1901.11,51.5833,259.496,-67.818],[7615.04,-1801.41,51.1667,257.83,-67.4737],[7573.72,-1702.61,50.75,256.146,-67.1221],[7530.39,-1600.82,50.3167,254.376,-66.7484],[7486.7,-1500.03,49.8833,252.587,-66.3662],[7442.65,-1400.24,49.45,250.78,-65.9753],[7398.23,-1301.48,49.0167,248.955,-65.5755],[7351.72,-1200.01,48.5667,247.042,-65.1504],[7306.55,-1103.38,48.1333,245.181,-64.7313],[7257.51,-1000.51,47.6667,243.159,-64.269],[7209.81,-902.507,47.2167,241.191,-63.8119],[7159.94,-802.122,46.75,239.133,-63.3259],[7109.64,-703.029,46.2833,237.058,-62.8272],[7057.09,-601.779,45.8,234.891,-62.2969],[7004.09,-501.954,45.3167,232.707,-61.7519],[6948.79,-400.209,44.8167,230.431,-61.1723],[6893,-300.035,44.3167,228.14,-60.5759],[6836.73,-201.452,43.8167,225.834,-59.962],[6778.07,-101.281,43.3,223.438,-59.3087],[6718.9,-2.85846,42.7833,221.03,-58.6353],[6655.34,99.9643,42.2333,218.455,-57.8955],[6593.16,197.724,41.7,215.95,-57.1547],[6526.49,299.462,41.1333,213.28,-56.3412],[6459.2,398.973,40.5667,210.606,-55.4993],[6389.3,499.051,39.9833,207.853,-54.6019],[6316.73,599.454,39.3833,205.022,-53.6448],[6241.44,699.93,38.7667,202.121,-52.6236],[6165.43,797.612,38.15,199.231,-51.5628],[6084.54,897.507,37.5,196.204,-50.3998],[5998.65,999.081,36.8167,193.05,-49.1254],[5909.78,1099.42,36.1167,189.857,-47.7626],[5817.86,1198.19,35.4,186.638,-46.3046],[5718.49,1299.37,34.6333,183.263,-44.6717],[5613.66,1399.92,33.8333,179.833,-42.8839],[5503.24,1499.12,33,176.377,-40.9271],[5382.6,1599.8,32.1,172.803,-38.7021],[5253.71,1698.71,31.15,169.24,-36.2245],[5109.4,1799.07,30.1,165.595,-33.3297],[4946.82,1899.38,28.9333,161.964,-29.9212],[4758.15,1999.31,27.6,158.444,-25.7858]]], + [49,2321.36,[[7619.81,-2001.61,52.5333,261.766,-68.7105],[7580.05,-1900.4,52.1167,260.114,-68.3823],[7539.97,-1800.07,51.7,258.442,-68.0471],[7499.55,-1700.62,51.2833,256.752,-67.7048],[7458.81,-1602.07,50.8667,255.044,-67.3551],[7416.09,-1500.55,50.4333,253.249,-66.9834],[7373.01,-1400.03,50,251.434,-66.6031],[7329.57,-1300.52,49.5667,249.601,-66.2141],[7285.77,-1202.04,49.1333,247.749,-65.8161],[7239.91,-1100.89,48.6833,245.807,-65.3928],[7193.67,-1000.87,48.2333,243.846,-64.9592],[7147.04,-902.016,47.7833,241.866,-64.5148],[7098.27,-800.74,47.3167,239.795,-64.0423],[7049.09,-700.746,46.85,237.704,-63.5573],[6999.49,-602.053,46.3833,235.596,-63.0596],[6947.69,-501.225,45.9,233.395,-62.5301],[6895.44,-401.833,45.4167,231.176,-61.9858],[6840.92,-300.545,44.9167,228.864,-61.4067],[6785.92,-200.837,44.4167,226.535,-60.8105],[6730.45,-102.731,43.9167,224.192,-60.1967],[6672.64,-3.0626,43.4,221.756,-59.5431],[6612.43,97.9745,42.8667,219.229,-58.847],[6551.68,197.109,42.3333,216.69,-58.1284],[6488.48,297.32,41.7833,214.062,-57.3626],[6422.76,398.391,41.2167,211.346,-56.5463],[6356.45,497.22,40.65,208.626,-55.701],[6285.59,599.383,40.05,205.744,-54.7732],[6214.06,698.96,39.45,202.864,-53.81],[6139.85,798.568,38.8333,199.911,-52.7817],[6062.92,897.941,38.2,196.89,-51.6831],[5981.14,999.294,37.5333,193.73,-50.4782],[5896.48,1099.67,36.85,190.52,-49.1891],[5808.89,1198.75,36.15,187.271,-47.8093],[5716.2,1298.43,35.4167,183.921,-46.2967],[5618.26,1398.07,34.65,180.49,-44.6386],[5512.79,1498.99,33.8333,176.931,-42.7824],[5401.8,1598.22,32.9833,173.354,-40.7483],[5280.71,1698.5,32.0667,169.667,-38.4339],[5146.97,1799.78,31.0667,165.883,-35.7625],[5000.17,1899.82,29.9833,162.112,-32.6933],[4832.96,1999.94,28.7667,158.355,-29.0305]]], + [50,2385.98,[[7538.08,-2003.72,53.0667,262.424,-69.2671],[7499.22,-1901.87,52.65,260.767,-68.9479],[7460.04,-1800.88,52.2333,259.091,-68.6219],[7420.53,-1700.78,51.8167,257.397,-68.289],[7380.7,-1601.57,51.4,255.683,-67.9488],[7340.55,-1503.27,50.9833,253.951,-67.6013],[7298.45,-1402,50.55,252.13,-67.2317],[7256,-1301.75,50.1167,250.29,-66.8536],[7213.2,-1202.51,49.6833,248.43,-66.4668],[7168.38,-1100.56,49.2333,246.479,-66.0554],[7124.86,-1003.45,48.8,244.581,-65.6497],[7077.6,-900.064,48.3333,242.516,-65.2019],[7031.65,-801.559,47.8833,240.507,-64.7591],[6983.59,-700.655,47.4167,238.403,-64.288],[6935.13,-601.041,46.95,236.28,-63.8045],[6886.26,-502.736,46.4833,234.139,-63.308],[6835.21,-402.319,46,231.903,-62.7797],[6783.73,-303.346,45.5167,229.649,-62.2364],[6730.02,-202.501,45.0167,227.3,-61.6581],[6675.84,-103.247,44.5167,224.934,-61.0625],[6619.37,-2.37769,44,222.473,-60.4283],[6560.56,99.9126,43.4667,219.917,-59.7527],[6503.09,197.206,42.95,217.427,-59.0772],[6441.36,298.8,42.4,214.764,-58.3343],[6379.09,398.329,41.85,212.091,-57.5659],[6314.34,498.681,41.2833,209.329,-56.7463],[6247.08,599.627,40.7,206.48,-55.8718],[6179.21,698.146,40.1167,203.628,-54.9645],[6106.79,799.618,39.5,200.616,-53.9682],[6033.68,898.3,38.8833,197.611,-52.9318],[5955.89,999.25,38.2333,194.455,-51.794],[5875.34,1099.47,37.5667,191.24,-50.5765],[5791.96,1198.66,36.8833,187.973,-49.2728],[5703.63,1298.79,36.1667,184.589,-47.842],[5610.23,1399.24,35.4167,181.105,-46.2718],[5511.65,1499.34,34.6333,177.542,-44.5486],[5407.77,1598.38,33.8167,173.929,-42.6577],[5294.14,1699.31,32.9333,170.16,-40.4995],[5172.66,1798.85,32,166.365,-38.0873],[5038.7,1898.84,30.9833,162.488,-35.3013],[4887.38,1999.75,29.85,158.539,-31.9984]]], + [51,2450.09,[[7450.02,-2004.01,53.5833,263.05,-69.8123],[7412.04,-1901.55,53.1667,261.39,-69.5019],[7375.29,-1803.99,52.7667,259.778,-69.1977],[7336.7,-1703.23,52.35,258.079,-68.8742],[7297.79,-1603.35,51.9333,256.361,-68.5437],[7256.99,-1500.43,51.5,254.554,-68.1923],[7217.43,-1402.39,51.0833,252.797,-67.8468],[7175.96,-1301.42,50.65,250.95,-67.4794],[7134.14,-1201.46,50.2167,249.082,-67.1034],[7091.98,-1102.52,49.7833,247.195,-66.7186],[7047.84,-1000.88,49.3333,245.215,-66.3093],[7003.32,-900.388,48.8833,243.214,-65.8897],[6958.44,-801.05,48.4333,241.194,-65.4597],[6913.18,-702.884,47.9833,239.154,-65.0187],[6865.86,-602.341,47.5167,237.018,-64.5495],[6818.13,-503.095,47.05,234.863,-64.0677],[6768.28,-401.693,46.5667,232.61,-63.5549],[6718.01,-301.724,46.0833,230.339,-63.0275],[6667.31,-203.209,45.6,228.049,-62.485],[6614.41,-102.848,45.1,225.662,-61.9074],[6559.27,-0.823244,44.5833,223.177,-61.292],[6503.65,99.4678,44.0667,220.674,-60.6573],[6447.55,198,43.55,218.157,-60.0023],[6389.13,297.84,43.0167,215.544,-59.3041],[6328.35,398.78,42.4667,212.836,-58.5595],[6267.02,497.64,41.9167,210.117,-57.7889],[6203.28,597.288,41.35,207.307,-56.9664],[6137.06,697.494,40.7667,204.409,-56.0882],[6068.32,798.014,40.1667,201.425,-55.15],[5997.02,898.595,39.55,198.359,-54.147],[5923.1,998.969,38.9167,195.218,-53.0742],[5846.5,1098.86,38.2667,192.007,-51.9258],[5767.19,1197.97,37.6,188.734,-50.6957],[5683.1,1298.34,36.9,185.329,-49.3445],[5594.11,1399.38,36.1667,181.807,-47.8602],[5502.16,1498.29,35.4167,178.264,-46.2656],[5403.05,1598.79,34.6167,174.567,-44.4755],[5296.6,1699.84,33.7667,170.751,-42.4679],[5184.71,1798.47,32.8833,166.933,-40.2616],[5060.84,1898.86,31.9167,162.961,-37.7016],[4924.59,1998.83,30.8667,158.935,-34.7442]]], + [52,2513.65,[[7355.61,-2002.48,54.0833,263.644,-70.3472],[7320,-1903.54,53.6833,262.047,-70.0575],[7282.61,-1801.31,53.2667,260.365,-69.7495],[7246.43,-1703.98,52.8667,258.73,-69.4476],[7208.43,-1603.46,52.45,257.008,-69.1265],[7170.13,-1503.84,52.0333,255.266,-68.7984],[7129.97,-1401.18,51.6,253.433,-68.4494],[7091.02,-1303.41,51.1833,251.651,-68.1063],[7050.2,-1202.71,50.75,249.778,-67.7412],[7009.04,-1103.03,50.3167,247.883,-67.3676],[6965.94,-1000.61,49.8667,245.895,-66.9702],[6924.09,-903.055,49.4333,243.96,-66.5781],[6880.28,-802.874,48.9833,241.93,-66.161],[6834.46,-700.213,48.5167,239.803,-65.7171],[6789.91,-602.42,48.0667,237.731,-65.2778],[6743.32,-502.271,47.6,235.563,-64.8103],[6696.35,-403.429,47.1333,233.374,-64.3301],[6647.28,-302.454,46.65,231.086,-63.8188],[6597.8,-202.921,46.1667,228.779,-63.2927],[6546.18,-101.496,45.6667,226.372,-62.7325],[6494.11,-1.65928,45.1667,223.945,-62.1552],[6439.84,99.8125,44.65,221.42,-61.5401],[6385.09,199.539,44.1333,218.876,-60.9052],[6329.87,297.494,43.6167,216.317,-60.2498],[6270.57,399.796,43.0667,213.577,-59.5285],[6212.56,497.026,42.5333,210.906,-58.8048],[6150.38,598.174,41.9667,208.057,-58.0085],[6085.8,699.942,41.3833,205.114,-57.1579],[6020.63,799.284,40.8,202.165,-56.2746],[5952.98,898.898,40.2,199.129,-55.3302],[5882.81,998.527,39.5833,196.01,-54.3199],[5810.08,1097.9,38.95,192.813,-53.2382],[5732.78,1199.24,38.2833,189.461,-52.0491],[5652.78,1299.57,37.6,186.048,-50.7735],[5570.03,1398.59,36.9,182.585,-49.4044],[5482.47,1498.18,36.1667,179.002,-47.8987],[5387.97,1599.8,35.3833,175.241,-46.2055],[5290.45,1698.43,34.5833,171.486,-44.3814],[5183.64,1799.33,33.7167,167.539,-42.2918],[5069.39,1899.2,32.8,163.529,-39.9477],[4943.26,1999.99,31.8,159.386,-37.2272]]], + [53,2576.59,[[7256.37,-2003.34,54.5833,264.272,-70.8841],[7221.61,-1903.83,54.1833,262.673,-70.6027],[7185.12,-1801,53.7667,260.987,-70.3035],[7149.8,-1703.09,53.3667,259.35,-70.0103],[7112.72,-1601.96,52.95,257.623,-69.6983],[7075.33,-1501.71,52.5333,255.877,-69.3795],[7037.63,-1402.36,52.1167,254.11,-69.0537],[6999.63,-1303.92,51.7,252.323,-68.7206],[6959.79,-1202.51,51.2667,250.443,-68.3663],[6919.61,-1102.12,50.8333,248.542,-68.0036],[6879.12,-1002.76,50.4,246.62,-67.6323],[6836.72,-900.67,49.95,244.602,-67.2372],[6795.56,-803.442,49.5167,242.638,-66.8474],[6752.46,-703.607,49.0667,240.577,-66.4324],[6707.39,-601.313,48.6,238.418,-65.9907],[6661.94,-500.297,48.1333,236.237,-65.5371],[6616.1,-400.578,47.6667,234.035,-65.0712],[6569.89,-302.174,47.2,231.811,-64.5924],[6521.61,-201.664,46.7167,229.488,-64.0825],[6472.93,-102.605,46.2333,227.143,-63.5576],[6422.15,-1.68051,45.7333,224.697,-62.9984],[6370.94,97.6448,45.2333,222.232,-62.422],[6317.55,198.577,44.7167,219.665,-61.8074],[6263.71,297.751,44.2,217.08,-61.1728],[6207.65,398.256,43.6667,214.393,-60.4959],[6149.33,499.882,43.1167,211.607,-59.7733],[6090.49,599.429,42.5667,208.806,-59.0249],[6029.33,699.787,42,205.908,-58.2254],[5967.62,797.873,41.4333,203,-57.3958],[5901.7,899.216,40.8333,199.914,-56.4829],[5835.17,997.939,40.2333,196.824,-55.5327],[5764.3,1099.26,39.6,193.564,-54.4872],[5692.77,1197.58,38.9667,190.311,-53.3959],[5616.76,1297.77,38.3,186.901,-52.1949],[5536.18,1399.29,37.6,183.343,-50.8733],[5452.86,1499.25,36.8833,179.736,-49.4523],[5364.79,1599.48,36.1333,176.011,-47.8877],[5271.87,1699.33,35.35,172.189,-46.1643],[5173.97,1798.07,34.5333,168.297,-44.2654],[5066.92,1898.64,33.65,164.219,-42.0883],[4950.48,1999.45,32.7,160.016,-39.5972]]], + [54,2638.84,[[7150.89,-2002.47,55.0667,264.867,-71.4115],[7116.98,-1902.42,54.6667,263.266,-71.1383],[7082.81,-1803.14,54.2667,261.646,-70.8594],[7046.92,-1700.56,53.85,259.937,-70.5628],[7012.19,-1602.89,53.45,258.276,-70.2721],[6975.72,-1502.02,53.0333,256.526,-69.9627],[6938.96,-1402.03,52.6167,254.754,-69.6465],[6901.9,-1302.95,52.2,252.962,-69.3233],[6863.04,-1200.87,51.7667,251.077,-68.9794],[6825.37,-1103.66,51.35,249.243,-68.6411],[6785.88,-1003.57,50.9167,247.315,-68.2811],[6744.52,-900.714,50.4667,245.289,-67.898],[6704.38,-802.739,50.0333,243.317,-67.5199],[6662.34,-702.121,49.5833,241.248,-67.1174],[6619.96,-602.666,49.1333,239.156,-66.7046],[6575.64,-500.773,48.6667,236.963,-66.2651],[6530.96,-400.167,48.2,234.749,-65.8136],[6485.89,-300.866,47.7333,232.512,-65.3496],[6440.46,-202.891,47.2667,230.254,-64.8726],[6393.01,-102.832,46.7833,227.894,-64.3644],[6343.5,-0.86172,46.2833,225.43,-63.8228],[6293.57,99.5214,45.7833,222.944,-63.2645],[6243.22,198.294,45.2833,220.438,-62.6887],[6190.75,298.643,44.7667,217.829,-62.0745],[6137.82,397.223,44.25,215.201,-61.44],[6082.72,497.099,43.7167,212.47,-60.7627],[6025.4,598.065,43.1667,209.637,-60.0394],[5965.81,699.901,42.6,206.702,-59.2666],[5905.7,799.482,42.0333,203.754,-58.4644],[5843.26,899.601,41.45,200.708,-57.6064],[5780.27,997.261,40.8667,197.655,-56.714],[5713.07,1097.79,40.25,194.424,-55.7313],[5643.42,1198.09,39.6167,191.107,-54.6778],[5571.27,1297.88,38.9667,187.71,-53.5475],[5494.7,1399.3,38.2833,184.153,-52.3025],[5415.5,1499.43,37.5833,180.534,-50.9637],[5333.63,1597.94,36.8667,176.865,-49.5225],[5245.16,1698.77,36.1,172.993,-47.8975],[5151.9,1798.89,35.3,169.027,-46.1048],[5051.76,1899.49,34.45,164.918,-44.0855],[4944.56,1999.41,33.55,160.711,-41.8119]]], + [55,2700.33,[[7040.59,-2004.15,55.55,265.497,-71.9413],[7007.54,-1903.54,55.15,263.894,-71.6762],[6974.23,-1803.71,54.75,262.271,-71.4056],[6939.24,-1700.54,54.3333,260.56,-71.1179],[6905.39,-1602.31,53.9333,258.896,-70.8358],[6869.84,-1500.83,53.5167,257.142,-70.5357],[6833.99,-1400.24,53.1,255.367,-70.229],[6797.86,-1300.54,52.6833,253.57,-69.9153],[6761.44,-1201.75,52.2667,251.753,-69.5947],[6724.73,-1103.88,51.85,249.914,-69.2667],[6686.24,-1003.08,51.4167,247.979,-68.9177],[6647.43,-903.311,50.9833,246.022,-68.5602],[6606.8,-800.804,50.5333,243.967,-68.1797],[6567.36,-703.169,50.1,241.966,-67.8041],[6526.06,-602.911,49.65,239.865,-67.4043],[6482.87,-500.176,49.1833,237.663,-66.9785],[6440.89,-402.32,48.7333,235.516,-66.5569],[6396.98,-302.113,48.2667,233.268,-66.1078],[6352.72,-203.219,47.8,230.997,-65.6461],[6306.49,-102.2,47.3167,228.621,-65.1541],[6259.87,-2.63129,46.8333,226.223,-64.6476],[6211.24,98.8216,46.3333,223.72,-64.1075],[6162.19,198.676,45.8333,221.194,-63.5505],[6112.73,296.909,45.3333,218.648,-62.9757],[6059.52,399.878,44.8,215.91,-62.3423],[6007.53,497.818,44.2833,213.238,-61.7076],[5953.4,597.022,43.75,210.461,-61.0297],[5897.1,697.279,43.2,207.58,-60.3054],[5838.57,798.368,42.6333,204.595,-59.531],[5779.54,897.188,42.0667,201.596,-58.7265],[5716.46,999.308,41.4667,198.409,-57.8403],[5652.82,1098.81,40.8667,195.215,-56.9169],[5586.82,1198.3,40.25,191.927,-55.9269],[5518.41,1297.52,39.6167,188.552,-54.8645],[5445.74,1398.66,38.95,185.006,-53.6936],[5370.53,1498.77,38.2667,181.387,-52.4341],[5290.9,1599.84,37.55,177.618,-51.0449],[5208.61,1699.03,36.8167,173.8,-49.5468],[5121.73,1798.09,36.05,169.865,-47.8929],[5028.24,1898.32,35.2333,165.753,-46.0264],[4927.97,1998.62,34.3667,161.503,-43.921]]], + [56,2761.02,[[6924.09,-2004.2,56.0167,266.092,-72.4626],[6891.89,-1903.07,55.6167,264.488,-72.2054],[6859.43,-1802.7,55.2167,262.863,-71.9431],[6826.72,-1703.11,54.8167,261.218,-71.6753],[6792.36,-1600.2,54.4,259.483,-71.3904],[6759.12,-1502.21,54,257.797,-71.1111],[6724.21,-1401,53.5833,256.018,-70.8138],[6689.01,-1300.68,53.1667,254.218,-70.5099],[6653.54,-1201.26,52.75,252.396,-70.1991],[6617.77,-1102.76,52.3333,250.552,-69.8813],[6580.28,-1001.29,51.9,248.612,-69.543],[6542.48,-900.847,51.4667,246.648,-69.1965],[6504.37,-801.433,51.0333,244.662,-68.8416],[6465.96,-703.066,50.6,242.654,-68.4779],[6425.74,-602.039,50.15,240.545,-68.0907],[6385.19,-502.174,49.7,238.412,-67.6933],[6344.31,-403.487,49.25,236.256,-67.2854],[6301.56,-302.409,48.7833,233.996,-66.8508],[6258.46,-202.635,48.3167,231.713,-66.4041],[6213.45,-100.693,47.8333,229.324,-65.928],[6168.06,-0.191128,47.35,226.91,-65.4377],[6122.28,98.8487,46.8667,224.474,-64.9327],[6074.54,199.743,46.3667,221.93,-64.394],[6026.38,299.028,45.8667,219.363,-63.8381],[5976.21,399.906,45.35,216.688,-63.2449],[5925.6,499.015,44.8333,213.991,-62.6315],[5872.91,599.438,44.3,211.187,-61.9763],[5819.78,697.921,43.7667,208.363,-61.2976],[5764.51,797.42,43.2167,205.433,-60.572],[5707.07,897.712,42.65,202.397,-59.7956],[5647.41,998.565,42.0667,199.256,-58.9642],[5585.5,1099.73,41.4667,196.014,-58.0734],[5523.04,1198.26,40.8667,192.764,-57.1443],[5456.51,1299.36,40.2333,189.328,-56.1198],[5387.59,1399.96,39.5833,185.803,-55.0188],[5316.25,1499.78,38.9167,182.196,-53.8345],[5242.45,1598.51,38.2333,178.514,-52.5591],[5164.3,1698.1,37.5167,174.68,-51.1507],[5081.73,1797.92,36.7667,170.709,-49.5944],[4992.76,1899.36,35.9667,166.537,-47.8354],[4899.12,1999.4,35.1333,162.279,-45.888]]], + [57,2820.82,[[6801.47,-2002.67,56.4667,266.654,-72.9761],[6770.12,-1901.04,56.0667,265.049,-72.7268],[6738.52,-1800.17,55.6667,263.422,-72.4725],[6706.66,-1700.06,55.2667,261.775,-72.2128],[6674.55,-1600.73,54.8667,260.107,-71.9478],[6642.19,-1502.19,54.4667,258.418,-71.6772],[6608.21,-1400.39,54.05,256.636,-71.3892],[6575.32,-1303.5,53.65,254.905,-71.1067],[6540.8,-1203.44,53.2333,253.079,-70.8059],[6504.6,-1100.34,52.8,251.158,-70.4858],[6469.51,-1002.15,52.3833,249.287,-70.1708],[6432.72,-901.015,51.95,247.318,-69.8355],[6395.63,-800.908,51.5167,245.326,-69.4919],[6358.25,-701.839,51.0833,243.311,-69.1399],[6319.1,-600.076,50.6333,241.194,-68.765],[6281.1,-503.172,50.2,239.132,-68.3947],[6239.85,-400.027,49.7333,236.886,-67.9854],[6199.73,-301.775,49.2833,234.697,-67.5799],[6157.79,-201.156,48.8167,232.402,-67.1478],[6115.51,-101.852,48.35,230.083,-66.7033],[6071.35,-0.405404,47.8667,227.656,-66.2295],[6026.82,99.5897,47.3833,225.204,-65.7413],[5981.92,198.113,46.9,222.728,-65.2383],[5935.08,298.462,46.4,220.143,-64.7014],[5887.86,397.189,45.9,217.535,-64.1472],[5838.64,497.48,45.3833,214.817,-63.5554],[5787.41,599.137,44.85,211.987,-62.923],[5735.73,698.867,44.3167,209.136,-62.2679],[5681.98,799.666,43.7667,206.174,-61.5673],[5627.76,898.356,43.2167,203.193,-60.84],[5571.42,997.798,42.65,200.105,-60.0613],[5512.92,1097.76,42.0667,196.911,-59.2268],[5452.21,1197.99,41.4667,193.612,-58.3319],[5389.25,1298.23,40.85,190.213,-57.3711],[5324.01,1398.22,40.2167,186.717,-56.3387],[5256.44,1497.66,39.5667,183.13,-55.2281],[5184.74,1598.69,38.8833,179.367,-54.0014],[5110.6,1698.38,38.1833,175.531,-52.678],[5032.19,1798.65,37.45,171.541,-51.2144],[4949.4,1898.83,36.6833,167.415,-49.5943],[4862.16,1998.24,35.8833,163.177,-47.7993]]], + [58,2879.69,[[6674.05,-2003.86,56.9167,267.25,-73.4928],[6643.56,-1901.72,56.5167,265.643,-73.2514],[6612.82,-1800.33,56.1167,264.016,-73.0051],[6583.13,-1703.88,55.7333,262.436,-72.7643],[6551.91,-1603.99,55.3333,260.767,-72.5078],[6519.12,-1500.77,54.9167,259.005,-72.235],[6487.39,-1402.49,54.5167,257.292,-71.9674],[6454.08,-1300.98,54.1,255.486,-71.6825],[6420.49,-1200.35,53.6833,253.657,-71.3913],[6386.64,-1100.62,53.2667,251.804,-71.0933],[6352.51,-1001.8,52.85,249.93,-70.7886],[6316.73,-900.01,52.4167,247.956,-70.4641],[6282.05,-803.096,52,246.035,-70.1446],[6245.7,-703.317,51.5667,244.014,-69.8043],[6207.64,-600.808,51.1167,241.89,-69.4419],[6170.69,-503.177,50.6833,239.821,-69.084],[6132.01,-402.93,50.2333,237.648,-68.7025],[6091.57,-300.216,49.7667,235.368,-68.2961],[6052.25,-202.387,49.3167,233.145,-67.8934],[6011.14,-102.217,48.85,230.815,-67.4641],[5969.7,-3.3696,48.3833,228.459,-67.0224],[5926.42,97.5926,47.9,225.994,-66.5513],[5882.78,197.094,47.4167,223.504,-66.0657],[5837.26,298.466,46.9167,220.902,-65.5476],[5791.35,398.228,46.4167,218.275,-65.0125],[5743.52,499.599,45.9,215.535,-64.4411],[5695.28,599.201,45.3833,212.771,-63.8499],[5646.63,697.008,44.8667,209.984,-63.238],[5594.41,799.123,44.3167,206.995,-62.5627],[5541.73,899.143,43.7667,203.983,-61.8616],[5486.99,999.972,43.2,200.859,-61.1107],[5431.77,1098.51,42.6333,197.717,-60.3293],[5374.43,1197.52,42.05,194.467,-59.4912],[5313.28,1299.48,41.4333,191.018,-58.5661],[5251.59,1398.6,40.8167,187.559,-57.5983],[5185.97,1499.97,40.1667,183.908,-56.5291],[5119.75,1598.1,39.5167,180.258,-55.4065],[5049.5,1697.72,38.8333,176.43,-54.1651],[4975.13,1798.24,38.1167,172.434,-52.7912],[4896.55,1899.02,37.3667,168.284,-51.2693],[4813.67,1999.4,36.5833,164.001,-49.5815]]], + [59,2937.55,[[6540.61,-2003.56,57.35,267.811,-74.0027],[6510.97,-1900.93,56.95,266.204,-73.7691],[6482.35,-1803.28,56.5667,264.643,-73.5407],[6452.24,-1702.13,56.1667,262.994,-73.2975],[6421.89,-1601.74,55.7667,261.322,-73.0493],[6391.3,-1502.13,55.3667,259.629,-72.7959],[6360.46,-1403.3,54.9667,257.915,-72.5371],[6328.09,-1301.21,54.55,256.106,-72.2617],[6296.76,-1204.02,54.15,254.347,-71.9914],[6263.87,-1103.67,53.7333,252.492,-71.7035],[6229.39,-1000.26,53.3,250.539,-71.3971],[6195.96,-901.768,52.8833,248.637,-71.0955],[6160.91,-800.324,52.45,246.634,-70.7743],[6126.95,-703.748,52.0333,244.685,-70.458],[6089.97,-600.524,51.5833,242.555,-70.1078],[6054.07,-502.198,51.15,240.479,-69.7619],[6016.49,-401.221,50.7,238.297,-69.3933],[5978.6,-301.414,50.25,236.091,-69.0148],[5940.4,-202.794,49.8,233.859,-68.626],[5900.47,-101.794,49.3333,231.518,-68.2115],[5860.21,-2.10736,48.8667,229.151,-67.785],[5818.16,99.7337,48.3833,226.672,-67.3301],[5777.24,196.686,47.9167,224.254,-66.8776],[5733.02,299.041,47.4167,221.637,-66.3777],[5688.44,399.796,46.9167,218.992,-65.8614],[5643.48,498.93,46.4167,216.322,-65.328],[5596.63,599.639,45.9,213.537,-64.7581],[5549.4,698.565,45.3833,210.727,-64.1681],[5500.23,798.784,44.85,207.802,-63.537],[5450.64,897.047,44.3167,204.853,-62.8824],[5397.5,999.277,43.75,201.697,-62.1596],[5343.9,1099.23,43.1833,198.52,-61.4073],[5288.24,1199.72,42.6,195.23,-60.6002],[5232.1,1297.73,42.0167,191.923,-59.7582],[5172.23,1398.6,41.4,188.413,-58.8277],[5110.2,1499.23,40.7667,184.798,-57.8264],[5045.95,1599.32,40.1167,181.083,-56.7475],[4979.46,1698.6,39.45,177.274,-55.5834],[4909,1799.08,38.75,173.285,-54.2944],[4836.19,1897.92,38.0333,169.22,-52.8989],[4757.56,1999.06,37.2667,164.908,-51.3152]]], + [60,2994.34,[[6401.19,-2001.83,57.7667,268.34,-74.5066],[6373.61,-1903.03,57.3833,266.798,-74.2901],[6344.6,-1800.65,56.9833,265.169,-74.0596],[6316.58,-1703.24,56.6,263.587,-73.8343],[6287.11,-1602.34,56.2,261.914,-73.5944],[6257.41,-1502.21,55.8,260.22,-73.3495],[6227.47,-1402.86,55.4,258.504,-73.0993],[6196.04,-1300.22,54.9833,256.692,-72.8331],[6165.62,-1202.51,54.5833,254.931,-72.5718],[6133.68,-1101.59,54.1667,253.072,-72.2936],[6101.49,-1001.57,53.75,251.19,-72.009],[6069.04,-902.467,53.3333,249.284,-71.7177],[6035.02,-800.381,52.9,247.277,-71.4076],[6002.04,-703.179,52.4833,245.324,-71.1021],[5967.48,-603.1,52.05,243.267,-70.7766],[5931.29,-500.28,51.6,241.105,-70.4298],[5896.16,-402.35,51.1667,238.997,-70.0872],[5859.39,-301.793,50.7167,236.783,-69.722],[5822.32,-202.415,50.2667,234.542,-69.3468],[5783.56,-100.62,49.8,232.191,-68.9468],[5744.48,-0.129281,49.3333,229.814,-68.5352],[5705.08,99.0371,48.8667,227.409,-68.1115],[5665.36,196.86,48.4,224.978,-67.6752],[5623.89,296.74,47.9167,222.434,-67.2095],[5580.64,398.503,47.4167,219.774,-66.7122],[5537.02,498.655,46.9167,217.087,-66.1984],[5493.04,597.172,46.4167,214.373,-65.6673],[5447.22,697.232,45.9,211.542,-65.0994],[5399.52,798.634,45.3667,208.593,-64.4919],[5351.42,898.094,44.8333,205.619,-63.8616],[5301.39,998.598,44.2833,202.527,-63.1864],[5249.4,1099.92,43.7167,199.316,-62.4627],[5196.97,1198.95,43.15,196.084,-61.7087],[5142.53,1298.47,42.5667,192.737,-60.8991],[5086.04,1398.22,41.9667,189.276,-60.029],[5027.49,1497.95,41.35,185.705,-59.0927],[4965.21,1599.95,40.7,181.929,-58.0568],[4902.37,1698.71,40.05,178.149,-56.9671],[4835.71,1798.99,39.3667,174.176,-55.7599],[4766.8,1897.88,38.6667,170.117,-54.4528],[4692.28,1999.47,37.9167,165.791,-52.9678]]], + [61,3050.01,[[6257.04,-2003.01,58.1833,268.9,-75.0143],[6230.29,-1903.75,57.8,267.359,-74.8051],[6202.15,-1800.9,57.4,265.729,-74.5825],[6174.97,-1703.03,57.0167,264.146,-74.3649],[6146.38,-1601.65,56.6167,262.472,-74.1331],[6117.57,-1501.02,56.2167,260.776,-73.8965],[6088.52,-1401.18,55.8167,259.058,-73.6549],[6059.25,-1302.13,55.4167,257.317,-73.4081],[6029.75,-1203.87,55.0167,255.553,-73.156],[5998.78,-1102.38,54.6,253.693,-72.8874],[5967.55,-1001.79,54.1833,251.807,-72.6127],[5936.08,-902.098,53.7667,249.898,-72.3317],[5904.36,-803.329,53.35,247.965,-72.0439],[5871.1,-701.599,52.9167,245.928,-71.7374],[5837.58,-600.893,52.4833,243.866,-71.4232],[5803.78,-501.226,52.05,241.778,-71.1011],[5769.72,-402.613,51.6167,239.664,-70.7707],[5734.06,-301.339,51.1667,237.443,-70.4185],[5698.11,-201.236,50.7167,235.194,-70.0567],[5661.87,-102.32,50.2667,232.919,-69.6849],[5623.98,-1.01331,49.8,230.532,-69.2884],[5585.78,98.9782,49.3333,228.117,-68.8802],[5547.28,197.635,48.8667,225.674,-68.4598],[5507.07,298.389,48.3833,223.117,-68.011],[5466.53,397.669,47.9,220.531,-67.548],[5424.25,498.799,47.4,217.828,-67.0533],[5381.62,598.306,46.9,215.096,-66.542],[5337.2,699.398,46.3833,212.245,-65.9951],[5292.41,798.706,45.8667,209.367,-65.4287],[5245.79,899.317,45.3333,206.368,-64.8222],[5198.77,997.97,44.8,203.343,-64.1926],[5149.89,1097.62,44.25,200.198,-63.5177],[5099.09,1198.06,43.6833,196.933,-62.7936],[5046.34,1299.03,43.1,193.548,-62.0159],[4993.15,1397.52,42.5167,190.142,-61.2036],[4936.42,1498.9,41.9,186.523,-60.3047],[4879.2,1597.42,41.2833,182.888,-59.362],[4818.35,1698.12,40.6333,179.046,-58.3177],[4755.39,1798.01,39.9667,175.101,-57.189],[4688.67,1899.14,39.2667,170.96,-55.9364],[4619.74,1998.63,38.55,166.733,-54.5773]]], + [62,3104.5,[[6106.98,-2002.85,58.5833,269.427,-75.5168],[6081.05,-1903.17,58.2,267.886,-75.3149],[6054.92,-1804.16,57.8167,266.323,-75.1091],[6027.44,-1701.56,57.4167,264.671,-74.8899],[6000.9,-1603.94,57.0333,263.066,-74.6756],[5972.98,-1502.82,56.6333,261.37,-74.4474],[5944.84,-1402.48,56.2333,259.65,-74.2144],[5916.48,-1302.91,55.8333,257.908,-73.9764],[5886.7,-1200.04,55.4167,256.068,-73.723],[5857.89,-1102.11,55.0167,254.279,-73.4742],[5827.63,-1000.96,54.6,252.391,-73.2093],[5797.14,-900.715,54.1833,250.478,-72.9382],[5766.4,-801.383,53.7667,248.541,-72.6607],[5735.42,-702.977,53.35,246.578,-72.3766],[5702.95,-601.632,52.9167,244.512,-72.0739],[5670.21,-501.319,52.4833,242.419,-71.7635],[5637.21,-402.053,52.05,240.299,-71.4451],[5602.66,-300.094,51.6,238.071,-71.1057],[5569.13,-203.01,51.1667,235.898,-70.7701],[5534.03,-103.349,50.7167,233.616,-70.4122],[5497.34,-1.26118,50.25,231.22,-70.0304],[5460.34,99.5206,49.7833,228.795,-69.6373],[5423.04,198.977,49.3167,226.341,-69.2326],[5385.45,297.088,48.85,223.86,-68.8156],[5346.19,397.265,48.3667,221.261,-68.3702],[5305.25,499.334,47.8667,218.543,-67.8943],[5263.96,599.789,47.3667,215.795,-67.4023],[5222.34,698.608,46.8667,213.018,-66.8934],[5178.97,798.976,46.35,210.12,-66.3489],[5135.25,897.544,45.8333,207.193,-65.7844],[5089.74,997.377,45.3,204.144,-65.1798],[5042.41,1098.26,44.75,200.972,-64.5315],[4993.24,1199.98,44.1833,197.675,-63.8358],[4943.64,1299.39,43.6167,194.353,-63.1103],[4892.15,1399.3,43.0333,190.908,-62.3305],[4838.74,1499.46,42.4333,187.344,-61.4911],[4783.36,1599.59,41.8167,183.66,-60.5867],[4725.99,1699.42,41.1833,179.861,-59.6106],[4666.6,1798.68,40.5333,175.951,-58.5559],[4603.6,1899.47,39.85,171.836,-57.3849],[4538.48,1998.88,39.15,167.623,-56.1143]]], + [63,3157.74,[[5951.12,-2001.38,58.9667,269.921,-76.015],[5926.02,-1901.29,58.5833,268.379,-75.8203],[5900.73,-1801.86,58.2,266.815,-75.6217],[5875.24,-1703.11,57.8167,265.231,-75.4192],[5848.42,-1600.79,57.4167,263.556,-75.2037],[5822.53,-1503.45,57.0333,261.928,-74.9928],[5795.3,-1402.62,56.6333,260.208,-74.7682],[5767.85,-1302.57,56.2333,258.464,-74.5389],[5740.18,-1203.3,55.8333,256.697,-74.3045],[5711.14,-1100.75,55.4167,254.831,-74.0549],[5683.03,-1003.13,55.0167,253.016,-73.8099],[5653.52,-902.32,54.6,251.101,-73.5489],[5623.78,-802.415,54.1833,249.16,-73.2817],[5593.8,-703.431,53.7667,247.195,-73.0082],[5562.38,-601.477,53.3333,245.124,-72.7167],[5530.7,-500.548,52.9,243.025,-72.4178],[5498.76,-400.659,52.4667,240.901,-72.1113],[5466.58,-301.826,52.0333,238.749,-71.7967],[5432.88,-200.324,51.5833,236.486,-71.4613],[5400.18,-103.69,51.15,234.28,-71.1296],[5364.68,-0.854418,50.6833,231.876,-70.7623],[5330.17,97.0793,50.2333,229.529,-70.3979],[5294.09,197.347,49.7667,227.066,-70.0088],[5256.42,299.788,49.2833,224.485,-69.5935],[5219.75,397.316,48.8167,221.964,-69.1799],[5181.47,496.877,48.3333,219.323,-68.738],[5141.54,598.296,47.8333,216.56,-68.2656],[5101.29,698.088,47.3333,213.767,-67.7768],[5059.35,799.474,46.8167,210.851,-67.2539],[5017.06,899.071,46.3,207.904,-66.7117],[4973.04,999.978,45.7667,204.831,-66.1309],[4928.66,1098.92,45.2333,201.729,-65.5272],[4882.51,1198.87,44.6833,198.502,-64.8795],[4834.56,1299.61,44.1167,195.148,-64.1839],[4786.21,1398.03,43.55,191.768,-63.4578],[4734.58,1499.67,42.95,188.164,-62.6536],[4682.5,1598.65,42.35,184.536,-61.8107],[4628.52,1697.55,41.7333,180.787,-60.9014],[4571.12,1798.65,41.0833,176.82,-59.8924],[4511.74,1898.93,40.4167,172.738,-58.7996],[4450.32,1998.1,39.7333,168.55,-57.6142]]], + [64,3209.67,[[5790.58,-2003.05,59.35,270.447,-76.5177],[5766.32,-1902.55,58.9667,268.905,-76.3301],[5741.87,-1802.71,58.5833,267.342,-76.1389],[5717.22,-1703.53,58.2,265.758,-75.944],[5691.31,-1600.77,57.8,264.081,-75.7364],[5666.27,-1502.99,57.4167,262.453,-75.5334],[5639.95,-1401.7,57.0167,260.731,-75.3172],[5613.41,-1301.19,56.6167,258.986,-75.0963],[5586.67,-1201.45,56.2167,257.216,-74.8707],[5559.71,-1102.52,55.8167,255.424,-74.6401],[5531.41,-1000.31,55.4,253.531,-74.3945],[5504.03,-903.033,55,251.689,-74.1533],[5475.29,-802.583,54.5833,249.746,-73.8963],[5446.31,-703.046,54.1667,247.777,-73.6331],[5415.94,-600.512,53.7333,245.702,-73.3527],[5386.5,-502.882,53.3167,243.68,-73.0764],[5355.65,-402.359,52.8833,241.551,-72.7818],[5324.54,-302.885,52.45,239.394,-72.4795],[5291.98,-200.71,52,237.125,-72.1571],[5260.38,-103.42,51.5667,234.913,-71.8383],[5227.31,-3.54668,51.1167,232.587,-71.498],[5192.72,98.7594,50.65,230.145,-71.135],[5157.86,199.757,50.1833,227.672,-70.761],[5122.72,299.427,49.7167,225.17,-70.3757],[5087.29,397.75,49.25,222.637,-69.9786],[5050.3,498.143,48.7667,219.984,-69.5541],[5013.02,597.049,48.2833,217.3,-69.1158],[4974.13,697.776,47.7833,214.492,-68.6469],[4934.93,796.863,47.2833,211.653,-68.1616],[4894.09,897.506,46.7667,208.688,-67.6419],[4851.58,999.504,46.2333,205.594,-67.0851],[4808.71,1099.55,45.7,202.47,-66.5064],[4765.49,1197.62,45.1667,199.315,-65.9045],[4719.19,1299.62,44.6,195.932,-65.2382],[4672.5,1399.32,44.0333,192.52,-64.5425],[4624.03,1499.51,43.45,188.979,-63.7938],[4573.75,1599.94,42.85,185.311,-62.9869],[4523.04,1697.68,42.25,181.619,-62.1402],[4469.06,1797.89,41.6167,177.701,-61.2003],[4413.18,1897.51,40.9667,173.662,-60.1826],[4353.92,1998.68,40.2833,169.405,-59.0505]]], + [65,3260.25,[[5624.33,-2003.52,59.7167,270.94,-77.0166],[5600.91,-1902.62,59.3333,269.398,-76.8363],[5577.31,-1802.38,58.95,267.835,-76.6524],[5553.52,-1702.8,58.5667,266.25,-76.4648],[5529.54,-1603.9,58.1833,264.644,-76.2736],[5504.33,-1501.42,57.7833,262.944,-76.0699],[5479.97,-1403.93,57.4,261.293,-75.8707],[5454.36,-1302.94,57,259.547,-75.6584],[5428.55,-1202.73,56.6,257.776,-75.4416],[5402.53,-1103.31,56.2,255.982,-75.22],[5375.22,-1000.6,55.7833,254.087,-74.984],[5348.79,-902.828,55.3833,252.243,-74.7522],[5321.04,-801.859,54.9667,250.297,-74.5052],[5293.07,-701.797,54.55,248.324,-74.2523],[5264.89,-602.656,54.1333,246.326,-73.9934],[5235.34,-500.542,53.7,244.219,-73.7173],[5206.7,-403.324,53.2833,242.167,-73.4452],[5176.69,-303.238,52.85,240.006,-73.1549],[5145.27,-200.421,52.4,237.731,-72.8454],[5114.77,-102.505,51.9667,235.513,-72.5393],[5082.84,-1.97585,51.5167,233.18,-72.2126],[5050.67,97.3626,51.0667,230.817,-71.8766],[5017.03,199.103,50.6,228.336,-71.5179],[4983.12,299.525,50.1333,225.824,-71.1483],[4948.94,398.608,49.6667,223.281,-70.7673],[4913.25,499.797,49.1833,220.616,-70.3601],[4877.27,599.506,48.7,217.918,-69.9395],[4841,697.715,48.2167,215.19,-69.5048],[4803.18,797.708,47.7167,212.335,-69.0397],[4763.78,899.296,47.2,209.352,-68.5415],[4724.05,999.092,46.6833,206.336,-68.0247],[4684,1097.07,46.1667,203.289,-67.4881],[4641.02,1199.34,45.6167,200.011,-66.894],[4597.67,1299.49,45.0667,196.702,-66.2748],[4553.97,1397.48,44.5167,193.361,-65.6291],[4507.24,1499.02,43.9333,189.788,-64.9134],[4460.11,1598.07,43.35,186.185,-64.1638],[4411.23,1697.31,42.75,182.451,-63.3551],[4359.18,1799.11,42.1167,178.485,-62.457],[4306.7,1897.83,41.4833,174.497,-61.5099],[4250.97,1998.38,40.8167,170.28,-60.4558]]], + [66,3309.38,[[5452.48,-2002.87,60.0667,271.4,-77.5128],[5429.9,-1901.6,59.6833,269.858,-77.3395],[5407.14,-1800.99,59.3,268.295,-77.1628],[5384.2,-1701.03,58.9167,266.709,-76.9827],[5361.09,-1601.74,58.5333,265.102,-76.7989],[5337.79,-1503.13,58.15,263.472,-76.6115],[5313.3,-1400.96,57.75,261.749,-76.4118],[5289.64,-1303.77,57.3667,260.074,-76.2165],[5264.76,-1203.11,56.9667,258.302,-76.0084],[5239.69,-1103.23,56.5667,256.506,-75.7956],[5213.36,-1000.04,56.15,254.609,-75.5691],[5187.88,-901.796,55.75,252.763,-75.3466],[5161.14,-800.333,55.3333,250.814,-75.1095],[5135.26,-703.777,54.9333,248.918,-74.8766],[5107.01,-600.127,54.5,246.836,-74.6181],[5079.63,-501.411,54.0833,244.806,-74.3634],[5052.03,-403.638,53.6667,242.751,-74.1025],[5023.11,-302.969,53.2333,240.584,-73.8241],[4993.96,-203.351,52.8,238.389,-73.5384],[4963.44,-101.029,52.35,236.08,-73.2337],[4933.82,-3.59946,51.9167,233.827,-72.9321],[4902.82,96.4157,51.4667,231.458,-72.6102],[4870.41,198.866,51,228.969,-72.2665],[4838.9,296.416,50.55,226.538,-71.9251],[4804.8,399.814,50.0667,223.895,-71.5472],[4771.6,498.272,49.6,221.311,-71.1707],[4736.94,598.801,49.1167,218.602,-70.7681],[4702,697.839,48.6333,215.861,-70.352],[4665.57,798.698,48.1333,212.992,-69.9066],[4628.84,897.913,47.6333,210.089,-69.4453],[4590.58,998.683,47.1167,207.056,-68.951],[4552.01,1097.64,46.6,203.989,-68.4377],[4511.86,1197.87,46.0667,200.789,-67.8869],[4470.12,1299.16,45.5167,197.456,-67.2953],[4428.04,1398.3,44.9667,194.088,-66.6782],[4384.32,1498.17,44.4,190.587,-66.014],[4338.94,1598.53,43.8167,186.95,-65.2982],[4291.88,1699.14,43.2167,183.178,-64.5258],[4243.09,1799.72,42.6,179.272,-63.6909],[4192.56,1900,41.9667,175.234,-62.7869],[4140.25,1999.69,41.3167,171.067,-61.8063]]], + [67,3357.05,[[5275.09,-2001.09,60.4,271.827,-78.0068],[5254.3,-1903.88,60.0333,270.353,-77.8478],[5232.4,-1802.88,59.65,268.79,-77.6784],[5210.33,-1702.53,59.2667,267.204,-77.5057],[5188.09,-1602.85,58.8833,265.597,-77.3296],[5165.68,-1503.84,58.5,263.967,-77.1499],[5142.1,-1401.25,58.1,262.242,-76.9584],[5119.33,-1303.65,57.7167,260.567,-76.7712],[5095.39,-1202.56,57.3167,258.794,-76.5717],[5071.26,-1102.25,56.9167,256.996,-76.3677],[5046.94,-1002.73,56.5167,255.174,-76.1593],[5022.44,-904.01,56.1167,253.326,-75.9462],[4996.71,-802.043,55.7,251.375,-75.7191],[4970.77,-700.972,55.2833,249.397,-75.4866],[4944.63,-600.812,54.8667,247.392,-75.2485],[4918.28,-501.575,54.45,245.359,-75.0046],[4891.73,-403.276,54.0333,243.3,-74.7546],[4863.91,-302.053,53.6,241.129,-74.488],[4835.85,-201.874,53.1667,238.929,-74.2144],[4807.58,-102.755,52.7333,236.7,-73.9334],[4777.99,-0.961663,52.2833,234.354,-73.6336],[4748.16,99.6548,51.8333,231.977,-73.3252],[4718.09,199.077,51.3833,229.569,-73.0079],[4687.79,297.286,50.9333,227.131,-72.6813],[4656.11,397.834,50.4667,224.57,-72.3323],[4624.18,497.04,50,221.977,-71.9723],[4590.85,598.353,49.5167,219.257,-71.5874],[4557.25,698.182,49.0333,216.504,-71.1896],[4522.2,799.87,48.5333,213.621,-70.7637],[4486.88,899.922,48.0333,210.703,-70.3226],[4451.26,998.316,47.5333,207.751,-69.8654],[4414.17,1098.22,47.0167,204.666,-69.3752],[4375.57,1199.43,46.4833,201.446,-68.849],[4336.65,1298.67,45.95,198.191,-68.3011],[4296.19,1398.91,45.4,194.799,-67.7121],[4254.15,1499.93,44.8333,191.268,-67.0781],[4211.77,1598.63,44.2667,187.704,-66.4147],[4167.78,1697.75,43.6833,184.003,-65.699],[4120.89,1799.78,43.0667,180.057,-64.9036],[4073.61,1898.92,42.45,176.081,-64.0654],[4024.64,1997.7,41.8167,171.97,-63.1565]]], + [68,3403.18,[[5093.18,-2002.69,60.7333,272.288,-78.5061],[5072.3,-1900.71,60.35,270.746,-78.3469],[5052.18,-1803.77,59.9833,269.251,-78.1918],[5030.97,-1703.05,59.6,267.666,-78.0264],[5009.61,-1603,59.2167,266.058,-77.8578],[4988.08,-1503.61,58.8333,264.428,-77.6858],[4965.43,-1400.63,58.4333,262.702,-77.5025],[4943.56,-1302.65,58.05,261.026,-77.3233],[4920.56,-1201.15,57.65,259.251,-77.1322],[4897.38,-1100.42,57.25,257.452,-76.937],[4874.02,-1000.49,56.85,255.628,-76.7375],[4850.47,-901.347,56.45,253.778,-76.5335],[4826.75,-803.017,56.05,251.903,-76.3249],[4801.84,-701.463,55.6333,249.922,-76.1026],[4776.73,-600.813,55.2167,247.914,-75.8748],[4751.43,-501.082,54.8,245.878,-75.6415],[4725.93,-402.282,54.3833,243.815,-75.4025],[4699.2,-300.534,53.95,241.64,-75.1475],[4673.29,-203.678,53.5333,239.52,-74.896],[4645.1,-100.167,53.0833,237.2,-74.617],[4617.73,-1.57901,52.65,234.935,-74.341],[4589.08,99.6518,52.2,232.552,-74.0463],[4560.21,199.695,51.75,230.138,-73.7431],[4531.11,298.533,51.3,227.692,-73.431],[4500.69,399.739,50.8333,225.122,-73.0975],[4470.03,499.611,50.3667,222.519,-72.7535],[4439.13,598.127,49.9,219.882,-72.3985],[4406.86,698.713,49.4167,217.118,-72.0187],[4374.34,797.801,48.9333,214.319,-71.626],[4340.43,898.708,48.4333,211.388,-71.2053],[4306.25,997.965,47.9333,208.421,-70.7692],[4270.64,1098.77,47.4167,205.32,-70.3016],[4234.74,1197.76,46.9,202.182,-69.8156],[4197.39,1298.01,46.3667,198.906,-69.2936],[4158.56,1399.31,45.8167,195.491,-68.7324],[4119.4,1498.46,45.2667,192.04,-68.1462],[4078.73,1598.34,44.7,188.447,-67.5147],[4036.52,1698.69,44.1167,184.714,-66.8332],[3992.74,1799.28,43.5167,180.838,-66.0967],[3947.37,1899.83,42.9,176.82,-65.2993],[3901.62,1997.46,42.2833,172.772,-64.4577]]], + [69,3447.73,[[4905.87,-2003.3,61.05,272.716,-79.004],[4885.85,-1900.98,60.6667,271.175,-78.8519],[4866.56,-1803.71,60.3,269.68,-78.7035],[4846.23,-1702.64,59.9167,268.095,-78.5455],[4825.75,-1602.23,59.5333,266.487,-78.3843],[4805.1,-1502.49,59.15,264.856,-78.22],[4784.3,-1403.43,58.7667,263.202,-78.0522],[4762.42,-1300.79,58.3667,261.451,-77.8735],[4741.29,-1203.14,57.9833,259.75,-77.6987],[4719.07,-1101.99,57.5833,257.95,-77.5123],[4696.68,-1001.63,57.1833,256.124,-77.3217],[4674.11,-902.06,56.7833,254.273,-77.127],[4651.36,-803.295,56.3833,252.396,-76.9278],[4627.49,-701.283,55.9667,250.413,-76.7155],[4603.42,-600.17,55.55,248.403,-76.498],[4580.14,-503.96,55.15,246.446,-76.2843],[4554.72,-400.696,54.7167,244.297,-76.047],[4530.08,-302.363,54.3,242.202,-75.813],[4504.26,-201.109,53.8667,239.993,-75.5633],[4478.24,-100.902,53.4333,237.754,-75.307],[4452.01,-1.75806,53,235.484,-75.0437],[4425.57,96.3068,52.5667,233.184,-74.7731],[4397.91,196.985,52.1167,230.764,-74.4842],[4370.02,296.464,51.6667,228.312,-74.1867],[4340.88,398.344,51.2,225.735,-73.8689],[4311.5,498.896,50.7333,223.123,-73.5411],[4281.88,598.101,50.2667,220.478,-73.2027],[4250.97,699.406,49.7833,217.703,-72.8408],[4219.8,799.223,49.3,214.892,-72.4664],[4188.39,897.529,48.8167,212.046,-72.079],[4155.64,997.611,48.3167,209.066,-71.6638],[4121.53,1099.28,47.8,205.948,-71.2185],[4087.14,1199.14,47.2833,202.793,-70.7557],[4052.47,1297.17,46.7667,199.602,-70.2744],[4015.27,1399.49,46.2167,196.165,-69.7405],[3977.76,1499.66,45.6667,192.689,-69.1828],[3939.95,1597.66,45.1167,189.177,-68.5999],[3899.52,1699.2,44.5333,185.413,-67.9522],[3858.76,1798.22,43.95,181.612,-67.2719],[3816.49,1897.4,43.35,177.667,-66.5357],[3771.5,1999.13,42.7167,173.466,-65.7154]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 4452.01; +_maxRange = 6817.03; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg6.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg6.sqf new file mode 100644 index 0000000000..6166926218 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg6.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg6 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,2748.22,[[9650.08,-2000.2,55.8833,271.647,-67.2965],[9607.97,-1900.32,55.4833,270.258,-66.9742],[9565.52,-1801.19,55.0833,268.855,-66.6458],[9522.73,-1702.83,54.6833,267.438,-66.3113],[9477.78,-1601.19,54.2667,265.948,-65.9561],[9432.44,-1500.41,53.85,264.442,-65.5938],[9386.73,-1400.49,53.4333,262.922,-65.2243],[9340.64,-1301.44,53.0167,261.388,-64.8473],[9294.17,-1203.29,52.6,259.84,-64.4627],[9245.43,-1102.16,52.1667,258.216,-64.0544],[9196.27,-1002.02,51.7333,256.577,-63.6374],[9146.7,-902.884,51.3,254.925,-63.2115],[9094.78,-801.009,50.85,253.195,-62.7594],[9042.41,-700.246,50.4,251.451,-62.2971],[8989.59,-600.609,49.95,249.693,-61.8243],[8936.32,-502.114,49.5,247.923,-61.3406],[8880.6,-401.194,49.0333,246.075,-60.8273],[8824.39,-301.537,48.5667,244.215,-60.3015],[8767.69,-203.161,48.1,242.343,-59.7631],[8708.45,-102.64,47.6167,240.394,-59.1916],[8646.62,-0.137941,47.1167,238.367,-58.5852],[8586.31,97.4903,46.6333,236.399,-57.9837],[8523.38,196.957,46.1333,234.356,-57.3452],[8457.75,298.084,45.6167,232.237,-56.6676],[8391.53,397.505,45.1,230.113,-55.9712],[8322.54,498.319,44.5667,227.918,-55.2319],[8252.91,597.264,44.0333,225.72,-54.4712],[8180.44,697.315,43.4833,223.455,-53.6637],[8105.06,798.26,42.9167,221.126,-52.8063],[8026.72,899.874,42.3333,218.734,-51.8959],[7947.61,999.123,41.75,216.354,-50.9565],[7865.45,1098.7,41.15,213.921,-49.9588],[7780.17,1198.37,40.5333,211.441,-48.8991],[7691.7,1297.86,39.9,208.921,-47.7735],[7597.61,1399.39,39.2333,206.305,-46.5466],[7502.54,1497.61,38.5667,203.732,-45.2753],[7399.24,1599.44,37.85,201.025,-43.8577],[7292.36,1699.55,37.1167,198.326,-42.351],[7179.36,1799.73,36.35,195.594,-40.7137],[7060.07,1899.3,35.55,192.856,-38.9361],[6931.78,1999.46,34.7,190.09,-36.969]]], + [46,2834.01,[[9577.28,-2000.14,56.5333,272.411,-67.8873],[9537.83,-1903.72,56.15,271.077,-67.587],[9496.32,-1803.84,55.75,269.671,-67.2679],[9452.72,-1700.6,55.3333,268.191,-66.9291],[9410.52,-1602.27,54.9333,266.755,-66.5976],[9366.2,-1500.67,54.5167,265.245,-66.2455],[9323.29,-1403.94,54.1167,263.78,-65.9008],[9276.42,-1300.05,53.6833,262.178,-65.52],[9230.98,-1201.05,53.2667,260.623,-65.1461],[9185.15,-1102.95,52.85,259.053,-64.7647],[9137.1,-1001.88,52.4167,257.405,-64.3596],[9088.64,-901.799,51.9833,255.743,-63.9459],[9039.76,-802.724,51.55,254.066,-63.5231],[8988.58,-700.918,51.1,252.31,-63.0744],[8936.95,-600.226,50.65,250.539,-62.6153],[8884.88,-500.664,50.2,248.754,-62.1458],[8832.37,-402.249,49.75,246.956,-61.6653],[8777.44,-301.415,49.2833,245.079,-61.1552],[8722.03,-201.849,48.8167,243.188,-60.6327],[8664.14,-100.082,48.3333,241.217,-60.0781],[8607.75,-3.14935,47.8667,239.303,-59.5291],[8546.81,99.2404,47.3667,237.242,-58.9258],[8487.38,196.755,46.8833,235.239,-58.3273],[8423.28,299.384,46.3667,233.089,-57.6703],[8360.68,397.094,45.8667,231.001,-57.0169],[8293.31,499.551,45.3333,228.768,-56.3004],[8227.45,597.041,44.8167,226.6,-55.5863],[8156.69,698.886,44.2667,224.289,-54.8038],[8085.26,798.707,43.7167,221.979,-53.9976],[8010.98,899.407,43.15,219.601,-53.1412],[7935.99,997.896,42.5833,217.229,-52.2577],[7855.83,1099.74,41.9833,214.728,-51.2918],[7774.88,1199.03,41.3833,212.241,-50.2935],[7690.86,1298.38,40.7667,209.704,-49.2326],[7603.71,1397.54,40.1333,207.125,-48.105],[7511.03,1498.72,39.4667,204.445,-46.8749],[7415.04,1598.97,38.7833,201.742,-45.5668],[7315.66,1697.98,38.0833,199.029,-44.1757],[7208.01,1799.87,37.3333,196.194,-42.6263],[7096.72,1899.47,36.5667,193.387,-40.9776],[6979.25,1998.42,35.7667,190.569,-39.1859]]], + [47,2919.44,[[9498.58,-2002.56,57.1833,273.211,-68.4765],[9458.32,-1901.25,56.7833,271.817,-68.1718],[9417.74,-1800.67,56.3833,270.408,-67.8615],[9376.81,-1700.84,55.9833,268.984,-67.5452],[9335.56,-1601.77,55.5833,267.544,-67.223],[9293.96,-1503.47,55.1833,266.09,-66.8946],[9250.28,-1401.9,54.7667,264.56,-66.5459],[9206.23,-1301.19,54.35,263.014,-66.1901],[9161.81,-1201.35,53.9333,261.452,-65.827],[9117.02,-1102.39,53.5167,259.875,-65.4566],[9070.05,-1000.42,53.0833,258.22,-65.0632],[9024.51,-903.292,52.6667,256.613,-64.6769],[8976.76,-803.259,52.2333,254.926,-64.2666],[8926.74,-700.445,51.7833,253.16,-63.831],[8878.17,-602.481,51.35,251.443,-63.4021],[8827.3,-501.847,50.9,249.646,-62.9467],[8775.99,-402.347,50.45,247.834,-62.4806],[8722.33,-300.376,49.9833,245.94,-61.9858],[8670.14,-203.235,49.5333,244.1,-61.4972],[8613.59,-100.215,49.05,242.111,-60.9594],[8558.52,-2.0594,48.5833,240.176,-60.4272],[8500.99,98.223,48.1,238.161,-59.8618],[8442.95,197.083,47.6167,236.134,-59.2818],[8382.38,297.835,47.1167,234.026,-58.6658],[8321.26,397.021,46.6167,231.908,-58.033],[8257.55,497.846,46.1,229.712,-57.3608],[8193.26,596.953,45.5833,227.508,-56.6694],[8126.29,697.428,45.05,225.228,-55.9349],[8056.59,799.07,44.5,222.872,-55.1545],[7986.23,898.681,43.95,220.516,-54.3499],[7913.07,999.156,43.3833,218.09,-53.4949],[7839.22,1097.41,42.8167,215.669,-52.6124],[7760.27,1198.99,42.2167,213.114,-51.6471],[7680.55,1298.02,41.6167,210.572,-50.6487],[7595.57,1399.73,40.9833,207.908,-49.5578],[7509.74,1498.51,40.35,205.269,-48.4275],[7418.48,1599.27,39.6833,202.525,-47.1937],[7323.96,1699.08,39,199.756,-45.8805],[7223.77,1799.93,38.2833,196.909,-44.4489],[7120.14,1899,37.55,194.065,-42.9246],[7010.59,1998.05,36.7833,191.18,-41.2651]]], + [48,3004.45,[[9412.32,-2003.32,57.8167,273.989,-69.0512],[9372.98,-1901.31,57.4167,272.593,-68.7552],[9333.31,-1800.04,57.0167,271.182,-68.4536],[9294.99,-1703.67,56.6333,269.815,-68.1592],[9254.68,-1603.86,56.2333,268.373,-67.8464],[9212.34,-1500.69,55.8167,266.855,-67.5141],[9171.36,-1402.43,55.4167,265.381,-67.1889],[9128.32,-1300.91,55,263.831,-66.8433],[9084.92,-1200.25,54.5833,262.264,-66.4908],[9041.15,-1100.47,54.1667,260.681,-66.131],[8997.03,-1001.57,53.75,259.082,-65.7638],[8952.54,-903.565,53.3333,257.468,-65.389],[8905.89,-802.606,52.9,255.774,-64.9908],[8858.84,-702.644,52.4667,254.063,-64.5839],[8811.4,-603.694,52.0333,252.337,-64.168],[8761.72,-502.025,51.5833,250.528,-63.7263],[8711.61,-401.477,51.1333,248.704,-63.2743],[8661.07,-302.066,50.6833,246.864,-62.8117],[8608.22,-200.193,50.2167,244.941,-62.3203],[8556.81,-103.15,49.7667,243.072,-61.8351],[8501.12,-0.24007,49.2833,241.05,-61.3009],[8446.87,97.8041,48.8167,239.084,-60.7719],[8390.21,197.966,48.3333,237.035,-60.21],[8333.05,296.701,47.85,234.974,-59.6332],[8273.4,397.317,47.35,232.83,-59.0204],[8211.21,499.637,46.8333,230.603,-58.3694],[8150.49,597.036,46.3333,228.439,-57.7215],[8085.13,699.147,45.8,226.122,-57.0105],[8019.18,799.394,45.2667,223.799,-56.278],[7952.62,897.75,44.7333,221.471,-55.5233],[7883.36,997.17,44.1833,219.068,-54.721],[7811.34,1097.44,43.6167,216.593,-53.8679],[7736.49,1198.33,43.0333,214.049,-52.9606],[7658.76,1299.61,42.4333,211.441,-51.9954],[7580.29,1398.32,41.8333,208.844,-50.9965],[7496.64,1499.69,41.2,206.121,-49.9044],[7412.15,1598.11,40.5667,203.422,-48.772],[7322.33,1698.48,39.9,200.613,-47.5349],[7229.31,1797.88,39.2167,197.777,-46.2173],[7130.72,1898.28,38.5,194.857,-44.7794],[7026.42,1999.07,37.75,191.873,-43.2116]]], + [49,3088.93,[[9318.56,-2002.42,58.4333,274.743,-69.6128],[9281.73,-1904.01,58.05,273.405,-69.3372],[9242.99,-1802.03,57.65,271.992,-69.0444],[9203.93,-1700.79,57.25,270.564,-68.746],[9164.54,-1600.28,56.85,269.119,-68.442],[9124.83,-1500.52,56.45,267.659,-68.1322],[9084.8,-1401.53,56.05,266.182,-67.8164],[9044.44,-1303.31,55.65,264.69,-67.4944],[9002.06,-1201.83,55.2333,263.119,-67.1524],[8959.32,-1101.22,54.8167,261.531,-66.8033],[8916.23,-1001.48,54.4,259.927,-66.447],[8872.78,-902.626,53.9833,258.307,-66.0833],[8827.21,-800.774,53.55,256.605,-65.697],[8783.04,-703.771,53.1333,254.952,-65.3175],[8734.93,-600.047,52.6833,253.151,-64.8985],[8688.21,-501.199,52.25,251.399,-64.4859],[8641.1,-403.38,51.8167,249.632,-64.064],[8591.76,-302.905,51.3667,247.78,-63.6157],[8542.01,-203.571,50.9167,245.913,-63.1568],[8489.97,-101.78,50.45,243.96,-62.6693],[8437.49,-1.25281,49.9833,241.991,-62.1696],[8384.55,97.994,49.5167,240.008,-61.6574],[8329.24,199.416,49.0333,237.939,-61.1131],[8273.45,299.425,48.55,235.856,-60.5543],[8217.18,398.001,48.0667,233.759,-59.9807],[8158.45,498.447,47.5667,231.578,-59.371],[8099.21,597.315,47.0667,229.385,-58.7442],[8037.45,697.799,46.55,227.109,-58.0779],[7973.12,799.708,46.0167,224.75,-57.3696],[7908.2,899.744,45.4833,222.384,-56.6396],[7842.69,997.882,44.95,220.012,-55.8871],[7774.53,1097.07,44.4,217.562,-55.0868],[7701.55,1200,43.8167,214.964,-54.2098],[7630,1297.72,43.25,212.443,-53.3292],[7553.51,1398.71,42.65,209.779,-52.3647],[7474.14,1499.83,42.0333,207.053,-51.3377],[7394,1598.18,41.4167,204.344,-50.2731],[7308.69,1698.81,40.7667,201.511,-49.1088],[7220.32,1798.73,40.1,198.638,-47.8679],[7128.8,1897.66,39.4167,195.733,-46.545],[7029.55,1999.82,38.6833,192.673,-45.0659]]], + [50,3172.81,[[9218.93,-2004.25,59.05,275.531,-70.1734],[9181.4,-1900.91,58.65,274.134,-69.8941],[9145.14,-1802.54,58.2667,272.779,-69.6215],[9106.99,-1700.61,57.8667,271.349,-69.3318],[9070.14,-1603.61,57.4833,269.963,-69.0491],[9031.38,-1503.12,57.0833,268.501,-68.7485],[8992.29,-1403.39,56.6833,267.023,-68.4422],[8951.25,-1300.31,56.2667,265.465,-68.1167],[8911.52,-1202.15,55.8667,263.953,-67.798],[8869.79,-1100.74,55.45,262.362,-67.4594],[8827.72,-1000.19,55.0333,260.753,-67.1137],[8785.3,-900.518,54.6167,259.127,-66.7609],[8742.53,-801.738,54.2,257.485,-66.4006],[8699.41,-703.861,53.7833,255.826,-66.0327],[8654.2,-603.04,53.35,254.083,-65.6418],[8608.6,-503.223,52.9167,252.323,-65.2421],[8560.85,-400.646,52.4667,250.478,-64.8175],[8514.49,-302.921,52.0333,248.685,-64.3991],[8465.93,-202.545,51.5833,246.806,-63.9545],[8416.97,-103.316,51.1333,244.91,-63.4992],[8365.76,-1.63881,50.6667,242.927,-63.0155],[8314.11,98.771,50.2,240.928,-62.5195],[8262.01,197.895,49.7333,238.913,-62.0108],[8207.59,299.185,49.25,236.811,-61.4702],[8152.69,399.057,48.7667,234.693,-60.915],[8097.32,497.49,48.2833,232.562,-60.3449],[8039.54,597.782,47.7833,230.343,-59.7387],[7979.31,699.754,47.2667,228.038,-59.0942],[7920.5,796.804,46.7667,225.796,-58.4523],[7857.21,898.528,46.2333,223.395,-57.7472],[7793.35,998.374,45.7,220.985,-57.0202],[7726.9,1099.34,45.15,218.493,-56.2466],[7659.84,1198.26,44.6,215.996,-55.448],[7590.1,1297.98,44.0333,213.422,-54.5978],[7517.65,1398.3,43.45,210.774,-53.6926],[7442.42,1498.96,42.85,208.056,-52.7285],[7364.36,1599.73,42.2333,205.272,-51.7012],[7285.54,1697.71,41.6167,202.504,-50.6355],[7201.65,1797.94,40.9667,199.608,-49.4691],[7112.56,1899.9,40.2833,196.596,-48.1932],[7022.56,1998.29,39.6,193.624,-46.8644]]], + [51,3256.04,[[9110.3,-2000.16,59.6333,276.235,-70.7105],[9075.18,-1900.52,59.25,274.896,-70.4506],[9039.79,-1801.53,58.8667,273.541,-70.186],[9004.11,-1703.2,58.4833,272.17,-69.9166],[8966.58,-1601.3,58.0833,270.723,-69.6303],[8928.74,-1500.14,57.6833,269.259,-69.3385],[8892.18,-1403.89,57.3,267.84,-69.0536],[8852.12,-1300.06,56.8833,266.28,-68.738],[8813.35,-1201.17,56.4833,264.765,-68.4288],[8774.26,-1103.05,56.0833,263.234,-68.1136],[8733.21,-1001.69,55.6667,261.622,-67.7786],[8691.82,-901.197,55.25,259.992,-67.4367],[8650.09,-801.584,54.8333,258.344,-67.0875],[8608.02,-702.865,54.4167,256.68,-66.7309],[8563.9,-601.157,53.9833,254.93,-66.3519],[8519.41,-500.444,53.55,253.163,-65.9645],[8474.55,-400.739,53.1167,251.378,-65.5683],[8429.32,-302.057,52.6833,249.575,-65.1631],[8381.95,-200.677,52.2333,247.686,-64.7324],[8334.18,-100.431,51.7833,245.778,-64.2914],[8286.01,-1.33536,51.3333,243.854,-63.8397],[8237.43,96.5938,50.8833,241.913,-63.3769],[8186.63,196.9,50.4167,239.883,-62.8849],[8133.57,299.429,49.9333,237.763,-62.362],[8081.89,397.091,49.4667,235.7,-61.8437],[8027.91,496.841,48.9833,233.548,-61.2925],[7971.57,598.511,48.4833,231.307,-60.7065],[7914.75,698.614,47.9833,229.051,-60.1037],[7857.42,797.127,47.4833,226.781,-59.4835],[7797.67,897.23,46.9667,224.424,-58.8236],[7735.44,998.732,46.4333,221.979,-58.1215],[7672.64,1098.35,45.9,219.525,-57.3973],[7607.3,1199.07,45.35,216.986,-56.6263],[7541.36,1297.72,44.8,214.442,-55.8299],[7472.81,1397.18,44.2333,211.818,-54.9817],[7401.58,1497.21,43.65,209.118,-54.078],[7327.63,1597.56,43.05,206.344,-53.1148],[7250.89,1698,42.4333,203.502,-52.0878],[7171.32,1798.24,41.8,200.597,-50.9923],[7088.86,1898.02,41.15,197.638,-49.8233],[7001.3,1999.48,40.4667,194.558,-48.5434]]], + [52,3338.49,[[8997.35,-2003.27,60.2333,277.03,-71.2584],[8963.1,-1903.01,59.85,275.691,-71.0064],[8928.57,-1803.39,59.4667,274.336,-70.7498],[8892.25,-1700.13,59.0667,272.905,-70.477],[8857.16,-1601.85,58.6833,271.518,-70.2108],[8820.24,-1500.01,58.2833,270.053,-69.9279],[8784.58,-1403.1,57.9,268.633,-69.6516],[8747.07,-1302.71,57.5,267.134,-69.3578],[8709.25,-1203.08,57.1,265.618,-69.0583],[8669.54,-1100.12,56.6833,264.02,-68.74],[8631.1,-1002.08,56.2833,262.469,-68.4282],[8590.73,-900.792,55.8667,260.835,-68.0968],[8550.02,-800.376,55.45,259.184,-67.7584],[8508.99,-700.845,55.0333,257.514,-67.4128],[8467.61,-602.21,54.6167,255.826,-67.0598],[8424.23,-500.594,54.1833,254.053,-66.6847],[8382.17,-403.828,53.7667,252.33,-66.3159],[8336.37,-300.371,53.3167,250.45,-65.9086],[8291.89,-201.792,52.8833,248.622,-65.5072],[8245.32,-100.523,52.4333,246.705,-65.0804],[8198.36,-0.392255,51.9833,244.769,-64.6433],[8151,98.5835,51.5333,242.815,-64.1954],[8101.47,199.988,51.0667,240.771,-63.7193],[8053.3,296.561,50.6167,238.783,-63.2485],[8001.13,398.946,50.1333,236.63,-62.7296],[7948.51,499.922,49.65,234.459,-62.1965],[7895.43,599.467,49.1667,232.272,-61.6487],[7841.9,697.562,48.6833,230.069,-61.0857],[7786.05,797.493,48.1833,227.775,-60.4867],[7727.83,899.077,47.6667,225.39,-59.8493],[7669.08,998.933,47.15,222.991,-59.1925],[7609.83,1097.04,46.6333,220.581,-58.5154],[7546.19,1199.51,46.0833,218.004,-57.7716],[7481.96,1299.95,45.5333,215.418,-57.003],[7417.16,1398.3,44.9833,212.826,-56.2086],[7349.78,1497.44,44.4167,210.151,-55.362],[7277.78,1599.94,43.8167,207.318,-54.4332],[7205.1,1699.87,43.2167,204.488,-53.4696],[7129.69,1799.85,42.6,201.588,-52.4415],[7051.5,1899.61,41.9667,198.622,-51.344],[6970.47,1998.89,41.3167,195.599,-50.1718]]], + [53,3420.11,[[8875.52,-2000.58,60.8,277.739,-71.7847],[8843.57,-1904.12,60.4333,276.46,-71.5508],[8809.9,-1803.9,60.05,275.106,-71.302],[8775.96,-1704.31,59.6667,273.735,-71.0487],[8740.26,-1601.1,59.2667,272.287,-70.7794],[8705.77,-1502.85,58.8833,270.883,-70.5166],[8669.49,-1401.06,58.4833,269.4,-70.2371],[8632.91,-1300,58.0833,267.9,-69.9523],[8597.57,-1203.86,57.7,266.446,-69.6741],[8558.85,-1100.15,57.2833,264.846,-69.3657],[8521.38,-1001.38,56.8833,263.293,-69.0636],[8483.6,-903.396,56.4833,261.722,-68.7555],[8443.93,-802.172,56.0667,260.067,-68.4279],[8403.93,-701.823,55.65,258.394,-68.0934],[8363.6,-602.361,55.2333,256.702,-67.7517],[8322.95,-503.799,54.8167,254.992,-67.4026],[8280.32,-402.262,54.3833,253.194,-67.0315],[8237.33,-301.727,53.95,251.377,-66.6519],[8193.99,-202.208,53.5167,249.541,-66.2636],[8150.29,-103.718,53.0833,247.687,-65.8662],[8104.54,-2.54619,52.6333,245.742,-65.4437],[8058.39,97.483,52.1833,243.778,-65.0108],[8010.13,199.993,51.7167,241.722,-64.5505],[7963.21,297.644,51.2667,239.721,-64.0954],[7914.13,397.652,50.8,237.628,-63.6112],[7862.87,499.86,50.3167,235.44,-63.0962],[7812.95,597.202,49.85,233.311,-62.5855],[7760.82,696.609,49.3667,231.089,-62.0421],[7706.42,797.912,48.8667,228.773,-61.4638],[7651.55,897.635,48.3667,226.44,-60.8684],[7594.35,998.997,47.85,224.014,-60.2347],[7536.65,1098.62,47.3333,221.574,-59.5814],[7476.55,1199.62,46.8,219.041,-58.8855],[7415.93,1298.71,46.2667,216.497,-58.167],[7352.85,1398.87,45.7167,213.864,-57.4013],[7287.27,1499.89,45.15,211.143,-56.5851],[7221.09,1598.67,44.5833,208.417,-55.7399],[7152.34,1697.97,44,205.608,-54.8382],[7080.97,1797.56,43.4,202.722,-53.876],[7004.92,1899.84,42.7667,199.682,-52.8201],[6928.14,1999.15,42.1333,196.654,-51.7212]]], + [54,3500.81,[[8747.87,-2000.89,61.3667,278.48,-72.3113],[8716.73,-1903.88,61,277.201,-72.0846],[8683.92,-1803.07,60.6167,275.848,-71.8434],[8650.84,-1702.9,60.2333,274.478,-71.5978],[8617.5,-1603.37,59.85,273.091,-71.3478],[8582.43,-1500.22,59.45,271.626,-71.082],[8548.54,-1402.04,59.0667,270.204,-70.8225],[8512.9,-1300.31,58.6667,268.704,-70.5466],[8478.46,-1203.51,58.2833,267.248,-70.2771],[8442.25,-1103.25,57.8833,265.712,-69.9904],[8405.74,-1003.75,57.4833,264.157,-69.6981],[8367.4,-900.923,57.0667,262.519,-69.3873],[8330.29,-803.017,56.6667,260.927,-69.0829],[8291.32,-701.88,56.25,259.251,-68.7591],[8252.03,-601.621,55.8333,257.555,-68.4284],[8212.42,-502.252,55.4167,255.84,-68.0905],[8172.49,-403.787,55,254.107,-67.7453],[8130.62,-302.355,54.5667,252.284,-67.3782],[8088.4,-201.928,54.1333,250.442,-67.0027],[8045.84,-102.521,53.7,248.58,-66.6184],[8001.26,-0.38563,53.25,246.627,-66.2098],[7957.98,96.8981,52.8167,244.727,-65.8068],[7912.67,196.797,52.3667,242.734,-65.3781],[7865.28,299.167,51.9,240.647,-64.9221],[7819.2,396.679,51.45,238.616,-64.4711],[7771.02,496.537,50.9833,236.49,-63.9912],[7720.68,598.585,50.5,234.269,-63.4806],[7669.92,699.212,50.0167,232.029,-62.9557],[7618.72,798.397,49.5333,229.77,-62.4159],[7565.29,899.463,49.0333,227.415,-61.8413],[7511.41,998.942,48.5333,225.044,-61.2496],[7457.06,1096.81,48.0333,222.656,-60.6401],[7398.59,1199.4,47.5,220.093,-59.9694],[7341.44,1296.99,46.9833,217.597,-59.2988],[7280.07,1398.91,46.4333,214.926,-58.5613],[7218.15,1498.76,45.8833,212.244,-57.7984],[7153.77,1599.45,45.3167,209.472,-56.9846],[7088.81,1697.88,44.75,206.694,-56.1414],[7019.4,1799.62,44.15,203.75,-55.2151],[6949.34,1898.75,43.55,200.806,-54.2528],[6876.67,1997.89,42.9333,197.785,-53.2244]]], + [55,3580.5,[[8614.32,-2004.29,61.9333,279.251,-72.8383],[8582.61,-1902.3,61.55,277.915,-72.6086],[8550.64,-1800.94,61.1667,276.563,-72.3749],[8518.42,-1700.2,60.7833,275.194,-72.1369],[8485.93,-1600.1,60.4,273.807,-71.8945],[8453.19,-1500.65,60.0167,272.403,-71.6478],[8420.19,-1401.86,59.6333,270.982,-71.3965],[8386.93,-1303.73,59.25,269.544,-71.1405],[8351.94,-1202.05,58.85,268.025,-70.8683],[8316.66,-1101.12,58.45,266.487,-70.5908],[8281.1,-1000.95,58.05,264.931,-70.3077],[8245.26,-901.545,57.65,263.356,-70.0189],[8209.12,-802.918,57.25,261.763,-69.7243],[8171.17,-701.022,56.8333,260.084,-69.411],[8134.45,-604.019,56.4333,258.453,-69.104],[8095.89,-503.838,56.0167,256.735,-68.7774],[8055.45,-400.598,55.5833,254.928,-68.4301],[8016.25,-302.254,55.1667,253.171,-68.0888],[7975.15,-200.953,54.7333,251.323,-67.7257],[7933.71,-100.661,54.3,249.454,-67.3542],[7891.92,-1.39257,53.8667,247.566,-66.9739],[7849.8,96.8371,53.4333,245.658,-66.5846],[7805.69,197.73,52.9833,243.656,-66.1704],[7761.21,297.47,52.5333,241.634,-65.7458],[7714.7,399.671,52.0667,239.516,-65.2942],[7669.47,497.013,51.6167,237.453,-64.8473],[7622.18,596.691,51.15,235.295,-64.3716],[7572.79,698.546,50.6667,233.039,-63.8653],[7522.97,798.972,50.1833,230.763,-63.3446],[7472.73,897.951,49.7,228.468,-62.809],[7420.31,998.798,49.2,226.075,-62.2387],[7367.44,1098.05,48.7,223.664,-61.651],[7312.34,1198.91,48.1833,221.154,-61.0249],[7256.76,1298.02,47.6667,218.629,-60.3789],[7198.87,1398.46,47.1333,216.007,-59.6901],[7140.49,1496.98,46.6,213.37,-58.9781],[7077.9,1599.53,46.0333,210.557,-58.1951],[7014.74,1699.84,45.4667,207.734,-57.3836],[6951.01,1797.89,44.9,204.903,-56.5422],[6882.92,1899.2,44.3,201.901,-55.6173],[6814.2,1997.9,43.7,198.899,-54.6556]]], + [56,3659.12,[[8472.12,-2001.97,62.4667,279.936,-73.3462],[8442.59,-1903.89,62.1,278.661,-73.1334],[8411.48,-1801.96,61.7167,277.31,-72.9071],[8380.11,-1700.66,61.3333,275.942,-72.6767],[8349.87,-1604.35,60.9667,274.617,-72.4524],[8318.01,-1504.28,60.5833,273.214,-72.2137],[8284.5,-1400.56,60.1833,271.732,-71.9599],[8252.12,-1301.83,59.8,270.294,-71.7121],[8219.48,-1203.78,59.4167,268.838,-71.4597],[8185.16,-1102.18,59.0167,267.3,-71.1912],[8150.55,-1001.33,58.6167,265.744,-70.9174],[8115.67,-901.237,58.2167,264.168,-70.6381],[8080.5,-801.917,57.8167,262.573,-70.3532],[8045.06,-703.378,57.4167,260.959,-70.0624],[8007.84,-601.577,57,259.258,-69.7532],[7970.31,-500.649,56.5833,257.537,-69.4372],[7932.47,-400.605,56.1667,255.796,-69.1144],[7894.32,-301.46,55.75,254.034,-68.7845],[7855.87,-203.225,55.3333,252.253,-68.4473],[7815.56,-102.041,54.9,250.379,-68.0885],[7774.91,-1.87116,54.4667,248.485,-67.7213],[7733.93,97.271,54.0333,246.57,-67.3454],[7691.01,199.122,53.5833,244.56,-66.9454],[7647.75,299.833,53.1333,242.529,-66.5354],[7604.12,399.386,52.6833,240.476,-66.115],[7560.13,497.764,52.2333,238.403,-65.6838],[7514.13,598.529,51.7667,236.232,-65.2247],[7467.75,697.994,51.3,234.04,-64.7532],[7419.3,799.622,50.8167,231.748,-64.2512],[7370.44,899.816,50.3333,229.436,-63.7348],[7321.16,998.555,49.85,227.104,-63.2033],[7269.75,1099.14,49.35,224.671,-62.6371],[7217.91,1198.13,48.85,222.22,-62.0535],[7163.87,1298.71,48.3333,219.668,-61.4314],[7109.37,1397.53,47.8167,217.099,-60.7891],[7052.62,1497.67,47.2833,214.431,-60.104],[6993.58,1598.91,46.7333,211.664,-59.373],[6934.02,1698.07,46.1833,208.884,-58.6159],[6872.11,1798.03,45.6167,206.008,-57.8073],[6807.81,1898.55,45.0333,203.039,-56.9433],[6741.06,1999.39,44.4333,199.98,-56.0194]]], + [57,3736.6,[[8324.04,-2002.86,63,280.65,-73.8553],[8295.32,-1904.28,62.6333,279.377,-73.6495],[8265.05,-1801.81,62.25,278.028,-73.4304],[8235.88,-1704.36,61.8833,276.721,-73.2172],[8205.13,-1603.11,61.5,275.337,-72.9904],[8174.13,-1502.48,61.1167,273.936,-72.7594],[8142.89,-1402.5,60.7333,272.516,-72.5242],[8111.4,-1303.17,60.35,271.079,-72.2846],[8078.28,-1200.23,59.95,269.56,-72.0298],[8046.28,-1102.26,59.5667,268.086,-71.7809],[8012.62,-1000.76,59.1667,266.529,-71.5161],[7978.69,-900.01,58.7667,264.952,-71.2461],[7944.48,-800.023,58.3667,263.356,-70.9706],[7910,-700.81,57.9667,261.741,-70.6894],[7875.25,-602.382,57.5667,260.106,-70.4025],[7838.76,-500.699,57.15,258.382,-70.0973],[7803.44,-403.908,56.75,256.708,-69.7981],[7766.36,-303.955,56.3333,254.944,-69.4796],[7727.48,-200.961,55.9,253.087,-69.141],[7689.78,-102.86,55.4833,251.282,-68.8078],[7650.27,-1.82008,55.05,249.382,-68.4534],[7610.42,98.202,54.6167,247.461,-68.0905],[7570.25,197.191,54.1833,245.519,-67.719],[7528.19,298.879,53.7333,243.48,-67.3235],[7485.78,399.421,53.2833,241.419,-66.918],[7443.02,498.799,52.8333,239.336,-66.5021],[7399.91,596.999,52.3833,237.232,-66.0754],[7354.83,697.572,51.9167,235.028,-65.621],[7309.38,796.84,51.45,232.802,-65.1541],[7261.91,898.257,50.9667,230.475,-64.6568],[7214.03,998.233,50.4833,228.126,-64.1451],[7165.75,1096.75,50,225.757,-63.6182],[7115.39,1197.1,49.5,223.285,-63.0567],[7062.89,1299.11,48.9833,220.71,-62.458],[7009.94,1399.37,48.4667,218.115,-61.8399],[6956.54,1497.86,47.95,215.502,-61.2014],[6900.94,1597.65,47.4167,212.787,-60.5199],[6843.1,1698.52,46.8667,209.971,-59.7923],[6784.75,1797.31,46.3167,207.14,-59.0383],[6722.31,1899.76,45.7333,204.125,-58.2084],[6659.3,1999.78,45.15,201.1,-57.3458]]], + [58,3812.82,[[8168.83,-2002.62,63.5167,281.337,-74.3566],[8140.91,-1903.54,63.15,280.065,-74.1574],[8111.49,-1800.55,62.7667,278.718,-73.9455],[8083.12,-1702.61,62.4,277.413,-73.7393],[8053.23,-1600.82,62.0167,276.03,-73.5199],[8024.42,-1504.04,61.65,274.691,-73.3063],[7994.05,-1403.49,61.2667,273.273,-73.0789],[7963.45,-1303.58,60.8833,271.836,-72.8473],[7931.25,-1200.02,60.4833,270.318,-72.6011],[7900.15,-1101.46,60.1,268.844,-72.3605],[7868.8,-1003.57,59.7167,267.352,-72.1154],[7835.84,-902.16,59.3167,265.776,-71.8546],[7802.6,-801.5,58.9167,264.18,-71.5886],[7769.1,-701.606,58.5167,262.564,-71.3171],[7735.33,-602.488,58.1167,260.928,-71.0401],[7699.86,-500.08,57.7,259.202,-70.7453],[7665.54,-402.583,57.3,257.526,-70.4564],[7629.5,-301.887,56.8833,255.759,-70.1489],[7593.18,-202.084,56.4667,253.971,-69.8345],[7556.56,-103.187,56.05,252.161,-69.5132],[7518.16,-1.30797,55.6167,250.257,-69.1712],[7479.45,99.5625,55.1833,248.331,-68.8211],[7440.42,199.41,54.75,246.383,-68.4626],[7401.07,298.22,54.3167,244.412,-68.0954],[7359.88,399.716,53.8667,242.344,-67.7045],[7319.88,496.365,53.4333,240.33,-67.3185],[7276.46,599.236,52.9667,238.138,-66.8921],[7234.24,697.227,52.5167,236.002,-66.4699],[7190.09,797.578,52.05,233.765,-66.0202],[7145.58,896.617,51.5833,231.505,-65.5579],[7099.09,997.791,51.1,229.141,-65.0654],[7052.21,1097.52,50.6167,226.755,-64.5583],[7003.3,1199.14,50.1167,224.264,-64.0177],[6953.97,1299.16,49.6167,221.751,-63.4603],[6904.23,1397.57,49.1167,219.218,-62.8852],[6852.4,1497.53,48.6,216.579,-62.2716],[6798.42,1598.85,48.0667,213.835,-61.6167],[6743.98,1698.25,47.5333,211.073,-60.9388],[6687.35,1798.71,46.9833,208.207,-60.2146],[6630.23,1897.08,46.4333,205.325,-59.4636],[6569.11,1999.06,45.85,202.255,-58.6364]]], + [59,3887.74,[[8006.51,-2001.25,64.0167,281.995,-74.8508],[7979.38,-1901.7,63.65,280.725,-74.6582],[7952.05,-1802.7,63.2833,279.439,-74.4623],[7924.5,-1704.25,62.9167,278.136,-74.2631],[7895.47,-1601.92,62.5333,276.755,-74.0511],[7866.21,-1500.21,62.15,275.356,-73.8353],[7838,-1403.52,61.7833,274.001,-73.6251],[7808.27,-1303.05,61.4,272.565,-73.4014],[7778.31,-1203.23,61.0167,271.112,-73.1735],[7748.11,-1104.07,60.6333,269.639,-72.9413],[7716.35,-1001.31,60.2333,268.083,-72.6943],[7685.67,-903.522,59.85,266.572,-72.453],[7653.4,-802.215,59.45,264.976,-72.1962],[7620.86,-701.665,59.05,263.359,-71.9342],[7588.07,-601.885,58.65,261.722,-71.6668],[7555.02,-502.886,58.25,260.065,-71.3939],[7520.31,-400.603,57.8333,258.317,-71.1034],[7486.72,-303.232,57.4333,256.619,-70.8187],[7451.45,-202.67,57.0167,254.828,-70.5155],[7415.9,-103.005,56.6,253.016,-70.2056],[7378.62,-0.318228,56.1667,251.108,-69.8759],[7342.48,97.4771,55.75,249.252,-69.5514],[7304.6,198.191,55.3167,247.299,-69.206],[7266.41,297.877,54.8833,245.323,-68.8522],[7227.91,396.52,54.45,243.325,-68.4897],[7187.6,497.839,54,241.227,-68.1037],[7146.96,598,53.55,239.105,-67.7077],[7105.98,696.987,53.1,236.96,-67.3012],[7063.14,798.383,52.6333,234.711,-66.8683],[7019.93,898.48,52.1667,232.439,-66.4232],[6976.38,997.258,51.7,230.144,-65.9656],[6930.89,1098.15,51.2167,227.743,-65.4779],[6885.02,1197.6,50.7333,225.319,-64.9755],[6837.17,1298.91,50.2333,222.788,-64.4397],[6788.91,1398.63,49.7333,220.234,-63.887],[6738.62,1499.95,49.2167,217.572,-63.2971],[6687.89,1599.52,48.7,214.888,-62.6874],[6636.74,1697.3,48.1833,212.184,-62.0569],[6581.82,1799.39,47.6333,209.286,-61.3619],[6526.42,1899.4,47.0833,206.368,-60.641],[6470.54,1997.3,46.5333,203.435,-59.8929]]], + [60,3961.26,[[7838.33,-2003.37,64.5167,282.681,-75.347],[7812.02,-1903.34,64.15,281.414,-75.1611],[7785.49,-1803.86,63.7833,280.13,-74.9719],[7757.54,-1700.43,63.4,278.77,-74.7707],[7730.59,-1602.07,63.0333,277.451,-74.5749],[7703.43,-1504.28,62.6667,276.115,-74.3756],[7674.81,-1402.64,62.2833,274.7,-74.1635],[7645.97,-1301.64,61.9,273.266,-73.9475],[7616.89,-1201.28,61.5167,271.813,-73.7275],[7587.58,-1101.58,61.1333,270.341,-73.5033],[7558.05,-1002.53,60.75,268.85,-73.2749],[7528.28,-904.151,60.3667,267.34,-73.0421],[7496.97,-802.222,59.9667,265.744,-72.7944],[7465.4,-701.043,59.5667,264.127,-72.5416],[7433.58,-600.625,59.1667,262.49,-72.2837],[7401.51,-500.981,58.7667,260.831,-72.0204],[7369.18,-402.121,58.3667,259.152,-71.7516],[7336.6,-304.057,57.9667,257.452,-71.4771],[7302.39,-202.764,57.55,255.66,-71.185],[7267.9,-102.36,57.1333,253.845,-70.8863],[7233.13,-2.85713,56.7167,252.007,-70.5809],[7196.68,99.6559,56.2833,250.073,-70.2558],[7161.35,197.28,55.8667,248.191,-69.9358],[7124.31,297.81,55.4333,246.211,-69.5951],[7086.96,397.308,55,244.207,-69.2461],[7047.87,499.523,54.55,242.102,-68.8744],[7009.91,596.87,54.1167,240.051,-68.5074],[6970.18,696.819,53.6667,237.898,-68.1163],[6928.63,799.223,53.2,235.64,-67.6998],[6888.24,896.751,52.75,233.439,-67.2871],[6846.01,996.609,52.2833,231.133,-66.8472],[6801.9,1098.64,51.8,228.719,-66.3783],[6757.43,1199.22,51.3167,226.28,-65.8954],[6712.58,1298.34,50.8333,223.817,-65.3977],[6665.8,1399.32,50.3333,221.244,-64.8668],[6618.63,1498.69,49.8333,218.648,-64.3187],[6569.47,1599.65,49.3167,215.942,-63.7336],[6519.89,1698.83,48.8,213.213,-63.1284],[6468.28,1799.34,48.2667,210.373,-62.4817],[6416.23,1897.9,47.7333,207.514,-61.8116],[6362.09,1997.47,47.1833,204.545,-61.0948]]], + [61,4033.32,[[7663.1,-2004.52,65,283.34,-75.8371],[7637.59,-1904.04,64.6333,282.075,-75.6576],[7611.87,-1804.09,64.2667,280.794,-75.4751],[7584.77,-1700.18,63.8833,279.436,-75.2809],[7558.64,-1601.34,63.5167,278.119,-75.0919],[7532.31,-1503.07,63.15,276.784,-74.8997],[7504.56,-1400.93,62.7667,275.371,-74.695],[7477.81,-1303.81,62.4,274.001,-74.4958],[7449.63,-1202.91,62.0167,272.549,-74.2836],[7421.22,-1102.65,61.6333,271.079,-74.0675],[7392.59,-1003.04,61.25,269.589,-73.8473],[7363.73,-904.094,60.8667,268.079,-73.6228],[7333.38,-801.566,60.4667,266.484,-73.384],[7304.06,-704.008,60.0833,264.935,-73.1506],[7273.23,-602.947,59.6833,263.297,-72.9022],[7242.14,-502.651,59.2833,261.639,-72.6486],[7210.81,-403.132,58.8833,259.96,-72.3897],[7177.91,-300.304,58.4667,258.187,-72.1142],[7146.08,-202.405,58.0667,256.465,-71.844],[7112.65,-101.29,57.65,254.647,-71.5563],[7078.95,-1.06763,57.2333,252.807,-71.2621],[7044.98,98.2487,56.8167,250.945,-70.9612],[7010.74,196.646,56.4,249.059,-70.6533],[6974.85,297.99,55.9667,247.074,-70.3254],[6938.66,398.311,55.5333,245.066,-69.9896],[6902.18,497.593,55.1,243.033,-69.6453],[6863.99,599.579,54.65,240.897,-69.2787],[6826.92,696.699,54.2167,238.816,-68.9165],[6788.1,796.407,53.7667,236.631,-68.5305],[6747.52,898.554,53.3,234.34,-68.1192],[6706.61,999.408,52.8333,232.022,-67.6963],[6665.35,1098.95,52.3667,229.679,-67.2612],[6623.76,1197.16,51.9,227.312,-66.8134],[6580.33,1297.44,51.4167,224.835,-66.3358],[6535.02,1399.64,50.9167,222.246,-65.8263],[6490.86,1496.92,50.4333,219.719,-65.318],[6443.26,1599.23,49.9167,216.992,-64.7569],[6395.25,1699.78,49.4,214.241,-64.1765],[6346.84,1798.55,48.8833,211.465,-63.5759],[6296.44,1898.61,48.35,208.577,-62.9338],[6244.02,1999.75,47.8,205.576,-62.2467]]], + [62,4103.84,[[7479.79,-2000.13,65.45,283.912,-76.3138],[7456.19,-1903.81,65.1,282.708,-76.1485],[7431.28,-1803.42,64.7333,281.428,-75.9726],[7406.18,-1703.56,64.3667,280.132,-75.7936],[7380.88,-1604.25,64,278.818,-75.6115],[7354.21,-1501.01,63.6167,277.425,-75.4177],[7328.51,-1402.83,63.25,276.074,-75.2291],[7301.42,-1300.8,62.8667,274.644,-75.0283],[7275.31,-1203.79,62.5,273.257,-74.8327],[7247.8,-1103,62.1167,271.788,-74.6245],[7220.07,-1002.85,61.7333,270.299,-74.4123],[7192.13,-903.364,61.35,268.79,-74.1961],[7162.73,-800.262,60.95,267.195,-73.9661],[7134.33,-702.147,60.5667,265.646,-73.7412],[7104.47,-600.498,60.1667,264.008,-73.5019],[7075.62,-503.797,59.7833,262.419,-73.2678],[7045.29,-403.644,59.3833,260.739,-73.0187],[7013.43,-300.148,58.9667,258.966,-72.7535],[6982.61,-201.6,58.5667,257.242,-72.4934],[6951.54,-103.856,58.1667,255.496,-72.2278],[6918.92,-2.90654,57.75,253.655,-71.9449],[6886.04,97.1457,57.3333,251.79,-71.6555],[6852.89,196.287,56.9167,249.902,-71.3595],[6818.14,298.415,56.4833,247.913,-71.0442],[6783.11,399.528,56.05,245.9,-70.7212],[6747.79,499.612,55.6167,243.862,-70.3902],[6712.19,598.652,55.1833,241.8,-70.0509],[6676.3,696.633,54.75,239.713,-69.7029],[6638.74,797.245,54.3,237.521,-69.3321],[6600.86,896.682,53.85,235.303,-68.9513],[6561.27,998.542,53.3833,232.977,-68.5453],[6521.34,1099.1,52.9167,230.624,-68.1277],[6481.09,1198.34,52.45,228.245,-67.6979],[6439.06,1299.71,51.9667,225.754,-67.2395],[6396.67,1399.62,51.4833,223.237,-66.7668],[6353.94,1498.05,51,220.694,-66.2794],[6309.37,1598.29,50.5,218.037,-65.7588],[6264.43,1696.9,50,215.355,-65.221],[6217.61,1797.07,49.4833,212.557,-64.6461],[6168.86,1898.58,48.95,209.644,-64.0313],[6119.71,1998.16,48.4167,206.706,-63.3937]]], + [63,4172.74,[[7291.81,-2004.06,65.9167,284.571,-76.8013],[7267.89,-1902.72,65.55,283.311,-76.6346],[7243.79,-1801.9,65.1833,282.035,-76.465],[7219.5,-1701.61,64.8167,280.74,-76.2926],[7195.01,-1601.87,64.45,279.428,-76.1171],[7170.34,-1502.66,64.0833,278.097,-75.9386],[7145.47,-1404.02,63.7167,276.749,-75.757],[7119.27,-1301.48,63.3333,275.32,-75.5637],[7094.01,-1204,62.9667,273.935,-75.3755],[7067.4,-1102.69,62.5833,272.468,-75.175],[7040.57,-1002.03,62.2,270.98,-74.9708],[7013.53,-902.022,61.8167,269.472,-74.7627],[6986.28,-802.673,61.4333,267.944,-74.5506],[6958.82,-703.995,61.05,266.396,-74.3343],[6929.94,-601.751,60.65,264.759,-74.1041],[6900.82,-500.259,60.25,263.101,-73.8692],[6872.69,-403.711,59.8667,261.49,-73.6395],[6843.12,-303.723,59.4667,259.788,-73.3947],[6812.06,-200.403,59.05,257.992,-73.1343],[6782.01,-102.028,58.65,256.244,-72.8788],[6750.46,-0.414207,58.2333,254.401,-72.6068],[6719.93,96.2983,57.8333,252.608,-72.3398],[6687.87,196.156,57.4167,250.718,-72.0553],[6654.27,299.037,56.9833,248.726,-71.7524],[6621.69,397.013,56.5667,246.787,-71.4542],[6587.55,497.908,56.1333,244.746,-71.1365],[6553.13,597.768,55.7,242.679,-70.8107],[6518.43,696.579,55.2667,240.587,-70.4767],[6482.1,798.063,54.8167,238.388,-70.1208],[6445.48,898.382,54.3667,236.163,-69.7552],[6408.57,997.517,53.9167,233.912,-69.3796],[6369.97,1099.06,53.45,231.549,-68.9791],[6331.06,1199.29,52.9833,229.16,-68.567],[6291.83,1298.19,52.5167,226.744,-68.1427],[6250.86,1399.2,52.0333,224.214,-67.6898],[6209.56,1498.75,51.55,221.657,-67.2227],[6167.92,1596.81,51.0667,219.073,-66.7408],[6123.04,1699.96,50.55,216.282,-66.2085],[6079.24,1798.11,50.05,213.555,-65.6755],[6033.61,1897.79,49.5333,210.71,-65.1056],[5986.11,1998.79,49,207.747,-64.4958]]], + [64,4239.95,[[7095.84,-2002.59,66.35,285.145,-77.2771],[7072.73,-1900.85,65.9833,283.888,-77.1166],[7050.49,-1804.22,65.6333,282.671,-76.9608],[7027.02,-1703.5,65.2667,281.379,-76.795],[7003.37,-1603.31,64.9,280.069,-76.6262],[6979.52,-1503.66,64.5333,278.742,-76.4546],[6954.4,-1400.07,64.15,277.334,-76.2719],[6930.18,-1301.55,63.7833,275.969,-76.094],[6905.77,-1203.6,63.4167,274.585,-75.9129],[6880.05,-1101.81,63.0333,273.119,-75.7201],[6854.13,-1000.65,62.65,271.633,-75.5238],[6828,-900.145,62.2667,270.126,-75.3236],[6801.67,-800.29,61.8833,268.598,-75.1196],[6775.13,-701.099,61.5,267.051,-74.9116],[6748.39,-602.583,61.1167,265.482,-74.6996],[6720.26,-500.513,60.7167,263.824,-74.4738],[6693.08,-403.404,60.3333,262.214,-74.2531],[6664.51,-302.824,59.9333,260.511,-74.018],[6635.71,-203.022,59.5333,258.786,-73.7779],[6606.69,-104.009,59.1333,257.038,-73.5327],[6576.21,-1.72203,58.7167,255.194,-73.2715],[6545.48,99.6834,58.3,253.325,-73.0044],[6515.76,196.191,57.9,251.508,-72.7422],[6483.29,299.796,57.4667,249.513,-72.4514],[6451.83,398.478,57.05,247.571,-72.1652],[6420.12,496.224,56.6333,245.605,-71.8721],[6386.87,596.875,56.2,243.534,-71.5597],[6353.36,696.484,55.7667,241.437,-71.2394],[6318.28,798.808,55.3167,239.233,-70.898],[6282.92,899.975,54.8667,237.001,-70.5475],[6247.26,999.97,54.4167,234.742,-70.1873],[6211.32,1098.78,53.9667,232.456,-69.8171],[6173.74,1199.96,53.5,230.057,-69.4222],[6135.86,1299.84,53.0333,227.63,-69.0156],[6097.67,1398.37,52.5667,225.176,-68.5969],[6057.8,1498.99,52.0833,222.606,-68.1498],[6017.6,1598.14,51.6,220.007,-67.6885],[5975.67,1699.13,51.1,217.291,-67.1955],[5933.39,1798.49,50.6,214.545,-66.6859],[5889.34,1899.43,50.0833,211.68,-66.1408],[5844.92,1998.59,49.5667,208.787,-65.576]]], + [65,4305.38,[[6893.15,-2000.37,66.7667,285.691,-77.7493],[6871.86,-1902.87,66.4167,284.493,-77.6021],[6849.38,-1801.24,66.05,283.221,-77.4452],[6826.72,-1700.12,65.6833,281.931,-77.2857],[6804.92,-1604.1,65.3333,280.683,-77.1309],[6781.92,-1504.02,64.9667,279.357,-76.966],[6758.73,-1404.49,64.6,278.013,-76.7982],[6734.3,-1301.02,64.2167,276.588,-76.6196],[6710.74,-1202.63,63.85,275.206,-76.4456],[6685.92,-1100.37,63.4667,273.742,-76.2604],[6662,-1003.15,63.1,272.321,-76.08],[6636.79,-902.132,62.7167,270.816,-75.8879],[6611.38,-801.764,62.3333,269.29,-75.6921],[6585.77,-702.054,61.95,267.744,-75.4924],[6559.97,-603.013,61.5667,266.176,-75.2889],[6532.82,-500.388,61.1667,264.518,-75.0722],[6506.61,-402.742,60.7833,262.908,-74.8604],[6479.04,-301.595,60.3833,261.205,-74.6347],[6451.25,-201.219,59.9833,259.48,-74.4043],[6423.24,-101.625,59.5833,257.731,-74.1689],[6395.01,-2.82531,59.1833,255.959,-73.9284],[6365.37,99.2344,58.7667,254.089,-73.6722],[6336.69,196.377,58.3667,252.27,-73.4208],[6306.58,296.686,57.95,250.351,-73.1528],[6276.24,396.081,57.5333,248.407,-72.8786],[6244.42,498.47,57.1,246.359,-72.5864],[6212.35,599.841,56.6667,244.283,-72.2869],[6181.27,696.34,56.25,242.263,-71.9917],[6147.43,799.471,55.8,240.053,-71.6647],[6114.58,897.7,55.3667,237.899,-71.3414],[6080.2,998.565,54.9167,235.634,-70.9967],[6045.54,1098.25,54.4667,233.341,-70.6424],[6010.6,1196.74,54.0167,231.02,-70.2782],[5974.07,1297.59,53.55,228.585,-69.8894],[5937.25,1397.12,53.0833,226.121,-69.4891],[5898.81,1498.78,52.6,223.539,-69.0616],[5860.04,1598.98,52.1167,220.928,-68.6205],[5820.96,1697.69,51.6333,218.288,-68.1651],[5780.21,1798.22,51.1333,215.527,-67.6782],[5739.12,1897.12,50.6333,212.736,-67.1745],[5696.31,1997.56,50.1167,209.823,-66.6355]]], + [66,4368.99,[[6684.72,-2002.1,67.1833,286.265,-78.2256],[6664.2,-1904.23,66.8333,285.07,-78.0843],[6642.53,-1802.2,66.4667,283.801,-77.9338],[6620.7,-1700.69,66.1,282.514,-77.7807],[6599.7,-1604.27,65.75,281.268,-77.6321],[6577.52,-1503.79,65.3833,279.944,-77.4738],[6555.18,-1403.85,65.0167,278.602,-77.3128],[6532.66,-1304.45,64.65,277.241,-77.1489],[6508.93,-1201.13,64.2667,275.799,-76.9744],[6486.06,-1102.87,63.9,274.399,-76.8045],[6461.95,-1000.76,63.5167,272.916,-76.6236],[6438.72,-903.688,63.15,271.478,-76.4474],[6414.24,-802.829,62.7667,269.954,-76.2596],[6389.57,-702.622,62.3833,268.408,-76.0682],[6364.7,-603.077,62,266.841,-75.8731],[6339.64,-504.204,61.6167,265.254,-75.6741],[6313.29,-401.76,61.2167,263.574,-75.4622],[6286.72,-300.069,60.8167,261.871,-75.2459],[6261.06,-203.332,60.4333,260.217,-75.0343],[6234.08,-103.149,60.0333,258.469,-74.8088],[6206.89,-3.75369,59.6333,256.697,-74.5784],[6178.34,98.9341,59.2167,254.825,-74.3331],[6150.71,196.687,58.8167,253.005,-74.0923],[6121.7,297.638,58.4,251.084,-73.8357],[6092.47,397.684,57.9833,249.137,-73.573],[6063,496.81,57.5667,247.165,-73.304],[6032.11,598.913,57.1333,245.087,-73.0175],[6000.97,699.991,56.7,242.982,-72.7236],[5970.79,796.203,56.2833,240.932,-72.4338],[5937.94,899.016,55.8333,238.69,-72.1128],[5906.05,996.932,55.4,236.503,-71.7953],[5872.67,1097.47,54.95,234.204,-71.4566],[5839.03,1196.81,54.5,231.876,-71.1084],[5803.85,1298.56,54.0333,229.433,-70.7369],[5768.39,1399,53.5667,226.959,-70.3541],[5732.65,1498.1,53.1,224.456,-69.9598],[5695.32,1599.31,52.6167,221.833,-69.5385],[5657.69,1699.05,52.1333,219.179,-69.1035],[5619.76,1797.3,51.65,216.496,-68.6543],[5580.2,1897.33,51.15,213.689,-68.1737],[5538.99,1998.96,50.6333,210.757,-67.6594]]], + [67,4430.67,[[6469.61,-2003.23,67.5833,286.813,-78.6993],[6448.93,-1900.34,67.2167,285.563,-78.5573],[6429.03,-1802.6,66.8667,284.354,-78.4196],[6408.02,-1700.71,66.5,283.069,-78.2729],[6387.81,-1603.93,66.15,281.825,-78.1305],[6366.48,-1503.05,65.7833,280.503,-77.9788],[6344.98,-1402.71,65.4167,279.163,-77.8244],[6323.31,-1302.92,65.05,277.804,-77.6674],[6301.47,-1203.67,64.6833,276.426,-77.5075],[6278.46,-1100.51,64.3,274.965,-77.3374],[6256.28,-1002.41,63.9333,273.548,-77.1716],[6232.91,-900.472,63.55,272.045,-76.995],[6210.38,-803.561,63.1833,270.588,-76.823],[6186.65,-702.877,62.8,269.044,-76.6398],[6162.73,-602.85,62.4167,267.478,-76.453],[6138.62,-503.49,62.0333,265.891,-76.2624],[6113.26,-400.531,61.6333,264.212,-76.0595],[6088.77,-302.563,61.25,262.58,-75.8612],[6063.02,-201.078,60.85,260.854,-75.6498],[6037.06,-100.362,60.45,259.105,-75.4339],[6010.9,-0.427421,60.05,257.332,-75.2134],[5984.53,98.7147,59.65,255.534,-74.988],[5957.95,197.053,59.25,253.713,-74.7577],[5930.05,298.621,58.8333,251.79,-74.5122],[5901.93,399.29,58.4167,249.841,-74.261],[5873.59,499.048,58,247.866,-74.0037],[5845.02,597.88,57.5833,245.865,-73.7402],[5815.07,699.669,57.15,243.757,-73.4594],[5786.05,796.572,56.7333,241.703,-73.1826],[5755.63,896.325,56.3,239.54,-72.8873],[5723.79,998.792,55.85,237.264,-72.5724],[5692.88,1096.37,55.4167,235.044,-72.2609],[5660.53,1196.54,54.9667,232.71,-71.9285],[5626.71,1299.16,54.5,230.259,-71.5738],[5593.83,1396.87,54.05,227.866,-71.2216],[5559.47,1496.91,53.5833,225.354,-70.8455],[5523.59,1599.1,53.1,222.72,-70.4438],[5487.41,1699.83,52.6167,220.055,-70.0289],[5450.94,1799.07,52.1333,217.358,-69.6004],[5414.19,1896.81,51.65,214.631,-69.1576],[5374.57,1999.59,51.1333,211.682,-68.6676]]], + [68,4490.38,[[6247.92,-2003.82,67.9667,287.333,-79.171],[6228.05,-1900.58,67.6,286.087,-79.0351],[6208.94,-1802.49,67.25,284.879,-78.9032],[6188.76,-1700.24,66.8833,283.596,-78.7628],[6169.34,-1603.1,66.5333,282.354,-78.6266],[6148.85,-1501.86,66.1667,281.035,-78.4814],[6128.2,-1401.14,65.8,279.697,-78.3337],[6107.38,-1300.96,65.4333,278.339,-78.1834],[6086.41,-1201.33,65.0667,276.963,-78.0304],[6065.27,-1102.25,64.7,275.567,-77.8747],[6043.97,-1003.73,64.3333,274.151,-77.7163],[6021.52,-901.346,63.95,272.65,-77.5475],[5999.89,-804.003,63.5833,271.195,-77.3831],[5977.09,-702.864,63.2,269.652,-77.2078],[5954.12,-602.376,62.8167,268.087,-77.0292],[5930.97,-502.549,62.4333,266.5,-76.8471],[5907.64,-403.393,62.05,264.892,-76.6613],[5883.1,-300.652,61.65,263.19,-76.4635],[5859.4,-202.898,61.2667,261.536,-76.2699],[5834.47,-101.64,60.8667,259.787,-76.0638],[5809.35,-1.15717,60.4667,258.013,-75.8531],[5784.03,98.5396,60.0667,256.216,-75.6378],[5758.52,197.439,59.6667,254.393,-75.4178],[5731.73,299.598,59.25,252.469,-75.1834],[5705.81,396.832,58.85,250.597,-74.9531],[5678.6,497.231,58.4333,248.62,-74.7077],[5651.17,596.712,58.0167,246.617,-74.4563],[5622.42,699.184,57.5833,244.506,-74.1883],[5594.56,796.751,57.1667,242.449,-73.9242],[5565.36,897.202,56.7333,240.282,-73.6424],[5535.92,996.601,56.3,238.086,-73.3533],[5505.11,1098.69,55.85,235.776,-73.0448],[5474.05,1199.61,55.4,233.435,-72.7276],[5442.74,1299.35,54.95,231.064,-72.4014],[5411.18,1397.88,54.5,228.664,-72.0657],[5378.19,1498.76,54.0333,226.143,-71.7072],[5344.94,1598.32,53.5667,223.59,-71.3376],[5311.43,1696.52,53.1,221.007,-70.9564],[5276.44,1796.78,52.6167,218.299,-70.5488],[5239.94,1898.92,52.1167,215.464,-70.1128],[5203.15,1999.44,51.6167,212.595,-69.6614]]], + [69,4548.03,[[6019.73,-2003.92,68.3333,287.827,-79.6412],[6000.68,-1900.34,67.9667,286.583,-79.5114],[5982.35,-1801.93,67.6167,285.378,-79.3854],[5963.89,-1703.98,67.2667,284.155,-79.2575],[5944.4,-1601.86,66.9,282.857,-79.1211],[5924.75,-1500.25,66.5333,281.539,-78.9824],[5905.85,-1403.76,66.1833,280.264,-78.8478],[5885.9,-1303.19,65.8167,278.909,-78.7044],[5865.79,-1203.17,65.45,277.534,-78.5584],[5845.53,-1103.69,65.0833,276.14,-78.4098],[5824.19,-1000.29,64.7,274.662,-78.2515],[5803.6,-901.96,64.3333,273.228,-78.0974],[5782.87,-804.206,63.9667,271.773,-77.9404],[5761.02,-702.631,63.5833,270.231,-77.7732],[5739,-601.703,63.2,268.668,-77.6027],[5716.81,-501.431,62.8167,267.082,-77.4288],[5694.44,-401.824,62.4333,265.473,-77.2515],[5671.9,-302.892,62.05,263.843,-77.0707],[5648.2,-200.39,61.65,262.117,-76.878],[5625.3,-102.87,61.2667,260.441,-76.6895],[5601.23,-1.86251,60.8667,258.667,-76.4887],[5576.96,98.3652,60.4667,256.869,-76.2834],[5552.51,197.801,60.0667,255.046,-76.0736],[5527.86,296.434,59.6667,253.198,-75.8591],[5501.99,398.31,59.25,251.247,-75.6306],[5475.91,499.288,58.8333,249.268,-75.3965],[5449.63,599.354,58.4167,247.262,-75.1568],[5423.13,698.497,58,245.23,-74.9113],[5396.44,796.7,57.5833,243.17,-74.6597],[5368.45,897.822,57.15,240.999,-74.3913],[5340.25,997.898,56.7167,238.799,-74.1159],[5311.82,1096.91,56.2833,236.569,-73.833],[5282.06,1198.6,55.8333,234.224,-73.5312],[5252.07,1299.1,55.3833,231.847,-73.2208],[5221.83,1398.41,54.9333,229.44,-72.9014],[5191.36,1496.51,54.4833,227.002,-72.5726],[5159.51,1596.94,54.0167,224.441,-72.2212],[5126.25,1699.54,53.5333,221.755,-71.8457],[5093.89,1797.21,53.0667,219.13,-71.4714],[5060.1,1896.92,52.5833,216.378,-71.0709],[5024.87,1998.47,52.0833,213.496,-70.6423]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 5601.23; +_maxRange = 8646.62; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg7.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg7.sqf new file mode 100644 index 0000000000..94250772e6 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg7.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg7 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,3779.27,[[12009.2,-2002.96,63.15,286.005,-68.9874],[11969.7,-1900.9,62.7667,284.866,-68.715],[11931.6,-1803.83,62.4,283.764,-68.4504],[11891.5,-1702.95,62.0167,282.601,-68.1692],[11851.1,-1602.69,61.6333,281.425,-67.8834],[11810.3,-1503.04,61.25,280.237,-67.5928],[11769.2,-1404.03,60.8667,279.037,-67.2973],[11725.9,-1301.4,60.4667,277.772,-66.9836],[11684.1,-1203.71,60.0833,276.548,-66.6778],[11640.2,-1102.48,59.6833,275.258,-66.3531],[11595.8,-1001.97,59.2833,273.955,-66.0227],[11551.1,-902.199,58.8833,272.64,-65.6862],[11506,-803.176,58.4833,271.313,-65.3437],[11458.7,-700.832,58.0667,269.917,-64.9803],[11412.8,-603.366,57.6667,268.565,-64.6248],[11364.7,-502.668,57.25,267.145,-64.2476],[11316.1,-402.826,56.8333,265.712,-63.8631],[11267.2,-303.853,56.4167,264.268,-63.4712],[11215.8,-201.854,55.9833,262.753,-63.0554],[11164,-100.821,55.55,261.226,-62.6312],[11111.7,-0.766507,55.1167,259.687,-62.1983],[11059,98.2954,54.6833,258.137,-61.7564],[11005.9,196.352,54.25,256.577,-61.3054],[10950.2,297.1,53.8,254.946,-60.8271],[10894.1,396.733,53.35,253.304,-60.3383],[10835.3,498.864,52.8833,251.592,-59.8202],[10776,599.761,52.4167,249.869,-59.2902],[10716.2,699.41,51.95,248.139,-58.7481],[10655.9,797.791,51.4833,246.4,-58.1935],[10592.9,898.333,51,244.593,-57.6056],[10529.3,997.478,50.5167,242.779,-57.0036],[10462.9,1098.55,50.0167,240.898,-56.3655],[10395.8,1198.09,49.5167,239.013,-55.7114],[10326,1299.31,49,237.062,-55.0182],[10255.4,1398.84,48.4833,235.112,-54.3069],[10181.9,1499.8,47.95,233.099,-53.5532],[10107.7,1598.9,47.4167,231.09,-52.7791],[10030.5,1699.14,46.8667,229.025,-51.9588],[9952.51,1797.36,46.3167,226.968,-51.1157],[9868.99,1899.3,45.7333,224.8,-50.1957],[9784.64,1998.9,45.15,222.648,-49.2485]]], + [46,3893.22,[[11916.4,-2004.35,63.9167,286.95,-69.5827],[11877.8,-1901.54,63.5333,285.813,-69.3186],[11840.7,-1803.76,63.1667,284.712,-69.062],[11801.5,-1702.11,62.7833,283.55,-68.7893],[11762,-1601.07,62.4,282.374,-68.5122],[11722.2,-1500.65,62.0167,281.186,-68.2304],[11682.1,-1400.85,61.6333,279.986,-67.9438],[11641.6,-1301.68,61.25,278.773,-67.6524],[11600.9,-1203.15,60.8667,277.547,-67.3561],[11557.9,-1101.03,60.4667,276.256,-67.0415],[11516.5,-1003.83,60.0833,275.005,-66.7348],[11472.9,-903.125,59.6833,273.688,-66.409],[11428.9,-803.154,59.2833,272.357,-66.0773],[11384.5,-703.929,58.8833,271.014,-65.7396],[11337.9,-601.375,58.4667,269.602,-65.3812],[11292.8,-503.707,58.0667,268.233,-65.0307],[11245.5,-402.797,57.65,266.794,-64.6587],[11197.7,-302.742,57.2333,265.343,-64.2794],[11149.5,-203.555,56.8167,263.878,-63.8927],[11099,-101.334,56.3833,262.343,-63.4825],[11048,-0.0781505,55.95,260.794,-63.0638],[10998.6,96.3611,55.5333,259.294,-62.653],[10944.8,199.486,55.0833,257.66,-62.2002],[10892.5,297.766,54.65,256.076,-61.7548],[10837.7,398.748,54.2,254.419,-61.2824],[10782.5,498.615,53.75,252.751,-60.7996],[10726.7,597.352,53.3,251.072,-60.3061],[10668.5,698.537,52.8333,249.321,-59.7827],[10609.7,798.472,52.3667,247.56,-59.2472],[10550.3,897.142,51.9,245.791,-58.6993],[10488.3,997.982,51.4167,243.95,-58.1183],[10425.8,1097.43,50.9333,242.101,-57.5231],[10360.5,1198.81,50.4333,240.183,-56.892],[10294.6,1298.66,49.9333,238.259,-56.245],[10228.1,1396.95,49.4333,236.332,-55.5814],[10158.8,1496.86,48.9167,234.338,-54.8778],[10086.6,1598.2,48.3833,232.28,-54.132],[10013.7,1697.69,47.85,230.224,-53.3657],[9937.76,1798.33,47.3,228.108,-52.5533],[9858.79,1899.91,46.7333,225.934,-51.6921],[9779.05,1999.31,46.1667,223.772,-50.8057]]], + [47,4006.6,[[11814.6,-2004.39,64.6667,287.877,-70.1618],[11777,-1900.86,64.2833,286.742,-69.9058],[11740.8,-1802.37,63.9167,285.644,-69.6569],[11704.2,-1704.43,63.55,284.533,-69.4042],[11665.7,-1602.62,63.1667,283.359,-69.1356],[11626.9,-1501.41,62.7833,282.173,-68.8625],[11587.7,-1400.82,62.4,280.973,-68.5849],[11548.2,-1300.84,62.0167,279.76,-68.3026],[11508.4,-1201.5,61.6333,278.534,-68.0155],[11468.3,-1102.8,61.25,277.296,-67.7235],[11426.1,-1000.5,60.85,275.99,-67.4134],[11385.3,-903.139,60.4667,274.726,-67.111],[11342.4,-802.251,60.0667,273.393,-66.7899],[11299.1,-702.098,59.6667,272.047,-66.4629],[11255.5,-602.692,59.2667,270.688,-66.1299],[11211.5,-504.043,58.8667,269.316,-65.7908],[11165.3,-402.098,58.45,267.872,-65.4308],[11118.7,-300.997,58.0333,266.415,-65.0639],[11071.7,-200.751,57.6167,264.945,-64.6897],[11024.3,-101.373,57.2,263.461,-64.3082],[10976.5,-2.87419,56.7833,261.964,-63.9191],[10926.4,98.6189,56.35,260.395,-63.5062],[10875.9,199.134,55.9167,258.812,-63.0846],[10824.9,298.659,55.4833,257.216,-62.6543],[10773.5,397.178,55.05,255.608,-62.2148],[10719.6,498.408,54.6,253.926,-61.7486],[10665.3,598.524,54.15,252.232,-61.2719],[10610.6,697.511,53.7,250.526,-60.7847],[10553.2,798.954,53.2333,248.746,-60.2678],[10495.4,899.149,52.7667,246.955,-59.7389],[10437.1,998.078,52.3,245.154,-59.1974],[10376.2,1099.19,51.8167,243.28,-58.6232],[10314.7,1198.9,51.3333,241.397,-58.0347],[10252.7,1297.2,50.85,239.507,-57.4317],[10187.9,1397.37,50.35,237.545,-56.7921],[10120.4,1499.25,49.8333,235.513,-56.1138],[10052.2,1599.45,49.3167,233.477,-55.4173],[9983.47,1697.93,48.8,231.44,-54.702],[9911.82,1797.78,48.2667,229.337,-53.9433],[9837.24,1898.78,47.7167,227.17,-53.1387],[9761.95,1997.76,47.1667,225.009,-52.3108]]], + [48,4119.32,[[11704.2,-2003.11,65.4,288.785,-70.7257],[11669.1,-1903.41,65.0333,287.702,-70.4883],[11633.7,-1804.22,64.6667,286.606,-70.2472],[11596.4,-1701.1,64.2833,285.448,-69.991],[11560.5,-1603.01,63.9167,284.327,-69.7421],[11522.6,-1501.05,63.5333,283.142,-69.4775],[11486.1,-1404.09,63.1667,281.996,-69.2203],[11447.6,-1303.31,62.7833,280.784,-68.947],[11408.8,-1203.16,62.4,279.559,-68.6691],[11369.6,-1103.64,62.0167,278.321,-68.3863],[11328.5,-1000.48,61.6167,277.015,-68.0862],[11288.7,-902.271,61.2333,275.75,-67.7934],[11246.8,-800.497,60.8333,274.417,-67.4825],[11206.4,-703.643,60.45,273.126,-67.1793],[11163.8,-603.299,60.05,271.765,-66.8571],[11120.9,-503.699,59.65,270.39,-66.5291],[11075.9,-400.754,59.2333,268.943,-66.1808],[11032.3,-302.709,58.8333,267.541,-65.8402],[10986.5,-201.405,58.4167,266.065,-65.4784],[10940.3,-100.955,58,264.576,-65.1096],[10893.7,-1.37303,57.5833,263.073,-64.7334],[10846.7,97.3304,57.1667,261.557,-64.3497],[10797.4,199.037,56.7333,259.966,-63.9425],[10747.7,299.766,56.3,258.361,-63.5267],[10697.6,399.504,55.8667,256.742,-63.1021],[10647.1,498.238,55.4333,255.111,-62.6685],[10594.2,599.69,54.9833,253.404,-62.2083],[10542.8,696.333,54.55,251.747,-61.7554],[10486.9,799.239,54.0833,249.95,-61.2567],[10432.6,897.304,53.6333,248.206,-60.7647],[10375.8,997.775,53.1667,246.386,-60.2426],[10318.5,1096.98,52.7,244.555,-59.708],[10258.6,1198.37,52.2167,242.647,-59.1409],[10198.2,1298.37,51.7333,240.731,-58.5596],[10137.3,1396.96,51.25,238.805,-57.9637],[10073.6,1497.43,50.75,236.806,-57.3315],[10007.3,1599.62,50.2333,234.733,-56.6607],[9942.52,1696.9,49.7333,232.723,-55.9942],[9872.79,1798.91,49.2,230.574,-55.2639],[9802.4,1899.07,48.6667,228.425,-54.5128],[9731.37,1997.35,48.1333,226.276,-53.7403]]], + [49,4231.28,[[11584.9,-2000.55,66.1167,289.672,-71.2753],[11550.7,-1900.2,65.75,288.591,-71.0451],[11516.2,-1800.37,65.3833,287.499,-70.8114],[11481.4,-1701.06,65.0167,286.393,-70.5739],[11446.3,-1602.28,64.65,285.275,-70.3327],[11411,-1504.04,64.2833,284.143,-70.0877],[11373.8,-1401.92,63.9,282.947,-69.8273],[11336.2,-1300.4,63.5167,281.738,-69.5625],[11300,-1203.86,63.15,280.567,-69.305],[11261.9,-1103.55,62.7667,279.331,-69.0314],[11223.4,-1003.87,62.3833,278.08,-68.753],[11182.9,-900.531,61.9833,276.76,-68.4574],[11143.8,-802.161,61.6,275.482,-68.1691],[11102.7,-700.215,61.2,274.134,-67.8629],[11062.9,-603.197,60.8167,272.829,-67.5642],[11021.1,-502.679,60.4167,271.452,-67.2469],[10978.9,-402.906,60.0167,270.062,-66.9236],[10936.4,-303.889,59.6167,268.657,-66.5943],[10891.8,-201.561,59.2,267.179,-66.2447],[10846.8,-100.075,58.7833,265.685,-65.8882],[10803.2,-3.45216,58.3833,264.238,-65.5393],[10757.4,96.3474,57.9667,262.716,-65.1687],[10709.4,199.207,57.5333,261.119,-64.7754],[10662.8,297.203,57.1167,259.569,-64.3894],[10614,398.16,56.6833,257.942,-63.9796],[10564.8,498.126,56.25,256.301,-63.561],[10515.1,597.089,55.8167,254.647,-63.1334],[10463.1,698.78,55.3667,252.914,-62.6796],[10410.7,799.358,54.9167,251.168,-62.2155],[10357.8,898.806,54.4667,249.409,-61.7409],[10304.4,997.11,54.0167,247.637,-61.2554],[10248.6,1097.83,53.55,245.788,-60.74],[10192.3,1197.28,53.0833,243.926,-60.2123],[10133.5,1298.93,52.6,241.986,-59.6522],[10074.2,1399.19,52.1167,240.035,-59.0779],[10014.3,1498.03,51.6333,238.075,-58.4891],[9951.79,1598.77,51.1333,236.038,-57.8641],[9888.74,1697.95,50.6333,233.993,-57.2226],[9823,1798.78,50.1167,231.874,-56.5416],[9756.66,1897.9,49.6,229.75,-55.8417],[9687.55,1998.39,49.0667,227.554,-55.0988]]], + [50,4342.37,[[11458.5,-2001.35,66.8333,290.585,-71.8214],[11425.1,-1900.36,66.4667,289.509,-71.5984],[11393,-1804.44,66.1167,288.469,-71.3824],[11359.1,-1704.45,65.75,287.367,-71.1525],[11323.4,-1600.47,65.3667,286.201,-70.9083],[11288.9,-1501.56,65,285.073,-70.6709],[11254.2,-1403.18,64.6333,283.931,-70.4298],[11217.6,-1300.91,64.25,282.724,-70.1735],[11182.3,-1203.66,63.8833,281.556,-69.9243],[11145.1,-1102.58,63.5,280.321,-69.6594],[11107.6,-1002.12,63.1167,279.072,-69.3899],[11069.8,-902.294,62.7333,277.808,-69.1159],[11031.7,-803.103,62.35,276.531,-68.837],[10991.6,-700.29,61.95,275.183,-68.5409],[10952.9,-602.431,61.5667,273.878,-68.252],[10912.1,-501.026,61.1667,272.501,-67.945],[10871,-400.355,60.7667,271.109,-67.6324],[10829.6,-300.43,60.3667,269.702,-67.314],[10787.8,-201.259,59.9667,268.281,-66.9895],[10745.7,-102.854,59.5667,266.845,-66.6589],[10701.5,-1.1737,59.15,265.334,-66.3078],[10656.9,99.6523,58.7333,263.808,-65.9497],[10611.9,199.612,58.3167,262.267,-65.5843],[10566.6,298.694,57.9,260.711,-65.2115],[10520.8,396.885,57.4833,259.14,-64.8311],[10472.9,498.046,57.05,257.492,-64.4272],[10424.5,598.217,56.6167,255.829,-64.0146],[10375.8,697.384,56.1833,254.151,-63.5931],[10324.7,799.288,55.7333,252.394,-63.1455],[10275.1,896.365,55.3,250.688,-62.7049],[10221.2,999.739,54.8333,248.836,-62.2195],[10168.8,1098.26,54.3833,247.037,-61.7404],[10114,1199.19,53.9167,245.158,-61.2317],[10058.7,1298.87,53.45,243.266,-60.7106],[10002.9,1397.26,52.9833,241.361,-60.1768],[9944.66,1497.79,52.5,239.377,-59.61],[9885.88,1596.9,52.0167,237.382,-59.0287],[9824.54,1697.93,51.5167,235.308,-58.4115],[9762.64,1797.39,51.0167,233.225,-57.7776],[9698.11,1898.51,50.5,231.065,-57.1045],[9632.98,1997.92,49.9833,228.898,-56.4125]]], + [51,4452.48,[[11323.4,-2001.04,67.5333,291.477,-72.3543],[11292.3,-1904.03,67.1833,290.453,-72.1482],[11259.6,-1802.9,66.8167,289.368,-71.929],[11226.5,-1702.28,66.45,288.27,-71.7064],[11193.2,-1602.17,66.0833,287.158,-71.4802],[11159.7,-1502.58,65.7167,286.033,-71.2505],[11125.8,-1403.52,65.35,284.895,-71.017],[11090.2,-1300.53,64.9667,283.691,-70.769],[11055.8,-1202.58,64.6,282.525,-70.5278],[11019.5,-1100.76,64.2167,281.292,-70.2714],[10984.6,-1003.94,63.85,280.099,-70.0221],[10947.7,-903.33,63.4667,278.838,-69.7571],[10910.6,-803.346,63.0833,277.562,-69.4874],[10873.2,-703.999,62.7,276.272,-69.2131],[10833.8,-601.023,62.3,274.911,-68.9216],[10795.8,-503.006,61.9167,273.591,-68.6373],[10755.7,-401.437,61.5167,272.2,-68.3353],[10715.4,-300.602,61.1167,270.793,-68.0276],[10674.7,-200.511,60.7167,269.37,-67.7141],[10633.7,-101.175,60.3167,267.933,-67.3946],[10592.3,-2.60359,59.9167,266.48,-67.0691],[10548.9,99.2495,59.5,264.952,-66.7233],[10506.8,196.225,59.1,263.469,-66.3848],[10462.7,296.393,58.6833,261.91,-66.0252],[10416.4,399.637,58.25,260.271,-65.6434],[10371.5,498.002,57.8333,258.68,-65.2686],[10324.4,599.344,57.4,257.01,-64.8705],[10276.9,699.695,56.9667,255.324,-64.4638],[10229,799.042,56.5333,253.623,-64.0481],[10180.7,897.371,56.1,251.907,-63.6234],[10130.2,998.39,55.65,250.11,-63.1722],[10079.2,1098.28,55.2,248.298,-62.7107],[10027.7,1197.02,54.75,246.472,-62.2383],[9973.92,1298.2,54.2833,244.564,-61.7366],[9919.65,1398.11,53.8167,242.641,-61.2226],[9864.92,1496.74,53.35,240.706,-60.6959],[9807.73,1597.51,52.8667,238.688,-60.1365],[9750.04,1696.87,52.3833,236.659,-59.5625],[9689.84,1798.15,51.8833,234.548,-58.953],[9629.1,1897.86,51.3833,232.427,-58.3268],[9565.76,1999.24,50.8667,230.225,-57.6616]]], + [52,4561.53,[[11181,-2004.29,68.2333,292.393,-72.8843],[11149.3,-1902.06,67.8667,291.326,-72.6753],[11117.4,-1800.32,67.5,290.244,-72.463],[11086.7,-1703.67,67.15,289.2,-72.2573],[11054.2,-1602.92,66.7833,288.092,-72.0384],[11021.5,-1502.68,66.4167,286.971,-71.8161],[10988.6,-1402.96,66.05,285.836,-71.5902],[10955.4,-1303.77,65.6833,284.688,-71.3607],[10920.3,-1200.65,65.3,283.473,-71.1168],[10886.6,-1102.56,64.9333,282.297,-70.8796],[10851,-1000.61,64.55,281.052,-70.6275],[10816.7,-903.659,64.1833,279.848,-70.3823],[10780.5,-802.909,63.8,278.575,-70.1216],[10744.1,-702.787,63.4167,277.286,-69.8563],[10707.3,-603.302,63.0333,275.983,-69.5865],[10668.7,-500.18,62.6333,274.607,-69.2997],[10631.3,-402.024,62.25,273.274,-69.02],[10592,-300.31,61.85,271.868,-68.7227],[10554.1,-203.521,61.4667,270.505,-68.4326],[10514.1,-103.253,61.0667,269.067,-68.1242],[10473.9,-3.73943,60.6667,267.614,-67.81],[10431.6,99.1074,60.25,266.083,-67.4762],[10390.7,197.048,59.85,264.598,-67.1495],[10347.7,298.234,59.4333,263.036,-66.8024],[10304.3,398.554,59.0167,261.457,-66.4481],[10260.6,497.996,58.6,259.862,-66.0866],[10216.6,596.548,58.1833,258.251,-65.7176],[10170.4,698.084,57.75,256.559,-65.3256],[10123.8,798.631,57.3167,254.851,-64.9251],[10076.8,898.173,56.8833,253.127,-64.5157],[10029.4,996.698,56.45,251.388,-64.0971],[9979.76,1097.92,56,249.565,-63.6526],[9929.71,1198.01,55.55,247.727,-63.1976],[9879.24,1296.96,55.1,245.873,-62.7319],[9826.45,1398.34,54.6333,243.936,-62.2373],[9773.21,1498.46,54.1667,241.983,-61.7303],[9719.5,1597.3,53.7,240.017,-61.2106],[9663.39,1698.29,53.2167,237.966,-60.6585],[9606.8,1797.86,52.7333,235.902,-60.0918],[9547.73,1899.36,52.2333,233.754,-59.4898],[9488.14,1999.29,51.7333,231.594,-58.8712]]], + [53,4669.41,[[11028.6,-2001.87,68.9,293.237,-73.393],[10999.2,-1903.73,68.55,292.223,-73.1999],[10968.1,-1801.39,68.1833,291.146,-72.9945],[10938.2,-1704.16,67.8333,290.106,-72.7954],[10906.6,-1602.78,67.4667,289.003,-72.5837],[10874.7,-1501.92,67.1,287.886,-72.3686],[10842.6,-1401.56,66.7333,286.755,-72.15],[10810.3,-1301.73,66.3667,285.61,-71.928],[10777.7,-1202.43,66,284.451,-71.7023],[10744.8,-1103.66,65.6333,283.279,-71.473],[10710.2,-1000.98,65.25,282.038,-71.2293],[10676.8,-903.332,64.8833,280.836,-70.9923],[10641.6,-801.841,64.5,279.565,-70.7403],[10606.1,-700.97,64.1167,278.279,-70.4839],[10570.3,-600.727,63.7333,276.978,-70.223],[10534.3,-501.121,63.35,275.661,-69.9575],[10497.9,-402.16,62.9667,274.33,-69.6873],[10461.3,-303.855,62.5833,272.983,-69.4122],[10422.7,-201.984,62.1833,271.562,-69.12],[10383.8,-100.846,61.7833,270.124,-68.8221],[10344.6,-0.451568,61.3833,268.67,-68.5187],[10305.1,99.1882,60.9833,267.2,-68.2093],[10265.3,198.063,60.5833,265.714,-67.894],[10225.2,296.162,60.1833,264.212,-67.5726],[10183,397.512,59.7667,262.631,-67.231],[10140.5,497.997,59.35,261.033,-66.8825],[10097.6,597.604,58.9333,259.419,-66.5266],[10054.4,696.321,58.5167,257.788,-66.1634],[10009,798.029,58.0833,256.074,-65.7774],[9963.33,898.746,57.65,254.344,-65.383],[9917.24,998.459,57.2167,252.597,-64.9797],[9870.76,1097.15,56.7833,250.833,-64.5674],[9822.08,1198.55,56.3333,248.985,-64.1294],[9773,1298.82,55.8833,247.121,-63.681],[9723.49,1397.94,55.4333,245.24,-63.2219],[9671.71,1499.51,54.9667,243.273,-62.7341],[9619.49,1599.81,54.5,241.29,-62.2341],[9566.82,1698.82,54.0333,239.292,-61.7214],[9513.7,1796.53,53.5667,237.28,-61.1956],[9456.28,1899.76,53.0667,235.109,-60.6172],[9400.3,1998.08,52.5833,232.997,-60.0428]]], + [54,4776.01,[[10869,-2003.18,69.5667,294.105,-73.8998],[10840.3,-1904.49,69.2167,293.095,-73.713],[10810.1,-1801.56,68.85,292.024,-73.5143],[10781,-1703.77,68.5,290.988,-73.3217],[10750.2,-1601.8,68.1333,289.889,-73.1169],[10719.2,-1500.33,67.7667,288.777,-72.9088],[10689.4,-1403.94,67.4167,287.701,-72.7071],[10657.9,-1303.46,67.05,286.561,-72.4924],[10626.2,-1203.51,66.6833,285.406,-72.2744],[10594.2,-1104.08,66.3167,284.238,-72.0528],[10560.5,-1000.7,65.9333,283,-71.8172],[10528,-902.379,65.5667,281.802,-71.5881],[10493.8,-800.174,65.1833,280.535,-71.3446],[10460.7,-702.983,64.8167,279.307,-71.1077],[10425.9,-601.981,64.4333,278.009,-70.8557],[10390.9,-501.606,64.05,276.695,-70.5994],[10355.5,-401.868,63.6667,275.365,-70.3385],[10319.8,-302.776,63.2833,274.02,-70.0729],[10282.3,-200.074,62.8833,272.6,-69.7906],[10246.1,-102.33,62.5,271.223,-69.5152],[10208,-1.05375,62.1,269.77,-69.2224],[10169.6,99.4784,61.7,268.301,-68.924],[10130.8,199.256,61.3,266.814,-68.6198],[10091.8,298.269,60.9,265.312,-68.3097],[10052.4,396.506,60.5,263.792,-67.9935],[10011,498,60.0833,262.193,-67.6575],[9969.33,598.628,59.6667,260.575,-67.3145],[9927.29,698.378,59.25,258.941,-66.9643],[9884.91,797.237,58.8333,257.29,-66.6067],[9840.46,899.093,58.4,255.554,-66.2268],[9795.64,999.958,57.9667,253.801,-65.8384],[9750.45,1099.82,57.5333,252.031,-65.4413],[9704.87,1198.66,57.1,250.243,-65.0352],[9658.92,1296.47,56.6667,248.439,-64.6198],[9610.81,1396.93,56.2167,246.548,-64.1783],[9560.48,1499.9,55.75,244.569,-63.7092],[9511.54,1598.01,55.3,242.645,-63.2457],[9460.36,1698.51,54.8333,240.632,-62.753],[9408.74,1797.72,54.3667,238.603,-62.2477],[9354.81,1899.1,53.8833,236.486,-61.7105],[9300.42,1999.06,53.4,234.353,-61.1589]]], + [55,4881.25,[[10700.8,-2003.62,70.2167,294.948,-74.3961],[10672.9,-1904.39,69.8667,293.944,-74.2154],[10643.5,-1800.9,69.5,292.877,-74.0232],[10615.2,-1702.56,69.15,291.846,-73.837],[10585.3,-1600.01,68.7833,290.752,-73.6389],[10556.5,-1502.59,68.4333,289.694,-73.4469],[10526.1,-1401.01,68.0667,288.572,-73.2427],[10496.9,-1304.52,67.7167,287.488,-73.0446],[10466,-1203.93,67.35,286.338,-72.8339],[10434.9,-1103.87,66.9833,285.173,-72.6198],[10403.6,-1004.33,66.6167,283.994,-72.4022],[10370.5,-900.843,66.2333,282.746,-72.1709],[10338.7,-802.409,65.8667,281.537,-71.9459],[10305.1,-700.09,65.4833,280.257,-71.7066],[10272.7,-602.79,65.1167,279.018,-71.4739],[10238.6,-501.673,64.7333,277.707,-71.2265],[10204.2,-401.185,64.35,276.38,-70.9746],[10169.6,-301.332,63.9667,275.037,-70.7182],[10134.6,-202.126,63.5833,273.678,-70.4572],[10099.4,-103.574,63.2,272.303,-70.1915],[10062.3,-1.44616,62.8,270.852,-69.9091],[10025,99.9486,62.4,269.383,-69.6213],[9988.87,196.421,62.0167,267.959,-69.3403],[9950.9,296.348,61.6167,266.457,-69.0414],[9911.03,399.626,61.2,264.874,-68.7239],[9872.44,497.981,60.8,263.337,-68.4129],[9831.9,599.597,60.3833,261.718,-68.0824],[9792.68,696.333,59.9833,260.148,-67.7586],[9751.49,796.24,59.5667,258.494,-67.4143],[9708.29,899.198,59.1333,256.755,-67.0485],[9666.41,997.274,58.7167,255.065,-66.6891],[9622.5,1098.3,58.2833,253.29,-66.3071],[9578.22,1198.32,57.85,251.496,-65.9164],[9533.57,1297.33,57.4167,249.685,-65.5168],[9486.81,1399.04,56.9667,247.786,-65.0921],[9439.66,1499.63,56.5167,245.868,-64.6571],[9392.11,1599.06,56.0667,243.932,-64.2115],[9344.16,1697.34,55.6167,241.98,-63.7549],[9294.02,1798.01,55.15,239.937,-63.2695],[9243.45,1897.39,54.6833,237.877,-62.7716],[9190.62,1998.94,54.2,235.727,-62.2421]]], + [56,4985.01,[[10524.1,-2003.24,70.85,295.766,-74.8827],[10497,-1903.51,70.5,294.767,-74.708],[10469.7,-1804.19,70.15,293.754,-74.5307],[10440.9,-1700.61,69.7833,292.679,-74.3422],[10413.1,-1602.18,69.4333,291.64,-74.1594],[10385.1,-1504.2,69.0833,290.587,-73.9739],[10355.6,-1402.02,68.7167,289.47,-73.7766],[10325.8,-1300.35,68.35,288.338,-73.5761],[10297.2,-1203.77,68,287.245,-73.3818],[10267,-1103.09,67.6333,286.084,-73.175],[10236.5,-1002.94,67.2667,284.909,-72.9648],[10205.8,-903.306,66.9,283.719,-72.7512],[10174.8,-804.21,66.5333,282.514,-72.534],[10142.2,-701.191,66.15,281.239,-72.3032],[10110.7,-603.214,65.7833,280.003,-72.0786],[10077.6,-501.381,65.4,278.696,-71.8398],[10044.1,-400.167,65.0167,277.372,-71.5967],[10011.9,-303.94,64.65,276.09,-71.3601],[9977.95,-203.963,64.2667,274.734,-71.1085],[9942.22,-100.328,63.8667,273.302,-70.8411],[9907.71,-1.67972,63.4833,271.912,-70.58],[9872.92,96.3039,63.1,270.507,-70.3142],[9836.33,197.829,62.7,269.023,-70.0316],[9799.44,298.611,62.3,267.521,-69.7434],[9762.25,398.638,61.9,266.002,-69.4497],[9724.75,497.899,61.5,264.465,-69.1501],[9686.95,596.384,61.1,262.911,-68.8446],[9647.26,698.135,60.6833,261.274,-68.5198],[9607.24,799.02,60.2667,259.618,-68.1882],[9566.89,899.026,59.85,257.943,-67.8496],[9526.21,998.14,59.4333,256.251,-67.5037],[9485.19,1096.35,59.0167,254.54,-67.1503],[9442.19,1197.52,58.5833,252.742,-66.7746],[9398.83,1297.68,58.15,250.925,-66.3903],[9355.11,1396.82,57.7167,249.09,-65.9971],[9309.33,1498.67,57.2667,247.165,-65.5792],[9263.15,1599.4,56.8167,245.221,-65.1511],[9216.59,1698.98,56.3667,243.258,-64.7124],[9169.65,1797.39,55.9167,241.277,-64.2628],[9120.55,1898.2,55.45,239.204,-63.7847],[9071.04,1997.72,54.9833,237.112,-63.2941]]], + [57,5087.21,[[10338.9,-2002.1,71.4667,296.56,-75.3604],[10312.6,-1901.87,71.1167,295.565,-75.1915],[10286.1,-1802.06,70.7667,294.557,-75.0202],[10259.3,-1702.67,70.4167,293.536,-74.8463],[10232.4,-1603.71,70.0667,292.502,-74.6698],[10203.9,-1500.5,69.7,291.404,-74.4821],[10176.5,-1402.44,69.35,290.342,-74.3001],[10147.6,-1300.19,68.9833,289.216,-74.1066],[10119.8,-1203.05,68.6333,288.126,-73.9189],[10090.4,-1101.78,68.2667,286.971,-73.7192],[10060.8,-1001.02,67.9,285.8,-73.5162],[10030.9,-900.786,67.5333,284.614,-73.31],[10000.8,-801.077,67.1667,283.413,-73.1003],[9970.51,-701.903,66.8,282.197,-72.8872],[9939.95,-603.273,66.4333,280.965,-72.6705],[9907.75,-500.747,66.05,279.661,-72.4402],[9876.69,-403.251,65.6833,278.399,-72.216],[9843.97,-301.929,65.3,277.062,-71.9775],[9810.99,-201.235,64.9167,275.709,-71.7348],[9777.74,-101.177,64.5333,274.339,-71.4877],[9744.22,-1.76645,64.15,272.952,-71.2361],[9710.43,96.9892,63.7667,271.548,-70.9799],[9674.89,199.33,63.3667,270.066,-70.7075],[9640.56,296.717,62.9833,268.628,-70.4415],[9604.45,397.61,62.5833,267.11,-70.1586],[9568.04,497.748,62.1833,265.574,-69.8702],[9531.34,597.12,61.7833,264.021,-69.576],[9492.8,699.807,61.3667,262.383,-69.2633],[9455.5,797.581,60.9667,260.792,-68.9569],[9416.33,898.58,60.55,259.117,-68.6311],[9376.83,998.698,60.1333,257.422,-68.2983],[9337.02,1097.93,59.7167,255.709,-67.9584],[9296.88,1196.25,59.3,253.977,-67.611],[9254.79,1297.53,58.8667,252.156,-67.2416],[9212.35,1397.8,58.4333,250.316,-66.8638],[9169.56,1497.05,58,248.456,-66.4771],[9124.76,1599.03,57.55,246.505,-66.0659],[9079.57,1699.87,57.1,244.534,-65.6446],[9034.01,1799.56,56.65,242.543,-65.2129],[8988.07,1898.08,56.2,240.533,-64.7703],[8940.03,1999.01,55.7333,238.43,-64.2995]]], + [58,5187.75,[[10145.3,-2000.26,72.0667,297.328,-75.8298],[10121,-1904.34,71.7333,296.386,-75.6745],[10095.2,-1804.03,71.3833,295.383,-75.5091],[10069.2,-1704.13,71.0333,294.368,-75.3412],[10043.1,-1604.66,70.6833,293.339,-75.1709],[10015.4,-1500.91,70.3167,292.246,-74.9897],[9988.84,-1402.32,69.9667,291.19,-74.814],[9962.04,-1304.18,69.6167,290.119,-74.6357],[9933.75,-1201.84,69.25,288.983,-74.446],[9906.53,-1104.62,68.9,287.885,-74.2621],[9877.79,-1003.26,68.5333,286.719,-74.0664],[9848.82,-902.412,68.1667,285.538,-73.8675],[9819.62,-802.088,67.8,284.341,-73.6653],[9790.18,-702.29,67.4333,283.13,-73.4598],[9760.51,-603.029,67.0667,281.902,-73.2509],[9730.62,-504.31,66.7,280.659,-73.0385],[9699.11,-401.694,66.3167,279.343,-72.8126],[9668.73,-304.11,65.95,278.068,-72.5927],[9636.72,-202.696,65.5667,276.719,-72.3589],[9604.45,-101.911,65.1833,275.352,-72.1208],[9571.92,-1.76317,64.8,273.968,-71.8784],[9539.13,97.7381,64.4167,272.567,-71.6316],[9506.09,196.584,64.0333,271.149,-71.3803],[9471.32,299.018,63.6333,269.651,-71.113],[9437.73,396.494,63.25,268.198,-70.852],[9402.41,497.479,62.85,266.664,-70.5743],[9366.79,597.709,62.45,265.111,-70.2912],[9330.89,697.172,62.05,263.539,-70.0024],[9293.19,799.952,61.6333,261.883,-69.6954],[9256.7,897.816,61.2333,260.274,-69.3945],[9218.38,998.907,60.8167,258.578,-69.0745],[9179.75,1099.12,60.4,256.863,-68.7477],[9140.81,1198.43,59.9833,255.129,-68.4136],[9101.55,1296.84,59.5667,253.375,-68.0723],[9060.38,1398.22,59.1333,251.531,-67.7093],[9018.87,1498.58,58.7,249.667,-67.3378],[8977.02,1597.92,58.2667,247.782,-66.9576],[8933.2,1699.99,57.8167,245.805,-66.5532],[8890.66,1797.2,57.3833,243.881,-66.1543],[8846.11,1897.02,56.9333,241.863,-65.7299],[8799.53,1999.31,56.4667,239.749,-65.2784]]], + [59,5286.52,[[9944.54,-2002.64,72.6667,298.118,-76.2993],[9919.73,-1901.46,72.3167,297.134,-76.1418],[9894.73,-1800.68,71.9667,296.137,-75.9821],[9869.53,-1700.32,71.6167,295.126,-75.82],[9844.13,-1600.37,71.2667,294.102,-75.6556],[9818.53,-1500.85,70.9167,293.064,-75.4886],[9792.73,-1401.75,70.5667,292.012,-75.3192],[9766.74,-1303.09,70.2167,290.947,-75.1472],[9739.29,-1200.21,69.85,289.815,-74.9642],[9712.87,-1102.46,69.5,288.721,-74.7868],[9684.99,-1000.55,69.1333,287.56,-74.598],[9658.16,-903.734,68.7833,286.437,-74.4149],[9629.83,-802.815,68.4167,285.246,-74.22],[9601.28,-702.416,68.05,284.038,-74.0219],[9572.51,-602.546,67.6833,282.815,-73.8206],[9543.5,-503.211,67.3167,281.576,-73.6158],[9514.27,-404.419,66.95,280.322,-73.4077],[9483.47,-301.727,66.5667,278.993,-73.1862],[9453.76,-204.071,66.2,277.706,-72.9708],[9422.47,-102.582,65.8167,276.343,-72.7415],[9390.92,-1.72253,65.4333,274.962,-72.5082],[9359.12,98.4992,65.05,273.564,-72.2705],[9327.06,198.074,64.6667,272.148,-72.0285],[9294.75,296.992,64.2833,270.715,-71.782],[9260.77,399.501,63.8833,269.201,-71.5198],[9227.93,497.049,63.5,267.732,-71.2638],[9193.4,598.108,63.1,266.181,-70.9914],[9158.58,698.41,62.7,264.611,-70.7136],[9123.49,797.944,62.3,263.021,-70.4303],[9088.11,896.701,61.9,261.413,-70.1411],[9050.95,998.732,61.4833,259.717,-69.8336],[9013.5,1099.89,61.0667,258.002,-69.5194],[8977.25,1196.18,60.6667,256.336,-69.2114],[8937.67,1299.56,60.2333,254.51,-68.8704],[8899.29,1398.04,59.8167,252.734,-68.5351],[8859.06,1499.48,59.3833,250.866,-68.1784],[8818.49,1599.91,58.95,248.977,-67.8134],[8777.59,1699.32,58.5167,247.068,-67.4397],[8736.35,1797.69,58.0833,245.138,-67.057],[8693.18,1898.72,57.6333,243.113,-66.6498],[8649.64,1998.6,57.1833,241.066,-66.2324]]], + [60,5383.42,[[9735.35,-2004.51,73.25,298.883,-76.7614],[9711.3,-1902.87,72.9,297.904,-76.6095],[9687.07,-1801.63,72.55,296.912,-76.4555],[9662.64,-1700.8,72.2,295.907,-76.2992],[9638.02,-1600.37,71.85,294.888,-76.1406],[9613.2,-1500.37,71.5,293.855,-75.9796],[9588.19,-1400.78,71.15,292.808,-75.8163],[9562.99,-1301.63,70.8,291.748,-75.6504],[9537.59,-1202.91,70.45,290.673,-75.482],[9511.99,-1104.64,70.1,289.584,-75.3111],[9484.96,-1002.16,69.7333,288.428,-75.1292],[9457.71,-900.187,69.3667,287.257,-74.9443],[9431.5,-803.319,69.0167,286.124,-74.7651],[9403.83,-702.341,68.65,284.921,-74.5743],[9375.94,-601.883,68.2833,283.702,-74.3803],[9347.82,-501.954,67.9167,282.468,-74.1831],[9319.49,-402.561,67.55,281.217,-73.9826],[9290.93,-303.712,67.1833,279.95,-73.7787],[9260.83,-200.96,66.8,278.608,-73.5618],[9231.82,-103.248,66.4333,277.308,-73.3507],[9201.25,-1.7009,66.05,275.931,-73.1261],[9170.43,99.2162,65.6667,274.537,-72.8974],[9139.36,199.495,65.2833,273.124,-72.6645],[9108.04,299.125,64.9,271.693,-72.4273],[9076.48,398.098,64.5167,270.245,-72.1857],[9044.67,496.405,64.1333,268.778,-71.9395],[9011.21,598.264,63.7333,267.229,-71.6777],[8977.48,699.377,63.3333,265.661,-71.4106],[8943.47,799.732,62.9333,264.072,-71.1382],[8909.19,899.319,62.5333,262.464,-70.8602],[8874.64,998.126,62.1333,260.837,-70.5765],[8839.81,1096.14,61.7333,259.191,-70.287],[8803.24,1197.39,61.3167,257.455,-69.979],[8766.37,1297.75,60.9,255.698,-69.6642],[8729.2,1397.22,60.4833,253.921,-69.3425],[8690.23,1499.7,60.05,252.051,-69.0002],[8652.45,1597.31,59.6333,250.233,-68.6636],[8612.84,1697.82,59.2,248.32,-68.3053],[8572.9,1797.31,58.7667,246.386,-67.9385],[8531.09,1899.52,58.3167,244.355,-67.5481],[8490.49,1996.87,57.8833,242.378,-67.1629]]], + [61,5478.37,[[9516.73,-2001.07,73.8,299.576,-77.21],[9494.54,-1903.86,73.4667,298.649,-77.0705],[9471.06,-1802.17,73.1167,297.663,-76.9221],[9447.4,-1700.88,72.7667,296.663,-76.7715],[9424.69,-1604.79,72.4333,295.698,-76.6259],[9400.66,-1504.3,72.0833,294.671,-76.4709],[9376.45,-1404.23,71.7333,293.63,-76.3136],[9352.04,-1304.58,71.3833,292.575,-76.1539],[9326.27,-1200.64,71.0167,291.454,-75.984],[9301.47,-1101.88,70.6667,290.37,-75.8194],[9276.48,-1003.56,70.3167,289.271,-75.6521],[9250.1,-901.039,69.95,288.105,-75.4741],[9224.71,-803.643,69.6,286.976,-75.3016],[9197.91,-702.105,69.2333,285.778,-75.1179],[9170.9,-601.081,68.8667,284.564,-74.9311],[9143.67,-500.579,68.5,283.334,-74.7413],[9116.22,-400.606,68.1333,282.088,-74.5483],[9088.56,-301.17,67.7667,280.825,-74.352],[9060.69,-202.279,67.4,279.545,-74.1524],[9032.59,-103.94,67.0333,278.249,-73.9494],[9002.99,-1.72976,66.65,276.876,-73.7334],[8973.14,99.8586,66.2667,275.485,-73.5135],[8944.37,196.44,65.9,274.137,-73.2993],[8914.06,296.786,65.5167,272.711,-73.0714],[8883.5,396.484,65.1333,271.265,-72.8392],[8851.36,499.814,64.7333,269.738,-72.5923],[8820.31,598.157,64.35,268.255,-72.3511],[8789.02,695.823,63.9667,266.754,-72.1053],[8756.1,797.003,63.5667,265.168,-71.8438],[8722.92,897.423,63.1667,263.563,-71.577],[8689.48,997.075,62.7667,261.937,-71.3047],[8655.77,1095.95,62.3667,260.291,-71.0268],[8620.37,1198.09,61.95,258.556,-70.7312],[8584.68,1299.37,61.5333,256.799,-70.4291],[8548.69,1399.76,61.1167,255.02,-70.1203],[8512.42,1499.25,60.7,253.221,-69.8046],[8475.86,1597.84,60.2833,251.4,-69.4818],[8437.52,1699.38,59.85,249.484,-69.1382],[8398.87,1799.92,59.4167,247.546,-68.7865],[8359.91,1899.42,58.9833,245.586,-68.4263],[8320.62,1997.88,58.55,243.604,-68.0572]]], + [62,5571.27,[[9290.93,-2002.11,74.35,300.291,-77.6599],[9269.46,-1904.49,74.0167,299.37,-77.5256],[9246.74,-1802.37,73.6667,298.389,-77.3827],[9223.84,-1700.65,73.3167,297.394,-77.2376],[9201.87,-1604.14,72.9833,296.434,-77.0975],[9178.61,-1503.2,72.6333,295.412,-76.9482],[9155.18,-1402.67,72.2833,294.376,-76.7967],[9131.55,-1302.57,71.9333,293.325,-76.643],[9107.75,-1202.88,71.5833,292.261,-76.4868],[9083.76,-1103.63,71.2333,291.182,-76.3284],[9058.43,-1000.12,70.8667,290.036,-76.1598],[9034.05,-901.762,70.5167,288.927,-75.9963],[9009.49,-803.858,70.1667,287.803,-75.8303],[8983.56,-701.781,69.8,286.61,-75.6536],[8957.42,-600.211,69.4333,285.401,-75.4739],[8932.28,-503.738,69.0833,284.231,-75.2997],[8905.73,-403.182,68.7167,282.99,-75.1142],[8878.98,-303.156,68.35,281.731,-74.9256],[8852.01,-203.667,67.9833,280.456,-74.7337],[8823.59,-100.238,67.6,279.105,-74.5297],[8796.19,-1.87305,67.2333,277.796,-74.331],[8768.58,95.931,66.8667,276.47,-74.1289],[8739.49,197.572,66.4833,275.065,-73.9139],[8710.16,298.582,66.1,273.641,-73.6949],[8680.6,398.951,65.7167,272.199,-73.4718],[8650.8,498.67,65.3333,270.738,-73.2445],[8620.77,597.729,64.95,269.258,-73.013],[8590.5,696.12,64.5667,267.759,-72.777],[8558.66,798.066,64.1667,266.176,-72.5259],[8526.57,899.262,63.7667,264.572,-72.2698],[8494.22,999.698,63.3667,262.947,-72.0084],[8461.6,1099.36,62.9667,261.302,-71.7416],[8428.73,1198.24,62.5667,259.636,-71.4693],[8395.6,1296.33,62.1667,257.95,-71.1913],[8360.81,1397.65,61.75,256.173,-70.8954],[8325.74,1498.08,61.3333,254.373,-70.5929],[8290.39,1597.61,60.9167,252.551,-70.2836],[8254.75,1696.23,60.5,250.708,-69.9673],[8217.39,1797.82,60.0667,248.768,-69.6306],[8179.72,1898.39,59.6333,246.805,-69.2858],[8141.75,1997.92,59.2,244.819,-68.9325]]], + [63,5662.01,[[9056.89,-2002.88,74.8833,300.982,-78.1045],[9036.14,-1904.87,74.55,300.065,-77.9754],[9014.17,-1802.34,74.2,299.09,-77.8378],[8992.03,-1700.19,73.85,298.1,-77.6982],[8970.79,-1603.28,73.5167,297.145,-77.5634],[8948.31,-1501.91,73.1667,296.128,-77.4198],[8925.65,-1400.95,72.8167,295.097,-77.274],[8902.81,-1300.4,72.4667,294.051,-77.1261],[8879.79,-1200.27,72.1167,292.991,-76.9759],[8856.6,-1100.56,71.7667,291.917,-76.8235],[8833.22,-1001.29,71.4167,290.828,-76.6687],[8809.67,-902.448,71.0667,289.724,-76.5115],[8785.93,-804.054,70.7167,288.605,-76.3519],[8760.86,-701.457,70.35,287.417,-76.1821],[8736.75,-603.99,70,286.268,-76.0173],[8711.29,-502.379,69.6333,285.047,-75.842],[8685.63,-401.284,69.2667,283.81,-75.6637],[8659.76,-300.712,68.9,282.556,-75.4824],[8633.69,-200.671,68.5333,281.285,-75.298],[8607.42,-101.169,68.1667,279.996,-75.1105],[8580.94,-2.21246,67.8,278.691,-74.9198],[8554.26,96.1894,67.4333,277.369,-74.7257],[8526.14,198.463,67.05,275.967,-74.5192],[8499.03,295.706,66.6833,274.61,-74.3182],[8470.47,396.751,66.3,273.171,-74.1042],[8441.68,497.154,65.9167,271.714,-73.8861],[8412.66,596.906,65.5333,270.237,-73.664],[8383.42,695.997,65.15,268.741,-73.4377],[8352.65,798.682,64.75,267.16,-73.1968],[8322.94,896.395,64.3667,265.625,-72.9615],[8291.69,997.62,63.9667,264.003,-72.711],[8260.18,1098.08,63.5667,262.36,-72.4553],[8228.43,1197.77,63.1667,260.696,-72.1944],[8196.42,1296.68,62.7667,259.011,-71.928],[8162.81,1398.86,62.35,257.234,-71.6444],[8130.28,1496.13,61.95,255.506,-71.3663],[8096.14,1596.58,61.5333,253.684,-71.0702],[8061.71,1696.13,61.1167,251.84,-70.7674],[8025.62,1798.69,60.6833,249.899,-70.4451],[7990.64,1896.36,60.2667,248.009,-70.1279],[7953.97,1996.94,59.8333,246.021,-69.7901]]], + [64,5750.52,[[8814.67,-2003.45,75.4,301.649,-78.5446],[8793.62,-1900.15,75.05,300.692,-78.4142],[8773.42,-1802.13,74.7167,299.767,-78.2882],[8753.06,-1704.45,74.3833,298.83,-78.1605],[8731.52,-1602.28,74.0333,297.832,-78.0244],[8709.81,-1500.49,73.6833,296.82,-77.8864],[8688.98,-1403.93,73.35,295.843,-77.753],[8666.93,-1302.94,73,294.803,-77.6109],[8644.71,-1202.35,72.65,293.748,-77.4667],[8622.32,-1102.19,72.3,292.679,-77.3203],[8599.75,-1002.46,71.95,291.595,-77.1716],[8577.01,-903.153,71.6,290.496,-77.0207],[8554.09,-804.287,71.25,289.382,-76.8674],[8529.88,-701.189,70.8833,288.199,-76.7043],[8506.6,-603.239,70.5333,287.054,-76.5461],[8482.02,-501.115,70.1667,285.838,-76.3777],[8458.37,-404.108,69.8167,284.661,-76.2144],[8433.41,-302.986,69.45,283.412,-76.0404],[8408.24,-202.389,69.0833,282.146,-75.8635],[8382.88,-102.324,68.7167,280.862,-75.6836],[8357.32,-2.79772,68.35,279.561,-75.5006],[8331.56,96.1807,67.9833,278.243,-75.3145],[8304.42,199.064,67.6,276.846,-75.1164],[8278.25,296.898,67.2333,275.491,-74.9235],[8250.67,398.568,66.85,274.056,-74.7183],[8222.88,499.604,66.4667,272.602,-74.5091],[8194.87,599.996,66.0833,271.128,-74.2961],[8166.63,699.735,65.7,269.635,-74.079],[8138.17,798.812,65.3167,268.122,-73.8577],[8109.49,897.217,64.9333,266.589,-73.6321],[8079.32,999.173,64.5333,264.969,-73.3921],[8050.18,1096.18,64.15,263.397,-73.1575],[8019.54,1196.65,63.75,261.735,-72.9076],[7988.65,1296.34,63.35,260.051,-72.6526],[7956.22,1399.36,62.9333,258.275,-72.3812],[7924.83,1497.44,62.5333,256.548,-72.115],[7891.87,1598.74,62.1167,254.726,-71.8315],[7858.65,1699.16,61.7,252.881,-71.5416],[7825.16,1798.67,61.2833,251.012,-71.2451],[7791.41,1897.26,60.8667,249.121,-70.9417],[7756.02,1998.81,60.4333,247.131,-70.6187]]], + [65,5836.67,[[8564.31,-2003.89,75.9,302.291,-78.9808],[8544.01,-1900.21,75.55,301.339,-78.8556],[8524.52,-1801.82,75.2167,300.419,-78.7346],[8504.89,-1703.78,74.8833,299.487,-78.6119],[8484.11,-1601.21,74.5333,298.494,-78.4813],[8464.17,-1503.88,74.2,297.535,-78.3551],[8443.07,-1402.08,73.85,296.515,-78.2206],[8421.81,-1300.67,73.5,295.479,-78.0842],[8401.4,-1204.48,73.1667,294.48,-77.9523],[8379.81,-1103.88,72.8167,293.416,-77.8119],[8358.04,-1003.7,72.4667,292.337,-77.6693],[8336.11,-903.948,72.1167,291.243,-77.5245],[8314.01,-804.627,71.7667,290.133,-77.3774],[8290.68,-701.047,71.4,288.955,-77.221],[8268.22,-602.63,71.05,287.815,-77.0692],[8244.52,-500.012,70.6833,286.603,-76.9077],[8221.71,-402.528,70.3333,285.431,-76.751],[8197.64,-300.901,69.9667,284.186,-76.5842],[8174.48,-204.376,69.6167,282.981,-76.4223],[8150.03,-103.767,69.25,281.702,-76.2498],[8125.38,-3.69241,68.8833,280.406,-76.0745],[8100.55,95.8419,68.5167,279.092,-75.8961],[8074.38,199.314,68.1333,277.699,-75.7063],[8049.15,297.717,67.7667,276.348,-75.5215],[8022.56,399.989,67.3833,274.917,-75.3248],[7996.93,497.229,67.0167,273.529,-75.1332],[7969.92,598.266,66.6333,272.059,-74.9292],[7942.7,698.658,66.25,270.569,-74.7214],[7915.27,798.396,65.8667,269.059,-74.5095],[7887.62,897.47,65.4833,267.529,-74.2936],[7859.76,995.87,65.1,265.98,-74.0735],[7830.45,1097.82,64.7,264.341,-73.8392],[7800.91,1199.01,64.3,262.681,-73.6001],[7771.13,1299.44,63.9,260.998,-73.356],[7741.11,1399.09,63.5,259.294,-73.1067],[7710.86,1497.95,63.1,257.568,-72.8521],[7680.37,1596.02,62.7,255.82,-72.592],[7648.35,1697.3,62.2833,253.975,-72.3151],[7616.08,1797.69,61.8667,252.107,-72.0319],[7583.55,1897.18,61.45,250.216,-71.742],[7549.45,1999.66,61.0167,248.223,-71.4334]]], + [66,5920.41,[[8305.88,-2004.3,76.3833,302.911,-79.4137],[8286.33,-1900.26,76.0333,301.964,-79.2935],[8267.56,-1801.51,75.7,301.049,-79.1775],[8248.65,-1703.11,75.3667,300.121,-79.0599],[8228.64,-1600.16,75.0167,299.133,-78.9346],[8209.43,-1502.47,74.6833,298.179,-78.8135],[8189.11,-1400.28,74.3333,297.163,-78.6846],[8169.6,-1303.32,74,296.182,-78.56],[8148.96,-1201.91,73.65,295.137,-78.4273],[8128.16,-1100.91,73.3,294.077,-78.2926],[8107.2,-1000.32,72.95,293.002,-78.1558],[8086.07,-900.155,72.6,291.913,-78.017],[8064.78,-800.416,72.25,290.807,-77.876],[8043.33,-701.111,71.9,289.687,-77.7328],[8021.71,-602.246,71.55,288.551,-77.5874],[7999.92,-503.828,71.2,287.399,-77.4397],[7976.91,-401.208,70.8333,286.176,-77.2825],[7954.78,-303.724,70.4833,284.992,-77.13],[7931.42,-202.097,70.1167,283.735,-76.9676],[7907.87,-100.99,69.75,282.46,-76.8024],[7884.14,-0.409736,69.3833,281.167,-76.6345],[7860.22,99.6359,69.0167,279.856,-76.4636],[7836.11,199.139,68.65,278.527,-76.2897],[7811.81,298.092,68.2833,277.18,-76.1128],[7787.33,396.486,67.9167,275.815,-75.9328],[7761.54,498.747,67.5333,274.368,-75.7412],[7736.67,595.973,67.1667,272.966,-75.5546],[7710.47,696.996,66.7833,271.48,-75.3558],[7684.06,797.371,66.4,269.973,-75.1533],[7657.44,897.091,66.0167,268.446,-74.9468],[7630.61,996.144,65.6333,266.899,-74.7364],[7602.4,1098.78,65.2333,265.263,-74.5124],[7575.15,1196.45,64.85,263.674,-74.2934],[7546.49,1297.61,64.45,261.994,-74.0602],[7517.6,1398.01,64.05,260.292,-73.8221],[7488.48,1497.63,63.65,258.567,-73.5789],[7459.13,1596.46,63.25,256.82,-73.3306],[7428.31,1698.55,62.8333,254.976,-73.0661],[7397.25,1799.75,62.4167,253.108,-72.7955],[7367.19,1896.07,62.0167,251.292,-72.53],[7334.37,1999.46,61.5833,249.299,-72.2355]]], + [67,6001.6,[[8039.44,-2004.78,76.85,303.507,-79.8438],[8020.64,-1900.39,76.5,302.565,-79.7288],[8002.59,-1801.31,76.1667,301.655,-79.6176],[7984.41,-1702.56,75.8333,300.732,-79.5049],[7966.08,-1604.16,75.5,299.796,-79.3907],[7946.69,-1501.21,75.15,298.799,-79.269],[7928.08,-1403.51,74.8167,297.836,-79.1514],[7908.38,-1301.32,74.4667,296.81,-79.0261],[7889.48,-1204.37,74.1333,295.82,-78.9052],[7869.48,-1102.96,73.7833,294.765,-78.7762],[7849.33,-1001.96,73.4333,293.695,-78.6454],[7829.02,-901.379,73.0833,292.61,-78.5125],[7808.54,-801.219,72.7333,291.51,-78.3776],[7787.91,-701.487,72.3833,290.394,-78.2406],[7767.12,-602.191,72.0333,289.263,-78.1015],[7746.17,-503.335,71.6833,288.115,-77.9602],[7724.05,-400.252,71.3167,286.897,-77.8097],[7702.77,-302.32,70.9667,285.717,-77.6638],[7680.3,-200.219,70.6,284.463,-77.5085],[7658.69,-103.237,70.25,283.25,-77.3577],[7635.88,-2.14664,69.8833,281.962,-77.1971],[7612.88,98.4156,69.5167,280.656,-77.0338],[7589.7,198.441,69.15,279.331,-76.8676],[7566.35,297.923,68.7833,277.988,-76.6985],[7542.81,396.853,68.4167,276.627,-76.5264],[7518.01,499.68,68.0333,275.184,-76.3433],[7494.1,597.455,67.6667,273.784,-76.1649],[7468.9,699.058,67.2833,272.301,-75.975],[7444.62,795.645,66.9167,270.863,-75.7899],[7419.04,895.987,66.5333,269.34,-75.5928],[7392.13,999.989,66.1333,267.728,-75.383],[7366.13,1098.98,65.75,266.162,-75.178],[7339.93,1197.28,65.3667,264.575,-74.9689],[7312.38,1299.13,64.9667,262.897,-74.7462],[7285.77,1396.02,64.5833,261.268,-74.5285],[7257.79,1496.37,64.1833,259.545,-74.2965],[7229.58,1595.94,63.7833,257.8,-74.0596],[7199.96,1698.81,63.3667,255.957,-73.8074],[7171.31,1796.74,62.9667,254.164,-73.5598],[7141.22,1897.89,62.55,252.273,-73.2961],[7110.89,1998.13,62.1333,250.356,-73.0262]]], + [68,6080.2,[[7764.19,-2000.36,77.2833,304.037,-80.2667],[7747,-1900.62,76.95,303.144,-80.1618],[7729.67,-1801.22,76.6167,302.238,-80.0555],[7712.21,-1702.14,76.2833,301.32,-79.9477],[7694.61,-1603.41,75.95,300.388,-79.8384],[7675.99,-1500.1,75.6,299.395,-79.7221],[7658.12,-1402.07,75.2667,298.437,-79.6097],[7640.12,-1304.39,74.9333,297.465,-79.4956],[7621.06,-1202.21,74.5833,296.429,-79.3742],[7601.86,-1100.43,74.2333,295.379,-79.2509],[7583.43,-1003.87,73.9,294.364,-79.1318],[7563.93,-902.891,73.55,293.284,-79.0048],[7544.28,-802.326,73.2,292.189,-78.8759],[7524.48,-702.184,72.85,291.077,-78.745],[7504.52,-602.472,72.5,289.95,-78.6121],[7484.41,-503.196,72.15,288.807,-78.4771],[7464.15,-404.362,71.8,287.649,-78.34],[7442.75,-301.304,71.4333,286.417,-78.194],[7422.16,-203.397,71.0833,285.225,-78.0524],[7400.43,-101.323,70.7167,283.959,-77.9015],[7379.53,-4.36968,70.3667,282.733,-77.7552],[7357.46,96.6899,70,281.431,-77.5993],[7335.21,197.219,69.6333,280.11,-77.4407],[7312.8,297.211,69.2667,278.771,-77.2793],[7290.21,396.656,68.9,277.414,-77.1151],[7267.44,495.547,68.5333,276.037,-76.948],[7243.45,598.333,68.15,274.578,-76.7701],[7220.33,696.066,67.7833,273.163,-76.5968],[7195.96,797.622,67.4,271.663,-76.4122],[7171.4,898.536,67.0167,270.143,-76.2241],[7146.65,998.799,66.6333,268.601,-76.0324],[7121.71,1098.4,66.25,267.038,-75.8369],[7096.57,1197.33,65.8667,265.453,-75.6375],[7070.13,1299.84,65.4667,263.778,-75.4253],[7044.59,1397.37,65.0833,262.15,-75.2177],[7017.73,1498.39,64.6833,260.429,-74.9966],[6990.66,1598.63,64.2833,258.684,-74.7708],[6963.38,1698.1,63.8833,256.916,-74.5401],[6935.88,1796.76,63.4833,255.125,-74.3043],[6907.02,1898.68,63.0667,253.233,-74.0532],[6877.91,1999.7,62.65,251.317,-73.7962]]], + [69,6156.09,[[7481.96,-2001.13,77.7167,304.589,-80.6934],[7465.48,-1901.09,77.3833,303.701,-80.5933],[7448.87,-1801.38,77.05,302.799,-80.4918],[7432.14,-1701.99,76.7167,301.885,-80.3889],[7415.28,-1602.93,76.3833,300.957,-80.2845],[7398.29,-1504.21,76.05,300.017,-80.1788],[7380.31,-1400.92,75.7,299.015,-80.0661],[7363.05,-1302.91,75.3667,298.047,-79.9573],[7344.79,-1200.38,75.0167,297.016,-79.8413],[7327.27,-1103.1,74.6833,296.02,-79.7293],[7308.73,-1001.34,74.3333,294.959,-79.6099],[7290.93,-904.812,74,293.934,-79.4945],[7272.1,-803.857,73.65,292.843,-79.3716],[7253.13,-703.32,73.3,291.736,-79.2468],[7234.01,-603.209,72.95,290.614,-79.12],[7214.74,-503.529,72.6,289.475,-78.9912],[7195.32,-404.287,72.25,288.32,-78.8604],[7174.82,-300.795,71.8833,287.093,-78.7212],[7155.09,-202.469,71.5333,285.905,-78.5862],[7135.22,-104.6,71.1833,284.7,-78.4489],[7114.24,-2.5682,70.8167,283.42,-78.3027],[7093.09,98.9465,70.45,282.122,-78.154],[7071.77,199.936,70.0833,280.805,-78.0028],[7051.27,295.839,69.7333,279.53,-77.856],[7029.63,395.781,69.3667,278.177,-77.6996],[7006.82,499.68,68.9833,276.741,-77.5331],[6984.84,598.492,68.6167,275.349,-77.3709],[6962.69,696.74,68.25,273.937,-77.2058],[6939.34,798.841,67.8667,272.44,-77.03],[6916.84,895.908,67.5,270.989,-76.8587],[6893.13,996.757,67.1167,269.45,-76.6762],[6869.24,1096.95,66.7333,267.89,-76.4901],[6845.16,1196.48,66.35,266.309,-76.3004],[6819.84,1299.62,65.95,264.636,-76.0984],[6795.38,1397.77,65.5667,263.01,-75.9009],[6769.65,1499.44,65.1667,261.29,-75.6905],[6744.8,1596.15,64.7833,259.62,-75.4846],[6718.68,1696.31,64.3833,257.854,-75.2653],[6691.24,1799.8,63.9667,255.989,-75.0317],[6664.7,1898.34,63.5667,254.174,-74.8024],[6637.95,1996.06,63.1667,252.335,-74.568]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 7114.24; +_maxRange = 11111.7; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg8.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg8.sqf new file mode 100644 index 0000000000..5e5f489128 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_HA_chg8.sqf @@ -0,0 +1,41 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg8 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,4981.82,[[14457.7,-2003.16,70.55,298.77,-71.0307],[14423.6,-1904.46,70.2,297.887,-70.8152],[14387.5,-1801.53,69.8333,296.951,-70.5863],[14352.8,-1703.71,69.4833,296.048,-70.3645],[14316.2,-1601.7,69.1167,295.091,-70.1289],[14279.3,-1500.17,68.75,294.124,-69.8898],[14243.8,-1403.72,68.4,293.191,-69.6582],[14206.3,-1303.16,68.0333,292.202,-69.412],[14168.4,-1203.1,67.6667,291.203,-69.1622],[14130.3,-1103.56,67.3,290.194,-68.9086],[14090.1,-1000.04,66.9167,289.127,-68.6393],[14051.4,-901.563,66.55,288.096,-68.3777],[14012.3,-803.616,66.1833,287.054,-68.1121],[13971.1,-701.794,65.8,285.954,-67.8301],[13929.6,-600.57,65.4167,284.842,-67.5435],[13889.5,-504.313,65.05,283.769,-67.265],[13847.3,-404.282,64.6667,282.635,-66.9692],[13802.9,-300.565,64.2667,281.441,-66.6554],[13760,-201.815,63.8833,280.285,-66.3495],[13716.7,-103.704,63.5,279.118,-66.0387],[13671.2,-2.01782,63.1,277.889,-65.7088],[13625.3,98.9525,62.7,276.65,-65.3731],[13579,199.198,62.3,275.398,-65.0316],[13532.3,298.708,61.9,274.136,-64.684],[13485.2,397.473,61.5,272.863,-64.3303],[13435.8,499.549,61.0833,271.526,-63.9551],[13387.9,596.762,60.6833,270.232,-63.5884],[13337.6,697.2,60.2667,268.873,-63.1994],[13286.9,796.784,59.85,267.503,-62.803],[13233.7,899.434,59.4167,266.068,-62.3829],[13182.1,997.242,59,264.678,-61.9711],[13127.9,1098.02,58.5667,263.223,-61.5344],[13073.4,1197.82,58.1333,261.758,-61.0891],[13018.3,1296.64,57.7,260.284,-60.6349],[12960.6,1398.19,57.25,258.744,-60.1535],[12902.4,1498.65,56.8,257.195,-59.662],[12843.7,1598.01,56.35,255.639,-59.1602],[12782.3,1699.85,55.8833,254.017,-58.6286],[12722.5,1796.9,55.4333,252.447,-58.1048],[12657.8,1899.84,54.95,250.754,-57.5299],[12594.7,1997.96,54.4833,249.115,-56.9622]]], + [46,5126.62,[[14339,-2002.9,71.4167,299.814,-71.604],[14305.7,-1903.53,71.0667,298.936,-71.3955],[14272.2,-1804.57,70.7167,298.049,-71.1841],[14236.9,-1701.34,70.35,297.108,-70.9595],[14202.8,-1603.25,70,296.2,-70.742],[14166.8,-1500.95,69.6333,295.238,-70.5108],[14132.2,-1403.74,69.2833,294.309,-70.2869],[14095.7,-1302.39,68.9167,293.325,-70.049],[14058.9,-1201.53,68.55,292.331,-69.8075],[14021.7,-1101.17,68.1833,291.325,-69.5623],[13984.3,-1001.32,67.8167,290.308,-69.3134],[13946.5,-901.981,67.45,289.281,-69.0608],[13908.5,-803.167,67.0833,288.242,-68.8043],[13868.4,-700.426,66.7,287.145,-68.5319],[13829.7,-602.702,66.3333,286.085,-68.2672],[13788.9,-501.117,65.95,284.964,-67.9861],[13747.8,-400.134,65.5667,283.832,-67.7004],[13708.2,-304.113,65.2,282.739,-67.4228],[13664.6,-200.01,64.8,281.534,-67.1149],[13622.4,-100.885,64.4167,280.367,-66.8148],[13579.9,-2.3966,64.0333,279.189,-66.5098],[13535.2,99.6863,63.6333,277.949,-66.1861],[13492.1,196.848,63.25,276.749,-65.8705],[13446.6,297.528,62.85,275.485,-65.5356],[13400.8,397.476,62.45,274.209,-65.1947],[13354.6,496.683,62.05,272.922,-64.8477],[13306.1,599.225,61.6333,271.57,-64.4797],[13259.1,696.888,61.2333,270.26,-64.1199],[13209.7,797.799,60.8167,268.885,-63.7381],[13160,897.86,60.4,267.498,-63.3492],[13109.8,997.061,59.9833,266.1,-62.9528],[13057.1,1099.3,59.55,264.635,-62.5326],[13006,1196.71,59.1333,263.216,-62.1205],[12952.5,1297.07,58.7,261.73,-61.6836],[12898.5,1396.44,58.2667,260.234,-61.2378],[12841.9,1498.57,57.8167,258.67,-60.7653],[12784.8,1599.62,57.3667,257.096,-60.2829],[12727.2,1699.56,56.9167,255.513,-59.7901],[12669.1,1798.39,56.4667,253.922,-59.2868],[12608.3,1899.67,56,252.264,-58.7535],[12547,1999.72,55.5333,250.599,-58.2082]]], + [47,5270.58,[[14210.3,-2001.71,72.2667,300.838,-72.1602],[14178,-1901.67,71.9167,299.966,-71.9585],[14145.3,-1802.04,71.5667,299.084,-71.754],[14112.4,-1702.82,71.2167,298.192,-71.5467],[14079.3,-1604.02,70.8667,297.29,-71.3364],[14044.2,-1500.97,70.5,296.333,-71.1129],[14010.5,-1403.04,70.15,295.41,-70.8965],[13975,-1300.92,69.7833,294.431,-70.6665],[13940.7,-1203.89,69.4333,293.487,-70.4438],[13904.5,-1102.72,69.0667,292.486,-70.207],[13868.1,-1002.05,68.7,291.474,-69.9666],[13831.3,-901.887,68.3333,290.451,-69.7226],[13794.3,-802.234,67.9667,289.417,-69.4748],[13756.9,-703.1,67.6,288.371,-69.2232],[13717.6,-600.023,67.2167,287.266,-68.9561],[13679.6,-501.973,66.85,286.197,-68.6965],[13639.6,-400.044,66.4667,285.068,-68.4208],[13601,-303.108,66.1,283.977,-68.1529],[13560.3,-202.36,65.7167,282.825,-67.8682],[13519.3,-102.228,65.3333,281.66,-67.5789],[13478,-2.72031,64.95,280.484,-67.2847],[13436.3,96.1547,64.5667,279.295,-66.9857],[13392.4,198.645,64.1667,278.043,-66.6682],[13350.1,296.2,63.7833,276.832,-66.3588],[13305.5,397.294,63.3833,275.556,-66.0303],[13260.5,497.66,62.9833,274.267,-65.696],[13215.2,597.289,62.5833,272.967,-65.3556],[13169.5,696.17,62.1833,271.654,-65.0092],[13121.5,798.366,61.7667,270.275,-64.6416],[13073,899.727,61.35,268.883,-64.267],[13026.1,996.239,60.95,267.536,-63.9008],[12974.9,1099.9,60.5167,266.064,-63.4964],[12925.3,1198.69,60.1,264.637,-63.0998],[12875.2,1296.6,59.6833,263.199,-62.6957],[12822.6,1397.48,59.25,261.693,-62.267],[12769.6,1497.38,58.8167,260.175,-61.8296],[12716.2,1596.29,58.3833,258.647,-61.3832],[12660.2,1697.94,57.9333,257.049,-60.91],[12603.7,1798.49,57.4833,255.441,-60.4265],[12546.8,1897.92,57.0333,253.824,-59.9327],[12487.2,1999.85,56.5667,252.137,-59.4092]]], + [48,5413.58,[[14073.1,-2004.39,73.1167,301.882,-72.7097],[14041.6,-1903.7,72.7667,301.017,-72.5147],[14009.8,-1803.4,72.4167,300.142,-72.317],[13977.8,-1703.51,72.0667,299.256,-72.1166],[13945.5,-1604.02,71.7167,298.359,-71.9133],[13911.4,-1500.25,71.35,297.409,-71.6973],[13878.6,-1401.62,71,296.491,-71.4881],[13845.5,-1303.43,70.65,295.563,-71.276],[13810.6,-1201.02,70.2833,294.579,-71.0505],[13777,-1103.71,69.9333,293.629,-70.8321],[13741.5,-1002.25,69.5667,292.623,-70.6],[13705.7,-901.285,69.2,291.605,-70.3643],[13669.7,-800.822,68.8333,290.575,-70.125],[13633.3,-700.868,68.4667,289.534,-69.882],[13596.7,-601.431,68.1,288.481,-69.6353],[13559.7,-502.517,67.7333,287.417,-69.3848],[13522.5,-404.133,67.3667,286.341,-69.1304],[13483.2,-301.853,66.9833,285.204,-68.8602],[13443.6,-200.169,66.6,284.054,-68.5856],[13405.4,-103.471,66.2333,282.943,-68.3186],[13365.2,-2.97721,65.85,281.769,-68.035],[13324.7,96.8956,65.4667,280.583,-67.7466],[13283.8,196.139,65.0833,279.385,-67.4534],[13240.7,299.017,64.6833,278.121,-67.1421],[13199.2,396.947,64.3,276.898,-66.8387],[13155.4,498.435,63.9,275.61,-66.5166],[13111.3,599.2,63.5,274.309,-66.1887],[13066.8,699.23,63.1,272.995,-65.8549],[13022,798.516,62.7,271.668,-65.515],[12976.8,897.048,62.3,270.33,-65.169],[12929.3,998.872,61.8833,268.923,-64.8018],[12881.4,1099.85,61.4667,267.503,-64.4275],[12833.1,1199.98,61.05,266.071,-64.0461],[12784.4,1299.25,60.6333,264.626,-63.6572],[12735.2,1397.64,60.2167,263.17,-63.2608],[12683.7,1499.02,59.7833,261.643,-62.8402],[12631.8,1599.42,59.35,260.105,-62.411],[12579.3,1698.84,58.9167,258.555,-61.973],[12526.5,1797.26,58.4833,256.994,-61.5259],[12471.1,1898.39,58.0333,255.361,-61.0517],[12415.3,1998.41,57.5833,253.718,-60.5671]]], + [49,5555.48,[[13924.5,-2001.44,73.9333,302.863,-73.2346],[13893.8,-1900.13,73.5833,302.005,-73.046],[13864.4,-1804.01,73.25,301.177,-72.8639],[13833.2,-1703.47,72.9,300.298,-72.6701],[13801.8,-1603.33,72.55,299.408,-72.4736],[13770.1,-1503.59,72.2,298.507,-72.2744],[13738.2,-1404.27,71.85,297.596,-72.0724],[13704.4,-1300.67,71.4833,296.63,-71.8577],[13672,-1202.22,71.1333,295.697,-71.6497],[13639.3,-1104.19,70.7833,294.753,-71.4388],[13604.7,-1001.97,70.4167,293.752,-71.2146],[13569.9,-900.229,70.05,292.74,-70.987],[13536.4,-803.575,69.7,291.762,-70.7664],[13501,-702.806,69.3333,290.727,-70.532],[13465.4,-602.544,68.9667,289.679,-70.294],[13429.4,-502.795,68.6,288.62,-70.0523],[13393.2,-403.566,68.2333,287.548,-69.8068],[13355,-300.392,67.85,286.416,-69.546],[13318.1,-202.251,67.4833,285.32,-69.2927],[13279.3,-100.229,67.1,284.162,-69.0235],[13241.9,-3.20478,66.7333,283.042,-68.7618],[13202.4,97.6329,66.35,281.859,-68.4838],[13162.6,197.853,65.9667,280.664,-68.2011],[13122.5,297.446,65.5833,279.455,-67.9137],[13082.1,396.405,65.2,278.234,-67.6213],[13039.5,498.979,64.8,276.947,-67.311],[12998.4,596.612,64.4167,275.701,-67.0084],[12955.2,697.785,64.0167,274.387,-66.6871],[12911.6,798.228,63.6167,273.061,-66.3599],[12867.6,897.93,63.2167,271.721,-66.0268],[12823.3,996.881,62.8167,270.369,-65.6877],[12776.7,1099.15,62.4,268.947,-65.3277],[12731.6,1196.53,62,267.569,-64.9756],[12684.3,1297.14,61.5833,266.121,-64.6018],[12636.5,1396.9,61.1667,264.659,-64.2208],[12586.4,1499.71,60.7333,263.126,-63.8165],[12537.9,1597.67,60.3167,261.64,-63.42],[12486.9,1698.6,59.8833,260.081,-62.9993],[12435.5,1798.54,59.45,258.51,-62.5698],[12383.7,1897.48,59.0167,256.927,-62.1313],[12329.5,1999.17,58.5667,255.271,-61.6662]]], + [50,5696.18,[[13767.5,-2002.56,74.75,303.862,-73.7541],[13737.6,-1900.63,74.4,303.011,-73.5717],[13708.9,-1803.92,74.0667,302.19,-73.3957],[13678.6,-1702.75,73.7167,301.317,-73.2084],[13648,-1601.97,73.3667,300.434,-73.0185],[13617.2,-1501.6,73.0167,299.54,-72.826],[13586.1,-1401.62,72.6667,298.635,-72.6307],[13554.8,-1302.07,72.3167,297.72,-72.4327],[13523.2,-1202.92,71.9667,296.793,-72.2318],[13491.4,-1104.2,71.6167,295.855,-72.0282],[13457.8,-1001.24,71.25,294.861,-71.8116],[13425.5,-903.404,70.9,293.901,-71.6019],[13391.3,-801.38,70.5333,292.883,-71.3789],[13358.5,-704.451,70.1833,291.9,-71.1629],[13323.8,-603.392,69.8167,290.858,-70.9332],[13288.8,-502.836,69.45,289.804,-70.7],[13253.5,-402.791,69.0833,288.738,-70.4632],[13218,-303.264,68.7167,287.66,-70.2226],[13182.2,-204.262,68.35,286.569,-69.9784],[13144.4,-101.329,67.9667,285.416,-69.7188],[13108,-3.42342,67.6,284.301,-69.4666],[13069.6,98.3474,67.2167,283.122,-69.1986],[13030.9,199.512,66.8333,281.93,-68.9261],[12993.6,295.702,66.4667,280.777,-68.6612],[12952.6,399.987,66.0667,279.506,-68.3672],[12912.9,499.28,65.6833,278.274,-68.0807],[12873,597.933,65.3,277.03,-67.7892],[12832.7,695.936,64.9167,275.773,-67.4927],[12790.3,797.497,64.5167,274.447,-67.1779],[12747.5,898.332,64.1167,273.108,-66.8573],[12704.4,998.43,63.7167,271.756,-66.5309],[12661,1097.78,63.3167,270.39,-66.1984],[12617.1,1196.37,62.9167,269.011,-65.8599],[12571.1,1298.25,62.5,267.56,-65.5004],[12524.7,1399.29,62.0833,266.096,-65.134],[12477.9,1499.47,61.6667,264.618,-64.7604],[12430.7,1598.79,61.25,263.126,-64.3793],[12383.1,1697.22,60.8333,261.622,-63.9907],[12333.2,1798.64,60.4,260.044,-63.5783],[12282.8,1899.08,59.9667,258.452,-63.1573],[12232,1998.53,59.5333,256.848,-62.7274]]], + [51,5835.57,[[13600.5,-2002.94,75.55,304.837,-74.2596],[13571.5,-1900.43,75.2,303.993,-74.0834],[13543.6,-1803.15,74.8667,303.179,-73.9132],[13514.1,-1701.37,74.5167,302.314,-73.7322],[13485.7,-1604.8,74.1833,301.479,-73.5575],[13455.7,-1503.79,73.8333,300.593,-73.3715],[13425.5,-1403.17,73.4833,299.695,-73.1829],[13395.1,-1302.96,73.1333,298.786,-72.9917],[13364.4,-1203.15,72.7833,297.866,-72.7978],[13333.4,-1103.76,72.4333,296.935,-72.6011],[13300.7,-1000.08,72.0667,295.948,-72.392],[13269.3,-901.56,71.7167,294.994,-72.1895],[13237.6,-803.467,71.3667,294.029,-71.9841],[13204.1,-701.173,71,293.005,-71.7657],[13171.9,-603.983,70.65,292.017,-71.5541],[13137.9,-502.649,70.2833,290.969,-71.3291],[13103.6,-401.815,69.9167,289.909,-71.1006],[13069,-301.49,69.55,288.836,-70.8686],[13034.2,-201.679,69.1833,287.751,-70.6329],[12999.1,-102.392,68.8167,286.653,-70.3936],[12963.7,-3.63386,68.45,285.542,-70.1505],[12926.3,99.0388,68.0667,284.368,-69.8921],[12890.4,196.691,67.7,283.232,-69.641],[12852.4,298.191,67.3167,282.032,-69.3742],[12814.2,399.079,66.9333,280.817,-69.1028],[12775.7,499.346,66.55,279.589,-68.8269],[12736.8,598.985,66.1667,278.348,-68.5462],[12697.6,697.985,65.7833,277.093,-68.2606],[12658.1,796.339,65.4,275.825,-67.9702],[12616.6,898.27,65,274.488,-67.6617],[12574.7,999.477,64.6,273.137,-67.3477],[12532.4,1099.95,64.2,271.771,-67.0278],[12489.8,1199.68,63.8,270.392,-66.702],[12446.9,1298.65,63.4,268.999,-66.3702],[12403.6,1396.86,63,267.592,-66.0321],[12358.1,1498.34,62.5833,266.112,-65.6731],[12312.3,1598.96,62.1667,264.617,-65.3071],[12266,1698.72,61.75,263.109,-64.9337],[12219.4,1797.6,61.3333,261.587,-64.553],[12170.5,1899.49,60.9,259.99,-64.1488],[12123.1,1996.55,60.4833,258.441,-63.7521]]], + [52,5973.51,[[13423.8,-2002.69,76.3333,305.788,-74.7522],[13396.9,-1904.51,76,304.991,-74.59],[13368.4,-1801.77,75.65,304.144,-74.4174],[13341,-1704.28,75.3167,303.327,-74.2509],[13312.1,-1602.28,74.9667,302.458,-74.0736],[13283,-1500.67,74.6167,301.579,-73.8939],[13255,-1404.26,74.2833,300.731,-73.7205],[13225.4,-1303.41,73.9333,299.829,-73.5358],[13195.5,-1202.97,73.5833,298.917,-73.3486],[13165.4,-1102.93,73.2333,297.992,-73.1587],[13135.1,-1003.3,72.8833,297.057,-72.9661],[13104.5,-904.091,72.5333,296.11,-72.7707],[13072.2,-800.612,72.1667,295.106,-72.563],[13041.2,-702.277,71.8167,294.135,-72.3618],[13009.8,-604.378,71.4667,293.153,-72.1577],[12976.8,-502.291,71.1,292.112,-71.9407],[12943.4,-400.696,70.7333,291.058,-71.7203],[12911.4,-304.183,70.3833,290.04,-71.5068],[12877.5,-203.57,70.0167,288.961,-71.2796],[12843.4,-103.468,69.65,287.869,-71.049],[12809,-3.88682,69.2833,286.765,-70.8147],[12772.7,99.6575,68.9,285.596,-70.5657],[12737.7,198.153,68.5333,284.465,-70.3237],[12702.5,296.107,68.1667,283.321,-70.0779],[12665.3,397.925,67.7833,282.112,-69.8166],[12627.9,499.135,67.4,280.888,-69.5509],[12590.1,599.727,67.0167,279.651,-69.2806],[12552,699.692,66.6333,278.4,-69.0058],[12513.6,799.022,66.25,277.135,-68.7261],[12474.9,897.708,65.8667,275.856,-68.4416],[12434.2,999.989,65.4667,274.507,-68.1395],[12394.9,1097.33,65.0833,273.201,-67.8447],[12353.5,1198.19,64.6833,271.823,-67.5316],[12311.8,1298.31,64.2833,270.431,-67.2126],[12269.8,1397.68,63.8833,269.024,-66.8876],[12227.3,1496.28,63.4833,267.603,-66.5566],[12182.8,1598.18,63.0667,266.108,-66.2051],[12137.9,1699.22,62.65,264.598,-65.8465],[12092.6,1799.4,62.2333,263.073,-65.4808],[12046.9,1898.71,61.8167,261.534,-65.1077],[12000.9,1997.13,61.4,259.98,-64.7271]]], + [53,6109.86,[[13237.2,-2001.91,77.1,306.714,-75.2324],[13211.1,-1903.2,76.7667,305.925,-75.0757],[13184.7,-1804.82,76.4333,305.125,-74.917],[13156.8,-1701.89,76.0833,304.275,-74.7481],[13130,-1604.19,75.75,303.455,-74.5851],[13101.7,-1501.99,75.4,302.583,-74.4116],[13073.1,-1400.16,75.05,301.7,-74.2356],[13045.7,-1303.54,74.7167,300.848,-74.0658],[13016.7,-1202.48,74.3667,299.943,-73.8851],[12987.4,-1101.82,74.0167,299.026,-73.7018],[12957.9,-1001.56,73.6667,298.097,-73.5158],[12928.2,-901.708,73.3167,297.157,-73.3273],[12898.3,-802.275,72.9667,296.206,-73.136],[12868.1,-703.263,72.6167,295.242,-72.9419],[12837.7,-604.678,72.2667,294.267,-72.7451],[12805.5,-501.865,71.9,293.233,-72.5358],[12774.6,-404.174,71.55,292.233,-72.333],[12742,-302.31,71.1833,291.174,-72.1173],[12709.1,-200.943,70.8167,290.101,-71.8983],[12675.9,-100.079,70.45,289.015,-71.6759],[12644,-4.2751,70.1,287.966,-71.4603],[12610.3,95.5848,69.7333,286.855,-71.231],[12574.8,199.423,69.35,285.679,-70.9874],[12540.5,298.202,68.9833,284.54,-70.7505],[12506,396.442,68.6167,283.388,-70.5098],[12469.6,498.562,68.2333,282.17,-70.254],[12434.5,595.674,67.8667,280.992,-70.0053],[12397.5,696.6,67.4833,279.746,-69.7409],[12360.2,796.902,67.1,278.485,-69.4719],[12322.7,896.572,66.7167,277.21,-69.1983],[12283.1,999.892,66.3167,275.865,-68.9076],[12244.9,1098.24,65.9333,274.561,-68.6242],[12206.4,1195.93,65.55,273.244,-68.3357],[12165.9,1297.16,65.15,271.854,-68.0292],[12125.1,1397.65,64.75,270.449,-67.7169],[12083.9,1497.39,64.35,269.029,-67.3988],[12042.4,1596.37,63.95,267.595,-67.0746],[11998.8,1698.66,63.5333,266.084,-66.7304],[11956.5,1796.06,63.1333,264.62,-66.3935],[11912.2,1896.68,62.7167,263.079,-66.0356],[11867.5,1996.43,62.3,261.523,-65.6704]]], + [54,6244.56,[[13040.9,-2000.58,77.85,307.616,-75.7013],[13015.5,-1901.37,77.5167,306.834,-75.5499],[12989.9,-1802.48,77.1833,306.042,-75.3966],[12964.1,-1703.92,76.85,305.239,-75.2412],[12936.8,-1600.79,76.5,304.386,-75.0759],[12910.5,-1502.91,76.1667,303.563,-74.9164],[12882.8,-1400.5,75.8167,302.687,-74.7466],[12856.2,-1303.32,75.4833,301.843,-74.5827],[12828,-1201.67,75.1333,300.945,-74.4082],[12799.5,-1100.4,74.7833,300.035,-74.2313],[12772.3,-1004.32,74.45,299.158,-74.0605],[12743.4,-903.835,74.1,298.226,-73.8786],[12714.3,-803.756,73.75,297.281,-73.6942],[12685,-704.09,73.4,296.325,-73.5071],[12654,-600.129,73.0333,295.311,-73.3081],[12624.2,-501.329,72.6833,294.33,-73.1154],[12594.2,-402.961,72.3333,293.338,-72.9199],[12562.5,-300.378,71.9667,292.285,-72.712],[12532,-202.913,71.6167,291.267,-72.5105],[12499.7,-101.288,71.25,290.188,-72.2963],[12467.3,-0.16529,70.8833,289.096,-72.0786],[12436,95.8874,70.5333,288.041,-71.8677],[12403,196.011,70.1667,286.923,-71.6432],[12369.8,295.612,69.8,285.79,-71.4153],[12334.7,399.174,69.4167,284.593,-71.173],[12300.9,497.684,69.05,283.433,-70.9374],[12266.8,595.649,68.6833,282.26,-70.6981],[12230.9,697.476,68.3,281.019,-70.4436],[12194.7,798.691,67.9167,279.763,-70.1848],[12158.2,899.286,67.5333,278.493,-69.9215],[12121.4,999.25,67.15,277.207,-69.6536],[12084.4,1098.58,66.7667,275.908,-69.381],[12047,1197.25,66.3833,274.593,-69.1036],[12007.6,1299.52,65.9833,273.207,-68.809],[11969.6,1396.85,65.6,271.863,-68.5214],[11929.7,1497.69,65.2,270.445,-68.2158],[11889.4,1597.78,64.8,269.012,-67.9044],[11848.7,1697.12,64.4,267.564,-67.5871],[11806,1799.79,63.9833,266.039,-67.2502],[11764.7,1897.55,63.5833,264.56,-66.9203],[11721.3,1998.55,63.1667,263.003,-66.5698]]], + [55,6377.41,[[12836.2,-2003.89,78.6,308.532,-76.1669],[12811.6,-1904.18,78.2667,307.758,-76.0208],[12786.7,-1804.78,77.9333,306.973,-75.8727],[12760.4,-1700.76,77.5833,306.139,-75.7153],[12735.1,-1602.02,77.25,305.333,-75.5633],[12709.6,-1503.62,76.9167,304.518,-75.4093],[12682.7,-1400.65,76.5667,303.65,-75.2455],[12656.8,-1302.93,76.2333,302.813,-75.0873],[12629.4,-1200.7,75.8833,301.922,-74.919],[12603.1,-1103.69,75.55,301.063,-74.7565],[12575.3,-1002.21,75.2,300.15,-74.5835],[12547.3,-901.128,74.85,299.225,-74.408],[12519,-800.445,74.5,298.288,-74.2301],[12490.6,-700.169,74.15,297.339,-74.0495],[12461.8,-600.304,73.8,296.377,-73.8664],[12432.9,-500.857,73.45,295.404,-73.6807],[12403.8,-401.834,73.1,294.419,-73.4922],[12374.4,-303.241,72.75,293.421,-73.301],[12343.3,-200.42,72.3833,292.362,-73.0976],[12313.5,-102.725,72.0333,291.339,-72.9006],[12281.9,-0.858246,71.6667,290.254,-72.691],[12251.6,95.9126,71.3167,289.205,-72.4878],[12219.6,196.797,70.95,288.093,-72.2717],[12187.3,297.169,70.5833,286.968,-72.0522],[12154.7,397.021,70.2167,285.828,-71.8291],[12121.9,496.345,69.85,284.675,-71.6025],[12087.3,599.612,69.4667,283.454,-71.3616],[12054,697.834,69.1,282.273,-71.1274],[12018.9,799.933,68.7167,281.023,-70.8784],[11985,897.021,68.35,279.813,-70.6362],[11949.3,997.918,67.9667,278.533,-70.3787],[11913.3,1098.19,67.5833,277.238,-70.1167],[11877,1197.82,67.2,275.928,-69.8501],[11840.4,1296.81,66.8167,274.603,-69.5788],[11801.9,1399.41,66.4167,273.204,-69.2905],[11764.8,1497.05,66.0333,271.849,-69.0091],[11725.7,1598.22,65.6333,270.419,-68.7102],[11686.2,1698.65,65.2333,268.973,-68.4055],[11646.5,1798.32,64.8333,267.511,-68.095],[11606.4,1897.23,64.4333,266.033,-67.7785],[11564.3,1999.44,64.0167,264.477,-67.4422]]], + [56,6508.36,[[12620.5,-2001.82,79.3167,309.384,-76.615],[12596.6,-1901.64,78.9833,308.617,-76.4739],[12572.4,-1801.77,78.65,307.84,-76.331],[12548.1,-1702.21,78.3167,307.053,-76.1863],[12523.6,-1602.98,77.9833,306.255,-76.0397],[12498.8,-1504.06,77.65,305.447,-75.8912],[12472.7,-1400.55,77.3,304.587,-75.7331],[12447.6,-1302.31,76.9667,303.757,-75.5805],[12422.3,-1204.41,76.6333,302.916,-75.4259],[12395.5,-1101.98,76.2833,302.023,-75.2614],[12369.8,-1004.79,75.95,301.16,-75.1025],[12342.6,-903.11,75.6,300.243,-74.9334],[12315.2,-801.825,75.25,299.314,-74.7619],[12287.5,-700.94,74.9,298.372,-74.5879],[12259.7,-600.458,74.55,297.418,-74.4115],[12231.6,-500.387,74.2,296.452,-74.2324],[12203.3,-400.732,73.85,295.474,-74.0508],[12174.8,-301.499,73.5,294.483,-73.8666],[12146,-202.694,73.15,293.48,-73.6796],[12117.1,-104.322,72.8,292.464,-73.4899],[12086.5,-1.73834,72.4333,291.387,-73.2881],[12057,95.7258,72.0833,290.345,-73.0925],[12025.9,197.346,71.7167,289.24,-72.8844],[11994.6,298.462,71.35,288.121,-72.6731],[11963,399.067,70.9833,286.988,-72.4584],[11931.2,499.155,70.6167,285.841,-72.2402],[11899.1,598.716,70.25,284.68,-72.0186],[11866.8,697.745,69.8833,283.505,-71.7933],[11834.2,796.233,69.5167,282.315,-71.5643],[11799.8,898.612,69.1333,281.056,-71.3209],[11766.7,995.971,68.7667,279.838,-71.0842],[11731.8,1097.15,68.3833,278.548,-70.8324],[11696.6,1197.71,68,277.244,-70.5763],[11661.1,1297.63,67.6167,275.923,-70.3156],[11625.3,1396.91,67.2333,274.588,-70.0502],[11587.7,1499.82,66.8333,273.177,-69.7683],[11551.3,1597.76,66.45,271.81,-69.4931],[11513.1,1699.24,66.05,270.368,-69.2007],[11474.5,1799.98,65.65,268.909,-68.9026],[11435.7,1899.97,65.25,267.433,-68.5989],[11396.5,1999.2,64.85,265.941,-68.2892]]], + [57,6637.26,[[12396.5,-2004.57,80.0333,310.251,-77.0608],[12373.2,-1903.92,79.7,309.491,-76.9248],[12349.8,-1803.57,79.3667,308.722,-76.787],[12326.2,-1703.54,79.0333,307.942,-76.6474],[12302.4,-1603.82,78.7,307.152,-76.506],[12278.4,-1504.41,78.3667,306.351,-76.3627],[12253,-1400.38,78.0167,305.499,-76.2103],[12228.7,-1301.64,77.6833,304.677,-76.0631],[12204.1,-1203.23,77.35,303.844,-75.9141],[12178.1,-1100.25,77,302.957,-75.7554],[12153.2,-1002.54,76.6667,302.102,-75.6022],[12126.8,-900.304,76.3167,301.192,-75.4392],[12101.5,-803.298,75.9833,300.315,-75.2818],[12074.7,-701.824,75.6333,299.381,-75.1142],[12047.6,-600.747,75.2833,298.435,-74.9442],[12020.4,-500.073,74.9333,297.477,-74.7717],[11994.3,-404.573,74.6,296.552,-74.6052],[11966.6,-304.702,74.25,295.569,-74.4278],[11937.4,-200.526,73.8833,294.526,-74.2392],[11909.3,-101.521,73.5333,293.517,-74.0565],[11881,-2.94902,73.1833,292.496,-73.871],[11851,99.8472,72.8167,291.412,-73.6738],[11822.3,197.516,72.4667,290.364,-73.4826],[11791.9,299.352,72.1,289.252,-73.2792],[11762.7,396.09,71.75,288.177,-73.0821],[11731.8,496.938,71.3833,287.037,-72.8723],[11700.7,597.27,71.0167,285.883,-72.6592],[11669.3,697.079,70.65,284.715,-72.4426],[11637.7,796.356,70.2833,283.531,-72.2225],[11604.4,899.57,69.9,282.279,-71.9885],[11572.3,997.738,69.5333,281.066,-71.7609],[11538.4,1099.78,69.15,279.783,-71.519],[11505.8,1196.8,68.7833,278.54,-71.2835],[11471.4,1297.63,68.4,277.225,-71.0332],[11436.7,1397.83,68.0167,275.895,-70.7784],[11401.7,1497.38,67.6333,274.548,-70.519],[11366.5,1596.29,67.25,273.186,-70.2549],[11329.4,1698.79,66.85,271.747,-69.9743],[11293.6,1796.34,66.4667,270.353,-69.7004],[11256,1897.41,66.0667,268.881,-69.4092],[11218,1997.74,65.6667,267.392,-69.1123]]], + [58,6764,[[12161.6,-2002.1,80.7167,311.054,-77.4912],[12139,-1901.02,80.3833,310.302,-77.36],[12116.3,-1800.23,80.05,309.54,-77.227],[12094.6,-1704.77,79.7333,308.806,-77.0991],[12071.5,-1604.58,79.4,308.023,-76.9628],[12048.2,-1504.7,79.0667,307.23,-76.8247],[12023.6,-1400.17,78.7167,306.386,-76.6777],[12000,-1300.94,78.3833,305.571,-76.5359],[11976.2,-1202.04,78.05,304.746,-76.3922],[11952.2,-1103.46,77.7167,303.909,-76.2467],[11926.8,-1000.32,77.3667,303.019,-76.0917],[11902.5,-902.438,77.0333,302.16,-75.9421],[11876.7,-800.031,76.6833,301.246,-75.7829],[11851.9,-702.857,76.35,300.364,-75.6291],[11825.7,-601.206,76,299.426,-75.4654],[11800.6,-504.763,75.6667,298.521,-75.3073],[11774,-403.889,75.3167,297.558,-75.139],[11747.2,-303.422,74.9667,296.582,-74.9682],[11720.2,-203.368,74.6167,295.594,-74.7949],[11692.9,-103.732,74.2667,294.593,-74.6191],[11665.5,-4.52,73.9167,293.579,-74.4407],[11636.5,98.9542,73.55,292.503,-74.251],[11608.6,197.278,73.2,291.462,-74.0671],[11579.2,299.809,72.8333,290.358,-73.8715],[11550.8,397.219,72.4833,289.29,-73.6818],[11520.9,498.779,72.1167,288.157,-73.4801],[11490.8,599.832,71.75,287.01,-73.2751],[11461.7,695.812,71.4,285.901,-73.0764],[11431.1,795.852,71.0333,284.725,-72.8649],[11398.8,899.874,70.65,283.479,-72.64],[11367.7,998.824,70.2833,282.273,-72.4213],[11336.3,1097.23,69.9167,281.051,-72.199],[11303.3,1199.52,69.5333,279.758,-71.9627],[11271.4,1296.79,69.1667,278.507,-71.7327],[11237.8,1397.87,68.7833,277.182,-71.488],[11203.9,1498.32,68.4,275.841,-71.2391],[11169.8,1598.14,68.0167,274.483,-70.9856],[11135.4,1697.3,67.6333,273.109,-70.7276],[11100.7,1795.81,67.25,271.719,-70.4649],[11064.2,1897.89,66.85,270.252,-70.1856],[11027.4,1999.24,66.45,268.767,-69.9009]]], + [59,6888.46,[[11918.2,-2004.66,81.4,311.871,-77.9202],[11896.4,-1903.14,81.0667,311.127,-77.7936],[11874.4,-1801.91,80.7333,310.372,-77.6655],[11852.2,-1700.99,80.4,309.607,-77.5357],[11829.8,-1600.36,80.0667,308.831,-77.4043],[11807.3,-1500.04,79.7333,308.045,-77.2712],[11784.6,-1400.03,79.4,307.249,-77.1363],[11761.7,-1300.33,79.0667,306.441,-76.9997],[11738.6,-1200.96,78.7333,305.623,-76.8613],[11715.4,-1101.9,78.4,304.794,-76.721],[11692,-1003.18,78.0667,303.953,-76.5788],[11668.4,-904.788,77.7333,303.102,-76.4349],[11643.4,-801.839,77.3833,302.196,-76.2816],[11619.4,-704.144,77.05,301.322,-76.1336],[11594.1,-601.938,76.7,300.391,-75.976],[11568.5,-500.121,76.35,299.449,-75.8162],[11543.9,-403.518,76.0167,298.539,-75.6619],[11518,-302.476,75.6667,297.571,-75.4975],[11491.8,-201.839,75.3167,296.59,-75.3308],[11465.4,-101.612,74.9667,295.596,-75.1616],[11438.8,-1.80352,74.6167,294.59,-74.9899],[11412,97.5824,74.2667,293.57,-74.8157],[11385,196.539,73.9167,292.536,-74.6389],[11356.5,299.742,73.55,291.44,-74.4508],[11329,397.801,73.2,290.379,-74.2685],[11301.4,495.412,72.85,289.305,-74.0835],[11272.2,597.185,72.4833,288.165,-73.8866],[11242.7,698.452,72.1167,287.011,-73.6865],[11213,799.206,71.75,285.841,-73.4832],[11183.1,899.44,71.3833,284.656,-73.2766],[11153,999.147,71.0167,283.457,-73.0665],[11122.6,1098.32,70.65,282.242,-72.8531],[11092,1196.95,70.2833,281.012,-72.636],[11059.7,1299.47,69.9,279.709,-72.4052],[11028.6,1396.96,69.5333,278.448,-72.1806],[10995.8,1498.28,69.15,277.113,-71.9418],[10962.7,1598.98,68.7667,275.761,-71.6986],[10929.4,1699.03,68.3833,274.393,-71.4511],[10895.8,1798.44,68,273.007,-71.1991],[10862,1897.2,67.6167,271.605,-70.9424],[10826.4,1999.53,67.2167,270.125,-70.6696]]], + [60,7010.53,[[11664.2,-2002.13,82.05,312.627,-78.3355],[11643.1,-1900.21,81.7167,311.89,-78.2135],[11622.8,-1803.65,81.4,311.18,-78.0963],[11601.4,-1702.29,81.0667,310.422,-77.9713],[11579.7,-1601.23,80.7333,309.654,-77.8447],[11557.9,-1500.47,80.4,308.875,-77.7165],[11535.9,-1400.01,80.0667,308.086,-77.5866],[11514.9,-1304.86,79.75,307.326,-77.4617],[11491.4,-1200.03,79.4,306.475,-77.3218],[11468.9,-1100.51,79.0667,305.653,-77.1868],[11446.3,-1001.32,78.7333,304.82,-77.0499],[11423.4,-902.455,78.4,303.976,-76.9113],[11400.4,-803.92,78.0667,303.121,-76.7708],[11376,-700.821,77.7167,302.21,-76.6212],[11352.6,-602.981,77.3833,301.331,-76.4768],[11327.9,-500.622,77.0333,300.396,-76.3231],[11304.1,-403.496,76.7,299.494,-76.1746],[11278.9,-301.898,76.35,298.534,-76.0165],[11253.6,-200.699,76,297.56,-75.8562],[11229.3,-104.694,75.6667,296.621,-75.7013],[11203.5,-4.28851,75.3167,295.622,-75.5363],[11177.6,95.7011,74.9667,294.61,-75.3689],[11150.2,200,74.6,293.535,-75.1908],[11123.9,299.12,74.25,292.496,-75.0183],[11097.3,397.806,73.9,291.442,-74.8431],[11070.5,496.051,73.55,290.375,-74.6653],[11042.3,598.497,73.1833,289.243,-74.4761],[11015.1,695.822,72.8333,288.148,-74.2927],[10986.3,797.289,72.4667,286.986,-74.0976],[10957.4,898.245,72.1,285.809,-73.8992],[10928.2,998.682,71.7333,284.616,-73.6976],[10898.8,1098.59,71.3667,283.408,-73.4927],[10869.2,1197.97,71,282.185,-73.2844],[10839.3,1296.81,70.6333,280.945,-73.0726],[10807.8,1399.55,70.25,279.633,-72.8474],[10777.5,1497.25,69.8833,278.362,-72.6282],[10745.5,1598.79,69.5,277.017,-72.3951],[10713.3,1699.71,69.1167,275.654,-72.1577],[10680.8,1799.99,68.7333,274.275,-71.9161],[10648,1899.63,68.35,272.878,-71.67],[10615,1998.61,67.9667,271.464,-71.4195]]], + [61,7130.09,[[11401.9,-2004.83,82.7,313.397,-78.7502],[11381.4,-1902.5,82.3667,312.667,-78.6329],[11360.8,-1800.46,82.0333,311.926,-78.514],[11341.1,-1703.78,81.7167,311.214,-78.3997],[11320.1,-1602.31,81.3833,310.453,-78.2779],[11299,-1501.12,81.05,309.682,-78.1545],[11277.7,-1400.23,80.7167,308.9,-78.0296],[11257.4,-1304.67,80.4,308.147,-77.9093],[11235.8,-1204.38,80.0667,307.344,-77.7811],[11214,-1104.4,79.7333,306.53,-77.6513],[11192.1,-1004.74,79.4,305.704,-77.5197],[11168.9,-900.445,79.05,304.826,-77.3797],[11146.6,-801.446,78.7167,303.977,-77.2445],[11124.1,-702.779,78.3833,303.118,-77.1075],[11101.5,-604.447,78.05,302.247,-76.9687],[11077.6,-501.565,77.7,301.319,-76.8209],[11054.6,-403.935,77.3667,300.424,-76.6782],[11030.3,-301.801,77.0167,299.472,-76.5263],[11005.8,-200.058,76.6667,298.506,-76.3721],[10982.2,-103.529,76.3333,297.574,-76.2232],[10957.3,-2.56731,75.9833,296.582,-76.0647],[10932.2,97.9858,75.6333,295.577,-75.9038],[10907,198.124,75.2833,294.559,-75.7405],[10881.5,297.842,74.9333,293.527,-75.5748],[10855.8,397.134,74.5833,292.481,-75.4066],[10829.9,495.993,74.2333,291.422,-75.2358],[10802.6,599.088,73.8667,290.297,-75.0542],[10776.3,697.042,73.5167,289.209,-74.8781],[10748.5,799.175,73.15,288.054,-74.6908],[10721.8,896.197,72.8,286.937,-74.5091],[10693.6,997.341,72.4333,285.752,-74.3157],[10665.1,1097.97,72.0667,284.551,-74.1191],[10636.5,1198.07,71.7,283.334,-73.9193],[10607.6,1297.64,71.3333,282.102,-73.7162],[10578.5,1396.67,70.9667,280.854,-73.5097],[10547.8,1499.61,70.5833,279.532,-73.29],[10518.2,1597.51,70.2167,278.251,-73.0762],[10487,1699.26,69.8333,276.895,-72.8488],[10457,1796,69.4667,275.581,-72.6275],[10425.3,1896.51,69.0833,274.191,-72.3919],[10393.4,1996.39,68.7,272.783,-72.1521]]], + [62,7247.02,[[11129,-2002.67,83.3167,314.107,-79.1532],[11110.2,-1905.09,83,313.42,-79.0459],[11090.3,-1802.66,82.6667,312.687,-78.9316],[11070.2,-1700.5,82.3333,311.944,-78.8158],[11051,-1603.72,82.0167,311.228,-78.7045],[11030.6,-1502.12,81.6833,310.464,-78.5858],[11010,-1400.82,81.35,309.689,-78.4657],[10990.3,-1304.86,81.0333,308.943,-78.3501],[10969.5,-1204.15,80.7,308.147,-78.2268],[10948.4,-1103.74,80.3667,307.34,-78.1019],[10927.2,-1003.64,80.0333,306.522,-77.9754],[10905.9,-903.858,79.7,305.693,-77.8473],[10884.3,-804.397,79.3667,304.852,-77.7174],[10861.5,-700.313,79.0167,303.957,-77.5792],[10839.7,-601.522,78.6833,303.093,-77.4457],[10817.6,-503.067,78.35,302.217,-77.3105],[10794.3,-400.053,78,301.285,-77.1665],[10771.9,-302.298,77.6667,300.385,-77.0275],[10748.2,-200.031,77.3167,299.427,-76.8794],[10725.5,-102.997,76.9833,298.502,-76.7364],[10701.4,-1.49783,76.6333,297.518,-76.5841],[10677.2,99.5994,76.2833,296.52,-76.4296],[10653.9,195.504,75.95,295.557,-76.2803],[10629.3,295.799,75.6,294.533,-76.1212],[10604.5,395.675,75.25,293.495,-75.9599],[10578.2,499.851,74.8833,292.392,-75.7882],[10553,598.85,74.5333,291.326,-75.6218],[10527.6,697.411,74.1833,290.245,-75.4528],[10502,795.527,73.8333,289.15,-75.2813],[10475,897.832,73.4667,287.987,-75.0988],[10447.7,999.636,73.1,286.809,-74.9133],[10421.5,1096.34,72.75,285.67,-74.7334],[10393.8,1197.14,72.3833,284.46,-74.5419],[10365.9,1297.42,72.0167,283.235,-74.3472],[10337.8,1397.16,71.65,281.993,-74.1492],[10309.4,1496.37,71.2833,280.736,-73.948],[10279.5,1599.5,70.9,279.404,-73.7339],[10250.7,1697.58,70.5333,278.113,-73.5255],[10220.4,1799.52,70.15,276.746,-73.3039],[10191.1,1896.44,69.7833,275.421,-73.0881],[10160.3,1997.15,69.4,274.019,-72.8585]]], + [63,7361.23,[[10846.7,-2000.75,83.9167,314.795,-79.5509],[10828.5,-1902.84,83.6,314.114,-79.4478],[10809.3,-1800.03,83.2667,313.388,-79.3378],[10790.9,-1702.62,82.95,312.688,-79.2322],[10771.3,-1600.36,82.6167,311.942,-79.1195],[10752.6,-1503.48,82.3,311.222,-79.0112],[10732.8,-1401.78,81.9667,310.455,-78.8957],[10712.7,-1300.37,81.6333,309.677,-78.7787],[10693.6,-1204.31,81.3167,308.927,-78.6662],[10673.3,-1103.49,80.9833,308.127,-78.5462],[10652.8,-1002.97,80.65,307.316,-78.4247],[10632.2,-902.762,80.3167,306.494,-78.3016],[10611.4,-802.87,79.9833,305.66,-78.1768],[10590.4,-703.297,79.65,304.815,-78.0504],[10569.3,-604.048,79.3167,303.958,-77.9223],[10547,-500.191,78.9667,303.046,-77.7859],[10525.5,-401.622,78.6333,302.165,-77.6543],[10503.9,-303.391,78.3,301.273,-77.5208],[10481,-200.618,77.95,300.322,-77.3787],[10459.1,-103.096,77.6167,299.405,-77.2415],[10435.9,-1.07785,77.2667,298.428,-77.0953],[10413.6,95.7145,76.9333,297.485,-76.9542],[10390,196.955,76.5833,296.482,-76.8038],[10366.2,297.789,76.2333,295.465,-76.6512],[10342.2,398.21,75.8833,294.434,-76.4964],[10318.1,498.213,75.5333,293.389,-76.3392],[10293.7,597.79,75.1833,292.329,-76.1797],[10269.2,696.937,74.8333,291.256,-76.0177],[10244.5,795.647,74.4833,290.168,-75.8533],[10218.4,898.582,74.1167,289.013,-75.6783],[10193.3,996.377,73.7667,287.895,-75.5087],[10166.7,1098.34,73.4,286.709,-75.3281],[10140,1199.8,73.0333,285.506,-75.1445],[10114.3,1296.16,72.6833,284.343,-74.9665],[10087.2,1396.6,72.3167,283.109,-74.7769],[10059.8,1496.51,71.95,281.858,-74.5842],[10032.2,1595.88,71.5833,280.591,-74.3883],[10003.2,1699.18,71.2,279.248,-74.1798],[9975.15,1797.43,70.8333,277.947,-73.9769],[9945.63,1899.54,70.45,276.569,-73.761],[9917.17,1996.63,70.0833,275.233,-73.5508]]], + [64,7472.55,[[10555.9,-2004.49,84.5167,315.495,-79.9492],[10537.5,-1901.06,84.1833,314.786,-79.845],[10519.9,-1803.06,83.8667,314.103,-79.7447],[10501.2,-1700.16,83.5333,313.373,-79.6378],[10483.3,-1602.66,83.2167,312.67,-79.535],[10464.3,-1500.3,82.8833,311.92,-79.4255],[10446.1,-1403.33,82.5667,311.198,-79.3202],[10426.8,-1301.53,82.2333,310.426,-79.2079],[10407.3,-1200.02,81.9,309.644,-79.0942],[10388.7,-1103.87,81.5833,308.891,-78.9848],[10369,-1002.94,81.25,308.087,-78.8681],[10349.1,-902.327,80.9167,307.272,-78.75],[10329,-802.019,80.5833,306.445,-78.6302],[10308.8,-702.026,80.25,305.607,-78.5089],[10288.4,-602.351,79.9167,304.757,-78.386],[10267.9,-503,79.5833,303.895,-78.2614],[10247.2,-403.977,79.25,303.022,-78.1351],[10225.3,-300.361,78.9,302.091,-78.0007],[10204.3,-202.025,78.5667,301.193,-77.8709],[10183.1,-104.032,78.2333,300.283,-77.7393],[10160.7,-1.51381,77.8833,299.314,-77.5992],[10139.2,95.7613,77.55,298.378,-77.4639],[10116.5,197.515,77.2,297.382,-77.3197],[10093.5,298.869,76.85,296.372,-77.1735],[10070.4,399.816,76.5,295.348,-77.025],[10048.3,495.573,76.1667,294.36,-76.8816],[10024.8,595.711,75.8167,293.308,-76.7288],[10001.1,695.424,75.4667,292.242,-76.5737],[9976.15,799.424,75.1,291.11,-76.4087],[9952.12,898.25,74.75,290.014,-76.2486],[9927.9,996.634,74.4,288.903,-76.0862],[9902.33,1099.22,74.0333,287.724,-75.9133],[9877.73,1196.68,73.6833,286.583,-75.7456],[9851.76,1298.28,73.3167,285.372,-75.5671],[9825.58,1399.37,72.95,284.144,-75.3856],[9799.19,1499.93,72.5833,282.9,-75.2011],[9772.6,1599.97,72.2167,281.639,-75.0135],[9745.79,1699.46,71.85,280.361,-74.8226],[9718.78,1798.42,71.4833,279.066,-74.6286],[9691.56,1896.81,71.1167,277.754,-74.4311],[9662.87,1999.08,70.7333,276.365,-74.2211]]], + [65,7580.92,[[10254.9,-2003.55,85.0833,316.139,-80.3382],[10238,-1904.97,84.7667,315.472,-80.2432],[10220.2,-1801.46,84.4333,314.759,-80.1419],[10203,-1703.37,84.1167,314.073,-80.0445],[10184.9,-1600.39,83.7833,313.34,-79.9408],[10167.5,-1502.81,83.4667,312.634,-79.8409],[10149,-1400.37,83.1333,311.88,-79.7346],[10131.4,-1303.31,82.8167,311.153,-79.6323],[10112.6,-1201.42,82.4833,310.378,-79.5232],[10094.7,-1104.9,82.1667,309.631,-79.4183],[10075.7,-1003.58,81.8333,308.834,-79.3065],[10056.5,-902.569,81.5,308.026,-79.1932],[10037.2,-801.86,81.1667,307.206,-79.0784],[10017.7,-701.461,80.8333,306.375,-78.9621],[9998.07,-601.375,80.5,305.532,-78.8442],[9978.29,-501.607,80.1667,304.677,-78.7248],[9958.36,-402.163,79.8333,303.81,-78.6038],[9938.28,-303.046,79.5,302.931,-78.4811],[9918.04,-204.261,79.1667,302.04,-78.3568],[9896.63,-100.9,78.8167,301.091,-78.2244],[9876.07,-2.8118,78.4833,300.175,-78.0966],[9854.32,99.8072,78.1333,299.2,-77.9604],[9833.44,197.178,77.8,298.258,-77.8289],[9811.35,299.034,77.45,297.255,-77.6888],[9790.15,395.667,77.1167,296.287,-77.5535],[9767.71,496.736,76.7667,295.257,-77.4094],[9745.1,597.394,76.4167,294.212,-77.263],[9722.31,697.634,76.0667,293.153,-77.1145],[9699.35,797.451,75.7167,292.079,-76.9638],[9676.2,896.838,75.3667,290.99,-76.8107],[9652.88,995.79,75.0167,289.887,-76.6553],[9628.25,1098.98,74.65,288.715,-76.4899],[9604.56,1197.02,74.3,287.581,-76.3295],[9579.54,1299.24,73.9333,286.377,-76.1587],[9555.48,1396.34,73.5833,285.212,-75.9931],[9530.07,1497.56,73.2167,283.975,-75.8168],[9504.46,1598.26,72.85,282.721,-75.6375],[9478.65,1698.43,72.4833,281.45,-75.4551],[9452.64,1798.06,72.1167,280.162,-75.2697],[9426.42,1897.15,71.75,278.856,-75.0811],[9400,1995.69,71.3833,277.534,-74.8892]]], + [66,7686.2,[[9944.59,-2003.27,85.6333,316.764,-80.7238],[9928.37,-1904.38,85.3167,316.102,-80.6327],[9911.15,-1800.54,84.9833,315.396,-80.5356],[9894.67,-1702.14,84.6667,314.715,-80.4423],[9878.06,-1603.98,84.35,314.025,-80.3478],[9860.45,-1500.92,84.0167,313.288,-80.2471],[9843.58,-1403.26,83.7,312.578,-80.1503],[9825.69,-1300.74,83.3667,311.82,-80.0471],[9808.56,-1203.6,83.05,311.09,-79.9479],[9790.39,-1101.63,82.7167,310.31,-79.8421],[9773,-1005.03,82.4,309.559,-79.7403],[9754.55,-903.637,82.0667,308.758,-79.6319],[9735.96,-802.542,81.7333,307.945,-79.5219],[9717.23,-701.75,81.4,307.12,-79.4106],[9698.34,-601.268,81.0667,306.284,-79.2977],[9679.32,-501.099,80.7333,305.436,-79.1834],[9660.14,-401.248,80.4,304.576,-79.0675],[9640.81,-301.719,80.0667,303.703,-78.9501],[9621.34,-202.518,79.7333,302.819,-78.831],[9601.72,-103.648,79.4,301.922,-78.7104],[9580.95,-0.198164,79.05,300.967,-78.5819],[9561.02,97.9756,78.7167,300.045,-78.4578],[9540.93,195.803,78.3833,299.11,-78.332],[9519.68,298.142,78.0333,298.115,-78.1981],[9499.28,395.243,77.7,297.153,-78.0686],[9477.7,496.808,77.35,296.13,-77.9308],[9455.95,597.969,77,295.092,-77.7909],[9434.03,698.719,76.65,294.04,-77.6488],[9411.93,799.051,76.3,292.973,-77.5047],[9389.66,898.96,75.95,291.891,-77.3583],[9367.22,998.44,75.6,290.794,-77.2097],[9344.61,1097.48,75.25,289.682,-77.0587],[9321.82,1196.09,74.9,288.555,-76.9055],[9297.76,1298.9,74.5333,287.358,-76.7424],[9274.61,1396.58,74.1833,286.2,-76.5842],[9250.17,1498.41,73.8167,284.97,-76.4157],[9225.53,1599.73,73.45,283.722,-76.2445],[9201.83,1695.96,73.1,282.515,-76.0783],[9176.82,1796.25,72.7333,281.234,-75.9013],[9151.6,1896.01,72.3667,279.936,-75.7213],[9125.03,1999.72,71.9833,278.559,-75.5298]]], + [67,7788.29,[[9625.03,-2003.71,86.1667,317.366,-81.1064],[9609.44,-1904.52,85.85,316.71,-81.0192],[9592.9,-1800.37,85.5167,316.01,-80.9263],[9577.06,-1701.66,85.2,315.336,-80.8369],[9561.1,-1603.19,84.8833,314.652,-80.7465],[9545.02,-1504.97,84.5667,313.958,-80.655],[9527.96,-1401.83,84.2333,313.217,-80.5575],[9511.63,-1304.11,83.9167,312.503,-80.4637],[9494.31,-1201.51,83.5833,311.741,-80.3638],[9477.73,-1104.31,83.2667,311.006,-80.2676],[9460.14,-1002.27,82.9333,310.222,-80.1651],[9442.41,-900.521,82.6,309.427,-80.0613],[9425.44,-804.133,82.2833,308.66,-79.9614],[9407.44,-702.964,81.95,307.842,-79.8549],[9389.3,-602.1,81.6167,307.013,-79.747],[9371.01,-501.544,81.2833,306.171,-79.6377],[9352.59,-401.301,80.95,305.318,-79.5269],[9334.02,-301.375,80.6167,304.452,-79.4146],[9315.31,-201.772,80.2833,303.574,-79.3008],[9296.45,-102.496,79.95,302.684,-79.1855],[9277.46,-3.55146,79.6167,301.781,-79.0686],[9257.35,99.9778,79.2667,300.82,-78.944],[9238.05,198.227,78.9333,299.891,-78.8238],[9218.6,296.129,78.6,298.95,-78.7019],[9198.03,398.549,78.25,297.947,-78.572],[9178.28,495.725,77.9167,296.979,-78.4466],[9157.38,597.371,77.5667,295.948,-78.3129],[9136.32,698.611,77.2167,294.903,-78.1773],[9115.1,799.441,76.8667,293.843,-78.0396],[9093.7,899.854,76.5167,292.767,-77.8998],[9072.15,999.843,76.1667,291.677,-77.7579],[9050.42,1099.4,75.8167,290.572,-77.6138],[9028.52,1198.53,75.4667,289.451,-77.4674],[9006.46,1297.21,75.1167,288.315,-77.3188],[8984.23,1395.44,74.7667,287.163,-77.1679],[8960.75,1497.87,74.4,285.94,-77.0072],[8937.09,1599.79,74.0333,284.7,-76.8438],[8914.33,1696.59,73.6833,283.499,-76.6853],[8890.3,1797.5,73.3167,282.225,-76.5165],[8866.08,1897.87,72.95,280.932,-76.3448],[8841.67,1997.71,72.5833,279.622,-76.1701]]], + [68,7887.04,[[9296.29,-2005.06,86.6833,317.949,-81.4867],[9280.54,-1900.36,86.35,317.265,-81.3989],[9265.46,-1801.13,86.0333,316.605,-81.3146],[9250.26,-1702.14,85.7167,315.936,-81.2292],[9234.95,-1603.37,85.4,315.258,-81.1428],[9219.53,-1504.84,85.0833,314.57,-81.0553],[9203.16,-1401.39,84.75,313.835,-80.9621],[9187.5,-1303.36,84.4333,313.128,-80.8725],[9170.88,-1200.43,84.1,312.371,-80.777],[9154.97,-1102.91,83.7833,311.643,-80.6851],[9138.09,-1000.54,83.45,310.865,-80.5872],[9121.93,-903.545,83.1333,310.115,-80.493],[9104.8,-801.732,82.8,309.315,-80.3926],[9087.52,-700.215,82.4667,308.503,-80.2908],[9070.99,-604.05,82.15,307.721,-80.1929],[9053.46,-503.121,81.8167,306.886,-80.0885],[9035.78,-402.499,81.4833,306.039,-79.9827],[9017.97,-302.191,81.15,305.179,-79.8756],[9000.02,-202.2,80.8167,304.308,-79.7669],[8981.94,-102.532,80.4833,303.424,-79.6568],[8963.71,-3.18975,80.15,302.528,-79.5452],[8945.35,95.8204,79.8167,301.619,-79.4321],[8925.91,199.419,79.4667,300.651,-79.3116],[8907.26,297.734,79.1333,299.715,-79.1952],[8888.46,395.702,78.8,298.767,-79.0773],[8868.57,498.191,78.45,297.757,-78.9516],[8849.49,595.434,78.1167,296.782,-78.8302],[8829.29,697.148,77.7667,295.743,-78.7008],[8808.93,798.458,77.4167,294.69,-78.5695],[8788.41,899.357,77.0667,293.622,-78.4362],[8767.74,999.839,76.7167,292.538,-78.3009],[8746.9,1099.9,76.3667,291.439,-78.1635],[8725.9,1199.53,76.0167,290.325,-78.024],[8704.74,1298.72,75.6667,289.195,-77.8823],[8683.41,1397.47,75.3167,288.05,-77.7384],[8661.92,1495.78,74.9667,286.888,-77.5922],[8639.23,1598.27,74.6,285.655,-77.4366],[8617.41,1695.64,74.25,284.461,-77.2856],[8594.37,1797.13,73.8833,283.193,-77.1248],[8571.14,1898.11,73.5167,281.907,-76.9613],[8547.73,1998.56,73.15,280.603,-76.795]]], + [69,7982.41,[[8957.64,-2002.1,87.1667,318.48,-81.861],[8943.31,-1902.37,86.85,317.835,-81.7814],[8928.87,-1802.86,86.5333,317.181,-81.7009],[8914.32,-1703.58,86.2167,316.518,-81.6195],[8899.66,-1604.53,85.9,315.845,-81.537],[8884.11,-1500.52,85.5667,315.127,-81.4492],[8869.22,-1401.95,85.25,314.434,-81.3647],[8854.21,-1303.62,84.9333,313.732,-81.2792],[8838.3,-1200.38,84.6,312.981,-81.1881],[8823.06,-1102.56,84.2833,312.258,-81.1005],[8807.71,-1004.99,83.9667,311.525,-81.0117],[8791.42,-902.554,83.6333,310.742,-80.9172],[8775.01,-800.409,83.3,309.948,-80.8214],[8759.3,-703.64,82.9833,309.183,-80.7292],[8742.64,-602.067,82.65,308.365,-80.631],[8725.84,-500.792,82.3167,307.536,-80.5314],[8709.77,-404.863,82,306.737,-80.4356],[8692.72,-304.186,81.6667,305.885,-80.3335],[8675.53,-203.821,81.3333,305.02,-80.2299],[8658.22,-103.774,81,304.142,-80.125],[8640.77,-4.04925,80.6667,303.252,-80.0186],[8623.18,95.3487,80.3333,302.349,-79.9108],[8604.57,199.36,79.9833,301.388,-79.796],[8586.71,298.072,79.65,300.459,-79.6852],[8568.71,396.444,79.3167,299.517,-79.5728],[8549.67,499.36,78.9667,298.513,-79.453],[8531.39,597.016,78.6333,297.544,-79.3373],[8512.05,699.169,78.2833,296.511,-79.2141],[8493.49,796.087,77.95,295.514,-79.095],[8473.85,897.456,77.6,294.453,-78.9681],[8454.05,998.413,77.25,293.376,-78.8393],[8434.1,1098.95,76.9,292.284,-78.7086],[8414,1199.07,76.55,291.176,-78.5758],[8393.74,1298.76,76.2,290.052,-78.4409],[8373.32,1398.01,75.85,288.913,-78.304],[8352.75,1496.82,75.5,287.758,-78.1649],[8331.03,1599.85,75.1333,286.531,-78.0168],[8310.13,1697.73,74.7833,285.342,-77.8731],[8288.07,1799.78,74.4167,284.08,-77.7201],[8266.84,1896.71,74.0667,282.859,-77.5716],[8244.44,1997.74,73.7,281.561,-77.4135]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 8640.77; +_maxRange = 13671.2; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg1.sqf new file mode 100644 index 0000000000..27ebaf3ff2 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg1.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg1 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[3729.54,-2001.61,21.2833,230.168,-50.2809],[3645.79,-1902.34,20.7167,228.177,-49.3847],[3558.72,-1802.43,20.1333,226.146,-48.4363],[3468.25,-1702.12,19.5333,224.082,-47.4329],[3374.29,-1601.65,18.9167,221.991,-46.3714],[3276.78,-1501.28,18.2833,219.881,-45.2486],[3175.63,-1401.27,17.6333,217.759,-44.0613],[3070.75,-1301.9,16.9667,215.637,-42.8059],[2959.39,-1201.12,16.2667,213.474,-41.4462],[2844.06,-1101.75,15.55,211.338,-40.0095],[2721.94,-1001.95,14.8,209.199,-38.457],[2590.07,-900.304,14,207.038,-36.7456],[2453.74,-801.73,13.1833,204.974,-34.9398],[2304.31,-701.107,12.3,202.922,-32.9203],[2144.21,-601.665,11.3667,200.981,-30.7135],[1967.19,-501.519,10.35,199.158,-28.2273],[1766.64,-400.102,9.21667,197.525,-25.361],[1541.46,-300.974,7.96667,196.262,-22.0947],[1265.66,-200.004,6.46667,195.573,-18.0531],[904.2,-100.216,4.55,196.145,-12.7497],[30.7102,-0.0224986,0.133333,204.528,-0.411657],[3.41578,0.0972759,0,204.947,-0.0456931]]], + [1,0.720477,[[3785.34,-2002.27,21.65,229.814,-50.4271],[3699.52,-1900.06,21.0667,227.747,-49.5055],[3612.82,-1800.16,20.4833,225.7,-48.5576],[3525.26,-1702.61,19.9,223.676,-47.5828],[3431.75,-1602.08,19.2833,221.566,-46.5223],[3334.69,-1501.65,18.65,219.434,-45.4003],[3234.02,-1401.59,18,217.291,-44.2136],[3129.63,-1302.16,17.3333,215.145,-42.9586],[3018.8,-1201.31,16.6333,212.958,-41.599],[2904.03,-1101.88,15.9167,210.796,-40.162],[2782.5,-1002.03,15.1667,208.628,-38.6088],[2651.27,-900.322,14.3667,206.436,-36.8961],[2515.6,-801.69,13.55,204.339,-35.0882],[2366.91,-701.007,12.6667,202.251,-33.0658],[2207.6,-601.505,11.7333,200.27,-30.8548],[2031.48,-501.299,10.7167,198.405,-28.3629],[1834.9,-401.233,9.6,196.744,-25.5316],[1607.92,-300.631,8.33333,195.405,-22.2116],[1336.65,-200.608,6.85,194.652,-18.2001],[977.217,-100.459,4.93333,195.126,-12.8738],[152.818,-0.0413498,0.733333,202.642,-1.06799],[74.9322,0.720001,0.35,203.807,-0.00803394]]], + [2,2.63062,[[3839.84,-2002.05,22.0167,229.455,-50.5823],[3756.89,-1902.66,21.45,227.431,-49.6889],[3670.64,-1802.63,20.8667,225.365,-48.7432],[3581.03,-1702.19,20.2667,223.264,-47.7422],[3487.97,-1601.59,19.65,221.133,-46.6829],[3391.4,-1501.09,19.0167,218.98,-45.5619],[3291.22,-1400.95,18.3667,216.814,-44.376],[3187.35,-1301.46,17.7,214.644,-43.1216],[3077.07,-1200.54,17,212.43,-41.7623],[2962.87,-1101.04,16.2833,210.241,-40.3251],[2841.96,-1001.11,15.5333,208.043,-38.7713],[2714.13,-901.395,14.75,205.863,-37.0937],[2576.42,-800.62,13.9167,203.688,-35.2476],[2431.31,-701.703,13.05,201.6,-33.2611],[2270.02,-600.281,12.1,199.54,-31.0072],[2097.72,-501.57,11.1,197.657,-28.5513],[1902.24,-401.265,9.98333,195.939,-25.7135],[1676.54,-300.393,8.71667,194.533,-22.3838],[1406.83,-200.059,7.23333,193.701,-18.3577],[1052.65,-100.241,5.33333,194.062,-13.0547],[297.073,-0.114692,1.45,200.441,-2.06704],[149.373,2.62931,0.716667,202.567,-0.0221073]]], + [3,5.81348,[[3893.01,-2000.99,22.3833,229.093,-50.7467],[3810.48,-1901.51,21.8167,227.051,-49.8549],[3724.67,-1801.4,21.2333,224.967,-48.9107],[3635.51,-1700.88,20.6333,222.846,-47.9112],[3542.93,-1600.21,20.0167,220.694,-46.8533],[3449.4,-1502.23,19.4,218.575,-45.7634],[3349.76,-1401.93,18.75,216.384,-44.5794],[3246.46,-1302.27,18.0833,214.188,-43.3268],[3136.79,-1201.18,17.3833,211.945,-41.9689],[3023.22,-1101.5,16.6667,209.725,-40.5329],[2902.97,-1001.39,15.9167,207.495,-38.9798],[2775.86,-901.487,15.1333,205.279,-37.3024],[2638.92,-800.511,14.3,203.063,-35.4557],[2494.63,-701.384,13.4333,200.933,-33.4679],[2337.09,-601.456,12.5,198.86,-31.2515],[2162.95,-500.787,11.4833,196.89,-28.7511],[1968.61,-400.22,10.3667,195.111,-25.9068],[1747.22,-300.294,9.11667,193.652,-22.612],[1482.23,-200.426,7.65,192.732,-18.6184],[1133.51,-100.344,5.76667,192.947,-13.3407],[439.504,-0.161369,2.16667,198.294,-3.08908],[223.26,5.81099,1.08333,201.281,-0.0425405]]], + [4,10.2521,[[3947.2,-2002.05,22.7667,228.789,-50.946],[3865.12,-1902.43,22.2,226.729,-50.0567],[3779.8,-1802.16,21.6167,224.625,-49.1151],[3691.14,-1701.48,21.0167,222.482,-48.1181],[3599.09,-1600.64,20.4,220.308,-47.0625],[3506.08,-1502.5,19.7833,218.166,-45.9749],[3407.01,-1402.03,19.1333,215.949,-44.793],[3304.3,-1302.19,18.4667,213.725,-43.5423],[3195.25,-1200.91,17.7667,211.453,-42.1861],[3082.34,-1101.04,17.05,209.201,-40.7514],[2962.78,-1000.73,16.3,206.936,-39.1992],[2836.41,-900.624,15.5167,204.683,-37.5222],[2703.01,-801.399,14.7,202.47,-35.7128],[2556.83,-700.077,13.8167,200.252,-33.6861],[2403.04,-601.633,12.9,198.165,-31.5076],[2229.98,-500.562,11.8833,196.135,-29.0044],[2039.77,-400.982,10.7833,194.312,-26.1984],[1819.85,-300.38,9.53333,192.765,-22.8968],[1559.65,-200.75,8.08333,191.747,-18.9373],[1216.5,-100.104,6.21667,191.8,-13.6861],[580.022,-0.216804,2.88333,196.205,-4.13457],[293.2,10.2508,1.43333,200,-0.0228232]]], + [5,15.9269,[[3999.94,-2002.33,23.15,228.484,-51.1542],[3918.34,-1902.55,22.5833,226.405,-50.2677],[3833.51,-1802.11,22,224.281,-49.3288],[3745.38,-1701.27,21.4,222.116,-48.3344],[3653.86,-1600.25,20.7833,219.919,-47.2815],[3561.4,-1501.93,20.1667,217.753,-46.1963],[3462.91,-1401.27,19.5167,215.509,-45.0168],[3360.81,-1301.24,18.85,213.258,-43.7681],[3255.01,-1202.14,18.1667,211.008,-42.4467],[3142.8,-1101.98,17.45,208.722,-41.0146],[3023.99,-1001.36,16.7,206.419,-39.4648],[2898.41,-900.922,15.9167,204.125,-37.7896],[2765.86,-801.358,15.1,201.868,-35.9813],[2623.37,-701.529,14.2333,199.64,-33.9938],[2467.81,-600.843,13.3,197.458,-31.7755],[2298.71,-500.942,12.3,195.397,-29.3116],[2109.78,-400.747,11.2,193.498,-26.5022],[1894.3,-300.704,9.96667,191.88,-23.2388],[1635.97,-200.04,8.51667,190.743,-19.2688],[1304.57,-100.366,6.7,190.62,-14.1396],[715.318,-0.02505,3.58333,194.21,-5.15586],[362.511,15.9264,1.78333,198.675,-0.00948526]]], + [6,22.8182,[[4051.18,-2001.86,23.5333,228.18,-51.3714],[3970.08,-1901.91,22.9667,226.081,-50.4878],[3885.76,-1801.29,22.3833,223.936,-49.5518],[3798.16,-1700.26,21.7833,221.749,-48.5603],[3709.68,-1601.75,21.1833,219.587,-47.539],[3615.31,-1500.55,20.55,217.337,-46.4276],[3519.95,-1402.24,19.9167,215.124,-45.2813],[3418.5,-1301.92,19.25,212.842,-44.0361],[3310.81,-1200.14,18.55,210.506,-42.6851],[3201.9,-1102.05,17.85,208.239,-41.2887],[3083.87,-1001.11,17.1,205.897,-39.7414],[2959.1,-900.333,16.3167,203.56,-38.0682],[2827.42,-800.414,15.5,201.257,-36.2614],[2685.86,-700.207,14.6333,198.979,-34.2745],[2534.12,-600.855,13.7167,196.778,-32.0958],[2366.19,-500.378,12.7167,194.648,-29.6311],[2181.45,-400.996,11.6333,192.698,-26.8621],[1967.55,-300.056,10.4,190.981,-23.5937],[1717.08,-200.456,8.98333,189.742,-19.7063],[1394.45,-100.48,7.2,189.426,-14.6549],[851.793,-0.155005,4.3,192.243,-6.24891],[431.135,22.8181,2.13333,197.307,-0.00282648]]], + [7,30.9053,[[4100.9,-2000.68,23.9167,227.878,-51.5974],[4020.31,-1900.53,23.35,225.759,-50.7169],[3938.93,-1802.58,22.7833,223.654,-49.8111],[3851.9,-1701.28,22.1833,221.444,-48.8235],[3764,-1602.51,21.5833,219.257,-47.806],[3670.25,-1501.02,20.95,216.98,-46.6986],[3575.53,-1402.43,20.3167,214.738,-45.556],[3474.75,-1301.81,19.65,212.425,-44.3144],[3370.33,-1202.11,18.9667,210.11,-42.9995],[3259.59,-1101.31,18.25,207.752,-41.5736],[3142.36,-1000.02,17.5,205.371,-40.0292],[3021.09,-900.996,16.7333,203.04,-38.3946],[2890.33,-800.595,15.9167,200.686,-36.5908],[2752.5,-701.754,15.0667,198.396,-34.6448],[2601.87,-601.732,14.15,196.129,-32.4687],[2435.19,-500.517,13.15,193.925,-30.005],[2251.83,-400.33,12.0667,191.889,-27.2347],[2045.32,-301.046,10.8667,190.112,-24.0518],[1799.84,-201.046,9.46667,188.744,-20.2041],[1485.99,-100.546,7.71667,188.225,-15.233],[982.964,-0.00568956,5,190.371,-7.3175],[499.017,30.9051,2.48333,195.897,-0.0031509]]], + [8,40.1662,[[4151.39,-2001.79,24.3167,227.64,-51.8581],[4071.34,-1901.39,23.75,225.501,-50.9817],[3988.12,-1800.32,23.1667,223.312,-50.0529],[3904.08,-1701.6,22.5833,221.14,-49.0964],[3816.78,-1602.55,21.9833,218.928,-48.0829],[3723.67,-1500.77,21.35,216.623,-46.9795],[3629.6,-1401.88,20.7167,214.353,-45.8408],[3529.52,-1300.95,20.05,212.008,-44.6031],[3425.82,-1200.92,19.3667,209.659,-43.2918],[3318.42,-1102.09,18.6667,207.319,-41.903],[3202.02,-1000.35,17.9167,204.894,-40.363],[3081.63,-900.856,17.15,202.518,-38.7322],[2954.49,-801.963,16.35,200.161,-36.9692],[2815,-700.594,15.4833,197.767,-34.9884],[2665.47,-600.005,14.5667,195.437,-32.8137],[2505.58,-501.43,13.6,193.232,-30.4335],[2323.67,-400.262,12.5167,191.103,-27.664],[2121.69,-301.188,11.3333,189.24,-24.5235],[1881.18,-200.795,9.95,187.743,-20.7163],[1579.05,-100.679,8.25,187.027,-15.8748],[1115.08,-0.376153,5.71667,188.542,-8.45898],[566.102,40.1656,2.83333,194.447,-0.0107744]]], + [9,50.578,[[4200.23,-2002.26,24.7167,227.407,-52.1272],[4120.74,-1901.59,24.15,225.246,-51.2551],[4038.11,-1800.24,23.5667,223.035,-50.3306],[3954.66,-1701.24,22.9833,220.839,-49.3784],[3867.97,-1601.9,22.3833,218.602,-48.3692],[3777.97,-1502.46,21.7667,216.33,-47.2995],[3682.12,-1400.61,21.1167,213.969,-46.1357],[3585.25,-1301.85,20.4667,211.651,-44.9334],[3482.31,-1201.4,19.7833,209.266,-43.6272],[3375.71,-1102.13,19.0833,206.886,-42.2432],[3262.76,-1002.15,18.35,204.472,-40.7426],[3143.3,-902.074,17.5833,202.047,-39.1173],[3014.5,-800.55,16.7667,199.587,-37.3219],[2878.73,-700.533,15.9167,197.18,-35.3828],[2733.09,-601.013,15.0167,194.823,-33.2516],[2574.49,-501.549,14.05,192.538,-30.8748],[2396.87,-400.871,12.9833,190.346,-28.1499],[2196.6,-300.518,11.8,188.367,-25.0092],[1963.94,-200.868,10.45,186.758,-21.2898],[1670.51,-100.117,8.78333,185.838,-16.5329],[1241.82,-0.442445,6.41667,186.806,-9.57551],[632.337,50.5765,3.18333,192.957,-0.0260262]]], + [10,62.1164,[[4247.39,-2002.14,25.1167,227.18,-52.405],[4168.48,-1901.19,24.55,224.997,-51.5374],[4088.8,-1802.42,23.9833,222.826,-50.6442],[4003.6,-1700.26,23.3833,220.543,-49.6698],[3917.54,-1600.61,22.7833,218.28,-48.6651],[3828.2,-1500.86,22.1667,215.98,-47.6],[3735.5,-1401.26,21.5333,213.649,-46.4709],[3639.37,-1302.08,20.8833,211.298,-45.274],[3537.22,-1201.19,20.2,208.876,-43.9731],[3431.42,-1101.48,19.5,206.457,-42.5943],[3319.34,-1001.02,18.7667,203.999,-41.0986],[3200.8,-900.447,18,201.526,-39.4779],[3075.61,-800.418,17.2,199.063,-37.7239],[2943.59,-701.646,16.3667,196.641,-35.8281],[2799.16,-601.285,15.4667,194.213,-33.7021],[2641.88,-500.909,14.5,191.845,-31.3291],[2468.52,-400.73,13.45,189.591,-28.6494],[2272.8,-300.419,12.2833,187.52,-25.5541],[2045.12,-200.218,10.95,185.778,-21.8785],[1766.19,-100.728,9.35,184.671,-17.3045],[1363.22,-0.0844597,7.1,185.154,-10.6662],[694.479,62.1164,3.51667,191.475,-0.000333055]]], + [11,74.7582,[[4292.82,-2001.45,25.5167,226.958,-52.6915],[4214.5,-1900.21,24.95,224.755,-51.8286],[4135.42,-1801.15,24.3833,222.561,-50.9401],[4053.22,-1701.48,23.8,220.316,-49.9979],[3967.83,-1601.45,23.2,218.026,-48.9988],[3879.18,-1501.3,22.5833,215.697,-47.9393],[3787.21,-1401.29,21.95,213.335,-46.8159],[3691.82,-1301.68,21.3,210.949,-45.6247],[3590.48,-1200.34,20.6167,208.49,-44.3296],[3485.52,-1100.16,19.9167,206.031,-42.9562],[3376.86,-1001.46,19.2,203.585,-41.5003],[3259.29,-900.273,18.4333,201.061,-39.8858],[3137.73,-801.642,17.65,198.594,-38.1747],[3004.19,-700.145,16.8,196.06,-36.2468],[2863.62,-600.857,15.9167,193.606,-34.1651],[2710.4,-501.228,14.9667,191.196,-31.8381],[2541.31,-401.415,13.9333,188.876,-29.2059],[2350.18,-300.994,12.7833,186.708,-26.1584],[2127.49,-200.064,11.4667,184.825,-22.5293],[1860.02,-100.853,9.91667,183.528,-18.0934],[1485.32,-0.441621,7.8,183.561,-11.83],[758.882,74.7565,3.86667,189.91,-0.0314663]]], + [12,88.477,[[4336.49,-2000.24,25.9167,226.745,-52.9863],[4261.07,-1901.65,25.3667,224.584,-52.1539],[4182.63,-1802.21,24.8,222.367,-51.2711],[4101.08,-1702.17,24.2167,220.097,-50.3347],[4016.38,-1601.74,23.6167,217.78,-49.3415],[3928.45,-1501.17,23,215.421,-48.2881],[3837.21,-1400.73,22.3667,213.028,-47.1707],[3742.59,-1300.69,21.7167,210.608,-45.9854],[3644.53,-1201.33,21.05,208.171,-44.7283],[3540.44,-1100.58,20.35,205.67,-43.3619],[3432.7,-1001.29,19.6333,203.179,-41.9128],[3318.66,-901.632,18.8833,200.658,-40.3406],[3195.57,-800.184,18.0833,198.08,-38.6],[3068.39,-701.873,17.2667,195.582,-36.7546],[2929.08,-601.599,16.3833,193.051,-34.6807],[2777.24,-500.9,15.4333,190.554,-32.3603],[2612.41,-401.469,14.4167,188.17,-29.776],[2425.83,-300.957,13.2833,185.907,-26.7772],[2210.93,-200.529,12,183.909,-23.2425],[1951.95,-100.536,10.4833,182.412,-18.8998],[1602.02,-0.362823,8.48333,182.051,-12.9672],[819.143,88.4759,4.2,188.354,-0.0215444]]], + [13,103.247,[[4380.62,-2001.57,26.3333,226.605,-53.3144],[4305.82,-1902.61,25.7833,224.423,-52.4878],[4228.02,-1802.8,25.2167,222.182,-51.6109],[4147.15,-1702.35,24.6333,219.887,-50.6805],[4063.14,-1601.51,24.0333,217.543,-49.6935],[3975.94,-1500.52,23.4167,215.154,-48.6464],[3887.85,-1402.26,22.8,212.792,-47.565],[3794.04,-1301.68,22.15,210.337,-46.387],[3696.81,-1201.76,21.4833,207.861,-45.1372],[3593.62,-1100.43,20.7833,205.317,-43.7782],[3486.8,-1000.54,20.0667,202.78,-42.3362],[3373.75,-900.246,19.3167,200.208,-40.771],[3254.29,-800.191,18.5333,197.627,-39.074],[3128.24,-701.067,17.7167,195.064,-37.2361],[2992.8,-601.757,16.85,192.507,-35.2086],[2845.01,-501.686,15.9167,189.965,-32.9369],[2681.76,-400.931,14.9,187.476,-30.3598],[2499.7,-300.348,13.7833,185.121,-27.4105],[2292.5,-200.5,12.5333,183.014,-23.9713],[2044.76,-100.845,11.0667,181.34,-19.7724],[1716.3,-0.472406,9.16667,180.615,-14.1273],[1030.03,99.869,5.35,184.8,-2.48972],[878.402,103.246,4.53333,186.761,-0.0198075]]], + [14,119.041,[[4422.86,-2002.48,26.75,226.476,-53.6507],[4346.44,-1900.16,26.1833,224.206,-52.8048],[4269.27,-1800.02,25.6167,221.941,-51.9333],[4191.37,-1702.08,25.05,219.687,-51.0353],[4108.08,-1600.81,24.45,217.315,-50.0548],[4023.96,-1502.09,23.85,214.961,-49.0427],[3934.27,-1400.68,23.2167,212.503,-47.9392],[3843.66,-1302.19,22.5833,210.076,-46.7984],[3747.29,-1201.7,21.9167,207.562,-45.5563],[3647.46,-1102.15,21.2333,205.035,-44.2378],[3541.61,-1001.55,20.5167,202.45,-42.8046],[3429.58,-900.504,19.7667,199.825,-41.2482],[3313.74,-801.753,19,197.239,-39.5962],[3188.88,-701.689,18.1833,194.609,-37.7677],[3054.72,-601.371,17.3167,191.976,-35.7491],[2908.33,-500.205,16.3833,189.346,-33.4853],[2751.97,-401.45,15.4,186.836,-31.0004],[2574.45,-300.66,14.3,184.386,-28.1033],[2372.15,-200.024,13.0667,182.142,-24.716],[2135.48,-100.878,11.65,180.305,-20.6627],[1825.2,-0.0338076,9.83333,179.252,-15.2595],[1295.73,99.9188,6.83333,181.162,-6.05595],[936.615,119.04,4.86667,185.133,-0.0266042]]], + [15,135.833,[[4463.19,-2003,27.1667,226.359,-53.995],[4387.43,-1900.28,26.6,224.065,-53.1554],[4313.2,-1802.65,26.05,221.845,-52.3161],[4233.71,-1701.38,25.4667,219.498,-51.3987],[4153.45,-1602.47,24.8833,217.164,-50.4524],[4067.76,-1500.52,24.2667,214.715,-49.4196],[3981.21,-1401.28,23.65,212.289,-48.3523],[3891.42,-1302.24,23.0167,209.827,-47.2194],[3795.92,-1201.17,22.35,207.274,-45.9853],[3696.99,-1101.02,21.6667,204.705,-44.6748],[3594.55,-1002.09,20.9667,202.133,-43.2834],[3483.57,-900.28,20.2167,199.454,-41.7362],[3368.82,-800.738,19.45,196.811,-40.0931],[3247.67,-701.83,18.65,194.168,-38.3111],[3114.8,-600.484,17.7833,191.458,-36.302],[2975.04,-501.73,16.8833,188.833,-34.129],[2820.27,-401.512,15.9,186.215,-31.6546],[2647.26,-300.541,14.8167,183.672,-28.8106],[2452.54,-200.449,13.6167,181.325,-25.5231],[2224.06,-100.683,12.2333,179.31,-21.5706],[1934.47,-0.624022,10.5167,177.969,-16.4641],[1479.96,99.9421,7.9,178.728,-8.40669],[993.734,135.83,5.2,183.472,-0.0422958]]], + [16,153.593,[[4499.37,-2000.12,27.5667,226.185,-54.323],[4426.48,-1900.05,27.0167,223.937,-53.5143],[4352.91,-1802.02,26.4667,221.693,-52.6814],[4274.14,-1700.31,25.8833,219.321,-51.7709],[4194.6,-1600.96,25.3,216.96,-50.8314],[4111.98,-1501.27,24.7,214.547,-49.8339],[4026.23,-1401.5,24.0833,212.088,-48.7747],[3937.27,-1301.89,23.45,209.591,-47.6499],[3842.66,-1200.23,22.7833,206.998,-46.4242],[3747.05,-1101.87,22.1167,204.45,-45.1545],[3645.59,-1002.22,21.4167,201.831,-43.7726],[3538.13,-901.854,20.6833,199.158,-42.27],[3424.5,-801.401,19.9167,196.453,-40.6377],[3304.54,-701.534,19.1167,193.743,-38.8662],[3175.54,-601.052,18.2667,191.007,-36.9066],[3037.2,-501.075,17.3667,188.293,-34.7444],[2886.62,-401.162,16.4,185.616,-32.3224],[2718.07,-300.037,15.3333,182.983,-29.5324],[2530.85,-200.584,14.1667,180.541,-26.3458],[2310.44,-100.312,12.8167,178.359,-22.4962],[2038.33,-0.667926,11.1833,176.758,-17.6398],[1639.13,99.4858,8.85,176.714,-10.4383],[1046.69,153.592,5.51667,181.819,-0.0157495]]], + [17,172.293,[[4537.95,-2003.06,28,226.161,-54.707],[4465.75,-1902.52,27.45,223.891,-53.9056],[4390.66,-1801.05,26.8833,221.555,-53.0549],[4314.85,-1701.78,26.3167,219.225,-52.1776],[4236.07,-1601.92,25.7333,216.836,-51.2461],[4154.24,-1501.69,25.1333,214.394,-50.2568],[4069.3,-1401.36,24.5167,211.902,-49.2061],[3981.18,-1301.18,23.8833,209.37,-48.0898],[3889.82,-1201.42,23.2333,206.803,-46.9039],[3795.15,-1102.36,22.5667,204.212,-45.644],[3694.68,-1001.97,21.8667,201.544,-44.272],[3588.27,-900.818,21.1333,198.818,-42.7795],[3478.23,-801.691,20.3833,196.114,-41.1932],[3359.48,-700.847,19.5833,193.337,-39.4328],[3234.3,-601.25,18.75,190.578,-37.523],[3097.4,-500.03,17.85,187.774,-35.3726],[2950.97,-400.446,16.9,185.039,-33.0036],[2789.48,-300.731,15.8667,182.362,-30.3129],[2607.01,-200.478,14.7167,179.793,-27.1839],[2397.28,-100.993,13.4167,177.478,-23.4875],[2136.83,-0.0648172,11.8333,175.612,-18.786],[1777.12,99.9407,9.7,174.98,-12.1926],[1101.51,172.29,5.85,180.092,-0.0499008]]], + [18,191.904,[[4572.31,-2002.69,28.4167,226.083,-55.0747],[4500.8,-1901.72,27.8667,223.791,-54.2803],[4428.61,-1802.78,27.3167,221.5,-53.4619],[4351.32,-1700.09,26.7333,219.076,-52.5667],[4275.52,-1602.6,26.1667,216.729,-51.6694],[4194.48,-1501.83,25.5667,214.256,-50.6886],[4110.37,-1400.92,24.95,211.732,-49.6465],[4023.11,-1300.15,24.3167,209.163,-48.5391],[3934.97,-1202.31,23.6833,206.625,-47.393],[3838.89,-1100.09,23,203.925,-46.1114],[3741.79,-1001.39,22.3167,201.275,-44.7818],[3638.86,-901.705,21.6,198.558,-43.3342],[3529.94,-801.653,20.85,195.794,-41.7596],[3414.89,-701.882,20.0667,193.007,-40.0482],[3291.03,-601.126,19.2333,190.17,-38.1514],[3158.1,-500.477,18.35,187.328,-36.054],[3015.83,-401.121,17.4167,184.536,-33.7404],[2858.73,-301.196,16.4,181.773,-31.1074],[2680.99,-200.182,15.2667,179.081,-28.0374],[2479.07,-100.461,14,176.622,-24.4475],[2235.5,-0.708495,12.5,174.557,-20.003],[1905.92,99.9728,10.5167,173.43,-13.8732],[1152.14,191.901,6.16667,178.374,-0.0416017]]], + [19,212.395,[[4604.6,-2002.1,28.8333,226.019,-55.45],[4533.78,-1900.69,28.2833,223.705,-54.6628],[4462.3,-1801.31,27.7333,221.392,-53.8516],[4387.95,-1701.07,27.1667,219.011,-52.9898],[4310.69,-1600.2,26.5833,216.568,-52.0743],[4232.68,-1501.71,26,214.134,-51.1289],[4149.4,-1400.22,25.3833,211.578,-50.0959],[4065.3,-1301.47,24.7667,209.042,-49.0272],[3975.76,-1200.4,24.1167,206.397,-47.8608],[3885.3,-1102.45,23.4667,203.788,-46.6521],[3786.87,-1000.52,22.7667,201.025,-45.3016],[3684.99,-900.036,22.05,198.256,-43.8649],[3579.61,-801.333,21.3167,195.495,-42.3367],[3465.77,-700.568,20.5333,192.642,-40.6377],[3345.69,-600.725,19.7167,189.786,-38.7915],[3216.7,-500.678,18.85,186.91,-36.7476],[3078.54,-401.581,17.9333,184.063,-34.4901],[2925.79,-301.482,16.9333,181.219,-31.9156],[2755.33,-201.186,15.8333,178.449,-28.9519],[2561.16,-101.169,14.6,175.848,-25.4724],[2328.76,-0.716408,13.15,173.565,-21.1893],[2025.75,99.9833,11.3,172.036,-15.4769],[1478.26,199.85,8.06667,173.645,-5.12003],[1201.56,212.393,6.48333,176.624,-0.0427711]]], + [20,233.737,[[4634.79,-2001.35,29.25,225.971,-55.8329],[4566.81,-1902.55,28.7167,223.706,-55.0771],[4496.05,-1802.65,28.1667,221.37,-54.2741],[4422.47,-1701.88,27.6,218.964,-53.4209],[4345.99,-1600.45,27.0167,216.493,-52.5142],[4268.78,-1501.4,26.4333,214.031,-51.5777],[4188.6,-1402.04,25.8333,211.511,-50.5823],[4105.38,-1302.61,25.2167,208.94,-49.5239],[4016.78,-1200.81,24.5667,206.256,-48.3684],[3927.27,-1102.13,23.9167,203.605,-47.1705],[3832.2,-1001.82,23.2333,200.86,-45.864],[3731.43,-900.423,22.5167,198.037,-44.4401],[3627.18,-800.78,21.7833,195.219,-42.9246],[3516.98,-701.116,21.0167,192.36,-41.2751],[3398.23,-600.098,20.2,189.428,-39.4433],[3273.14,-500.68,19.35,186.52,-37.4532],[3136.55,-400.11,18.4333,183.571,-35.2107],[2988.07,-300.013,17.45,180.655,-32.6937],[2824.74,-200.698,16.3833,177.821,-29.8352],[2638.16,-100.691,15.1833,175.098,-26.4656],[2419.36,-1.09093,13.8,172.652,-22.3947],[2139.54,99.5078,12.0667,170.781,-17.0539],[1699.43,199.904,9.41667,170.858,-8.54588],[1246.83,233.737,6.78333,174.882,-0.00023045]]], + [21,255.898,[[4662.85,-2000.47,29.6667,225.94,-56.2232],[4595.56,-1901.22,29.1333,223.654,-55.4748],[4525.52,-1800.86,28.5833,221.294,-54.6795],[4454.84,-1702.55,28.0333,218.935,-53.8596],[4379.17,-1600.56,27.45,216.437,-52.9621],[4302.76,-1500.93,26.8667,213.945,-52.0348],[4223.42,-1400.97,26.2667,211.394,-51.0488],[4141.08,-1300.93,25.65,208.789,-50.0002],[4055.66,-1201.06,25.0167,206.136,-48.8849],[3967.12,-1101.64,24.3667,203.443,-47.6982],[3873.07,-1000.53,23.6833,200.651,-46.4034],[3775.72,-900.64,22.9833,197.843,-45.025],[3672.62,-800.04,22.25,194.966,-43.5228],[3566.02,-701.506,21.5,192.104,-41.9231],[3451.02,-601.325,20.7,189.156,-40.1442],[3327.38,-500.536,19.85,186.16,-38.1706],[3194.84,-400.263,18.95,183.163,-35.9856],[3050.63,-300.065,17.9833,180.175,-33.529],[2891.81,-200.177,16.9333,177.238,-30.7329],[2712.7,-100.303,15.7667,174.403,-27.4749],[2504.6,-0.744827,14.4333,171.793,-23.5684],[2244.69,99.593,12.8,169.638,-18.5501],[1869.33,199.546,10.5,168.829,-11.164],[1293.74,255.897,7.1,173.07,-0.0209916]]], + [22,278.847,[[4690.8,-2002.66,30.1,225.997,-56.6436],[4624.23,-1902.89,29.5667,223.691,-55.9035],[4554.95,-1801.99,29.0167,221.308,-55.117],[4482.9,-1700.18,28.45,218.853,-54.2809],[4410.17,-1600.56,27.8833,216.4,-53.4178],[4334.59,-1500.35,27.3,213.88,-52.5],[4258.29,-1402.55,26.7167,211.369,-51.5514],[4176.85,-1301.79,26.1,208.728,-50.514],[4092.38,-1201.19,25.4667,206.037,-49.4101],[4004.81,-1101.02,24.8167,203.302,-48.2351],[3914.08,-1001.55,24.15,200.533,-46.9844],[3817.82,-900.735,23.45,197.673,-45.6196],[3718.22,-801.423,22.7333,194.804,-44.1658],[3612.85,-701.784,21.9833,191.877,-42.5814],[3499.18,-600.413,21.1833,188.854,-40.8182],[3379.38,-500.291,20.35,185.832,-38.8995],[3250.85,-400.353,19.4667,182.791,-36.7726],[3110.86,-300.093,18.5167,179.736,-34.3771],[2959.02,-201.223,17.5,176.746,-31.69],[2784.75,-100.06,16.35,173.766,-28.4996],[2587.14,-0.783651,15.0667,171.011,-24.7598],[2344.05,99.6031,13.5167,168.602,-20.0163],[2012.34,199.483,11.45,167.179,-13.388],[1339.33,278.845,7.41667,171.23,-0.0524286]]], + [23,302.553,[[4714.46,-2001.69,30.5167,226.002,-57.048],[4648.61,-1901.45,29.9833,223.674,-56.3159],[4580.07,-1800.07,29.4333,221.27,-55.5376],[4510.9,-1700.72,28.8833,218.863,-54.7348],[4438.97,-1600.53,28.3167,216.383,-53.8812],[4366.36,-1502.57,27.75,213.907,-52.9996],[4288.76,-1401.3,27.15,211.293,-52.0346],[4210.4,-1302.61,26.55,208.691,-51.0359],[4126.88,-1201.26,25.9167,205.962,-49.9438],[4040.3,-1100.31,25.2667,203.186,-48.7811],[3950.6,-1000.05,24.6,200.372,-47.5427],[3857.71,-900.759,23.9167,197.529,-46.2236],[3759.25,-800.479,23.2,194.604,-44.7841],[3657.43,-702.005,22.4667,191.679,-43.2499],[3547.46,-601.51,21.6833,188.646,-41.5404],[3429.1,-500.002,20.85,185.538,-39.6398],[3304.54,-400.433,19.9833,182.458,-37.5714],[3168.71,-300.153,19.05,179.339,-35.2379],[3021.26,-200.833,18.05,176.259,-32.6155],[2854.25,-100.02,16.9333,173.187,-29.5395],[2664.39,-0.0255207,15.6833,170.274,-25.9187],[2437.67,99.6608,14.2167,167.664,-21.4513],[2137.61,199.873,12.3167,165.77,-15.373],[1501.57,299.898,8.43333,168.002,-2.42666],[1380.74,302.551,7.71667,169.397,-0.0397807]]], + [24,326.983,[[4735.88,-2000.73,30.9333,226.025,-57.4596],[4670.75,-1900.02,30.4,223.677,-56.7356],[4605.03,-1801.19,29.8667,221.324,-55.9895],[4536.64,-1701.28,29.3167,218.893,-55.1961],[4465.52,-1600.49,28.75,216.387,-54.3522],[4393.73,-1501.94,28.1833,213.884,-53.4805],[4317,-1400.04,27.5833,211.239,-52.526],[4239.53,-1300.7,26.9833,208.603,-51.5379],[4159.14,-1201.32,26.3667,205.91,-50.486],[4075.77,-1102.15,25.7333,203.165,-49.3659],[3987.12,-1000.98,25.0667,200.305,-48.1417],[3895.32,-900.764,24.3833,197.413,-46.8369],[3800.31,-801.807,23.6833,194.5,-45.4461],[3697.41,-700.003,22.9333,191.445,-43.893],[3591.07,-600.52,22.1667,188.407,-42.2359],[3478.85,-501.723,21.3667,185.342,-40.4296],[3355.85,-400.559,20.5,182.163,-38.3817],[3224.14,-300.299,19.5833,178.986,-36.111],[3081.02,-200.574,18.6,175.822,-33.5543],[2921.16,-100.241,17.5167,172.671,-30.5938],[2741.42,-0.96813,16.3167,169.65,-27.1435],[2525.63,99.8813,14.9,166.812,-22.8543],[2253.67,199.521,13.15,164.555,-17.2778],[1808.71,299.721,10.3667,164.257,-7.98556],[1420.81,326.981,8.01667,167.535,-0.037574]]], + [25,352.104,[[4757.03,-2003.04,31.3667,226.142,-57.9],[4692.66,-1901.77,30.8333,223.774,-57.1851],[4627.7,-1802.39,30.3,221.399,-56.4482],[4560.09,-1701.89,29.75,218.945,-55.6644],[4489.79,-1600.51,29.1833,216.414,-54.8306],[4418.84,-1501.34,28.6167,213.883,-53.969],[4345.11,-1401.61,28.0333,211.281,-53.0521],[4268.56,-1301.55,27.4333,208.613,-52.0759],[4189.12,-1201.41,26.8167,205.884,-51.0364],[4106.73,-1101.45,26.1833,203.099,-49.929],[4021.33,-1001.97,25.5333,200.267,-48.749],[3930.64,-900.8,24.85,197.325,-47.4592],[3836.77,-800.862,24.15,194.358,-46.0836],[3737.39,-700.236,23.4167,191.309,-44.5814],[3634.66,-601.694,22.6667,188.267,-42.9782],[3523.85,-501.529,21.8667,185.121,-41.1912],[3404.75,-400.783,21.0167,181.91,-39.2031],[3277.11,-300.587,20.1167,178.68,-36.9957],[3138.27,-200.505,19.15,175.436,-34.5059],[2985.43,-100.782,18.1,172.217,-31.6618],[2813.14,-1.14023,16.9333,169.069,-28.3344],[2610.52,99.2353,15.5833,166.07,-24.2757],[2358.17,199.743,13.9333,163.485,-19.045],[1989.73,299.781,11.5833,162.172,-11.211],[1459.51,352.102,8.31667,165.645,-0.0462931]]], + [26,377.884,[[4773.84,-2002.28,31.7833,226.205,-58.325],[4710.21,-1900.5,31.25,223.817,-57.6187],[4646,-1800.61,30.7167,221.421,-56.8905],[4581.22,-1702.62,30.1833,219.019,-56.1397],[4511.75,-1600.62,29.6167,216.462,-55.3162],[4441.64,-1500.84,29.05,213.905,-54.4651],[4368.78,-1400.46,28.4667,211.274,-53.5591],[4295.25,-1302.49,27.8833,208.648,-52.6216],[4216.77,-1201.58,27.2667,205.883,-51.5948],[4135.38,-1100.83,26.6333,203.06,-50.5006],[4051.01,-1000.51,25.9833,200.185,-49.3342],[3963.62,-900.915,25.3167,197.267,-48.0904],[3873.13,-802.339,24.6333,194.317,-46.7637],[3775,-700.563,23.9,191.207,-45.2793],[3673.56,-600.833,23.15,188.097,-43.694],[3566.44,-501.449,22.3667,184.939,-41.9632],[3451.19,-401.161,21.5333,181.699,-40.0354],[3327.57,-301.071,20.65,178.42,-37.8919],[3192.97,-200.68,19.7,175.103,-35.4699],[3044.61,-100.153,18.6667,171.778,-32.697],[2879.59,-0.459889,17.5333,168.522,-29.4918],[2689.83,98.8552,16.25,165.403,-25.663],[2456.52,199.223,14.7,162.561,-20.7809],[2135.84,299.623,12.6167,160.585,-13.8607],[1494.08,377.884,8.6,163.761,-0.00919476]]], + [27,404.29,[[4788.33,-2001.67,32.2,226.289,-58.7565],[4727.43,-1902.55,31.6833,223.957,-58.0811],[4664,-1802.08,31.15,221.54,-57.3626],[4597.99,-1700.46,30.6,219.04,-56.5981],[4531.38,-1600.88,30.05,216.535,-55.8088],[4462.11,-1500.46,29.4833,213.951,-54.9685],[4392.21,-1402.28,28.9167,211.367,-54.0997],[4317.5,-1300.79,28.3167,208.634,-53.1476],[4242.07,-1201.88,27.7167,205.91,-52.1609],[4161.69,-1100.32,27.0833,203.048,-51.0803],[4080.52,-1001.72,26.45,200.205,-49.9581],[3994.23,-901.164,25.7833,197.24,-48.73],[3904.88,-801.599,25.1,194.238,-47.4193],[3810.21,-701.041,24.3833,191.139,-45.9861],[3710.07,-600.104,23.6333,187.962,-44.4196],[3606.6,-501.537,22.8667,184.796,-42.7452],[3495.15,-401.747,22.05,181.532,-40.8778],[3375.5,-301.81,21.1833,178.211,-38.7988],[3245.07,-201.159,20.25,174.826,-36.4455],[3103.52,-101.47,19.25,171.454,-33.7907],[2943.27,-0.281641,18.1333,168.051,-30.6636],[2763.61,98.8427,16.9,164.802,-27.0156],[2546.33,199.137,15.4333,161.743,-22.4298],[2261.53,299.324,13.55,159.299,-16.2059],[1680.13,399.85,9.83333,160.247,-3.29667],[1529.98,404.288,8.9,161.815,-0.0405581]]], + [28,431.287,[[4800.44,-2001.29,32.6167,226.395,-59.1946],[4740.28,-1901.66,32.1,224.044,-58.528],[4677.62,-1800.65,31.5667,221.607,-57.8187],[4614.4,-1701.54,31.0333,219.161,-57.0871],[4548.62,-1601.34,30.4833,216.632,-56.3084],[4480.21,-1500.28,29.9167,214.022,-55.4792],[4411.18,-1401.44,29.35,211.41,-54.6217],[4339.45,-1302.06,28.7667,208.723,-53.7082],[4264.99,-1202.38,28.1667,205.965,-52.7347],[4187.72,-1102.64,27.55,203.141,-51.6968],[4105.48,-1000.55,26.9,200.181,-50.5601],[4022.42,-901.6,26.25,197.245,-49.3779],[3934.23,-801.029,25.5667,194.191,-48.0839],[3842.97,-701.723,24.8667,191.107,-46.7017],[3746.36,-601.784,24.1333,187.934,-45.1899],[3644.27,-501.849,23.3667,184.694,-43.5369],[3534.32,-400.587,22.55,181.343,-41.6916],[3418.56,-300.965,21.7,177.988,-39.6756],[3292.22,-200.232,20.7833,174.544,-37.3897],[3154.98,-100.026,19.8,171.087,-34.8061],[3004.12,-0.66856,18.7333,167.656,-31.8491],[2831.94,99.2929,17.5333,164.257,-28.3333],[2627.79,199.819,16.1333,161.004,-23.991],[2370.15,299.784,14.4,158.21,-18.2978],[1960.61,399.747,11.7167,157.023,-8.99247],[1561.74,431.285,9.18333,159.875,-0.0257755]]], + [29,458.842,[[4810.15,-2001.15,33.0333,226.523,-59.6389],[4750.74,-1901.01,32.5167,224.154,-58.9813],[4690.8,-1802.6,32,221.774,-58.3037],[4628.39,-1702.88,31.4667,219.307,-57.5825],[4563.44,-1602.05,30.9167,216.755,-56.8146],[4495.91,-1500.33,30.35,214.119,-55.9968],[4427.75,-1400.82,29.7833,211.479,-55.1509],[4356.94,-1300.75,29.2,208.762,-54.2494],[4283.42,-1200.35,28.6,205.971,-53.2885],[4209.21,-1102.55,28,203.188,-52.2919],[4130.12,-1002.18,27.3667,200.263,-51.1996],[4048.17,-902.273,26.7167,197.282,-50.0338],[3961.14,-800.68,26.0333,194.178,-48.757],[3871.08,-700.316,25.3333,191.038,-47.3926],[3777.93,-601.507,24.6167,187.876,-45.9338],[3677.22,-500.289,23.85,184.563,-44.3014],[3573.2,-401.729,23.0667,181.267,-42.5538],[3459.05,-300.421,22.2167,177.813,-40.5631],[3339.03,-201.456,21.3333,174.38,-38.3873],[3206.08,-100.647,20.3667,170.838,-35.8784],[3059.76,-0.161238,19.3167,167.287,-33.0001],[2897.26,98.9458,18.1667,163.808,-29.6657],[2705.93,199.272,16.8333,160.397,-25.57],[2469.76,299.514,15.2167,157.302,-20.302],[2130.86,399.657,12.95,155.204,-12.4769],[1592.07,458.841,9.46667,157.908,-0.0225734]]], + [30,486.921,[[4817.45,-2001.34,33.45,226.674,-60.0894],[4758.8,-1900.66,32.9333,224.287,-59.441],[4699.63,-1801.72,32.4167,221.888,-58.7729],[4638.01,-1701.44,31.8833,219.4,-58.0615],[4573.89,-1600.02,31.3333,216.825,-57.304],[4509.19,-1500.67,30.7833,214.242,-56.5212],[4441.93,-1400.49,30.2167,211.576,-55.6872],[4374.04,-1302.56,29.65,208.907,-54.824],[4301.5,-1201.35,29.05,206.084,-53.877],[4226.23,-1100.04,28.4333,203.187,-52.8668],[4150.24,-1001.51,27.8167,200.301,-51.8175],[4069.37,-900.699,27.1667,197.277,-50.6672],[3985.61,-800.612,26.5,194.2,-49.4384],[3898.89,-701.544,25.8167,191.081,-48.1251],[3807.02,-601.529,25.1,187.856,-46.6866],[3709.87,-501.187,24.35,184.545,-45.1115],[3607.3,-401.177,23.5667,181.168,-43.3873],[3496.97,-300.239,22.7333,177.687,-41.4608],[3380.91,-201.321,21.8667,174.21,-39.3532],[3252.15,-100.099,20.9167,170.595,-36.9177],[3112.59,-0.256258,19.9,166.993,-34.1636],[2957.22,99.136,18.7833,163.406,-30.9622],[2775.99,199.854,17.5,159.838,-27.0599],[2558.15,299.914,15.9833,156.513,-22.1605],[2264.83,399.774,13.9833,153.85,-15.2988],[1620.93,486.92,9.75,155.914,-0.0315283]]], + [31,515.49,[[4822.26,-2001.88,33.8667,226.849,-60.5459],[4764.38,-1900.65,33.35,224.444,-59.907],[4705.99,-1801.17,32.8333,222.026,-59.2484],[4645.18,-1700.31,32.3,219.518,-58.5472],[4583.82,-1601.37,31.7667,216.999,-57.8233],[4519.99,-1501.35,31.2167,214.392,-57.0522],[4453.62,-1400.48,30.65,211.699,-56.2303],[4386.64,-1301.85,30.0833,209.003,-55.3796],[4317.07,-1202.69,29.5,206.227,-54.4724],[4242.82,-1100.53,28.8833,203.295,-53.4771],[4167.87,-1001.14,28.2667,200.371,-52.4429],[4090.15,-901.989,27.6333,197.382,-51.3386],[4007.55,-800.872,26.9667,194.258,-50.1278],[3922.03,-700.737,26.2833,191.086,-48.833],[3833.55,-601.9,25.5833,187.877,-47.4478],[3737.76,-500.264,24.8333,184.497,-45.8947],[3638.8,-400.995,24.0667,181.115,-44.2302],[3532.24,-300.471,23.25,177.613,-42.3681],[3420.08,-201.651,22.4,174.097,-40.3292],[3295.46,-100.069,21.4667,170.415,-37.968],[3162.53,-1.01264,20.4833,166.775,-35.3386],[3011.86,99.9514,19.3833,163.041,-32.223],[2842.8,199.311,18.1667,159.397,-28.565],[2640.43,299.474,16.7333,155.868,-23.9827],[2378.96,399.642,14.9167,152.782,-17.8008],[1917.4,499.893,11.8,151.768,-6.54199],[1648.31,515.487,10.0333,153.894,-0.053148]]], + [32,544.513,[[4824.6,-2002.84,34.2833,227.047,-61.0082],[4767.5,-1901.06,33.7667,224.626,-60.379],[4709.89,-1801.01,33.25,222.19,-59.7303],[4651.78,-1702.72,32.7333,219.741,-59.0614],[4589.37,-1600.04,32.1833,217.121,-58.3262],[4528.31,-1502.42,31.65,214.57,-57.5896],[4462.85,-1400.85,31.0833,211.852,-56.7802],[4396.79,-1301.51,30.5167,209.128,-55.9422],[4328.17,-1201.61,29.9333,206.321,-55.0484],[4256.92,-1101.41,29.3333,203.435,-54.0944],[4183.01,-1001.15,28.7167,200.474,-53.0759],[4106.38,-901.091,28.0833,197.444,-51.9878],[4026.97,-801.522,27.4333,194.352,-50.8248],[3942.67,-700.305,26.75,191.128,-49.5493],[3855.44,-600.346,26.05,187.862,-48.1839],[3765.22,-501.974,25.3333,184.567,-46.7216],[3667.71,-401.247,24.5667,181.11,-45.082],[3564.85,-301.184,23.7667,177.591,-43.2845],[3454.35,-200.596,22.9167,173.972,-41.2741],[3335.99,-100.623,22.0167,170.301,-39.0285],[3207.33,-0.846547,21.05,166.573,-36.4787],[3063.52,99.9685,19.9833,162.764,-33.4965],[2904.04,198.898,18.8167,159.027,-30.0321],[2714.36,299.458,17.45,155.315,-25.7123],[2478.87,399.28,15.7833,151.925,-20.095],[2121.96,499.942,13.3167,149.615,-11.2361],[1671.64,544.512,10.3,151.878,-0.0265019]]], + [33,573.958,[[4822.61,-2000.93,34.6833,227.192,-61.4564],[4768.1,-1901.91,34.1833,224.833,-60.8567],[4711.29,-1801.29,33.6667,222.379,-60.2181],[4653.98,-1702.42,33.15,219.911,-59.5595],[4594.3,-1602.22,32.6167,217.349,-58.8578],[4532.21,-1500.9,32.0667,214.696,-58.1099],[4469.56,-1401.65,31.5167,212.034,-57.3364],[4404.42,-1301.59,30.95,209.283,-56.5115],[4336.76,-1200.94,30.3667,206.446,-55.6314],[4268.48,-1102.72,29.7833,203.608,-54.7184],[4195.62,-1001.57,29.1667,200.611,-53.7159],[4120.08,-900.598,28.5333,197.541,-52.6446],[4041.8,-800.076,27.8833,194.404,-51.499],[3960.74,-700.296,27.2167,191.209,-50.2733],[3876.82,-601.562,26.5333,187.966,-48.9612],[3787.94,-501.919,25.8167,184.607,-47.5215],[3693.96,-401.987,25.0667,181.152,-45.9421],[3592.64,-300.367,24.2667,177.548,-44.1715],[3485.94,-200.054,23.4333,173.903,-42.229],[3373.71,-101.819,22.5667,170.252,-40.0984],[3249.25,-1.3827,21.6167,166.445,-37.6293],[3112.16,99.1252,20.5833,162.577,-34.7812],[2959.79,198.718,19.45,158.717,-31.461],[2782.44,299.012,18.15,154.87,-27.4029],[2565.08,399.714,16.5833,151.2,-22.1794],[2267.54,499.387,14.4833,148.235,-14.6984],[1693.49,573.957,10.5667,149.835,-0.0121361]]], + [34,603.789,[[4819.91,-2002.84,35.1,227.44,-61.93],[4766.17,-1903.27,34.6,225.065,-61.34],[4710.16,-1802.07,34.0833,222.594,-60.7117],[4653.67,-1702.61,33.5667,220.108,-60.0636],[4594.83,-1601.8,33.0333,217.526,-59.373],[4535.48,-1502.9,32.5,214.932,-58.6595],[4473.72,-1402.94,31.95,212.245,-57.8987],[4409.53,-1302.14,31.3833,209.468,-57.0872],[4342.83,-1200.72,30.8,206.602,-56.2211],[4275.53,-1101.73,30.2167,203.733,-55.3225],[4205.67,-1002.48,29.6167,200.782,-54.3626],[4131.24,-900.567,28.9833,197.673,-53.3085],[4056.09,-801.637,28.35,194.574,-52.2105],[3976.22,-700.769,27.6833,191.331,-51.0048],[3893.55,-600.907,27,188.033,-49.7134],[3805.99,-500.068,26.2833,184.614,-48.2956],[3715.47,-401.073,25.55,181.167,-46.7745],[3617.76,-300.078,24.7667,177.557,-45.0674],[3514.8,-200.088,23.95,173.891,-43.1929],[3406.45,-101.853,23.1,170.201,-41.1352],[3286.1,-0.949085,22.1667,166.326,-38.7454],[3155.58,98.9484,21.1667,162.417,-36.0291],[3010.13,198.863,20.0667,158.459,-32.8516],[2842.51,299.506,18.8167,154.474,-29.0004],[2642.68,399.789,17.35,150.616,-24.1682],[2381.13,499.798,15.4667,147.195,-17.5238],[1843.72,599.878,11.7167,146.573,-3.38257],[1713.85,603.788,10.8333,147.767,-0.0107074]]], + [35,633.968,[[4812.84,-2001.97,35.5,227.635,-62.39],[4759.87,-1901.88,35,225.244,-61.8094],[4704.66,-1800.14,34.4833,222.756,-61.1909],[4648.96,-1700.14,33.9667,220.251,-60.5529],[4592.79,-1601.9,33.45,217.731,-59.8946],[4534.29,-1502.37,32.9167,215.115,-59.1927],[4473.44,-1401.75,32.3667,212.405,-58.4441],[4410.17,-1300.27,31.8,209.602,-57.6454],[4346.33,-1201.03,31.2333,206.79,-56.8177],[4280.02,-1101.25,30.65,203.891,-55.9337],[4211.19,-1001.17,30.05,200.906,-54.9893],[4139.79,-901.059,29.4333,197.841,-53.9797],[4065.77,-801.169,28.8,194.701,-52.8997],[3989.07,-701.785,28.15,191.493,-51.7436],[3907.66,-600.778,27.4667,188.142,-50.4736],[3823.43,-501.053,26.7667,184.743,-49.1117],[3734.31,-400.707,26.0333,181.229,-47.6156],[3640.17,-300.381,25.2667,177.618,-45.9718],[3540.89,-200.763,24.4667,173.936,-44.1656],[3434.25,-100.676,23.6167,170.141,-42.1402],[3320.07,-1.26653,22.7167,166.278,-39.8713],[3193.82,99.5075,21.7333,162.276,-37.241],[3055.13,199.417,20.6667,158.242,-34.2045],[2896.97,299.922,19.4667,154.155,-30.5587],[2711.88,399.884,18.0833,150.142,-26.0602],[2478.11,499.804,16.3667,146.395,-20.0727],[2110.75,599.922,13.7333,143.816,-10.2194],[1732.67,633.967,11.1,145.672,-0.0229693]]], + [36,664.463,[[4803.27,-2001.68,35.9,227.855,-62.8556],[4751.08,-1901.07,35.4,225.449,-62.2846],[4698.44,-1802.06,34.9,223.025,-61.6962],[4643.57,-1701.44,34.3833,220.503,-61.0692],[4588.23,-1602.59,33.8667,217.964,-60.422],[4530.6,-1502.41,33.3333,215.328,-59.732],[4470.64,-1401.13,32.7833,212.595,-58.9959],[4410.16,-1301.92,32.2333,209.85,-58.2339],[4347.28,-1201.91,31.6667,207.012,-57.4205],[4281.96,-1101.32,31.0833,204.083,-56.5517],[4214.17,-1000.42,30.4833,201.065,-55.6231],[4145.74,-902.128,29.8833,198.048,-54.6575],[4072.85,-801.262,29.25,194.867,-53.596],[3997.33,-700.866,28.6,191.613,-52.4593],[3919.13,-601.231,27.9333,188.295,-51.2411],[3836.21,-500.303,27.2333,184.838,-49.9021],[3750.47,-400.946,26.5167,181.34,-48.4645],[3659.84,-301.335,25.7667,177.733,-46.8839],[3562.15,-200.081,24.9667,173.964,-45.108],[3459.28,-100.177,24.1333,170.142,-43.1546],[3349.03,-0.578449,23.25,166.231,-40.9634],[3229.08,99.1908,22.3,162.218,-38.4629],[3097.01,198.931,21.2667,158.124,-35.5682],[2948.1,298.998,20.1167,153.961,-32.1287],[2775.13,399.185,18.8,149.798,-27.9104],[2561.44,499.883,17.2,145.766,-22.4024],[2261.38,599.828,15,142.422,-14.2532],[1749.95,664.461,11.3667,143.553,-0.0495518]]], + [37,695.239,[[4791.07,-2002.03,36.3,228.1,-63.3268],[4739.66,-1900.88,35.8,225.68,-62.7655],[4687.82,-1801.33,35.3,223.241,-62.1871],[4633.78,-1700.15,34.7833,220.701,-61.5706],[4579.27,-1600.72,34.2667,218.144,-60.9343],[4524.29,-1503.07,33.75,215.571,-60.2772],[4465.26,-1401.1,33.2,212.816,-59.5539],[4405.68,-1301.2,32.65,210.047,-58.805],[4343.77,-1200.47,32.0833,207.183,-58.0054],[4281.29,-1102.01,31.5167,204.309,-57.1759],[4214.55,-1000.25,30.9167,201.259,-56.2636],[4147.18,-901.107,30.3167,198.207,-55.3146],[4077.31,-801.968,29.7,195.072,-54.299],[4002.98,-700.544,29.05,191.774,-53.1822],[3927.93,-602.321,28.4,188.491,-52.0154],[3846.33,-500.173,27.7,184.979,-50.7001],[3763.93,-401.846,27,181.5,-49.3206],[3674.75,-300.801,26.25,177.822,-47.7677],[3580.64,-200.088,25.4667,174.048,-46.0587],[3481.49,-100.418,24.65,170.206,-44.1774],[3375.12,-0.684013,23.7833,166.254,-42.0644],[3259.26,99.6608,22.85,162.172,-39.6488],[3133.64,198.92,21.85,158.038,-36.8934],[2991.58,299.508,20.7333,153.772,-33.6065],[2830.35,399.061,19.4833,149.516,-29.6626],[2636.03,499,18,145.314,-24.6304],[2375.72,599.731,16.05,141.463,-17.4961],[1763.3,695.238,11.6167,141.435,-0.0250427]]], + [38,726.259,[[4776.31,-2003.08,36.7,228.372,-63.8035],[4725.69,-1901.38,36.2,225.938,-63.2521],[4674.63,-1801.27,35.7,223.484,-62.6838],[4623.14,-1702.77,35.2,221.011,-62.098],[4569.48,-1602.7,34.6833,218.436,-61.4733],[4513.61,-1501.27,34.15,215.76,-60.807],[4457.25,-1401.74,33.6167,213.068,-60.118],[4398.61,-1301.14,33.0667,210.276,-59.3825],[4339.46,-1202.63,32.5167,207.471,-58.6204],[4276.16,-1100.47,31.9333,204.484,-57.7819],[4212.29,-1000.74,31.35,201.489,-56.9106],[4145.99,-900.726,30.75,198.403,-55.9786],[4077.23,-800.683,30.1333,195.231,-54.9809],[4005.95,-700.882,29.5,191.976,-53.9121],[3932.11,-601.603,28.85,188.647,-52.7663],[3853.74,-500.723,28.1667,185.165,-51.5053],[3772.68,-401.145,27.4667,181.627,-50.1507],[3686.92,-300.972,26.7333,177.962,-48.6594],[3596.34,-200.848,25.9667,174.19,-47.0172],[3500.84,-101.463,25.1667,170.333,-45.2081],[3398.29,-1.64977,24.3167,166.347,-43.1737],[3286.46,99.2105,23.4,162.204,-40.8438],[3165.08,199.461,22.4167,157.976,-38.181],[3031.8,298.76,21.35,153.694,-35.0947],[2877.73,399.824,20.1333,149.271,-31.3183],[2697.81,499.749,18.7333,144.909,-26.6389],[2468.99,599.56,16.9833,140.764,-20.3225],[2093.9,699.885,14.1833,137.797,-9.38995],[1775.13,726.259,11.8667,139.291,-0.0144522]]], + [39,757.49,[[4757.24,-2001.43,37.0833,228.59,-64.2674],[4709.07,-1902.61,36.6,226.224,-63.744],[4658.83,-1801.94,36.1,223.755,-63.1861],[4608.15,-1702.87,35.6,221.266,-62.6109],[4555.34,-1602.21,35.0833,218.675,-61.9974],[4500.35,-1500.15,34.55,215.98,-61.3431],[4446.62,-1403.1,34.0333,213.352,-60.6877],[4388.92,-1301.78,33.4833,210.538,-59.9658],[4330.72,-1202.55,32.9333,207.709,-59.2178],[4270.22,-1102.53,32.3667,204.781,-58.4185],[4207.39,-1001.94,31.7833,201.756,-57.5638],[4142.17,-901.04,31.1833,198.638,-56.6492],[4074.52,-800.077,30.5667,195.429,-55.6699],[4006.26,-701.935,29.95,192.221,-54.6485],[3933.63,-601.585,29.3,188.846,-53.5241],[3858.44,-502.012,28.6333,185.399,-52.3172],[3778.73,-401.165,27.9333,181.803,-50.988],[3696.32,-301.908,27.2167,178.156,-49.558],[3607.27,-200.262,26.45,174.307,-47.9464],[3515.35,-101.321,25.6667,170.445,-46.2074],[3416.54,-1.6019,24.8333,166.434,-44.2495],[3308.65,99.5862,23.9333,162.241,-42.0035],[3193.46,198.95,22.9833,158.005,-39.4776],[3064.61,299.735,21.9333,153.596,-36.4927],[2921.68,399.054,20.7833,149.163,-32.9847],[2753.62,499.479,19.45,144.644,-28.6032],[2546.52,599.647,17.8333,140.237,-22.8565],[2247.91,699.935,15.55,136.433,-14.052],[1785.41,757.489,12.1167,137.122,-0.0185481]]], + [40,788.895,[[4735.56,-2000.55,37.4667,228.835,-64.7371],[4688.17,-1901.23,36.9833,226.456,-64.2231],[4638.73,-1800.03,36.4833,223.972,-63.6752],[4588.86,-1700.44,35.9833,221.468,-63.1102],[4538.58,-1602.46,35.4833,218.943,-62.5274],[4486.18,-1502.95,34.9667,216.315,-61.9055],[4431.62,-1402.1,34.4333,213.583,-61.2419],[4374.86,-1300.12,33.8833,210.746,-60.5332],[4317.6,-1200.22,33.3333,207.894,-59.7986],[4259.84,-1102.42,32.7833,205.027,-59.0371],[4198.03,-1001.04,32.2,201.973,-58.1983],[4135.68,-902.104,31.6167,198.911,-57.326],[4069.16,-800.207,31,195.666,-56.3655],[4002.03,-701.12,30.3833,192.42,-55.3634],[3932.45,-602.323,29.75,189.09,-54.2887],[3858.53,-501.623,29.0833,185.594,-53.1049],[3782.04,-401.965,28.4,182.029,-51.8324],[3701.03,-301.376,27.6833,178.319,-50.4298],[3615.42,-200.481,26.9333,174.481,-48.8833],[3527.02,-102.035,26.1667,170.619,-47.2143],[3429.93,-0.487655,25.3333,166.508,-45.2934],[3327.87,98.9962,24.4667,162.354,-43.1713],[3216.74,199.041,23.5333,158.048,-40.7367],[3094.26,299.519,22.5167,153.599,-37.9004],[2958.06,399.503,21.4,149.062,-34.5555],[2801.46,499.549,20.1333,144.448,-30.4652],[2613.2,599.322,18.6333,139.867,-25.2215],[2359.64,699.496,16.65,135.585,-17.6866],[1794.14,788.893,12.3667,134.929,-0.0381562]]], + [41,820.437,[[4711.26,-2000.48,37.85,229.107,-65.2122],[4664.65,-1900.65,37.3667,226.715,-64.7078],[4617.64,-1802.29,36.8833,224.301,-64.1883],[4568.61,-1702.1,36.3833,221.782,-63.6344],[4517.51,-1600.27,35.8667,219.157,-63.0435],[4465.97,-1500.2,35.35,216.511,-62.433],[4413.99,-1401.9,34.8333,213.845,-61.8021],[4359.87,-1302.32,34.3,211.075,-61.1283],[4303.58,-1201.67,33.75,208.2,-60.4083],[4245.06,-1100.16,33.1833,205.221,-59.6387],[4186.03,-1000.92,32.6167,202.227,-58.8393],[4124.73,-901.166,32.0333,199.135,-57.9838],[4061.1,-801.135,31.4333,195.945,-57.0674],[3995.12,-701.088,30.8167,192.661,-56.0851],[3926.73,-601.294,30.1833,189.29,-55.0312],[3855.9,-502.037,29.5333,185.835,-53.8995],[3780.73,-401.194,28.85,182.217,-52.6518],[3702.98,-301.672,28.15,178.534,-51.3087],[3620.74,-201.573,27.4167,174.713,-49.8269],[3533.91,-101.547,26.65,170.771,-48.1912],[3440.45,-0.274585,25.8333,166.649,-46.3454],[3342.16,99.2632,24.9833,162.464,-44.3047],[3235,199.796,24.0667,158.101,-41.9595],[3118.72,299.661,23.0833,153.632,-39.2684],[2989.08,399.967,22,149.015,-36.0844],[2843.6,498.992,20.8,144.356,-32.2814],[2669.39,599.269,19.3833,139.598,-27.4177],[2446.35,699.424,17.6,134.994,-20.752],[2068.38,799.786,14.65,131.556,-8.70444],[1799.07,820.437,12.6,132.734,-0.00369902]]], + [42,852.084,[[4684.31,-2001.29,38.2333,229.406,-65.6926],[4638.49,-1900.94,37.75,227.002,-65.198],[4592.28,-1802.05,37.2667,224.575,-64.6886],[4544.07,-1701.31,36.7667,222.042,-64.1453],[4495.46,-1602.19,36.2667,219.487,-63.5847],[4444.8,-1501.47,35.75,216.824,-62.9864],[4393.71,-1402.53,35.2333,214.141,-62.368],[4340.52,-1302.28,34.7,211.35,-61.7075],[4285.19,-1200.93,34.15,208.453,-61.0017],[4229.37,-1101.67,33.6,205.538,-60.2696],[4171.37,-1001.63,33.0333,202.519,-59.4864],[4111.12,-901.042,32.45,199.397,-58.6479],[4048.6,-800.144,31.85,196.175,-57.7497],[3985.52,-701.889,31.25,192.945,-56.8131],[3918.33,-601.083,30.6167,189.533,-55.7805],[3848.74,-500.776,29.9667,186.034,-54.6712],[3776.69,-401.262,29.3,182.454,-53.4783],[3700.32,-300.494,28.6,178.714,-52.162],[3621.39,-201.334,27.8833,174.915,-50.7428],[3537.97,-101.969,27.1333,170.984,-49.1752],[3448.09,-1.02079,26.3333,166.856,-47.4046],[3353.5,98.5157,25.5,162.648,-45.4455],[3250.24,199.478,24.6,158.236,-43.1902],[3140.03,298.572,23.65,153.762,-40.644],[3016.8,399.021,22.6,149.085,-37.6215],[2878.14,499.275,21.4333,144.29,-33.997],[2717.5,598.967,20.1,139.436,-29.5057],[2515.55,699.959,18.45,134.557,-23.4461],[2224.12,799.637,16.1167,130.27,-14.0621],[1804.66,852.082,12.85,130.492,-0.0560241]]], + [43,883.798,[[4654.67,-2003.02,38.6167,229.733,-66.1781],[4609.64,-1902.13,38.1333,227.318,-65.6935],[4564.24,-1802.71,37.65,224.879,-65.1943],[4516.87,-1701.41,37.15,222.332,-64.6618],[4469.1,-1601.72,36.65,219.762,-64.1124],[4419.32,-1500.42,36.1333,217.083,-63.526],[4369.12,-1400.88,35.6167,214.382,-62.9197],[4316.85,-1300,35.0833,211.571,-62.272],[4264.13,-1201.06,34.55,208.741,-61.6011],[4209.3,-1101.09,34,205.803,-60.8838],[4152.31,-1000.3,33.4333,202.758,-60.1163],[4094.82,-901.796,32.8667,199.698,-59.3183],[4033.41,-800.017,32.2667,196.445,-58.4386],[3971.45,-700.871,31.6667,193.181,-57.521],[3907.2,-601.755,31.05,189.822,-56.5363],[3838.85,-500.381,30.4,186.279,-55.4501],[3769.88,-402.235,29.75,182.742,-54.3113],[3694.9,-300.203,29.05,178.946,-53.0227],[3619.21,-202.025,28.35,175.174,-51.6656],[3537.33,-101.176,27.6,171.17,-50.1308],[3450.95,-0.711215,26.8167,167.044,-48.4329],[3359.98,98.6546,26,162.823,-46.5529],[3260.55,199.862,25.1167,158.372,-44.3855],[3154.33,299.61,24.1833,153.833,-41.9348],[3037.31,399.728,23.1667,149.123,-39.067],[2907.23,499.274,22.05,144.295,-35.6678],[2755.75,599.983,20.7667,139.289,-31.4288],[2574.07,699.792,19.25,134.289,-25.9627],[2328.13,799.639,17.2333,129.525,-17.9917],[1806.48,883.796,13.0833,128.247,-0.0538289]]], + [44,915.543,[[4620.82,-2002.21,38.9833,230.005,-66.6524],[4576.59,-1900.84,38.5,227.579,-66.1774],[4531.98,-1800.92,38.0167,225.128,-65.6881],[4487.01,-1702.47,37.5333,222.653,-65.1838],[4440.09,-1602.2,37.0333,220.068,-64.6457],[4391.2,-1500.29,36.5167,217.374,-64.0713],[4341.89,-1400.14,36,214.655,-63.4774],[4292.16,-1301.77,35.4833,211.915,-62.863],[4240.4,-1202.13,34.95,209.065,-62.2064],[4186.55,-1101.43,34.4,206.105,-61.5041],[4132.25,-1002.83,33.85,203.126,-60.7751],[4074.14,-900.598,33.2667,199.949,-59.9711],[4015.52,-800.81,32.6833,196.756,-59.1337],[3954.7,-700.758,32.0833,193.46,-58.2356],[3891.62,-600.702,31.4667,190.064,-57.2715],[3826.25,-500.911,30.8333,186.571,-56.2354],[3758.55,-401.67,30.1833,182.988,-55.121],[3686.71,-300.859,29.5,179.23,-53.89],[3612.43,-201.384,28.8,175.399,-52.562],[3533.87,-101.355,28.0667,171.416,-51.0935],[3450.93,-1.42133,27.3,167.298,-49.468],[3361.69,99.7304,26.4833,162.982,-47.6285],[3267.85,199.117,25.6333,158.589,-45.5878],[3165.57,299.459,24.7167,153.993,-43.2335],[3054.63,399.084,23.7333,149.267,-40.5202],[2930.97,499.088,22.65,144.361,-37.2936],[2790.33,599.01,21.4333,139.312,-33.3609],[2622.31,699.624,20,134.13,-28.3017],[2407.83,799.286,18.2,129.069,-21.3227],[2027.44,899.913,15.0833,125.088,-7.96377],[1806.76,915.541,13.3167,125.979,-0.06869]]], + [45,947.285,[[4584.31,-2002.4,39.35,230.306,-67.132],[4540.88,-1900.52,38.8667,227.869,-66.6668],[4497.08,-1800.1,38.3833,225.406,-66.1876],[4452.92,-1701.14,37.9,222.918,-65.6937],[4406.85,-1600.33,37.4,220.32,-65.1665],[4360.4,-1501.14,36.9,217.697,-64.6222],[4312,-1400.37,36.3833,214.962,-64.0409],[4263.18,-1301.38,35.8667,212.205,-63.4395],[4212.37,-1201.08,35.3333,209.335,-62.7966],[4161.12,-1102.73,34.8,206.444,-62.1302],[4106.2,-1000.41,34.2333,203.351,-61.3949],[4050.8,-900.345,33.6667,200.238,-60.6302],[3994.91,-802.581,33.1,197.109,-59.8345],[3935.23,-701.608,32.5,193.782,-58.9563],[3873.33,-600.595,31.8833,190.35,-58.0133],[3810.88,-502.425,31.2667,186.911,-57.0268],[3744.47,-402.071,30.6167,183.284,-55.9373],[3673.99,-300.078,29.9333,179.475,-54.7332],[3602.86,-201.733,29.25,175.68,-53.4654],[3525.8,-100.311,28.5167,171.631,-52.029],[3446.23,-1.0595,27.7667,167.528,-50.4736],[3360.51,99.7444,26.9667,163.211,-48.7116],[3270.31,199.106,26.1333,158.799,-46.7555],[3171.88,299.852,25.2333,154.159,-44.4953],[3066.85,398.684,24.2833,149.437,-41.9323],[2949.44,498.806,23.2333,144.478,-38.875],[2815.5,599.99,22.05,139.295,-35.1324],[2662.56,698.957,20.7167,134.087,-30.5261],[2468.46,799.853,19.05,128.743,-24.1951],[2183.36,899.687,16.65,123.889,-14.0996],[1803.4,947.284,13.5333,123.705,-0.0259861]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 30.7102; +_maxRange = 3450.95; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg2.sqf new file mode 100644 index 0000000000..25408b55e2 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg2.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg2 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[4025.13,-2001.76,21.35,235.945,-48.329],[3933.16,-1900.05,20.7667,234.145,-47.3934],[3840.24,-1800.64,20.1833,232.373,-46.4334],[3743.65,-1700.82,19.5833,230.582,-45.4203],[3643.32,-1600.83,18.9667,228.78,-44.3514],[3539.16,-1500.92,18.3333,226.974,-43.2239],[3431.07,-1401.36,17.6833,225.175,-42.0353],[3318.95,-1302.42,17.0167,223.392,-40.7825],[3199.86,-1202.04,16.3167,221.596,-39.4304],[3073.59,-1100.79,15.5833,219.806,-37.9732],[2942.84,-1001.44,14.8333,218.083,-36.4401],[2801.57,-900.229,14.0333,216.377,-34.7574],[2652.44,-800.094,13.2,214.758,-32.9534],[2495.18,-701.779,12.3333,213.263,-31.0232],[2320.24,-600.942,11.3833,211.866,-28.8467],[2130.05,-501.194,10.3667,210.678,-26.4513],[1914.37,-400.129,9.23333,209.761,-23.7072],[1668.66,-300.051,7.96667,209.293,-20.5601],[1374.57,-200.498,6.48333,209.562,-16.7889],[980.708,-100.027,4.55,211.366,-11.7847],[33.403,-0.0224912,0.133333,222.441,-0.378473],[3.71562,0.0972759,0,222.937,-0.0420058]]], + [1,0.83657,[[4089.89,-2002.79,21.75,235.491,-48.5025],[3998.41,-1901.01,21.1667,233.67,-47.5681],[3905.98,-1801.53,20.5833,231.876,-46.6093],[3809.92,-1701.63,19.9833,230.062,-45.5972],[3710.13,-1601.56,19.3667,228.235,-44.5291],[3606.53,-1501.57,18.7333,226.403,-43.4023],[3499.03,-1401.93,18.0833,224.576,-42.2139],[3384.73,-1300.48,17.4,222.72,-40.9295],[3266.26,-1200.11,16.7,220.894,-39.576],[3143.52,-1101.13,15.9833,219.113,-38.1507],[3013.5,-1001.7,15.2333,217.354,-36.6163],[2873.03,-900.403,14.4333,215.608,-34.9314],[2724.75,-800.187,13.6,213.948,-33.1244],[2568.39,-701.791,12.7333,212.408,-31.1903],[2394.46,-600.872,11.7833,210.962,-29.0084],[2205.39,-501.041,10.7667,209.718,-26.6058],[1994.16,-401.3,9.65,208.751,-23.8932],[1750,-300.953,8.38333,208.205,-20.7342],[1454.47,-200.079,6.88333,208.388,-16.9032],[1066.51,-100.224,4.96667,210.062,-11.9156],[180.818,-0.0659076,0.8,219.968,-1.07229],[88.8737,0.835831,0.383333,221.468,-0.0114587]]], + [2,3.0959,[[4153.2,-2002.81,22.15,235.036,-48.6854],[4062.23,-1900.94,21.5667,233.193,-47.7525],[3970.31,-1801.37,20.9833,231.376,-46.795],[3874.78,-1701.38,20.3833,229.538,-45.7841],[3775.56,-1601.22,19.7667,227.685,-44.717],[3672.54,-1501.14,19.1333,225.827,-43.5909],[3565.65,-1401.41,18.4833,223.971,-42.4031],[3454.79,-1302.29,17.8167,222.129,-41.1506],[3337.03,-1201.74,17.1167,220.268,-39.7979],[3212.18,-1100.32,16.3833,218.41,-38.3393],[3082.92,-1000.79,15.6333,216.614,-36.8036],[2946.2,-901.46,14.85,214.863,-35.1524],[2798.83,-801.036,14.0167,213.156,-33.3437],[2640.43,-700.587,13.1333,211.538,-31.369],[2470.61,-601.272,12.2,210.063,-29.2206],[2282.73,-501.195,11.1833,208.758,-26.8121],[2072.86,-401.186,10.0667,207.72,-24.091],[1830.29,-300.541,8.8,207.092,-20.9202],[1540.03,-200.334,7.31667,207.172,-17.115],[1158.2,-100.484,5.41667,208.684,-12.1449],[348.181,-0.0555492,1.56667,217.194,-2.04415],[177.072,3.09397,0.783333,219.891,-0.0300487]]], + [3,6.85559,[[4214.99,-2001.85,22.55,234.579,-48.8778],[4127.14,-1902.76,21.9833,232.767,-47.9736],[4033.16,-1800.2,21.3833,230.873,-46.9907],[3938.19,-1700.11,20.7833,229.01,-45.9811],[3842.22,-1602.52,20.1833,227.182,-44.9444],[3739.84,-1502.27,19.55,225.295,-43.8202],[3633.61,-1402.35,18.9,223.408,-42.6339],[3520.66,-1300.61,18.2167,221.487,-41.351],[3406.41,-1202.3,17.5333,219.637,-40.0309],[3282.34,-1100.67,16.8,217.74,-38.5728],[3153.9,-1000.93,16.05,215.903,-37.0371],[3018.04,-901.384,15.2667,214.109,-35.3852],[2871.61,-800.73,14.4333,212.354,-33.5749],[2714.24,-700.04,13.55,210.683,-31.5975],[2545.52,-600.473,12.6167,209.15,-29.4451],[2358.88,-500.124,11.6,207.78,-27.0306],[2153.55,-401.24,10.5,206.683,-24.3424],[1912.67,-300.083,9.23333,205.963,-21.1606],[1627.75,-200.303,7.76667,205.927,-17.3823],[1252.18,-100.143,5.88333,207.261,-12.4304],[516.709,-0.122678,2.35,214.444,-3.08581],[260.885,6.85475,1.16667,218.33,-0.013191]]], + [4,12.0917,[[4277.79,-2002.9,22.9667,234.177,-49.1059],[4187.91,-1900.74,22.3833,232.288,-48.1773],[4097.1,-1800.89,21.8,230.423,-47.2238],[4002.73,-1700.61,21.2,228.534,-46.2165],[3904.71,-1600.16,20.5833,226.627,-45.1528],[3805.64,-1502.38,19.9667,224.761,-44.0597],[3700.09,-1402.27,19.3167,222.843,-42.8753],[3587.87,-1300.31,18.6333,220.888,-41.5939],[3474.35,-1201.8,17.95,219.002,-40.275],[3353.91,-1102.21,17.2333,217.108,-38.8512],[3226.33,-1002.16,16.4833,215.227,-37.3167],[3088.52,-900.199,15.6833,213.347,-35.6297],[2945.99,-801.26,14.8667,211.576,-33.8547],[2789.7,-700.191,13.9833,209.847,-31.876],[2622.17,-600.223,13.05,208.251,-29.7209],[2439.9,-501.022,12.05,206.83,-27.342],[2232.97,-400.082,10.9333,205.631,-24.6064],[2000.19,-300.882,9.7,204.83,-21.4988],[1717.51,-200.044,8.23333,204.661,-17.7061],[1351.64,-100.029,6.38333,205.783,-12.8176],[682.649,-0.246221,3.13333,211.781,-4.1551],[343.937,12.0914,1.55,216.725,-0.00347169]]], + [5,18.7795,[[4336.42,-2000.08,23.3667,233.722,-49.3172],[4249.66,-1900.69,22.8,231.864,-48.4174],[4159.45,-1800.64,22.2167,229.974,-47.4665],[4065.69,-1700.16,21.6167,228.058,-46.4618],[3970.96,-1602.19,21.0167,226.175,-45.4296],[3869.9,-1501.53,20.3833,224.227,-44.3096],[3765.05,-1401.2,19.7333,222.277,-43.1272],[3656.31,-1301.47,19.0667,220.334,-41.8792],[3540.81,-1200.28,18.3667,218.364,-40.5301],[3421.18,-1100.46,17.65,216.43,-39.1073],[3294.46,-1000.16,16.9,214.506,-37.5732],[3160.46,-900.021,16.1167,212.617,-35.9216],[3018.93,-800.712,15.3,210.793,-34.1466],[2866.71,-701.099,14.4333,209.036,-32.2047],[2700.43,-600.581,13.5,207.37,-30.0483],[2519.53,-500.787,12.5,205.871,-27.6662],[2317.27,-400.623,11.4,204.599,-24.9663],[2086.34,-300.511,10.1667,203.687,-21.8505],[1812.38,-200.685,8.73333,203.378,-18.1311],[1456.33,-100.283,6.91667,204.264,-13.3084],[842.446,-0.156779,3.9,209.25,-5.20776],[426.161,18.7794,1.93333,215.078,-0.0011888]]], + [6,26.893,[[4398.46,-2002.31,23.8,233.381,-49.59],[4312.31,-1902.65,23.2333,231.498,-48.6938],[4222.73,-1802.33,22.65,229.582,-47.7465],[4129.63,-1701.58,22.05,227.638,-46.7453],[4032.94,-1600.63,21.4333,225.673,-45.6875],[3935.23,-1502.36,20.8167,223.745,-44.5998],[3831.12,-1401.72,20.1667,221.761,-43.4205],[3723.15,-1301.68,19.5,219.781,-42.1754],[3608.48,-1200.16,18.8,217.771,-40.8289],[3492.49,-1102.28,18.1,215.84,-39.4419],[3366.72,-1001.53,17.35,213.867,-37.9105],[3233.72,-900.912,16.5667,211.925,-36.2612],[3093.27,-801.105,15.75,210.043,-34.4876],[2942.21,-700.961,14.8833,208.222,-32.546],[2780.17,-601.612,13.9667,206.513,-30.4277],[2600.72,-501.063,12.9667,204.93,-28.044],[2400.09,-400.063,11.8667,203.56,-25.3399],[2174.17,-300.284,10.65,202.545,-22.2589],[1905.74,-200.215,9.23333,202.09,-18.5707],[1562.73,-100.271,7.46667,202.732,-13.8599],[999.586,-0.100994,4.66667,206.803,-6.28769],[507.492,26.8926,2.31667,213.39,-0.00665037]]], + [7,36.4051,[[4456.22,-2000.76,24.2167,232.989,-49.8461],[4370.67,-1900.89,23.65,231.082,-48.9531],[4281.71,-1800.35,23.0667,229.14,-48.0088],[4191.85,-1702.14,22.4833,227.222,-47.0387],[4095.86,-1600.89,21.8667,225.226,-45.9846],[3998.86,-1502.32,21.25,223.267,-44.9004],[3895.51,-1401.35,20.6,221.248,-43.7245],[3788.34,-1300.98,19.9333,219.231,-42.4826],[3677.25,-1201.49,19.25,217.228,-41.1715],[3559.38,-1100.88,18.5333,215.206,-39.7545],[3437.34,-1001.95,17.8,213.23,-38.2597],[3305.38,-900.839,17.0167,211.234,-36.6128],[3166.02,-800.513,16.2,209.293,-34.8409],[3019.04,-701.695,15.35,207.441,-32.938],[2858.32,-601.635,14.4333,205.656,-30.8202],[2680.35,-500.305,13.4333,203.986,-28.4353],[2487.46,-401.378,12.3667,202.556,-25.8106],[2263.55,-300.288,11.15,201.412,-22.7246],[2003.86,-200.864,9.76667,200.805,-19.1136],[1670.65,-100.112,8.03333,201.195,-14.4731],[1153.99,-0.132403,5.43333,204.446,-7.39506],[587.867,36.4038,2.7,211.663,-0.0201738]]], + [8,47.2872,[[4514.72,-2001.4,24.65,232.66,-50.1372],[4429.8,-1901.24,24.0833,230.728,-49.2482],[4341.51,-1800.41,23.5,228.759,-48.308],[4252.31,-1701.9,22.9167,226.813,-47.3418],[4157.04,-1600.33,22.3,224.786,-46.2916],[4060.77,-1501.43,21.6833,222.795,-45.2112],[3958.2,-1400.13,21.0333,220.739,-44.039],[3854.51,-1301.89,20.3833,218.735,-42.832],[3744.29,-1201.95,19.7,216.69,-41.525],[3627.36,-1100.88,18.9833,214.622,-40.1118],[3506.29,-1001.47,18.25,212.596,-38.6204],[3378.17,-901.953,17.4833,210.587,-37.0119],[3239.97,-800.981,16.6667,208.583,-35.2433],[3094.21,-701.486,15.8167,206.663,-33.3427],[2934.84,-600.69,14.9,204.801,-31.2259],[2761.33,-500.188,13.9167,203.07,-28.8805],[2570.12,-400.245,12.85,201.536,-26.2539],[2354.33,-300.618,11.6667,200.295,-23.248],[2100.22,-200.568,10.3,199.528,-19.6723],[1783.15,-100.81,8.63333,199.658,-15.1944],[1305.59,-0.306434,6.2,202.181,-8.52995],[667.223,47.2846,3.08333,209.899,-0.04209]]], + [9,59.5114,[[4571.34,-2001.31,25.0833,232.339,-50.4372],[4487.08,-1900.85,24.5167,230.382,-49.5525],[4401.98,-1802.56,23.95,228.441,-48.6437],[4310.95,-1700.88,23.35,226.41,-47.6546],[4218.99,-1601.69,22.75,224.407,-46.6373],[4123.49,-1502.39,22.1333,222.382,-45.5617],[4021.74,-1400.66,21.4833,220.289,-44.3944],[3918.89,-1301.98,20.8333,218.246,-43.192],[3809.56,-1201.58,20.15,216.158,-41.8895],[3693.58,-1100.02,19.4333,214.043,-40.4805],[3573.49,-1000.12,18.7,211.967,-38.9928],[3446.43,-900.079,17.9333,209.904,-37.3876],[3312.17,-800.566,17.1333,207.879,-35.6581],[3167.66,-700.372,16.2833,205.889,-33.7601],[3012.54,-600.604,15.3833,203.982,-31.6839],[2843.51,-500.8,14.4167,202.186,-29.3799],[2657.05,-401.171,13.3667,200.564,-26.7948],[2443.32,-300.039,12.1833,199.187,-23.7866],[2197.87,-200.518,10.85,198.268,-20.2915],[1893.58,-100.799,9.23333,198.148,-15.9343],[1451.02,-0.119079,6.95,200.036,-9.64614],[742.033,59.5097,3.45,208.153,-0.0277353]]], + [10,73.0469,[[4626.09,-2000.52,25.5167,232.027,-50.7462],[4544.96,-1902.68,24.9667,230.102,-49.8922],[4458.06,-1801.14,24.3833,228.077,-48.9615],[4370.28,-1701.93,23.8,226.073,-48.0047],[4279.07,-1602.33,23.2,224.038,-46.9926],[4184.36,-1502.61,22.5833,221.979,-45.9222],[4083.45,-1400.43,21.9333,219.848,-44.7601],[3981.45,-1301.3,21.2833,217.766,-43.5626],[3873.03,-1200.43,20.6,215.635,-42.2649],[3760.7,-1100.7,19.9,213.521,-40.8936],[3641.64,-1000.18,19.1667,211.392,-39.4112],[3518.43,-901.642,18.4167,209.316,-37.846],[3385.38,-801.35,17.6167,207.225,-36.1218],[3242.17,-700.322,16.7667,205.161,-34.2283],[3091.32,-601.468,15.8833,203.206,-32.1943],[2923.87,-500.568,14.9167,201.314,-29.8932],[2742.12,-401.265,13.8833,199.605,-27.3504],[2536.48,-301.326,12.7333,198.126,-24.4267],[2296.63,-200.842,11.4167,197.035,-20.9717],[2001.9,-100.13,9.83333,196.668,-16.693],[1593.6,-0.0700409,7.7,197.983,-10.789],[815.764,73.0456,3.81667,206.37,-0.0216822]]], + [11,87.8635,[[4681.33,-2002.1,25.9667,231.785,-51.0894],[4598.43,-1900.94,25.4,229.775,-50.2146],[4514.71,-1801.94,24.8333,227.78,-49.3156],[4427.67,-1702.31,24.25,225.747,-48.3642],[4337.23,-1602.3,23.65,223.68,-47.3576],[4243.31,-1502.14,23.0333,221.586,-46.2926],[4145.84,-1402.09,22.4,219.473,-45.1661],[4044.73,-1302.41,21.75,217.349,-43.9748],[3937.26,-1200.96,21.0667,215.172,-42.6833],[3825.92,-1100.64,20.3667,213.01,-41.3179],[3710.61,-1001.75,19.65,210.876,-39.8752],[3585.79,-900.304,18.8833,208.694,-38.281],[3456.69,-801.37,18.1,206.583,-36.5978],[3317.6,-701.429,17.2667,204.484,-34.7469],[3168.18,-601.559,16.3833,202.444,-32.7179],[3005.21,-501.232,15.4333,200.485,-30.4607],[2825.26,-400.574,14.4,198.66,-27.9206],[2624.64,-300.501,13.2667,197.065,-25.0394],[2393.33,-200.469,11.9833,195.827,-21.6688],[2114.22,-100.814,10.4667,195.224,-17.5622],[1733.26,-0.218897,8.45,196.024,-11.9582],[888.361,87.8621,4.18333,204.553,-0.024242]]], + [12,103.93,[[4732.13,-2000.08,26.4,231.495,-51.4159],[4652.35,-1901.53,25.85,229.518,-50.572],[4569.35,-1802.12,25.2833,227.496,-49.6786],[4483.06,-1702.08,24.7,225.432,-48.733],[4393.4,-1601.63,24.1,223.333,-47.7321],[4300.3,-1501.01,23.4833,221.204,-46.6729],[4203.67,-1400.49,22.85,219.054,-45.5522],[4103.44,-1300.34,22.2,216.89,-44.3665],[3999.52,-1200.82,21.5333,214.723,-43.1123],[3891.83,-1102.24,20.85,212.563,-41.7861],[3774.93,-1000.36,20.1167,210.325,-40.3165],[3653.95,-900.41,19.3667,208.13,-38.7631],[3526.05,-800.673,18.5833,205.953,-37.086],[3391.04,-701.833,17.7667,203.823,-35.2781],[3243.07,-600.923,16.8833,201.696,-33.2549],[3084.55,-501.185,15.95,199.674,-31.0422],[2909.3,-400.721,14.9333,197.761,-28.5472],[2713.71,-300.373,13.8167,196.047,-25.7108],[2490.89,-200.689,12.5667,194.66,-22.4275],[2221.08,-100.076,11.0833,193.823,-18.4052],[1869.92,-0.627294,9.2,194.164,-13.1536],[1137.59,99.9356,5.43333,200.176,-2.49968],[959.768,103.928,4.55,202.701,-0.0357611]]], + [13,121.213,[[4783.3,-2000.54,26.85,231.278,-51.7761],[4704.23,-1901.58,26.3,229.276,-50.9381],[4621.96,-1801.75,25.7333,227.225,-50.0506],[4536.44,-1701.27,25.15,225.132,-49.1109],[4447.57,-1600.36,24.55,223,-48.1161],[4357.81,-1501.98,23.95,220.894,-47.0919],[4262.07,-1400.91,23.3167,218.705,-45.9781],[4162.76,-1300.17,22.6667,216.5,-44.7993],[4059.79,-1200.06,22,214.288,-43.5519],[3953.09,-1100.87,21.3167,212.08,-42.2323],[3839.92,-1000.6,20.6,209.838,-40.803],[3722.78,-902.059,19.8667,207.632,-39.2918],[3596.14,-801.396,19.0833,205.386,-37.6226],[3462.46,-701.582,18.2667,203.179,-35.822],[3318.75,-601.477,17.4,201.006,-33.8439],[3161.84,-500.478,16.4667,198.883,-31.6375],[2991.26,-400.227,15.4667,196.884,-29.1884],[2803.56,-301.076,14.3833,195.079,-26.4409],[2586.19,-200.38,13.15,193.528,-23.2033],[2331.6,-101.04,11.7333,192.481,-19.3594],[2000.44,-0.562182,9.93333,192.411,-14.3275],[1438.5,99.9092,6.98333,195.72,-5.90983],[1026.58,121.213,4.9,200.867,-0.00995754]]], + [14,139.682,[[4832.36,-2000.5,27.3,231.075,-52.1446],[4754,-1901.12,26.75,229.047,-51.3126],[4672.49,-1800.86,26.1833,226.968,-50.4313],[4590.17,-1702.78,25.6167,224.905,-49.525],[4502.14,-1601.34,25.0167,222.74,-48.5373],[4413.21,-1502.42,24.4167,220.6,-47.5202],[4318.37,-1400.77,23.7833,218.372,-46.4137],[4222.54,-1302,23.15,216.182,-45.2727],[4120.57,-1201.2,22.4833,213.923,-44.0335],[4014.91,-1101.28,21.8,211.666,-42.722],[3902.84,-1000.26,21.0833,209.369,-41.3006],[3786.84,-900.932,20.35,207.103,-39.797],[3664.13,-801.535,19.5833,204.838,-38.1712],[3531.8,-700.726,18.7667,202.554,-36.3784],[3392.29,-601.443,17.9167,200.338,-34.4459],[3239.81,-500.924,17,198.15,-32.2867],[3073.9,-400.772,16.0167,196.065,-29.8858],[2891.15,-301.272,14.95,194.144,-27.1867],[2682.11,-200.904,13.75,192.452,-24.0408],[2436.54,-100.695,12.3667,191.188,-20.2873],[2127.94,-0.766295,10.6667,190.754,-15.5262],[1650.56,99.7859,8.11667,192.697,-8.20678],[1095.48,139.679,5.26667,198.951,-0.0400124]]], + [15,159.301,[[4879.26,-2000.01,27.75,230.888,-52.5213],[4801.63,-1900.21,27.2,228.834,-51.6955],[4723.26,-1802.43,26.65,226.789,-50.8467],[4639.33,-1700.97,26.0667,224.634,-49.9207],[4554.55,-1601.85,25.4833,222.498,-48.9675],[4466.48,-1502.37,24.8833,220.322,-47.9577],[4372.55,-1400.13,24.25,218.056,-46.8589],[4277.64,-1300.77,23.6167,215.825,-45.7254],[4179.2,-1201.83,22.9667,213.578,-44.5251],[4074.58,-1101.18,22.2833,211.271,-43.2221],[3966.23,-1001.7,21.5833,208.972,-41.8427],[3851.41,-901.481,20.85,206.644,-40.3483],[3729.96,-801.138,20.0833,204.311,-38.7314],[3601.69,-701.339,19.2833,201.998,-36.9843],[3463.66,-600.875,18.4333,199.693,-35.0608],[3315.56,-500.859,17.5333,197.445,-32.9494],[3154.26,-400.835,16.5667,195.277,-30.5976],[2976.42,-301.017,15.5167,193.243,-27.948],[2775.58,-201.08,14.35,191.421,-24.8952],[2538.9,-100.124,13,189.951,-21.2345],[2249.34,-0.395807,11.3833,189.195,-16.7016],[1831.88,99.5772,9.11667,190.198,-10.1674],[1159.75,159.299,5.61667,197.052,-0.0325795]]], + [16,180.037,[[4926.29,-2002.21,28.2167,230.78,-52.9307],[4849.42,-1901.9,27.6667,228.699,-52.1122],[4769.45,-1800.67,27.1,226.565,-51.2448],[4688.7,-1701.61,26.5333,224.442,-50.3523],[4604.76,-1601.94,25.95,222.273,-49.4066],[4517.56,-1501.89,25.35,220.063,-48.4046],[4427.02,-1401.72,24.7333,217.818,-47.3429],[4333.06,-1301.67,24.1,215.545,-46.2182],[4235.62,-1202.02,23.45,213.253,-45.0268],[4132.07,-1100.62,22.7667,210.895,-43.7327],[4024.82,-1000.36,22.0667,208.542,-42.362],[3913.78,-901.568,21.35,206.209,-40.9106],[3793.6,-800.26,20.5833,203.807,-39.3034],[3669.33,-701.492,19.8,201.466,-37.6022],[3535.49,-601.763,18.9667,199.119,-35.7268],[3389.04,-500.338,18.0667,196.769,-33.6256],[3232.3,-400.47,17.1167,194.522,-31.3237],[3059.3,-300.366,16.0833,192.38,-28.7247],[2866.54,-200.966,14.95,190.437,-25.7665],[2641.52,-100.579,13.65,188.789,-22.2467],[2367.69,-0.31241,12.1,187.73,-17.9004],[1993.06,99.7126,10.0333,188.032,-11.9249],[1222.69,180.035,5.96667,195.123,-0.0346506]]], + [17,201.856,[[4968.75,-2001,28.6667,230.627,-53.3228],[4892.64,-1900.23,28.1167,228.521,-52.5111],[4815.79,-1801.49,27.5667,226.422,-51.6764],[4735.85,-1701.89,27,224.27,-50.7917],[4652.75,-1601.66,26.4167,222.068,-49.8539],[4566.43,-1501.03,25.8167,219.823,-48.8601],[4476.8,-1400.25,25.2,217.541,-47.8066],[4386.25,-1302.19,24.5833,215.287,-46.72],[4289.82,-1201.81,23.9333,212.95,-45.5379],[4189.86,-1102.09,23.2667,210.6,-44.2851],[4083.75,-1000.95,22.5667,208.192,-42.9249],[3973.89,-901.242,21.85,205.797,-41.4838],[3857.6,-801.123,21.1,203.379,-39.9222],[3734.7,-701.237,20.3167,200.963,-38.232],[3602.33,-600.306,19.4833,198.529,-36.3671],[3462.9,-501.258,18.6167,196.168,-34.3545],[3310.71,-401.448,17.6833,193.841,-32.1048],[3142.55,-300.951,16.6667,191.591,-29.5592],[2954.97,-200.62,15.55,189.502,-26.6543],[2741.38,-101.016,14.3,187.695,-23.2776],[2482.95,-0.581547,12.8167,186.362,-19.1218],[2140.9,99.9904,10.9,186.101,-13.5704],[1399.62,199.95,6.91667,191.575,-1.79916],[1284.24,201.853,6.31667,193.164,-0.0465755]]], + [18,224.721,[[5011.2,-2002.59,29.1333,230.556,-53.7474],[4935.86,-1901.3,28.5833,228.424,-52.9434],[4859.8,-1802.02,28.0333,226.298,-52.1165],[4780.69,-1701.86,27.4667,224.117,-51.2397],[4698.45,-1601.06,26.8833,221.883,-50.3102],[4615.39,-1502.61,26.3,219.667,-49.3525],[4526.71,-1401.14,25.6833,217.345,-48.3086],[4437.13,-1302.38,25.0667,215.052,-47.2313],[4341.72,-1201.26,24.4167,212.67,-46.0589],[4242.82,-1100.77,23.75,210.271,-44.8159],[4140.35,-1001.2,23.0667,207.866,-43.4982],[4031.69,-900.559,22.35,205.411,-42.0679],[3919.25,-801.656,21.6167,202.981,-40.5521],[3797.72,-700.63,20.8333,200.488,-38.8736],[3669.48,-600.464,20.0167,198.017,-37.0578],[3531.65,-500.013,19.15,195.557,-35.0571],[3383.93,-400.424,18.2333,193.159,-32.8588],[3223.25,-301.323,17.25,190.847,-30.4084],[3040.78,-200.104,16.15,188.619,-27.5584],[2835.58,-100.22,14.9333,186.647,-24.2809],[2592.16,-0.198906,13.5167,185.081,-20.3176],[2281.74,99.4512,11.75,184.357,-15.1979],[1764.5,199.831,8.9,186.444,-6.70909],[1341.18,224.72,6.65,191.221,-0.0198099]]], + [19,248.598,[[5049.05,-2000.85,29.5833,230.441,-54.1551],[4976.75,-1902.13,29.05,228.349,-53.3829],[4901.49,-1802.3,28.5,226.196,-52.564],[4823.21,-1701.58,27.9333,223.985,-51.6956],[4741.84,-1600.18,27.35,221.719,-50.7746],[4659.66,-1501.14,26.7667,219.469,-49.8255],[4574.29,-1401.76,26.1667,217.174,-48.8189],[4485.68,-1302.29,25.55,214.84,-47.7515],[4391.3,-1200.41,24.9,212.413,-46.5892],[4295.94,-1101.62,24.25,210.026,-45.3877],[4194.61,-1001.16,23.5667,207.567,-44.0813],[4089.67,-901.886,22.8667,205.11,-42.696],[3978.51,-801.907,22.1333,202.612,-41.1926],[3860.94,-701.846,21.3667,200.097,-39.5627],[3734.2,-600.351,20.55,197.539,-37.7603],[3600.63,-500.377,19.7,195.029,-35.8114],[3457.36,-400.918,18.8,192.56,-33.6669],[3301.36,-301.537,17.8333,190.152,-31.2719],[3126.69,-200.972,16.7667,187.823,-28.5222],[2929.78,-100.769,15.5833,185.692,-25.3477],[2698.25,-0.193193,14.2167,183.894,-21.5344],[2412.77,99.1391,12.5667,182.784,-16.7558],[1982.69,199.866,10.15,183.521,-9.53083],[1396.72,248.598,6.98333,189.249,-0.00265246]]], + [20,273.45,[[5086.76,-2002.05,30.05,230.411,-54.594],[5015.24,-1902.79,29.5167,228.295,-53.8298],[4940.8,-1802.4,28.9667,226.115,-53.0192],[4863.36,-1701.1,28.4,223.875,-52.1594],[4785.17,-1601.98,27.8333,221.643,-51.2738],[4703.9,-1502.26,27.25,219.359,-50.3344],[4619.48,-1402.17,26.65,217.027,-49.3378],[4531.84,-1301.97,26.0333,214.654,-48.2805],[4440.92,-1201.91,25.4,212.245,-47.1588],[4346.63,-1102.27,24.75,209.81,-45.9688],[4246.46,-1000.88,24.0667,207.297,-44.6743],[4142.71,-900.668,23.3667,204.781,-43.3007],[4035.33,-801.939,22.65,202.276,-41.8436],[3919.14,-700.722,21.8833,199.686,-40.2268],[3796.44,-600.028,21.0833,197.098,-38.4746],[3667.07,-500.566,20.25,194.54,-36.578],[3528.19,-401.277,19.3667,192.006,-34.488],[3376.82,-301.659,18.4167,189.507,-32.1494],[3207.1,-200.336,17.3667,187.053,-29.4576],[3018.3,-100.124,16.2167,184.782,-26.3862],[2801.17,-0.636156,14.9167,182.804,-22.7713],[2534.25,99.4146,13.35,181.352,-18.2418],[2161.41,199.937,11.2167,181.221,-11.8529],[1453.92,273.448,7.33333,187.203,-0.0455675]]], + [21,299.241,[[5122.04,-2003.13,30.5167,230.403,-55.0396],[5049.08,-1900.23,29.9667,228.196,-54.2598],[4977.68,-1802.36,29.4333,226.056,-53.4818],[4901.09,-1700.46,28.8667,223.787,-52.6309],[4823.76,-1600.74,28.3,221.526,-51.7543],[4743.39,-1500.4,27.7167,219.208,-50.8241],[4662.23,-1402.43,27.1333,216.906,-49.8648],[4575.59,-1301.48,26.5167,214.493,-48.8181],[4485.69,-1200.65,25.8833,212.041,-47.7072],[4392.47,-1100.21,25.2333,209.559,-46.5281],[4295.86,-1000.43,24.5667,207.056,-45.2767],[4195.78,-901.618,23.8833,204.543,-43.9485],[4089.67,-801.801,23.1667,201.973,-42.5049],[3977.36,-701.586,22.4167,199.366,-40.9374],[3858.71,-601.622,21.6333,196.747,-39.237],[3730.94,-500.635,20.8,194.094,-37.3564],[3596.4,-401.557,19.9333,191.498,-35.3216],[3446.96,-300.031,18.9833,188.869,-32.9989],[3287.44,-201.289,17.9833,186.379,-30.4513],[3106.63,-101.046,16.8667,183.975,-27.4866],[2898.1,-0.361533,15.6,181.789,-23.9802],[2649.22,99.6015,14.1167,180.052,-19.7031],[2320.09,199.455,12.2,179.288,-13.9634],[1506.48,299.238,7.66667,185.174,-0.0494261]]], + [22,325.933,[[5152.66,-2000.99,30.9667,230.351,-55.4691],[5082.7,-1900.68,30.4333,228.186,-54.7211],[5012.1,-1802.24,29.9,226.021,-53.9517],[4938.62,-1702.71,29.35,223.791,-53.1352],[4862.18,-1602.31,28.7833,221.499,-52.2686],[4782.73,-1501.27,28.2,219.149,-51.3487],[4702.51,-1402.59,27.6167,216.812,-50.3998],[4616.87,-1300.88,27,214.359,-49.3641],[4530.36,-1201.9,26.3833,211.93,-48.2939],[4438.25,-1100.56,25.7333,209.4,-47.1273],[4345.18,-1002.33,25.0833,206.909,-45.92],[4243.88,-900.085,24.3833,204.276,-44.573],[4141.48,-801.553,23.6833,201.704,-43.1762],[4030.54,-700.17,22.9333,199.026,-41.6229],[3915.83,-601.076,22.1667,196.384,-39.9734],[3792.2,-500.646,21.35,193.69,-38.1463],[3661.93,-401.82,20.5,191.038,-36.1674],[3517.03,-300.112,19.5667,188.327,-33.9034],[3362.27,-200.785,18.5833,185.729,-31.416],[3189.27,-100.814,17.5,183.211,-28.5576],[2991.85,-0.566522,16.2833,180.868,-25.2075],[2757.79,99.8226,14.8667,178.871,-21.1382],[2459.53,199.857,13.1,177.62,-15.8549],[1969.08,299.981,10.2833,178.867,-7.14506],[1554.45,325.932,7.98333,183.161,-0.0130132]]], + [23,353.488,[[5182.96,-2001.98,31.4333,230.388,-55.9283],[5113.81,-1901.1,30.9,228.2,-55.1891],[5044.02,-1802.08,30.3667,226.01,-54.4286],[4971.38,-1701.95,29.8167,223.753,-53.6213],[4895.83,-1600.93,29.25,221.431,-52.7643],[4819.55,-1502.1,28.6833,219.116,-51.8807],[4740.28,-1402.69,28.1,216.744,-50.9426],[4655.65,-1300.22,27.4833,214.253,-49.9183],[4570.16,-1200.45,26.8667,211.783,-48.8595],[4481.48,-1100.86,26.2333,209.273,-47.735],[4389.53,-1001.72,25.5833,206.731,-46.5405],[4291.86,-900.883,24.9,204.105,-45.2394],[4190.72,-801.254,24.2,201.47,-43.8571],[4083.61,-700.914,23.4667,198.781,-42.3538],[3970.35,-600.492,22.7,196.06,-40.7205],[3850.78,-500.659,21.9,193.332,-38.9474],[3722.2,-400.217,21.05,190.576,-36.9857],[3584.31,-300.286,20.15,187.841,-34.8205],[3434.24,-200.425,19.1833,185.14,-32.3946],[3268.9,-100.869,18.1333,182.521,-29.6439],[3082.36,-1.32219,16.9667,180.044,-26.4521],[2862.76,99.0547,15.6167,177.821,-22.5945],[2588.89,199.715,13.9667,176.162,-17.675],[2191.13,299.678,11.6333,176.069,-10.4488],[1603.93,353.486,8.31667,181.078,-0.0384776]]], + [24,381.87,[[5210.71,-2003.03,31.9,230.45,-56.3941],[5142.37,-1901.56,31.3667,228.238,-55.664],[5073.41,-1801.95,30.8333,226.024,-54.9126],[5001.62,-1701.2,30.2833,223.74,-54.1148],[4929.16,-1602.5,29.7333,221.458,-53.2929],[4851.58,-1500.06,29.15,219.043,-52.394],[4775.49,-1402.81,28.5833,216.706,-51.4931],[4694.15,-1302.3,27.9833,214.244,-50.5085],[4609.72,-1201.67,27.3667,211.732,-49.4624],[4522.13,-1101.17,26.7333,209.177,-48.3509],[4431.32,-1001.09,26.0833,206.587,-47.1699],[4337.21,-901.706,25.4167,203.97,-45.9147],[4237.35,-800.96,24.7167,201.274,-44.5476],[4134.01,-701.701,24,198.578,-43.0943],[4024.65,-602.095,23.25,195.837,-41.5138],[3906.66,-500.736,22.45,193.019,-39.7592],[3782.27,-400.6,21.6167,190.216,-37.8549],[3648.77,-300.616,20.7333,187.412,-35.7499],[3503.32,-200.274,19.7833,184.615,-33.3866],[3345.51,-101.276,18.7667,181.908,-30.7447],[3166.95,-1.30948,17.6333,179.284,-27.6665],[2958.73,99.6257,16.3333,176.852,-23.9733],[2708.42,199.447,14.8,174.881,-19.4202],[2365.73,299.639,12.75,173.97,-13.0771],[1648.82,381.868,8.63333,179.009,-0.0234132]]], + [25,411.04,[[5233.76,-2000.96,32.35,230.466,-56.8438],[5168.35,-1902.1,31.8333,228.302,-56.1451],[5100.21,-1801.89,31.3,226.063,-55.4032],[5029.29,-1700.52,30.75,223.753,-54.6152],[4957.71,-1601.18,30.2,221.443,-53.8032],[4883.26,-1500.98,29.6333,219.067,-52.9407],[4805.89,-1400.15,29.05,216.627,-52.0244],[4727.77,-1301.7,28.4667,214.198,-51.0782],[4644.38,-1200.25,27.85,211.646,-50.0443],[4560.16,-1101.55,27.2333,209.115,-48.9749],[4470.49,-1000.51,26.5833,206.476,-47.8077],[4377.57,-900.142,25.9167,203.806,-46.5667],[4281.33,-800.731,25.2333,201.115,-45.247],[4179.32,-700.298,24.5167,198.353,-43.8097],[4073.78,-601.647,23.7833,195.6,-42.2808],[3959.78,-500.937,23,192.755,-40.5813],[3839.52,-401.152,22.1833,189.908,-38.7347],[3710.35,-301.165,21.3167,187.041,-36.6906],[3569.46,-200.396,20.3833,184.156,-34.3912],[3416.45,-100.508,19.3833,181.329,-31.8152],[3245.7,-0.445678,18.2833,178.579,-28.8505],[3051.2,99.3055,17.05,176.002,-25.3706],[2818.4,199.443,15.6,173.749,-21.0884],[2514.86,299.733,13.75,172.259,-15.3793],[1954.83,399.868,10.45,174.037,-4.82046],[1692.13,411.039,8.95,176.914,-0.0193786]]], + [26,440.959,[[5256.3,-2002.24,32.8167,230.577,-57.3221],[5191.7,-1902.79,32.3,228.391,-56.6326],[5124.4,-1801.96,31.7667,226.129,-55.9003],[5056.49,-1703.01,31.2333,223.863,-55.1463],[4985.81,-1602.96,30.6833,221.526,-54.3452],[4912.3,-1502.02,30.1167,219.119,-53.4941],[4835.9,-1400.42,29.5333,216.646,-52.5896],[4758.77,-1301.2,28.95,214.182,-51.6554],[4678.66,-1201.66,28.35,211.661,-50.6623],[4595.53,-1102.04,27.7333,209.087,-49.6065],[4507.01,-1000.04,27.0833,206.4,-48.4538],[4417.6,-901.161,26.4333,203.745,-47.2588],[4322.62,-800.626,25.75,200.996,-45.9553],[4224.29,-701.322,25.05,198.233,-44.5683],[4120.17,-601.344,24.3167,195.407,-43.0576],[4010.1,-501.326,23.55,192.539,-41.4132],[3893.93,-401.94,22.75,189.655,-39.6249],[3766.55,-300.1,21.8833,186.675,-37.6026],[3632.62,-200.86,20.9833,183.763,-35.4078],[3484.35,-100.142,20,180.824,-32.8993],[3321.24,-0.142609,18.9333,177.962,-30.0496],[3137.52,99.3334,17.75,175.238,-26.737],[2921.71,198.945,16.3833,172.762,-22.7278],[2647.83,299.533,14.6833,170.822,-17.5051],[2231.14,399.766,12.1667,170.608,-9.44319],[1733.81,440.957,9.26667,174.793,-0.0268725]]], + [27,471.588,[[5274.14,-2000.48,33.2667,230.643,-57.7845],[5210.33,-1900.49,32.75,228.436,-57.1039],[5145.96,-1802.23,32.2333,226.222,-56.4037],[5078.9,-1702.65,31.7,223.932,-55.6598],[5009.11,-1601.93,31.15,221.567,-54.8692],[4936.53,-1500.31,30.5833,219.131,-54.029],[4863.26,-1400.89,30.0167,216.698,-53.1618],[4787.11,-1300.88,29.4333,214.199,-52.2399],[4708.04,-1200.51,28.8333,211.639,-51.2596],[4625.98,-1100.04,28.2167,209.024,-50.217],[4543.11,-1002.34,27.6,206.43,-49.1376],[4454.88,-902.385,26.95,203.724,-47.9585],[4361.18,-800.709,26.2667,200.917,-46.6719],[4264.17,-700.223,25.5667,198.091,-45.302],[4163.79,-601.25,24.85,195.259,-43.8434],[4057.6,-501.966,24.1,192.373,-42.2545],[3943.04,-400.976,23.3,189.396,-40.4871],[3822.3,-301.251,22.4667,186.424,-38.5649],[3692.75,-201.734,21.5833,183.439,-36.4355],[3549.15,-100.247,20.6167,180.395,-33.996],[3393.53,-0.471206,19.5833,177.436,-31.2627],[3217.78,99.8065,18.4333,174.551,-28.072],[3015.86,199.268,17.1333,171.878,-24.2869],[2767.93,299.154,15.5667,169.604,-19.5018],[2419.46,399.867,13.4167,168.408,-12.6291],[1773.85,471.585,9.58333,172.647,-0.0463945]]], + [28,502.889,[[5291.35,-2002.23,33.7333,230.806,-58.2745],[5228.37,-1901.62,33.2167,228.578,-57.6036],[5164.82,-1802.75,32.7,226.342,-56.9133],[5098.63,-1702.51,32.1667,224.028,-56.1796],[5029.74,-1601.13,31.6167,221.637,-55.3998],[4960.21,-1501.78,31.0667,219.244,-54.5956],[4887.9,-1401.58,30.5,216.78,-53.7406],[4812.76,-1300.77,29.9167,214.247,-52.8314],[4736.91,-1202.35,29.3333,211.722,-51.8915],[4655.94,-1100.94,28.7167,209.066,-50.8635],[4574.18,-1002.29,28.1,206.428,-49.7988],[4487.15,-901.322,27.45,203.672,-48.6353],[4396.96,-801.037,26.7833,200.879,-47.3965],[4303.58,-701.73,26.1,198.06,-46.0773],[4204.59,-601.424,25.3833,195.158,-44.638],[4099.88,-500.732,24.6333,192.194,-43.0689],[3989.29,-400.306,23.85,189.19,-41.3593],[3872.65,-300.843,23.0333,186.176,-39.4981],[3747.4,-201.227,22.1667,183.127,-37.433],[3610.82,-100.89,21.2333,180.044,-35.1043],[3462.54,-1.50285,20.2333,177.002,-32.4885],[3294.59,99.3916,19.1167,173.973,-29.422],[3103.63,199.487,17.8667,171.107,-25.8145],[2875.59,299.303,16.4,168.552,-21.3666],[2573.75,399.7,14.5,166.723,-15.3192],[1939.42,499.899,10.65,169.008,-2.56098],[1809.35,502.888,9.88333,170.513,-0.0235402]]], + [29,534.822,[[5303.82,-2001.01,34.1833,230.924,-58.749],[5243.67,-1903.07,33.6833,228.748,-58.109],[5178.93,-1800.38,33.15,226.418,-57.4065],[5115.64,-1702.67,32.6333,224.153,-56.7057],[5047.66,-1600.6,32.0833,221.736,-55.937],[4979.04,-1500.56,31.5333,219.316,-55.144],[4909.8,-1402.58,30.9833,216.895,-54.3259],[4835.67,-1300.94,30.4,214.329,-53.4297],[4760.84,-1201.7,29.8167,211.769,-52.5031],[4683.13,-1102.14,29.2167,209.145,-51.517],[4602.49,-1002.52,28.6,206.464,-50.4674],[4516.65,-900.529,27.95,203.66,-49.32],[4429.94,-801.673,27.3,200.884,-48.1289],[4337.85,-701.178,26.6167,198.005,-46.8277],[4242.53,-601.931,25.9167,195.105,-45.4409],[4141.61,-502.032,25.1833,192.131,-43.9278],[4034.95,-402.115,24.4167,189.104,-42.2777],[3920.03,-300.844,23.6,185.988,-40.4411],[3799.01,-201.183,22.75,182.882,-38.4411],[3666.88,-100.372,21.8333,179.715,-36.1813],[3523.3,-0.0426537,20.85,176.56,-33.6375],[3365.41,99.4944,19.7833,173.461,-30.739],[3185.11,199.715,18.5833,170.437,-27.3097],[2973.77,299.516,17.2,167.646,-23.1493],[2706.28,399.465,15.4833,165.366,-17.719],[2287.33,499.595,12.8667,164.805,-9.04679],[1843.21,534.821,10.1833,168.352,-0.0123977]]], + [30,567.348,[[5313.58,-2000.13,34.6333,231.068,-59.2293],[5254.23,-1901.63,34.1333,228.873,-58.5985],[5192.35,-1801.53,33.6167,226.595,-57.9279],[5127.89,-1700.02,33.0833,224.234,-57.215],[5062.85,-1600.4,32.55,221.866,-56.4802],[4997.22,-1502.67,32.0167,219.493,-55.7228],[4926.85,-1400.96,31.45,216.968,-54.8923],[4855.82,-1301.46,30.8833,214.444,-54.0343],[4782.02,-1201.37,30.3,211.85,-53.1213],[4705.38,-1100.94,29.7,209.188,-52.1494],[4625.85,-1000.42,29.0833,206.465,-51.1144],[4543.36,-900.065,28.45,203.686,-50.0121],[4457.87,-800.156,27.8,200.86,-48.8377],[4369.29,-700.978,27.1333,197.994,-47.5859],[4275.34,-600.484,26.4333,195.03,-46.2184],[4178.13,-501.519,25.7167,192.052,-44.7597],[4073.01,-400.107,24.95,188.943,-43.1315],[3964.4,-301.321,24.1667,185.86,-41.3932],[3847.54,-201.67,23.3333,182.705,-39.4588],[3719.81,-100.445,22.4333,179.462,-37.269],[3583.28,-0.916596,21.4833,176.254,-34.8425],[3432.78,98.6684,20.45,173.055,-32.0686],[3262.89,198.692,19.3,169.9,-28.8195],[3065.25,298.99,17.9833,166.892,-24.8995],[2823.19,399.103,16.4,164.253,-19.9309],[2481.49,499.601,14.2167,162.638,-12.7235],[1875.39,567.348,10.4833,166.167,-0.0135042]]], + [31,600.428,[[5322.53,-2002.98,35.1,231.313,-59.7356],[5262.04,-1900.58,34.5833,229.026,-59.0939],[5202.97,-1803.1,34.0833,226.801,-58.4548],[5139.41,-1700.91,33.55,224.418,-57.7529],[5075.27,-1600.6,33.0167,222.026,-57.0294],[5010.54,-1502.18,32.4833,219.627,-56.2834],[4943.2,-1402.7,31.9333,217.15,-55.4898],[4873.17,-1302.38,31.3667,214.595,-54.6452],[4800.4,-1201.44,30.7833,211.966,-53.7461],[4724.84,-1100.12,30.1833,209.268,-52.7887],[4648.55,-1001.38,29.5833,206.578,-51.797],[4569.4,-902.626,28.9667,203.828,-50.7405],[4485.15,-801.566,28.3167,200.951,-49.5844],[4397.86,-701.197,27.65,198.03,-48.3517],[4307.48,-601.817,26.9667,195.074,-47.0368],[4211.71,-501.45,26.25,192.025,-45.5998],[4110.41,-400.711,25.5,188.903,-44.0302],[4003.44,-300.256,24.7167,185.729,-42.3165],[3890.65,-200.785,23.9,182.532,-40.4465],[3769.56,-101.183,23.0333,179.285,-38.3664],[3637.55,-0.888532,22.1,175.983,-36.0144],[3494.27,98.4212,21.1,172.703,-33.3641],[3332.04,199.191,19.9833,169.405,-30.2465],[3147.67,299.101,18.7333,166.238,-26.5646],[2925.07,399.661,17.25,163.307,-21.952],[2633.92,499.325,15.35,161.068,-15.7194],[1952.23,599.988,11.0667,163.407,-1.00014],[1905.86,600.427,10.7833,163.958,-0.0274558]]], + [32,634.02,[[5326.73,-2002.99,35.55,231.513,-60.2268],[5269.01,-1903.28,35.05,229.281,-59.6156],[5208.83,-1801.91,34.5333,226.963,-58.9657],[5148.12,-1702.27,34.0167,224.633,-58.2964],[5084.88,-1601.25,33.4833,222.218,-57.5844],[5021.07,-1502.12,32.95,219.794,-56.8502],[4954.67,-1401.9,32.4,217.289,-56.0688],[4885.63,-1300.81,31.8333,214.705,-55.2371],[4815.95,-1201.95,31.2667,212.119,-54.3772],[4743.55,-1102.53,30.6833,209.46,-53.4614],[4666.29,-1000.08,30.0667,206.656,-52.4582],[4588.27,-900.38,29.45,203.863,-51.4174],[4507.37,-800.893,28.8167,201.012,-50.3078],[4423.52,-701.894,28.1667,198.111,-49.1245],[4334.48,-601.262,27.4833,195.095,-47.8298],[4242.34,-501.888,26.7833,192.051,-46.4476],[4144.79,-401.872,26.05,188.92,-44.9365],[4041.71,-301.85,25.2833,185.725,-43.2853],[3930.68,-200.488,24.4667,182.425,-41.4433],[3813.78,-100.754,23.6167,179.122,-39.4323],[3688.52,-1.66038,22.7167,175.797,-37.1962],[3549.93,98.8356,21.7333,172.398,-34.6256],[3397.58,198.522,20.6667,169.03,-31.6861],[3223.67,298.872,19.4667,165.701,-28.1945],[3017.44,399.875,18.0667,162.526,-23.887],[2759.66,499.625,16.35,159.837,-18.3018],[2353.67,599.758,13.7167,158.718,-9.27103],[1934.59,634.018,11.0833,161.724,-0.0548278]]], + [33,668.087,[[5326.23,-2000.14,35.9833,231.666,-60.7034],[5271.22,-1903.2,35.5,229.491,-60.1218],[5211.89,-1801.21,34.9833,227.153,-59.4822],[5152.04,-1700.94,34.4667,224.803,-58.8235],[5091.66,-1602.42,33.95,222.441,-58.1448],[5028.77,-1502.57,33.4167,219.994,-57.4226],[4963.33,-1401.6,32.8667,217.463,-56.6538],[4897.3,-1302.69,32.3167,214.926,-55.8598],[4826.61,-1200.07,31.7333,212.232,-54.9888],[4757.31,-1102.66,31.1667,209.615,-54.1133],[4683.24,-1002.02,30.5667,206.849,-53.1533],[4606.39,-901.283,29.95,204.014,-52.1297],[4526.69,-800.721,29.3167,201.117,-51.0381],[4444.1,-700.608,28.6667,198.164,-49.8733],[4358.54,-601.234,28,195.165,-48.63],[4267.79,-500.547,27.3,192.056,-47.2693],[4173.92,-401.397,26.5833,188.924,-45.8152],[4074.65,-301.964,25.8333,185.716,-44.225],[3967.59,-200.852,25.0333,182.384,-42.4485],[3854.81,-101.045,24.2,179.033,-40.5071],[3733.87,-1.48871,23.3167,175.635,-38.3449],[3599.87,99.9843,22.35,172.13,-35.8533],[3454.75,199.678,21.3167,168.67,-33.0432],[3290.98,299.787,20.1667,165.222,-29.7388],[3102.98,398.962,18.8667,161.915,-25.7865],[2869.93,499.315,17.2833,158.868,-20.6883],[2543.73,599.458,15.1167,156.727,-13.3058],[1958.89,668.085,11.3667,159.499,-0.0375945]]], + [34,702.587,[[5324.8,-2001.21,36.4333,231.921,-61.2051],[5268.71,-1900.35,35.9333,229.654,-60.6132],[5212.13,-1801.06,35.4333,227.373,-60.0042],[5153.14,-1700.15,34.9167,225.003,-59.3562],[5093.64,-1600.98,34.4,222.62,-58.6886],[5031.66,-1500.46,33.8667,220.149,-57.9779],[4969.14,-1401.84,33.3333,217.67,-57.2446],[4904.08,-1302.15,32.7833,215.105,-56.4637],[4836.44,-1201.63,32.2167,212.458,-55.6318],[4766.16,-1100.49,31.6333,209.731,-54.7454],[4695.22,-1001.76,31.05,207.005,-53.8271],[4619.52,-900.052,30.4333,204.13,-52.8203],[4543.1,-801.113,29.8167,201.265,-51.7749],[4463.86,-702.427,29.1833,198.339,-50.6592],[4379.63,-601.798,28.5167,195.284,-49.437],[4292.42,-502.163,27.8333,192.187,-48.1312],[4200.03,-401.543,27.1167,188.984,-46.7014],[4102.31,-300.553,26.3667,185.695,-45.1365],[4001.36,-201.944,25.6,182.412,-43.4613],[3890.4,-100.143,24.7667,178.95,-41.5507],[3773.67,-0.309636,23.9,175.492,-39.4613],[3648.73,98.4791,22.9833,172.016,-37.1347],[3508.4,199.733,21.9667,168.418,-34.4116],[3354.51,299.282,20.8667,164.879,-31.2956],[3177.04,399.564,19.6167,161.374,-27.5447],[2965.33,499.495,18.15,158.077,-22.8757],[2685.48,599.888,16.25,155.329,-16.4575],[2093.67,699.95,12.3667,156.079,-2.60363],[1981.47,702.586,11.65,157.25,-0.0334647]]], + [35,737.48,[[5320.48,-2002.92,36.8833,232.205,-61.7118],[5265.22,-1901.44,36.3833,229.923,-61.1301],[5209.48,-1801.53,35.8833,227.624,-60.5315],[5153.26,-1703.22,35.3833,225.312,-59.9154],[5092.76,-1600.14,34.85,222.831,-59.2382],[5033.62,-1502.06,34.3333,220.415,-58.5615],[4972.04,-1402.68,33.8,217.911,-57.841],[4907.97,-1302.22,33.25,215.32,-57.0735],[4841.35,-1200.88,32.6833,212.644,-56.2558],[4774.12,-1101.77,32.1167,209.963,-55.4095],[4704.27,-1002.11,31.5333,207.202,-54.5072],[4631.76,-902.149,30.9333,204.366,-53.5448],[4556.53,-802.133,30.3167,201.458,-52.5178],[4478.53,-702.33,29.6833,198.485,-51.4214],[4395.61,-600.513,29.0167,195.376,-50.2197],[4311.87,-502.066,28.35,192.296,-48.967],[4220.93,-400.049,27.6333,189.025,-47.561],[4129.06,-302.042,26.9167,185.807,-46.0909],[4029.75,-201.703,26.15,182.435,-44.4442],[3922.8,-100.019,25.3333,178.939,-42.6026],[3812.43,-1.87373,24.5,175.494,-40.6271],[3689.61,99.4371,23.5833,171.872,-38.3381],[3558.48,198.61,22.6167,168.276,-35.7895],[3411.91,298.764,21.55,164.618,-32.8147],[3244.67,399.606,20.35,160.956,-29.2653],[3051.2,498.928,18.9833,157.467,-24.9716],[2803.66,599.797,17.2667,154.283,-19.2364],[2424.18,699.801,14.7,152.45,-10.1314],[2002.3,737.478,11.9333,154.976,-0.04309]]], + [36,772.726,[[5311.45,-2001.9,37.3167,232.443,-62.2042],[5258.84,-1903.21,36.8333,230.221,-61.6518],[5203.96,-1802.67,36.3333,227.906,-61.0638],[5146.74,-1700.44,35.8167,225.497,-60.4381],[5090.88,-1603.15,35.3167,223.152,-59.8142],[5030.78,-1501.18,34.7833,220.637,-59.1282],[4970.14,-1401.1,34.25,218.109,-58.42],[4908.96,-1302.94,33.7167,215.571,-57.6887],[4843.37,-1200.76,33.15,212.866,-56.8854],[4777.18,-1100.82,32.5833,210.155,-56.0538],[4708.42,-1000.29,32,207.361,-55.167],[4639.02,-902.185,31.4167,204.567,-54.2475],[4564.97,-801.153,30.8,201.617,-53.2385],[4488.19,-700.296,30.1667,198.599,-52.1608],[4410.67,-602.424,29.5333,195.595,-51.0393],[4326.22,-500.225,28.85,192.38,-49.7779],[4240.91,-401.604,28.1667,189.198,-48.4607],[4150.55,-302.073,27.45,185.906,-47.0168],[4052.86,-200.086,26.6833,182.45,-45.3981],[3951.98,-100.745,25.9,179,-43.6618],[3843.47,-0.540765,25.0667,175.442,-41.7197],[3727.13,99.4158,24.1833,171.817,-39.5502],[3600.51,199.615,23.2333,168.119,-37.0861],[3461.03,299.874,22.2,164.372,-34.2484],[3305.98,399.206,21.0667,160.65,-30.9468],[3125.47,499.216,19.7667,156.962,-26.9206],[2904.19,599.595,18.2,153.483,-21.7521],[2598.76,699.487,16.0833,150.751,-14.3132],[2018.81,772.726,12.2,152.709,-0.00586252]]], + [37,808.286,[[5299.53,-2001.58,37.75,232.709,-62.7019],[5247.74,-1902.33,37.2667,230.472,-62.1591],[5193.69,-1801.19,36.7667,228.14,-61.5814],[5139.18,-1701.63,36.2667,225.792,-60.9867],[5082.36,-1600.45,35.75,223.349,-60.3534],[5025.03,-1501,35.2333,220.892,-59.7004],[4965.34,-1400.2,34.7,218.342,-59.0048],[4905.12,-1301.31,34.1667,215.779,-58.2864],[4842.46,-1201.36,33.6167,213.127,-57.5207],[4777.32,-1100.56,33.05,210.386,-56.7042],[4711.58,-1002,32.4833,207.639,-55.8585],[4641.34,-900.14,31.8833,204.729,-54.9299],[4570.44,-800.87,31.2833,201.821,-53.9655],[4496.89,-701.586,30.6667,198.838,-52.9355],[4420.64,-602.554,30.0333,195.786,-51.8346],[4339.6,-501.57,29.3667,192.594,-50.6267],[4255.71,-401.582,28.6833,189.35,-49.3338],[4166.83,-300.603,27.9667,185.989,-47.9155],[4074.95,-201.455,27.2333,182.603,-46.395],[3975.78,-100.286,26.45,179.06,-44.6903],[3871.26,-0.103765,25.6333,175.465,-42.8204],[3761.26,98.3441,24.7833,171.851,-40.7698],[3639.06,199.496,23.85,168.061,-38.3914],[3506.52,299.676,22.85,164.243,-35.6919],[3358.8,399.92,21.75,160.386,-32.539],[3190.81,499.707,20.5167,156.562,-28.7768],[2990.14,599.669,19.0667,152.859,-24.0596],[2729.18,699.433,17.2167,149.597,-17.6332],[2227.68,799.995,13.7667,148.752,-4.86292],[2036.1,808.285,12.4833,150.388,-0.0442629]]], + [38,844.117,[[5284.7,-2002.04,38.1833,233.005,-63.2044],[5233.72,-1902.21,37.7,230.754,-62.6715],[5180.53,-1800.46,37.2,228.406,-62.1043],[5126.87,-1700.3,36.7,226.04,-61.5202],[5072.76,-1601.73,36.2,223.658,-60.9186],[5016.35,-1501.59,35.6833,221.181,-60.2778],[4957.62,-1400.05,35.15,218.609,-59.5951],[4898.35,-1300.42,34.6167,216.023,-58.8898],[4838.57,-1202.72,34.0833,213.426,-58.1611],[4774.49,-1101.05,33.5167,210.656,-57.36],[4709.82,-1001.62,32.95,207.879,-56.5301],[4642.65,-901.644,32.3667,205.015,-55.6443],[4572.92,-801.356,31.7667,202.069,-54.6983],[4500.58,-701.014,31.15,199.044,-53.6874],[4425.58,-600.884,30.5167,195.946,-52.6067],[4347.86,-501.245,29.8667,192.781,-51.4506],[4267.39,-402.388,29.2,189.559,-50.2129],[4182.06,-302.278,28.5,186.208,-48.8542],[4091.76,-201.516,27.7667,182.746,-47.3628],[3996.37,-100.743,27,179.19,-45.7255],[3895.76,-0.641824,26.2,175.566,-43.9281],[3787.69,99.9734,25.35,171.831,-41.9144],[3671.95,199.96,24.45,168.034,-39.6612],[3546.15,299.736,23.4833,164.167,-37.0975],[3407.78,399.031,22.4333,160.262,-34.1407],[3249.71,499.413,21.25,156.292,-30.5921],[3064.38,599.89,19.8833,152.379,-26.2147],[2834.37,699.57,18.2167,148.752,-20.5029],[2485.94,799.956,15.75,146.128,-11.4577],[2049.11,844.116,12.75,148.071,-0.0355041]]], + [39,880.18,[[5266.92,-2003.33,38.6167,233.33,-63.7116],[5216.77,-1902.91,38.1333,231.065,-63.1888],[5164.44,-1800.55,37.6333,228.702,-62.6322],[5113.42,-1703.09,37.15,226.4,-62.0784],[5058.41,-1600.56,36.6333,223.92,-61.4686],[5004.71,-1502.98,36.1333,221.504,-60.8601],[4946.94,-1400.71,35.6,218.911,-60.1905],[4888.65,-1300.33,35.0667,216.302,-59.4987],[4829.85,-1201.86,34.5333,213.681,-58.7837],[4768.67,-1102.36,33.9833,210.965,-58.0211],[4705.08,-1002.05,33.4167,208.158,-57.2072],[4639.03,-901.141,32.8333,205.262,-56.3383],[4572.36,-802.669,32.25,202.362,-55.4364],[4501.24,-701.253,31.6333,199.296,-54.4453],[4427.5,-600.009,31,196.153,-53.3852],[4353.07,-501.759,30.3667,193.021,-52.2803],[4273.97,-401.619,29.7,189.742,-51.0665],[4190.09,-300.149,29,186.328,-49.7332],[4103.36,-200.222,28.2833,182.873,-48.3026],[4011.66,-100.001,27.5333,179.312,-46.7309],[3914.88,-0.149197,26.75,175.668,-45.0041],[3812.91,98.6241,25.9333,171.967,-43.1067],[3701.38,199.245,25.05,168.103,-40.9381],[3582.17,298.436,24.1167,164.204,-38.5103],[3448.56,399.579,23.0833,160.151,-35.654],[3300.08,499.856,21.95,156.083,-32.3141],[3129.54,599.72,20.6667,152.038,-28.2721],[2922.43,699.633,19.1333,148.13,-23.0975],[2639.92,799.523,17.0833,144.771,-15.674],[2060.34,880.178,13.0167,145.731,-0.0416288]]], + [40,916.433,[[5244.47,-2002,39.0333,233.607,-64.2058],[5195.13,-1901.03,38.55,231.328,-63.6927],[5145.38,-1801.5,38.0667,229.03,-63.165],[5093.47,-1700.08,37.5667,226.632,-62.6029],[5041.11,-1600.24,37.0667,224.216,-62.0238],[4988.3,-1502.02,36.5667,221.782,-61.427],[4933.27,-1402.23,36.05,219.249,-60.7909],[4875.96,-1301.09,35.5167,216.619,-60.1127],[4818.15,-1201.85,34.9833,213.974,-59.4117],[4758,-1101.55,34.4333,211.232,-58.6639],[4695.47,-1000.39,33.8667,208.396,-57.8656],[4632.38,-901.493,33.3,205.552,-57.0379],[4566.86,-802.071,32.7167,202.617,-56.1537],[4498.84,-702.373,32.1167,199.596,-55.2086],[4428.3,-602.654,31.5,196.493,-54.1976],[4353.23,-500.605,30.85,193.23,-53.0864],[4277.45,-401.744,30.2,189.98,-51.9262],[4197,-301.299,29.5167,186.587,-50.6508],[4113.79,-202.165,28.8167,183.143,-49.2823],[4023.73,-100.235,28.0667,179.502,-47.7426],[3930.72,-0.691012,27.3,175.844,-46.0864],[3832.65,98.0928,26.5,172.114,-44.265],[3725.24,199.156,25.6333,168.193,-42.1793],[3610.33,299.209,24.7167,164.212,-39.8407],[3485.6,398.598,23.7333,160.166,-37.1747],[3344.3,499.884,22.6333,155.969,-33.9945],[3185.86,599.538,21.4167,151.805,-30.2313],[2996.34,699.969,19.9833,147.667,-25.4748],[2753.99,799.586,18.1833,143.865,-19.051],[2327.68,899.919,15.1,141.706,-7.21599],[2069.79,916.431,13.2833,143.367,-0.0635127]]], + [41,952.838,[[5219.07,-2001.59,39.45,233.914,-64.7051],[5170.56,-1900.06,38.9667,231.622,-64.2019],[5123.33,-1803.39,38.5,229.39,-63.7024],[5072.3,-1701.32,38,226.977,-63.1515],[5020.84,-1600.84,37.5,224.545,-62.584],[4968.93,-1501.95,37,222.093,-61.999],[4914.83,-1401.48,36.4833,219.542,-61.3754],[4860.26,-1302.77,35.9667,216.973,-60.7316],[4803.44,-1202.75,35.4333,214.305,-60.0449],[4744.34,-1101.63,34.8833,211.539,-59.3122],[4684.7,-1002.59,34.3333,208.759,-58.5533],[4622.72,-902.765,33.7667,205.885,-57.7427],[4558.34,-802.379,33.1833,202.917,-56.8767],[4491.51,-701.679,32.5833,199.859,-55.9506],[4422.19,-600.919,31.9667,196.715,-54.9596],[4350.33,-500.368,31.3333,193.49,-53.8986],[4275.88,-400.304,30.6833,190.19,-52.7616],[4198.8,-301.021,30.0167,186.822,-51.5423],[4117.07,-200.474,29.3167,183.313,-50.2011],[4032.57,-101.518,28.6,179.76,-48.7599],[3941.26,-0.188432,27.8333,176.015,-47.1379],[3846.99,98.4355,27.05,172.264,-45.3905],[3743.6,199.755,26.2,168.3,-43.386],[3634.97,298.668,25.3167,164.322,-41.1779],[3514.71,399.346,24.35,160.168,-38.6092],[3382.47,499.601,23.3,155.939,-35.6326],[3233.61,599.698,22.1333,151.651,-32.0929],[3061.01,699.284,20.8,147.383,-27.7494],[2846.06,799.348,19.1667,143.246,-22.0184],[2532.3,899.502,16.8333,139.844,-13.1821],[2075.08,952.837,13.5333,141.005,-0.0356719]]], + [42,989.352,[[5190.7,-2002.16,39.8667,234.251,-65.209],[5143.03,-1900.05,39.3833,231.947,-64.7159],[5096.62,-1802.83,38.9167,229.701,-64.2263],[5046.47,-1700.16,38.4167,227.274,-63.6864],[4997.58,-1602.4,37.9333,224.907,-63.1489],[4946.58,-1502.85,37.4333,222.44,-62.5759],[4893.42,-1401.68,36.9167,219.87,-61.9651],[4839.81,-1302.26,36.4,217.281,-61.3344],[4783.98,-1201.5,35.8667,214.591,-60.6615],[4727.67,-1102.67,35.3333,211.885,-59.9655],[4669.09,-1002.79,34.7833,209.08,-59.2223],[4608.2,-902.091,34.2167,206.176,-58.4285],[4544.96,-800.796,33.6333,203.176,-57.5799],[4481.14,-701.939,33.05,200.169,-56.6981],[4413.06,-600.123,32.4333,196.986,-55.7277],[4344.34,-501.111,31.8167,193.802,-54.7162],[4273.12,-402.385,31.1833,190.539,-53.6322],[4197.45,-301.754,30.5167,187.116,-52.4393],[4119.14,-202.159,29.8333,183.629,-51.1584],[4036.2,-101.628,29.1167,180.004,-49.7482],[3948.54,-0.784459,28.3667,176.259,-48.1952],[3856.03,99.7052,27.5833,172.413,-46.4843],[3758.57,199.131,26.7667,168.494,-44.5987],[3654.03,298.591,25.9,164.458,-42.4781],[3540.18,398.624,24.9667,160.284,-40.0502],[3414.69,499.108,23.95,155.983,-37.2283],[3275.11,599.118,22.8333,151.611,-33.9096],[3114.59,699.219,21.5667,147.187,-29.8641],[2921.55,799.09,20.0667,142.827,-24.697],[2661.46,899.44,18.0833,138.819,-17.3052],[2078.62,989.351,13.7833,138.619,-0.023189]]], + [43,1025.94,[[5157.73,-2000.19,40.2667,234.539,-65.7011],[5112.51,-1901.07,39.8,232.302,-65.2347],[5066.92,-1803.27,39.3333,230.045,-64.7552],[5019.31,-1703.4,38.85,227.685,-64.2443],[4969.63,-1601.63,38.35,225.222,-63.6999],[4919.53,-1501.45,37.85,222.738,-63.1386],[4869,-1402.88,37.35,220.233,-62.5597],[4816.35,-1302.74,36.8333,217.626,-61.9423],[4761.52,-1201.24,36.3,214.915,-61.2835],[4706.22,-1101.65,35.7667,212.186,-60.6019],[4648.69,-1000.98,35.2167,209.355,-59.874],[4590.65,-902.408,34.6667,206.51,-59.1196],[4528.55,-800.189,34.0833,203.479,-58.289],[4465.89,-700.398,33.5,200.439,-57.4255],[4400.85,-600.327,32.9,197.304,-56.5013],[4333.4,-500.231,32.2833,194.079,-55.5113],[4263.48,-400.381,31.65,190.77,-54.4501],[4191.06,-301.057,31,187.381,-53.3114],[4114.2,-200.136,30.3167,183.835,-52.0574],[4034.7,-100.523,29.6167,180.229,-50.7089],[3950.59,-0.31984,28.8833,176.49,-49.2228],[3861.78,99.8268,28.1167,172.637,-47.5845],[3768.15,199.226,27.3167,168.694,-45.7775],[3667.61,299.044,26.4667,164.613,-43.7424],[3557.98,399.897,25.55,160.363,-41.4081],[3441.05,498.497,24.5833,156.09,-38.7819],[3308.41,599.387,23.5,151.606,-35.6304],[3159.54,699.091,22.3,147.091,-31.8763],[2983.33,799.127,20.9,142.547,-27.1483],[2757.13,899.862,19.1333,138.147,-20.6801],[2389.97,999.866,16.3333,134.899,-9.5395],[2080.39,1025.94,14.0333,136.208,-0.0270269]]], + [44,1062.55,[[5123.38,-2002.86,40.6833,234.936,-66.2143],[5078.98,-1903.17,40.2167,232.689,-65.7579],[5032.61,-1801.31,39.7333,230.339,-65.2717],[4985.85,-1700.88,39.25,227.966,-64.7712],[4938.7,-1601.92,38.7667,225.571,-64.2558],[4889.51,-1501.1,38.2667,223.071,-63.7064],[4839.9,-1401.88,37.7667,220.55,-63.1397],[4788.2,-1301.07,37.25,217.924,-62.5352],[4736.06,-1202.03,36.7333,215.278,-61.9105],[4681.77,-1101.66,36.2,212.527,-61.2437],[4625.29,-1000.19,35.65,209.672,-60.5314],[4568.32,-900.81,35.1,206.8,-59.793],[4509.11,-800.633,34.5333,203.827,-59.0035],[4449.37,-702.737,33.9667,200.842,-58.1834],[4385.56,-601.607,33.3667,197.672,-57.2801],[4319.38,-500.411,32.75,194.408,-56.3122],[4252.59,-402.038,32.1333,191.142,-55.302],[4181.54,-301.448,31.4833,187.704,-54.1891],[4107.98,-201.633,30.8167,184.189,-52.9934],[4030.01,-100.535,30.1167,180.518,-51.6754],[3949.4,-1.02572,29.4,176.792,-50.2559],[3864.21,98.72,28.65,172.939,-48.6899],[3774.34,198.031,27.8667,168.98,-46.9613],[3677.73,298.14,27.0333,164.861,-45.0121],[3572.26,399.743,26.1333,160.546,-42.7722],[3459.67,499.536,25.1833,156.175,-40.2479],[3335.76,599.255,24.15,151.681,-37.3071],[3196.11,699.243,23,147.066,-33.7871],[3034.02,799.267,21.6833,142.382,-29.433],[2833.93,899.672,20.0833,137.734,-23.6899],[2551.15,999.648,17.8667,133.595,-15.0214],[2080.38,1062.55,14.2833,133.774,-0.0481781]]], + [45,1099.15,[[5084.41,-2003.09,41.0833,235.285,-66.716],[5040.83,-1902.86,40.6167,233.027,-66.2693],[4995.32,-1800.44,40.1333,230.665,-65.7934],[4951.01,-1702.91,39.6667,228.362,-65.3206],[4904.74,-1603.32,39.1833,225.953,-64.8166],[4856.46,-1501.85,38.6833,223.439,-64.2793],[4807.78,-1401.97,38.1833,220.902,-63.7249],[4757.05,-1300.47,37.6667,218.258,-63.1335],[4705.88,-1200.73,37.15,215.593,-62.5224],[4654.27,-1102.78,36.6333,212.908,-61.8905],[4598.86,-1000.49,36.0833,210.03,-61.1941],[4542.96,-900.279,35.5333,207.133,-60.472],[4486.58,-802.181,34.9833,204.221,-59.7229],[4426.26,-700.477,34.4,201.117,-58.8975],[4365.39,-601.217,33.8167,198.001,-58.0385],[4302.23,-501.707,33.2167,194.788,-57.1181],[4236.73,-402.206,32.6,191.481,-56.1312],[4167.05,-300.415,31.95,187.995,-55.0433],[4096.72,-201.838,31.3,184.516,-53.9038],[4022.09,-101.725,30.6167,180.872,-52.6471],[3943.07,-0.659567,29.9,177.077,-51.2605],[3861.42,98.528,29.1667,173.231,-49.7645],[3773.33,199.683,28.3833,169.18,-48.0751],[3680.54,299.79,27.5667,165.036,-46.2072],[3581.03,399.957,26.7,160.752,-44.0989],[3474.64,499,25.7833,156.376,-41.7196],[3357.24,598.828,24.7833,151.827,-38.9398],[3226.53,698.577,23.6833,147.15,-35.6504],[3076.05,798.92,22.4333,142.341,-31.6096],[2894.82,899.729,20.95,137.479,-26.3985],[2658.56,999.338,19.05,132.886,-19.1122],[2076.38,1099.15,14.5167,131.339,-0.0164026]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 33.403; +_maxRange = 3950.59; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg3.sqf new file mode 100644 index 0000000000..f205ac3d57 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg3.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg3 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[4411.04,-2001.05,21.4333,243.583,-45.9812],[4314.64,-1902.82,20.8667,242.151,-45.0625],[4211.46,-1801.14,20.2667,240.673,-44.0675],[4107.15,-1701.89,19.6667,239.236,-43.0493],[3998.76,-1602.46,19.05,237.809,-41.9784],[3883.19,-1500.51,18.4,236.362,-40.8228],[3766.27,-1401.53,17.75,234.981,-39.6396],[3641.88,-1300.72,17.0667,233.606,-38.366],[3512.89,-1200.97,16.3667,232.287,-37.0299],[3376.04,-1100.32,15.6333,231.011,-35.5965],[3234.25,-1001.53,14.8833,229.826,-34.0954],[3080.95,-900.844,14.0833,228.708,-32.456],[2918.99,-801.19,13.25,227.717,-30.7079],[2744.75,-701.473,12.3667,226.875,-28.812],[2554.37,-601.135,11.4167,226.229,-26.7269],[2343.75,-500.26,10.3833,225.857,-24.4094],[2111.91,-401.11,9.26667,225.871,-21.8543],[1839.93,-300.058,7.98333,226.466,-18.8645],[1518.01,-200.821,6.5,227.987,-15.3579],[1085.82,-100.496,4.56667,231.43,-10.7488],[36.9923,-0.0224813,0.133333,246.312,-0.341751],[4.11538,0.0972759,0,246.923,-0.0379254]]], + [1,1.00648,[[4486.57,-2000.67,21.8667,242.943,-46.1748],[4390.76,-1902.38,21.3,241.484,-45.2569],[4288.22,-1800.64,20.7,239.976,-44.2624],[4184.56,-1701.34,20.1,238.51,-43.2445],[4076.84,-1601.84,19.4833,237.05,-42.1736],[3964.96,-1502.41,18.85,235.607,-41.0477],[3845.81,-1400.8,18.1833,234.153,-39.8338],[3725.24,-1302.36,17.5167,232.774,-38.5905],[3594.05,-1200.13,16.8,231.382,-37.2214],[3461.19,-1101.68,16.0833,230.091,-35.8187],[3317.21,-1000.6,15.3167,228.832,-34.2817],[3168.11,-901.918,14.5333,227.687,-32.6731],[3004.03,-800.176,13.6833,226.621,-30.8856],[2830.95,-700.424,12.8,225.722,-28.9836],[2641.86,-600.055,11.85,225.014,-26.8907],[2436.09,-500.715,10.8333,224.576,-24.6014],[2205.93,-401.394,9.71667,224.507,-22.0348],[1935.95,-300.157,8.43333,225.004,-19.0297],[1616.45,-200.717,6.95,226.411,-15.5024],[1187.6,-100.143,5.01667,229.701,-10.8623],[216.332,-0.00122909,0.866667,242.983,-1.02645],[110.65,1.00448,0.433333,244.899,-0.0281958]]], + [2,3.77561,[[4563.22,-2002.02,22.3167,242.349,-46.4052],[4465.23,-1900.73,21.7333,240.819,-45.4615],[4366.19,-1801.71,21.15,239.323,-44.4957],[4263.22,-1702.26,20.55,237.825,-43.4789],[4156.22,-1602.62,19.9333,236.332,-42.4089],[4042.16,-1500.46,19.2833,234.814,-41.2536],[3926.76,-1401.27,18.6333,233.36,-40.07],[3804.01,-1300.26,17.95,231.906,-38.7951],[3676.73,-1200.29,17.25,230.504,-37.4568],[3544.79,-1101.68,16.5333,229.167,-36.0529],[3401.82,-1000.44,15.7667,227.858,-34.514],[3253.77,-901.59,14.9833,226.661,-32.9026],[3094.07,-801.617,14.15,225.555,-31.1467],[2922.28,-701.57,13.2667,224.59,-29.2404],[2734.62,-600.889,12.3167,223.807,-27.1416],[2530.42,-501.218,11.3,223.287,-24.8444],[2298.6,-400.129,10.1667,223.127,-22.2283],[2037.7,-301.124,8.91667,223.505,-19.2866],[1720.85,-201.005,7.43333,224.772,-15.7395],[1299.38,-100.276,5.51667,227.842,-11.1085],[424.996,-0.0582497,1.73333,239.172,-2.04754],[216.234,3.77372,0.866667,242.834,-0.0267732]]], + [3,8.37443,[[4638.11,-2002.21,22.7667,241.759,-46.6456],[4540.79,-1900.76,22.1833,240.199,-45.7037],[4442.43,-1801.59,21.6,238.673,-44.7394],[4340.17,-1701.98,21,237.143,-43.724],[4233.92,-1602.17,20.3833,235.615,-42.6552],[4123.57,-1502.43,19.75,234.099,-41.5307],[4006.06,-1400.49,19.0833,232.567,-40.3176],[3887.17,-1301.73,18.4167,231.107,-39.0743],[3760.82,-1201.5,17.7167,229.658,-37.7364],[3626.8,-1100.37,16.9833,228.241,-36.2992],[3487.96,-1001.09,16.2333,226.909,-34.7924],[3341.03,-901.957,15.45,225.655,-33.1794],[3182.54,-801.679,14.6167,224.487,-31.4207],[3012.07,-701.312,13.7333,223.452,-29.5103],[2825.86,-600.289,12.7833,222.593,-27.4058],[2623.25,-500.255,11.7667,221.989,-25.1007],[2396.69,-400.181,10.65,221.733,-22.5128],[2137.97,-300.562,9.4,221.995,-19.5574],[1827.38,-200.742,7.93333,223.102,-16.0305],[1417.07,-100.278,6.05,225.903,-11.4498],[630.032,-0.139729,2.6,235.493,-3.10168],[320.785,8.37205,1.3,240.731,-0.0339657]]], + [4,14.7693,[[4711.16,-2001.29,23.2167,241.175,-46.8961],[4617.31,-1902.54,22.65,239.63,-45.9833],[4516.87,-1800.32,22.05,238.028,-44.9936],[4415.34,-1700.53,21.45,236.465,-43.9798],[4309.84,-1600.55,20.8333,234.902,-42.9123],[4200.29,-1500.62,20.2,233.349,-41.789],[4086.56,-1401,19.55,231.815,-40.6073],[3968.56,-1301.97,18.8833,230.311,-39.3651],[3843.18,-1201.46,18.1833,228.815,-38.0278],[3710.18,-1100.04,17.45,227.347,-36.5907],[3572.41,-1000.46,16.7,225.961,-35.0833],[3426.61,-901.014,15.9167,224.648,-33.4689],[3269.35,-800.405,15.0833,223.416,-31.7076],[3103.44,-701.534,14.2167,222.33,-29.83],[2918.76,-600.012,13.2667,221.388,-27.7208],[2721.16,-501.026,12.2667,220.702,-25.4472],[2496.56,-400.213,11.15,220.336,-22.8505],[2243.58,-301.015,9.91667,220.464,-19.9221],[1935.86,-200.004,8.45,221.407,-16.3767],[1540.4,-100.29,6.61667,223.899,-11.8882],[827.512,-0.0313579,3.45,232.007,-4.14896],[420.248,14.7685,1.71667,238.663,-0.0108325]]], + [5,22.9243,[[4785.09,-2002.24,23.6833,240.645,-47.183],[4689.19,-1900.36,23.1,239.024,-46.2459],[4592.27,-1800.76,22.5167,237.434,-45.286],[4491.51,-1700.71,21.9167,235.836,-44.2747],[4386.82,-1600.46,21.3,234.236,-43.2095],[4278.1,-1500.26,20.6667,232.644,-42.0882],[4165.25,-1400.36,20.0167,231.069,-40.9083],[4048.17,-1301.04,19.35,229.521,-39.6675],[3923.76,-1200.23,18.65,227.976,-38.3311],[3794.82,-1100.75,17.9333,226.49,-36.9275],[3658.17,-1000.76,17.1833,225.046,-35.4207],[3513.57,-900.878,16.4,223.67,-33.8059],[3360.76,-801.775,15.5833,222.393,-32.0791],[3193.08,-700.452,14.7,221.209,-30.1631],[3013.2,-600.13,13.7667,220.199,-28.0871],[2817.33,-500.452,12.7667,219.415,-25.8081],[2598.08,-400.303,11.6667,218.941,-23.2421],[2347.45,-300.071,10.4333,218.934,-20.302],[2053.15,-200.999,9.01667,219.668,-16.8606],[1669.05,-100.49,7.21667,221.848,-12.4261],[1025.14,-0.298001,4.31667,228.598,-5.26963],[522.537,22.9219,2.15,236.488,-0.0358371]]], + [6,32.8041,[[4857.06,-2002.18,24.15,240.125,-47.4795],[4761.9,-1900.03,23.5667,238.472,-46.5455],[4665.73,-1800.16,22.9833,236.85,-45.5886],[4568.55,-1702.59,22.4,235.261,-44.6084],[4464.72,-1601.98,21.7833,233.623,-43.5465],[4356.88,-1501.41,21.15,231.989,-42.4283],[4244.96,-1401.13,20.5,230.37,-41.2512],[4128.84,-1301.43,19.8333,228.776,-40.0128],[4005.46,-1200.2,19.1333,227.18,-38.6785],[3877.59,-1100.31,18.4167,225.64,-37.2765],[3745.11,-1002.06,17.6833,224.169,-35.8044],[3601.77,-901.623,16.9,222.727,-34.1906],[3450.29,-801.934,16.0833,221.378,-32.4637],[3287.25,-701.843,15.2167,220.135,-30.5831],[3109.02,-600.723,14.2833,219.031,-28.5051],[2914.96,-500.185,13.2833,218.144,-26.2218],[2701.08,-400.542,12.2,217.557,-23.6881],[2456.27,-300.348,10.9833,217.402,-20.7778],[2168.43,-200.706,9.58333,217.941,-17.3614],[1799.14,-100.268,7.83333,219.792,-13.0241],[1215.21,-0.37912,5.16667,225.378,-6.38277],[619.659,32.802,2.56667,234.35,-0.0304347]]], + [7,44.3709,[[4927,-2001.15,24.6167,239.616,-47.7858],[4835.31,-1901.61,24.05,237.978,-46.8821],[4739.94,-1801.39,23.4667,236.322,-45.929],[4640.8,-1700.7,22.8667,234.652,-44.9242],[4540.6,-1602.49,22.2667,233.021,-43.8942],[4433.67,-1501.53,21.6333,231.346,-42.7793],[4322.68,-1400.86,20.9833,229.682,-41.6054],[4207.54,-1300.74,20.3167,228.04,-40.3698],[4088.13,-1201.47,19.6333,226.432,-39.07],[3961.39,-1101.05,18.9167,224.834,-37.6707],[3827.08,-1000.06,18.1667,223.269,-36.1668],[3688.01,-901.232,17.4,221.794,-34.5883],[3537.89,-800.933,16.5833,220.372,-32.8618],[3376.32,-700.192,15.7167,219.048,-30.9804],[3202.88,-600.126,14.8,217.873,-28.9374],[3013.88,-500.32,13.8167,216.895,-26.689],[2805.38,-401.031,12.75,216.191,-24.1892],[2566.43,-300.702,11.55,215.883,-21.3104],[2285.07,-200.289,10.1667,216.22,-17.9207],[1933.98,-100.634,8.48333,217.72,-13.7251],[1397.84,-0.145242,6,222.334,-7.48693],[715.52,44.3686,2.98333,232.178,-0.0341881]]], + [8,57.5872,[[4997.54,-2002.17,25.1,239.168,-48.1278],[4906.63,-1902.28,24.5333,237.498,-47.2283],[4812.07,-1801.69,23.95,235.807,-46.2793],[4713.77,-1700.62,23.35,234.101,-45.2785],[4614.42,-1602.03,22.75,232.431,-44.2523],[4508.41,-1500.67,22.1167,230.714,-43.1411],[4401.22,-1402.13,21.4833,229.049,-42.001],[4287.1,-1301.51,20.8167,227.358,-40.7694],[4168.76,-1201.72,20.1333,225.697,-39.4732],[4043.15,-1100.74,19.4167,224.042,-38.077],[3913.03,-1001.39,18.6833,222.449,-36.6095],[3775.27,-901.87,17.9167,220.904,-35.0337],[3626.56,-800.83,17.1,219.405,-33.309],[3469.62,-701.194,16.25,218.021,-31.4648],[3297.88,-600.164,15.3333,216.749,-29.4218],[3113.95,-500.96,14.3667,215.676,-27.2099],[2907.59,-400.385,13.3,214.842,-24.7061],[2677.74,-301.257,12.1333,214.387,-21.9003],[2406.27,-201.018,10.7833,214.509,-18.5807],[2066.28,-100.06,9.13333,215.691,-14.447],[1576.75,-0.0234656,6.83333,219.419,-8.62291],[806.217,57.5867,3.38333,230.042,-0.00669588]]], + [9,72.4141,[[5065.93,-2002.34,25.5833,238.735,-48.4792],[4975.8,-1902.08,25.0167,237.033,-47.584],[4882.06,-1801.11,24.4333,235.307,-46.6394],[4787.34,-1702.43,23.85,233.612,-45.671],[4686.14,-1600.66,23.2333,231.856,-44.6208],[4583.84,-1501.52,22.6167,230.143,-43.5433],[4477.61,-1402.48,21.9833,228.432,-42.4077],[4364.54,-1301.34,21.3167,226.691,-41.1803],[4247.28,-1201,20.6333,224.977,-39.8881],[4125.74,-1101.77,19.9333,223.303,-38.5283],[3996.85,-1001.74,19.2,221.646,-37.0646],[3860.4,-901.502,18.4333,220.031,-35.492],[3716.15,-801.722,17.6333,218.485,-33.8052],[3560.76,-701.172,16.7833,217.013,-31.9631],[3393.86,-600.944,15.8833,215.664,-29.9584],[3211.83,-500.553,14.9167,214.477,-27.7461],[3010.84,-400.177,13.8667,213.524,-25.2787],[2786.75,-300.785,12.7167,212.917,-22.5074],[2525.03,-200.79,11.4,212.834,-19.2596],[2202.85,-100.486,9.81667,213.678,-15.2746],[1751.89,-0.0897496,7.66667,216.636,-9.79055],[899.385,72.4121,3.8,227.808,-0.0293284]]], + [10,88.8119,[[5132.1,-2001.71,26.0667,238.317,-48.8396],[5042.77,-1901.07,25.5,236.584,-47.9492],[4952.54,-1802.56,24.9333,234.873,-47.0365],[4855.99,-1700.62,24.3333,233.092,-46.0454],[4758.42,-1601.15,23.7333,231.344,-45.0284],[4657.06,-1501.51,23.1167,229.589,-43.9558],[4551.83,-1401.96,22.4833,227.832,-42.8251],[4439.8,-1300.27,21.8167,226.042,-41.6025],[4326.49,-1201.79,21.15,224.316,-40.3464],[4206.12,-1101.89,20.45,222.583,-38.9914],[4078.48,-1001.15,19.7167,220.862,-37.5321],[3943.36,-900.182,18.95,219.176,-35.9631],[3803.51,-801.67,18.1667,217.585,-34.3148],[3649.7,-700.179,17.3167,216.024,-32.4753],[3487.57,-600.764,16.4333,214.602,-30.5094],[3310.59,-500.844,15.4833,213.321,-28.3361],[3114.97,-400.535,14.45,212.246,-25.9071],[2896.65,-300.733,13.3167,211.483,-23.1725],[2644.59,-200.871,12.0333,211.195,-19.9991],[2336.56,-100.26,10.5,211.726,-16.1244],[1923.2,-0.421718,8.5,213.987,-10.9896],[987.329,88.8106,4.2,225.609,-0.020581]]], + [11,106.741,[[5196.01,-2000.34,26.55,237.917,-49.2092],[5110.12,-1902.23,26,236.202,-48.3501],[5018.08,-1800.38,25.4167,234.407,-47.4159],[4925.09,-1700.82,24.8333,232.638,-46.4574],[4828.44,-1600.85,24.2333,230.851,-45.4459],[4728.04,-1500.69,23.6167,229.053,-44.3787],[4623.8,-1400.61,22.9833,227.251,-43.2532],[4515.63,-1300.87,22.3333,225.455,-42.0666],[4403.43,-1201.74,21.6667,223.676,-40.816],[4284.24,-1101.16,20.9667,221.883,-39.4663],[4160.76,-1001.96,20.25,220.137,-38.0453],[4027.01,-900.127,19.4833,218.377,-36.4816],[3888.6,-800.73,18.7,216.708,-34.8376],[3739.38,-700.227,17.8667,215.089,-33.038],[3582.02,-601.521,17,213.592,-31.1127],[3406.98,-500.247,16.05,212.192,-28.9416],[3216.67,-400.023,15.0333,210.999,-26.5519],[3007.24,-301.248,13.9333,210.096,-23.8958],[2761.5,-200.186,12.6667,209.603,-20.7579],[2470.7,-100.476,11.2,209.83,-17.0391],[2087.19,-0.352194,9.31667,211.499,-12.1762],[1331.85,99.9163,5.76667,219.348,-2.98277],[1073.82,106.739,4.6,223.381,-0.0214941]]], + [12,126.159,[[5260.19,-2001.29,27.05,237.588,-49.6133],[5175.12,-1902.72,26.5,235.841,-48.76],[5083.96,-1800.37,25.9167,234.01,-47.8317],[4991.87,-1700.31,25.3333,232.205,-46.8791],[4898.82,-1602.58,24.75,230.428,-45.9017],[4799.41,-1501.82,24.1333,228.586,-44.841],[4696.21,-1401.11,23.5,226.737,-43.7219],[4589.12,-1300.72,22.85,224.891,-42.5415],[4478.04,-1200.92,22.1833,223.058,-41.297],[4362.88,-1102,21.5,221.249,-39.9854],[4240.68,-1001.98,20.7833,219.436,-38.5707],[4111.22,-901.452,20.0333,217.642,-37.0471],[3974.28,-801.046,19.25,215.891,-35.409],[3829.64,-701.438,18.4333,214.213,-33.6509],[3674.03,-601.481,17.5667,212.613,-31.7303],[3504,-500.561,16.6333,211.119,-29.6009],[3318.99,-400.303,15.6333,209.807,-27.2527],[3115.21,-301.036,14.55,208.753,-24.6368],[2878.92,-200.077,13.3167,208.064,-21.5778],[2601.77,-100.268,11.9,208.007,-17.9763],[2247.35,-0.576664,10.1333,209.142,-13.3925],[1661.3,99.6992,7.31667,214.02,-6.01214],[1158.8,126.157,5,221.125,-0.0323977]]], + [13,147.026,[[5321.95,-2001.61,27.55,237.279,-50.026],[5237.71,-1902.57,27,235.501,-49.1786],[5150.04,-1802.62,26.4333,233.688,-48.2833],[5058.88,-1701.98,25.85,231.844,-47.3376],[4964.12,-1600.88,25.25,229.977,-46.3388],[4868.37,-1502.27,24.65,228.142,-45.3131],[4766.22,-1400.92,24.0167,226.247,-44.2008],[4662.95,-1302.41,23.3833,224.398,-43.0576],[4553.04,-1201.85,22.7167,222.509,-41.8203],[4439.09,-1102.13,22.0333,220.64,-40.5158],[4318.17,-1001.27,21.3167,218.762,-39.1078],[4192.95,-902.067,20.5833,216.935,-37.6247],[4057.51,-800.628,19.8,215.103,-35.9932],[3917.39,-701.937,19,213.37,-34.2771],[3763.53,-600.703,18.1333,211.667,-32.3621],[3598.46,-500.16,17.2167,210.082,-30.2753],[3421.74,-401.526,16.25,208.677,-28.0092],[3220.47,-300.162,15.1667,207.456,-25.3953],[2996.65,-200.723,13.9833,206.591,-22.459],[2732.95,-100.827,12.6167,206.26,-18.9788],[2400.3,-0.304474,10.9333,206.932,-14.5942],[1903.62,99.8086,8.5,210.233,-8.16339],[1238.55,147.025,5.38333,218.903,-0.0108578]]], + [14,169.299,[[5381.26,-2001.39,28.05,236.993,-50.4469],[5297.86,-1901.85,27.5,235.182,-49.6059],[5211.07,-1801.38,26.9333,233.335,-48.717],[5120.82,-1700.21,26.35,231.455,-47.7778],[5029.64,-1601.36,25.7667,229.6,-46.8134],[4934.88,-1502.13,25.1667,227.723,-45.7948],[4833.79,-1400.11,24.5333,225.781,-44.6897],[4731.59,-1300.94,23.9,223.883,-43.5534],[4625.56,-1202.15,23.25,221.988,-42.3543],[4512.83,-1101.63,22.5667,220.059,-41.0573],[4396.01,-1002.23,21.8667,218.159,-39.6897],[4272.17,-902.037,21.1333,216.26,-38.2143],[4141.1,-801.673,20.3667,214.385,-36.6253],[4002.58,-701.789,19.5667,212.561,-34.9166],[3853.43,-601.166,18.7167,210.788,-33.0454],[3693.28,-500.902,17.8167,209.113,-31.0031],[3518.71,-400.522,16.85,207.571,-28.7421],[3326.06,-300.212,15.8,206.225,-26.2119],[3111.39,-200.959,14.65,205.183,-23.3595],[2857.65,-100.038,13.3167,204.596,-19.9604],[2549.44,-0.362316,11.7333,204.851,-15.8237],[2115.19,99.6103,9.56667,207.046,-10.0593],[1320.35,169.297,5.78333,216.594,-0.0423684]]], + [15,192.937,[[5438.07,-2000.65,28.55,236.728,-50.8761],[5355.52,-1900.6,28,234.887,-50.0417],[5272.16,-1802.55,27.45,233.06,-49.1858],[5182.86,-1700.77,26.8667,231.143,-48.2541],[5092.64,-1601.3,26.2833,229.249,-47.2971],[4998.88,-1501.42,25.6833,227.33,-46.286],[4901.5,-1401.39,25.0667,225.393,-45.2178],[4800.41,-1301.46,24.4333,223.445,-44.0897],[4695.54,-1201.89,23.7833,221.495,-42.8987],[4584.04,-1100.53,23.1,219.507,-41.6098],[4468.5,-1000.26,22.4,217.543,-40.2499],[4348.82,-901.418,21.6833,215.617,-38.8158],[4222.06,-802.153,20.9333,213.703,-37.2696],[4085.15,-701.052,20.1333,211.789,-35.5692],[3940.65,-601.069,19.3,209.95,-33.7424],[3785.37,-501.115,18.4167,208.189,-31.7454],[3615.93,-400.656,17.4667,206.537,-29.5303],[3431.8,-301.36,16.45,205.071,-27.0862],[3223.07,-200.856,15.3167,203.843,-24.2788],[2982.27,-100.259,14.0333,203.02,-21.0068],[2694.71,-0.83136,12.5333,202.899,-17.0803],[2304.15,99.8483,10.55,204.274,-11.7766],[1396.89,192.934,6.16667,214.319,-0.0412542]]], + [16,217.895,[[5494.81,-2002.54,29.0667,236.544,-51.338],[5413.14,-1901.91,28.5167,234.671,-50.5111],[5328.16,-1800.32,27.95,232.755,-49.6367],[5242.33,-1700.87,27.3833,230.857,-48.7389],[5153.08,-1600.76,26.8,228.924,-47.7897],[5060.33,-1500.23,26.2,226.963,-46.7864],[4966.61,-1402.21,25.6,225.034,-45.7552],[4866.65,-1301.49,24.9667,223.036,-44.6358],[4762.94,-1201.12,24.3167,221.033,-43.4533],[4655.38,-1101.35,23.65,219.034,-42.2047],[4541.16,-1000.12,22.95,217.005,-40.8541],[4422.85,-900.274,22.2333,215.008,-39.4289],[4300.35,-802.135,21.5,213.059,-37.9259],[4167.89,-701.875,20.7167,211.095,-36.2704],[4025.13,-600.477,19.8833,209.153,-34.4529],[3874.66,-500.866,19.0167,207.312,-32.5021],[3710.29,-400.363,18.0833,205.554,-30.3339],[3531.52,-300.6,17.0833,203.956,-27.9366],[3331.64,-200.486,15.9833,202.572,-25.2167],[3103.49,-100.45,14.75,201.535,-22.0744],[2832.89,-0.7391,13.3167,201.081,-18.3188],[2481.29,99.4813,11.5,201.786,-13.4428],[1868.52,199.86,8.45,206.56,-5.14967],[1468.24,217.894,6.53333,212.075,-0.00650065]]], + [17,244.13,[[5546.44,-2000.99,29.5667,236.329,-51.7828],[5468.11,-1902.86,29.0333,234.482,-50.9883],[5384.06,-1800.64,28.4667,232.532,-50.1219],[5299.16,-1700.56,27.9,230.598,-49.2321],[5213.42,-1602.65,27.3333,228.683,-48.3183],[5121.72,-1501.38,26.7333,226.68,-47.3241],[5029.07,-1402.61,26.1333,224.705,-46.3017],[4930.23,-1301.1,25.5,222.658,-45.1914],[4830.33,-1202.45,24.8667,220.654,-44.0486],[4724.03,-1101.76,24.2,218.596,-42.8099],[4613.84,-1001.93,23.5167,216.55,-41.5016],[4496.94,-900.967,22.8,214.481,-40.087],[4375.9,-801.68,22.0667,212.454,-38.594],[4245.03,-700.182,21.2833,210.402,-36.9483],[4109.67,-601.458,20.4833,208.44,-35.2134],[3961.08,-500.221,19.6167,206.484,-33.2728],[3804.64,-401.478,18.7167,204.658,-31.1917],[3631.19,-301.153,17.7333,202.927,-28.8439],[3440.05,-201.406,16.6667,201.395,-26.2145],[3221.27,-100.689,15.4667,200.143,-23.1626],[2967.2,-1.10094,14.1,199.389,-19.5821],[2643.75,99.8079,12.4,199.554,-15.0084],[2159.35,199.667,9.93333,202.206,-8.24531],[1541.43,244.128,6.91667,209.749,-0.0263358]]], + [18,271.599,[[5597.87,-2002.21,30.0833,236.197,-52.2596],[5517.97,-1900.43,29.5333,234.261,-51.448],[5437.29,-1800.63,28.9833,232.336,-50.6149],[5355.83,-1702.85,28.4333,230.425,-49.7597],[5268.57,-1601.36,27.85,228.415,-48.8279],[5180.42,-1502.2,27.2667,226.427,-47.87],[5088.83,-1402.66,26.6667,224.409,-46.8569],[4991.13,-1300.34,26.0333,222.312,-45.7562],[4892.38,-1200.87,25.4,220.256,-44.6228],[4789.95,-1101.8,24.75,218.194,-43.4248],[4681.06,-1000.99,24.0667,216.084,-42.1268],[4568.25,-901.312,23.3667,213.994,-40.7556],[4448.69,-800.855,22.6333,211.889,-39.2735],[4322.18,-700.232,21.8667,209.794,-37.6738],[4188.5,-600.104,21.0667,207.735,-35.9498],[4047.46,-501.171,20.2333,205.744,-34.0948],[3893.06,-400.572,19.3333,203.788,-32.0248],[3727.74,-301.537,18.3833,201.967,-29.7668],[3542.2,-200.767,17.3333,200.274,-27.1879],[3335.56,-101.054,16.1833,198.847,-24.2705],[3094.54,-0.825829,14.8667,197.819,-20.8248],[2798.32,99.5813,13.2833,197.526,-16.5603],[2384.68,199.847,11.1333,198.962,-10.6341],[1609.39,271.598,7.28333,207.454,-0.0123041]]], + [19,300.256,[[5644.16,-2000.06,30.5833,236.033,-52.7194],[5567.56,-1900.79,30.05,234.126,-51.9403],[5487.8,-1800.36,29.5,232.169,-51.1156],[5407.26,-1701.94,28.95,230.224,-50.2688],[5323.47,-1602.66,28.3833,228.235,-49.3725],[5236.36,-1502.75,27.8,226.206,-48.4242],[5145.84,-1402.43,27.2,224.144,-47.4208],[5051.84,-1301.95,26.5833,222.056,-46.3594],[4954.28,-1201.57,25.95,219.947,-45.2367],[4853.07,-1101.55,25.3,217.828,-44.0494],[4748.14,-1002.17,24.6333,215.708,-42.7942],[4636.72,-901.374,23.9333,213.548,-41.4347],[4521.33,-801.99,23.2167,211.415,-39.9982],[4396.42,-700.013,22.45,209.233,-38.411],[4267.21,-600.52,21.6667,207.121,-36.7352],[4130.8,-501.931,20.85,205.061,-34.9298],[3981.29,-401.288,19.9667,203.013,-32.911],[3818.22,-300.115,19.0167,201.042,-30.6649],[3641.07,-200.087,18,199.23,-28.1784],[3443.33,-100.213,16.8833,197.628,-25.3547],[3218.02,-1.05339,15.6333,196.37,-22.0901],[2942.05,99.9564,14.1333,195.686,-18.0507],[2580.37,199.799,12.2167,196.265,-12.7504],[1723.37,299.962,7.88333,204.406,-0.649308],[1675.6,300.255,7.65,205.135,-0.00897493]]], + [20,330.057,[[5690.1,-2000.85,31.1,235.956,-53.2102],[5614.39,-1900.96,30.5667,234.02,-52.4396],[5537.95,-1802.92,30.0333,232.092,-51.6487],[5455.95,-1700.81,29.4667,230.053,-50.7855],[5373.14,-1600.86,28.9,228.027,-49.8982],[5287.03,-1500.24,28.3167,225.96,-48.959],[5200.07,-1401.97,27.7333,223.914,-47.993],[5107.19,-1300.66,27.1167,221.778,-46.9418],[5013.35,-1202.05,26.5,219.676,-45.8592],[4913.38,-1101.07,25.85,217.5,-44.6833],[4809.73,-1000.69,25.1833,215.32,-43.4394],[4702.31,-901.216,24.5,213.145,-42.1239],[4588.38,-800.649,23.7833,210.938,-40.6996],[4470.43,-701.787,23.05,208.767,-39.1942],[4342.92,-600.771,22.2667,206.559,-37.5322],[4208.31,-500.577,21.45,204.393,-35.7399],[4063.58,-400.055,20.5833,202.262,-33.772],[3908.39,-300.342,19.6667,200.219,-31.6179],[3739.5,-201.052,18.6833,198.293,-29.2264],[3550.53,-101.02,17.6,196.526,-26.5],[3334.63,-0.576733,16.3833,195.031,-23.3326],[3081.34,99.1158,14.9833,194.021,-19.568],[2757.3,199.294,13.2333,193.946,-14.7226],[2234.17,299.846,10.5,196.78,-6.99481],[1740.02,330.056,8.01667,202.791,-0.0167117]]], + [21,360.958,[[5733.2,-2001.51,31.6167,235.908,-53.7077],[5658.38,-1900.99,31.0833,233.944,-52.9457],[5582.85,-1802.31,30.55,231.985,-52.1636],[5504.22,-1702.52,30,229.973,-51.3352],[5422.41,-1601.81,29.4333,227.912,-50.458],[5337.36,-1500.41,28.85,225.805,-49.5291],[5251.45,-1401.34,28.2667,223.717,-48.5733],[5162.19,-1301.92,27.6667,221.594,-47.5614],[5069.52,-1202.39,27.05,219.442,-46.4902],[4970.8,-1100.42,26.4,217.212,-45.3262],[4871.02,-1001.52,25.75,215.027,-44.1255],[4764.97,-900.906,25.0667,212.785,-42.8228],[4655.12,-801.456,24.3667,210.557,-41.4448],[4538.71,-701.256,23.6333,208.304,-39.953],[4415.57,-600.927,22.8667,206.051,-38.3404],[4285.48,-501.13,22.0667,203.824,-36.5994],[4145.5,-400.659,21.2167,201.613,-34.6846],[3995.28,-300.621,20.3167,199.467,-32.5848],[3831.65,-200.557,19.35,197.409,-30.2487],[3651.2,-100.679,18.3,195.497,-27.62],[3447.39,-0.653891,17.1333,193.81,-24.5955],[3210.14,99.2794,15.8,192.508,-21.0194],[2916.22,199.437,14.1833,191.925,-16.5439],[2495.46,299.51,11.9333,193.139,-10.151],[1802.61,360.956,8.38333,200.425,-0.03594]]], + [22,392.913,[[5773.45,-2002.12,32.1333,235.89,-54.2114],[5699.54,-1900.96,31.6,233.897,-53.4585],[5624.92,-1801.63,31.0667,231.909,-52.6854],[5547.24,-1701.15,30.5167,229.865,-51.8664],[5468.81,-1602.69,29.9667,227.83,-51.0247],[5384.81,-1500.49,29.3833,225.684,-50.1065],[5299.96,-1400.62,28.8,223.556,-49.1613],[5211.81,-1300.36,28.2,221.389,-48.1603],[5122.77,-1202.64,27.6,219.248,-47.1293],[5027.82,-1102.27,26.9667,217.021,-46.0077],[4929.33,-1002.28,26.3167,214.777,-44.8202],[4824.66,-900.512,25.6333,212.47,-43.531],[4718.84,-802.219,24.95,210.225,-42.1994],[4603.98,-700.661,24.2167,207.892,-40.7223],[4485.13,-601.06,23.4667,205.599,-39.1594],[4359.5,-501.708,22.6833,203.317,-37.4702],[4224.18,-401.337,21.85,201.032,-35.6092],[4078.86,-301.029,20.9667,198.789,-33.565],[3920.39,-200.251,20.0167,196.607,-31.2857],[3748.3,-100.686,19,194.565,-28.7565],[3556.28,-1.37008,17.8833,192.71,-25.8772],[3331.7,99.5481,16.6,191.138,-22.4486],[3063.85,199.221,15.1,190.144,-18.3031],[2703.79,299.339,13.1333,190.374,-12.7038],[1860,392.912,8.73333,198.087,-0.019833]]], + [23,425.877,[[5810.77,-2002.74,32.65,235.901,-54.7215],[5737.77,-1900.91,32.1167,233.881,-53.9778],[5664.08,-1800.92,31.5833,231.864,-53.2141],[5589.69,-1702.79,31.05,229.851,-52.4296],[5509.89,-1600.59,30.4833,227.719,-51.5727],[5429.31,-1500.56,29.9167,225.599,-50.6912],[5347.94,-1402.71,29.35,223.492,-49.7841],[5260.93,-1301.53,28.75,221.281,-48.7953],[5170.59,-1200.17,28.1333,219.033,-47.7477],[5079.32,-1101.51,27.5167,216.814,-46.6674],[4982.1,-1000.5,26.8667,214.514,-45.4927],[4881.32,-900.101,26.2,212.201,-44.2483],[4776.9,-800.621,25.5167,209.887,-42.9305],[4666.15,-700.068,24.8,207.53,-41.5015],[4551.53,-601.24,24.0667,205.203,-39.9886],[4427.64,-500.282,23.2833,202.823,-38.3155],[4296.87,-400.173,22.4667,200.473,-36.5078],[4159.04,-301.642,21.6167,198.187,-34.5578],[4005.66,-200.209,20.6833,195.887,-32.3368],[3841.74,-101.12,19.7,193.73,-29.9085],[3658.38,-1.34905,18.6167,191.705,-27.1329],[3449,98.7499,17.4,189.92,-23.8991],[3200.52,199.061,15.9833,188.568,-19.9968],[2880.5,299.939,14.2,188.108,-14.9197],[2358.14,399.922,11.3833,190.554,-6.70059],[1915.54,425.876,9.08333,195.726,-0.0149567]]], + [24,459.802,[[5842.92,-2000.2,33.15,235.881,-55.2145],[5773.08,-1900.93,32.6333,233.898,-54.5031],[5700.31,-1800.26,32.1,231.851,-53.7489],[5626.86,-1701.44,31.5667,229.808,-52.9741],[5550.39,-1601.51,31.0167,227.707,-52.1529],[5470.85,-1500.67,30.45,225.55,-51.2824],[5390.53,-1402.01,29.8833,223.405,-50.3865],[5307.04,-1302.76,29.3,221.214,-49.437],[5217.88,-1200.43,28.6833,218.918,-48.4023],[5127.81,-1100.79,28.0667,216.65,-47.3349],[5034.35,-1001.3,27.4333,214.354,-46.2038],[4937.42,-902.242,26.7833,212.038,-45.0053],[4834.43,-801.471,26.1,209.655,-43.7031],[4727.76,-701.876,25.4,207.277,-42.3235],[4614.74,-601.541,24.6667,204.865,-40.8276],[4495.2,-501.088,23.9,202.439,-39.2076],[4368.96,-401.184,23.1,200.028,-37.4552],[4233.14,-300.62,22.25,197.616,-35.5237],[4087.43,-200.512,21.35,195.253,-33.4009],[3928.75,-100.403,20.3833,192.958,-31.0332],[3753.83,-0.509802,19.3333,190.784,-28.3619],[3556.33,99.49,18.1667,188.805,-25.2791],[3326.55,199.342,16.8333,187.169,-21.6222],[3042.04,299.333,15.2167,186.186,-17.029],[2632.05,399.63,12.95,186.88,-10.3917],[1969.19,459.801,9.43333,193.342,-0.0217966]]], + [25,494.645,[[5874.33,-2001,33.6667,235.953,-55.7363],[5805.38,-1901.07,33.15,233.945,-55.0344],[5735.81,-1802.84,32.6333,231.936,-54.3137],[5661.04,-1700.19,32.0833,229.798,-53.5253],[5587.86,-1602.55,31.55,227.729,-52.7393],[5509.36,-1500.89,30.9833,225.537,-51.8803],[5430.09,-1401.4,30.4167,223.355,-50.9959],[5347.7,-1301.3,29.8333,221.123,-50.0583],[5262.1,-1200.8,29.2333,218.845,-49.0642],[5173.24,-1100.16,28.6167,216.528,-48.0103],[5083.47,-1002.25,28,214.239,-46.9227],[4987.87,-902.034,27.35,211.864,-45.7389],[4886.29,-800.039,26.6667,209.415,-44.4521],[4783.6,-701.535,25.9833,207.023,-43.1208],[4674.71,-602.033,25.2667,204.585,-41.6758],[4559.45,-502.137,24.5167,202.12,-40.1092],[4435.04,-400.425,23.7167,199.602,-38.3759],[4306.48,-301.831,22.9,197.166,-36.5396],[4165.64,-201.237,22.0167,194.704,-34.4773],[4012.11,-100.177,21.0667,192.28,-32.1719],[3845.44,-0.33998,20.05,189.974,-29.6067],[3659.53,99.241,18.9333,187.827,-26.6774],[3445.05,199.199,17.6667,185.937,-23.2239],[3186.05,299.344,16.1667,184.537,-18.9779],[2841.13,399.307,14.2167,184.241,-13.2668],[2020.91,494.643,9.78333,190.937,-0.0408035]]], + [26,530.356,[[5902.73,-2002,34.1833,236.059,-56.2634],[5834.69,-1901.39,33.6667,234.026,-55.5712],[5766.02,-1802.48,33.15,231.99,-54.8604],[5694.48,-1702.2,32.6167,229.889,-54.1065],[5620.01,-1600.74,32.0667,227.723,-53.307],[5544.83,-1501.29,31.5167,225.563,-52.4844],[5466.62,-1400.96,30.95,223.344,-51.6119],[5387.67,-1302.83,30.3833,221.137,-50.7134],[5303.24,-1201.36,29.7833,218.815,-49.7328],[5217.97,-1102.42,29.1833,216.513,-48.7213],[5127.05,-1000.76,28.55,214.11,-47.619],[5035.18,-902.018,27.9167,211.74,-46.4802],[4937.47,-801.257,27.25,209.287,-45.2409],[4836.24,-701.412,26.5667,206.824,-43.9265],[4728.9,-600.489,25.85,204.307,-42.4987],[4617.82,-501.297,25.1167,201.81,-40.9846],[4500.36,-402.071,24.35,199.297,-39.343],[4373.72,-301.481,23.5333,196.745,-37.5276],[4237.64,-200.584,22.6667,194.195,-35.5255],[4091.81,-100.526,21.75,191.698,-33.3234],[3933.19,-0.92555,20.7667,189.277,-30.8658],[3755.83,99.3808,19.6833,186.956,-28.0479],[3556.17,198.754,18.4833,184.859,-24.7995],[3316.1,299.89,17.0667,183.105,-20.8103],[3015.87,399.29,15.3333,182.148,-15.7446],[2530.6,499.677,12.6167,183.628,-7.56259],[2067.5,530.355,10.1167,188.555,-0.0228038]]], + [27,566.892,[[5928.04,-2003.26,34.7,236.196,-56.7959],[5860.91,-1901.96,34.1833,234.139,-56.1137],[5793.16,-1802.36,33.6667,232.078,-55.413],[5722.58,-1701.35,33.1333,229.948,-54.6697],[5651.34,-1602.2,32.6,227.819,-53.9053],[5577.18,-1501.93,32.05,225.626,-53.0945],[5500.05,-1400.75,31.4833,223.372,-52.2343],[5422.17,-1301.75,30.9167,221.126,-51.3481],[5341.22,-1202.17,30.3333,218.827,-50.4079],[5257.13,-1102.22,29.7333,216.48,-49.4104],[5169.85,-1002.17,29.1167,214.09,-48.3519],[5079.29,-902.264,28.4833,211.664,-47.2287],[4982.97,-800.272,27.8167,209.149,-46.0058],[4885.62,-701.579,27.15,206.68,-44.7401],[4782.31,-601.551,26.45,204.145,-43.3639],[4672.87,-500.776,25.7167,201.562,-41.869],[4559.66,-402.021,24.9667,199.009,-40.2828],[4437.49,-301.561,24.1667,196.398,-38.5258],[4306.08,-200.424,23.3167,193.768,-36.5848],[4167.77,-101.53,22.4333,191.213,-34.4864],[4014.36,-0.676473,21.4667,188.65,-32.0957],[3848.02,98.4776,20.4333,186.217,-29.4336],[3657.27,199.491,19.2667,183.894,-26.3016],[3438.24,299.306,17.95,181.882,-22.6188],[3166.67,399.94,16.35,180.413,-17.9625],[2786.36,499.804,14.1667,180.361,-11.3796],[2112.17,566.891,10.45,186.151,-0.0167079]]], + [28,604.204,[[5948.12,-2001.52,35.2,236.3,-57.3118],[5884.03,-1902.84,34.7,234.286,-56.6612],[5817.21,-1802.54,34.1833,232.2,-55.9708],[5747.59,-1700.79,33.65,230.043,-55.2383],[5677.33,-1600.9,33.1167,227.885,-54.485],[5606.41,-1502.89,32.5833,225.727,-53.7101],[5530.34,-1400.83,32.0167,223.438,-52.8625],[5453.55,-1300.96,31.45,221.156,-51.9891],[5373.73,-1200.46,30.8667,218.817,-51.062],[5293.13,-1102.33,30.2833,216.492,-50.1058],[5207.08,-1001.22,29.6667,214.053,-49.0622],[5117.81,-900.222,29.0333,211.574,-47.9544],[5027.62,-802.144,28.4,209.127,-46.8088],[4931.71,-702.107,27.7333,206.592,-45.5611],[4829.92,-600.654,27.0333,203.984,-44.2035],[4724.55,-500.648,26.3167,201.378,-42.7618],[4613.04,-400.237,25.5667,198.733,-41.1958],[4495.23,-300.069,24.7833,196.073,-39.4964],[4370.93,-200.836,23.9667,193.425,-37.6541],[4237.39,-101.419,23.1,190.776,-35.6198],[4091.68,-1.24421,22.1667,188.132,-33.3377],[3930.75,99.6115,21.15,185.53,-30.7457],[3754.02,198.866,20.05,183.084,-27.8203],[3549.88,298.985,18.8,180.827,-24.3529],[3303.06,399.964,17.3167,178.962,-20.0625],[2982.43,499.672,15.4333,178.029,-14.3977],[2322.19,599.958,11.7,181.632,-2.84231],[2154.86,604.203,10.7833,183.726,-0.0230226]]], + [29,642.248,[[5965.1,-2000.13,35.7,236.434,-57.833],[5901.89,-1900.82,35.2,234.398,-57.192],[5838.12,-1803.08,34.7,232.356,-56.5339],[5769.47,-1700.58,34.1667,230.173,-55.8125],[5702.36,-1603.05,33.65,228.055,-55.0939],[5630.25,-1501.16,33.1,225.799,-54.3069],[5557.46,-1401.28,32.55,223.545,-53.4965],[5481.75,-1300.51,31.9833,221.227,-52.6361],[5405.32,-1201.95,31.4167,218.916,-51.7491],[5323.61,-1100.02,30.8167,216.481,-50.7801],[5241.09,-1000.64,30.2167,214.062,-49.7792],[5155.44,-901.171,29.6,211.598,-48.7164],[5066.58,-801.891,28.9667,209.095,-47.5877],[4972.08,-700.576,28.3,206.497,-46.3576],[4874.18,-600.172,27.6167,203.881,-45.0508],[4772.83,-500.988,26.9167,201.258,-43.6624],[4665.47,-401.121,26.1833,198.583,-42.1527],[4551.97,-301.201,25.4167,195.877,-40.5126],[4432.14,-201.899,24.6167,193.167,-38.7325],[4300.74,-100.129,23.75,190.381,-36.7239],[4162.52,-0.93535,22.85,187.674,-34.5495],[4009.48,99.7605,21.8667,184.964,-32.0709],[3841.07,199.77,20.8,182.353,-29.2637],[3651.3,299.296,19.6167,179.91,-26.0112],[3428.3,399.015,18.25,177.756,-22.0892],[3145.1,499.806,16.55,176.206,-17.0013],[2716.78,599.983,14.05,176.514,-9.23806],[2195.55,642.245,11.1167,181.279,-0.0422564]]], + [30,680.974,[[5981.04,-2002.52,36.2167,236.67,-58.3802],[5918.73,-1902.5,35.7167,234.613,-57.7495],[5853.76,-1800.8,35.2,232.479,-57.08],[5788.19,-1700.8,34.6833,230.339,-56.3918],[5722.03,-1602.53,34.1667,228.195,-55.6844],[5653.11,-1502.91,33.6333,225.979,-54.9333],[5581.38,-1402.16,33.0833,223.693,-54.1357],[5506.77,-1300.49,32.5167,221.34,-53.2888],[5431.45,-1201.01,31.95,218.992,-52.4154],[5353.16,-1100.93,31.3667,216.583,-51.4878],[5271.86,-1000.48,30.7667,214.12,-50.5025],[5189.76,-902.598,30.1667,211.673,-49.4844],[5102.24,-802.1,29.5333,209.115,-48.3731],[5011.49,-702.014,28.8833,206.522,-47.1922],[4915.09,-600.182,28.2,203.837,-45.9051],[4817.67,-501.874,27.5167,201.202,-44.5701],[4711.98,-400.348,26.7833,198.441,-43.0823],[4602.68,-300.837,26.0333,195.699,-41.5004],[4487.22,-201.637,25.25,192.936,-39.7816],[4362.92,-101.497,24.4167,190.128,-37.8769],[4229.53,-1.50952,23.5333,187.319,-35.7715],[4084.19,98.8354,22.5833,184.518,-33.4077],[3923.89,199.386,21.55,181.763,-30.7207],[3745.44,299.192,20.4167,179.138,-27.6392],[3537.33,399.939,19.1167,176.707,-23.942],[3287.18,499.532,17.5833,174.739,-19.3842],[2944.69,599.409,15.5333,173.833,-13.0347],[2231.22,680.973,11.4333,178.852,-0.022654]]], + [31,720.336,[[5991.7,-2002.05,36.7167,236.87,-58.911],[5930.28,-1901.38,36.2167,234.792,-58.2903],[5868.31,-1802.26,35.7167,232.705,-57.6528],[5803.7,-1701.51,35.2,230.542,-56.9759],[5738.5,-1602.48,34.6833,228.372,-56.28],[5670.58,-1502.07,34.15,226.128,-55.5408],[5599.89,-1400.5,33.6,223.811,-54.7557],[5528.53,-1300.96,33.05,221.494,-53.9468],[5454.32,-1200.55,32.4833,219.11,-53.0874],[5379.41,-1102.35,31.9167,216.732,-52.2008],[5299.33,-1000.83,31.3167,214.225,-51.2314],[5218.46,-901.861,30.7167,211.732,-50.2294],[5132.25,-800.205,30.0833,209.121,-49.1352],[5045.17,-701.476,29.45,206.537,-48.002],[4952.58,-600.76,28.7833,203.853,-46.7659],[4856.67,-500.991,28.1,201.147,-45.4514],[4755,-400.179,27.3833,198.367,-44.0193],[4649.83,-301.135,26.65,195.595,-42.4958],[4536.22,-200.001,25.8667,192.727,-40.8018],[4418.84,-101.76,25.0667,189.913,-38.9992],[4290.15,-1.17572,24.2,187.015,-36.9624],[4152.29,98.4975,23.2833,184.143,-34.7122],[3999.89,199.233,22.2833,181.268,-32.1453],[3832.4,298.788,21.2,178.5,-29.235],[3638.71,399.795,19.9667,175.846,-25.7651],[3412.26,499.306,18.55,173.539,-21.5912],[3118.39,599.741,16.75,171.905,-16.0465],[2618.74,699.979,13.7833,172.852,-6.55252],[2264.89,720.335,11.75,176.402,-0.0157363]]], + [32,760.288,[[5999.17,-2002.12,37.2167,237.103,-59.4464],[5938.64,-1900.78,36.7167,235.005,-58.8359],[5877.57,-1800.99,36.2167,232.897,-58.2088],[5815.96,-1702.77,35.7167,230.781,-57.5646],[5751.73,-1602.97,35.2,228.586,-56.8803],[5684.82,-1501.76,34.6667,226.315,-56.1534],[5617.3,-1402.43,34.1333,224.04,-55.4049],[5547.02,-1301.98,33.5833,221.691,-54.6096],[5473.93,-1200.62,33.0167,219.272,-53.7646],[5400.14,-1101.48,32.45,216.857,-52.8925],[5323.47,-1001.75,31.8667,214.378,-51.9656],[5243.84,-901.679,31.2667,211.84,-50.9802],[5161.2,-801.518,30.65,209.248,-49.9323],[5075.48,-701.525,30.0167,206.609,-48.818],[4986.61,-601.977,29.3667,203.93,-47.6326],[4892.22,-500.729,28.6833,201.154,-46.3393],[4794.5,-400.687,27.9833,198.362,-44.9629],[4693.39,-302.171,27.2667,195.566,-43.4979],[4584.02,-201.224,26.5,192.658,-41.8664],[4468.59,-100.858,25.7,189.728,-40.0914],[4346.92,-1.78918,24.8667,186.809,-38.1618],[4213.91,98.8286,23.9667,183.829,-35.9844],[4069.16,199.407,23,180.859,-33.5371],[3909.75,299.72,21.95,177.939,-30.7522],[3732.55,398.728,20.8,175.159,-27.5555],[3523.69,499.053,19.4667,172.557,-23.669],[3265.51,599.447,17.85,170.42,-18.729],[2897.09,699.476,15.6,169.569,-11.5456],[2296.53,760.287,12.0667,173.932,-0.0220182]]], + [33,800.785,[[6003.39,-2002.8,37.7167,237.369,-59.9862],[5943.77,-1900.77,37.2167,235.252,-59.3861],[5883.61,-1800.29,36.7167,233.124,-58.7696],[5822.92,-1701.39,36.2167,230.986,-58.1361],[5759.64,-1600.86,35.7,228.767,-57.4631],[5695.79,-1502.05,35.1833,226.541,-56.7707],[5629.29,-1401.89,34.65,224.238,-56.035],[5560.07,-1300.58,34.1,221.859,-55.2531],[5490.21,-1201.31,33.55,219.478,-54.4467],[5417.57,-1101.2,32.9833,217.027,-53.5896],[5342.07,-1000.46,32.4,214.508,-52.6782],[5265.86,-902.124,31.8167,211.998,-51.7362],[5184.51,-800.803,31.2,209.358,-50.7061],[5102.36,-702.234,30.5833,206.736,-49.6394],[5014.9,-601.358,29.9333,203.998,-48.4739],[4924.29,-501.163,29.2667,201.225,-47.2332],[4830.45,-401.947,28.5833,198.425,-45.9123],[4730.99,-301.737,27.8667,195.546,-44.4716],[4625.76,-201.143,27.1167,192.606,-42.9014],[4514.63,-100.818,26.3333,189.629,-41.1911],[4397.42,-1.45968,25.5167,186.643,-39.3297],[4269.11,99.9007,24.6333,183.57,-37.2246],[4131.82,199.993,23.7,180.525,-34.8956],[3982.76,299.118,22.7,177.526,-32.2808],[3813.92,399.72,21.5833,174.548,-29.2172],[3621.94,499.488,20.3333,171.74,-25.6158],[3390.03,599.94,18.85,169.231,-21.1271],[3086.47,699.551,16.95,167.509,-15.098],[2391.67,799.984,12.7667,170.634,-1.30152],[2326.12,800.783,12.3833,171.44,-0.0421325]]], + [34,841.773,[[6002.38,-2000.72,38.2,237.597,-60.5108],[5945.62,-1901.44,37.7167,235.533,-59.9407],[5886.37,-1800.27,37.2167,233.385,-59.335],[5826.6,-1700.65,36.7167,231.226,-58.7125],[5766.31,-1602.62,36.2167,229.057,-58.0727],[5703.45,-1503.01,35.7,226.807,-57.3927],[5637.97,-1402.02,35.1667,224.477,-56.6699],[5571.9,-1302.9,34.6333,222.141,-55.9252],[5503.14,-1202.69,34.0833,219.729,-55.1335],[5431.64,-1101.6,33.5167,217.243,-54.2916],[5359.46,-1002.72,32.95,214.758,-53.4221],[5282.31,-900.471,32.35,212.134,-52.4704],[5204.41,-800.782,31.75,209.52,-51.4853],[5123.57,-701.026,31.1333,206.848,-50.437],[5039.73,-601.465,30.5,204.125,-49.321],[4952.82,-502.377,29.85,201.358,-48.1326],[4860.52,-401.632,29.1667,198.489,-46.8347],[4764.99,-302.123,28.4667,195.598,-45.4516],[4663.83,-201.945,27.7333,192.633,-43.9427],[4556.91,-101.73,26.9667,189.616,-42.2974],[4441.71,-0.135206,26.15,186.51,-40.4665],[4320.39,99.8711,25.3,183.413,-38.473],[4190.37,199.285,24.4,180.311,-36.2629],[4048.91,298.528,23.4333,177.211,-33.7743],[3890.68,398.833,22.3667,174.108,-30.891],[3709.99,499.936,21.1667,171.076,-27.4798],[3500.75,599.665,19.8,168.297,-23.3922],[3237.97,699.484,18.1167,166.006,-18.0988],[2837.28,799.676,15.6167,165.257,-9.86227],[2350.81,841.772,12.6833,168.963,-0.0213862]]], + [35,883.21,[[6000.06,-2002.8,38.7,237.93,-61.0589],[5944.17,-1902.85,38.2167,235.849,-60.4992],[5885.85,-1800.96,37.7167,233.682,-59.9045],[5827.01,-1700.62,37.2167,231.503,-59.2932],[5767.65,-1601.87,36.7167,229.312,-58.6648],[5705.77,-1501.5,36.2,227.039,-57.9968],[5643.34,-1402.87,35.6833,224.756,-57.3091],[5578.31,-1302.9,35.15,222.393,-56.578],[5510.63,-1201.79,34.6,219.95,-55.8004],[5442.34,-1102.74,34.05,217.504,-54.998],[5371.32,-1002.85,33.4833,214.984,-54.1445],[5297.52,-902.366,32.9,212.393,-53.2361],[5220.89,-801.519,32.3,209.734,-52.2693],[5141.37,-700.56,31.6833,207.014,-51.2399],[5061.07,-602.368,31.0667,204.31,-50.1729],[4975.6,-501.904,30.4167,201.484,-49.006],[4887.05,-402.15,29.75,198.618,-47.7624],[4793.11,-301.04,29.05,195.652,-46.4037],[4695.92,-201.434,28.3333,192.671,-44.9547],[4593.11,-101.497,27.5833,189.623,-43.3731],[4484.54,-1.8838,26.8,186.531,-41.6479],[4367.72,98.6608,25.9667,183.363,-39.728],[4242.4,199.036,25.0833,180.161,-37.5956],[4105.93,299.752,24.1333,176.927,-35.1888],[3957.94,399.095,23.1167,173.742,-32.4822],[3790.62,499.382,21.9833,170.579,-29.3078],[3598.17,599.4,20.7,167.56,-25.5211],[3364.08,699.684,19.1667,164.855,-20.7532],[3046.66,799.687,17.1333,163.011,-14.1004],[2373.46,883.209,12.9833,166.465,-0.0141853]]], + [36,925.044,[[5992.49,-2002.21,39.1833,238.225,-61.592],[5937.48,-1901.61,38.7,236.127,-61.0424],[5881.99,-1802.45,38.2167,234.015,-60.478],[5824.09,-1701.38,37.7167,231.817,-59.8781],[5765.68,-1601.89,37.2167,229.606,-59.2613],[5704.78,-1500.75,36.7,227.309,-58.6055],[5643.34,-1401.34,36.1833,225.002,-57.9304],[5579.34,-1300.56,35.65,222.612,-57.2123],[5514.77,-1201.67,35.1167,220.215,-56.472],[5447.57,-1101.7,34.5667,217.738,-55.6844],[5377.7,-1000.86,34,215.183,-54.8462],[5307.17,-902.25,33.4333,212.629,-53.9799],[5231.8,-800.301,32.8333,209.928,-53.0309],[5155.7,-700.922,32.2333,207.235,-52.0478],[5076.73,-601.498,31.6167,204.481,-51.0005],[4994.85,-502.294,30.9833,201.672,-49.8845],[4907.79,-401.097,30.3167,198.742,-48.6637],[4817.64,-300.857,29.6333,195.776,-47.3615],[4724.34,-201.886,28.9333,192.785,-45.9722],[4623.31,-100.077,28.1833,189.644,-44.4191],[4518.91,-0.598394,27.4167,186.514,-42.7601],[4408.75,98.1812,26.6167,183.352,-40.9495],[4288.03,199.314,25.75,180.065,-38.8941],[4158.77,299.525,24.8333,176.771,-36.6114],[4018.34,399.18,23.85,173.479,-34.037],[3861.51,499.416,22.7667,170.186,-31.0505],[3682.75,599.845,21.55,166.967,-27.5129],[3473.62,699.22,20.15,163.986,-23.2165],[3204.47,799.398,18.3833,161.495,-17.4957],[2760.48,899.762,15.55,160.947,-7.85067],[2394.06,925.043,13.2833,163.945,-0.0213098]]], + [37,967.234,[[5981.6,-2002.45,39.6667,238.552,-62.1292],[5927.47,-1901.2,39.1833,236.439,-61.5898],[5872.87,-1801.38,38.7,234.31,-61.0359],[5817.8,-1702.99,38.2167,232.167,-60.467],[5760.34,-1602.75,37.7167,229.936,-59.862],[5700.43,-1500.83,37.2,227.618,-59.2187],[5639.99,-1400.63,36.6833,225.288,-58.5562],[5579.01,-1302.17,36.1667,222.948,-57.8739],[5515.5,-1202.39,35.6333,220.523,-57.1479],[5449.41,-1101.49,35.0833,218.016,-56.3754],[5382.72,-1002.64,34.5333,215.504,-55.5776],[5311.33,-900.092,33.95,212.838,-54.7028],[5241.33,-802.753,33.3833,210.248,-53.8237],[5166.52,-702.174,32.7833,207.512,-52.86],[5088.9,-601.504,32.1667,204.709,-51.833],[5008.4,-501.006,31.5333,201.846,-50.7381],[4924.96,-400.957,30.8833,198.93,-49.5703],[4838.54,-301.645,30.2167,195.969,-48.3243],[4746.86,-201.018,29.5167,192.901,-46.9613],[4652.03,-101.928,28.8,189.814,-45.5056],[4549.49,-0.393325,28.0333,186.584,-43.8784],[4443.57,98.5049,27.25,183.374,-42.1383],[4329.61,198.26,26.4167,180.079,-40.1985],[4205.08,299.582,25.5167,176.682,-37.9983],[4071.98,399.194,24.5667,173.307,-35.5548],[3925.32,498.847,23.5333,169.922,-32.7549],[3759.78,598.921,22.3833,166.559,-29.4661],[3567.28,699.242,21.0667,163.312,-25.4859],[3331.6,799.341,19.4833,160.392,-20.4231],[2999.09,899.752,17.3,158.413,-13.0484],[2412.56,967.232,13.5833,161.403,-0.0433727]]], + [38,1009.73,[[5965.54,-2000.05,40.1333,238.84,-62.6521],[5914.13,-1901.68,39.6667,236.785,-62.1412],[5860.42,-1801.19,39.1833,234.64,-61.5979],[5806.25,-1702.12,38.7,232.48,-61.0398],[5749.73,-1601.17,38.2,230.23,-60.4463],[5692.71,-1501.8,37.7,227.966,-59.8358],[5633.27,-1400.8,37.1833,225.614,-59.1863],[5573.31,-1301.53,36.6667,223.25,-58.5171],[5510.85,-1200.9,36.1333,220.799,-57.8051],[5447.84,-1102.17,35.6,218.339,-57.0705],[5382.27,-1002.38,35.05,215.796,-56.2884],[5314.1,-901.733,34.4833,213.171,-55.4555],[5243.26,-800.465,33.9,210.468,-54.5681],[5171.77,-701.603,33.3167,207.767,-53.6492],[5097.54,-602.462,32.7167,204.994,-52.6697],[5018.43,-500.656,32.0833,202.079,-51.5965],[4938.55,-401.809,31.45,199.182,-50.4812],[4853.64,-301.005,30.7833,196.157,-49.2598],[4765.73,-201.184,30.1,193.091,-47.9553],[4672.58,-100.362,29.3833,189.922,-46.5277],[4576.26,-1.3543,28.65,186.74,-45.0014],[4472.27,99.6878,27.8667,183.422,-43.2949],[4362.64,199.764,27.05,180.069,-41.4292],[4244.95,299.999,26.1833,176.65,-39.3495],[4118.98,399.225,25.2667,173.216,-37.0352],[3979.82,499.383,24.2667,169.719,-34.374],[3824.66,599.649,23.1667,166.22,-31.2817],[3648.12,699.515,21.9333,162.8,-27.6129],[3437.1,799.642,20.4833,159.566,-23.0431],[3162.44,899.716,18.6333,156.872,-16.8651],[2646.85,999.973,15.2667,156.832,-5.0031],[2426.31,1009.73,13.8667,158.873,-0.0222505]]], + [39,1052.48,[[5947.93,-2002.16,40.6167,239.235,-63.1972],[5897.38,-1903.13,40.15,237.166,-62.6965],[5844.58,-1801.96,39.6667,235.005,-62.1641],[5791.32,-1702.21,39.1833,232.829,-61.617],[5735.75,-1600.54,38.6833,230.561,-61.0352],[5679.68,-1500.44,38.1833,228.278,-60.4365],[5623.13,-1401.93,37.6833,225.98,-59.8204],[5564.19,-1301.84,37.1667,223.594,-59.1648],[5502.79,-1200.36,36.6333,221.117,-58.4669],[5440.85,-1100.76,36.1,218.631,-57.7468],[5376.4,-1000.06,35.55,216.057,-56.9799],[5311.36,-901.431,35,213.478,-56.1874],[5243.74,-802.007,34.4333,210.816,-55.343],[5173.5,-702.019,33.85,208.075,-54.443],[5100.56,-601.708,33.25,205.259,-53.4833],[5024.89,-501.327,32.6333,202.372,-52.4594],[4946.43,-401.14,32,199.421,-51.3667],[4865.11,-301.425,31.35,196.411,-50.2],[4778.77,-200.041,30.6667,193.277,-48.9217],[4691.57,-102.239,29.9833,190.18,-47.5883],[4597.02,-1.32429,29.25,186.909,-46.0934],[4497.12,99.6347,28.4833,183.56,-44.4569],[4391.73,199.958,27.6833,180.158,-42.6656],[4280.72,298.921,26.85,176.733,-40.7059],[4159.43,399.354,25.95,173.195,-38.4785],[4027.55,499.653,24.9833,169.611,-35.9547],[3882.43,599.567,23.9333,166.017,-33.0573],[3718.93,699.37,22.7667,162.445,-29.6482],[3526.78,799.866,21.4167,158.958,-25.4627],[3290.08,899.542,19.7833,155.816,-20.0845],[2941.43,999.887,17.4333,153.714,-11.8762],[2438,1052.48,14.15,156.319,-0.0158527]]], + [40,1095.45,[[5925.13,-2001.72,41.0833,239.589,-63.7282],[5875.44,-1902.08,40.6167,237.506,-63.2374],[5823.53,-1800.26,40.1333,235.331,-62.7155],[5772.99,-1703.3,39.6667,233.214,-62.1979],[5718.37,-1600.9,39.1667,230.929,-61.6279],[5663.27,-1500.06,38.6667,228.628,-61.0413],[5607.69,-1400.81,38.1667,226.31,-60.4376],[5551.63,-1303.17,37.6667,223.979,-59.8161],[5491.31,-1200.81,37.1333,221.479,-59.1326],[5430.44,-1100.34,36.6,218.966,-58.4273],[5369.03,-1001.77,36.0667,216.443,-57.6991],[5305.14,-902.153,35.5167,213.833,-56.9233],[5238.72,-801.699,34.95,211.137,-56.0964],[5169.7,-700.64,34.3667,208.359,-55.2147],[5100.05,-601.997,33.7833,205.58,-54.3009],[5025.73,-500.384,33.1667,202.647,-53.2982],[4950.7,-401.551,32.55,199.722,-52.2564],[4870.86,-300.429,31.9,196.656,-51.1138],[4788.16,-200.017,31.2333,193.533,-49.8926],[4702.54,-100.617,30.55,190.365,-48.5866],[4611.84,-0.254261,29.8333,187.087,-47.1553],[4518.07,98.2625,29.1,183.79,-45.6226],[4416.85,198.757,28.3167,180.348,-43.9061],[4310.16,298.236,27.5,176.863,-42.0259],[4193.45,399.663,26.6167,173.235,-39.8844],[4068.64,499.753,25.6833,169.59,-37.4962],[3933.24,598.791,24.6833,165.936,-34.7913],[3780.02,699.197,23.5667,162.217,-31.5908],[3603.65,799.855,22.3,158.534,-27.734],[3393.68,899.522,20.8167,155.068,-22.9286],[3114.46,999.326,18.8833,152.152,-16.2632],[2447.62,1095.44,14.4333,153.744,-0.0250303]]], + [41,1138.57,[[5898.98,-2002.34,41.55,239.976,-64.2632],[5850.15,-1902.08,41.0833,237.881,-63.7825],[5800.91,-1803.12,40.6167,235.768,-63.289],[5749.47,-1702.01,40.1333,233.56,-62.7641],[5697.6,-1602.33,39.65,231.335,-62.2245],[5643.47,-1500.75,39.15,229.016,-61.6502],[5588.86,-1400.74,38.65,226.68,-61.0591],[5533.79,-1302.33,38.15,224.328,-60.4504],[5476.39,-1202.35,37.6333,221.884,-59.8023],[5416.61,-1100.98,37.1,219.346,-59.1119],[5356.29,-1001.51,36.5667,216.797,-58.3991],[5293.54,-900.95,36.0167,214.157,-57.6395],[5230.22,-802.469,35.4667,211.509,-56.8539],[5162.45,-700.322,34.8833,208.694,-55.991],[5094.06,-600.582,34.3,205.876,-55.0964],[5023.06,-500.538,33.7,202.979,-54.1415],[4949.39,-400.444,33.0833,200.006,-53.1217],[4873.02,-300.567,32.45,196.965,-52.0322],[4793.89,-201.185,31.8,193.86,-50.8674],[4709.87,-100.168,31.1167,190.623,-49.5896],[4622.95,-0.420156,30.4167,187.344,-48.2216],[4530.94,99.9658,29.6833,183.959,-46.7213],[4435.87,198.217,28.9333,180.563,-45.1127],[4333.39,298.023,28.1333,177.03,-43.3106],[4223.29,398.33,27.2833,173.396,-41.2944],[4103.16,499.78,26.3667,169.642,-38.9988],[3974.94,599.084,25.4,165.902,-36.4377],[3831.64,699.365,24.3333,162.083,-33.4414],[3670.45,799.015,23.15,158.287,-29.9085],[3479.09,899.765,21.7667,154.538,-25.5082],[3239.65,999.889,20.0667,151.125,-19.737],[2871.65,1099.94,17.5167,148.921,-10.5084],[2455.14,1138.57,14.7167,151.148,-0.0505385]]], + [42,1181.82,[[5867.64,-2000.48,42,240.322,-64.7852],[5821.39,-1903.21,41.55,238.29,-64.3313],[5771.29,-1800.07,41.0667,236.087,-63.8308],[5722.51,-1701.83,40.6,233.942,-63.3343],[5671.55,-1601.47,40.1167,231.702,-62.806],[5620.16,-1502.56,39.6333,229.443,-62.2627],[5566.54,-1401.79,39.1333,227.089,-61.6844],[5512.46,-1302.6,38.6333,224.719,-61.0888],[5456.09,-1201.81,38.1167,222.252,-60.4545],[5399.23,-1102.76,37.6,219.771,-59.8002],[5340.02,-1002.37,37.0667,217.196,-59.103],[5278.41,-900.861,36.5167,214.528,-58.3599],[5216.24,-801.416,35.9667,211.85,-57.5912],[5151.62,-701.152,35.4,209.081,-56.7712],[5084.48,-600.298,34.8167,206.226,-55.8961],[5016.73,-501.874,34.2333,203.369,-54.9883],[4944.45,-400.504,33.6167,200.35,-53.9912],[4871.48,-301.927,33,197.338,-52.954],[4793.84,-201.089,32.35,194.177,-51.8152],[4713.44,-100.984,31.6833,190.954,-50.5964],[4630.22,-1.91454,31,187.681,-49.2913],[4542.06,98.0825,30.2833,184.289,-47.8587],[4448.85,198.386,29.5333,180.797,-46.2864],[4350.47,298.333,28.75,177.226,-44.5606],[4244.66,399.178,27.9167,173.533,-42.6268],[4131.23,499.808,27.0333,169.758,-40.4625],[4009.98,599.021,26.1,165.958,-38.043],[3876.27,698.642,25.0833,162.078,-35.2484],[3725.23,799.143,23.95,158.127,-31.9348],[3551.71,899.283,22.6667,154.214,-27.9328],[3340.95,999.558,21.1333,150.459,-22.8217],[3053.36,1099.98,19.0833,147.285,-15.5092],[2458.06,1181.82,14.9833,148.557,-0.0304239]]], + [43,1225.13,[[5834.65,-2003.42,42.4667,240.776,-65.3275],[5787.55,-1901.93,42,238.657,-64.8669],[5740.06,-1801.72,41.5333,236.518,-64.394],[5692.16,-1702.82,41.0667,234.36,-63.9084],[5642.14,-1601.77,40.5833,232.105,-63.3915],[5591.68,-1502.17,40.1,229.831,-62.86],[5539.04,-1400.66,39.6,227.46,-62.294],[5485.95,-1300.74,39.1,225.07,-61.7111],[5432.39,-1202.43,38.6,222.664,-61.1106],[5376.58,-1102.55,38.0833,220.16,-60.4707],[5318.46,-1001.3,37.55,217.561,-59.7887],[5259.82,-901.952,37.0167,214.947,-59.0841],[5198.82,-801.53,36.4667,212.24,-58.3325],[5135.4,-700.248,35.9,209.439,-57.5307],[5071.41,-601.215,35.3333,206.631,-56.6997],[5004.94,-501.651,34.75,203.735,-55.8123],[4935.94,-401.799,34.15,200.755,-54.8642],[4864.36,-301.916,33.5333,197.695,-53.8507],[4790.16,-202.269,32.9,194.561,-52.7666],[4711.3,-100.637,32.2333,191.277,-51.5757],[4631.68,-2.39771,31.5667,188.016,-50.3314],[4545.24,99.3699,30.85,184.546,-48.9312],[4455.89,199.325,30.1167,181.043,-47.4281],[4361.51,299.236,29.35,177.446,-45.7769],[4261.98,398.416,28.55,173.78,-43.9627],[4152.97,499.925,27.6833,169.93,-41.8877],[4038.47,598.702,26.7833,166.093,-39.6073],[3911.87,698.775,25.8,162.123,-36.9644],[3770.63,799.385,24.7167,158.068,-33.8654],[3612.01,898.833,23.5167,154.036,-30.2021],[3421.88,999.724,22.1,150.013,-25.5733],[3180.45,1100,20.3333,146.317,-19.3802],[2785.62,1199.81,17.5167,144.053,-8.79373],[2458.93,1225.13,15.25,145.944,-0.0263659]]], + [44,1268.47,[[5794.81,-2000.3,42.9,241.112,-65.8413],[5750.23,-1901.87,42.45,239.058,-65.4066],[5703.61,-1801.05,41.9833,236.908,-64.9439],[5656.6,-1701.53,41.5167,234.737,-64.4688],[5609.2,-1603.32,41.05,232.546,-63.9808],[5559.69,-1503.01,40.5667,230.257,-63.4611],[5508.03,-1400.76,40.0667,227.869,-62.9078],[5455.93,-1300.09,39.5667,225.462,-62.3378],[5403.37,-1201.02,39.0667,223.036,-61.7505],[5348.6,-1100.36,38.55,220.512,-61.1246],[5293.35,-1001.44,38.0333,217.971,-60.4786],[5235.83,-901.209,37.5,215.332,-59.7898],[5177.8,-802.9,36.9667,212.68,-59.0777],[5115.61,-700.587,36.4,209.849,-58.2943],[5052.84,-600.51,35.8333,207.007,-57.4823],[4989.52,-502.703,35.2667,204.158,-56.6401],[4921.85,-401.652,34.6667,201.137,-55.714],[4851.66,-300.523,34.05,198.031,-54.7237],[4780.82,-202.199,33.4333,194.93,-53.6922],[4705.44,-101.643,32.7833,191.671,-52.5584],[4627.39,-1.84258,32.1167,188.346,-51.3434],[4544.64,99.2611,31.4167,184.883,-50.0077],[4459.07,198.801,30.7,181.376,-48.5735],[4368.61,298.605,29.95,177.761,-46.9967],[4273.15,398.007,29.1667,174.059,-45.2625],[4170.5,498.245,28.3333,170.223,-43.3153],[4060.49,598.203,27.45,166.295,-41.1308],[3940.8,698.362,26.5,162.262,-38.6373],[3809.02,798.533,25.4667,158.144,-35.75],[3660.42,899.086,24.3167,153.951,-32.3181],[3487.83,999.836,23,149.749,-28.1072],[3279.08,1099.36,21.4333,145.738,-22.7242],[2984.37,1199.76,19.2667,142.303,-14.7129],[2457.73,1268.46,15.5167,143.308,-0.039527]]], + [45,1311.78,[[5753.24,-2002.13,43.35,241.557,-66.375],[5709.51,-1903.1,42.9,239.493,-65.9501],[5663.78,-1801.65,42.4333,237.332,-65.4979],[5617.65,-1701.5,41.9667,235.149,-65.0334],[5571.15,-1602.65,41.5,232.946,-64.5563],[5522.58,-1501.67,41.0167,230.643,-64.0482],[5473.6,-1402.13,40.5333,228.319,-63.5255],[5422.5,-1300.71,40.0333,225.895,-62.9686],[5370.96,-1200.87,39.5333,223.451,-62.3947],[5318.98,-1102.65,39.0333,220.989,-61.803],[5264.8,-1002.87,38.5167,218.426,-61.1723],[5208.39,-901.732,37.9833,215.764,-60.4996],[5151.49,-802.509,37.45,213.086,-59.804],[5092.29,-702.221,36.9,210.309,-59.0615],[5030.75,-601.088,36.3333,207.436,-58.2688],[4968.66,-502.212,35.7667,204.553,-57.4464],[4902.32,-400.017,35.1667,201.493,-56.5418],[4835.37,-300.429,34.5667,198.428,-55.6008],[4765.93,-200.829,33.95,195.279,-54.5936],[4693.95,-101.487,33.3167,192.051,-53.5149],[4617.46,-0.191693,32.65,188.665,-52.3285],[4540.24,97.694,31.9833,185.3,-51.087],[4456.41,199.063,31.2667,181.714,-49.6879],[4369.78,298.59,30.5333,178.09,-48.1833],[4278.28,398.032,29.7667,174.363,-46.5272],[4179.79,498.698,28.95,170.481,-44.665],[4074.14,599.503,28.0833,166.48,-42.5724],[3961.12,699.267,27.1667,162.413,-40.2227],[3836.36,799.937,26.1667,158.205,-37.4932],[3699.51,899.229,25.0833,153.971,-34.3345],[3541.59,999.7,23.85,149.639,-30.4799],[3355.27,1099.35,22.4167,145.381,-25.6614],[3112.63,1199.49,20.5833,141.39,-19.0134],[2668.33,1299.92,17.3167,139.203,-6.22239],[2452.09,1311.78,15.7667,140.675,-0.00420841]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 36.9923; +_maxRange = 4631.68; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg4.sqf new file mode 100644 index 0000000000..29916e88af --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg4.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg4 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[4899.19,-2001.93,21.55,253.292,-43.3483],[4791.16,-1901.58,20.9667,252.225,-42.3979],[4678.77,-1800.69,20.3667,251.176,-41.4008],[4565.1,-1702.19,19.7667,250.182,-40.3841],[4443.7,-1600.85,19.1333,249.196,-39.2896],[4320.84,-1502.25,18.5,248.28,-38.1735],[4189.92,-1401.46,17.8333,247.397,-36.9754],[4054.01,-1301.38,17.15,246.584,-35.7233],[3912.98,-1202.31,16.45,245.856,-34.4157],[3759.83,-1100.09,15.7,245.202,-32.9877],[3604.52,-1001.99,14.95,244.687,-31.5327],[3436.45,-901.954,14.15,244.3,-29.9523],[3255.14,-800.964,13.3,244.088,-28.243],[3060.02,-700.075,12.4,244.101,-26.4021],[2850.51,-600.436,11.45,244.397,-24.4278],[2618.39,-500.191,10.4167,245.073,-22.2491],[2358.63,-400.176,9.28333,246.266,-19.8292],[2061.73,-300.94,8.01667,248.199,-17.098],[1700.85,-200.948,6.51667,251.366,-13.8449],[1215.99,-100.173,4.56667,257.02,-9.62228],[41.6269,-0.0224686,0.133333,277.128,-0.303702],[4.63171,0.0972759,0,277.902,-0.0336977]]], + [1,1.25163,[[4990.58,-2001.05,22.0333,252.401,-43.5811],[4883.35,-1900.63,21.45,251.296,-42.6308],[4774.91,-1802.44,20.8667,250.238,-41.6617],[4658.97,-1701.1,20.25,249.173,-40.6165],[4541.67,-1602.32,19.6333,248.17,-39.5503],[4416.54,-1501.02,18.9833,247.182,-38.4039],[4286.62,-1400.16,18.3167,246.25,-37.2041],[4151.76,-1300.02,17.6333,245.386,-35.9497],[4011.82,-1200.89,16.9333,244.605,-34.6392],[3863.25,-1100.84,16.2,243.905,-33.2396],[3705.76,-1000.46,15.4333,243.315,-31.7479],[3539.03,-900.385,14.6333,242.862,-30.1619],[3362.73,-801.284,13.8,242.58,-28.4797],[3169.26,-700.247,12.9,242.51,-26.6309],[2961.54,-600.462,11.95,242.716,-24.647],[2731.43,-500.068,10.9167,243.291,-22.4563],[2477.79,-401.298,9.8,244.352,-20.0575],[2179.74,-300.51,8.51667,246.173,-17.2714],[1822.18,-200.355,7.01667,249.181,-13.9932],[1346.1,-100.112,5.08333,254.567,-9.77049],[275.021,-0.050639,0.983333,272.265,-1.0429],[138.227,1.25034,0.483333,275.059,-0.016131]]], + [2,4.75254,[[5083,-2001.63,22.5333,251.553,-43.8518],[4976.61,-1901.04,21.95,250.409,-42.9025],[4869.03,-1802.7,21.3667,249.31,-41.934],[4754,-1701.19,20.75,248.202,-40.8892],[4637.64,-1602.25,20.1333,247.153,-39.8231],[4513.52,-1500.79,19.4833,246.117,-38.6762],[4387.89,-1402.25,18.8333,245.157,-37.5059],[4254.17,-1301.86,18.15,244.236,-36.2506],[4112.1,-1200.16,17.4333,243.376,-34.9072],[3968.13,-1102.17,16.7167,242.631,-33.5369],[3812.01,-1001.52,15.95,241.97,-32.0421],[3646.74,-901.171,15.15,241.443,-30.4519],[3471.99,-801.787,14.3167,241.081,-28.7643],[3280.24,-700.451,13.4167,240.921,-26.9085],[3074.4,-600.355,12.4667,241.031,-24.9157],[2850.12,-501.187,11.45,241.486,-22.7494],[2595.12,-400.512,10.3167,242.436,-20.3006],[2303.77,-300.559,9.05,244.089,-17.5322],[1953.78,-200.758,7.56667,246.877,-14.2658],[1486.88,-100.121,5.65,251.95,-10.0425],[535.29,-0.0789485,1.95,266.948,-2.05876],[270.361,4.75184,0.966667,272.191,-0.00881728]]], + [3,10.5521,[[5173.29,-2000.81,23.0333,250.718,-44.1333],[5067.76,-1900.05,22.45,249.535,-43.1852],[4961.05,-1801.52,21.8667,248.395,-42.2176],[4850.07,-1702.55,21.2667,247.274,-41.202],[4731.56,-1600.71,20.6333,246.149,-40.1076],[4611.64,-1501.63,20,245.09,-38.9904],[4483.87,-1400.33,19.3333,244.052,-37.7898],[4354.52,-1302.17,18.6667,243.099,-36.5643],[4213.68,-1200.18,17.95,242.177,-35.2197],[4070.98,-1101.91,17.2333,241.367,-33.8475],[3916.24,-1000.96,16.4667,240.636,-32.35],[3752.44,-900.303,15.6667,240.033,-30.7559],[3579.26,-800.603,14.8333,239.59,-29.0632],[3392.81,-700.756,13.95,239.342,-27.2354],[3188.92,-600.186,13,239.348,-25.2346],[2966.8,-500.514,11.9833,239.689,-23.0579],[2718.05,-400.694,10.8667,240.492,-20.6316],[2433.52,-301.186,9.61667,241.961,-17.8823],[2087.3,-200.244,8.13333,244.543,-14.5916],[1637.83,-100.371,6.26667,249.192,-10.4419],[790.05,-0.0952269,2.91667,261.853,-3.11545],[400.942,10.5511,1.45,269.301,-0.0120559]]], + [4,18.5981,[[5264.4,-2001.57,23.55,249.933,-44.4524],[5159.77,-1900.54,22.9667,248.709,-43.5063],[5053.98,-1801.76,22.3833,247.527,-42.5404],[4943.95,-1702.51,21.7833,246.361,-41.5263],[4826.47,-1600.4,21.15,245.187,-40.4332],[4707.59,-1501.03,20.5167,244.078,-39.3167],[4584.14,-1401.94,19.8667,243.012,-38.1467],[4452.74,-1300.99,19.1833,241.976,-36.8908],[4316.42,-1201.02,18.4833,241.012,-35.5769],[4171.72,-1100.11,17.75,240.117,-34.1716],[4021.73,-1000.99,17,239.33,-32.7045],[3862.88,-901.947,16.2167,238.659,-31.1412],[3691.39,-801.687,15.3833,238.126,-29.445],[3506.78,-701.246,14.5,237.779,-27.6121],[3304.92,-600.037,13.55,237.674,-25.6042],[3088.67,-501.261,12.55,237.888,-23.454],[2842.55,-400.54,11.4333,238.546,-21.0155],[2561.07,-300.02,10.1833,239.846,-18.2492],[2230.32,-201.008,8.75,242.126,-15.0463],[1794.38,-100.337,6.91667,246.368,-10.9348],[1039.29,-0.20285,3.88333,256.981,-4.21329],[529.882,18.596,1.93333,266.39,-0.0261559]]], + [5,28.8383,[[5353.24,-2001.05,24.0667,249.166,-44.7821],[5252.5,-1902.61,23.5,247.936,-43.8656],[5144.66,-1800.68,22.9,246.677,-42.8745],[5035.6,-1701.15,22.3,245.465,-41.8622],[4922.24,-1601.39,21.6833,244.274,-40.7996],[4804.46,-1501.64,21.05,243.112,-39.6848],[4682.14,-1402.17,20.4,241.99,-38.5162],[4551.96,-1300.81,19.7167,240.893,-37.261],[4416.92,-1200.43,19.0167,239.866,-35.9473],[4276.86,-1101.34,18.3,238.921,-34.5737],[4128.34,-1001.69,17.55,238.058,-33.1059],[3967.67,-900.021,16.75,237.29,-31.5072],[3801.26,-801.235,15.9333,236.68,-29.8416],[3618.5,-700.164,15.05,236.233,-28.0041],[3422.23,-600.003,14.1167,236.019,-26.0251],[3208.26,-500.381,13.1167,236.106,-23.8666],[2968.43,-400.154,12.0167,236.607,-21.4529],[2697.6,-300.937,10.8,237.691,-18.7452],[2370.81,-200.084,9.36667,239.738,-15.5202],[1956.13,-100.25,7.6,243.5,-11.524],[1278.79,-0.114062,4.83333,252.398,-5.31547],[652.705,28.8371,2.4,263.55,-0.0158937]]], + [6,41.2195,[[5442.67,-2002.25,24.6,248.455,-45.1489],[5339.9,-1900.58,24.0167,247.148,-44.2083],[5236.01,-1801.15,23.4333,245.88,-43.2474],[5127.97,-1701.24,22.8333,244.622,-42.2377],[5015.66,-1601.1,22.2167,243.381,-41.1775],[4898.98,-1500.95,21.5833,242.166,-40.0648],[4777.81,-1401.07,20.9333,240.988,-38.8978],[4652.03,-1301.72,20.2667,239.858,-37.6748],[4518.31,-1200.82,19.5667,238.763,-36.3624],[4379.64,-1101.2,18.85,237.748,-34.9894],[4232.59,-1000.98,18.1,236.808,-33.5213],[4076.88,-900.79,17.3167,235.971,-31.9549],[3912.2,-801.285,16.5,235.267,-30.2874],[3734.79,-701.3,15.6333,234.724,-28.4815],[3540.65,-600.19,14.7,234.39,-26.4978],[3332.6,-501.157,13.7167,234.342,-24.3684],[3099.14,-401.114,12.6333,234.675,-21.9817],[2831.52,-300.301,11.4167,235.57,-19.2599],[2520.1,-200.834,10.0333,237.306,-16.1271],[2122.68,-100.383,8.31667,240.609,-12.2118],[1512.91,-0.173667,5.78333,248.025,-6.45778],[773.816,41.2183,2.86667,260.69,-0.0163523]]], + [7,55.6881,[[5529.65,-2002.32,25.1333,247.768,-45.5259],[5427.85,-1900.27,24.55,246.418,-44.5888],[5324.94,-1800.45,23.9667,245.106,-43.6311],[5217.92,-1700.14,23.3667,243.801,-42.6245],[5109.7,-1602.27,22.7667,242.545,-41.5959],[4994.17,-1501.64,22.1333,241.276,-40.4863],[4874.2,-1401.25,21.4833,240.04,-39.322],[4749.67,-1301.37,20.8167,238.848,-38.1012],[4620.46,-1202.3,20.1333,237.712,-36.8221],[4483.22,-1102.02,19.4167,236.623,-35.4507],[4337.7,-1001.12,18.6667,235.603,-33.9835],[4183.62,-900.21,17.8833,234.679,-32.4171],[4024.03,-801.949,17.0833,233.895,-30.7827],[3848.56,-701.052,16.2167,233.244,-28.9746],[3660.02,-600.718,15.3,232.796,-27.0227],[3454.34,-500.508,14.3167,232.611,-24.8875],[3227.17,-400.645,13.25,232.781,-22.5287],[2970.09,-300.827,12.0667,233.457,-19.869],[2666.41,-200.201,10.7,234.925,-16.7552],[2289.76,-100.154,9.05,237.757,-12.9622],[1741.62,-0.48754,6.73333,243.865,-7.6401],[893.137,55.686,3.33333,257.812,-0.0278486]]], + [8,72.1904,[[5614.12,-2001.31,25.6667,247.103,-45.913],[5516.19,-1901.75,25.1,245.75,-45.0067],[5414.3,-1801.46,24.5167,244.394,-44.0532],[5308.34,-1700.67,23.9167,243.041,-43.0506],[5201.21,-1602.31,23.3167,241.734,-42.0256],[5086.84,-1501.16,22.6833,240.41,-40.9195],[4968.07,-1400.24,22.0333,239.116,-39.7583],[4847.9,-1302.29,21.3833,237.893,-38.5709],[4716.9,-1200.18,20.6833,236.661,-37.2631],[4584.25,-1101.61,19.9833,235.526,-35.9255],[4443.49,-1002.21,19.25,234.448,-34.4926],[4291.09,-900.458,18.4667,233.434,-32.9274],[4133.25,-801.329,17.6667,232.555,-31.293],[3963.09,-701.389,16.8167,231.808,-29.5187],[3780.13,-601.715,15.9167,231.245,-27.5999],[3576.9,-500.157,14.9333,230.917,-25.4603],[3355.99,-400.331,13.8833,230.922,-23.1313],[3105.73,-300.047,12.7167,231.394,-20.498],[2817.07,-200.591,11.4,232.561,-17.4816],[2460.94,-100.71,9.81667,234.926,-13.8153],[1960.96,-0.546403,7.66667,239.965,-8.82356],[1006.34,72.1893,3.78333,254.999,-0.0139699]]], + [9,90.6715,[[5698.88,-2002.26,26.2167,246.505,-46.3362],[5601.94,-1902.22,25.65,245.11,-45.4345],[5501.08,-1801.44,25.0667,243.709,-44.4855],[5396.19,-1700.15,24.4667,242.308,-43.4872],[5290.15,-1601.28,23.8667,240.952,-42.4663],[5179.94,-1502.23,23.25,239.609,-41.3934],[5062.42,-1400.68,22.6,238.255,-40.2365],[4943.52,-1302.1,21.95,236.969,-39.0528],[4817.02,-1201.71,21.2667,235.698,-37.7798],[4682.68,-1100.05,20.55,234.46,-36.4134],[4546.61,-1002.15,19.8333,233.329,-35.0154],[4399.13,-901.66,19.0667,232.246,-33.4856],[4243.1,-801.529,18.2667,231.267,-31.8527],[4074.9,-700.519,17.4167,230.411,-30.0783],[3897.44,-601.511,16.5333,229.736,-28.1937],[3700.08,-500.246,15.5667,229.27,-26.0873],[3485.41,-400.323,14.5333,229.11,-23.7898],[3245.5,-300.806,13.4,229.368,-21.223],[2968.06,-201.098,12.1167,230.251,-18.269],[2628.31,-100.448,10.5833,232.195,-14.6949],[2171.13,-0.23765,8.58333,236.31,-10.0062],[1117.7,90.6707,4.23333,252.169,-0.010961]]], + [10,111.077,[[5780.94,-2002.28,26.7667,245.934,-46.7691],[5684.99,-1901.75,26.2,244.497,-45.8723],[5585.17,-1800.46,25.6167,243.051,-44.9281],[5484.27,-1701.44,25.0333,241.642,-43.9625],[5379.35,-1601.98,24.4333,240.235,-42.9467],[5270.31,-1502.31,23.8167,238.838,-41.8786],[5154.06,-1400.11,23.1667,237.424,-40.7263],[5036.44,-1300.87,22.5167,236.076,-39.5469],[4914.37,-1202.21,21.85,234.769,-38.309],[4784.63,-1102.07,21.15,233.484,-36.9787],[4646.98,-1001.01,20.4167,232.244,-35.5518],[4504.35,-901.789,19.6667,231.096,-34.0581],[4350.13,-800.626,18.8667,230.018,-32.4273],[4187.18,-700.46,18.0333,229.068,-30.6889],[4011.86,-600.182,17.15,228.27,-28.8041],[3823.68,-500.93,16.2167,227.679,-26.7687],[3615.22,-400.787,15.2,227.353,-24.5046],[3382.01,-300.545,14.0833,227.407,-21.9685],[3115.56,-200.679,12.8333,228.02,-19.0793],[2795.5,-100.496,11.3667,229.544,-15.6403],[2376.14,-0.210678,9.5,232.848,-11.2258],[1595.85,99.8994,6.18333,242.881,-3.44392],[1227.13,111.076,4.68333,249.322,-0.0191434]]], + [11,133.351,[[5860.29,-2001.43,27.3167,245.392,-47.2112],[5765.34,-1900.39,26.75,243.914,-46.3197],[5669.4,-1801.46,26.1833,242.466,-45.4079],[5569.58,-1701.84,25.6,241.009,-44.4478],[5465.8,-1601.76,25,239.552,-43.4375],[5357.95,-1501.46,24.3833,238.1,-42.3747],[5245.93,-1401.18,23.75,236.664,-41.2574],[5129.63,-1301.19,23.1,235.252,-40.0833],[5008.93,-1201.75,22.4333,233.877,-38.8503],[4880.66,-1100.78,21.7333,232.518,-37.5246],[4747.68,-1001.13,21.0167,231.225,-36.1344],[4606.72,-900.914,20.2667,229.988,-34.6445],[4457.52,-800.77,19.4833,228.833,-33.0509],[4299.78,-701.358,18.6667,227.791,-31.3499],[4129.95,-601.522,17.8,226.881,-29.5026],[3944.19,-500.633,16.8667,226.145,-27.4674],[3741.84,-400.291,15.8667,225.658,-25.2382],[3518.68,-300.801,14.7833,225.514,-22.7728],[3263.08,-200.709,13.5667,225.863,-19.9512],[2958.67,-100.012,12.15,227.007,-16.6124],[2575.97,-0.572262,10.4167,229.58,-12.4814],[1964.11,99.6634,7.75,236.299,-6.12779],[1330.48,133.351,5.11667,246.537,-0.000854537]]], + [12,157.44,[[5939.61,-2002.81,27.8833,244.925,-47.6882],[5845.7,-1901.18,27.3167,243.405,-46.8028],[5750.8,-1801.66,26.75,241.913,-45.8971],[5652.08,-1701.42,26.1667,240.41,-44.943],[5549.44,-1600.71,25.5667,238.902,-43.9386],[5445.68,-1502.44,24.9667,237.436,-42.9104],[5334.93,-1401.41,24.3333,235.941,-41.7993],[5219.95,-1300.64,23.6833,234.466,-40.6311],[5100.63,-1200.39,23.0167,233.023,-39.4037],[4976.87,-1100.96,22.3333,231.623,-38.1149],[4845.47,-1000.34,21.6167,230.248,-36.73],[4709.29,-901.316,20.8833,228.95,-35.278],[4561.91,-800.004,20.1,227.696,-33.6889],[4409.31,-701.367,19.3,226.567,-32.0262],[4241.62,-600.105,18.4333,225.532,-30.1814],[4064.83,-501.204,17.5333,224.682,-28.2201],[3868.54,-400.555,16.55,224.036,-26.028],[3651.88,-300.278,15.4833,223.696,-23.5975],[3406.9,-200.073,14.3,223.796,-20.846],[3121.33,-100.229,12.95,224.571,-17.6507],[2766.93,-0.53125,11.3167,226.533,-13.7321],[2250.68,99.5252,9.01667,231.371,-8.18676],[1435.92,157.437,5.56667,243.659,-0.0319954]]], + [13,183.286,[[6013.29,-2000.45,28.4333,244.445,-48.1483],[5923.15,-1901.25,27.8833,242.929,-47.2951],[5829.31,-1801.11,27.3167,241.394,-46.3957],[5731.69,-1700.25,26.7333,239.844,-45.448],[5633.03,-1601.66,26.15,238.329,-44.4779],[5530.46,-1502.66,25.55,236.81,-43.4565],[5420.99,-1400.86,24.9167,235.256,-42.352],[5310.27,-1301.85,24.2833,233.757,-41.2204],[5192.38,-1200.7,23.6167,232.244,-39.9999],[5070.09,-1100.33,22.9333,230.77,-38.7174],[4943.3,-1001.04,22.2333,229.347,-37.3709],[4808.8,-900.908,21.5,227.96,-35.925],[4666.35,-800.532,20.7333,226.633,-34.3752],[4515.7,-700.561,19.9333,225.395,-32.7174],[4356.57,-601.683,19.1,224.277,-30.9479],[4182.15,-501.017,18.2,223.283,-28.9899],[3991.83,-400.092,17.2333,222.484,-26.8362],[3784.92,-300.594,16.2,221.962,-24.4807],[3550.38,-200.237,15.05,221.82,-21.8024],[3279.74,-100.212,13.75,222.261,-18.7155],[2952.79,-0.951608,12.2167,223.672,-15.0165],[2498.43,99.9111,10.15,227.238,-9.98528],[1535.22,183.284,6,240.842,-0.0364613]]], + [14,210.835,[[6086.8,-2000.48,29,244.043,-48.6423],[5997.67,-1900.68,28.45,242.488,-47.7958],[5907.64,-1802.84,27.9,240.956,-46.9297],[5811.16,-1701.26,27.3167,239.359,-45.9895],[5713.65,-1601.94,26.7333,237.794,-45.0266],[5612.28,-1502.2,26.1333,236.223,-44.0123],[5506.95,-1402.26,25.5167,234.652,-42.9443],[5397.56,-1302.38,24.8833,233.091,-41.8203],[5281.09,-1200.3,24.2167,231.51,-40.6072],[5163.25,-1101.41,23.55,229.999,-39.3633],[5038.03,-1001.04,22.85,228.496,-38.0241],[4908.25,-902.026,22.1333,227.052,-36.618],[4767.63,-800.355,21.3667,225.626,-35.0752],[4622.03,-701.082,20.5833,224.305,-33.4581],[4465,-600.663,19.75,223.064,-31.6939],[4296.11,-500.154,18.8667,221.951,-29.7763],[4114.92,-400.7,17.9333,221.019,-27.6999],[3914.29,-300.384,16.9167,220.315,-25.3836],[3689.97,-200.008,15.8,219.946,-22.7809],[3433.86,-100.062,14.55,220.079,-19.8059],[3130,-0.905095,13.1,221.015,-16.2926],[2727.79,99.5413,11.2333,223.57,-11.7124],[1976.93,199.938,7.9,232.317,-3.55681],[1628.48,210.834,6.41667,238.082,-0.0132731]]], + [15,240.03,[[6159.96,-2003.02,29.5833,243.725,-49.1696],[6071.88,-1902.53,29.0333,242.129,-48.3308],[5980.2,-1801.06,28.4667,240.508,-47.4459],[5887.57,-1701.69,27.9,238.912,-46.5399],[5791.22,-1601.64,27.3167,237.299,-45.5846],[5691.05,-1501.13,26.7167,235.675,-44.5779],[5586.97,-1400.4,26.1,234.049,-43.5175],[5481.75,-1302.3,25.4833,232.469,-42.4305],[5369.6,-1201.81,24.8333,230.861,-41.256],[5253.24,-1101.88,24.1667,229.277,-40.0204],[5129.6,-1000.41,23.4667,227.694,-38.6892],[5001.46,-900.259,22.75,226.164,-37.2906],[4868.69,-801.744,22.0167,224.705,-35.8223],[4725.04,-701.009,21.2333,223.276,-34.2128],[4573.23,-601.006,20.4167,221.939,-32.4907],[4409.82,-500.574,19.55,220.708,-30.6155],[4234.39,-400.827,18.6333,219.635,-28.5812],[4043.2,-301.356,17.65,218.768,-26.3443],[3828.93,-200.951,16.5667,218.182,-23.8204],[3587.06,-101.178,15.3667,218.024,-20.9614],[3298.74,-0.296389,13.9667,218.548,-17.5586],[2939.52,99.2027,12.2667,220.303,-13.3613],[2381.14,199.69,9.71667,225.461,-7.02911],[1719.67,240.03,6.83333,235.306,-0.0012178]]], + [16,270.815,[[6227.38,-2002.01,30.15,243.394,-49.6794],[6140.33,-1900.89,29.6,241.76,-48.848],[6052.4,-1801.72,29.05,240.145,-47.9968],[5960.88,-1701.62,28.4833,238.504,-47.0987],[5865.69,-1600.81,27.9,236.844,-46.1516],[5769.49,-1502.29,27.3167,235.215,-45.181],[5666.7,-1400.67,26.7,233.531,-44.1293],[5562.78,-1301.69,26.0833,231.893,-43.0508],[5452.02,-1200.25,25.4333,230.219,-41.8847],[5340,-1101.82,24.7833,228.605,-40.6884],[5220.86,-1001.63,24.1,226.981,-39.3979],[5094.4,-900.227,23.3833,225.365,-38.0083],[4963.39,-800.422,22.65,223.812,-36.5484],[4824.66,-700.421,21.8833,222.309,-34.9812],[4677.98,-600.872,21.0833,220.882,-33.3021],[4519.96,-500.557,20.2333,219.541,-31.4704],[4350.2,-400.563,19.3333,218.333,-29.4794],[4165.02,-300.408,18.3667,217.302,-27.2852],[3960.5,-200.268,17.3167,216.521,-24.8415],[3732.43,-101.115,16.1667,216.106,-22.101],[3462.56,-0.198516,14.8333,216.252,-18.8537],[3134.33,99.6133,13.25,217.378,-14.9261],[2671.04,199.991,11.0833,220.755,-9.49135],[1808.74,270.815,7.25,232.514,-0.000615617]]], + [17,303.134,[[6291.7,-2000.58,30.7167,243.099,-50.1967],[6208.31,-1901.85,30.1833,241.477,-49.3983],[6121.45,-1801.97,29.6333,239.822,-48.5553],[6031.05,-1701.12,29.0667,238.137,-47.6657],[5939.72,-1602.4,28.5,236.478,-46.7541],[5842,-1500.23,27.9,234.751,-45.7648],[5743.23,-1400.51,27.3,233.06,-44.7501],[5640.62,-1300.61,26.6833,231.362,-43.6806],[5534.08,-1200.79,26.05,229.668,-42.5536],[5423.5,-1101.3,25.4,227.985,-41.3667],[5308.79,-1002.42,24.7333,226.325,-40.1172],[5186.93,-902.095,24.0333,224.661,-38.7701],[5057.69,-800.885,23.3,223.014,-37.3203],[4923.85,-701.559,22.55,221.44,-35.797],[4779.22,-600.345,21.75,219.896,-34.1274],[4626.49,-500.189,20.9167,218.45,-32.3402],[4465.41,-401.826,20.05,217.139,-30.4312],[4286.17,-300.909,19.1,215.947,-28.2824],[4091.24,-201.043,18.0833,214.98,-25.9219],[3873.39,-101.216,16.9667,214.321,-23.2635],[3621.44,-0.717387,15.7,214.128,-20.1764],[3319.73,99.3951,14.2167,214.718,-16.4856],[2918.92,199.965,12.3,216.909,-11.6429],[2078.12,299.906,8.46667,226.686,-1.98184],[1895.65,303.133,7.66667,229.707,-0.0118559]]], + [18,336.929,[[6355.43,-2001.93,31.3,242.892,-50.7458],[6273.07,-1902.5,30.7667,241.233,-49.9557],[6187.29,-1801.87,30.2167,239.538,-49.1214],[6098.01,-1700.26,29.65,237.811,-48.2406],[6007.82,-1600.77,29.0833,236.107,-47.3377],[5914.01,-1500.6,28.5,234.379,-46.3849],[5819.22,-1402.75,27.9167,232.682,-45.4081],[5717.95,-1301.85,27.3,230.926,-44.3488],[5612.8,-1200.98,26.6667,229.168,-43.2321],[5503.67,-1100.42,26.0167,227.417,-42.0552],[5390.47,-1000.42,25.35,225.684,-40.8155],[5273.09,-901.289,24.6667,223.979,-39.5103],[5148.51,-801.026,23.95,222.279,-38.1039],[5016.52,-700.224,23.2,220.604,-36.5909],[4879.87,-601.604,22.4333,219.013,-35.0012],[4732.38,-501.547,21.6167,217.467,-33.2605],[4573.68,-401.084,20.75,216.009,-31.3614],[4403.35,-301.338,19.8333,214.69,-29.2967],[4214.62,-200.288,18.8333,213.539,-26.9823],[4006.68,-100.118,17.75,212.659,-24.4079],[3772.06,-0.662623,16.55,212.173,-21.4842],[3492.56,99.7785,15.15,212.313,-17.9949],[3141.13,199.488,13.4333,213.621,-13.6355],[2589.85,299.81,10.8333,218.229,-6.97326],[1980.32,336.926,8.08333,226.887,-0.0353301]]], + [19,372.145,[[6415.9,-2003.04,31.8833,242.725,-51.3013],[6334.58,-1902.88,31.35,241.03,-50.52],[6249.88,-1801.5,30.8,239.296,-49.6947],[6164.34,-1702.09,30.25,237.578,-48.8489],[6075.3,-1601.75,29.6833,235.829,-47.9558],[5982.71,-1500.7,29.1,234.052,-47.013],[5889.15,-1401.95,28.5167,232.304,-46.0459],[5789.19,-1300.1,27.9,230.492,-44.9967],[5688.15,-1200.89,27.2833,228.72,-43.9195],[5583.25,-1101.8,26.65,226.948,-42.7836],[5471.59,-1000.59,25.9833,225.14,-41.5553],[5355.81,-900.197,25.3,223.356,-40.2612],[5235.81,-800.922,24.6,221.608,-38.8986],[5108.57,-700.845,23.8667,219.872,-37.4308],[4973.87,-600.579,23.1,218.172,-35.8526],[4831.49,-500.776,22.3,216.535,-34.1584],[4678.14,-400.214,21.45,214.965,-32.3065],[4516.51,-301.783,20.5667,213.535,-30.3272],[4336.97,-201.279,19.6,212.227,-28.0999],[4138.76,-100.795,18.55,211.14,-25.6131],[3917.81,-1.30358,17.4,210.384,-22.8165],[3656.51,99.9528,16.0667,210.13,-19.4927],[3342.31,199.164,14.5,210.765,-15.5021],[2898.1,299.62,12.35,213.442,-9.94324],[2058.97,372.143,8.48333,224.118,-0.029625]]], + [20,408.725,[[6470.56,-2000.8,32.45,242.542,-51.8392],[6392.78,-1903.09,31.9333,240.867,-51.0909],[6309.17,-1800.94,31.3833,239.094,-50.2749],[6224.72,-1700.76,30.8333,237.337,-49.4385],[6139.43,-1602.56,30.2833,235.596,-48.5812],[6048.05,-1500.6,29.7,233.772,-47.6487],[5955.72,-1400.94,29.1167,231.974,-46.6917],[5859.76,-1300.86,28.5167,230.156,-45.6816],[5760.08,-1200.61,27.9,228.325,-44.6155],[5656.6,-1100.42,27.2667,226.488,-43.4908],[5549.21,-1000.58,26.6167,224.656,-42.3046],[5437.83,-901.345,25.95,222.838,-41.0541],[5319.52,-800.661,25.25,221.003,-39.7039],[5196.95,-701.357,24.5333,219.212,-38.2819],[5067.11,-601.587,23.7833,217.442,-36.7508],[4929.77,-501.986,23,215.719,-35.105],[4781.72,-401.268,22.1667,214.04,-33.3026],[4622.59,-300.498,21.2833,212.452,-31.3354],[4451.97,-200.832,20.35,211.009,-29.1958],[4263.19,-100.36,19.3333,209.738,-26.7979],[4055.48,-1.32323,18.2333,208.749,-24.1305],[3815.01,98.7884,16.9833,208.157,-21.0187],[3526.74,199.043,15.5167,208.254,-17.2786],[3146.64,299.861,13.6333,209.755,-12.382],[2423.59,399.995,10.2,216.931,-3.41179],[2135.38,408.723,8.88333,221.335,-0.0359306]]], + [21,446.612,[[6524.41,-2001.63,33.0333,242.454,-52.407],[6445.15,-1900.04,32.5,240.69,-51.6437],[6365.11,-1800.26,31.9667,238.935,-50.8615],[6284.3,-1702.31,31.4333,237.192,-50.0601],[6197.59,-1600.28,30.8667,235.356,-49.187],[6109.99,-1500.38,30.3,233.539,-48.2913],[6021.51,-1402.63,29.7333,231.745,-47.3725],[5926.86,-1301.52,29.1333,229.873,-46.3739],[5828.54,-1200.2,28.5167,227.983,-45.3195],[5729.18,-1101.53,27.9,226.133,-44.2362],[5623.29,-1000.46,27.25,224.231,-43.0626],[5516.23,-902.436,26.6,222.384,-41.8559],[5399.62,-800.321,25.9,220.464,-40.519],[5281.63,-701.837,25.2,218.624,-39.1431],[5153.69,-600.409,24.45,216.75,-37.6256],[5021.26,-501.165,23.6833,214.951,-36.028],[4878.37,-400.458,22.8667,213.175,-34.2751],[4727.63,-301.214,22.0167,211.498,-32.3957],[4562.74,-200.658,21.1,209.904,-30.3078],[4383.17,-100.379,20.1167,208.466,-28.0008],[4185.21,-0.636133,19.05,207.255,-25.4248],[3961.67,98.8145,17.8667,206.378,-22.4863],[3695.04,199.84,16.4833,206.032,-18.9599],[3366.06,299.257,14.8167,206.686,-14.6138],[2866.56,399.88,12.3667,209.992,-8.13113],[2205.86,446.611,9.26667,218.597,-0.0118071]]], + [22,485.748,[[6574.83,-2002.44,33.6167,242.405,-52.9805],[6496.62,-1900.08,33.0833,240.607,-52.2269],[6420.13,-1802.64,32.5667,238.873,-51.4789],[6337.91,-1700.8,32.0167,237.038,-50.6628],[6254.87,-1600.92,31.4667,235.215,-49.8257],[6168.47,-1500.11,30.9,233.354,-48.9409],[6081.19,-1401.45,30.3333,231.513,-48.0329],[5990.43,-1302.17,29.75,229.642,-47.0735],[5896.11,-1202.49,29.15,227.747,-46.0599],[5798.15,-1102.65,28.5333,225.836,-44.9895],[5693.77,-1000.34,27.8833,223.866,-43.8291],[5588.23,-901.051,27.2333,221.947,-42.6352],[5478.78,-802.415,26.5667,220.039,-41.3756],[5359.76,-700.04,25.85,218.064,-39.9814],[5239.32,-601.513,25.1333,216.176,-38.5453],[5108.9,-500.434,24.3667,214.264,-36.9627],[4973.95,-401.841,23.5833,212.437,-35.2962],[4825.58,-300.294,22.7333,210.613,-33.4322],[4669.25,-200.856,21.85,208.912,-31.4349],[4498.66,-100.953,20.9,207.325,-29.2208],[4310.18,-0.709636,19.8667,205.913,-26.7388],[4099.95,98.9641,18.7333,204.777,-23.9355],[3854.19,199.812,17.4333,204.057,-20.6283],[3557.91,299.852,15.9,204.09,-16.6265],[3157.36,399.477,13.8833,205.733,-11.2569],[2277.68,485.745,9.66667,215.785,-0.0428521]]], + [23,526.078,[[6619.43,-2000.05,34.1833,242.34,-53.5363],[6544.67,-1900.16,33.6667,240.567,-52.8156],[6469.21,-1801.95,33.15,238.8,-52.0773],[6390.57,-1702.37,32.6167,236.983,-51.2963],[6308.68,-1601.61,32.0667,235.121,-50.4702],[6225.98,-1502.84,31.5167,233.273,-49.6228],[6137.38,-1400.28,30.9333,231.33,-48.7001],[6047.88,-1300.03,30.35,229.41,-47.7522],[5957.46,-1202.1,29.7667,227.516,-46.7785],[5860.88,-1101.16,29.15,225.546,-45.7208],[5760.63,-1000.27,28.5167,223.561,-44.6033],[5659.29,-902.249,27.8833,221.623,-43.4537],[5551.45,-802.21,27.2167,219.637,-42.2085],[5436.92,-700.685,26.5167,217.621,-40.8618],[5318.29,-600.529,25.8,215.638,-39.4409],[5195.45,-502.067,25.0667,213.703,-37.9426],[5062.61,-401.454,24.2833,211.754,-36.2927],[4922.33,-301.654,23.4667,209.863,-34.5183],[4771.45,-201.518,22.6,208.034,-32.5757],[4606.65,-100.436,21.6667,206.286,-30.4169],[4427.38,-0.0383371,20.6667,204.697,-28.0302],[4230.02,99.3397,19.5833,203.34,-25.3643],[4004.39,199.098,18.3667,202.312,-22.2804],[3736.31,299.14,16.95,201.843,-18.5883],[3390.48,399.856,15.1667,202.479,-13.8269],[2824.56,499.9,12.35,206.582,-6.19926],[2343.57,526.076,10.05,213.018,-0.0432211]]], + [24,567.546,[[6662.95,-2001.01,34.7667,242.372,-54.1201],[6589.22,-1900.35,34.25,240.568,-53.4094],[6514.79,-1801.37,33.7333,238.768,-52.6812],[6437.23,-1700.98,33.2,236.917,-51.9106],[6358.91,-1602.42,32.6667,235.074,-51.1203],[6277.38,-1502.74,32.1167,233.185,-50.2843],[6192.53,-1402.13,31.55,231.254,-49.4],[6104.31,-1300.83,30.9667,229.285,-48.4649],[6015.19,-1201.84,30.3833,227.339,-47.5039],[5922.58,-1102.49,29.7833,225.366,-46.488],[5823.79,-1000.35,29.15,223.318,-45.3848],[5723.94,-901.067,28.5167,221.313,-44.2492],[5620.34,-802.181,27.8667,219.304,-43.0496],[5510.23,-701.559,27.1833,217.252,-41.7506],[5396.13,-602.077,26.4833,215.223,-40.3791],[5275.2,-501.817,25.75,213.185,-38.8976],[5147.22,-401.396,24.9833,211.161,-37.2998],[5012,-301.471,24.1833,209.179,-35.579],[4866.43,-200.826,23.3333,207.233,-33.6914],[4710.17,-100.563,22.4333,205.372,-31.6275],[4539.88,-0.211619,21.4667,203.626,-29.3382],[4355.01,98.5155,20.4333,202.078,-26.8124],[4142.74,199.181,19.2667,200.766,-23.8706],[3895.48,299.931,17.9333,199.891,-20.4058],[3595.3,399.34,16.35,199.806,-16.1779],[3169.37,499.45,14.1667,201.569,-10.2231],[2403.6,567.545,10.4167,210.292,-0.011681]]], + [25,610.092,[[6702.94,-2002.18,35.35,242.446,-54.7088],[6630.24,-1900.74,34.8333,240.612,-54.0084],[6556.85,-1800.97,34.3167,238.781,-53.2904],[6482.77,-1702.89,33.8,236.954,-52.5546],[6403.15,-1600.36,33.25,235.017,-51.751],[6325.19,-1502.83,32.7167,233.146,-50.9514],[6241.56,-1401.26,32.15,231.172,-50.0792],[6157.09,-1301.85,31.5833,229.214,-49.1833],[6069.26,-1201.78,31,227.218,-48.2355],[5978,-1101.31,30.4,225.19,-47.2331],[5883.22,-1000.66,29.7833,223.137,-46.173],[5784.85,-900.096,29.15,221.066,-45.0521],[5685.43,-802.415,28.5167,219.039,-43.8981],[5576.98,-700.3,27.8333,216.907,-42.6152],[5467.3,-601.637,27.15,214.84,-41.2924],[5350.96,-501.923,26.4333,212.751,-39.8617],[5227.75,-401.755,25.6833,210.66,-38.3166],[5097.49,-301.774,24.9,208.594,-36.6503],[4957.12,-200.692,24.0667,206.541,-34.819],[4809.19,-101.432,23.2,204.584,-32.851],[4647.64,-1.33093,22.2667,202.699,-30.661],[4469.01,99.5574,21.25,200.937,-28.1954],[4272.59,198.978,20.15,199.409,-25.4394],[4045.39,299.444,18.9,198.199,-22.2069],[3776.44,398.974,17.45,197.571,-18.3439],[3421.48,499.572,15.5833,198.119,-13.2405],[2758.87,599.782,12.2333,203.401,-3.95653],[2464.8,610.089,10.8,207.495,-0.0372004]]], + [26,653.66,[[6737.03,-2000.31,35.9167,242.501,-55.2797],[6667.67,-1901.39,35.4167,240.699,-54.6117],[6595.32,-1800.82,34.9,238.837,-53.9044],[6522.29,-1701.93,34.3833,236.978,-53.1793],[6446.19,-1601.64,33.85,235.064,-52.4115],[6366.96,-1500.15,33.3,233.097,-51.5987],[6286.94,-1400.64,32.75,231.141,-50.7641],[6203.7,-1300.24,32.1833,229.138,-49.8807],[6119.63,-1202,31.6167,227.152,-48.9729],[6029.72,-1100.39,31.0167,225.072,-47.9844],[5938.88,-1001.28,30.4167,223.017,-46.9673],[5844.55,-902.066,29.8,220.939,-45.8914],[5744.06,-800.43,29.15,218.788,-44.723],[5642.49,-701.858,28.5,216.686,-43.5188],[5534.53,-601.583,27.8167,214.534,-42.2135],[5420.01,-500.16,27.1,212.351,-40.8006],[5301.45,-400.406,26.3667,210.204,-39.3077],[5176,-300.537,25.6,208.064,-37.6956],[5043.48,-201.214,24.8,205.959,-35.9573],[4900.85,-101.239,23.95,203.882,-34.0479],[4747.78,-1.71774,23.05,201.881,-31.9573],[4578.1,99.4482,22.0667,199.954,-29.5943],[4394.11,198.599,21.0167,198.226,-26.9845],[4183.24,299.16,19.8333,196.732,-23.9441],[3938.08,399.138,18.4833,195.675,-20.3627],[3631.7,499.53,16.8333,195.422,-15.855],[3182.19,599.99,14.4833,197.257,-9.28662],[2520.16,653.658,11.1667,204.738,-0.0305884]]], + [27,698.195,[[6769.85,-2002.09,36.5,242.656,-55.8767],[6701.48,-1902.39,36,240.827,-55.2192],[6630.18,-1801,35.4833,238.936,-54.5228],[6558.21,-1701.28,34.9667,237.046,-53.8086],[6483.21,-1600.13,34.4333,235.098,-53.0522],[6407.5,-1500.82,33.9,233.155,-52.2759],[6328.66,-1400.35,33.35,231.159,-51.4538],[6249.07,-1301.9,32.8,229.174,-50.6094],[6166.26,-1202.59,32.2333,227.143,-49.7154],[6080.17,-1102.64,31.65,225.069,-48.7689],[5990.72,-1002.3,31.05,222.96,-47.7671],[5897.84,-901.802,30.4333,220.821,-46.7068],[5801.44,-801.405,29.8,218.66,-45.5847],[5701.45,-701.377,29.15,216.485,-44.3975],[5597.78,-601.998,28.4833,214.306,-43.1416],[5487.71,-501.202,27.7833,212.083,-41.7805],[5373.73,-401.832,27.0667,209.884,-40.3413],[5253.05,-302.045,26.3167,207.677,-38.7852],[5122.75,-200.418,25.5167,205.441,-37.0684],[4988.04,-101.874,24.7,203.299,-35.2555],[4840.42,-1.29431,23.8167,201.162,-33.2264],[4679.42,99.7978,22.8667,199.094,-30.9665],[4504.54,199.723,21.85,197.175,-28.4622],[4309.38,299.463,20.7333,195.457,-25.615],[4084.06,399.679,19.4667,194.054,-22.2745],[3814.81,499.223,17.9833,193.229,-18.2355],[3454.96,599.436,16.05,193.626,-12.822],[2573.14,698.193,11.5333,201.966,-0.0368275]]], + [28,743.638,[[6796.77,-2000.92,37.0667,242.791,-56.4561],[6729.39,-1900.48,36.5667,240.937,-55.8088],[6661.39,-1801.58,36.0667,239.079,-55.1453],[6590.48,-1701.03,35.55,237.16,-54.4424],[6518.9,-1602.17,35.0333,235.241,-53.7214],[6444.32,-1501.92,34.5,233.263,-52.9575],[6366.67,-1400.47,33.95,231.229,-52.1484],[6288.27,-1301.03,33.4,229.204,-51.3169],[6206.7,-1200.69,32.8333,227.128,-50.4364],[6124.34,-1102.53,32.2667,225.068,-49.5308],[6036.25,-1001.01,31.6667,222.906,-48.5441],[5947.27,-902.001,31.0667,220.768,-47.5278],[5852.38,-800.259,30.4333,218.543,-46.4223],[5756.48,-701.399,29.8,216.356,-45.2824],[5654.45,-600.492,29.1333,214.101,-44.0445],[5548.72,-500.472,28.45,211.846,-42.7343],[5439.2,-401.644,27.75,209.604,-41.348],[5323.15,-302.107,27.0167,207.339,-39.8472],[5197.7,-200.37,26.2333,205.026,-38.1885],[5068,-101.432,25.4333,202.791,-36.435],[4928.43,-1.89062,24.5833,200.573,-34.5062],[4775.88,98.9135,23.6667,198.384,-32.3511],[4609.89,199.376,22.6833,196.297,-29.9547],[4427.05,299.222,21.6167,194.371,-27.2606],[4217.9,399.986,20.4167,192.673,-24.1204],[3975.19,499.551,19.05,191.41,-20.4192],[3669.55,599.463,17.3667,190.947,-15.7142],[3204.83,699.813,14.8833,192.727,-8.59825],[2620.38,743.637,11.8833,199.229,-0.00942054]]], + [29,789.934,[[6820.03,-2000.22,37.6333,242.967,-57.0396],[6755.86,-1902.37,37.15,241.15,-56.4241],[6688.88,-1802.66,36.65,239.267,-55.7717],[6619.03,-1701.26,36.1333,237.319,-55.0803],[6548.53,-1601.54,35.6167,235.369,-54.3709],[6475.07,-1500.39,35.0833,233.358,-53.6192],[6400.91,-1401.09,34.55,231.351,-52.8472],[6323.7,-1300.64,34,229.286,-52.0292],[6245.75,-1202.21,33.45,227.23,-51.1883],[6162.27,-1100.04,32.8667,225.062,-50.2708],[6077.95,-1000.21,32.2833,222.911,-49.3262],[5992.79,-902.748,31.7,220.78,-48.3537],[5901.87,-802.32,31.0833,218.553,-47.2946],[5807.51,-702.006,30.45,216.299,-46.1728],[5709.64,-602.076,29.8,214.027,-44.9847],[5605.64,-500.371,29.1167,211.689,-43.6945],[5500.49,-402.15,28.4333,209.412,-42.3614],[5386.37,-300.673,27.7,207.045,-40.882],[5268.29,-201.162,26.95,204.716,-39.3162],[5143.49,-101.909,26.1667,202.397,-37.6231],[5009.06,-1.65205,25.3333,200.07,-35.7571],[4864.71,98.5277,24.45,197.783,-33.7064],[4707.3,199.159,23.5,195.552,-31.4186],[4536.38,298.555,22.4833,193.458,-28.8787],[4342.82,399.073,21.35,191.522,-25.9414],[4119.76,499.564,20.0667,189.894,-22.4924],[3850.77,599.702,18.55,188.831,-18.2728],[3490.1,699.486,16.5667,189.012,-12.5839],[2668.53,789.931,12.25,196.426,-0.0422795]]], + [30,837.026,[[6839.6,-2000.04,38.2,243.183,-57.6268],[6776.4,-1901.45,37.7167,241.343,-57.0216],[6710.42,-1800.97,37.2167,239.434,-56.3799],[6643.84,-1702.03,36.7167,237.522,-55.722],[6574.42,-1601.43,36.2,235.543,-55.0245],[6504.34,-1502.54,35.6833,233.564,-54.3086],[6431.34,-1402.26,35.15,231.522,-53.5498],[6355.33,-1300.8,34.6,229.42,-52.7456],[6278.59,-1201.34,34.05,227.324,-51.9186],[6198.76,-1101,33.4833,225.175,-51.0421],[6118.16,-1002.84,32.9167,223.038,-50.1401],[6031.96,-901.336,32.3167,220.793,-49.1563],[5944.9,-802.351,31.7167,218.57,-48.1424],[5852.06,-700.645,31.0833,216.253,-47.0384],[5758.25,-601.831,30.45,213.971,-45.899],[5658.45,-500.986,29.7833,211.613,-44.6602],[5555.05,-401.043,29.1,209.251,-43.3477],[5445.39,-300.003,28.3833,206.841,-41.9237],[5331.9,-200.675,27.65,204.457,-40.4154],[5211.86,-101.29,26.8833,202.064,-38.7823],[5082.44,-0.511673,26.0667,199.643,-36.9789],[4946.02,98.7197,25.2167,197.279,-35.0319],[4796.94,199.162,24.3,194.93,-32.8528],[4634.77,299.205,23.3167,192.669,-30.4252],[4456.2,398.559,22.25,190.555,-27.6907],[4251.98,498.726,21.05,188.646,-24.4964],[4009.27,599.759,19.65,187.119,-20.6292],[3705,699.877,17.9333,186.399,-15.7204],[3232.96,799.828,15.35,188.005,-8.12754],[2710.95,837.024,12.6,193.657,-0.0412445]]], + [31,884.856,[[6855.45,-2000.48,38.7667,243.439,-58.2174],[6793.21,-1901.14,38.2833,241.577,-57.6226],[6730.42,-1803.22,37.8,239.709,-57.0131],[6662.68,-1700.13,37.2833,237.706,-56.345],[6596.53,-1601.96,36.7833,235.764,-55.6816],[6527.54,-1502.17,36.2667,233.755,-54.9781],[6455.67,-1400.96,35.7333,231.68,-54.2322],[6383.12,-1301.61,35.2,229.607,-53.4657],[6307.59,-1201.11,34.65,227.473,-52.6529],[6231.35,-1102.63,34.1,225.346,-51.817],[6149.69,-1000.43,33.5167,223.1,-50.9041],[6067.23,-900.575,32.9333,220.868,-49.9636],[5981.57,-800.339,32.3333,218.592,-48.9663],[5895.05,-702.649,31.7333,216.338,-47.9381],[5802.79,-602.334,31.1,213.99,-46.8181],[5707.12,-502.414,30.45,211.618,-45.6306],[5605.46,-400.733,29.7667,209.173,-44.3398],[5500.17,-300.197,29.0667,206.728,-42.9713],[5391.17,-201.126,28.35,204.296,-41.5208],[5275.8,-101.687,27.6,201.84,-39.9482],[5151.27,-0.47046,26.8,199.333,-38.2084],[5019.94,99.5559,25.9667,196.862,-36.3272],[4878.94,199.466,25.0833,194.419,-34.2563],[4725.23,299.779,24.1333,192.018,-31.9417],[4558.36,398.802,23.1167,189.74,-29.3668],[4369.45,498.865,21.9833,187.599,-26.3828],[4148.97,599.997,20.6833,185.721,-22.8242],[3886.6,699.183,19.1667,184.402,-18.5145],[3526,799.64,17.1333,184.29,-12.5402],[2747.76,884.856,12.9333,190.918,-0.00485475]]], + [32,933.366,[[6867.51,-2001.6,39.3333,243.735,-58.811],[6806.24,-1901.5,38.85,241.852,-58.2268],[6744.43,-1802.81,38.3667,239.961,-57.6281],[6679.91,-1702.22,37.8667,237.999,-56.9932],[6614.8,-1603.18,37.3667,236.031,-56.3418],[6546.91,-1502.49,36.85,233.993,-55.6509],[6476.17,-1400.34,36.3167,231.887,-54.9182],[6404.77,-1300.03,35.7833,229.78,-54.1651],[6332.7,-1201.58,35.25,227.675,-53.3909],[6257.68,-1102.05,34.7,225.509,-52.5697],[6179.65,-1001.63,34.1333,223.284,-51.6987],[6098.54,-900.547,33.55,221.005,-50.7748],[6016.63,-801.83,32.9667,218.741,-49.8225],[5929.17,-700.075,32.35,216.368,-48.784],[5840.82,-601.034,31.7333,214.02,-47.7117],[5749.16,-502.182,31.1,211.641,-46.5744],[5651.66,-401.308,30.4333,209.178,-45.3366],[5550.66,-301.348,29.75,206.705,-44.0237],[5443.55,-200.302,29.0333,204.177,-42.5974],[5332.72,-100.984,28.3,201.667,-41.0845],[5215.51,-1.62613,27.5333,199.141,-39.4441],[5089.17,99.1048,26.7167,196.573,-37.6299],[4956.02,198.267,25.8667,194.054,-35.6678],[4810.54,298.61,24.95,191.535,-33.4677],[4652.33,398.521,23.9667,189.088,-31.0117],[4475.42,499.171,22.8833,186.737,-28.1949],[4276.27,598.93,21.6833,184.606,-24.9465],[4039.66,699.436,20.2833,182.824,-21.0034],[3740.28,799.668,18.55,181.798,-15.9347],[3268.51,899.723,15.9,183.083,-7.94254],[2785.31,933.365,13.2833,188.116,-0.0311234]]], + [33,982.502,[[6875.79,-2003.5,39.9,244.072,-59.4074],[6815.5,-1902.62,39.4167,242.169,-58.834],[6754.66,-1803.14,38.9333,240.257,-58.2464],[6691.17,-1701.74,38.4333,238.271,-57.623],[6627.09,-1601.87,37.9333,236.278,-56.9833],[6560.27,-1500.32,37.4167,234.212,-56.3047],[6492.84,-1400.46,36.9,232.143,-55.6077],[6424.8,-1302.32,36.3833,230.071,-54.8917],[6353.91,-1202.85,35.85,227.932,-54.132],[6280.12,-1102.23,35.3,225.728,-53.3259],[6203.36,-1000.69,34.7333,223.462,-52.4707],[6125.86,-901.335,34.1667,221.204,-51.5895],[6045.31,-801.372,33.5833,218.891,-50.6546],[5961.65,-701.036,32.9833,216.528,-49.6624],[5874.79,-600.576,32.3667,214.121,-48.6096],[5784.68,-500.251,31.7333,211.678,-47.4922],[5691.24,-400.332,31.0833,209.205,-46.3062],[5594.39,-301.103,30.4167,206.712,-45.0476],[5491.62,-200.507,29.7167,204.151,-43.6788],[5385.23,-101.386,29,201.597,-42.2259],[5272.64,-1.91108,28.25,199.009,-40.6486],[5151.13,99.3268,27.45,196.359,-38.9009],[5023.02,199.357,26.6167,193.734,-37.0078],[4885.49,299.25,25.7333,191.125,-34.9199],[4735.6,399.52,24.7833,188.542,-32.5817],[4572.93,498.471,23.7667,186.067,-29.9748],[4386.09,599.808,22.6167,183.673,-26.9009],[4174.03,699.379,21.3333,181.572,-23.325],[3915.69,799.285,19.8,179.95,-18.8772],[3561.76,899.674,17.75,179.485,-12.7067],[2817.27,982.5,13.6167,185.343,-0.0217897]]], + [34,1032.21,[[6878.17,-2002.71,40.45,244.382,-59.9872],[6818.84,-1901.09,39.9667,242.46,-59.4243],[6758.97,-1800.87,39.4833,240.528,-58.8474],[6698.57,-1702.07,39,238.586,-58.2559],[6635.54,-1601.37,38.5,236.569,-57.6282],[6571.93,-1502.22,38,234.545,-56.9839],[6505.61,-1401.43,37.4833,232.448,-56.3002],[6438.68,-1302.34,36.9667,230.347,-55.5977],[6368.95,-1201.88,36.4333,228.175,-54.8521],[6296.37,-1100.23,35.8833,225.935,-54.0608],[6223.11,-1000.61,35.3333,223.697,-53.2461],[6146.9,-900.102,34.7667,221.397,-52.3813],[6069.97,-801.802,34.2,219.105,-51.49],[5987.72,-700.156,33.6,216.691,-50.5163],[5904.65,-601.052,33,214.294,-49.5109],[5818.43,-501.88,32.3833,211.853,-48.4435],[5726.62,-400.338,31.7333,209.31,-47.2799],[5633.85,-301.907,31.0833,206.805,-46.0754],[5535.31,-201.833,30.4,204.219,-44.764],[5430.83,-100.682,29.6833,201.568,-43.3375],[5322.73,-1.2678,28.95,198.93,-41.8223],[5208.43,98.1756,28.1833,196.266,-40.1768],[5085.24,198.981,27.3667,193.547,-38.3539],[4955.44,298.201,26.5167,190.867,-36.3788],[4813.66,398.586,25.6,188.17,-34.1597],[4659.49,498.516,24.6167,185.53,-31.6772],[4487.16,599.159,23.5333,182.962,-28.823],[4293.23,698.875,22.3333,180.591,-25.5225],[4062.91,799.286,20.9333,178.53,-21.5045],[3771.64,899.342,19.2,177.167,-16.3222],[3307.14,999.854,16.5167,178.009,-8.01526],[2846.78,1032.2,13.95,182.552,-0.0264928]]], + [35,1082.42,[[6876.74,-2002.78,41,244.732,-60.5699],[6818.36,-1900.42,40.5167,242.792,-60.0177],[6761.51,-1802.91,40.05,240.907,-59.4714],[6702.11,-1703.29,39.5667,238.945,-58.8914],[6640.11,-1601.74,39.0667,236.906,-58.2759],[6577.56,-1501.74,38.5667,234.858,-57.644],[6512.33,-1400.05,38.05,232.734,-56.9733],[6446.5,-1300.06,37.5333,230.604,-56.284],[6380.08,-1201.79,37.0167,228.469,-55.5754],[6310.88,-1102.19,36.4833,226.264,-54.8231],[6238.86,-1001.45,35.9333,223.99,-54.0245],[6166.16,-902.74,35.3833,221.718,-53.2018],[6088.32,-800.308,34.8,219.313,-52.3021],[6009.72,-700.231,34.2167,216.919,-51.3735],[5930.37,-602.543,33.6333,214.537,-50.4151],[5845.65,-501.907,33.0167,212.037,-49.3685],[5757.77,-401.409,32.3833,209.495,-48.2566],[5666.65,-301.322,31.7333,206.918,-47.0752],[5572.23,-201.929,31.0667,204.316,-45.8199],[5472.03,-101.173,30.3667,201.635,-44.4529],[5368.33,-1.90041,29.65,198.956,-43],[5256.14,99.8842,28.8833,196.174,-41.3844],[5140.19,199.099,28.1,193.434,-39.6669],[5015.36,299.258,27.2667,190.651,-37.7643],[4881.39,399.269,26.3833,187.869,-35.6618],[4735.42,499.644,25.4333,185.097,-33.3021],[4577.04,598.682,24.4167,182.416,-30.6649],[4397.84,698.698,23.2833,179.821,-27.5933],[4188.84,799.696,21.9833,177.422,-23.9094],[3937.6,899.6,20.45,175.49,-19.3698],[3593.59,999.914,18.4,174.627,-13.0482],[2873.81,1082.42,14.2833,179.745,-0.0459066]]], + [36,1133.09,[[6869.46,-2000.24,41.5333,245.053,-61.1367],[6814.03,-1900.7,41.0667,243.163,-60.6139],[6758.11,-1802.45,40.6,241.261,-60.0782],[6699.7,-1702.06,40.1167,239.279,-59.5095],[6640.77,-1603.09,39.6333,237.287,-58.9262],[6579.27,-1502.22,39.1333,235.216,-58.3069],[6517.21,-1402.9,38.6333,233.136,-57.6709],[6452.51,-1301.94,38.1167,230.979,-56.9956],[6387.22,-1202.69,37.6,228.816,-56.3013],[6319.21,-1102.07,37.0667,226.579,-55.5641],[6248.42,-1000.26,36.5167,224.269,-54.7811],[6176.96,-900.474,35.9667,221.96,-53.9743],[6104.84,-802.743,35.4167,219.653,-53.1429],[6027.62,-701.364,34.8333,217.212,-52.2333],[5949.66,-602.359,34.25,214.781,-51.2941],[5866.43,-500.317,33.6333,212.226,-50.2679],[5782.37,-401.005,33.0167,209.691,-49.2063],[5695.18,-301.893,32.3833,207.114,-48.0779],[5602.46,-200.765,31.7167,204.435,-46.8472],[5506.42,-100.567,31.0333,201.735,-45.5384],[5407,-1.60758,30.3333,199.024,-44.1466],[5301.7,98.009,29.6,196.254,-42.6314],[5187.95,199.766,28.8167,193.387,-40.9469],[5070.43,298.653,28.0167,190.573,-39.1544],[4941.57,399.951,27.15,187.672,-37.1291],[4806.06,498.629,26.25,184.845,-34.9333],[4656.04,598.734,25.2667,182.003,-32.4264],[4488.38,699.542,24.1833,179.21,-29.5365],[4299.77,799.41,22.9833,176.586,-26.1852],[4075.87,899.957,21.5833,174.231,-22.0919],[3795.61,999.294,19.8667,172.523,-16.8448],[3347.58,1099.89,17.2,172.816,-8.36851],[2895.38,1133.09,14.6,176.961,-0.027923]]], + [37,1184.16,[[6860.28,-2002.26,42.0833,245.48,-61.7248],[6805.79,-1901.98,41.6167,243.574,-61.2126],[6750.82,-1802.98,41.15,241.655,-60.6877],[6693.4,-1701.81,40.6667,239.655,-60.1304],[6635.47,-1602.05,40.1833,237.643,-59.5587],[6575,-1500.35,39.6833,235.549,-58.9517],[6514,-1400.2,39.1833,233.446,-58.3282],[6452.45,-1301.63,38.6833,231.334,-57.6876],[6388.28,-1201.44,38.1667,229.143,-57.0073],[6323.53,-1102.98,37.65,226.947,-56.3075],[6253.97,-1000.09,37.1,224.604,-55.5406],[6185.9,-902.245,36.5667,222.33,-54.7744],[6112.89,-800.385,36,219.913,-53.9352],[6039.19,-700.721,35.4333,217.5,-53.0692],[5962.6,-600.455,34.85,215.022,-52.1488],[5885.28,-502.584,34.2667,212.555,-51.198],[5802.75,-401.761,33.65,209.962,-50.1586],[5717.14,-301.08,33.0167,207.321,-49.0533],[5628.38,-200.814,32.3667,204.639,-47.8775],[5536.42,-101.247,31.7,201.926,-46.6267],[5438.84,-0.319153,31,199.125,-45.2627],[5337.87,99.1174,30.2833,196.319,-43.811],[5231.04,198.897,29.5333,193.459,-42.23],[5118.2,298.366,28.75,190.57,-40.5097],[4996.74,398.782,27.9167,187.623,-38.6004],[4866.42,499.047,27.0333,184.663,-36.486],[4724.46,599.676,26.0833,181.694,-34.1074],[4570.46,698.962,25.0667,178.798,-31.4424],[4396.27,799.228,23.9333,175.96,-28.3294],[4195.82,899.276,22.65,173.311,-24.6329],[3951.84,999.664,21.1167,171.04,-20.0026],[3620.75,1099.9,19.0833,169.74,-13.5801],[2914.51,1184.16,14.9167,174.158,-0.0243845]]], + [38,1235.57,[[6845.27,-2001.77,42.6167,245.877,-62.2972],[6791.71,-1900.79,42.15,243.956,-61.7953],[6737.68,-1801.07,41.6833,242.021,-61.281],[6683.18,-1702.65,41.2167,240.073,-60.7539],[6626.25,-1602.08,40.7333,238.042,-60.194],[6568.82,-1502.94,40.25,235.998,-59.6194],[6508.88,-1401.89,39.75,233.873,-59.0091],[6448.42,-1302.4,39.25,231.737,-58.382],[6385.37,-1201.27,38.7333,229.521,-57.7159],[6321.76,-1101.85,38.2167,227.296,-57.0305],[6255.49,-1001.05,37.6833,224.993,-56.3023],[6188.63,-902.132,37.15,222.686,-55.5522],[6119.03,-802.12,36.6,220.304,-54.755],[6046.66,-701.23,36.0333,217.851,-53.9075],[5973.61,-602.556,35.4667,215.4,-53.0325],[5895.52,-500.526,34.8667,212.813,-52.0751],[5816.67,-401.052,34.2667,210.238,-51.0846],[5734.84,-301.516,33.65,207.607,-50.031],[5649.97,-202.18,33.0167,204.928,-48.9098],[5559.73,-100.827,32.35,202.14,-47.6854],[5466.26,-0.406573,31.6667,199.322,-46.3817],[5369.51,98.7702,30.9667,196.488,-44.9933],[5267.07,198.603,30.2333,193.584,-43.4795],[5158.79,298.457,29.4667,190.634,-41.8303],[5042.12,399.67,28.65,187.601,-39.9966],[4919.23,499.281,27.8,184.585,-38.0019],[4787.52,598.28,26.9,181.571,-35.7927],[4641.73,698.715,25.9167,178.519,-33.2642],[4478.86,799.863,24.8333,175.49,-30.3413],[4298.25,898.773,23.65,172.638,-26.9891],[4080.93,999.897,22.25,169.965,-22.8232],[3809.04,1099.9,20.5333,167.872,-17.4604],[3385.79,1199.73,17.9333,167.559,-8.97289],[2931.17,1235.57,15.2333,171.337,-0.0360954]]], + [39,1287.27,[[6826.34,-2002.41,43.15,246.312,-62.8723],[6773.71,-1900.71,42.6833,244.377,-62.3809],[6720.62,-1800.28,42.2167,242.426,-61.8772],[6667.07,-1701.12,41.75,240.462,-61.3609],[6613.07,-1603.26,41.2833,238.484,-60.8317],[6556.65,-1503.3,40.8,236.421,-60.2693],[6497.77,-1401.39,40.3,234.275,-59.6719],[6438.37,-1301.04,39.8,232.117,-59.0579],[6378.44,-1202.26,39.3,229.948,-58.4269],[6315.97,-1101.87,38.7833,227.697,-57.7563],[6250.89,-1000.06,38.25,225.364,-57.0435],[6185.21,-900.115,37.7167,223.026,-56.3092],[6118.95,-802.069,37.1833,220.682,-55.5524],[6047.88,-700.004,36.6167,218.19,-54.723],[5976.15,-600.141,36.05,215.699,-53.8664],[5903.75,-502.513,35.4833,213.211,-52.9816],[5826.37,-401.612,34.8833,210.585,-52.013],[5746.06,-300.593,34.2667,207.898,-50.982],[5664.97,-202.335,33.65,205.229,-49.9138],[5578.64,-101.798,33,202.441,-48.7461],[5489.21,-1.96202,32.3333,199.614,-47.5022],[5394.32,99.2393,31.6333,196.691,-46.144],[5296.15,198.945,30.9167,193.754,-44.6961],[5192.3,298.995,30.1667,190.754,-43.1168],[5082.62,398.734,29.3833,187.713,-41.3952],[4964.59,499.421,28.55,184.6,-39.4806],[4837.97,599.958,27.6667,181.459,-37.3558],[4702.5,699.153,26.7333,178.343,-35.0026],[4552.98,798.852,25.7167,175.224,-32.3127],[4383.9,899.554,24.5833,172.131,-29.1608],[4191.95,998.852,23.3167,169.225,-25.4549],[3955.38,1099.98,21.7833,166.597,-20.7339],[3639.85,1199.81,19.7833,164.849,-14.2635],[2942.51,1287.27,15.5333,168.535,-0.00828763]]], + [40,1339.2,[[6801.63,-2000.59,43.6667,246.715,-63.4326],[6751.77,-1901.84,43.2167,244.837,-62.9687],[6699.63,-1800.68,42.75,242.872,-62.4759],[6647.04,-1700.78,42.2833,240.892,-61.9706],[6593.99,-1602.18,41.8167,238.898,-61.4526],[6538.58,-1501.43,41.3333,236.817,-60.9021],[6482.68,-1402.1,40.85,234.723,-60.337],[6424.35,-1300.87,40.35,232.543,-59.7363],[6365.5,-1201.21,39.85,230.351,-59.1189],[6306.14,-1103.13,39.35,228.149,-58.4841],[6242.25,-1000.29,38.8167,225.789,-57.787],[6179.8,-902.438,38.3,223.494,-57.0914],[6112.71,-800.218,37.75,221.045,-56.3283],[6045,-700.031,37.2,218.59,-55.5407],[5976.68,-601.907,36.65,216.134,-54.7279],[5903.54,-500.123,36.0667,213.53,-53.8372],[5829.7,-400.726,35.4833,210.93,-52.9159],[5753.03,-301.016,34.8833,208.264,-51.935],[5673.47,-201.244,34.2667,205.537,-50.8904],[5590.96,-101.674,33.6333,202.756,-49.7777],[5503.24,-0.0827947,32.9667,199.856,-48.561],[5414.63,98.1592,32.3,196.992,-47.296],[5318.38,199.979,31.5833,193.962,-45.8803],[5221.11,297.813,30.8667,190.991,-44.4045],[5115.94,397.996,30.1,187.893,-42.7572],[5002.63,499.546,29.2833,184.697,-40.922],[4883.31,599.492,28.4333,181.507,-38.9214],[4755.45,698.83,27.5333,178.302,-36.7005],[4613.96,799.614,26.55,175.036,-34.1518],[4458.38,899.639,25.4833,171.815,-31.2433],[4283.23,999.089,24.3,168.689,-27.8452],[4075.1,1099.71,22.9167,165.721,-23.6575],[3814.31,1199.82,21.2167,163.238,-18.232],[3415.38,1299.64,18.6833,162.296,-9.73857],[2954.19,1339.2,15.85,165.678,-0.0520289]]], + [41,1391.3,[[6772.98,-2000,44.1833,247.155,-63.9958],[6724.02,-1900.59,43.7333,245.264,-63.5418],[6674.65,-1802.35,43.2833,243.357,-63.0769],[6623.01,-1701.7,42.8167,241.363,-62.5828],[6570.94,-1602.34,42.35,239.353,-62.0762],[6516.53,-1500.8,41.8667,237.255,-61.5377],[6461.65,-1400.67,41.3833,235.143,-60.9849],[6406.29,-1301.98,40.9,233.016,-60.4171],[6348.53,-1201.41,40.4,230.803,-59.8134],[6290.26,-1102.43,39.9,228.577,-59.1927],[6229.51,-1001.83,39.3833,226.265,-58.5325],[6168.23,-902.959,38.8667,223.943,-57.8528],[6104.4,-802.746,38.3333,221.538,-57.1297],[6037.97,-701.392,37.7833,219.05,-56.3604],[5970.93,-602.089,37.2333,216.558,-55.5662],[5901.23,-501.952,36.6667,213.987,-54.7208],[5828.81,-401.209,36.0833,211.343,-53.8207],[5753.6,-300.099,35.4833,208.627,-52.8621],[5677.68,-201.572,34.8833,205.921,-51.8689],[5596.77,-100.415,34.25,203.079,-50.7815],[5515.06,-2.21908,33.6167,200.258,-49.6523],[5428.2,97.8986,32.95,197.318,-48.4169],[5336.06,199.387,32.25,194.27,-47.066],[5240.74,299.376,31.5333,191.202,-45.6236],[5139.91,399.711,30.7833,188.06,-44.0477],[5033.45,499.734,30,184.866,-42.3265],[4921.21,598.746,29.1833,181.648,-40.4477],[4798.38,699.693,28.3,178.319,-38.3161],[4666.99,799.305,27.3667,175,-35.9492],[4522,899.438,26.35,171.652,-33.2359],[4360.53,999.193,25.2333,168.347,-30.0941],[4174.57,1099.16,23.9667,165.139,-26.3323],[3950.5,1199.08,22.4667,162.2,-21.626],[3647.83,1299.8,20.4833,159.966,-15.0561],[2960.6,1391.3,16.15,162.836,-0.0560702]]], + [42,1443.53,[[6740.41,-2000.74,44.7,247.632,-64.5614],[6692.35,-1900.66,44.25,245.729,-64.1175],[6643.88,-1801.73,43.8,243.81,-63.6628],[6593.19,-1700.37,43.3333,241.802,-63.1796],[6542.07,-1600.29,42.8667,239.778,-62.684],[6490.51,-1501.5,42.4,237.737,-62.1757],[6436.65,-1400.56,41.9167,235.607,-61.6353],[6382.33,-1301.04,41.4333,233.462,-61.0802],[6327.53,-1202.98,40.95,231.303,-60.5099],[6270.36,-1103.07,40.45,229.055,-59.9034],[6210.76,-1001.51,39.9333,226.719,-59.2584],[6150.62,-901.667,39.4167,224.371,-58.594],[6087.99,-800.441,38.8833,221.937,-57.8871],[6024.8,-701.104,38.35,219.493,-57.158],[5959.04,-600.671,37.8,216.967,-56.382],[5892.68,-502.305,37.25,214.435,-55.5804],[5821.65,-400.269,36.6667,211.748,-54.7012],[5749.95,-300.626,36.0833,209.063,-53.7909],[5675.51,-200.669,35.4833,206.306,-52.8209],[5598.26,-100.65,34.8667,203.483,-51.7868],[5518.17,-0.833946,34.2333,200.599,-50.684],[5435.16,98.503,33.5833,197.662,-49.5073],[5347.01,199.492,32.9,194.607,-48.2194],[5255.79,299.233,32.2,191.52,-46.8439],[5159.23,399.634,31.4667,188.343,-45.3393],[5059.42,497.926,30.7167,185.166,-43.7308],[4949.53,599.829,29.9,181.806,-41.8961],[4836.13,698.219,29.0667,178.503,-39.9318],[4709.89,799.824,28.15,175.039,-37.6608],[4575.1,899.333,27.1833,171.613,-35.1382],[4424.39,999.89,26.1167,168.144,-32.2017],[4254.78,1099.91,24.9333,164.739,-28.7586],[4058.19,1198.92,23.5833,161.512,-24.6029],[3808.47,1299.41,21.9,158.625,-19.117],[3433.3,1399.52,19.4333,157.05,-10.6229],[2961.87,1443.53,16.4333,160.008,-0.0183268]]], + [43,1495.81,[[6703.8,-2002.89,45.2167,248.145,-65.1294],[6656.64,-1902.12,44.7667,246.232,-64.6957],[6609.09,-1802.5,44.3167,244.302,-64.2514],[6559.36,-1700.42,43.85,242.281,-63.7792],[6510.99,-1603.18,43.4,240.316,-63.3123],[6458.61,-1500.07,42.9167,238.187,-62.7979],[6407.59,-1401.84,42.45,236.115,-62.2881],[6354.3,-1301.5,41.9667,233.953,-61.7459],[6300.55,-1202.59,41.4833,231.775,-61.1888],[6244.46,-1101.81,40.9833,229.506,-60.5962],[6187.88,-1002.6,40.4833,227.224,-59.9865],[6128.91,-901.781,39.9667,224.851,-59.3377],[6069.41,-802.695,39.45,222.467,-58.6693],[6007.45,-702.261,38.9167,219.994,-57.9577],[5942.97,-600.685,38.3667,217.435,-57.2001],[5877.9,-501.163,37.8167,214.868,-56.4174],[5810.25,-400.807,37.25,212.22,-55.5836],[5741.98,-302.694,36.6833,209.569,-54.7209],[5669.02,-201.292,36.0833,206.764,-53.7746],[5595.37,-102.48,35.4833,203.965,-52.7931],[5516.89,-1.02679,34.85,201.021,-51.7173],[5437.64,97.457,34.2167,198.095,-50.5988],[5353.41,197.87,33.55,195.039,-49.3735],[5264.06,299.659,32.85,191.867,-48.0316],[5171.64,399.947,32.1333,188.666,-46.5967],[5076.09,498.394,31.4,185.452,-45.0618],[4972.92,598.824,30.6167,182.1,-43.3448],[4864.18,698.247,29.8,178.713,-41.4665],[4745.19,799.624,28.9167,175.193,-39.3303],[4617.95,899.673,27.9833,171.666,-36.9519],[4479.89,998.685,26.9833,168.142,-34.2629],[4323.63,1099.08,25.8667,164.569,-31.0878],[4143.73,1199.75,24.6,161.054,-27.2705],[3929.49,1299.45,23.1167,157.78,-22.5272],[3644.49,1399.35,21.1833,155.102,-15.9684],[2963.35,1495.81,16.7333,157.127,-0.0558492]]], + [44,1548.11,[[6661.51,-2002.72,45.7167,248.624,-65.6838],[6615.25,-1901.31,45.2667,246.701,-65.26],[6568.6,-1801.03,44.8167,244.759,-64.8258],[6521.56,-1701.91,44.3667,242.799,-64.3809],[6472.36,-1600.35,43.9,240.748,-63.9079],[6422.75,-1500.07,43.4333,238.679,-63.4226],[6372.71,-1401.08,42.9667,236.592,-62.9246],[6322.26,-1303.41,42.5,234.489,-62.4135],[6267.73,-1200.24,42,232.217,-61.8507],[6214.56,-1101.98,41.5167,230.006,-61.2912],[6159.08,-1001.87,41.0167,227.702,-60.6959],[6101.25,-900.112,40.5,225.306,-60.0624],[6042.91,-800.076,39.9833,222.896,-59.4095],[5984.06,-701.793,39.4667,220.474,-58.7364],[5922.77,-602.203,38.9333,217.962,-58.0196],[5859,-501.513,38.3833,215.363,-57.2561],[5794.65,-402.895,37.8333,212.756,-56.4668],[5725.78,-300.597,37.25,209.987,-55.6004],[5656.27,-200.697,36.6667,207.216,-54.7026],[5584.1,-100.481,36.0667,204.367,-53.7448],[5509.22,-0.203297,35.45,201.447,-52.7226],[5431.59,99.8719,34.8167,198.459,-51.6312],[5351.13,199.467,34.1667,195.412,-50.4653],[5267.81,298.29,33.5,192.314,-49.2192],[5179.44,398.379,32.8,189.099,-47.8535],[5085.91,499.136,32.0667,185.782,-46.3572],[4987.09,599.922,31.3,182.384,-44.718],[4885.04,698.022,30.5167,179.001,-42.961],[4773.06,798.811,29.6667,175.45,-40.9568],[4653.1,899.008,28.7667,171.851,-38.7206],[4522.7,999.041,27.8,168.202,-36.1844],[4379.21,1098.65,26.75,164.536,-33.2696],[4215.24,1199.43,25.5667,160.838,-29.7855],[4025.27,1299.29,24.2167,157.273,-25.5612],[3786.48,1399.93,22.55,153.993,-20.0119],[3434.37,1499.86,20.15,151.827,-11.5177],[2959.74,1548.1,17.0167,154.258,-0.0513343]]], + [45,1600.35,[[6613.52,-2000.28,46.2,249.067,-66.2257],[6569.83,-1902,45.7667,247.206,-65.827],[6524.1,-1801.06,45.3167,245.255,-65.403],[6477.97,-1701.27,44.8667,243.284,-64.9685],[6431.47,-1602.63,44.4167,241.295,-64.5233],[6382.83,-1501.59,43.95,239.213,-64.0497],[6333.78,-1401.84,43.4833,237.112,-63.5637],[6284.32,-1303.39,43.0167,234.994,-63.0648],[6232.66,-1202.82,42.5333,232.782,-62.534],[6178.75,-1100.3,42.0333,230.475,-61.9693],[6126.18,-1002.68,41.55,228.229,-61.4076],[6071.34,-903.248,41.05,225.89,-60.8098],[6014.18,-802.194,40.5333,223.457,-60.1733],[5956.51,-702.882,40.0167,221.009,-59.5171],[5896.46,-602.218,39.4833,218.47,-58.8181],[5833.97,-500.409,38.9333,215.839,-58.0733],[5770.92,-400.659,38.3833,213.198,-57.3032],[5705.37,-300.072,37.8167,210.47,-56.4822],[5639.22,-201.735,37.25,207.738,-55.632],[5568.54,-100.101,36.65,204.843,-54.6984],[5497.19,-1.06332,36.05,201.951,-53.7291],[5423.18,97.9817,35.4333,198.985,-52.694],[5344.41,199.326,34.7833,195.873,-51.5583],[5262.84,299.964,34.1167,192.703,-50.3436],[5178.4,399.594,33.4333,189.483,-49.0438],[5091.02,497.901,32.7333,186.226,-47.6523],[4996.45,598.953,31.9833,182.792,-46.0909],[4896.62,699.701,31.2,179.283,-44.3787],[4791.41,799.442,30.3833,175.725,-42.5015],[4678.49,899.289,29.5167,172.084,-40.4026],[4555.46,999.798,28.5833,168.345,-38.0152],[4422,1099.28,27.5833,164.588,-35.3073],[4273.26,1198.76,26.4833,160.802,-32.1474],[4101.8,1298.91,25.2333,157.017,-28.3284],[3895,1399.66,23.75,153.36,-23.4966],[3624.85,1499.43,21.85,150.232,-16.893],[2991.48,1599.98,17.55,150.957,-0.993886],[2951.17,1600.35,17.2833,151.396,-0.00269305]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 41.6269; +_maxRange = 5518.17; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg5.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg5.sqf new file mode 100644 index 0000000000..99878f6700 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg5.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg5 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[5613.43,-2002.09,21.7167,267.412,-40.0169],[5489.82,-1900.03,21.1167,266.913,-39.0435],[5364.71,-1800.28,20.5167,266.481,-38.0548],[5234.52,-1700.19,19.9,266.111,-37.0229],[5102.71,-1602.6,19.2833,265.82,-35.9755],[4961.98,-1502.47,18.6333,265.604,-34.8552],[4812.04,-1400.29,17.95,265.484,-33.66],[4660.03,-1301.31,17.2667,265.48,-32.4477],[4498.33,-1200.98,16.55,265.606,-31.1587],[4330.44,-1102.06,15.8167,265.883,-29.8225],[4148.35,-1000.64,15.0333,266.351,-28.3771],[3959.38,-901.648,14.2333,267.025,-26.8835],[3755.22,-801.638,13.3833,267.971,-25.2796],[3535.17,-701.64,12.4833,269.243,-23.565],[3294.27,-601.103,11.5167,270.939,-21.7085],[3027.13,-500.108,10.4667,273.191,-19.6794],[2732.19,-400.878,9.33333,276.129,-17.4812],[2389.65,-301.042,8.05,280.134,-14.9912],[1972.58,-200.638,6.53333,285.859,-12.0622],[1415.77,-100.406,4.58333,294.929,-8.34642],[48.6501,-0.0224493,0.133333,323.806,-0.25986],[5.41444,0.0972759,0,324.867,-0.0288262]]], + [1,1.67769,[[5732.02,-2001.96,22.2833,266.079,-40.3248],[5613,-1902.57,21.7,265.537,-39.3781],[5489.13,-1802.62,21.1,265.044,-38.3887],[5360.24,-1702.33,20.4833,264.61,-37.3558],[5226.2,-1601.93,19.85,264.245,-36.2783],[5086.86,-1501.68,19.2,263.96,-35.1554],[4942.04,-1401.83,18.5333,263.768,-33.9863],[4787.9,-1300.27,17.8333,263.683,-32.7406],[4631.58,-1202.11,17.1333,263.724,-31.477],[4461.65,-1100.78,16.3833,263.916,-30.1047],[4285.28,-1001.36,15.6167,264.278,-28.6833],[4094.42,-900.16,14.8,264.861,-27.1505],[3892.4,-800.054,13.95,265.696,-25.5368],[3678.77,-701.765,13.0667,266.824,-23.8428],[3440.57,-601.025,12.1,268.381,-21.9728],[3180.7,-501.364,11.0667,270.439,-19.9598],[2884.94,-400.394,9.91667,273.239,-17.7095],[2546.46,-300.352,8.63333,277.037,-15.1952],[2139.08,-200.734,7.13333,282.44,-12.2672],[1594.29,-100.705,5.2,291.059,-8.53882],[373.686,-0.084019,1.15,315.922,-1.04651],[188.167,1.6762,0.566667,320.346,-0.0160111]]], + [2,6.4426,[[5851.32,-2002.87,22.8667,264.794,-40.6722],[5730.12,-1900.44,22.2667,264.178,-39.6983],[5607.44,-1800.32,21.6667,263.626,-38.7082],[5483.29,-1702.55,21.0667,263.142,-37.7023],[5350.62,-1601.92,20.4333,262.708,-36.6236],[5212.7,-1501.44,19.7833,262.352,-35.4989],[5069.39,-1401.35,19.1167,262.084,-34.3273],[4920.5,-1301.93,18.4333,261.92,-33.1082],[4762.18,-1201.16,17.7167,261.874,-31.8107],[4597.81,-1101.79,16.9833,261.968,-30.464],[4423.4,-1002.04,16.2167,262.229,-29.0369],[4234.67,-900.485,15.4,262.7,-27.4968],[4034.94,-800.022,14.55,263.415,-25.8743],[3823.76,-701.371,13.6667,264.414,-24.1698],[3588.33,-600.246,12.7,265.825,-22.2867],[3331.53,-500.185,11.6667,267.722,-20.2581],[3043.62,-400.177,10.5333,270.293,-18.0212],[2713.82,-300.716,9.26667,273.815,-15.5156],[2311.88,-200.155,7.76667,278.929,-12.5559],[1784.05,-100.387,5.86667,286.994,-8.84635],[726.503,-0.186717,2.28333,307.59,-2.0906],[368.254,6.44102,1.13333,315.854,-0.0171814]]], + [3,14.3033,[[5967.89,-2002.02,23.45,263.542,-41.0317],[5851.27,-1902.15,22.8667,262.885,-40.0856],[5729.89,-1801.71,22.2667,262.271,-39.0961],[5603.62,-1700.93,21.65,261.708,-38.062],[5472.31,-1600.04,21.0167,261.207,-36.9825],[5339.35,-1501.84,20.3833,260.788,-35.8854],[5197.59,-1401.4,19.7167,260.442,-34.7122],[5050.33,-1301.63,19.0333,260.195,-33.4907],[4893.73,-1200.49,18.3167,260.059,-32.1899],[4731.19,-1100.77,17.5833,260.059,-30.839],[4558.73,-1000.63,16.8167,260.218,-29.4065],[4375.97,-900.714,16.0167,260.568,-27.8914],[4182.49,-801.668,15.1833,261.144,-26.293],[3969.93,-700.564,14.2833,262.023,-24.5466],[3741.39,-600.563,13.3333,263.258,-22.6841],[3491.96,-501.326,12.3167,264.949,-20.6736],[3207.83,-400.368,11.1833,267.314,-18.4181],[2886.8,-301.085,9.93333,270.546,-15.9222],[2494.99,-200.089,8.45,275.29,-12.9637],[1988.98,-100.458,6.6,282.696,-9.3059],[1064.5,-0.120973,3.4,299.825,-3.15912],[540.397,14.3031,1.68333,311.515,-0.00256995]]], + [4,25.1699,[[6084.92,-2002.38,24.05,262.346,-41.4303],[5969.53,-1902.17,23.4667,261.631,-40.4855],[5849.44,-1801.39,22.8667,260.954,-39.4969],[5724.53,-1700.25,22.25,260.325,-38.4633],[5598.08,-1601.62,21.6333,259.768,-37.4123],[5463.13,-1500.42,20.9833,259.263,-36.2861],[5326.44,-1402.09,20.3333,258.848,-35.1412],[5180.85,-1301.86,19.65,258.516,-33.9183],[5026.05,-1200.23,18.9333,258.288,-32.6152],[4865.38,-1100.01,18.2,258.19,-31.2609],[4698.66,-1001.51,17.45,258.241,-29.8554],[4518.1,-900.962,16.65,258.473,-28.3348],[4326.99,-801.264,15.8167,258.922,-26.7296],[4120.97,-701.288,14.9333,259.643,-25.0068],[3895.36,-600.428,13.9833,260.718,-23.1332],[3649.18,-500.274,12.9667,262.231,-21.1089],[3377.15,-401.147,11.8667,264.319,-18.9024],[3060.66,-300.397,10.6167,267.297,-16.3836],[2687.74,-200.812,9.18333,271.557,-13.4944],[2203.53,-100.553,7.38333,278.287,-9.89005],[1393.13,-0.165202,4.51667,292.489,-4.28194],[709.842,25.1697,2.23333,307.201,-0.00171258]]], + [5,38.9533,[[6198.99,-2001.16,24.65,261.189,-41.8409],[6084.85,-1900.58,24.0667,260.415,-40.8977],[5969.38,-1802.19,23.4833,259.696,-39.938],[5845.86,-1700.6,22.8667,259,-38.9058],[5720.84,-1601.52,22.25,258.373,-37.8557],[5590.85,-1502.42,21.6167,257.806,-36.7589],[5452.28,-1401.04,20.95,257.299,-35.5847],[5308.36,-1300.3,20.2667,256.881,-34.3608],[5158.93,-1200.49,19.5667,256.567,-33.0864],[5003.82,-1101.9,18.85,256.371,-31.7609],[4835.48,-1000.52,18.0833,256.313,-30.3209],[4660.86,-901.356,17.3,256.423,-28.8275],[4472.17,-800.856,16.4667,256.742,-27.2163],[4268.77,-700.029,15.5833,257.32,-25.4856],[4053.97,-601.708,14.6667,258.197,-23.668],[3811.17,-500.31,13.65,259.52,-21.631],[3547.06,-401.281,12.5667,261.362,-19.4418],[3239.39,-300.099,11.3333,264.037,-16.935],[2880.8,-200.5,9.93333,267.87,-14.0839],[2422.45,-100.274,8.2,273.876,-10.5696],[1707.81,-0.0437348,5.61667,285.659,-5.4264],[876.506,38.952,2.78333,302.913,-0.0149183]]], + [6,55.5649,[[6313.27,-2001.35,25.2667,260.096,-42.2899],[6200.4,-1900.31,24.6833,259.263,-41.3491],[6086.24,-1801.47,24.1,258.482,-40.3916],[5967.44,-1702.12,23.5,257.738,-39.3893],[5843.88,-1602.48,22.8833,257.04,-38.341],[5712.02,-1500.22,22.2333,256.382,-37.2164],[5578.49,-1400.84,21.5833,255.808,-36.072],[5439.78,-1301.92,20.9167,255.314,-34.8783],[5292.19,-1201.4,20.2167,254.905,-33.6036],[5139,-1102.08,19.5,254.608,-32.2769],[4976.41,-1002.09,18.75,254.44,-30.8661],[4804.05,-902.04,17.9667,254.429,-29.3695],[4617.81,-800.587,17.1333,254.613,-27.7535],[4420.92,-700.615,16.2667,255.033,-26.049],[4209.05,-601.124,15.35,255.746,-24.2228],[3973.58,-500.04,14.35,256.859,-22.2076],[3717.3,-400.947,13.2833,258.456,-20.0373],[3422.52,-300.454,12.0833,260.791,-17.5783],[3078.15,-200.489,10.7167,264.194,-14.7677],[2645.21,-100.001,9.05,269.493,-11.3475],[2013.69,-0.208379,6.71667,279.219,-6.62353],[1035.33,55.5639,3.31667,298.765,-0.0111511]]], + [7,74.918,[[6424.39,-2000.13,25.8833,259.047,-42.7502],[6316.01,-1901.48,25.3167,258.179,-41.8394],[6203.18,-1802.09,24.7333,257.337,-40.8849],[6085.79,-1702.18,24.1333,256.526,-39.8853],[5963.69,-1601.96,23.5167,255.757,-38.8393],[5836.77,-1501.69,22.8833,255.04,-37.7456],[5704.88,-1401.62,22.2333,254.384,-36.603],[5567.87,-1301.99,21.5667,253.803,-35.4103],[5422.12,-1200.73,20.8667,253.299,-34.136],[5270.85,-1100.64,20.15,252.902,-32.8087],[5113.9,-1002.05,19.4167,252.63,-31.4279],[4943.79,-901.063,18.6333,252.498,-29.9289],[4763.71,-800.61,17.8167,252.545,-28.3414],[4573.26,-701.379,16.9667,252.809,-26.6645],[4364.37,-600.549,16.05,253.353,-24.8311],[4140.06,-501.287,15.0833,254.239,-22.8734],[3887.65,-400.332,14.0167,255.61,-20.6897],[3605.53,-300.415,12.85,257.616,-18.2809],[3279.31,-201.118,11.5333,260.557,-15.5481],[2871.29,-100.151,9.93333,265.167,-12.2267],[2306.39,-0.207381,7.8,273.231,-7.83896],[1191.35,74.9162,3.85,294.638,-0.0212186]]], + [8,96.9268,[[6535.42,-2000.54,26.5167,258.07,-43.2481],[6428.33,-1901.34,25.95,257.145,-42.341],[6316.84,-1801.38,25.3667,256.24,-41.39],[6200.84,-1700.87,24.7667,255.364,-40.3936],[6080.21,-1600.05,24.15,254.525,-39.3504],[5958.13,-1501.77,23.5333,253.753,-38.2881],[5827.88,-1400.97,22.8833,253.016,-37.1478],[5692.59,-1300.61,22.2167,252.349,-35.9568],[5552.11,-1200.96,21.5333,251.763,-34.714],[5406.3,-1102.29,20.8333,251.274,-33.4185],[5247.9,-1000.48,20.0833,250.883,-32.0061],[5083.63,-900.642,19.3167,250.634,-30.5376],[4909.64,-801.091,18.5167,250.547,-28.9801],[4721.86,-700.579,17.6667,250.662,-27.2993],[4519.69,-600.159,16.7667,251.03,-25.4932],[4302.51,-500.974,15.8167,251.711,-23.5609],[4061.76,-401.174,14.7833,252.817,-21.4341],[3788.16,-300.203,13.6333,254.524,-19.0435],[3475.58,-200.346,12.35,257.06,-16.3572],[3095.94,-100.187,10.8333,260.98,-13.1746],[2590.75,-0.661478,8.88333,267.602,-9.1047],[1339.65,96.9256,4.36667,290.641,-0.0132069]]], + [9,121.506,[[6646.2,-2002.72,27.1667,257.171,-43.783],[6540.42,-1902.88,26.6,256.187,-42.8806],[6430.31,-1802.25,26.0167,255.22,-41.934],[6315.75,-1701.06,25.4167,254.278,-40.9418],[6199.85,-1602.24,24.8167,253.391,-39.9309],[6076.06,-1500.55,24.1833,252.522,-38.8435],[5950.76,-1401.57,23.55,251.724,-37.7355],[5817.22,-1300.36,22.8833,250.969,-36.5474],[5681.97,-1202.24,22.2167,250.306,-35.3373],[5534.66,-1100.26,21.5,249.702,-34.0125],[5385.34,-1001.97,20.7833,249.22,-32.6638],[5223.34,-900.947,20.0167,248.847,-31.1955],[5051.79,-800.155,19.2167,248.626,-29.6369],[4870.31,-700.262,18.3833,248.591,-27.9863],[4674.81,-600.146,17.5,248.786,-26.2093],[4464.67,-500.923,16.5667,249.267,-24.3044],[4231.51,-400.644,15.55,250.135,-22.202],[3970.18,-300.053,14.4333,251.528,-19.8668],[3675.01,-200.812,13.2,253.64,-17.2653],[3318.9,-100.42,11.75,256.946,-14.1924],[2858.28,-0.158686,9.93333,262.44,-10.3497],[2073.67,99.8343,6.98333,274.883,-4.22205],[1485.13,121.504,4.88333,286.661,-0.0187983]]], + [10,148.572,[[6750.45,-2000.82,27.8,256.294,-44.3018],[6645.96,-1900.37,27.2333,255.254,-43.404],[6540.31,-1801.99,26.6667,254.255,-42.489],[6427.18,-1700.09,26.0667,253.246,-41.5015],[6312.74,-1600.56,25.4667,252.292,-40.4948],[6193.75,-1500.77,24.85,251.371,-39.4402],[6070.07,-1400.96,24.2167,250.494,-38.3363],[5941.59,-1301.38,23.5667,249.672,-37.1815],[5808.16,-1202.3,22.9,248.916,-35.9748],[5666.24,-1101.64,22.2,248.225,-34.6837],[5518.99,-1002.22,21.4833,247.632,-33.3372],[5362.75,-902.152,20.7333,247.146,-31.9023],[5197.21,-802.062,19.95,246.795,-30.3768],[5018.42,-700.618,19.1167,246.608,-28.7254],[4829.49,-600.709,18.25,246.632,-26.9793],[4626.31,-501.345,17.3333,246.916,-25.1037],[4400.65,-400.47,16.3333,247.549,-23.0281],[4151.35,-300.21,15.25,248.642,-20.751],[3869.19,-200.321,14.05,250.379,-18.2027],[3535.85,-100.058,12.6667,253.119,-15.2449],[3118.08,-0.109434,10.9833,257.597,-11.6409],[2493.68,99.6218,8.56667,266.417,-6.51889],[1623.01,148.571,5.38333,282.801,-0.00517259]]], + [11,178.041,[[6854.24,-2000.89,28.45,255.499,-44.8566],[6754.11,-1902.7,27.9,254.434,-43.9909],[6646.74,-1800.68,27.3167,253.344,-43.0547],[6538.17,-1700.87,26.7333,252.3,-42.0999],[6425.22,-1600.53,26.1333,251.276,-41.0986],[6310.97,-1502.6,25.5333,250.308,-40.0776],[6188.96,-1401.86,24.9,249.351,-38.9789],[6062.21,-1301.32,24.25,248.443,-37.8288],[5930.58,-1201.25,23.5833,247.596,-36.6261],[5793.95,-1101.92,22.9,246.822,-35.3695],[5648.76,-1001.33,22.1833,246.121,-34.0261],[5494.72,-900.034,21.4333,245.517,-32.5933],[5335.02,-800.763,20.6667,245.046,-31.1012],[5165.94,-701.848,19.8667,244.722,-29.5163],[4979.91,-600.16,19,244.579,-27.7691],[4783.54,-500.679,18.1,244.675,-25.9244],[4568.93,-400.89,17.1333,245.074,-23.9124],[4331.42,-300.932,16.0833,245.878,-21.6964],[4062,-200.364,14.9167,247.255,-19.2048],[3750.78,-100.42,13.6,249.465,-16.3676],[3370.21,-0.674845,12.0333,253.067,-12.9772],[2837.49,99.9912,9.91667,259.753,-8.4165],[1758.06,178.041,5.88333,278.955,-0.00489332]]], + [12,209.831,[[6954.44,-2000.05,29.1,254.758,-45.4207],[6855.58,-1901.18,28.55,253.638,-44.5609],[6752.63,-1801.33,27.9833,252.521,-43.6575],[6645.48,-1700.71,27.4,251.413,-42.7088],[6537.13,-1602.32,26.8167,250.351,-41.7413],[6421.28,-1500.78,26.2,249.283,-40.6979],[6304.07,-1401.79,25.5833,248.275,-39.6335],[6179.04,-1300.26,24.9333,247.283,-38.4889],[6052.48,-1201.66,24.2833,246.368,-37.3212],[5917.77,-1101.19,23.6,245.496,-36.0693],[5777.98,-1001.73,22.9,244.705,-34.7614],[5629.57,-901.318,22.1667,243.996,-33.3642],[5472.24,-800.557,21.4,243.394,-31.8752],[5305.69,-700.076,20.6,242.928,-30.2918],[5129.57,-600.547,19.7667,242.632,-28.6121],[4939.91,-500.864,18.8833,242.544,-26.8004],[4732.47,-400.45,17.9333,242.726,-24.8196],[4506.42,-300.922,16.9167,243.261,-22.6672],[4253.2,-201.232,15.8,244.281,-20.2715],[3959.55,-100.599,14.5333,246.027,-17.5241],[3610.74,-0.98476,13.0667,248.885,-14.3205],[3148.43,99.5865,11.1833,253.981,-10.2058],[2274.24,199.846,7.8,267.577,-2.9522],[1890.2,209.83,6.38333,275.123,-0.0183062]]], + [13,243.862,[[7053.93,-2001.43,29.7667,254.106,-46.0193],[6956.38,-1901.79,29.2167,252.932,-45.1663],[6854.79,-1801.14,28.65,251.757,-44.2696],[6752.1,-1702.57,28.0833,250.62,-43.3548],[6642.15,-1600.49,27.4833,249.46,-42.3664],[6530.95,-1500.79,26.8833,248.351,-41.3576],[6415.35,-1400.84,26.2667,247.267,-40.2995],[6295.22,-1300.89,25.6333,246.219,-39.1905],[6170.44,-1201.19,24.9833,245.216,-38.0289],[6040.89,-1102,24.3167,244.269,-36.8132],[5903.13,-1001.25,23.6167,243.372,-35.5107],[5760.24,-901.753,22.9,242.565,-34.1502],[5608.66,-801.646,22.15,241.848,-32.6979],[5448.11,-701.541,21.3667,241.25,-31.1512],[5274.77,-600.118,20.5333,240.794,-29.4738],[5091.67,-500.269,19.6667,240.531,-27.6967],[4894.84,-401.012,18.75,240.505,-25.7839],[4676.33,-300.305,17.75,240.792,-23.6627],[4435.05,-200.287,16.6667,241.501,-21.3301],[4162.15,-100.737,15.4667,242.804,-18.7133],[3839.98,-0.956079,14.0833,245.03,-15.6681],[3428.48,99.9991,12.3667,248.956,-11.8736],[2809.02,199.721,9.88333,257.12,-6.4247],[2014.86,243.861,6.86667,271.4,-0.0112137]]], + [14,280.05,[[7149.62,-2002.13,30.4333,253.512,-46.6262],[7053.37,-1901.7,29.8833,252.285,-45.7804],[6953.14,-1800.23,29.3167,251.053,-44.891],[6851.83,-1700.84,28.75,249.856,-43.9832],[6746.39,-1600.71,28.1667,248.665,-43.0293],[6636.72,-1500.06,27.5667,247.486,-42.0278],[6525.82,-1401.82,26.9667,246.359,-41.0054],[6407.39,-1300.78,26.3333,245.229,-39.9036],[6287.57,-1202.5,25.7,244.165,-38.7788],[6159.91,-1102.07,25.0333,243.124,-37.57],[6024.16,-1000,24.3333,242.123,-36.2739],[5886.67,-901.449,23.6333,241.225,-34.9507],[5740.72,-802.032,22.9,240.401,-33.5361],[5582.65,-700.225,22.1167,239.664,-31.994],[5418.88,-601.002,21.3167,239.075,-30.3873],[5242.25,-500.92,20.4667,238.643,-28.6471],[5052.25,-401.046,19.5667,238.419,-26.7698],[4844.71,-300.873,18.6,238.467,-24.7177],[4615.12,-200.543,17.55,238.879,-22.4518],[4358.6,-100.979,16.4,239.794,-19.934],[4058.25,-0.512015,15.0833,241.479,-17.0173],[3691.29,99.775,13.5167,244.439,-13.5208],[3186.48,199.771,11.4333,250.118,-8.87424],[2136.62,280.049,7.35,267.687,-0.0175607]]], + [15,318.318,[[7241.46,-2002.22,31.1,252.975,-47.2408],[7146.52,-1900.99,30.55,251.696,-46.4027],[7050.57,-1801.67,30,250.446,-45.5472],[6950.66,-1701.36,29.4333,249.19,-44.6474],[6846.69,-1600.29,28.85,247.935,-43.7016],[6741.57,-1501.46,28.2667,246.722,-42.7357],[6632.25,-1402.18,27.6667,245.522,-41.7214],[6515.52,-1300.02,27.0333,244.313,-40.6276],[6397.41,-1200.61,26.4,243.166,-39.5102],[6274.76,-1101.49,25.75,242.061,-38.339],[6144.22,-1000.5,25.0667,240.983,-37.0812],[6008.81,-900.51,24.3667,239.975,-35.765],[5868.37,-801.822,23.65,239.052,-34.389],[5716.1,-700.435,22.8833,238.196,-32.8859],[5558.32,-601.379,22.1,237.472,-31.318],[5388.01,-501.112,21.2667,236.88,-29.6161],[5204.68,-400.672,20.3833,236.47,-27.7763],[5007.8,-301.188,19.45,236.298,-25.7955],[4789.55,-200.721,18.4333,236.436,-23.5994],[4545.21,-100.038,17.3167,237.009,-21.1479],[4269.57,-0.82904,16.0833,238.193,-18.4026],[3937.57,99.3505,14.6333,240.38,-15.1416],[3505.01,199.883,12.8,244.475,-11.0006],[2756.06,299.73,9.76667,254.835,-4.22537],[2251,318.318,7.81667,264.074,-0.00222673]]], + [16,358.585,[[7329.43,-2001.81,31.7667,252.496,-47.8627],[7238.63,-1902.81,31.2333,251.206,-47.0581],[7144.03,-1802.6,30.6833,249.902,-46.2111],[7045.52,-1701.37,30.1167,248.589,-45.3199],[6945.96,-1602.22,29.55,247.309,-44.4096],[6842.35,-1502.36,28.9667,246.03,-43.4526],[6734.61,-1402.01,28.3667,244.759,-42.447],[6622.61,-1301.39,27.75,243.505,-41.3908],[6506.25,-1200.76,27.1167,242.275,-40.2822],[6385.42,-1100.38,26.4667,241.081,-39.1194],[6259.98,-1000.5,25.8,239.932,-37.9005],[6129.82,-901.418,25.1167,238.843,-36.6239],[5991.58,-801.126,24.4,237.803,-35.2558],[5844.97,-700.203,23.65,236.836,-33.7927],[5693.06,-601.364,22.8833,235.985,-32.2648],[5528.92,-500.963,22.0667,235.244,-30.6028],[5352.11,-400.014,21.2,234.658,-28.8023],[5165.58,-301.38,20.3,234.285,-26.895],[4958.35,-200.955,19.3167,234.171,-24.7715],[4729.42,-100.842,18.25,234.42,-22.4269],[4470.32,-0.72549,17.0667,235.184,-19.7845],[4167.98,99.1347,15.7167,236.732,-16.7308],[3788.35,199.904,14.0667,239.677,-12.9673],[3243.82,299.552,11.7833,245.835,-7.76493],[2362.49,358.585,8.28333,260.469,-6.49897e-005]]], + [17,400.775,[[7413.46,-2000.98,32.4333,252.075,-48.4913],[7323.92,-1901.16,31.9,250.737,-47.6951],[7230.63,-1800.1,31.35,249.381,-46.8566],[7136.36,-1700.96,30.8,248.052,-46.0001],[7038.21,-1600.85,30.2333,246.713,-45.0987],[6936.08,-1500,29.65,245.371,-44.1504],[6832.84,-1401.4,29.0667,244.069,-43.1815],[6725.48,-1302.37,28.4667,242.776,-42.1631],[6610.86,-1200.5,27.8333,241.465,-41.0642],[6494.91,-1101.39,27.2,240.215,-39.9406],[6371.39,-1000.11,26.5333,238.971,-38.7312],[6246.38,-901.974,25.8667,237.807,-37.4948],[6110.31,-800.05,25.15,236.653,-36.1358],[5972.47,-701.877,24.4333,235.606,-34.7463],[5823.05,-601.069,23.6667,234.615,-33.2269],[5664.94,-500.59,22.8667,233.733,-31.6063],[5497.85,-401.124,22.0333,232.995,-29.8815],[5318.03,-301.572,21.15,232.427,-28.0149],[5121.48,-201.375,20.2,232.082,-25.9666],[4903.94,-100.609,19.1667,232.043,-23.6955],[4660.74,-0.125123,18.0333,232.435,-21.1604],[4383.13,99.5118,16.7667,233.451,-18.2836],[4046.21,199.819,15.2667,235.506,-14.8371],[3602.35,299.335,13.35,239.589,-10.411],[2573.35,399.938,9.15,254.916,-0.889868],[2471.02,400.774,8.75,256.872,-0.0114306]]], + [18,444.806,[[7496.22,-2003,33.1167,251.755,-49.1507],[7407.96,-1902.29,32.5833,250.37,-48.3638],[7316.01,-1800.29,32.0333,248.963,-47.5346],[7223.09,-1700.21,31.4833,247.581,-46.6874],[7129.22,-1602.08,30.9333,246.225,-45.8219],[7028.59,-1500.15,30.35,244.82,-44.8837],[6926.87,-1400.47,29.7667,243.453,-43.9244],[6821.1,-1300.32,29.1667,242.088,-42.9157],[6714.15,-1202.6,28.5667,240.771,-41.8844],[6599.98,-1102.14,27.9333,239.437,-40.7714],[6481.44,-1001.95,27.2833,238.133,-39.6028],[6358.4,-902.289,26.6167,236.869,-38.3768],[6227.62,-801.073,25.9167,235.63,-37.0598],[6092.01,-701.137,25.2,234.464,-35.6801],[5948.24,-600.611,24.45,233.361,-34.2032],[5796.03,-500.113,23.6667,232.349,-32.6253],[5635.09,-400.306,22.85,231.459,-30.943],[5461.75,-300.02,21.9833,230.713,-29.1184],[5275.53,-200.361,21.0667,230.163,-27.147],[5072.43,-100.907,20.0833,229.867,-24.9889],[4844.6,-0.427321,19,229.923,-22.5654],[4587.17,99.5365,17.8,230.485,-19.834],[4283.63,199.675,16.4167,231.84,-16.6396],[3904.16,299.191,14.7333,234.592,-12.7149],[3323.12,399.801,12.25,241.069,-6.92921],[2576.51,444.803,9.21667,253.283,-0.0367588]]], + [19,490.604,[[7572.14,-2001.63,33.7833,251.45,-49.7914],[7485.14,-1900.06,33.25,250.02,-49.0136],[7397.25,-1800.27,32.7167,248.608,-48.2189],[7308.48,-1702.27,32.1833,247.217,-47.4071],[7213.18,-1600.14,31.6167,245.764,-46.5255],[7116.87,-1500.09,31.05,244.341,-45.6241],[7019.54,-1402.16,30.4833,242.95,-44.7026],[6915.37,-1300.79,29.8833,241.515,-43.7048],[6810.06,-1201.85,29.2833,240.125,-42.6841],[6697.63,-1100.09,28.65,238.71,-41.5817],[6583.92,-1001.12,28.0167,237.353,-40.4537],[6465.85,-902.469,27.3667,236.028,-39.2691],[6340.24,-802.014,26.6833,234.713,-37.9947],[6206.85,-700.289,25.9667,233.429,-36.6263],[6068.6,-600.102,25.2333,232.223,-35.1928],[5925.34,-501.783,24.4833,231.114,-33.6925],[5770.45,-401.599,23.6833,230.079,-32.0551],[5603.49,-300.538,22.8333,229.162,-30.2751],[5427.35,-201.487,21.95,228.422,-28.3835],[5231.48,-100.182,20.9833,227.884,-26.2681],[5018.46,-0.227748,19.95,227.645,-23.9595],[4780.4,99.3122,18.8167,227.815,-21.3787],[4505.16,199.032,17.5333,228.596,-18.4068],[4168.15,299.676,16,230.416,-14.8083],[3714.78,399.85,14,234.368,-10.0838],[2670.61,490.604,9.65,249.861,-0.0014067]]], + [20,538.091,[[7643.98,-2000.12,34.45,251.202,-50.4376],[7560.92,-1900.86,33.9333,249.774,-49.6936],[7474.32,-1800.13,33.4,248.316,-48.9089],[7386.86,-1701.19,32.8667,246.876,-48.107],[7295.74,-1601.05,32.3167,245.413,-47.2617],[7203.68,-1502.86,31.7667,243.976,-46.3975],[7105.01,-1400.89,31.1833,242.481,-45.4602],[7005.28,-1301.17,30.6,241.021,-44.5011],[6901.59,-1200.99,30,239.56,-43.4917],[6793.83,-1100.58,29.3833,238.104,-42.4299],[6681.9,-1000.2,28.75,236.663,-41.3135],[6565.7,-900.089,28.1,235.247,-40.1404],[6445.11,-800.532,27.4333,233.866,-38.9084],[6320.02,-701.808,26.75,232.533,-37.6155],[6187.2,-601.934,26.0333,231.231,-36.2271],[6046.4,-501.491,25.2833,229.984,-34.7389],[5897.37,-401.103,24.5,228.819,-33.1471],[5739.82,-301.433,23.6833,227.765,-31.4478],[5570.18,-201.319,22.8167,226.841,-29.6021],[5384.63,-100.126,21.8833,226.089,-27.5683],[5185.92,-1.06552,20.9,225.591,-25.378],[4963.08,98.9363,19.8167,225.419,-22.9144],[4707.86,199.614,18.6,225.736,-20.0942],[4407.52,299.915,17.2,226.822,-16.7955],[4029.23,399.641,15.4833,229.299,-12.7039],[3438.19,499.869,12.9,235.627,-6.54229],[2765.92,538.09,10.1,246.363,-0.0167308]]], + [21,587.191,[[7714.29,-2001.81,35.1333,251.06,-51.1123],[7632.46,-1901.63,34.6167,249.59,-50.3784],[7549.84,-1803.1,34.1,248.134,-49.6285],[7460.99,-1700.05,33.55,246.6,-48.8125],[7373.97,-1601.95,33.0167,245.132,-48.0033],[7283.31,-1502.7,32.4667,243.64,-47.1502],[7188.94,-1402.5,31.9,242.129,-46.2511],[7090.76,-1301.56,31.3167,240.605,-45.3039],[6988.68,-1200.12,30.7167,239.074,-44.3065],[6885.49,-1101.12,30.1167,237.585,-43.2854],[6778.26,-1001.94,29.5,236.102,-42.211],[6663.94,-900.274,28.85,234.596,-41.051],[6548.3,-801.593,28.2,233.154,-39.8626],[6425.29,-701.116,27.5167,231.714,-38.5828],[6297.73,-601.707,26.8167,230.328,-37.2395],[6162.42,-501.441,26.0833,228.979,-35.7974],[6019.1,-400.919,25.3167,227.693,-34.2524],[5867.52,-300.788,24.5167,226.498,-32.6002],[5707.39,-201.733,23.6833,225.426,-30.8372],[5531.87,-100.866,22.7833,224.482,-28.8874],[5343.66,-1.39282,21.8333,223.748,-26.7809],[5135.46,98.505,20.8,223.279,-24.4381],[4899.44,199.326,19.65,223.196,-21.7752],[4627.04,299.9,18.35,223.702,-18.7074],[4297.93,399.841,16.8167,225.19,-15.0329],[3851.73,499.665,14.8,228.743,-10.158],[2854.12,587.19,10.5333,242.945,-0.00757558]]], + [22,637.828,[[7777.73,-2000.31,35.8,250.928,-51.7677],[7699.73,-1902.49,35.3,249.467,-51.0673],[7618.35,-1803.03,34.7833,247.969,-50.3279],[7533.51,-1702.1,34.25,246.436,-49.5476],[7447.83,-1602.95,33.7167,244.92,-48.7497],[7358.57,-1502.62,33.1667,243.375,-47.9081],[7265.65,-1401.29,32.6,241.808,-47.0207],[7171.77,-1302.07,32.0333,240.268,-46.1125],[7074.1,-1202.17,31.45,238.714,-45.1554],[6972.56,-1101.8,30.85,237.153,-44.1474],[6867.06,-1001.21,30.2333,235.592,-43.086],[6757.49,-900.647,29.6,234.041,-41.9691],[6643.75,-800.369,28.95,232.507,-40.7943],[6525.72,-700.65,28.2833,231.003,-39.5592],[6403.31,-601.773,27.6,229.54,-38.2617],[6273.36,-501.752,26.8833,228.099,-36.8666],[6135.62,-401.172,26.1333,226.703,-35.3695],[5989.86,-300.657,25.35,225.377,-33.7659],[5835.8,-200.875,24.5333,224.152,-32.0517],[5669.96,-100.665,23.6667,223.043,-30.187],[5491.88,-1.14121,22.75,222.102,-28.1662],[5294.45,99.7199,21.75,221.369,-25.9087],[5076.79,199.747,20.6667,220.952,-23.4069],[4831.04,299.117,19.4667,220.984,-20.577],[4538.02,399.552,18.0667,221.734,-17.2139],[4169.17,499.379,16.35,223.793,-13.0323],[3593.39,599.649,13.7667,229.489,-6.71728],[2939.32,637.827,10.9667,239.53,-0.0118923]]], + [23,689.927,[[7839.5,-2002.26,36.4833,250.903,-52.4499],[7760.12,-1900.26,35.9667,249.355,-51.7368],[7682.56,-1803.11,35.4667,247.866,-51.0315],[7599.02,-1701.19,34.9333,246.289,-50.2624],[7514.64,-1601.05,34.4,244.727,-49.4756],[7429.43,-1502.71,33.8667,243.181,-48.6708],[7337.96,-1400.24,33.3,241.559,-47.7957],[7248.28,-1302.79,32.75,240.007,-46.9262],[7152.17,-1201.62,32.1667,238.391,-45.9821],[7055.04,-1102.73,31.5833,236.806,-45.0151],[6951.25,-1000.71,30.9667,235.171,-43.9676],[6846.32,-901.309,30.35,233.581,-42.8939],[6737.35,-801.99,29.7167,231.999,-41.7637],[6621.32,-700.517,29.05,230.398,-40.5437],[6503.94,-602.239,28.3833,228.866,-39.2925],[6376.23,-500.206,27.6667,227.307,-37.9127],[6246.93,-401.974,26.95,225.846,-36.497],[6106.84,-301.158,26.1833,224.401,-34.9433],[5958.7,-200.735,25.3833,223.035,-33.2796],[5802.24,-101.394,24.55,221.781,-31.5016],[5630.79,-0.238602,23.65,220.636,-29.5319],[5446.99,99.5154,22.7,219.684,-27.4002],[5243.73,199.692,21.6667,218.975,-25.0248],[5016.76,299.404,20.5333,218.619,-22.3592],[4754.55,399.233,19.25,218.797,-19.2767],[4433.84,499.893,17.7167,219.887,-15.5275],[4003.01,599.926,15.7167,222.878,-10.58],[3021.48,689.925,11.4,236.117,-0.0300888]]], + [24,743.417,[[7894.37,-2001.14,37.15,250.885,-53.1127],[7818.73,-1901.53,36.65,249.352,-52.4331],[7739.81,-1800.2,36.1333,247.774,-51.7152],[7660.12,-1700.52,35.6167,246.206,-50.981],[7579.66,-1602.49,35.1,244.649,-50.2303],[7493.16,-1500,34.55,243.006,-49.4125],[7408.44,-1402.47,34.0167,241.43,-48.6009],[7317.51,-1300.86,33.45,239.776,-47.718],[7225.64,-1201.36,32.8833,238.147,-46.8138],[7130.08,-1101.18,32.3,236.498,-45.8602],[7030.74,-1000.54,31.7,234.837,-44.8549],[6930.34,-902.363,31.1,233.215,-43.8245],[6823.19,-801.45,30.4667,231.55,-42.7094],[6711.99,-700.821,29.8167,229.897,-41.5352],[6596.61,-600.751,29.15,228.267,-40.2995],[6476.96,-501.525,28.4667,226.67,-38.9997],[6349.95,-401.148,27.75,225.085,-37.6005],[6215.36,-300.209,27,223.534,-36.097],[6076.01,-201.431,26.2333,222.073,-34.5191],[5925.57,-101.183,25.4167,220.667,-32.7935],[5763.66,-0.493937,24.55,219.36,-30.9132],[5589.84,99.518,23.6333,218.205,-28.8719],[5400.44,199.268,22.65,217.247,-26.6257],[5188.19,299.973,21.5667,216.558,-24.0893],[4951.99,398.761,20.3833,216.284,-21.2539],[4670,499.103,19,216.652,-17.8696],[4314.56,599.534,17.3,218.212,-13.64],[3777,699.525,14.8167,222.903,-7.41523],[3096.65,743.415,11.8167,232.774,-0.0223359]]], + [25,798.219,[[7944.92,-2000.33,37.8167,250.924,-53.7787],[7872.93,-1903.17,37.3333,249.408,-53.1322],[7795.25,-1800.86,36.8167,247.793,-52.4258],[7716.82,-1700.18,36.3,246.186,-51.7031],[7637.62,-1601.16,35.7833,244.588,-50.9639],[7555.07,-1500.71,35.25,242.95,-50.1831],[7471.71,-1402.06,34.7167,241.326,-49.3839],[7384.88,-1302.26,34.1667,239.668,-48.5402],[7294.51,-1201.51,33.6,237.982,-47.6497],[7200.51,-1100.01,33.0167,236.272,-46.7101],[7105.52,-1000.81,32.4333,234.591,-45.747],[7006.79,-901.188,31.8333,232.898,-44.7313],[6904.22,-801.396,31.2167,231.198,-43.6606],[6797.72,-701.681,30.5833,229.502,-42.5325],[6687.19,-602.307,29.9333,227.817,-41.3443],[6569.64,-501.12,29.25,226.115,-40.0617],[6447.79,-401.006,28.55,224.451,-38.7123],[6318.57,-300.025,27.8167,222.804,-37.2599],[6184.75,-200.936,27.0667,221.231,-35.734],[6043.17,-102.032,26.2833,219.719,-34.0968],[5887.44,-0.0966514,25.4333,218.245,-32.2712],[5723.26,99.8033,24.55,216.914,-30.3217],[5547.18,198.569,23.6167,215.749,-28.2067],[5349.08,299.641,22.5833,214.776,-25.8031],[5131.21,398.915,21.4667,214.13,-23.1398],[4875.91,499.996,20.1833,213.957,-20.0062],[4574.11,599.123,18.7,214.582,-16.3091],[4166.11,699.814,16.75,216.877,-11.3754],[3168.8,798.217,12.2333,229.432,-0.028258]]], + [26,854.259,[[7993.51,-2003.34,38.5,251.071,-54.469],[7920.23,-1901.9,38,249.47,-53.8113],[7846.24,-1801.95,37.5,247.873,-53.1389],[7769.05,-1700.28,36.9833,246.228,-52.4281],[7691.12,-1600.24,36.4667,244.59,-51.7008],[7612.44,-1501.88,35.95,242.962,-50.9566],[7530.42,-1402.12,35.4167,241.292,-50.1704],[7445.01,-1301.15,34.8667,239.585,-49.3399],[7358.73,-1202.14,34.3167,237.895,-48.4892],[7268.94,-1102.23,33.75,236.176,-47.591],[7175.56,-1001.62,33.1667,234.432,-46.643],[7078.49,-900.538,32.5667,232.669,-45.6428],[6980.39,-801.932,31.9667,230.942,-44.6167],[6875.71,-700.569,31.3333,229.163,-43.505],[6769.88,-602.041,30.7,227.434,-42.3637],[6657.22,-501.432,30.0333,225.674,-41.13],[6540.4,-401.66,29.35,223.941,-39.8308],[6416.42,-300.72,28.6333,222.208,-38.4305],[6287.99,-201.41,27.9,220.535,-36.9575],[6152.04,-101.95,27.1333,218.902,-35.3746],[6005.3,-0.986723,26.3167,217.309,-33.6406],[5850.47,98.555,25.4667,215.825,-31.7849],[5681.05,199.467,24.55,214.442,-29.7272],[5499.65,298.527,23.5833,213.252,-27.4971],[5296.15,398.922,22.5167,212.287,-24.97],[5066.28,499.154,21.3333,211.682,-22.0937],[4798.64,598.906,19.9833,211.645,-18.7343],[4463.55,699.218,18.3333,212.635,-14.5457],[3970.62,799.883,15.9833,216.205,-8.50759],[3234.11,854.259,12.6333,226.153,-0.00686621]]], + [27,911.467,[[8032.81,-2000.04,39.15,251.166,-55.1183],[7963.08,-1901.12,38.6667,249.589,-54.4931],[7890.26,-1800.25,38.1667,247.959,-53.8318],[7816.76,-1700.9,37.6667,246.333,-53.1555],[7742.58,-1603.08,37.1667,244.711,-52.4638],[7662.68,-1500.45,36.6333,242.988,-51.7086],[7584.52,-1402.73,36.1167,241.328,-50.9595],[7500.51,-1300.57,35.5667,239.573,-50.1429],[7415.66,-1200.38,35.0167,237.833,-49.3059],[7329.96,-1102.16,34.4667,236.111,-48.4481],[7238.14,-1000.2,33.8833,234.306,-47.5153],[7145.36,-900.52,33.3,232.529,-46.5582],[7048.93,-800.422,32.7,230.732,-45.548],[6948.77,-700.141,32.0833,228.923,-44.4822],[6847.52,-602.531,31.4667,227.157,-43.3879],[6736.85,-500.053,30.8,225.303,-42.1726],[6624.92,-400.785,30.1333,223.511,-40.9232],[6506.01,-300.059,29.4333,221.704,-39.5746],[6382.82,-200.708,28.7167,219.942,-38.1546],[6252.31,-100.884,27.9667,218.204,-36.6261],[6114.27,-1.22091,27.1833,216.514,-34.9837],[5965.45,99.5687,26.35,214.872,-33.1856],[5808.52,198.576,25.4833,213.35,-31.2613],[5637.04,298.462,24.55,211.945,-29.1294],[5447.3,399.186,23.5333,210.714,-26.7409],[5235.31,499.934,22.4167,209.757,-24.0443],[4996.76,598.959,21.1833,209.225,-20.9879],[4706.93,699.632,19.7167,209.378,-17.267],[4331.59,799.503,17.8667,210.906,-12.4842],[3633.75,899.917,14.5667,217.744,-3.90917],[3300.13,911.464,13.05,222.808,-0.0409393]]], + [28,969.77,[[8070.06,-2000.73,39.8167,251.369,-55.7911],[8001.45,-1900.91,39.3333,249.763,-55.1769],[7932.21,-1802.48,38.85,248.158,-54.549],[7859.92,-1702.14,38.35,246.498,-53.8848],[7784.5,-1600.04,37.8333,244.786,-53.1823],[7710.83,-1502.81,37.3333,243.134,-52.4866],[7631.49,-1400.82,36.8,241.378,-51.7267],[7551.37,-1300.63,36.2667,239.633,-50.9483],[7470.47,-1202.27,35.7333,237.898,-50.1507],[7386.23,-1102.78,35.1833,236.124,-49.3078],[7298.56,-1002.36,34.6167,234.315,-48.4172],[7207.38,-901.23,34.0333,232.476,-47.4765],[7115.27,-802.412,33.45,230.663,-46.511],[7016.86,-700.494,32.8333,228.78,-45.4629],[6917.4,-601.229,32.2167,226.936,-44.3862],[6814.14,-502.082,31.5833,225.087,-43.25],[6704.23,-400.827,30.9167,223.197,-42.0205],[6590.29,-300.398,30.2333,221.326,-40.724],[6472.2,-201.095,29.5333,219.487,-39.3577],[6347,-101.001,28.8,217.653,-37.8847],[6214.49,-0.728224,28.0333,215.848,-36.2993],[6074.43,99.0678,27.2333,214.099,-34.5957],[5923.61,199.606,26.3833,212.408,-32.7315],[5761.65,299.79,25.4833,210.822,-30.6983],[5588.14,398.431,24.5333,209.398,-28.4889],[5393.31,498.819,23.4833,208.153,-25.9759],[5173.01,599.533,22.3167,207.214,-23.1041],[4919.48,699.241,21,206.767,-19.7766],[4607.59,799.117,19.4167,207.174,-15.681],[4168.02,899.413,17.25,209.575,-9.98122],[3355.66,969.769,13.4333,219.584,-0.00477867]]], + [29,1029.09,[[8102.79,-2002.1,40.4833,251.626,-56.4653],[8035.31,-1901.39,40,249.993,-55.8623],[7967.2,-1802.04,39.5167,248.359,-55.2458],[7896.09,-1700.74,39.0167,246.668,-54.5934],[7824.31,-1600.95,38.5167,244.978,-53.9258],[7751.86,-1502.69,38.0167,243.29,-53.2426],[7676.29,-1402.79,37.5,241.551,-52.5199],[7597.53,-1301.43,36.9667,239.763,-51.7555],[7518,-1201.88,36.4333,237.984,-50.9722],[7435.18,-1101.16,35.8833,236.161,-50.144],[7351.54,-1002.41,35.3333,234.354,-49.2946],[7264.51,-902.781,34.7667,232.509,-48.3969],[7174.01,-802.482,34.1833,230.634,-47.4484],[7079.95,-701.743,33.5833,228.733,-46.4463],[6982.26,-600.807,32.9667,226.814,-45.3879],[6883.52,-502.545,32.35,224.933,-44.3002],[6778.31,-401.906,31.7,223,-43.1213],[6669.2,-301.86,31.0333,221.073,-41.8774],[6553.32,-200.32,30.3333,219.121,-40.5329],[6433.27,-100.14,29.6167,217.205,-39.1152],[6308.96,-1.64477,28.8833,215.34,-37.6213],[6174.51,99.0139,28.1,213.467,-35.9774],[6032.52,198.874,27.2833,211.659,-34.2108],[5879.79,299.085,26.4167,209.917,-32.2785],[5715.93,398.518,25.5,208.293,-30.1719],[5534.45,499.173,24.5,206.804,-27.8034],[5334.62,598.851,23.4167,205.556,-25.1605],[5106.13,698.973,22.2,204.649,-22.1064],[4834.59,799.473,20.7833,204.32,-18.4541],[4487.5,899.998,19.0167,205.114,-13.7941],[3931.29,999.615,16.2833,209.265,-6.49052],[3411.82,1029.09,13.8333,216.295,-0.0250866]]], + [30,1089.36,[[8128.69,-2000.74,41.1333,251.879,-57.1203],[8064.6,-1902.63,40.6667,250.277,-56.5489],[7997.63,-1802.36,40.1833,248.616,-55.9439],[7927.7,-1700.09,39.6833,246.895,-55.3036],[7859.47,-1602.66,39.2,245.231,-54.6703],[7785.86,-1500.08,38.6833,243.452,-53.9774],[7713.95,-1402.38,38.1833,241.734,-53.2906],[7638.95,-1303.07,37.6667,239.963,-52.564],[7560.79,-1202.32,37.1333,238.142,-51.7953],[7479.39,-1100.35,36.5833,236.272,-50.9823],[7397.19,-1000.34,36.0333,234.415,-50.1481],[7314.18,-902.338,35.4833,232.573,-49.2923],[7225.26,-800.608,34.9,230.638,-48.3606],[7135.42,-701.19,34.3167,228.727,-47.4035],[7042.06,-601.376,33.7167,226.79,-46.392],[6945.11,-501.409,33.1,224.833,-45.3233],[6844.46,-401.545,32.4667,222.865,-44.1943],[6740.04,-302.047,31.8167,220.894,-43.0022],[6629.04,-200.767,31.1333,218.883,-41.7118],[6514.01,-100.594,30.4333,216.895,-40.35],[6394.87,-1.84289,29.7167,214.944,-38.9136],[6265.86,99.4716,28.95,212.962,-37.3295],[6132.39,198.3,28.1667,211.061,-35.6604],[5988.55,298.156,27.3333,209.191,-33.8292],[5831.06,399.789,26.4333,207.367,-31.7882],[5662.38,499.957,25.4833,205.684,-29.565],[5479.07,598.93,24.4667,204.186,-27.1112],[5271.3,699.061,23.3333,202.923,-24.2919],[5031.61,799.218,22.05,202.062,-21.0048],[4742.21,899.096,20.5333,201.903,-17.0147],[4350.15,999.418,18.5333,203.261,-11.6374],[3461.3,1089.36,14.2167,213.061,-0.0164218]]], + [31,1150.51,[[8150.05,-2000.18,41.7833,252.183,-57.7767],[8087.03,-1901.22,41.3167,250.558,-57.2162],[8021.16,-1800.07,40.8333,248.871,-56.6225],[7954.69,-1700.29,40.35,247.18,-56.0152],[7887.62,-1601.9,39.8667,245.487,-55.394],[7817.6,-1501.61,39.3667,243.734,-54.7362],[7746.92,-1402.84,38.8667,241.983,-54.0627],[7673.21,-1302.42,38.35,240.174,-53.3499],[7596.39,-1200.53,37.8167,238.312,-52.5955],[7518.82,-1100.45,37.2833,236.457,-51.8219],[7440.51,-1002.21,36.75,234.61,-51.0285],[7358.97,-902.855,36.2,232.718,-50.1891],[7274.13,-802.597,35.6333,230.783,-49.3013],[7185.91,-701.653,35.05,228.811,-48.3623],[7094.23,-600.253,34.45,226.807,-47.3694],[7001.6,-501.351,33.85,224.833,-46.3485],[6905.41,-402.34,33.2333,222.838,-45.2694],[6802.92,-300.914,32.5833,220.779,-44.0986],[6696.65,-200.063,31.9167,218.72,-42.8617],[6586.49,-100.077,31.2333,216.672,-41.5552],[6472.36,-1.25726,30.5333,214.648,-40.1759],[6351.38,98.2977,29.8,212.616,-38.686],[6223.37,197.97,29.0333,210.601,-37.0791],[6085.28,299.111,28.2167,208.59,-35.3122],[5939.65,398.784,27.3667,206.661,-33.4131],[5780.4,499.774,26.45,204.789,-31.2979],[5610,598.848,25.4833,203.074,-28.9944],[5419,699.173,24.4167,201.521,-26.3705],[5203.43,799.231,23.2333,200.258,-23.3671],[4949.61,899.788,21.8667,199.463,-19.7934],[4636.08,999.297,20.2167,199.548,-15.3619],[4169.15,1099.58,17.8333,201.913,-8.83416],[3507.72,1150.51,14.6,209.82,-0.0219798]]], + [32,1212.47,[[8166.83,-2000.52,42.4333,252.537,-58.434],[8104.87,-1900.71,41.9667,250.89,-57.8844],[8042.36,-1802.15,41.5,249.237,-57.3226],[7977.04,-1701.41,41.0167,247.521,-56.7274],[7911.11,-1602.06,40.5333,245.801,-56.1184],[7842.29,-1500.76,40.0333,244.018,-55.4735],[7772.83,-1400.98,39.5333,242.234,-54.8131],[7702.73,-1302.74,39.0333,240.451,-54.1366],[7629.61,-1202.87,38.5167,238.61,-53.4204],[7553.42,-1101.56,37.9833,236.714,-52.6622],[7476.49,-1002.07,37.45,234.824,-51.8844],[7396.39,-901.419,36.9,232.884,-51.0612],[7315.51,-802.765,36.35,230.956,-50.2161],[7228.88,-700.347,35.7667,228.926,-49.2952],[7141.36,-600.241,35.1833,226.917,-48.3483],[7052.96,-502.48,34.6,224.932,-47.3748],[6958.54,-401.717,33.9833,222.863,-46.3163],[6860.55,-301.035,33.35,220.775,-45.1969],[6758.89,-200.701,32.7,218.677,-44.0134],[6653.48,-100.993,32.0333,216.579,-42.7625],[6544.23,-2.20165,31.35,214.491,-41.4407],[6425.63,99.9218,30.6167,212.332,-39.977],[6305.62,197.953,29.8833,210.265,-38.4662],[6175.87,298.079,29.1,208.173,-36.8],[6036.06,399.314,28.2667,206.092,-34.9683],[5888.72,498.733,27.4,204.103,-32.9993],[5727.82,599.004,26.4667,202.184,-30.8074],[5552.86,698.489,25.4667,200.41,-28.3799],[5354.31,799.694,24.35,198.812,-25.5783],[5131.11,899.129,23.1167,197.566,-22.3829],[4863.36,999.127,21.6667,196.869,-18.5111],[4513.23,1099.57,19.8167,197.314,-13.4386],[3874.09,1199.9,16.5667,202.165,-4.39433],[3551.05,1212.46,14.9833,206.574,-0.0423133]]], + [33,1275.16,[[8178.98,-2001.86,43.0833,252.941,-59.0921],[8118.08,-1901.18,42.6167,251.273,-58.5536],[8056.65,-1801.74,42.15,249.598,-58.003],[7992.44,-1700.09,41.6667,247.858,-57.4197],[7929.89,-1603.24,41.2,246.172,-56.8436],[7862.27,-1500.92,40.7,244.361,-56.2118],[7794.02,-1400.11,40.2,242.547,-55.5645],[7725.13,-1300.83,39.7,240.732,-54.9015],[7655.62,-1203.11,39.2,238.916,-54.2222],[7580.77,-1100.6,38.6667,236.982,-53.4792],[7507.58,-1003.03,38.15,235.111,-52.7409],[7428.92,-901.068,37.6,233.126,-51.9343],[7349.49,-801.088,37.05,231.15,-51.1059],[7266.85,-700.183,36.4833,229.126,-50.229],[7183.4,-601.446,35.9167,227.118,-49.3276],[7096.63,-502.099,35.3333,225.07,-48.3736],[7006.48,-402.376,34.7333,222.988,-47.3641],[6912.87,-302.521,34.1167,220.879,-46.2958],[6813.14,-200.206,33.4667,218.696,-45.1355],[6712.34,-100.949,32.8167,216.558,-43.9392],[6607.82,-2.3682,32.15,214.419,-42.6742],[6494.2,99.915,31.4333,212.19,-41.2706],[6379.26,198.318,30.7167,210.042,-39.8211],[6254.84,299.227,29.95,207.844,-38.2192],[6123.4,399.646,29.15,205.675,-36.4909],[5984.73,498.872,28.3167,203.566,-34.6291],[5832.95,599.777,27.4167,201.48,-32.5488],[5670.45,699.123,26.4667,199.518,-30.2764],[5491.03,798.689,25.4333,197.692,-27.7191],[5288.07,898.909,24.2833,196.081,-24.7751],[5051.38,999.7,22.9667,194.839,-21.2912],[4763.69,1099.81,21.4,194.288,-17.016],[4367.5,1199.39,19.3,195.307,-11.1374],[3587.85,1275.16,15.35,203.374,-0.0320174]]], + [34,1338.51,[[8184.35,-2000.63,43.7167,253.333,-59.7316],[8126.65,-1902.72,43.2667,251.706,-59.223],[8066.28,-1802.4,42.8,250.011,-58.6839],[8005.38,-1703.34,42.3333,248.308,-58.1325],[7941.74,-1602.07,41.85,246.538,-57.5482],[7877.52,-1502.19,41.3667,244.762,-56.9501],[7810.48,-1400.34,40.8667,242.92,-56.3164],[7742.82,-1300.01,40.3667,241.074,-55.667],[7674.53,-1201.22,39.8667,239.227,-55.0015],[7603.32,-1100.78,39.35,237.317,-54.2966],[7531.44,-1002.04,38.8333,235.409,-53.5734],[7456.55,-901.906,38.3,233.443,-52.8075],[7378.57,-800.587,37.75,231.421,-51.9962],[7299.83,-701.267,37.2,229.408,-51.1627],[7217.92,-601.056,36.6333,227.347,-50.28],[7132.76,-500.177,36.05,225.24,-49.3453],[7046.74,-401.642,35.4667,223.154,-48.3835],[6954.88,-300.061,34.85,220.974,-47.3366],[6862.07,-201.174,34.2333,218.826,-46.2578],[6765.76,-102.458,33.6,216.657,-45.1161],[6663.29,-1.7046,32.9333,214.422,-43.8763],[6557.1,98.1584,32.25,212.189,-42.5645],[6444.47,199.131,31.5333,209.919,-41.1433],[6327.88,298.406,30.8,207.681,-39.6402],[6201.85,399.862,30.0167,205.399,-37.9795],[6071.54,498.511,29.2167,203.196,-36.2245],[5928.54,599.633,28.35,200.973,-34.2562],[5775.23,699.979,27.4333,198.829,-32.0994],[5608.39,799.947,26.45,196.791,-29.7024],[5424.63,899.252,25.3833,194.922,-27.0091],[5214.41,999.403,24.1833,193.291,-23.8718],[4967.44,1099.37,22.8,192.098,-20.131],[4653.96,1199.85,21.0833,191.756,-15.3426],[4173.6,1299.57,18.5333,193.849,-8.05963],[3621.6,1338.51,15.7167,200.166,-0.0363435]]], + [35,1402.46,[[8185.07,-2000.53,44.35,253.772,-60.3718],[8128.38,-1901.81,43.9,252.128,-59.8738],[8069.07,-1800.64,43.4333,250.413,-59.3459],[8009.23,-1700.71,42.9667,248.69,-58.8059],[7948.87,-1602.05,42.5,246.959,-58.2535],[7885.79,-1501.21,42.0167,245.159,-57.6679],[7822.14,-1401.76,41.5333,243.352,-57.0683],[7755.7,-1300.37,41.0333,241.478,-56.4328],[7688.65,-1200.51,40.5333,239.601,-55.7815],[7620.98,-1102.2,40.0333,237.721,-55.1138],[7550.42,-1002.26,39.5167,235.777,-54.4062],[7476.89,-900.893,38.9833,233.772,-53.6564],[7402.66,-801.363,38.45,231.77,-52.8865],[7325.38,-700.677,37.9,229.711,-52.0707],[7247.36,-602.003,37.35,227.661,-51.2322],[7166.2,-502.473,36.7833,225.561,-50.3439],[7081.82,-402.309,36.2,223.414,-49.4028],[6994.16,-301.744,35.6,221.227,-48.406],[6903.15,-201.025,34.9833,219.006,-47.3502],[6808.69,-100.407,34.35,216.758,-46.2319],[6710.72,-0.158153,33.7,214.49,-45.0475],[6609.16,99.4397,33.0333,212.214,-43.7935],[6503.92,198.094,32.35,209.94,-42.4659],[6392.32,297.771,31.6333,207.627,-41.0268],[6274.16,397.87,30.8833,205.298,-39.4688],[6146.6,499.821,30.0833,202.928,-37.7478],[6014.75,598.682,29.2667,200.645,-35.9276],[5870.29,699.593,28.3833,198.352,-33.8871],[5715.55,799.309,27.45,196.148,-31.6513],[5544.53,899.722,26.4333,194.036,-29.1251],[5353.72,999.979,25.3167,192.101,-26.247],[5136.41,1099.52,24.0667,190.466,-22.9072],[4873.4,1199.92,22.5833,189.336,-18.8049],[4528.22,1299.75,20.6833,189.324,-13.3848],[3786.13,1399.99,16.7667,195.079,-2.01472],[3648.97,1402.46,16.0667,196.998,-0.00831179]]], + [36,1466.93,[[8181.13,-2001.65,44.9833,254.258,-61.0122],[8125.45,-1902.11,44.5333,252.598,-60.525],[8067.2,-1800.08,44.0667,250.865,-60.0083],[8010.54,-1702.86,43.6167,249.184,-59.4989],[7951.26,-1603.27,43.15,247.433,-58.9586],[7889.33,-1501.47,42.6667,245.61,-58.3858],[7826.83,-1401.04,42.1833,243.78,-57.7991],[7763.77,-1302.02,41.7,241.943,-57.1982],[7697.94,-1201.07,41.2,240.037,-56.5612],[7631.52,-1101.67,40.7,238.127,-55.908],[7562.24,-1000.59,40.1833,236.15,-55.2157],[7492.32,-901.206,39.6667,234.172,-54.5051],[7419.48,-800.412,39.1333,232.131,-53.7519],[7345.94,-701.472,38.6,230.092,-52.9781],[7269.39,-601.406,38.05,227.996,-52.1579],[7189.75,-500.426,37.4833,225.845,-51.2887],[7109.34,-401.626,36.9167,223.705,-50.3942],[7025.75,-302.23,36.3333,221.519,-49.4462],[6938.91,-202.472,35.7333,219.291,-48.4415],[6848.75,-102.599,35.1167,217.027,-47.3768],[6752.73,-0.283065,34.4667,214.675,-46.2184],[6655.68,98.9551,33.8167,212.365,-45.022],[6552.56,199.916,33.1333,209.988,-43.7223],[6445.75,299.71,32.4333,207.616,-42.3454],[6335.17,398.018,31.7167,205.263,-40.887],[6215.51,498.797,30.95,202.841,-39.2716],[6089.13,599.048,30.15,200.432,-37.5243],[5953.15,699.987,29.3,198.023,-35.5986],[5810,798.7,28.4167,195.702,-33.5221],[5651.17,899.387,27.45,193.402,-31.1631],[5476.09,999.921,26.4,191.221,-28.5014],[5281.24,1099.29,25.25,189.255,-25.4743],[5054.18,1199.02,23.9333,187.61,-21.8779],[4772.47,1299.63,22.3333,186.582,-17.3503],[4377.62,1399.55,20.15,187.105,-10.9804],[3676.55,1466.93,16.4333,193.771,-0.0431271]]], + [37,1531.86,[[8170.44,-2000.33,45.6,254.727,-61.6355],[8117.79,-1903.69,45.1667,253.113,-61.1765],[8060.59,-1800.79,44.7,251.364,-60.6713],[8004.96,-1702.73,44.25,249.666,-60.173],[7946.76,-1602.26,43.7833,247.896,-59.6445],[7888.05,-1503.04,43.3167,246.115,-59.1037],[7826.71,-1401.63,42.8333,244.262,-58.5302],[7764.81,-1301.61,42.35,242.401,-57.9426],[7702.35,-1203,41.8667,240.533,-57.3406],[7637.17,-1102.49,41.3667,238.594,-56.7022],[7569.18,-1000.26,40.85,236.586,-56.0253],[7502.79,-902.92,40.35,234.64,-55.3532],[7431.32,-800.853,39.8167,232.562,-54.617],[7359.17,-700.624,39.2833,230.484,-53.8605],[7286.35,-602.259,38.75,228.409,-53.0831],[7210.54,-502.8,38.2,226.275,-52.2587],[7131.69,-402.459,37.6333,224.084,-51.3847],[7049.72,-301.459,37.05,221.841,-50.4579],[6964.56,-200.033,36.45,219.55,-49.4753],[6878.55,-101.137,35.85,217.281,-48.462],[6789.26,-2.16887,35.2333,214.975,-47.3876],[6694.17,99.173,34.5833,212.579,-46.2181],[6595.6,199.895,33.9167,210.165,-44.9781],[6493.47,299.702,33.2333,207.744,-43.6634],[6387.71,398.29,32.5333,205.328,-42.2698],[6273.1,499.754,31.7833,202.821,-40.723],[6154.58,598.955,31.0167,200.359,-39.0837],[6026.79,699.523,30.2,197.861,-37.2719],[5892.12,798.522,29.35,195.417,-35.314],[5744.98,898.698,28.4333,192.981,-33.1206],[5584.92,998.436,27.45,190.626,-30.6747],[5405.93,1098.91,26.3667,188.377,-27.8724],[5201.59,1199.77,25.15,186.337,-24.599],[4962.07,1299.87,23.75,184.699,-20.6847],[4658.94,1399.61,22.0167,183.851,-15.6614],[4174.98,1499.76,19.3333,185.443,-7.65713],[3697.8,1531.85,16.7833,190.582,-0.0454142]]], + [38,1597.16,[[8155.07,-2000.36,46.2167,255.241,-62.259],[8103.38,-1902.96,45.7833,253.613,-61.8102],[8049.24,-1802.91,45.3333,251.911,-61.334],[7992.6,-1700.35,44.8667,250.134,-60.8288],[7937.51,-1602.62,44.4167,248.409,-60.3305],[7879.89,-1502.5,43.95,246.61,-59.8018],[7819.67,-1400.14,43.4667,244.736,-59.2411],[7761.02,-1302.62,43,242.917,-58.6866],[7699.73,-1202.99,42.5167,241.025,-58.0983],[7635.77,-1101.41,42.0167,239.06,-57.4744],[7571.22,-1001.38,41.5167,237.088,-56.8343],[7506.08,-902.905,41.0167,235.112,-56.1776],[7438.17,-802.809,40.5,233.065,-55.481],[7367.41,-701.281,39.9667,230.95,-54.7421],[7295.98,-601.602,39.4333,228.836,-53.9826],[7221.63,-500.774,38.8833,226.657,-53.177],[7146.57,-401.97,38.3333,224.484,-52.3479],[7068.5,-302.317,37.7667,222.253,-51.4685],[6987.35,-202.04,37.1833,219.968,-50.5356],[6903.06,-101.375,36.5833,217.635,-49.5459],[6815.55,-0.567325,35.9667,215.259,-48.4961],[6727.15,97.5114,35.35,212.91,-47.4121],[6633.02,197.895,34.7,210.469,-46.2315],[6535.46,297.614,34.0333,208.009,-44.9789],[6431.91,398.735,33.3333,205.482,-43.6173],[6324.71,498.406,32.6167,202.963,-42.1727],[6211.26,598.472,31.8667,200.412,-40.605],[6091.38,698.286,31.0833,197.853,-38.9057],[5962.29,799.118,30.25,195.264,-37.0274],[5823.71,899.883,29.3667,192.691,-34.957],[5675.32,999.402,28.4333,190.188,-32.6808],[5511.4,1099.55,27.4167,187.745,-30.1],[5328.6,1199.46,26.3,185.443,-27.1479],[5117.75,1299.77,25.0333,183.375,-23.6611],[4866.06,1399.31,23.55,181.778,-19.4138],[4530.19,1499.35,21.6167,181.195,-13.6734],[3712.85,1597.16,17.1167,187.426,-0.0135972]]], + [39,1662.79,[[8134.96,-2001.81,46.8333,255.798,-62.8828],[8084.23,-1903.64,46.4,254.158,-62.4443],[8031.1,-1802.78,45.95,252.442,-61.9788],[7977.51,-1703.04,45.5,250.713,-61.503],[7921.45,-1600.81,45.0333,248.908,-60.9981],[7866.92,-1503.41,44.5833,247.156,-60.4999],[7807.84,-1400.09,44.1,245.262,-59.9521],[7750.29,-1301.63,43.6333,243.423,-59.4103],[7690.15,-1201.03,43.15,241.508,-58.8355],[7629.49,-1101.83,42.6667,239.585,-58.2462],[7566.17,-1000.7,42.1667,237.587,-57.621],[7502.28,-901.133,41.6667,235.581,-56.9795],[7437.81,-803.13,41.1667,233.57,-56.321],[7368.42,-700.349,40.6333,231.421,-55.5994],[7300.57,-602.531,40.1167,229.337,-54.881],[7227.67,-500.322,39.5667,227.117,-54.0943],[7154.07,-400.122,39.0167,224.9,-53.2846],[7079.79,-301.959,38.4667,222.687,-52.451],[7000.24,-200.103,37.8833,220.349,-51.5399],[6919.92,-100.603,37.3,218.023,-50.6002],[6836.49,-0.753531,36.7,215.646,-49.6028],[6749.88,99.1975,36.0833,213.226,-48.5442],[6660.03,198.99,35.45,210.768,-47.4206],[6566.87,298.353,34.8,208.282,-46.2278],[6467.89,399.425,34.1167,205.715,-44.9295],[6365.4,499.311,33.4167,203.142,-43.551],[6256.83,599.931,32.6833,200.519,-42.0531],[6144.54,698.519,31.9333,197.924,-40.4628],[6023.37,798.792,31.1333,195.268,-38.7005],[5893.04,899.721,30.2833,192.589,-36.7524],[5755.87,998.387,29.4,189.983,-34.645],[5603.75,1098.98,28.4333,187.365,-32.2426],[5436.13,1199.36,27.3833,184.834,-29.5215],[5246.98,1299.86,26.2167,182.451,-26.3677],[5029.8,1399.07,24.9,180.375,-22.6565],[4757.74,1499.85,23.2833,178.824,-17.9109],[4374.89,1599.44,21.0667,178.722,-11.1629],[3727.97,1662.79,17.4667,184.213,-0.0475394]]], + [40,1728.66,[[8108.15,-2000.98,47.4333,256.334,-63.4902],[8058.37,-1902.06,47,254.682,-63.0616],[8006.23,-1800.42,46.55,252.953,-62.6068],[7955.6,-1703.6,46.1167,251.275,-62.1591],[7900.6,-1600.5,45.65,249.455,-61.6659],[7847.11,-1502.25,45.2,247.686,-61.1793],[7791.15,-1401.58,44.7333,245.84,-60.6628],[7734.7,-1302.18,44.2667,243.983,-60.1339],[7675.73,-1200.59,43.7833,242.047,-59.5726],[7616.23,-1100.39,43.3,240.101,-58.9972],[7556.2,-1001.6,42.8167,238.145,-58.4072],[7493.54,-900.925,42.3167,236.113,-57.7809],[7430.33,-801.804,41.8167,234.074,-57.1381],[7364.42,-701.038,41.3,231.961,-56.4558],[7297.9,-601.982,40.7833,229.842,-55.7546],[7228.61,-501.551,40.25,227.653,-55.0103],[7158.67,-402.993,39.7167,225.463,-54.2446],[7083.67,-300.357,39.15,223.137,-53.4066],[7010.18,-202.821,38.6,220.885,-52.5686],[6931.49,-101.645,38.0167,218.504,-51.6523],[6849.76,-0.0521314,37.4167,216.067,-50.6794],[6767.22,98.9961,36.8167,213.647,-49.6744],[6681.54,198.106,36.2,211.182,-48.6072],[6590.32,299.58,35.55,208.613,-47.4434],[6498.15,397.937,34.9,206.08,-46.2385],[6400.25,497.93,34.2167,203.465,-44.9262],[6296.45,598.991,33.5,200.783,-43.4981],[6189.06,698.307,32.7667,198.113,-41.9807],[6073.03,799.75,31.9833,195.356,-40.2957],[5953.14,898.325,31.1833,192.657,-38.5051],[5821.67,999.295,30.3167,189.886,-36.485],[5680.81,1099.4,29.4,187.15,-34.2569],[5527.67,1199.02,28.4167,184.467,-31.7631],[5356.49,1299.31,27.3333,181.855,-28.8942],[5161.17,1399.9,26.1167,179.405,-25.5279],[4932.39,1499.61,24.7167,177.3,-21.4824],[4640.29,1599.57,22.9667,175.884,-16.2109],[4167.27,1699.78,20.2167,176.767,-7.62805],[3736.94,1728.66,17.8,181.031,-0.0471866]]], + [41,1794.71,[[8076.6,-2001.69,48.0333,256.911,-64.0979],[8027.77,-1902.03,47.6,255.249,-63.6794],[7978.53,-1803.38,47.1667,253.573,-63.2518],[7926.96,-1702.02,46.7167,251.818,-62.7979],[7874.95,-1601.77,46.2667,250.048,-62.3336],[7822.49,-1502.67,45.8167,248.266,-61.8586],[7767.61,-1401.1,45.35,246.403,-61.3545],[7712.26,-1300.8,44.8833,244.528,-60.8381],[7656.42,-1201.77,44.4167,242.64,-60.3092],[7598.08,-1100.56,43.9333,240.673,-59.7477],[7539.23,-1000.76,43.45,238.695,-59.1719],[7479.85,-902.379,42.9667,236.707,-58.5813],[7417.89,-802.129,42.4667,234.641,-57.9543],[7353.28,-700.184,41.95,232.498,-57.2887],[7290.19,-603.143,41.45,230.418,-56.6268],[7222.28,-501.41,40.9167,228.194,-55.901],[7153.75,-401.536,40.3833,225.966,-55.154],[7082.41,-300.517,39.8333,223.668,-54.3607],[7010.41,-201.532,39.2833,221.37,-53.5434],[6935.53,-101.704,38.7167,219.008,-52.6753],[6857.7,-1.26066,38.1333,216.584,-51.7532],[6776.87,99.5626,37.5333,214.103,-50.7735],[6695.25,197.825,36.9333,211.638,-49.7611],[6608.24,298.727,36.3,209.059,-48.6559],[6518.02,399.233,35.65,206.443,-47.4811],[6424.53,499.056,34.9833,203.798,-46.2322],[6327.71,597.899,34.3,201.136,-44.9046],[6225.07,697.731,33.5833,198.405,-43.459],[6116.46,797.94,32.8333,195.625,-41.8862],[5999.27,899.949,32.0333,192.762,-40.1395],[5878.22,998.807,31.2167,189.965,-38.2814],[5745.68,1099.64,30.3333,187.102,-36.1852],[5603.82,1199.2,29.4,184.286,-33.8724],[5447.18,1299.34,28.3833,181.496,-31.2394],[5272.58,1399.19,27.2667,178.81,-28.2145],[5071.31,1499.37,26,176.306,-24.6242],[4828.51,1599.67,24.5,174.186,-20.1766],[4505.6,1699.68,22.55,172.986,-14.1429],[3739.89,1794.71,18.1167,177.875,-0.0107448]]], + [42,1860.87,[[8038.43,-2000.2,48.6167,257.466,-64.6902],[7992.39,-1903.66,48.2,255.858,-64.2974],[7942.25,-1800.44,47.75,254.106,-63.8639],[7893.55,-1702.07,47.3167,252.405,-63.4371],[7842.55,-1601.02,46.8667,250.623,-62.984],[7791.1,-1501.09,46.4167,248.826,-62.5204],[7739.23,-1402.3,45.9667,247.016,-62.046],[7684.96,-1301.08,45.5,245.124,-61.5423],[7630.23,-1201.13,45.0333,243.219,-61.0263],[7575.02,-1102.45,44.5667,241.301,-60.4976],[7517.34,-1001.62,44.0833,239.303,-59.9362],[7459.15,-902.202,43.6,237.292,-59.3603],[7398.42,-800.865,43.1,235.202,-58.7487],[7337.15,-701.083,42.6,233.102,-58.1206],[7275.33,-602.878,42.1,230.993,-57.4754],[7210.88,-503.081,41.5833,228.807,-56.7901],[7143.74,-401.88,41.05,226.544,-56.0621],[7075.99,-302.55,40.5167,224.277,-55.3127],[7005.47,-202.104,39.9667,221.939,-54.5165],[6932.13,-100.755,39.4,219.53,-53.6705],[6858.1,-1.61051,38.8333,217.125,-52.7975],[6781.16,98.1157,38.25,214.657,-51.8697],[6701.26,198.185,37.65,212.13,-50.8836],[6618.33,298.348,37.0333,209.551,-49.8351],[6532.31,398.342,36.4,206.925,-48.7201],[6443.13,497.896,35.75,204.26,-47.5343],[6348.41,599.149,35.0667,201.499,-46.2409],[6250.35,699.199,34.3667,198.723,-44.8645],[6146.5,799.97,33.6333,195.88,-43.365],[6039.12,898.686,32.8833,193.053,-41.769],[5923.27,999.069,32.0833,190.143,-39.995],[5801.17,1098.16,31.25,187.245,-38.0673],[5667.66,1198.8,30.35,184.288,-35.8924],[5522.39,1299.41,29.3833,181.342,-33.4487],[5362.39,1399.76,28.3333,178.45,-30.6689],[5184.52,1498.81,27.1833,175.699,-27.4792],[4974.86,1599.2,25.85,173.132,-23.6029],[4715.68,1699.67,24.2333,171.035,-18.678],[4345.81,1799.83,21.9833,170.236,-11.5202],[3742.77,1860.86,18.45,174.664,-0.0434665]]], + [43,1927.07,[[7995.5,-2000.38,49.2,258.059,-65.2831],[7950.37,-1903.14,48.7833,256.443,-64.8998],[7903.04,-1802.99,48.35,254.747,-64.4926],[7853.47,-1700.06,47.9,252.969,-64.0603],[7805.32,-1601.97,47.4667,251.242,-63.6345],[7754.91,-1501.22,47.0167,249.433,-63.1824],[7704.06,-1401.59,46.5667,247.609,-62.7197],[7652.78,-1303.12,46.1167,245.77,-62.2461],[7599.15,-1202.23,45.65,243.849,-61.7431],[7545.05,-1102.61,45.1833,241.914,-61.2277],[7488.53,-1000.79,44.7,239.897,-60.6803],[7431.51,-900.37,44.2167,237.865,-60.1187],[7373.99,-801.376,43.7333,235.822,-59.5424],[7313.96,-700.485,43.2333,233.697,-58.9303],[7253.4,-601.16,42.7333,231.562,-58.3013],[7190.26,-500.191,42.2167,229.346,-57.6331],[7126.55,-400.941,41.7,227.122,-56.9457],[7060.19,-300.318,41.1667,224.821,-56.2153],[6993.22,-201.578,40.6333,222.515,-55.4629],[6923.52,-101.753,40.0833,220.135,-54.6632],[6851.04,-1.05833,39.5167,217.683,-53.8131],[6777.88,97.4185,38.95,215.236,-52.9355],[6699.68,199.236,38.35,212.651,-51.9752],[6620.71,298.495,37.75,210.079,-50.9818],[6538.76,397.808,37.1333,207.453,-49.925],[6451.52,499.479,36.4833,204.708,-48.7704],[6363.39,598.016,35.8333,201.995,-47.5725],[6269.79,698.178,35.15,199.184,-46.2651],[6170.59,799.396,34.4333,196.29,-44.839],[6067.97,898.848,33.7,193.396,-43.3197],[5959.51,998.3,32.9333,190.457,-41.6646],[5842.64,1099.08,32.1167,187.439,-39.8245],[5719.56,1198.23,31.2667,184.439,-37.8232],[5585.17,1298.5,30.35,181.39,-35.5652],[5436.62,1399.87,29.35,178.317,-32.9833],[5275.94,1498.63,28.2833,175.372,-30.0945],[5089.86,1599.27,27.0667,172.489,-26.6354],[4872.05,1698.96,25.6667,169.891,-22.4546],[4591.53,1799.62,23.9,167.864,-16.9182],[4136.58,1899.79,21.1167,167.935,-7.8101],[3739.7,1927.07,18.7667,171.476,-0.0398945]]], + [44,1993.24,[[7947.78,-2002.35,49.7833,258.692,-65.8764],[7901.78,-1900.51,49.35,257.003,-65.4875],[7857.18,-1803.52,48.9333,255.363,-65.1055],[7810.41,-1703.62,48.5,253.642,-64.6997],[7761.43,-1600.96,48.05,251.838,-64.2687],[7713.86,-1503.15,47.6167,250.085,-63.8442],[7664.05,-1402.68,47.1667,248.249,-63.3933],[7613.81,-1303.35,46.7167,246.398,-62.9317],[7561.27,-1201.56,46.25,244.462,-62.4414],[7508.27,-1101.03,45.7833,242.51,-61.9389],[7454.81,-1001.79,45.3167,240.545,-61.4239],[7398.96,-900.36,44.8333,238.495,-60.8768],[7342.62,-800.346,44.35,236.431,-60.3152],[7285.79,-701.762,43.8667,234.354,-59.7388],[7226.49,-601.306,43.3667,232.194,-59.1263],[7166.66,-502.424,42.8667,230.024,-58.4967],[7104.29,-401.924,42.35,227.771,-57.8277],[7041.36,-303.153,41.8333,225.509,-57.1391],[6975.81,-203.036,41.3,223.168,-56.4071],[6907.59,-101.774,40.75,220.749,-55.6288],[6838.74,-2.55717,40.2,218.328,-54.8259],[6767.15,97.4983,39.6333,215.833,-53.972],[6692.75,198.165,39.05,213.268,-53.0637],[6615.49,299.205,38.45,210.637,-52.0971],[6537.49,397.669,37.85,208.019,-51.0966],[6454.35,498.77,37.2167,205.272,-50.0024],[6368.17,599.462,36.5667,202.478,-48.8369],[6278.88,699.458,35.9,199.645,-47.5955],[6186.42,798.46,35.2167,196.784,-46.2727],[6088.43,898.435,34.5,193.838,-44.8289],[5984.77,998.77,33.75,190.827,-43.2538],[5875.29,1098.81,32.9667,187.774,-41.5366],[5757.48,1199.82,32.1333,184.646,-39.6267],[5633.5,1298.86,31.2667,181.546,-37.5476],[5498.31,1398.56,30.3333,178.408,-35.2013],[5349.1,1498.82,29.3167,175.26,-32.5184],[5182.87,1598.74,28.2,172.176,-29.4212],[4991.36,1698.94,26.9333,169.22,-25.7247],[4760.51,1799.18,25.4333,166.571,-21.1172],[4451.14,1899.7,23.4667,164.707,-14.7673],[3733.61,1993.24,19.0833,168.273,-0.0537348]]], + [45,2059.32,[[7893.48,-2002.24,50.35,259.299,-66.4553],[7850.16,-1903.63,49.9333,257.668,-66.0908],[7804.72,-1802.03,49.5,255.955,-65.7036],[7758.9,-1701.41,49.0667,254.225,-65.3078],[7712.69,-1601.81,48.6333,252.478,-64.9032],[7666.1,-1503.22,48.2,250.715,-64.4896],[7617.31,-1401.94,47.75,248.867,-64.0501],[7568.11,-1301.79,47.3,247.003,-63.6002],[7518.49,-1202.78,46.85,245.123,-63.1396],[7466.59,-1101.34,46.3833,243.157,-62.6502],[7414.24,-1001.17,45.9167,241.176,-62.1485],[7361.44,-902.278,45.45,239.179,-61.6341],[7306.29,-801.234,44.9667,237.097,-61.0875],[7250.65,-701.609,44.4833,235,-60.5262],[7192.59,-600.064,43.9833,232.817,-59.9298],[7134.01,-500.082,43.4833,230.621,-59.3167],[7074.92,-401.685,42.9833,228.414,-58.6862],[7013.32,-301.696,42.4667,226.123,-58.0159],[6949.16,-200.307,41.9333,223.749,-57.3032],[6884.41,-100.799,41.4,221.368,-56.5685],[6817.03,-0.179513,40.85,218.907,-55.7871],[6749.04,98.3821,40.3,216.443,-54.9806],[6678.34,197.748,39.7333,213.904,-54.1223],[6604.88,297.689,39.15,211.293,-53.2088],[6528.59,397.966,38.55,208.616,-52.2362],[6449.44,498.328,37.9333,205.876,-51.2004],[6367.34,598.512,37.3,203.079,-50.0968],[6282.25,698.242,36.65,200.235,-48.9207],[6191.89,799.662,35.9667,197.278,-47.6351],[6098.36,899.862,35.2667,194.295,-46.2636],[6001.6,998.52,34.55,191.298,-44.8005],[5896.97,1099.59,33.7833,188.168,-43.1667],[5788.87,1198.03,33,185.065,-41.422],[5670.23,1299.22,32.15,181.825,-39.4401],[5543.08,1399.89,31.25,178.564,-37.2387],[5407.18,1498.83,30.3,175.338,-34.7986],[5254.96,1599.27,29.25,172.072,-31.9621],[5083.37,1699.72,28.0833,168.865,-28.6416],[4884.11,1799.9,26.75,165.827,-24.6394],[4640.54,1899.11,25.15,163.197,-19.575],[4287.13,1999.53,22.8833,161.658,-12.0251]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 48.6501; +_maxRange = 6858.1; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg6.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg6.sqf new file mode 100644 index 0000000000..d01e32cf54 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg6.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg6 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[6597.83,-2002.54,21.95,286.306,-36.2745],[6458.45,-1901.98,21.35,286.596,-35.3198],[6313.31,-1800.95,20.7333,286.987,-34.3279],[6166.2,-1702.32,20.1167,287.477,-33.3256],[6008.98,-1600.98,19.4667,288.106,-32.2586],[5849.51,-1502.36,18.8167,288.855,-31.1816],[5679.41,-1401.65,18.1333,289.778,-30.0392],[5502.48,-1301.7,17.4333,290.876,-28.8593],[5314.17,-1200.52,16.7,292.198,-27.614],[5118.4,-1100.82,15.95,293.742,-26.3318],[4910.4,-1000.84,15.1667,295.571,-24.9851],[4689.63,-901.187,14.35,297.725,-23.5748],[4450.85,-800.627,13.4833,300.302,-22.0734],[4193.11,-700.184,12.5667,303.37,-20.4829],[3915.36,-600.968,11.6,307.008,-18.8063],[3606.49,-501.149,10.55,311.454,-16.9902],[3254.2,-400.149,9.38333,317.035,-14.9841],[2849.82,-300.184,8.08333,324.103,-12.7711],[2361.39,-200.773,6.56667,333.566,-10.2303],[1699.4,-100.43,4.6,347.975,-7.02147],[58.804,-0.0224213,0.133333,391.254,-0.21499],[6.54675,0.0972759,0,392.805,-0.0238405]]], + [1,2.40849,[[6754.32,-2000.42,22.6167,284.183,-36.6637],[6620.53,-1902.45,22.0333,284.378,-35.7332],[6477.26,-1801.2,21.4167,284.673,-34.7384],[6332.06,-1702.34,20.8,285.064,-33.7327],[6176.9,-1600.76,20.15,285.585,-32.6614],[6019.55,-1501.92,19.5,286.223,-31.5793],[5851.72,-1400.99,18.8167,287.026,-30.431],[5677.18,-1300.82,18.1167,287.997,-29.2442],[5495.7,-1201.69,17.4,289.153,-28.0192],[5302.71,-1101.7,16.65,290.548,-26.7279],[5097.7,-1001.43,15.8667,292.216,-25.3706],[4880.15,-901.488,15.05,294.196,-23.948],[4644.9,-800.64,14.1833,296.581,-22.4322],[4395.7,-701.689,13.2833,299.384,-20.8544],[4117.54,-600.42,12.3,302.845,-19.1296],[3813.5,-500.326,11.25,307.028,-17.2912],[3471.86,-400.424,10.1,312.221,-15.2874],[3074.29,-300.021,8.8,318.913,-13.0422],[2594.35,-200.143,7.28333,327.905,-10.4611],[1955.64,-100.687,5.35,341.39,-7.25107],[538.819,-0.0902538,1.38333,377.265,-1.04395],[272.161,2.4072,0.683333,384.911,-0.0115433]]], + [2,9.31902,[[6914.68,-2001.56,23.3167,282.124,-37.1211],[6778.86,-1900.49,22.7167,282.233,-36.1623],[6641.29,-1801.66,22.1167,282.427,-35.1922],[6498.04,-1702.46,21.5,282.718,-34.1838],[6344.98,-1600.54,20.85,283.13,-33.109],[6189.78,-1501.35,20.2,283.655,-32.0228],[6024.25,-1400.08,19.5167,284.337,-30.8692],[5856.27,-1301.91,18.8333,285.157,-29.7047],[5673.22,-1200.07,18.1,286.199,-28.4439],[5487.23,-1101.92,17.3667,287.417,-27.1729],[5285.25,-1001.19,16.5833,288.921,-25.8057],[5070.95,-900.796,15.7667,290.725,-24.3715],[4843.77,-801.374,14.9167,292.871,-22.8715],[4593.92,-700.051,14,295.508,-21.2485],[4329.51,-601.614,13.05,298.614,-19.564],[4030.57,-500.741,12,302.514,-17.7034],[3694.78,-400.005,10.85,307.381,-15.6731],[3314.36,-301.108,9.58333,313.51,-13.4533],[2848.77,-200.774,8.08333,321.887,-10.8586],[2233.94,-100.665,6.18333,334.391,-7.64512],[1037.88,-0.00879911,2.73333,363.262,-2.09452],[532.291,9.31688,1.36667,377.215,-0.0194469]]], + [3,20.647,[[7071.12,-2000.44,24.0167,280.143,-37.5936],[6940.86,-1901.77,23.4333,280.16,-36.6606],[6805.17,-1802.5,22.8333,280.258,-35.6893],[6660.06,-1700.2,22.2,280.454,-34.6516],[6512.99,-1600.46,21.5667,280.749,-33.6016],[6359.96,-1500.82,20.9167,281.161,-32.512],[6200.8,-1401.5,20.25,281.705,-31.3824],[6031.21,-1300.42,19.55,282.413,-30.1843],[5854.94,-1200.36,18.8333,283.291,-28.9458],[5671.74,-1101.63,18.1,284.359,-27.6674],[5472.82,-1000.3,17.3167,285.698,-26.2911],[5266.15,-901.291,16.5167,287.287,-24.8756],[5042.59,-801.126,15.6667,289.234,-23.3631],[4801.29,-700.814,14.7667,291.602,-21.7547],[4541.31,-601.449,13.8167,294.461,-20.0525],[4252.2,-501.112,12.7833,298.015,-18.2002],[3927.24,-400.531,11.65,302.474,-16.1734],[3553.91,-300.098,10.3833,308.2,-13.9216],[3107.58,-200.016,8.91667,315.877,-11.3433],[2527.11,-100.148,7.08333,327.188,-8.18377],[1517.84,-0.0403287,4.08333,350.315,-3.22352],[780.753,20.6446,2.03333,369.883,-0.0225321]]], + [4,36.2162,[[7227.26,-2000.03,24.7333,278.243,-38.1073],[7098.78,-1900.89,24.15,278.172,-37.1742],[6964.96,-1801.14,23.55,278.176,-36.2023],[6825.66,-1701,22.9333,278.265,-35.1907],[6680.69,-1600.69,22.3,278.452,-34.1391],[6529.88,-1500.47,21.65,278.75,-33.047],[6373.04,-1400.56,20.9833,279.171,-31.9141],[6209.96,-1301.24,20.3,279.732,-30.7403],[6036.37,-1200.48,19.5833,280.467,-29.4966],[5855.97,-1101.02,18.85,281.384,-28.2117],[5664.34,-1001.06,18.0833,282.528,-26.8567],[5460.99,-901.176,17.2833,283.936,-25.4318],[5241.06,-800.091,16.4333,285.683,-23.9076],[5008.18,-700.632,15.55,287.787,-22.3152],[4752.65,-600.134,14.6,290.397,-20.5963],[4473.21,-500.142,13.5833,293.611,-18.7537],[4163.65,-400.931,12.4833,297.607,-16.7619],[3807.3,-301.029,11.25,302.768,-14.5382],[3380.27,-200.357,9.81667,309.732,-11.9774],[2838.99,-100.611,8.06667,319.758,-8.90313],[1974.02,-0.100112,5.41667,338.478,-4.40334],[1017.88,36.2141,2.68333,362.888,-0.0196339]]], + [5,55.8579,[[7382.83,-2000.48,25.4667,276.432,-38.6618],[7256.16,-1900.77,24.8833,276.271,-37.7296],[7124.25,-1800.44,24.2833,276.18,-36.7579],[6990.68,-1702.39,23.6833,276.168,-35.7735],[6847.85,-1601.4,23.05,276.247,-34.7212],[6699.28,-1500.47,22.4,276.428,-33.6276],[6548.68,-1402.33,21.75,276.718,-32.5209],[6388.11,-1302.21,21.0667,277.146,-31.3441],[6217.23,-1200.6,20.35,277.737,-30.0962],[6039.67,-1100.28,19.6167,278.501,-28.8059],[5855.22,-1001.56,18.8667,279.457,-27.4737],[5655.21,-900.649,18.0667,280.681,-26.0403],[5443.21,-800.424,17.2333,282.193,-24.5357],[5218.69,-701.568,16.3667,284.036,-22.961],[4972.16,-601.345,15.4333,286.345,-21.257],[4702.42,-501.268,14.4333,289.213,-19.4258],[4398.79,-400.081,13.3333,292.867,-17.4103],[4058.98,-300.551,12.1333,297.486,-15.2173],[3655.66,-200.21,10.75,303.685,-12.7069],[3152.33,-100.378,9.08333,312.493,-9.72367],[2407.82,-0.207453,6.73333,327.646,-5.63096],[1244,55.8569,3.31667,356.206,-0.00958726]]], + [6,79.4105,[[7537.67,-2001.98,26.2167,274.716,-39.2567],[7412.85,-1901.6,25.6333,274.466,-38.3262],[7282.87,-1800.58,25.0333,274.28,-37.3558],[7151.26,-1701.84,24.4333,274.17,-36.372],[7010.55,-1600.13,23.8,274.141,-35.3198],[6867.97,-1501.03,23.1667,274.206,-34.2537],[6719.68,-1402.07,22.5167,274.376,-33.1457],[6561.6,-1301.09,21.8333,274.674,-31.9668],[6397.32,-1200.92,21.1333,275.111,-30.7448],[6226.62,-1101.86,20.4167,275.705,-29.4798],[6045.23,-1002.03,19.6667,276.494,-28.1422],[5852.7,-902.008,18.8833,277.511,-26.7318],[5644.36,-800.441,18.05,278.819,-25.2182],[5423.77,-700.188,17.1833,280.441,-23.6322],[5185.99,-600.215,16.2667,282.463,-21.9447],[4925.66,-500.024,15.2833,285.001,-20.1267],[4641.51,-401.252,14.2333,288.159,-18.1815],[4313.37,-300.309,13.05,292.304,-15.991],[3933.16,-200.045,11.7167,297.768,-13.5347],[3466.51,-100.028,10.1333,305.429,-10.6489],[2820.5,-0.372936,8.03333,317.73,-6.90319],[1465.22,79.4087,3.95,349.659,-0.0180306]]], + [7,106.719,[[7688.02,-2001.78,26.9667,273.091,-39.865],[7565.03,-1900.69,26.3833,272.754,-38.9369],[7440.54,-1801.74,25.8,272.482,-37.9954],[7310.92,-1702.21,25.2,272.273,-37.0134],[7176.02,-1602.33,24.5833,272.139,-35.99],[7035.67,-1502.32,23.95,272.091,-34.9247],[6889.71,-1402.43,23.3,272.141,-33.8167],[6734.14,-1300.47,22.6167,272.307,-32.6367],[6576.36,-1201.67,21.9333,272.597,-31.442],[6408.48,-1101.49,21.2167,273.04,-30.1741],[6230.09,-1000.49,20.4667,273.666,-28.8322],[6044.85,-901.347,19.7,274.486,-27.446],[5844.25,-800.384,18.8833,275.569,-25.9551],[5631.8,-700.463,18.0333,276.94,-24.3902],[5402.67,-600.499,17.1333,278.678,-22.7212],[5156.04,-501.602,16.1833,280.848,-20.9497],[4877.59,-400.353,15.1333,283.673,-18.9846],[4569.88,-300.752,14,287.252,-16.8615],[4212.15,-200.375,12.7167,292.013,-14.4635],[3780.92,-100.179,11.2167,298.599,-11.6821],[3213.19,-0.598022,9.31667,308.65,-8.21661],[2070.36,99.8903,5.73333,333.461,-1.95561],[1675.78,106.717,4.56667,343.393,-0.0179902]]], + [8,137.635,[[7837.31,-2002.94,27.7333,271.572,-40.5121],[7716.17,-1901.05,27.15,271.147,-39.5874],[7593.56,-1801.3,26.5667,270.784,-38.6488],[7465.91,-1700.94,25.9667,270.479,-37.6692],[7333.07,-1600.21,25.35,270.243,-36.6477],[7198.54,-1501.94,24.7333,270.089,-35.6117],[7054.88,-1401.08,24.0833,270.021,-34.5045],[6905.55,-1300.56,23.4167,270.056,-33.3534],[6750.34,-1200.65,22.7333,270.21,-32.1579],[6589.09,-1101.62,22.0333,270.498,-30.9178],[6417.65,-1001.54,21.3,270.947,-29.603],[6235.64,-900.962,20.5333,271.589,-28.2127],[6042.63,-800.504,19.7333,272.456,-26.7464],[5838.15,-700.812,18.9,273.585,-25.2043],[5617.51,-600.744,18.0167,275.047,-23.556],[5379.93,-501.385,17.0833,276.906,-21.8023],[5115.77,-400.739,16.0667,279.319,-19.8822],[4823.48,-300.925,14.9667,282.412,-17.799],[4487.47,-200.473,13.7333,286.514,-15.464],[4090.22,-100.403,12.3167,292.108,-12.7948],[3581.94,-0.0453561,10.5667,300.423,-9.53689],[2788.14,99.7025,7.96667,315.93,-4.82807],[1875.97,137.634,5.16667,337.387,-0.00832188]]], + [9,172.013,[[7981.94,-2002.69,28.5,270.147,-41.1714],[7866.05,-1902.88,27.9333,269.651,-40.2772],[7745.35,-1802.23,27.35,269.198,-39.3426],[7619.69,-1700.94,26.75,268.797,-38.3665],[7492.49,-1601.96,26.15,268.467,-37.3757],[7356.52,-1500.02,25.5167,268.199,-36.3143],[7218.78,-1400.72,24.8833,268.018,-35.2373],[7075.57,-1301.58,24.2333,267.93,-34.1164],[6922.97,-1200.44,23.55,267.948,-32.9215],[6764.42,-1100.15,22.85,268.091,-31.681],[6599.75,-1000.99,22.1333,268.375,-30.3945],[6424.83,-901.101,21.3833,268.831,-29.0317],[6239.26,-801.063,20.6,269.489,-27.5918],[6042.6,-701.511,19.7833,270.385,-26.0747],[5830.27,-601.241,18.9167,271.581,-24.4492],[5601.53,-501.314,18,273.139,-22.7156],[5351.27,-401.243,17.0167,275.162,-20.8437],[5073.94,-301.185,15.95,277.795,-18.8038],[4758.89,-200.737,14.7667,281.28,-16.5369],[4389.61,-100.007,13.4167,286.03,-13.9559],[3937.7,-0.272244,11.8167,292.806,-10.9211],[3299.48,99.6514,9.65,304.137,-6.88819],[2071.54,172.012,5.76667,331.485,-0.016129]]], + [10,209.715,[[8121.83,-2001.15,29.2667,268.818,-41.8418],[8007.71,-1900.5,28.7,268.24,-40.9523],[7892.26,-1801.85,28.1333,267.716,-40.0487],[7772.03,-1702.41,27.55,267.234,-39.1041],[7646.86,-1602.41,26.95,266.805,-38.1174],[7516.63,-1502.05,26.3333,266.438,-37.0877],[7381.18,-1401.58,25.7,266.143,-36.014],[7240.35,-1301.24,25.05,265.932,-34.8956],[7093.98,-1201.28,24.3833,265.819,-33.7318],[6941.9,-1101.98,23.7,265.817,-32.522],[6780.13,-1001.3,22.9833,265.945,-31.2358],[6612.17,-902.025,22.25,266.223,-29.9023],[6429.98,-800.215,21.4667,266.693,-28.4599],[6240.92,-700.822,20.6667,267.368,-26.9694],[6036.65,-600.372,19.8167,268.313,-25.3687],[5820.59,-501.702,18.9333,269.559,-23.6894],[5579.64,-400.518,17.9667,271.248,-21.8367],[5316.71,-300.349,16.9333,273.452,-19.8439],[5021.79,-200.17,15.8,276.372,-17.6498],[4683.77,-100.454,14.5333,280.297,-15.1963],[4276.18,-0.524311,13.05,285.842,-12.3354],[3739.38,99.3828,11.1667,294.476,-8.74772],[2705.38,199.995,7.75,315.214,-2.46804],[2257.03,209.714,6.35,325.818,-0.012979]]], + [11,250.606,[[8260.22,-2001.48,30.05,267.602,-42.549],[8151.2,-1902.86,29.5,266.963,-41.6912],[8034.24,-1800.31,28.9167,266.336,-40.7667],[7919.3,-1702.74,28.35,265.782,-39.854],[7796.16,-1601.67,27.75,265.256,-38.8723],[7668.04,-1500.21,27.1333,264.786,-37.847],[7538.32,-1401.25,26.5167,264.391,-36.8055],[7403.42,-1302.23,25.8833,264.069,-35.7194],[7259.55,-1200.91,25.2167,263.827,-34.5588],[7110.09,-1100.21,24.5333,263.687,-33.3511],[6954.85,-1000.39,23.8333,263.665,-32.0961],[6793.64,-901.757,23.1167,263.776,-30.7932],[6618.62,-800.281,22.35,264.055,-29.3807],[6436.99,-700.979,21.5667,264.518,-27.919],[6240.61,-600.274,20.7333,265.223,-26.3454],[6032.85,-501.022,19.8667,266.199,-24.6912],[5805.01,-400.491,18.9333,267.544,-22.8927],[5556.06,-300.222,17.9333,269.345,-20.9505],[5280.55,-200.45,16.85,271.739,-18.8343],[4968.12,-100.902,15.65,274.965,-16.4832],[4598.11,-0.779188,14.2667,279.481,-13.7757],[4132.95,99.3394,12.5833,286.213,-10.5049],[3434.6,199.877,10.1667,298.471,-5.90316],[2438.02,250.603,6.93333,320.24,-0.0269902]]], + [12,294.555,[[8393.68,-2000.82,30.8333,266.484,-43.2657],[8286.38,-1901.26,30.2833,265.769,-42.4141],[8174.58,-1800.65,29.7167,265.079,-41.5221],[8061.49,-1702.06,29.15,264.439,-40.6153],[7943.73,-1602.7,28.5667,263.836,-39.6666],[7817.73,-1500.04,27.95,263.264,-38.647],[7693.64,-1402.54,27.35,262.776,-37.6389],[7561.04,-1302.2,26.7167,262.339,-36.5577],[7423.21,-1202.02,26.0667,261.978,-35.4304],[7279.97,-1102.25,25.4,261.708,-34.2562],[7127.53,-1000.79,24.7,261.537,-33.0043],[6969.24,-900.45,23.9833,261.491,-31.7034],[6804.93,-801.546,23.25,261.586,-30.3531],[6626.76,-700.169,22.4667,261.856,-28.891],[6441.91,-601.255,21.6667,262.321,-27.3783],[6242.26,-501.356,20.8167,263.039,-25.7518],[6027.15,-401.511,19.9167,264.063,-24.0108],[5791.74,-301.18,18.95,265.485,-22.123],[5530.79,-200.456,17.9,267.43,-20.0567],[5238.54,-100.201,16.75,270.068,-17.7816],[4904.18,-1.00825,15.4667,273.681,-15.2379],[4492.81,99.5231,13.9333,278.986,-12.2079],[3940.48,199.618,11.95,287.574,-8.33448],[2609.21,294.552,7.5,314.874,-0.0287269]]], + [13,341.435,[[8525.37,-2002.37,31.6333,265.487,-44.0168],[8419.8,-1901.8,31.0833,264.698,-43.1724],[8309.8,-1800.14,30.5167,263.927,-42.2874],[8198.55,-1700.49,29.95,263.204,-41.3873],[8082.7,-1600.03,29.3667,262.513,-40.4449],[7965.51,-1501.76,28.7833,261.878,-39.4867],[7840.13,-1400.27,28.1667,261.272,-38.4567],[7713.21,-1301.3,27.55,260.739,-37.4096],[7581.23,-1202.28,26.9167,260.27,-36.3165],[7440.53,-1100.99,26.25,259.87,-35.1472],[7294.37,-1000.34,25.5667,259.564,-33.9293],[7142.59,-900.592,24.8667,259.368,-32.6621],[6985.02,-802.053,24.15,259.296,-31.3451],[6813.98,-700.71,23.3833,259.374,-29.9157],[6636.54,-601.573,22.6,259.627,-28.4345],[6444.75,-501.078,21.7667,260.101,-26.8379],[6237.98,-400.234,20.8833,260.849,-25.1247],[6015.54,-300.142,19.95,261.928,-23.2945],[5772.6,-200.395,18.95,263.436,-21.315],[5503.87,-101.249,17.8667,265.504,-19.155],[5195,-1.17886,16.65,268.4,-16.7179],[4825.57,99.9591,15.2333,272.589,-13.8784],[4363.15,199.728,13.5167,278.931,-10.4575],[3649.18,299.665,10.9833,291.06,-5.50629],[2770.82,341.434,8.05,309.706,-0.0170468]]], + [14,391.124,[[8648.77,-2000.13,32.4167,264.563,-44.7505],[8548.05,-1901.63,31.8833,263.728,-43.9391],[8443.04,-1801.89,31.3333,262.904,-43.0879],[8333.64,-1701.1,30.7667,262.099,-42.1956],[8223.01,-1602.33,30.2,261.341,-41.2877],[8107.81,-1502.79,29.6167,260.614,-40.3371],[7987.93,-1402.72,29.0167,259.925,-39.3424],[7863.23,-1302.32,28.4,259.284,-38.3024],[7733.58,-1201.85,27.7667,258.701,-37.216],[7598.84,-1101.54,27.1167,258.186,-36.0821],[7458.84,-1001.65,26.45,257.753,-34.8997],[7309.87,-900.086,25.75,257.408,-33.6377],[7158.85,-801.962,25.05,257.182,-32.3554],[6994.74,-700.704,24.3,257.08,-30.9602],[6824.49,-601.399,23.5333,257.135,-29.5125],[6640.31,-500.363,22.7167,257.382,-27.9481],[6445.47,-400.484,21.8667,257.857,-26.2978],[6235.61,-300.695,20.9667,258.618,-24.5287],[6006.04,-200.467,20,259.749,-22.6075],[5755.75,-101.432,18.9667,261.34,-20.5346],[5471.11,-1.25461,17.8167,263.603,-18.2116],[5141.37,98.9811,16.5167,266.828,-15.5755],[4741.11,199.026,14.9833,271.605,-12.4694],[4195.02,299.725,12.9667,279.623,-8.42366],[2928.13,391.122,8.6,304.603,-0.0215311]]], + [15,443.499,[[8770.2,-2000.42,33.2167,263.762,-45.5166],[8671.12,-1900.9,32.6833,262.859,-44.7134],[8567.83,-1800.08,32.1333,261.963,-43.8703],[8463.42,-1701.15,31.5833,261.105,-43.0123],[8354.63,-1601.2,31.0167,260.265,-42.1126],[8241.38,-1500.44,30.4333,259.449,-41.1699],[8126.81,-1401.89,29.85,258.687,-40.2105],[8004.27,-1300.11,29.2333,257.944,-39.1782],[7880.24,-1200.85,28.6167,257.268,-38.1277],[7751.29,-1101.57,27.9833,256.65,-37.03],[7613.83,-1000.01,27.3167,256.087,-35.8545],[7474.58,-901.511,26.65,255.621,-34.6588],[7326.42,-801.432,25.95,255.242,-33.3825],[7169.04,-700.315,25.2167,254.974,-32.0231],[7005.75,-600.901,24.4667,254.845,-30.6106],[6832.67,-501.453,23.6833,254.876,-29.1127],[6645.63,-400.652,22.85,255.108,-27.4957],[6447.89,-301.365,21.9833,255.579,-25.7908],[6231.19,-200.873,21.05,256.366,-23.9315],[5994.6,-100.731,20.05,257.55,-21.9171],[5733.04,-1.1981,18.9667,259.256,-19.7148],[5432.56,99.2592,17.75,261.733,-17.2249],[5077.7,199.69,16.35,265.366,-14.3518],[4633.12,299.244,14.65,270.988,-10.8743],[3945.66,399.907,12.1333,281.973,-5.80904],[3076.12,443.498,9.13333,299.681,-0.0112805]]], + [16,498.445,[[8886.4,-2000.28,34.0167,263.057,-46.2889],[8792.01,-1902.82,33.5,262.118,-45.5195],[8690.46,-1800.86,32.95,261.151,-44.6857],[8587.8,-1700.76,32.4,260.219,-43.8366],[8484.02,-1602.55,31.85,259.326,-42.9723],[8372.72,-1500.49,31.2667,258.424,-42.0388],[8260.14,-1400.61,30.6833,257.572,-41.0881],[8142.99,-1300.19,30.0833,256.751,-40.0925],[8024.47,-1202.13,29.4833,255.99,-39.079],[7897.86,-1101.24,28.85,255.257,-37.9899],[7766.3,-1000.51,28.2,254.585,-36.8519],[7629.63,-900.214,27.5333,253.986,-35.664],[7487.72,-800.617,26.85,253.472,-34.4249],[7340.39,-702.006,26.15,253.059,-33.134],[7180.34,-600.242,25.4,252.75,-31.7274],[7014.33,-500.437,24.6333,252.588,-30.2658],[6838.49,-400.912,23.8333,252.594,-28.7165],[6648.68,-300.416,22.9833,252.81,-27.0457],[6448.12,-201.802,22.1,253.277,-25.2849],[6224.71,-100.799,21.1333,254.089,-23.3333],[5981.25,-0.96493,20.1,255.328,-21.2235],[5708.56,98.6804,18.9667,257.156,-18.8884],[5392.41,198.811,17.6833,259.858,-16.2282],[5008.32,299.336,16.1667,263.979,-13.0792],[4497.01,399.393,14.2167,270.871,-9.05599],[3219.87,498.443,9.66667,294.814,-0.0168756]]], + [17,555.844,[[9000.31,-2003.04,34.8333,262.48,-47.091],[8904.51,-1901.33,34.3,261.447,-46.3064],[8807.69,-1801.35,33.7667,260.443,-45.5072],[8706.77,-1700.07,33.2167,259.44,-44.6678],[8604.76,-1600.68,32.6667,258.473,-43.8127],[8498.5,-1500.27,32.1,257.516,-42.9154],[8391.05,-1401.9,31.5333,256.603,-42.0015],[8275.99,-1300.01,30.9333,255.687,-41.0158],[8159.58,-1200.49,30.3333,254.827,-40.0116],[8038.52,-1100.69,29.7167,254.007,-38.9604],[7912.68,-1000.85,29.0833,253.236,-37.8608],[7781.94,-901.241,28.4333,252.525,-36.7116],[7646.14,-802.109,27.7667,251.886,-35.5116],[7501.67,-701.376,27.0667,251.32,-34.2289],[7351.76,-601.856,26.35,250.859,-32.8924],[7192.67,-501.676,25.6,250.514,-31.4694],[7024.07,-401.443,24.8167,250.313,-29.9581],[6845.61,-301.803,24,250.289,-28.3569],[6653.17,-201.572,23.1333,250.483,-26.6313],[6442.36,-100.081,22.2,250.962,-24.7461],[6216.17,-0.513953,21.2167,251.789,-22.7337],[5965.96,98.7954,20.15,253.084,-20.5262],[5678.27,199.487,18.95,255.07,-18.0205],[5342.4,299.625,17.5833,258.061,-15.1511],[4924.72,399.362,15.9333,262.784,-11.6869],[4310.04,499.578,13.6,271.72,-6.84126],[3354.52,555.844,10.1833,290.11,-0.00641565]]], + [18,615.587,[[9105.9,-2002.44,35.6333,261.966,-47.8731],[9014.66,-1902.83,35.1167,260.907,-47.1228],[8919.48,-1801.69,34.5833,259.839,-46.3338],[8823.31,-1702.29,34.05,258.799,-45.53],[8723.08,-1601.63,33.5,257.759,-44.6854],[8621.76,-1502.86,32.95,256.754,-43.8249],[8513.11,-1400.2,32.3667,255.729,-42.8948],[8406.38,-1302.57,31.8,254.778,-41.9741],[8292.08,-1201.48,31.2,253.821,-40.9808],[8173.24,-1100.06,30.5833,252.897,-39.9401],[8052.97,-1001.18,29.9667,252.037,-38.8796],[7927.98,-902.319,29.3333,251.225,-37.77],[7794.76,-801.234,28.6667,250.454,-36.5801],[7656.46,-700.838,27.9833,249.758,-35.3373],[7512.91,-601.417,27.2833,249.153,-34.0407],[7360.48,-501.032,26.55,248.643,-32.6577],[7198.85,-400.27,25.7833,248.254,-31.1859],[7031.28,-301.802,25,248.02,-29.656],[6846.64,-200.162,24.15,247.964,-27.9683],[6651.6,-100.372,23.2667,248.14,-26.1864],[6441.97,-1.50313,22.3333,248.602,-24.276],[6205.54,99.9463,21.3,249.465,-22.1328],[5944.78,199.933,20.1833,250.843,-19.79],[5646.25,299.732,18.9333,252.971,-17.1448],[5290.86,399.081,17.4833,256.269,-14.0619],[4822.62,499.528,15.6333,261.872,-10.1366],[3984.4,599.941,12.4833,275.376,-3.58551],[3485.01,615.586,10.7,285.453,-0.0115154]]], + [19,677.561,[[9206.13,-2001.78,36.4333,261.543,-48.659],[9116.43,-1901.09,35.9167,260.428,-47.9188],[9025.81,-1802,35.4,259.335,-47.1646],[8931.29,-1701.42,34.8667,258.231,-46.3714],[8835.78,-1602.58,34.3333,257.155,-45.563],[8736.23,-1502.51,33.7833,256.077,-44.7134],[8632.55,-1401.4,33.2167,255.003,-43.8211],[8527.75,-1302.35,32.65,253.969,-42.9114],[8418.64,-1202.55,32.0667,252.949,-41.9569],[8305.15,-1102.24,31.4667,251.952,-40.956],[8187.14,-1001.63,30.85,250.985,-39.9071],[8064.48,-900.978,30.2167,250.059,-38.8087],[7937.06,-800.526,29.5667,249.184,-37.6593],[7804.74,-700.54,28.9,248.371,-36.4576],[7667.38,-601.296,28.2167,247.634,-35.2022],[7521.41,-500.787,27.5,246.972,-33.8607],[7370,-401.785,26.7667,246.421,-32.4623],[7205.96,-300.391,25.9833,245.983,-30.9411],[7035.94,-201.559,25.1833,245.706,-29.3598],[6852.49,-101.854,24.3333,245.616,-27.6511],[6651.38,-0.554165,23.4167,245.768,-25.7781],[6435.54,99.1545,22.45,246.229,-23.773],[6196.63,199.033,21.4,247.101,-21.5656],[5925.62,299.521,20.2333,248.557,-19.0846],[5612.51,399.387,18.9167,250.859,-16.2609],[5225.44,499.998,17.3333,254.618,-12.8526],[4693.42,599.633,15.2333,261.416,-8.35467],[3611.29,677.558,11.2167,280.843,-0.0325526]]], + [20,741.663,[[9300.91,-2001.16,37.2333,261.211,-49.448],[9215.59,-1902.64,36.7333,260.08,-48.7421],[9126.54,-1802.4,36.2167,258.93,-47.9989],[9033.67,-1700.61,35.6833,257.765,-47.2168],[8939.82,-1600.56,35.15,256.625,-46.4194],[8844.99,-1502.27,34.6167,255.512,-45.6065],[8746.17,-1402.77,34.0667,254.396,-44.752],[8643.25,-1302.28,33.5,253.282,-43.8543],[8536.13,-1200.98,32.9167,252.177,-42.9116],[8427.82,-1101.91,32.3333,251.117,-41.9502],[8315.13,-1002.35,31.7333,250.078,-40.9417],[8197.98,-902.538,31.1167,249.068,-39.8845],[8073.01,-800.129,30.4667,248.073,-38.7477],[7946.5,-700.629,29.8167,247.155,-37.5879],[7815.13,-601.643,29.15,246.298,-36.375],[7675.43,-501.095,28.45,245.497,-35.0764],[7530.5,-401.798,27.7333,244.791,-33.7209],[7376.76,-301.89,26.9833,244.183,-32.2751],[7213.88,-201.983,26.2,243.701,-30.7366],[7038,-100.756,25.3667,243.373,-29.0696],[6852.2,-1.09833,24.5,243.247,-27.3053],[6648.75,99.7131,23.5667,243.373,-25.3733],[6430.58,198.494,22.5833,243.82,-23.3064],[6181.77,299.795,21.4833,244.73,-20.9621],[5904.5,399.006,20.2833,246.249,-18.3751],[5573.05,499.523,18.8833,248.766,-15.3325],[5154.49,599.815,17.1667,253.034,-11.5921],[4515.31,699.563,14.65,261.852,-6.16028],[3724.1,741.663,11.7,276.471,-0.00213206]]], + [21,807.783,[[9390.32,-2000.73,38.0333,260.967,-50.2393],[9306.46,-1901.13,37.5333,259.786,-49.5441],[9221.78,-1803.01,37.0333,258.621,-48.8356],[9130.53,-1700,36.5,257.398,-48.0652],[9041.22,-1601.86,35.9833,256.234,-47.3041],[8948.08,-1502.27,35.45,255.057,-46.5032],[8851.03,-1401.43,34.9,253.871,-45.6607],[8752.94,-1302.49,34.35,252.716,-44.8014],[8650.79,-1202.58,33.7833,251.562,-43.8983],[8544.48,-1101.91,33.2,250.414,-42.9498],[8433.9,-1000.69,32.6,249.282,-41.9541],[8322.05,-901.871,32,248.2,-40.938],[8202.61,-800.194,31.3667,247.12,-39.8435],[8081.75,-701.262,30.7333,246.107,-38.7265],[7952.97,-600.128,30.0667,245.118,-37.5267],[7822.59,-502.12,29.4,244.216,-36.3025],[7680.62,-400.296,28.6833,243.35,-34.9598],[7536.76,-302.187,27.9667,242.598,-33.5902],[7380.76,-201.408,27.2,241.931,-32.0961],[7215.61,-100.916,26.4,241.396,-30.5065],[7040.99,-1.38612,25.5667,241.026,-28.8195],[6852.97,98.288,24.6833,240.857,-26.9988],[6647.35,198.68,23.7333,240.951,-25.007],[6419.6,299.732,22.7,241.399,-22.8057],[6168.59,399.212,21.5833,242.318,-20.3931],[5877.55,499.581,20.3167,243.945,-17.6247],[5527.95,599.88,18.8333,246.702,-14.3577],[5069.84,699.697,16.95,251.629,-10.2058],[4173.13,799.961,13.45,265.479,-2.63441],[3837.45,807.781,12.2,272.039,-0.0207291]]], + [22,875.816,[[9474.21,-2000.59,38.8333,260.81,-51.0322],[9394.57,-1903.23,38.35,259.623,-50.3711],[9308.59,-1800.68,37.8333,258.367,-49.6507],[9224.56,-1702.95,37.3333,257.168,-48.9398],[9134.01,-1600.37,36.8,255.908,-48.1665],[9045.39,-1502.65,36.2833,254.708,-47.4024],[8950.09,-1400.43,35.7333,253.455,-46.5726],[8853.77,-1300.12,35.1833,252.23,-45.7258],[8756.43,-1201.72,34.6333,251.037,-44.8618],[8655.07,-1102.39,34.0667,249.842,-43.9535],[8549.58,-1002.31,33.4833,248.652,-42.9991],[8439.87,-901.73,32.8833,247.475,-41.997],[8325.81,-800.866,32.2667,246.319,-40.9454],[8210.44,-702.584,31.65,245.222,-39.8718],[8087.39,-601.825,31,244.135,-38.7165],[7959.63,-501.545,30.3333,243.098,-37.5066],[7827.04,-402.025,29.65,242.126,-36.2404],[7686.19,-301.252,28.9333,241.21,-34.8848],[7540.13,-202.008,28.2,240.393,-33.4691],[7381.95,-100.39,27.4167,239.664,-31.9258],[7218.06,-1.36222,26.6167,239.083,-30.318],[7041.3,98.5097,25.7667,238.66,-28.5766],[6847.6,199.944,24.85,238.446,-26.6632],[6639.84,299.742,23.8833,238.51,-24.6095],[6410.01,399.658,22.8333,238.943,-22.3422],[6153.22,498.759,21.6833,239.881,-19.8234],[5848.7,599.857,20.35,241.621,-16.8689],[5481.23,699.259,18.7833,244.629,-13.3723],[4963.33,799.934,16.65,250.541,-8.61671],[3942.14,875.814,12.6833,267.735,-0.020445]]], + [23,945.66,[[9552.58,-2000.86,39.6333,260.738,-51.8259],[9474.33,-1902.44,39.15,259.507,-51.1759],[9392.6,-1802.06,38.65,258.245,-50.4904],[9310.06,-1703.16,38.15,256.996,-49.7914],[9223.92,-1602.53,37.6333,255.721,-49.0547],[9134.09,-1500.35,37.1,254.424,-48.2788],[9046.19,-1403.03,36.5833,253.187,-47.5118],[8951.65,-1301.26,36.0333,251.895,-46.6786],[8856.11,-1201.4,35.4833,250.63,-45.8281],[8756.63,-1100.53,34.9167,249.359,-44.9334],[8656.08,-1001.75,34.35,248.123,-44.02],[8551.44,-902.255,33.7667,246.89,-43.0599],[8442.62,-802.284,33.1667,245.669,-42.0515],[8329.49,-702.065,32.55,244.467,-40.9928],[8211.96,-601.844,31.9167,243.294,-39.8821],[8089.9,-501.875,31.2667,242.159,-38.7177],[7963.18,-402.427,30.6,241.074,-37.4977],[7828.47,-301.416,29.9,240.027,-36.189],[7688.75,-201.668,29.1833,239.062,-34.8204],[7540.58,-101.316,28.4333,238.176,-33.3577],[7383.66,-0.973069,27.65,237.396,-31.7977],[7217.69,98.7021,26.8333,236.754,-30.1378],[7038.88,198.881,25.9667,236.276,-28.341],[6846.71,298.463,25.05,236.017,-26.4038],[6633.44,399.496,24.05,236.043,-24.2517],[6398.06,499.835,22.9667,236.463,-21.8807],[6131.93,599.701,21.7667,237.438,-19.2155],[5817.91,699.798,20.3833,239.276,-16.1074],[5425.01,799.36,18.7,242.629,-12.3005],[4826.76,899.709,16.2333,249.953,-6.74607],[4038.35,945.66,13.15,263.552,-3.74259e-005]]], + [24,1017.21,[[9625.39,-2001.66,40.4333,260.748,-52.6197],[9548.52,-1902.16,39.95,259.476,-51.9812],[9468.24,-1800.65,39.45,258.17,-51.3075],[9387.16,-1700.61,38.95,256.874,-50.6204],[9305.29,-1602.06,38.45,255.591,-49.9195],[9219.85,-1501.8,37.9333,254.28,-49.1806],[9130.76,-1400.01,37.4,252.946,-48.4021],[9043.57,-1303.08,36.8833,251.672,-47.6324],[8949.82,-1201.73,36.3333,250.34,-46.796],[8855.08,-1102.3,35.7833,249.035,-45.9419],[8756.44,-1001.9,35.2167,247.721,-45.0432],[8653.79,-900.72,34.6333,246.405,-44.0981],[8550.02,-801.792,34.05,245.129,-43.1325],[8442.11,-702.414,33.45,243.863,-42.1178],[8326.89,-600.164,32.8167,242.582,-41.0231],[8210.32,-500.673,32.1833,241.361,-39.9041],[8089.27,-401.473,31.5333,240.178,-38.7304],[7960.46,-300.407,30.85,239.016,-37.4692],[7826.85,-200.35,30.15,237.92,-36.1486],[7688.29,-101.603,29.4333,236.905,-34.7669],[7538.07,-0.165235,28.6667,235.947,-33.2564],[7382.45,98.929,27.8833,235.116,-31.6796],[7214.5,199.223,27.05,234.409,-29.9665],[7033.73,299.675,26.1667,233.874,-28.113],[6839.63,399.154,25.2333,233.566,-26.1154],[6624.51,499.594,24.2167,233.554,-23.8985],[6387.36,598.796,23.1167,233.949,-21.4583],[6112.19,699.339,21.8667,234.952,-18.6434],[5785.22,799.373,20.4167,236.912,-15.34],[5359.41,899.665,18.5833,240.713,-11.1392],[4610.17,999.925,15.5,250.776,-4.14293],[4134.88,1017.21,13.6333,259.308,-0.0304675]]], + [25,1090.38,[[9692.57,-2003.1,41.2333,260.839,-53.413],[9617.08,-1902.51,40.75,259.528,-52.7862],[9540.86,-1803.26,40.2667,258.225,-52.147],[9461.26,-1702.02,39.7667,256.885,-51.4726],[9380.88,-1602.25,39.2667,255.555,-50.7844],[9296.99,-1500.73,38.75,254.193,-50.0586],[9212.27,-1400.82,38.2333,252.847,-49.3177],[9126.71,-1302.55,37.7167,251.516,-48.5615],[9037.49,-1202.85,37.1833,250.163,-47.7645],[8944.54,-1101.91,36.6333,248.791,-46.9251],[8850.62,-1002.89,36.0833,247.445,-46.0676],[8749.94,-900.018,35.5,246.049,-45.1382],[8651.08,-802.216,34.9333,244.728,-44.2155],[8545.27,-700.986,34.3333,243.37,-43.2169],[8438.28,-602.179,33.7333,242.058,-42.1962],[8324.06,-500.548,33.1,240.728,-41.0944],[8208.51,-401.693,32.4667,239.458,-39.9678],[8085.44,-300.675,31.8,238.194,-38.755],[7957.75,-200.413,31.1167,236.98,-37.4835],[7825.3,-101.2,30.4167,235.832,-36.1515],[7684.76,-1.10988,29.6833,234.738,-34.7246],[7535.85,99.2583,28.9167,233.726,-33.199],[7378.3,199.265,28.1167,232.823,-31.5716],[7211.8,298.227,27.2833,232.062,-29.8393],[7029.22,399.039,26.3833,231.462,-27.9285],[6833.34,498.504,25.4333,231.098,-25.8699],[6613.02,599.991,24.3833,231.041,-23.55],[6370.62,699.395,23.25,231.42,-21.0011],[6090.25,798.993,21.9667,232.442,-18.0703],[5746.83,899.532,20.4333,234.555,-14.5277],[5284.57,999.632,18.4333,238.895,-9.88539],[4218.73,1090.38,14.0833,255.26,-0.0037937]]], + [26,1165.06,[[9751.55,-2001.77,42.0167,260.962,-54.184],[9677.4,-1900.13,41.5333,259.615,-53.5689],[9605.13,-1803.25,41.0667,258.32,-52.9632],[9526.97,-1700.85,40.5667,256.938,-52.3013],[9450.68,-1603.25,40.0833,255.61,-51.6485],[9368.34,-1500.45,39.5667,254.201,-50.9362],[9287.87,-1402.49,39.0667,252.848,-50.2326],[9203.9,-1302.87,38.55,251.464,-49.4903],[9116.35,-1201.75,38.0167,250.053,-48.7078],[9027.92,-1102.42,37.4833,248.661,-47.9084],[8935.78,-1001.86,36.9333,247.248,-47.0661],[8839.85,-900.288,36.3667,245.819,-46.179],[8742.91,-800.802,35.8,244.42,-45.2721],[8642.04,-700.6,35.2167,243.016,-44.3177],[8540.09,-602.671,34.6333,241.65,-43.3419],[8431.11,-501.65,34.0167,240.254,-42.2869],[8317.91,-400.616,33.3833,238.874,-41.1783],[8203.41,-302.374,32.75,237.555,-40.0442],[8081.46,-202.018,32.0833,236.238,-38.8228],[7951.83,-100.067,31.3833,234.94,-37.5101],[7820.58,-1.67269,30.6833,233.738,-36.1667],[7678.13,99.7451,29.9333,232.564,-34.6938],[7530.56,199.072,29.1667,231.496,-33.1531],[7371.17,299.971,28.35,230.517,-31.474],[7202.84,399.53,27.5,229.687,-29.6869],[7021.87,498.781,26.6,229.033,-27.753],[6820.88,599.852,25.6167,228.606,-25.595],[6602.45,699.13,24.5667,228.505,-23.2441],[6355.04,798.771,23.4,228.858,-20.5841],[6062.43,899.766,22.05,229.925,-17.4571],[5706.59,999.129,20.45,232.18,-13.7079],[5192.8,1099.85,18.2167,237.286,-8.45823],[4302.83,1165.06,14.55,251.152,-0.0288966]]], + [27,1241.16,[[9804.91,-2001.25,42.8,261.159,-54.9542],[9734.62,-1902.06,42.3333,259.826,-54.3719],[9661.12,-1800.62,41.85,258.448,-53.7568],[9586.93,-1700.53,41.3667,257.075,-53.1292],[9512.04,-1601.78,40.8833,255.707,-52.4888],[9433.82,-1501.08,40.3833,254.299,-51.8128],[9354.85,-1401.86,39.8833,252.901,-51.1226],[9272.44,-1300.92,39.3667,251.467,-50.3943],[9189.22,-1201.61,38.85,250.047,-49.6504],[9102.46,-1100.84,38.3167,248.596,-48.8659],[9014.81,-1001.85,37.7833,247.165,-48.0642],[8923.51,-901.659,37.2333,245.711,-47.2193],[8828.46,-800.475,36.6667,244.239,-46.329],[8732.4,-701.39,36.1,242.797,-45.4186],[8632.46,-601.612,35.5167,241.347,-44.4601],[8528.56,-501.367,34.9167,239.896,-43.4514],[8420.57,-400.891,34.3,238.451,-42.3905],[8308.41,-300.431,33.6667,237.021,-41.275],[8191.97,-200.246,33.0167,235.617,-40.1031],[8071.12,-100.607,32.35,234.248,-38.8725],[7945.76,-1.7965,31.6667,232.927,-37.5811],[7812.65,98.1722,30.95,231.639,-36.1944],[7671.54,198.717,30.2,230.406,-34.7084],[7522.18,299.217,29.4167,229.256,-33.1189],[7364.27,399.007,28.6,228.218,-31.4224],[7194.25,499.254,27.7333,227.311,-29.58],[7011.62,598.846,26.8167,226.588,-27.5868],[6809.09,699.818,25.8167,226.098,-25.3643],[6589.19,798.538,24.75,225.946,-22.9444],[6333.42,899.604,23.5333,226.279,-20.1315],[6036.05,999.267,22.15,227.364,-16.881],[5657.02,1099.84,20.4333,229.847,-12.8009],[5080.38,1199.54,17.9167,235.975,-6.81338],[4378.68,1241.15,15,247.145,-0.0322122]]], + [28,1318.57,[[9852.63,-2001.65,43.5833,261.43,-55.7226],[9783.61,-1901.42,43.1167,260.066,-55.152],[9713.96,-1802.41,42.65,258.703,-54.5701],[9641.14,-1701.17,42.1667,257.294,-53.9553],[9567.63,-1601.27,41.6833,255.888,-53.3277],[9493.43,-1502.73,41.2,254.488,-52.6873],[9415.94,-1402.25,40.7,253.046,-52.011],[9337.7,-1303.25,40.2,251.613,-51.3204],[9256.07,-1202.56,39.6833,250.142,-50.5914],[9170.96,-1100.33,39.15,248.638,-49.8223],[9087.68,-1002.98,38.6333,247.195,-49.0608],[8998.15,-901.211,38.0833,245.678,-48.2322],[8907.7,-801.372,37.5333,244.182,-47.3847],[8813.53,-700.558,36.9667,242.667,-46.4916],[8718.38,-601.853,36.4,241.181,-45.5778],[8619.4,-502.479,35.8167,239.684,-44.6154],[8516.49,-402.661,35.2167,238.185,-43.6022],[8409.54,-302.636,34.6,236.69,-42.5361],[8295.54,-200.061,33.95,235.17,-41.3849],[8180.2,-100.458,33.3,233.713,-40.2054],[8060.52,-1.43144,32.6333,232.29,-38.9663],[7933.33,99.0848,31.9333,230.88,-37.6334],[7801.49,198.268,31.2167,229.536,-36.2351],[7661.74,297.969,30.4667,228.244,-34.7358],[7510.67,399.63,29.6667,227.007,-33.0968],[7354.28,498.343,28.85,225.909,-31.3827],[7182.66,599.261,27.9667,224.922,-29.484],[6998.48,699.176,27.0333,224.126,-27.4301],[6797.89,798.441,26.0333,223.577,-25.1796],[6569.83,899.595,24.9167,223.366,-22.6121],[6312.89,999.205,23.6833,223.667,-19.7203],[6003.84,1099.71,22.2333,224.798,-16.2635],[5605.71,1199.65,20.4167,227.502,-11.8835],[4912.35,1299.88,17.3833,235.535,-4.589],[4446.45,1318.57,15.4333,243.232,-0.0124968]]], + [29,1397.21,[[9894.67,-2003.08,44.3667,261.77,-56.4888],[9826.92,-1901.8,43.9,260.378,-55.9301],[9758.55,-1801.74,43.4333,258.985,-55.3603],[9689.54,-1702.89,42.9667,257.592,-54.7789],[9617.41,-1601.83,42.4833,256.152,-54.1645],[9544.6,-1502.11,42,254.715,-53.5373],[9468.56,-1400.4,41.5,253.232,-52.8747],[9391.78,-1300.16,41,251.756,-52.1979],[9314.27,-1201.43,40.5,250.288,-51.5065],[9233.4,-1101.01,39.9833,248.781,-50.7765],[9151.74,-1002.23,39.4667,247.286,-50.0304],[9066.6,-902.024,38.9333,245.757,-49.2431],[8977.92,-800.572,38.3833,244.198,-48.4126],[8888.33,-701.063,37.8333,242.661,-47.5628],[8795.07,-600.599,37.2667,241.102,-46.6669],[8700.84,-502.255,36.7,239.571,-45.7501],[8600.01,-400.468,36.1,237.985,-44.756],[8498.08,-301.124,35.5,236.438,-43.7379],[8392.17,-201.599,34.8833,234.893,-42.666],[8282.17,-102.145,34.25,233.36,-41.5382],[8165.05,-0.520169,33.5833,231.81,-40.3213],[8046.55,97.9177,32.9167,230.332,-39.0739],[7920.64,197.799,32.2167,228.864,-37.7314],[7787.07,298.558,31.4833,227.428,-36.289],[7645.62,399.592,30.7167,226.047,-34.7425],[7499.16,498.209,29.9333,224.775,-33.1222],[7338,599.862,29.0833,223.568,-31.3196],[7168.05,699.5,28.2,222.519,-29.3992],[6982.43,799.72,27.25,221.647,-27.2834],[6780.47,898.873,26.2333,221.031,-24.9658],[6551.23,999.353,25.1,220.763,-22.3245],[6289.84,1098.87,23.8333,221.031,-19.3123],[5969.46,1199.89,22.3167,222.206,-15.6434],[5545.31,1299.97,20.3667,225.209,-10.8738],[4510.29,1397.21,15.8667,239.333,-0.00746923]]], + [30,1476.98,[[9928.56,-2001.96,45.1333,262.129,-57.233],[9864.45,-1903.31,44.6833,260.76,-56.7058],[9797.35,-1802.17,44.2167,259.339,-56.1481],[9729.63,-1702.25,43.75,257.917,-55.5791],[9658.85,-1600.06,43.2667,256.444,-54.9776],[9589.86,-1502.66,42.8,255.023,-54.3848],[9517.76,-1403.11,42.3167,253.553,-53.7581],[9442.46,-1301.58,41.8167,252.037,-53.0958],[9366.44,-1201.53,41.3167,250.526,-52.4191],[9289.69,-1102.99,40.8167,249.023,-51.7277],[9209.62,-1002.78,40.3,247.478,-50.9975],[9126.16,-901.063,39.7667,245.896,-50.2266],[9041.85,-801.138,39.2333,244.328,-49.4379],[8956.71,-703.024,38.7,242.776,-48.6312],[8865.33,-600.79,38.1333,241.148,-47.7539],[8772.99,-500.656,37.5667,239.544,-46.8555],[8679.7,-402.653,37,237.969,-45.9357],[8579.88,-301.239,36.4,236.334,-44.9381],[8478.98,-202.277,35.8,234.738,-43.9158],[8371.3,-100.518,35.1667,233.099,-42.8097],[8262.4,-1.56837,34.5333,231.514,-41.6756],[8146.46,99.5092,33.8667,229.909,-40.4513],[8026.22,199.789,33.1833,228.337,-39.1639],[7901.55,298.975,32.4833,226.813,-37.811],[7769.34,398.986,31.75,225.316,-36.3568],[7629.33,499.216,30.9833,223.873,-34.7967],[7481.28,599.015,30.1833,222.51,-33.126],[7321.77,699.611,29.3333,221.237,-31.3046],[7150.38,799.919,28.4333,220.103,-29.326],[6966.65,898.76,27.4833,219.165,-27.1849],[6760.18,999.45,26.4333,218.464,-24.7606],[6529.89,1099.23,25.2833,218.137,-22.0436],[6260.79,1199.74,23.9667,218.376,-18.8669],[5932.86,1299.79,22.4,219.588,-15.0203],[5479.63,1399.7,20.3,222.944,-9.80941],[4570.15,1476.98,16.3,235.448,-0.0175861]]], + [31,1557.79,[[9956.8,-2002.04,45.9,262.552,-57.9748],[9893.87,-1902.4,45.45,261.16,-57.459],[9828.02,-1800.23,44.9833,259.712,-56.9134],[9763.95,-1702.85,44.5333,258.314,-56.3766],[9696.91,-1603.07,44.0667,256.863,-55.8087],[9626.82,-1501.02,43.5833,255.359,-55.2081],[9556.07,-1400.31,43.1,253.856,-54.5948],[9484.67,-1300.96,42.6167,252.354,-53.9683],[9412.6,-1202.99,42.1333,250.856,-53.3284],[9337.35,-1103.11,41.6333,249.31,-52.6522],[9258.83,-1001.5,41.1167,247.72,-51.9376],[9179.56,-901.528,40.6,246.138,-51.2069],[9096.92,-800.074,40.0667,244.516,-50.4351],[9013.45,-700.415,39.5333,242.908,-49.6453],[8929.17,-602.576,39,241.316,-48.8372],[8838.71,-500.643,38.4333,239.644,-47.958],[8747.31,-400.821,37.8667,237.996,-47.0574],[8652.25,-300.298,37.2833,236.327,-46.1074],[8556.19,-202.074,36.7,234.691,-45.134],[8453.54,-100.771,36.0833,233,-44.079],[8349.78,-2.10895,35.4667,231.353,-42.997],[8239.18,98.9879,34.8167,229.671,-41.8272],[8124.44,199.543,34.15,228.01,-40.5957],[8005.45,299.271,33.4667,226.38,-39.3],[7882.1,397.875,32.7667,224.795,-37.9376],[7748.3,499.469,32.0167,223.201,-36.4388],[7609.76,598.923,31.25,221.694,-34.865],[7460.2,699.899,30.4333,220.236,-33.1433],[7302.37,799.472,29.5833,218.897,-31.3029],[7132.8,898.664,28.6833,217.693,-29.3025],[6944.63,999.584,27.7,216.653,-27.0596],[6740.32,1098.6,26.65,215.887,-24.6038],[6505.82,1199.17,25.4667,215.489,-21.7696],[6232.69,1299.35,24.1167,215.688,-18.465],[5894.07,1399.36,22.4833,216.946,-14.3943],[5401.53,1499.69,20.1833,220.787,-8.60435],[4622.15,1557.79,16.7167,231.644,-0.00308729]]], + [32,1639.55,[[9979.27,-2003.41,46.6667,263.038,-58.7137],[9917.53,-1902.78,46.2167,261.624,-58.2095],[9855.24,-1803.24,45.7667,260.205,-57.6952],[9790.06,-1701.18,45.3,258.73,-57.1511],[9724.28,-1600.33,44.8333,257.252,-56.5956],[9657.9,-1500.7,44.3667,255.771,-56.0285],[9590.91,-1402.32,43.9,254.289,-55.4496],[9520.89,-1301.74,43.4167,252.754,-54.8374],[9450.22,-1202.53,42.9333,251.22,-54.2119],[9376.43,-1101.36,42.4333,249.635,-53.5505],[9301.93,-1001.69,41.9333,248.055,-52.8744],[9224.21,-900.291,41.4167,246.428,-52.1598],[9145.74,-800.543,40.9,244.809,-51.4287],[9066.52,-702.465,40.3833,243.2,-50.6808],[8983.94,-602.998,39.85,241.551,-49.8907],[8897.93,-502.336,39.3,239.866,-49.0564],[8808.41,-400.685,38.7333,238.15,-48.1756],[8717.97,-301.153,38.1667,236.457,-47.273],[8623.9,-200.94,37.5833,234.74,-46.3205],[8526.13,-100.272,36.9833,233.008,-45.3158],[8427.31,-2.08189,36.3833,231.313,-44.2853],[8321.87,98.8392,35.75,229.568,-43.1693],[8212.44,199.466,35.1,227.832,-41.9933],[8098.92,299.523,34.4333,226.113,-40.7548],[7981.2,398.726,33.75,224.425,-39.451],[7856.27,499.065,33.0333,222.741,-38.0463],[7723.9,599.951,32.2833,221.083,-36.5354],[7586.85,698.659,31.5167,219.511,-34.9481],[7438.93,798.816,30.7,217.984,-33.2104],[7279.75,899.389,29.8333,216.547,-31.3148],[7108.91,999.257,28.9167,215.252,-29.2545],[6922.78,1098.83,27.9333,214.141,-26.9844],[6714.25,1199.31,26.85,213.282,-24.4175],[6478.97,1299.12,25.65,212.818,-21.5029],[6198.64,1399.99,24.25,212.982,-18.0248],[5849.61,1499.4,22.55,214.297,-13.7227],[5307.62,1599.63,20,218.8,-7.2109],[4670.22,1639.55,17.1333,227.848,-0.00361859]]], + [33,1722.17,[[9993.72,-2002.4,47.4167,263.533,-59.4313],[9933.15,-1900.81,46.9667,262.098,-58.9384],[9872.03,-1800.3,46.5167,260.658,-58.4356],[9810.37,-1700.89,46.0667,259.213,-57.9226],[9748.16,-1602.59,45.6167,257.763,-57.3993],[9683.07,-1501.84,45.15,256.256,-56.8455],[9617.38,-1402.32,44.6833,254.746,-56.2799],[9548.72,-1300.55,44.2,253.18,-55.6816],[9479.42,-1200.14,43.7167,251.613,-55.0702],[9409.47,-1101.1,43.2333,250.046,-54.4453],[9336.44,-1000.11,42.7333,248.428,-53.7845],[9262.72,-900.626,42.2333,246.812,-53.1088],[9188.31,-802.671,41.7333,245.202,-52.4177],[9110.68,-703.078,41.2167,243.545,-51.6871],[9029.77,-602.03,40.6833,241.843,-50.915],[8948.06,-502.793,40.15,240.154,-50.1244],[8862.97,-402.376,39.6,238.427,-49.2891],[8774.41,-300.987,39.0333,236.666,-48.407],[8684.94,-201.726,38.4667,234.927,-47.5026],[8591.89,-101.801,37.8833,233.163,-46.5479],[8495.18,-1.4408,37.2833,231.38,-45.5404],[8394.72,99.115,36.6667,229.586,-44.4774],[8290.41,199.615,36.0333,227.788,-43.3564],[8182.17,299.795,35.3833,225.996,-42.1746],[8069.89,399.38,34.7167,224.22,-40.9292],[7953.47,498.084,34.0333,222.471,-39.6175],[7829.93,597.882,33.3167,220.724,-38.2034],[7699.04,698.183,32.5667,218.999,-36.6815],[7560.59,798.357,31.7833,217.324,-35.0463],[7411.32,899.702,30.95,215.696,-33.2564],[7253.91,999.3,30.0833,214.189,-31.3411],[7081.9,1099.84,29.15,212.797,-29.2195],[6894.7,1199.7,28.15,211.596,-26.8823],[6685.29,1299.98,27.05,210.656,-24.2409],[6449.34,1399.02,25.8333,210.123,-21.2436],[6165.43,1499.35,24.4,210.242,-17.6293],[5799.59,1599.72,22.6,211.643,-13.0032],[5183.8,1699.78,19.6833,217.194,-5.45083],[4714.34,1722.16,17.55,224.06,-0.0197491]]], + [34,1805.55,[[10002.4,-2002.83,48.1667,264.085,-60.1459],[9943.02,-1900.27,47.7167,262.632,-59.6644],[9885.3,-1802.53,47.2833,261.226,-59.1916],[9824.84,-1702.09,46.8333,259.76,-58.6908],[9763.83,-1602.75,46.3833,258.289,-58.1797],[9700,-1500.91,45.9167,256.757,-57.6387],[9635.58,-1400.29,45.45,255.221,-57.0863],[9570.58,-1300.9,44.9833,253.681,-56.522],[9505,-1202.76,44.5167,252.139,-55.9457],[9436.45,-1102.45,44.0333,250.54,-55.3358],[9364.87,-1000.14,43.5333,248.886,-54.6907],[9295.04,-902.647,43.05,247.288,-54.053],[9222.13,-803.285,42.55,245.637,-53.3783],[9146.07,-702.222,42.0333,243.936,-52.6649],[9069.28,-602.82,41.5167,242.241,-51.9345],[8989.24,-501.977,40.9833,240.499,-51.1624],[8908.42,-402.951,40.45,238.769,-50.3714],[8824.26,-302.761,39.9,236.999,-49.5355],[8736.67,-201.613,39.3333,235.193,-48.6523],[8648.2,-102.604,38.7667,233.408,-47.7465],[8553.54,-0.132735,38.1667,231.544,-46.7621],[8457.88,99.8738,37.5667,229.712,-45.7513],[8361.22,197.381,36.9667,227.915,-44.7136],[8258.1,297.558,36.3333,226.062,-43.5887],[8148.33,399.914,35.6667,224.165,-42.3712],[8037.31,499.052,35,222.33,-41.1192],[7919.4,599.635,34.3,220.477,-39.7672],[7797.23,698.83,33.5833,218.668,-38.3429],[7667.82,798.482,32.8333,216.878,-36.8092],[7530.94,897.955,32.05,215.134,-35.1602],[7383.4,998.532,31.2167,213.433,-33.3539],[7224.81,1099.14,30.3333,211.821,-31.3821],[7054.79,1198.64,29.4,210.353,-29.237],[6866.68,1298.91,28.3833,209.054,-26.8322],[6656.55,1399.15,27.2667,208.023,-24.1155],[6416.9,1498.82,26.0167,207.406,-20.9922],[6126.33,1599.56,24.5333,207.482,-17.1944],[5747.49,1699.38,22.65,208.965,-12.2773],[4983.73,1799.88,19.0167,216.732,-2.75211],[4750.8,1805.55,17.95,220.342,-0.00956453]]], + [35,1889.61,[[10003.2,-2000.97,48.9,264.639,-60.84],[9947.09,-1901.29,48.4667,263.224,-60.3873],[9890.49,-1802.6,48.0333,261.801,-59.9257],[9831.2,-1701.17,47.5833,260.316,-59.4367],[9771.38,-1600.83,47.1333,258.824,-58.9377],[9711.03,-1501.6,46.6833,257.325,-58.4284],[9650.14,-1403.48,46.2333,255.821,-57.9086],[9586.44,-1302.93,45.7667,254.256,-57.3582],[9519.85,-1200.09,45.2833,252.631,-56.7756],[9454.98,-1102.08,44.8167,251.058,-56.2007],[9387.18,-1001.9,44.3333,249.428,-55.5921],[9318.75,-903.111,43.85,247.796,-54.9699],[9247.31,-802.385,43.35,246.108,-54.3115],[9175.2,-703.178,42.85,244.422,-53.6378],[9099.98,-602.282,42.3333,242.683,-52.925],[9024.04,-503.054,41.8167,240.95,-52.1951],[8944.9,-402.397,41.2833,239.168,-51.4233],[8862.48,-300.506,40.7333,237.342,-50.6072],[8779.24,-200.583,40.1833,235.529,-49.7703],[8695.17,-102.656,39.6333,233.732,-48.912],[8605.12,-1.00347,39.05,231.847,-47.978],[8514.13,98.3418,38.4667,229.986,-47.019],[8419.57,198.085,37.8667,228.103,-46.0059],[8321.36,297.985,37.25,226.203,-44.9362],[8219.41,397.787,36.6167,224.295,-43.8068],[8110.9,499.735,35.95,222.339,-42.5838],[8001.17,598.452,35.2833,220.445,-41.3255],[7884.62,698.577,34.5833,218.529,-39.9657],[7761.07,799.537,33.85,216.611,-38.4986],[7633.16,898.569,33.1,214.754,-36.9531],[7494.99,999.424,32.3,212.903,-35.2545],[7349.15,1099.16,31.4667,211.131,-33.4308],[7192.43,1198.85,30.5833,209.445,-31.4385],[7021.4,1299.03,29.6333,207.873,-29.2302],[6832.45,1399.58,28.6,206.477,-26.7552],[6621.66,1499.61,27.4667,205.357,-23.9602],[6378.44,1599.67,26.1833,204.66,-20.706],[6084.69,1699.46,24.6667,204.695,-16.762],[5686.59,1799.71,22.6667,206.306,-11.4559],[4783.36,1889.61,18.35,216.627,-0.0148744]]], + [36,1974.25,[[9998.22,-2000.69,49.6333,265.246,-61.5313],[9943.2,-1900.12,49.2,263.817,-61.0893],[9887.7,-1800.51,48.7667,262.378,-60.6387],[9831.72,-1701.9,48.3333,260.931,-60.1792],[9773.08,-1600.55,47.8833,259.421,-59.6922],[9713.92,-1500.29,47.4333,257.902,-59.1953],[9654.23,-1401.15,46.9833,256.377,-58.6879],[9594.02,-1303.12,46.5333,254.845,-58.1699],[9531.03,-1202.67,46.0667,253.252,-57.6214],[9467.46,-1103.47,45.6,251.653,-57.0608],[9401.03,-1002.04,45.1167,249.993,-56.4673],[9333.99,-901.985,44.6333,248.33,-55.8603],[9266.33,-803.315,44.15,246.665,-55.2396],[9195.7,-702.723,43.65,244.942,-54.5825],[9122.02,-600.38,43.1333,243.163,-53.8872],[9050.04,-502.91,42.6333,241.444,-53.1982],[8972.54,-400.67,42.1,239.616,-52.4453],[8894.28,-300.238,41.5667,237.794,-51.6734],[8815.26,-201.638,41.0333,235.982,-50.882],[8732.99,-101.903,40.4833,234.125,-50.045],[8647.37,-1.24146,39.9167,232.228,-49.16],[8560.9,97.2646,39.35,230.35,-48.2514],[8468.4,199.183,38.75,228.386,-47.2632],[8374.93,298.616,38.15,226.452,-46.2475],[8277.87,398.185,37.5333,224.499,-45.1744],[8177.11,497.636,36.9,222.535,-44.0409],[8069.88,599.203,36.2333,220.52,-42.8127],[7958.72,699.94,35.55,218.517,-41.5162],[7843.54,799.547,34.85,216.539,-40.148],[7721.44,899.948,34.1167,214.555,-38.6709],[7595.06,998.388,33.3667,212.63,-37.1138],[7458.55,1098.59,32.5667,210.706,-35.4012],[7311.59,1199.55,31.7167,208.823,-33.5237],[7156.76,1298.35,30.8333,207.06,-31.5108],[6984.84,1399.22,29.8667,205.381,-29.2382],[6798.18,1498.52,28.8333,203.904,-26.7324],[6583.82,1599.87,27.6667,202.672,-23.8159],[6340.4,1699.08,26.3667,201.895,-20.4706],[6037.3,1799.96,24.7833,201.886,-16.2875],[5620.45,1899.72,22.6667,203.649,-10.5794],[4812,1974.25,18.75,212.916,-0.03627]]], + [37,2059.4,[[9987.44,-2002.13,50.3667,265.906,-62.2193],[9933.51,-1900.64,49.9333,264.463,-61.7883],[9879.11,-1800.12,49.5,263.01,-61.3487],[9824.23,-1700.58,49.0667,261.548,-60.9004],[9768.88,-1602.02,48.6333,260.078,-60.4431],[9710.91,-1500.74,48.1833,258.541,-59.9584],[9652.41,-1400.56,47.7333,256.997,-59.4637],[9593.41,-1301.49,47.2833,255.445,-58.9585],[9533.88,-1203.55,46.8333,253.886,-58.4427],[9471.61,-1103.18,46.3667,252.263,-57.8961],[9406.52,-1000.55,45.8833,250.576,-57.3174],[9343.1,-902.738,45.4167,248.943,-56.7461],[9276.83,-802.784,44.9333,247.248,-56.1409],[9207.64,-700.849,44.4333,245.491,-55.5003],[9137.81,-600.424,43.9333,243.734,-54.8443],[9067.32,-501.53,43.4333,241.976,-54.1726],[8993.81,-400.971,42.9167,240.162,-53.4616],[8919.6,-302.091,42.4,238.352,-52.733],[8842.26,-201.809,41.8667,236.49,-51.9619],[8761.73,-100.319,41.3167,234.578,-51.146],[8680.41,-0.813379,40.7667,232.677,-50.3086],[8595.79,99.6039,40.2,230.734,-49.4228],[8510.34,197.857,39.6333,228.809,-48.513],[8418.93,299.496,39.0333,226.795,-47.523],[8326.58,398.641,38.4333,224.809,-46.505],[8230.67,497.904,37.8167,222.802,-45.4288],[8128.49,599.598,37.1667,220.73,-44.2611],[8025.19,698.237,36.5167,218.707,-43.0584],[7915.39,798.595,35.8333,216.641,-41.756],[7801.63,897.799,35.1333,214.598,-40.3806],[7678.29,999.986,34.3833,212.499,-38.8605],[7550.67,1099.99,33.6167,210.463,-37.2565],[7415.82,1199.47,32.8167,208.467,-35.5288],[7270.66,1299.63,31.9667,206.509,-33.6335],[7114.84,1399.37,31.0667,204.635,-31.5608],[6945.04,1499.15,30.1,202.877,-29.2615],[6757.73,1598.75,29.05,201.296,-26.6828],[6542.99,1699.86,27.8667,199.966,-23.6832],[6296.38,1799.36,26.5333,199.1,-20.1998],[5987.43,1899.98,24.9,199.049,-15.8142],[5545.85,1999.75,22.6333,201.02,-9.59933]]], + [38,2144.96,[[9968.78,-2001.42,51.0833,266.56,-62.8879],[9917.96,-1902.98,50.6667,265.161,-62.4838],[9864.65,-1801.53,50.2333,263.696,-62.0553],[9810.88,-1701.05,49.8,262.221,-61.6182],[9756.64,-1601.56,49.3667,260.735,-61.1724],[9701.94,-1503.05,48.9333,259.241,-60.7175],[9644.64,-1401.83,48.4833,257.679,-60.2354],[9586.83,-1301.7,48.0333,256.108,-59.7431],[9528.51,-1202.69,47.5833,254.529,-59.2403],[9467.5,-1101.21,47.1167,252.884,-58.7075],[9405.94,-1000.96,46.65,251.232,-58.1629],[9343.83,-901.967,46.1833,249.573,-57.6062],[9278.92,-800.77,45.7,247.85,-57.0164],[9213.41,-700.952,45.2167,246.122,-56.4129],[9147.32,-602.532,44.7333,244.391,-55.7953],[9078.32,-502.208,44.2333,242.598,-55.1412],[9006.35,-400.154,43.7167,240.745,-54.4486],[8936.05,-302.976,43.2167,238.953,-53.7618],[8860.36,-201.06,42.6833,237.044,-53.0108],[8783.94,-100.966,42.15,235.141,-52.2403],[8706.8,-2.71823,41.6167,233.245,-51.4497],[8624.03,99.618,41.05,231.242,-50.5872],[8540.43,199.811,40.4833,229.252,-49.7009],[8456,297.83,39.9167,227.28,-48.7902],[8365.71,399.214,39.3167,225.215,-47.7988],[8274.49,498.093,38.7167,223.177,-46.7788],[8177.19,599.709,38.0833,221.06,-45.6703],[8078.85,698.455,37.45,218.984,-44.5286],[7974.21,799.252,36.7833,216.849,-43.2901],[7865.76,899.173,36.1,214.721,-41.981],[7753.41,997.914,35.4,212.613,-40.5978],[7631.61,1099.59,34.65,210.445,-39.0678],[7505.6,1199.05,33.8833,208.336,-37.4523],[7369.68,1299.95,33.0667,206.224,-35.674],[7226.35,1399.35,32.2167,204.188,-33.7607],[7072.52,1498.26,31.3167,202.234,-31.6667],[6902.01,1598.75,30.3333,200.361,-29.301],[6714.15,1698.65,29.2667,198.67,-26.6476],[6499.16,1799.53,28.0667,197.239,-23.5627],[6249.57,1899.27,26.7,196.279,-19.937],[5935.09,1999.47,25.0167,196.183,-15.342]]], + [39,2230.86,[[9944.31,-2002.56,51.8,267.261,-63.5535],[9894.52,-1903.27,51.3833,265.853,-63.1596],[9842.29,-1800.93,50.95,264.377,-62.7419],[9791.63,-1703.44,50.5333,262.946,-62.3323],[9738.5,-1602.99,50.1,261.448,-61.898],[9684.92,-1503.53,49.6667,259.939,-61.4548],[9628.78,-1401.29,49.2167,258.362,-60.985],[9572.15,-1300.15,48.7667,256.774,-60.5052],[9515.02,-1200.11,48.3167,255.177,-60.0152],[9457.39,-1101.19,47.8667,253.571,-59.5146],[9399.26,-1003.41,47.4167,251.957,-59.0032],[9338.45,-903.219,46.95,250.276,-58.4612],[9274.89,-800.773,46.4667,248.527,-57.8869],[9212.98,-703.155,46,246.832,-57.3197],[9148.28,-603.409,45.5167,245.072,-56.7186],[9080.74,-501.7,45.0167,243.247,-56.0817],[9012.57,-401.511,44.5167,241.419,-55.4293],[8943.77,-302.864,44.0167,239.589,-54.7608],[8872.02,-202.572,43.5,237.699,-54.0527],[8797.26,-100.82,42.9667,235.75,-53.3029],[8721.77,-0.895594,42.4333,233.806,-52.5332],[8645.57,97.1745,41.9,231.868,-51.7432],[8563.82,199.314,41.3333,229.818,-50.881],[8481.26,299.303,40.7667,227.782,-49.9946],[8395.43,399.953,40.1833,225.704,-49.0562],[8308.73,498.259,39.6,223.646,-48.0909],[8216.14,599.598,38.9833,221.498,-47.0404],[8122.59,698.242,38.3667,219.382,-45.9584],[8022.93,799.261,37.7167,217.192,-44.7829],[7919.61,899.671,37.05,214.997,-43.5393],[7812.53,999.181,36.3667,212.806,-42.2239],[7698.96,1099.78,35.65,210.582,-40.7994],[7581.39,1198.68,34.9167,208.393,-39.2936],[7454.29,1299.73,34.1333,206.165,-37.6308],[7320.11,1399.95,33.3167,203.977,-35.8373],[7178.65,1498.63,32.4667,201.863,-33.9061],[7024.01,1598.5,31.55,199.79,-31.7507],[6852.85,1699.57,30.55,197.802,-29.3159],[6664.52,1799.64,29.4667,196.004,-26.5847],[6452.32,1898.82,28.2667,194.491,-23.4549],[6196.94,1999.83,26.85,193.425,-19.6368]]], + [40,2316.98,[[9912.04,-2001.66,52.5,267.953,-64.2005],[9863.25,-1901.55,52.0833,266.536,-63.8166],[9814.05,-1802.31,51.6667,265.106,-63.4252],[9762.44,-1700.02,51.2333,263.608,-63.0102],[9712.39,-1602.58,50.8167,262.156,-62.6031],[9659.9,-1502.19,50.3833,260.634,-62.1714],[9606.96,-1402.78,49.95,259.102,-61.7308],[9551.5,-1300.62,49.5,257.499,-61.2636],[9497.64,-1203.26,49.0667,255.946,-60.8042],[9441.22,-1103.26,48.6167,254.322,-60.3171],[9382.19,-1000.73,48.15,252.629,-59.8007],[9324.77,-903.029,47.7,250.987,-59.2918],[9264.7,-802.927,47.2333,249.277,-58.7521],[9201.92,-700.577,46.75,247.496,-58.1803],[9140.77,-603.055,46.2833,245.771,-57.6152],[9074.66,-500.003,45.7833,243.916,-56.9954],[9010.16,-401.817,45.3,242.118,-56.3816],[8942.84,-301.747,44.8,240.255,-55.7311],[8874.9,-203.225,44.3,238.389,-55.0644],[8804.05,-103.067,43.7833,236.461,-54.358],[8730.22,-1.45943,43.25,234.471,-53.6096],[8655.69,98.313,42.7167,232.485,-52.8412],[8578.09,199.254,42.1667,230.443,-52.0271],[8499.74,298.189,41.6167,228.409,-51.1905],[8418.23,397.994,41.05,226.326,-50.3044],[8333.5,498.447,40.4667,224.198,-49.3658],[8245.46,599.315,39.8667,222.029,-48.3718],[8156.53,697.658,39.2667,219.886,-47.3481],[8061.69,798.687,38.6333,217.656,-46.2343],[7963.32,899.366,37.9833,215.408,-45.0551],[7861.33,999.414,37.3167,213.151,-43.8067],[7755.65,1098.54,36.6333,210.896,-42.4854],[7643.57,1198.72,35.9167,208.603,-41.0534],[7524.91,1299.36,35.1667,206.294,-39.5035],[7399.47,1399.82,34.3833,203.992,-37.8282],[7267.07,1499.41,33.5667,201.727,-36.0196],[7124.75,1599.26,32.7,199.492,-34.0316],[6969.38,1699.97,31.7667,197.3,-31.8125],[6800.48,1799.89,30.7667,195.229,-29.3475],[6614.67,1898.67,29.6833,193.345,-26.5799],[6399.5,1998.92,28.45,191.705,-23.3157]]], + [41,2403.27,[[9873.92,-2002.75,53.2,268.689,-64.8448],[9826.14,-1901.82,52.7833,267.264,-64.4709],[9777.96,-1801.75,52.3667,265.826,-64.0896],[9729.36,-1702.54,51.95,264.376,-63.701],[9678.4,-1600.29,51.5167,262.855,-63.2888],[9628.97,-1502.88,51.1,261.382,-62.8845],[9577.13,-1402.54,50.6667,259.837,-62.4555],[9524.85,-1303.18,50.2333,258.281,-62.0176],[9470.08,-1201.07,49.7833,256.653,-61.5533],[9414.84,-1100.05,49.3333,255.013,-61.0789],[9359.11,-1000.14,48.8833,253.363,-60.5941],[9302.89,-901.365,48.4333,251.703,-60.0987],[9244.09,-800.134,47.9667,249.972,-59.5734],[9184.76,-700.15,47.5,248.231,-59.036],[9124.91,-601.43,47.0333,246.482,-58.4862],[9062.36,-500.533,46.55,244.663,-57.9033],[8999.26,-401.03,46.0667,242.837,-57.3063],[8935.59,-302.939,45.5833,241.006,-56.6949],[8869.13,-202.971,45.0833,239.107,-56.0467],[8799.81,-101.303,44.5667,237.141,-55.3597],[8729.86,-1.31639,44.05,235.174,-54.6547],[8659.25,96.9654,43.5333,233.207,-53.9311],[8583.38,199.688,42.9833,231.116,-53.14],[8509.1,297.402,42.45,229.093,-52.3516],[8429.43,399.147,41.8833,226.952,-51.4903],[8348.97,498.724,41.3167,224.821,-50.6041],[8265.34,598.934,40.7333,222.643,-49.665],[8178.45,699.542,40.1333,220.423,-48.6699],[8090.68,797.616,39.5333,218.227,-47.6444],[7997.09,898.349,38.9,215.939,-46.5282],[7900.02,998.713,38.25,213.631,-45.3456],[7799.4,1098.43,37.5833,211.312,-44.0928],[7692.58,1199.56,36.8833,208.936,-42.733],[7581.99,1299.26,36.1667,206.576,-41.2928],[7464.91,1399.38,35.4167,204.196,-39.7327],[7341.17,1499.28,34.6333,201.819,-38.045],[7210.58,1598.26,33.8167,199.475,-36.2216],[7067.5,1699.29,32.9333,197.113,-34.176],[6914.25,1799.13,32,194.836,-31.9329],[6744.9,1899.66,30.9833,192.642,-29.3963],[6558.81,1998.62,29.8833,190.642,-26.5475]]], + [42,2489.61,[[9828.11,-2001.89,53.8833,269.411,-65.4716],[9781.32,-1900.17,53.4667,267.979,-65.1073],[9736.02,-1803.32,53.0667,266.592,-64.751],[9688.45,-1703.26,52.65,265.134,-64.3727],[9638.55,-1600.13,52.2167,263.604,-63.9714],[9590.16,-1501.86,51.8,262.121,-63.5778],[9539.41,-1400.6,51.3667,260.565,-63.1601],[9488.22,-1300.33,50.9333,258.997,-62.7338],[9436.59,-1201.04,50.5,257.416,-62.2986],[9384.52,-1102.77,50.0667,255.824,-61.8542],[9329.99,-1001.79,49.6167,254.159,-61.3829],[9274.98,-901.933,49.1667,252.483,-60.9011],[9219.49,-803.203,48.7167,250.796,-60.4086],[9161.45,-702.027,48.25,249.035,-59.8863],[9102.9,-602.102,47.7833,247.265,-59.3518],[9043.83,-503.444,47.3167,245.486,-58.8049],[8982.1,-402.616,46.8333,243.635,-58.2249],[8919.83,-303.187,46.35,241.776,-57.6307],[8854.82,-201.819,45.85,239.847,-57.0007],[8789.22,-101.989,45.35,237.912,-56.3545],[8720.81,-0.468476,44.8333,235.908,-55.6695],[8651.76,99.3641,44.3167,233.902,-54.9662],[8582.08,197.485,43.8,231.896,-54.2442],[8509.48,296.952,43.2667,229.826,-53.4786],[8433.9,397.564,42.7167,227.696,-52.6669],[8355.28,499.11,42.15,225.507,-51.8064],[8275.9,598.481,41.5833,223.329,-50.9205],[8193.38,698.469,41,221.101,-49.9813],[8107.66,798.84,40.4,218.828,-48.9855],[8018.66,899.347,39.7833,216.516,-47.9298],[7926.31,999.733,39.15,214.172,-46.8106],[7830.55,1099.73,38.5,211.804,-45.624],[7731.28,1199.05,37.8333,209.423,-44.3662],[7625.91,1299.76,37.1333,206.981,-43],[7516.83,1399.01,36.4167,204.552,-41.5519],[7401.37,1498.64,35.6667,202.099,-39.9821],[7279.35,1598,34.8833,199.646,-38.2823],[7147.95,1698.36,34.05,197.173,-36.4059],[7006.86,1798.63,33.1667,194.728,-34.3404],[6853.06,1899.33,32.2167,192.324,-32.0318],[6686.09,1998.79,31.2,190.041,-29.4635]]], + [43,2575.95,[[9776.41,-2003.19,54.5667,270.174,-66.096],[9730.61,-1900.67,54.15,268.736,-65.7414],[9686.27,-1803.04,53.75,267.343,-65.3946],[9639.7,-1702.17,53.3333,265.878,-65.0264],[9592.74,-1602.16,52.9167,264.4,-64.6509],[9545.39,-1503.02,52.5,262.908,-64.268],[9495.72,-1400.85,52.0667,261.343,-63.8617],[9447.55,-1303.52,51.65,259.826,-63.4631],[9397.05,-1203.27,51.2167,258.234,-63.04],[9344.14,-1100.21,50.7667,256.568,-62.5912],[9292.75,-1002,50.3333,254.952,-62.1496],[9238.93,-901.095,49.8833,253.26,-61.6812],[9184.64,-801.309,49.4333,251.557,-61.2022],[9129.88,-702.657,48.9833,249.842,-60.7126],[9072.6,-601.566,48.5167,248.053,-60.1931],[9014.82,-501.73,48.05,246.253,-59.6614],[8956.53,-403.165,47.5833,244.443,-59.1172],[8895.62,-302.439,47.1,242.56,-58.5399],[8834.18,-203.116,46.6167,240.668,-57.9483],[8770.04,-101.863,46.1167,238.703,-57.3208],[8705.31,-2.15362,45.6167,236.732,-56.677],[8637.82,99.2363,45.1,234.69,-55.9943],[8569.7,198.932,44.5833,232.645,-55.2931],[8500.96,296.911,44.0667,230.599,-54.5729],[8427.1,399.297,43.5167,228.421,-53.7848],[8352.52,499.682,42.9667,226.246,-52.9739],[8277.25,598.038,42.4167,224.077,-52.1394],[8198.96,697.222,41.85,221.851,-51.2542],[8115.24,799.826,41.25,219.507,-50.288],[8030.68,899.912,40.65,217.181,-49.2911],[7945.29,997.443,40.05,214.878,-48.2627],[7854.23,1097.58,39.4167,212.475,-47.1418],[7757.38,1199.83,38.75,209.984,-45.9217],[7659.5,1298.78,38.0833,207.539,-44.6593],[7555.6,1399.09,37.3833,205.03,-43.2871],[7448.06,1497.92,36.6667,202.532,-41.8315],[7331.7,1599.24,35.9,199.95,-40.2165],[7211.4,1698,35.1167,197.42,-38.5036],[7079.26,1799.64,34.2667,194.818,-36.5723],[6940.17,1899.06,33.3833,192.291,-34.4853],[6788.57,1998.83,32.4333,189.8,-32.1502]]], + [44,2662.18,[[9717.06,-2002.62,55.2333,270.92,-66.7039],[9674.03,-1903.45,54.8333,269.535,-66.3728],[9628.84,-1800.96,54.4167,268.079,-66.0212],[9585.09,-1703.35,54.0167,266.667,-65.6773],[9539.14,-1602.52,53.6,265.182,-65.3121],[9492.8,-1502.54,53.1833,263.683,-64.9396],[9446.08,-1403.43,52.7667,262.17,-64.5598],[9397.07,-1301.31,52.3333,260.583,-64.1566],[9347.65,-1200.15,51.9,258.981,-63.745],[9299.73,-1103.81,51.4833,257.428,-63.341],[9247.53,-1000.8,51.0333,255.738,-62.8954],[9196.83,-902.645,50.6,254.096,-62.4569],[9143.74,-801.796,50.15,252.379,-61.9916],[9090.18,-702.07,49.7,250.649,-61.5157],[9036.17,-603.483,49.25,248.907,-61.0291],[8979.67,-502.463,48.7833,247.088,-60.5128],[8922.67,-402.701,48.3167,245.258,-59.9842],[8863.12,-300.721,47.8333,243.352,-59.4234],[8803.03,-200.13,47.35,241.435,-58.8486],[8742.4,-100.945,46.8667,239.51,-58.2594],[8681.25,-3.18825,46.3833,237.576,-57.6553],[8615.28,99.7108,45.8667,235.502,-56.9926],[8550.86,197.694,45.3667,233.489,-56.3342],[8483.69,297.272,44.85,231.405,-55.6355],[8413.71,398.253,44.3167,229.251,-54.8941],[8343.08,497.372,43.7833,227.097,-54.1317],[8269.56,597.611,43.2333,224.877,-53.3226],[8193.09,698.757,42.6667,222.595,-52.4639],[8115.88,797.711,42.1,220.32,-51.5791],[8035.63,897.252,41.5167,217.991,-50.6401],[7949.96,999.883,40.9,215.545,-49.6153],[7863.42,1099.81,40.2833,213.122,-48.5565],[7773.63,1199.57,39.65,210.662,-47.4326],[7680.54,1298.9,39,208.172,-46.2395],[7581.63,1399.94,38.3167,205.602,-44.9407],[7479.22,1499.78,37.6167,203.026,-43.5617],[7373.21,1598.13,36.9,200.458,-42.0978],[7258.53,1698.91,36.1333,197.8,-40.4721],[7137.45,1799.14,35.3333,195.14,-38.7089],[7009.79,1898.1,34.5,192.508,-36.7987],[6870.16,1998.63,33.6,189.846,-34.651]]], + [45,2748.22,[[9650.08,-2000.2,55.8833,271.647,-67.2965],[9607.97,-1900.32,55.4833,270.258,-66.9742],[9565.52,-1801.19,55.0833,268.855,-66.6458],[9522.73,-1702.83,54.6833,267.438,-66.3113],[9477.78,-1601.19,54.2667,265.948,-65.9561],[9432.44,-1500.41,53.85,264.442,-65.5938],[9386.73,-1400.49,53.4333,262.922,-65.2243],[9340.64,-1301.44,53.0167,261.388,-64.8473],[9294.17,-1203.29,52.6,259.84,-64.4627],[9245.43,-1102.16,52.1667,258.216,-64.0544],[9196.27,-1002.02,51.7333,256.577,-63.6374],[9146.7,-902.884,51.3,254.925,-63.2115],[9094.78,-801.009,50.85,253.195,-62.7594],[9042.41,-700.246,50.4,251.451,-62.2971],[8989.59,-600.609,49.95,249.693,-61.8243],[8936.32,-502.114,49.5,247.923,-61.3406],[8880.6,-401.194,49.0333,246.075,-60.8273],[8824.39,-301.537,48.5667,244.215,-60.3015],[8767.69,-203.161,48.1,242.343,-59.7631],[8708.45,-102.64,47.6167,240.394,-59.1916],[8646.62,-0.137941,47.1167,238.367,-58.5852],[8586.31,97.4903,46.6333,236.399,-57.9837],[8523.38,196.957,46.1333,234.356,-57.3452],[8457.75,298.084,45.6167,232.237,-56.6676],[8391.53,397.505,45.1,230.113,-55.9712],[8322.54,498.319,44.5667,227.918,-55.2319],[8252.91,597.264,44.0333,225.72,-54.4712],[8180.44,697.315,43.4833,223.455,-53.6637],[8105.06,798.26,42.9167,221.126,-52.8063],[8026.72,899.874,42.3333,218.734,-51.8959],[7947.61,999.123,41.75,216.354,-50.9565],[7865.45,1098.7,41.15,213.921,-49.9588],[7780.17,1198.37,40.5333,211.441,-48.8991],[7691.7,1297.86,39.9,208.921,-47.7735],[7597.61,1399.39,39.2333,206.305,-46.5466],[7502.54,1497.61,38.5667,203.732,-45.2753],[7399.24,1599.44,37.85,201.025,-43.8577],[7292.36,1699.55,37.1167,198.326,-42.351],[7179.36,1799.73,36.35,195.594,-40.7137],[7060.07,1899.3,35.55,192.856,-38.9361],[6931.78,1999.46,34.7,190.09,-36.969]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 58.804; +_maxRange = 8730.22; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg7.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg7.sqf new file mode 100644 index 0000000000..0287a76984 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg7.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg7 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[7960.36,-2001.8,22.2667,310.832,-32.2818],[7797.16,-1900.52,21.65,312.181,-31.3364],[7631.55,-1801.51,21.0333,313.656,-30.3858],[7458.92,-1702.21,20.4,315.309,-29.4046],[7274.36,-1600.33,19.7333,317.206,-28.3673],[7086.82,-1501.2,19.0667,319.27,-27.3264],[6886.61,-1400.11,18.3667,321.626,-26.2304],[6682.96,-1302.13,17.6667,324.185,-25.1325],[6460.84,-1200.64,16.9167,327.16,-23.9552],[6229.47,-1100.68,16.15,330.463,-22.7521],[5983.25,-1000.52,15.35,334.207,-21.4988],[5721.42,-900.744,14.5167,338.444,-20.1974],[5437.68,-800.148,13.6333,343.332,-18.8246],[5136.26,-701.469,12.7167,348.861,-17.4097],[4798.99,-600.576,11.7167,355.453,-15.8805],[4429.06,-500.882,10.65,363.172,-14.2692],[4005.75,-400.068,9.46667,372.625,-12.5103],[3517.77,-300.296,8.15,384.336,-10.5941],[2918.75,-200.091,6.6,399.888,-8.40187],[2109.83,-100.143,4.61667,422.928,-5.71045],[73.8695,-0.0223799,0.133333,491.241,-0.171143],[8.2282,0.0972759,0,493.692,-0.0189686]]], + [1,3.73637,[[8181.64,-2000.87,23.1,307.289,-32.8288],[8025.65,-1901.96,22.5,308.45,-31.9037],[7863.04,-1802.55,21.8833,309.764,-30.947],[7689.06,-1700.26,21.2333,311.286,-29.9328],[7512.39,-1600.57,20.5833,312.954,-28.9134],[7328.35,-1501.05,19.9167,314.825,-27.8634],[7136.63,-1401.94,19.2333,316.918,-26.7833],[6932.15,-1301.2,18.5167,319.311,-25.6474],[6719.22,-1201.56,17.7833,321.98,-24.4832],[6492.49,-1101.15,17.0167,325.02,-23.2652],[6251.29,-1000.54,16.2167,328.476,-21.9951],[5994.87,-900.324,15.3833,332.4,-20.6749],[5722.42,-801.151,14.5167,336.851,-19.3069],[5422.19,-700.2,13.5833,342.09,-17.8421],[5097.91,-600.523,12.6,348.136,-16.3112],[4736.49,-500.306,11.5333,355.346,-14.6685],[4329.1,-400.319,10.3667,364.063,-12.8978],[3859.41,-301.046,9.06667,374.879,-10.9625],[3282.58,-200.89,7.53333,389.27,-8.73924],[2503.3,-100.285,5.56667,410.628,-5.99606],[836.961,-0.137538,1.73333,463.613,-1.05643],[421.136,3.73607,0.85,478.392,-0.00211653]]], + [2,14.4821,[[8405.54,-2002.33,23.9667,303.86,-33.4478],[8248.1,-1900.16,23.35,304.899,-32.4926],[8088.41,-1800.27,22.7333,306.056,-31.5307],[7922,-1700.1,22.1,307.37,-30.5363],[7753.12,-1602.4,21.4667,308.819,-29.5363],[7572.62,-1502.27,20.8,310.494,-28.4781],[7380.03,-1400.15,20.1,312.428,-27.3621],[7184.21,-1301.17,19.4,314.548,-26.242],[6975.53,-1200.89,18.6667,316.977,-25.0655],[6758.28,-1101.99,17.9167,319.693,-23.8603],[6522.14,-1000.64,17.1167,322.86,-22.5742],[6276.26,-901.646,16.3,326.394,-21.2625],[6009.84,-801.612,15.4333,330.496,-19.874],[5721.68,-701.523,14.5167,335.247,-18.4118],[5405,-600.806,13.5333,340.845,-16.8536],[5057.83,-501.008,12.4833,347.428,-15.2053],[4666.42,-401.082,11.3333,355.405,-13.4229],[4209.08,-300.214,10.0333,365.461,-11.4429],[3660.46,-200.232,8.53333,378.556,-9.21254],[2937.2,-100.49,6.65,397.515,-6.50841],[1594.11,-0.0526085,3.41667,437.759,-2.1581],[821.135,14.4799,1.7,463.875,-0.016354]]], + [3,31.9109,[[8623.28,-2000.84,24.8333,300.609,-34.0873],[8472.91,-1900.8,24.2333,301.473,-33.1546],[8316.19,-1800.25,23.6167,302.471,-32.1885],[8157.25,-1702.02,23,303.586,-31.2156],[7987.25,-1601.03,22.35,304.892,-30.1832],[7810.21,-1500.2,21.6833,306.379,-29.1179],[7630.42,-1402.19,21.0167,308.02,-28.0469],[7433.99,-1300.02,20.3,309.966,-26.8905],[7234.23,-1201.19,19.5833,312.106,-25.7297],[7021.51,-1101.39,18.8333,314.566,-24.5118],[6795.24,-1001.18,18.05,317.385,-23.2377],[6554.75,-901.144,17.2333,320.611,-21.9091],[6294.26,-800.019,16.3667,324.369,-20.501],[6017.81,-700.582,15.4667,328.657,-19.0431],[5713.89,-600.219,14.5,333.724,-17.4852],[5380.69,-500.451,13.4667,339.7,-15.8327],[5004.88,-400.146,12.3333,346.962,-14.0399],[4577.18,-300.836,11.0833,355.892,-12.0921],[4062.59,-200.921,9.63333,367.562,-9.87979],[3394.08,-100.504,7.83333,384.208,-7.21669],[2301.89,-0.111598,5.08333,414.951,-3.35845],[1193.62,31.9082,2.51667,450.592,-0.0203945]]], + [4,55.637,[[8842.99,-2002.25,25.7333,297.496,-34.7981],[8695.44,-1901.44,25.1333,298.213,-33.8633],[8541.7,-1800.09,24.5167,299.055,-32.8943],[8385.79,-1701.07,23.9,300.008,-31.9175],[8223.37,-1601.83,23.2667,301.108,-30.9069],[8049.85,-1500.09,22.6,302.404,-29.8357],[7873.66,-1401.17,21.9333,303.848,-28.7578],[7685.72,-1300.39,21.2333,305.532,-27.6199],[7490.12,-1200.52,20.5167,307.441,-26.4494],[7286.57,-1101.85,19.7833,309.597,-25.2472],[7065.22,-1000.44,19,312.137,-23.9596],[6834.9,-901.175,18.2,314.996,-22.6427],[6585.3,-800.558,17.35,318.343,-21.2434],[6320.43,-701.373,16.4667,322.174,-19.7915],[6029.12,-600.926,15.5167,326.72,-18.2356],[5709.68,-500.706,14.5,332.1,-16.5804],[5354.71,-400.916,13.4,338.558,-14.8052],[4950.22,-301.244,12.1833,346.525,-12.8666],[4468.48,-200.823,10.7833,356.848,-10.6757],[3858.38,-100.065,9.08333,371.202,-8.08488],[2958.57,-0.155575,6.71667,394.929,-4.62991],[1540.24,55.6356,3.3,438.405,-0.010978]]], + [5,85.3066,[[9056.17,-2001.2,26.6333,294.569,-35.5281],[8915.44,-1902.34,26.05,295.126,-34.6182],[8764.66,-1800.07,25.4333,295.814,-33.6474],[8611.77,-1700.14,24.8167,296.608,-32.6679],[8456.75,-1602.56,24.2,297.513,-31.6805],[8291,-1502.3,23.55,298.592,-30.6317],[8118.45,-1402.26,22.8833,299.839,-29.5484],[7934.44,-1300.3,22.1833,301.307,-28.4034],[7747.45,-1201.54,21.4833,302.946,-27.2519],[7548.31,-1101.56,20.75,304.855,-26.0399],[7336.48,-1000.9,19.9833,307.07,-24.7678],[7111.37,-900.128,19.1833,309.632,-23.4369],[6877.17,-801.825,18.3667,312.525,-22.0763],[6618.69,-700.773,17.4833,315.986,-20.6048],[6339.56,-600.059,16.55,320.036,-19.053],[6038.57,-500.806,15.5667,324.766,-17.4249],[5703.72,-401.25,14.5,330.465,-15.6707],[5321.6,-300.893,13.3167,337.524,-13.7444],[4876.95,-200.841,11.9833,346.475,-11.6062],[4328.23,-100.484,10.4,358.594,-9.12221],[3569.13,-0.122608,8.31667,377.276,-5.96491],[1869.53,85.3058,4.06667,426.962,-0.00686956]]], + [6,120.596,[[9266.77,-2000.75,27.55,291.813,-36.3019],[9128.72,-1900.96,26.9667,292.234,-35.392],[8984.85,-1800.48,26.3667,292.757,-34.4468],[8839.06,-1702.2,25.7667,293.375,-33.4926],[8683.04,-1600.88,25.1333,294.137,-32.4763],[8524.79,-1502.09,24.5,295.015,-31.4513],[8355.79,-1400.85,23.8333,296.071,-30.3637],[8179.91,-1300.06,23.15,297.3,-29.2405],[8001.3,-1202.32,22.4667,298.684,-28.1099],[7806.52,-1100.87,21.7333,300.35,-26.8894],[7603.93,-1000.84,20.9833,302.257,-25.6349],[7388.57,-900.462,20.2,304.478,-24.3195],[7159.87,-800.329,19.3833,307.056,-22.9443],[6917.16,-701.083,18.5333,310.036,-21.5111],[6654.84,-601.62,17.6333,313.541,-19.994],[6366.77,-501.341,16.6667,317.726,-18.3682],[6046.16,-400.251,15.6167,322.795,-16.6107],[5690.72,-300.485,14.4833,328.915,-14.7284],[5281.39,-200.73,13.2167,336.606,-12.6494],[4784.89,-100.105,11.7333,346.846,-10.2577],[4143.76,-0.686811,9.9,361.514,-7.38134],[3015.3,99.8208,6.88333,391.194,-2.88605],[2182.27,120.595,4.81667,416.195,-0.00665221]]], + [7,161.204,[[9474.5,-2001.19,28.4833,289.233,-37.1187],[9339.13,-1900.37,27.9,289.52,-36.21],[9202.01,-1801.6,27.3167,289.889,-35.2917],[9059.13,-1702.19,26.7167,290.358,-34.3375],[8910.3,-1602.34,26.1,290.939,-33.3472],[8755.32,-1502.28,25.4667,291.645,-32.3206],[8593.99,-1402.24,24.8167,292.49,-31.2575],[8421.87,-1300.01,24.1333,293.516,-30.1305],[8247.1,-1200.82,23.45,294.691,-28.9948],[8060.92,-1100.12,22.7333,296.089,-27.7954],[7867.29,-1000.64,22,297.704,-26.5606],[7661.4,-900.546,21.2333,299.602,-25.263],[7442.7,-800.431,20.4333,301.822,-23.9034],[7210.58,-700.914,19.6,304.407,-22.4831],[6959.62,-600.828,18.7167,307.467,-20.9757],[6688.77,-501.218,17.7833,311.077,-19.3837],[6386.87,-400.025,16.7667,315.473,-17.6541],[6056.99,-300.755,15.6833,320.723,-15.821],[5675.99,-200.023,14.4667,327.358,-13.7805],[5234.06,-100.785,13.1,335.811,-11.5198],[4673.83,-0.284927,11.4333,347.675,-8.82087],[3858.92,99.876,9.13333,367.17,-5.22802],[2479.13,161.203,5.55,406.042,-0.00894455]]], + [8,206.853,[[9679.17,-2002.8,29.4333,286.837,-37.9769],[9546.46,-1900.83,28.85,286.993,-37.0708],[9412.06,-1800.92,28.2667,287.226,-36.1543],[9272.02,-1700.32,27.6667,287.55,-35.2013],[9130.14,-1601.96,27.0667,287.965,-34.2381],[8978.35,-1500.57,26.4333,288.505,-33.2112],[8824.43,-1401.74,25.8,289.156,-32.1741],[8660.1,-1300.49,25.1333,289.965,-31.0724],[8493.33,-1202.14,24.4667,290.908,-29.9612],[8315.57,-1102.02,23.7667,292.049,-28.7851],[8126.37,-1000.66,23.0333,293.418,-27.544],[7929.64,-900.776,22.2833,295.011,-26.2665],[7720.62,-800.586,21.5,296.893,-24.9249],[7498.75,-700.7,20.6833,299.104,-23.5203],[7263.41,-601.769,19.8333,301.69,-22.0542],[7004.43,-500.923,18.9167,304.82,-20.471],[6725.31,-401.265,17.95,308.526,-18.8024],[6414.89,-300.94,16.9,313.048,-16.9954],[6065.91,-200.726,15.75,318.633,-15.0282],[5664.83,-101.102,14.4667,325.696,-12.855],[5174.12,-0.41868,12.95,335.261,-10.3276],[4526.22,99.4897,11.0333,349.413,-7.21604],[3221.61,199.869,7.45,383.001,-1.71921],[2760.74,206.852,6.26667,396.451,-0.0123617]]], + [9,257.282,[[9876.82,-2002.91,30.3833,284.63,-38.8494],[9750.46,-1902.66,29.8167,284.657,-37.9728],[9618.76,-1801.5,29.2333,284.757,-37.0596],[9485.39,-1702.4,28.65,284.935,-36.1356],[9346.44,-1602.68,28.05,285.201,-35.1746],[9201.75,-1502.52,27.4333,285.567,-34.176],[9051.11,-1402.17,26.8,286.046,-33.1394],[8894.35,-1301.85,26.15,286.652,-32.0648],[8731.26,-1201.81,25.4833,287.398,-30.952],[8561.6,-1102.32,24.8,288.301,-29.8011],[8380.93,-1001.31,24.0833,289.406,-28.5839],[8193.09,-901.558,23.35,290.712,-27.3289],[7993.44,-801.218,22.5833,292.275,-26.008],[7781.46,-700.883,21.7833,294.134,-24.6219],[7556.59,-601.183,20.95,296.329,-23.1715],[7313.58,-500.952,20.0667,298.96,-21.6294],[7051.48,-401.247,19.1333,302.097,-19.9979],[6759.52,-300.02,18.1167,305.956,-18.222],[6440.74,-200.79,17.0333,310.605,-16.336],[6072.89,-100.202,15.8167,316.527,-14.2322],[5641.37,-0.129107,14.4333,324.225,-11.8677],[5101.56,99.6343,12.7667,334.975,-9.07202],[4306.16,199.584,10.4333,353.026,-5.28633],[3027.67,257.281,6.96667,387.373,-0.0155644]]], + [10,312.248,[[10067.5,-2001.69,31.3333,282.606,-39.7349],[9943.58,-1900.25,30.7667,282.515,-38.8628],[9818.19,-1800.74,30.2,282.49,-37.9797],[9687.5,-1700.35,29.6167,282.535,-37.0594],[9555.18,-1602.05,29.0333,282.656,-36.128],[9413.49,-1500.44,28.4167,282.87,-35.1319],[9269.91,-1401.23,27.8,283.178,-34.1244],[9120.45,-1301.87,27.1667,283.596,-33.0783],[8960.92,-1200.09,26.5,284.154,-31.9655],[8799.07,-1101.23,25.8333,284.837,-30.8416],[8626.61,-1000.61,25.1333,285.698,-29.6503],[8447.32,-901.023,24.4167,286.737,-28.4201],[8256.66,-800.563,23.6667,288.005,-27.1223],[8058.52,-701.906,22.9,289.501,-25.7865],[7843.75,-601.37,22.0833,291.328,-24.355],[7616.07,-501.798,21.2333,293.499,-22.858],[7365.65,-400.306,20.3167,296.164,-21.2384],[7095.92,-300.016,19.35,299.359,-19.528],[6800.98,-200.599,18.3167,303.235,-17.7013],[6469.32,-101.007,17.1833,308.065,-15.7051],[6083.01,-0.433712,15.9,314.316,-13.4618],[5621.49,99.2427,14.4167,322.649,-10.9025],[5010.8,199.358,12.5333,335.093,-7.72481],[3866.78,299.828,9.23333,362.606,-2.41856],[3280.44,312.246,7.65,378.764,-0.0172065]]], + [11,371.519,[[10254.6,-2002.41,32.3,280.767,-40.6573],[10136.8,-1902.67,31.75,280.567,-39.8167],[10014,-1801.8,31.1833,280.421,-38.9392],[9889.66,-1702.88,30.6167,280.339,-38.0503],[9756.38,-1600.28,30.0167,280.325,-37.097],[9625.16,-1502.68,29.4333,280.387,-36.1586],[9484.66,-1401.83,28.8167,280.539,-35.1547],[9338.44,-1300.78,28.1833,280.791,-34.1113],[9190.23,-1202.32,27.55,281.145,-33.056],[9032.05,-1101.5,26.8833,281.634,-31.9331],[8867.55,-1001.23,26.2,282.265,-30.7699],[8696.53,-901.759,25.5,283.055,-29.5668],[8514.59,-801.133,24.7667,284.045,-28.2947],[8325.52,-702.062,24.0167,285.239,-26.983],[8120.44,-600.733,23.2167,286.725,-25.5734],[7902.98,-500.027,22.3833,288.518,-24.0956],[7672.58,-400.62,21.5167,290.662,-22.5511],[7424.04,-301.488,20.6,293.257,-20.9119],[7147.08,-200.517,19.6,296.49,-19.1211],[6844.7,-101.222,18.5333,300.431,-17.2125],[6495.62,-0.10777,17.3333,305.508,-15.074],[6091.11,99.9175,15.9833,312.088,-12.6884],[5594.64,199.113,14.3833,321.17,-9.90254],[4879.47,299.971,12.1833,336.153,-6.17476],[3519.53,371.517,8.31667,370.587,-0.0159726]]], + [12,434.878,[[10434.6,-2002.26,33.2667,279.109,-41.5896],[10319.1,-1901.22,32.7167,278.802,-40.7556],[10202.3,-1802,32.1667,278.548,-39.9102],[10080.6,-1701.67,31.6,278.346,-39.0274],[9953.66,-1600.44,31.0167,278.204,-38.1063],[9825.2,-1501.32,30.4333,278.132,-37.1731],[9691.41,-1401.59,29.8333,278.134,-36.201],[9552.12,-1301.46,29.2167,278.223,-35.1893],[9407.18,-1201.18,28.5833,278.409,-34.1375],[9256.39,-1100.97,27.9333,278.706,-33.0452],[9099.56,-1001.09,27.2667,279.126,-31.9121],[8936.51,-901.792,26.5833,279.686,-30.738],[8762.94,-801.051,25.8667,280.42,-29.4941],[8582.57,-701.622,25.1333,281.335,-28.209],[8390.97,-601.681,24.3667,282.478,-26.8537],[8187.66,-501.83,23.5667,283.884,-25.4285],[7967.76,-400.777,22.7167,285.63,-23.9039],[7734.91,-301.352,21.8333,287.733,-22.3112],[7479.43,-200.891,20.8833,290.342,-20.5919],[7200.04,-100.942,19.8667,293.554,-18.7489],[6885.78,-0.346871,18.75,297.612,-16.7266],[6529.36,99.337,17.5167,302.78,-14.5025],[6102.24,199.748,16.0833,309.754,-11.9415],[5555.58,299.985,14.3167,319.898,-8.83822],[4690.06,399.576,11.6667,338.668,-4.34009],[3745.39,434.877,8.96667,362.806,-0.0105601]]], + [13,502.12,[[10607.4,-2001.42,34.2333,277.624,-42.5303],[10497.7,-1902.14,33.7,277.227,-41.7291],[10383.3,-1801.53,33.15,276.867,-40.8911],[10267.5,-1702.73,32.6,276.558,-40.0414],[10146.8,-1602.86,32.0333,276.298,-39.1537],[10021.1,-1502.11,31.45,276.095,-38.2273],[9890.18,-1400.7,30.85,275.958,-37.2614],[9757.6,-1301.56,30.25,275.899,-36.2826],[9619.58,-1202.07,29.6333,275.922,-35.2636],[9475.98,-1102.45,29,276.039,-34.2038],[9322.74,-1000.43,28.3333,276.271,-33.0743],[9167.34,-901.361,27.6667,276.62,-31.9314],[9001.83,-800.567,26.9667,277.119,-30.7178],[8829.83,-700.842,26.25,277.777,-29.4618],[8647.03,-600.29,25.5,278.634,-28.1342],[8457.14,-501.592,24.7333,279.697,-26.7646],[8251.45,-401.073,23.9167,281.048,-25.2937],[8033.53,-301.586,23.0667,282.708,-23.7518],[7794.02,-200.264,22.15,284.802,-22.0795],[7536.26,-100.24,21.1833,287.371,-20.309],[7254.65,-1.21096,20.15,290.552,-18.4128],[6933.62,99.2175,19,294.649,-16.3044],[6565.48,198.851,17.7167,299.961,-13.9622],[6116.3,299.242,16.2,307.315,-11.2219],[5514.89,399.786,14.25,318.631,-7.76649],[4193.19,499.9,10.2667,349.178,-1.06326],[3964.34,502.117,9.61667,355.231,-0.0260243]]], + [14,573.047,[[10773,-2000.09,35.2,276.309,-43.478],[10668.9,-1902.61,34.6833,275.832,-42.71],[10556.8,-1800.58,34.1333,275.369,-41.8805],[10443.4,-1700.35,33.5833,274.955,-41.0387],[10328.7,-1601.95,33.0333,274.591,-40.1848],[10209.1,-1502.51,32.4667,274.274,-39.2925],[10084.6,-1402.22,31.8833,274.01,-38.361],[9954.88,-1301.29,31.2833,273.81,-37.3893],[9823.55,-1202.64,30.6833,273.685,-36.4043],[9683.15,-1101.04,30.05,273.64,-35.3505],[9540.89,-1002.05,29.4167,273.689,-34.2829],[9389.11,-900.709,28.75,273.848,-33.1446],[9235.21,-802.348,28.0833,274.122,-31.9922],[9071.31,-702.318,27.3833,274.541,-30.768],[8897.02,-601.143,26.65,275.13,-29.471],[8715.99,-501.553,25.9,275.902,-28.1305],[8523.85,-401.794,25.1167,276.9,-26.7168],[8315.96,-300.514,24.2833,278.189,-25.1996],[8095.84,-200.569,23.4167,279.79,-23.6098],[7858.57,-100.932,22.5,281.79,-21.918],[7598.83,-1.1148,21.5167,284.304,-20.0952],[7310.77,98.7364,20.45,287.489,-18.1138],[6983.27,199.038,19.2667,291.612,-15.9173],[6599.02,299.705,17.9167,297.125,-13.4236],[6128.19,399.501,16.3167,304.857,-10.5001],[5462.1,499.718,14.15,317.589,-6.6287],[4164.81,573.046,10.2333,348.158,-0.00889279]]], + [15,647.473,[[10934.7,-2001.64,36.1833,275.177,-44.4554],[10832.7,-1902.82,35.6667,274.612,-43.6966],[10726.2,-1802.45,35.1333,274.068,-42.9016],[10615.2,-1700.71,34.5833,273.55,-42.0691],[10502.9,-1600.78,34.0333,273.08,-41.2241],[10389.3,-1502.7,33.4833,272.66,-40.3666],[10267.4,-1400.71,32.9,272.273,-39.4437],[10144,-1300.84,32.3167,271.948,-38.5072],[10015.6,-1200.36,31.7167,271.684,-37.53],[9885.5,-1102.18,31.1167,271.495,-36.5389],[9746.47,-1001.08,30.4833,271.381,-35.4783],[9601.88,-900.058,29.8333,271.359,-34.3747],[9455.35,-801.847,29.1833,271.441,-33.2565],[9299.17,-701.673,28.5,271.643,-32.066],[9133,-600.042,27.7833,271.992,-30.8018],[8964.35,-501.974,27.0667,272.487,-29.5227],[8781.15,-401.064,26.3,273.187,-28.1394],[8586.86,-300.24,25.5,274.116,-26.6809],[8381.01,-200.151,24.6667,275.311,-25.1475],[8163.09,-101.484,23.8,276.814,-23.5401],[7923.94,-1.51975,22.8667,278.745,-21.7976],[7658,99.8128,21.85,281.238,-19.8904],[7368.2,198.951,20.7667,284.369,-17.8532],[7034.57,299.19,19.55,288.504,-15.5666],[6639.49,399.652,18.15,294.126,-12.9485],[6142.84,499.627,16.45,302.293,-9.80659],[5391.99,599.607,14,316.897,-5.39446],[4358.87,647.472,10.85,341.247,-0.0111625]]], + [16,725.219,[[11089,-2003.12,37.1667,274.209,-45.4363],[10989.1,-1902.92,36.65,273.56,-44.6876],[10884.8,-1801.13,36.1167,272.926,-43.9025],[10779.3,-1701.01,35.5833,272.33,-43.1051],[10672.7,-1602.58,35.05,271.775,-42.2955],[10561.6,-1502.88,34.5,271.248,-41.4479],[10445.7,-1402.09,33.9333,270.756,-40.5611],[10325,-1300.42,33.35,270.308,-39.6342],[10202.9,-1200.88,32.7667,269.921,-38.6933],[10075.7,-1100.75,32.1667,269.591,-37.7111],[9943.36,-1000.26,31.55,269.329,-36.6867],[9809.36,-902.241,30.9333,269.148,-35.6477],[9666.27,-801.648,30.2833,269.052,-34.537],[9517.53,-701.415,29.6167,269.057,-33.3821],[9362.96,-601.807,28.9333,269.18,-32.1825],[9198.52,-500.793,28.2167,269.443,-30.908],[9027.73,-401.141,27.4833,269.862,-29.5878],[8846.43,-301.032,26.7167,270.471,-28.1916],[8654.18,-201.074,25.9167,271.304,-26.7188],[8450.53,-101.92,25.0833,272.396,-25.1697],[8226.61,-0.618846,24.1833,273.849,-23.4822],[7985.66,99.6805,23.2333,275.708,-21.6882],[7722.45,199.34,22.2167,278.088,-19.7582],[7426.78,299.475,21.1,281.196,-17.6322],[7087.33,399.735,19.85,285.327,-15.2534],[6681.89,499.997,18.4,291.042,-12.5077],[6160.15,599.782,16.6,299.622,-9.14209],[5283.57,699.874,13.7333,317.045,-3.94475],[4540.96,725.218,11.45,334.635,-0.00516184]]], + [17,806.11,[[11232.8,-2001.4,38.1333,273.376,-46.3955],[11138.1,-1903.11,37.6333,272.671,-45.6811],[11039.1,-1803.07,37.1167,271.974,-44.9313],[10935.9,-1701.43,36.5833,271.288,-44.1448],[10831.5,-1601.48,36.05,270.639,-43.3458],[10722.7,-1500.19,35.5,270.012,-42.5086],[10612.6,-1400.74,34.95,269.43,-41.6582],[10497.9,-1300.22,34.3833,268.88,-40.7682],[10381.8,-1201.7,33.8167,268.384,-39.8644],[10261,-1102.4,33.2333,267.934,-38.9197],[10135.2,-1002.52,32.6333,267.536,-37.9331],[10004.2,-902.307,32.0167,267.203,-36.9037],[9868.07,-801.976,31.3833,266.944,-35.8307],[9726.49,-701.776,30.7333,266.772,-34.7132],[9579.33,-601.964,30.0667,266.699,-33.5506],[9422.67,-500.426,29.3667,266.741,-32.3127],[9263.77,-402.281,28.6667,266.913,-31.0582],[9091,-300.944,27.9167,267.249,-29.6968],[8911.66,-201.498,27.15,267.763,-28.2881],[8717.53,-100.242,26.3333,268.512,-26.7703],[8512.01,-0.0573885,25.4833,269.524,-25.1739],[8294.62,98.3402,24.6,270.841,-23.4998],[8052.16,199.231,23.6333,272.611,-21.6537],[7787.57,299.09,22.6,274.905,-19.6687],[7490.73,398.934,21.4667,277.928,-17.4843],[7145.93,499.5,20.1833,282.03,-15.0109],[6730.73,599.808,18.6833,287.805,-12.1342],[6184.87,699.375,16.7833,296.759,-8.53869],[5078.25,799.844,13.1667,319.474,-1.95635],[4716.87,806.108,12.05,328.162,-0.0181861]]], + [18,889.982,[[11372.4,-2003.2,39.1167,272.717,-47.3795],[11276.5,-1900.25,38.6,271.914,-46.6525],[11182.7,-1802.08,38.1,271.164,-45.9376],[11084.8,-1702.16,37.5833,270.417,-45.1869],[10982.6,-1600.66,37.05,269.681,-44.3993],[10879.3,-1500.85,36.5167,268.98,-43.5988],[10774.9,-1402.76,35.9833,268.317,-42.7855],[10662.7,-1300.43,35.4167,267.659,-41.9073],[10549.1,-1200.09,34.85,267.049,-41.0147],[10434.3,-1101.76,34.2833,266.492,-40.1079],[10314.7,-1002.67,33.7,265.977,-39.1596],[10186.8,-900.285,33.0833,265.501,-38.1412],[10057.2,-800.377,32.4667,265.099,-37.1067],[9922.51,-700.379,31.8333,264.768,-36.0278],[9782.44,-600.535,31.1833,264.52,-34.9036],[9636.87,-501.104,30.5167,264.368,-33.7336],[9485.63,-402.354,29.8333,264.325,-32.517],[9324.77,-302.278,29.1167,264.411,-31.2233],[9153.93,-201.431,28.3667,264.652,-29.851],[8972.73,-100.405,27.5833,265.078,-28.3991],[8784.71,-1.8372,26.7833,265.708,-26.8985],[8577.58,99.6088,25.9167,266.626,-25.2549],[8358.6,198.987,25.0167,267.852,-23.5312],[8118.9,298.834,24.05,269.498,-21.6644],[7853.11,399.053,23,271.695,-19.6236],[7555.33,498.782,21.85,274.619,-17.3797],[7205.52,599.798,20.5333,278.676,-14.8095],[6785.68,699.271,19,284.422,-11.8305],[6211.87,799.392,16.9833,293.791,-7.9668],[4881.21,889.98,12.6333,321.953,-0.0215074]]], + [19,976.673,[[11501.6,-2002.05,40.0833,272.176,-48.3396],[11410.7,-1901.06,39.5833,271.332,-47.6477],[11318.9,-1801.49,39.0833,270.51,-46.9444],[11223,-1700.11,38.5667,269.687,-46.2055],[11126,-1600.29,38.05,268.892,-45.4542],[11028.1,-1502.04,37.5333,268.129,-44.6906],[10925.9,-1402.3,37,267.374,-43.8894],[10819.3,-1301.24,36.45,266.636,-43.0493],[10711.6,-1202.04,35.9,265.939,-42.1952],[10599.3,-1101.79,35.3333,265.269,-41.3007],[10482.4,-1000.7,34.75,264.632,-40.3646],[10364.1,-901.784,34.1667,264.053,-39.4132],[10241,-802.328,33.5667,263.522,-38.4187],[10112.9,-702.562,32.95,263.047,-37.3801],[9976.17,-600.13,32.3,262.63,-36.2676],[9837.66,-500.533,31.65,262.304,-35.1375],[9693.73,-401.37,30.9833,262.07,-33.9607],[9540.54,-300.549,30.2833,261.94,-32.7063],[9381.48,-200.879,29.5667,261.937,-31.4032],[9212.57,-100.477,28.8167,262.083,-30.0202],[9037.29,-2.03189,28.05,262.399,-28.5875],[8847.62,98.1068,27.2333,262.933,-27.0421],[8642.93,198.959,26.3667,263.734,-25.3827],[8422.53,299.46,25.45,264.859,-23.609],[8185.67,398.452,24.4833,266.375,-21.7216],[7918.89,499.202,23.4167,268.464,-19.6242],[7620.38,599.006,22.25,271.278,-17.3197],[7270.34,699.476,20.9167,275.218,-14.6833],[6841.79,799.468,19.3333,280.97,-11.5665],[6240.97,899.943,17.2,290.721,-7.4274],[5034.28,976.671,13.2,315.988,-0.013854]]], + [20,1066.03,[[11623.5,-2001.4,41.05,271.774,-49.2986],[11537.5,-1902.45,40.5667,270.896,-48.6415],[11447.5,-1801.46,40.0667,270.007,-47.9503],[11356.7,-1701.91,39.5667,269.14,-47.2475],[11261.8,-1600.55,39.05,268.269,-46.5089],[11165.9,-1500.75,38.5333,267.426,-45.7577],[11069,-1402.54,38.0167,266.612,-44.9939],[10967.9,-1302.83,37.4833,265.804,-44.1922],[10862.5,-1201.82,36.9333,265.01,-43.3513],[10756,-1102.67,36.3833,264.256,-42.4961],[10645,-1002.49,35.8167,263.525,-41.6],[10529.4,-901.474,35.2333,262.824,-40.6619],[10412.4,-802.637,34.65,262.18,-39.7079],[10287.3,-700.549,34.0333,261.563,-38.6823],[10160.6,-600.958,33.4167,261.018,-37.6395],[10028.9,-501.309,32.7833,260.536,-36.5509],[9892.01,-401.85,32.1333,260.13,-35.4156],[9746.19,-300.404,31.45,259.805,-34.2028],[9598.39,-202.195,30.7667,259.591,-32.971],[9437.55,-100.45,30.0333,259.492,-31.6289],[9270.64,-0.359061,29.2833,259.54,-30.2359],[9093.66,99.8342,28.5,259.76,-28.7603],[8906.21,199.491,27.6833,260.186,-27.2013],[8703.97,299.805,26.8167,260.87,-25.5262],[8486.24,399.705,25.9,261.869,-23.7345],[8248.23,499.661,24.9167,263.276,-21.7938],[7984.72,599.495,23.85,265.218,-19.672],[7685.69,699.573,22.6667,267.91,-17.3058],[7335.65,799.731,21.3167,271.719,-14.6019],[6903.43,899.503,19.7,277.389,-11.3766],[6281.55,999.962,17.4667,287.382,-6.98621],[5181.54,1066.02,13.7667,310.128,-0.0241849]]], + [21,1157.9,[[11738.1,-2001.4,42.0167,271.504,-50.255],[11653.8,-1901.13,41.5333,270.568,-49.61],[11568.7,-1802.16,41.05,269.648,-48.954],[11479.7,-1701.16,40.55,268.716,-48.2639],[11389.8,-1601.59,40.05,267.804,-47.5618],[11296,-1500.23,39.5333,266.886,-46.8239],[11201.2,-1400.43,39.0167,265.993,-46.0731],[11105.3,-1302.22,38.5,265.129,-45.3094],[11005.4,-1202.53,37.9667,264.269,-44.5075],[10901.2,-1101.54,37.4167,263.419,-43.6661],[10795.8,-1002.42,36.8667,262.608,-42.81],[10686,-902.269,36.3,261.816,-41.9126],[10571.7,-801.3,35.7167,261.052,-40.9727],[10456.1,-702.516,35.1333,260.342,-40.0165],[10332.4,-600.493,34.5167,259.655,-38.9881],[10207.2,-500.977,33.9,259.037,-37.9419],[10077.1,-401.415,33.2667,258.479,-36.8492],[9941.79,-302.057,32.6167,257.992,-35.7089],[9797.7,-200.73,31.9333,257.581,-34.4902],[9648.09,-100.3,31.2333,257.273,-33.2213],[9492.79,-1.06311,30.5167,257.083,-31.9014],[9327.92,98.8517,29.7667,257.029,-30.499],[9153.14,198.843,28.9833,257.14,-29.0125],[8968.05,298.27,28.1667,257.45,-27.4408],[8768.38,398.318,27.3,258.008,-25.751],[8549.53,499.663,26.3667,258.889,-23.9091],[8314.58,599.133,25.3833,260.152,-21.9479],[8050.39,699.882,24.3,261.964,-19.7685],[7755.26,799.132,23.1167,264.482,-17.3734],[7405.55,899.412,21.75,268.136,-14.6005],[6970.18,999.456,20.1,273.69,-11.2637],[6333.09,1099.78,17.7833,283.783,-6.64678],[5317.88,1157.89,14.3167,304.487,-0.0220725]]], + [22,1252.13,[[11845.4,-2002.22,42.9833,271.362,-51.2077],[11762.8,-1900.61,42.5,270.372,-50.5752],[11679.5,-1800.3,42.0167,269.396,-49.9317],[11595.2,-1701.28,41.5333,268.435,-49.2772],[11507.2,-1600.25,41.0333,267.459,-48.5883],[11418.3,-1500.65,40.5333,266.503,-47.8874],[11328.6,-1402.51,40.0333,265.568,-47.1743],[11234.8,-1302.64,39.5167,264.627,-46.4246],[11137,-1201.22,38.9833,263.683,-45.6369],[11038.2,-1101.51,38.45,262.77,-44.8351],[10935.1,-1000.52,37.9,261.864,-43.9935],[10831,-901.392,37.35,260.996,-43.1369],[10722.5,-801.25,36.7833,260.144,-42.2386],[10609.5,-700.296,36.2,259.317,-41.2973],[10495.2,-601.534,35.6167,258.541,-40.3392],[10376.3,-502.268,35.0167,257.803,-39.3364],[10249.2,-400.069,34.3833,257.093,-38.259],[10120.6,-300.56,33.75,256.459,-37.1625],[9986.95,-201.266,33.1,255.893,-36.0177],[9844.6,-100.019,32.4167,255.395,-34.7934],[9700.35,-2.03313,31.7333,255.004,-33.5485],[9543.42,99.4423,31,254.711,-32.1904],[9380.6,199.226,30.25,254.556,-30.7789],[9208.01,299.064,29.4667,254.558,-29.2817],[9025.28,398.312,28.65,254.752,-27.6977],[8828.18,498.149,27.7833,255.184,-25.9933],[8612.19,599.243,26.85,255.926,-24.1341],[8380.35,698.422,25.8667,257.038,-22.1529],[8119.75,798.817,24.7833,258.681,-19.9493],[7824.53,898.951,23.5833,261.045,-17.4912],[7475.4,999.618,22.2,264.529,-14.6481],[7041.66,1099.35,20.5333,269.885,-11.2309],[6395.04,1199.62,18.15,279.94,-6.41318],[5443.57,1252.13,14.85,299.047,-0.00633122]]], + [23,1348.59,[[11942.6,-2000.43,43.9333,271.306,-52.1345],[11864.5,-1901.05,43.4667,270.302,-51.5362],[11785.7,-1802.85,43,269.308,-50.9275],[11703.2,-1702.43,42.5167,268.292,-50.2863],[11620,-1603.31,42.0333,267.29,-49.6338],[11533,-1502.17,41.5333,266.271,-48.9469],[11445.1,-1402.47,41.0333,265.27,-48.2477],[11353.4,-1300.98,40.5167,264.256,-47.5123],[11260.7,-1201.07,40,263.267,-46.7635],[11167,-1102.75,39.4833,262.303,-46.0013],[11069.4,-1002.95,38.95,261.337,-45.2004],[10967.5,-901.862,38.4,260.374,-44.3594],[10864.6,-802.654,37.85,259.448,-43.503],[10757.4,-702.431,37.2833,258.535,-42.6046],[10645.8,-601.4,36.7,257.643,-41.6627],[10532.9,-502.567,36.1167,256.801,-40.7036],[10412.1,-400.509,35.5,255.971,-39.6711],[10289.9,-300.975,34.8833,255.207,-38.6196],[10162.9,-201.413,34.25,254.495,-37.5202],[10030.9,-102.074,33.6,253.846,-36.3717],[9890.29,-0.7889,32.9167,253.26,-35.1427],[9744.37,99.573,32.2167,252.768,-33.8615],[9592.93,198.716,31.5,252.385,-32.5272],[9432.21,298.504,30.75,252.125,-31.1075],[9261.87,398.331,29.9667,252.015,-29.6005],[9077.83,499.525,29.1333,252.092,-27.9721],[8883.3,599.206,28.2667,252.398,-26.2534],[8674.01,698.366,27.35,252.988,-24.4108],[8441.45,799.06,26.35,253.963,-22.3759],[8184.4,899.174,25.2667,255.437,-20.1481],[7893.3,998.96,24.0667,257.608,-17.6608],[7549.15,1099.18,22.6833,260.863,-14.7809],[7117.44,1199.17,21,265.991,-11.2813],[6466.79,1299.64,18.5667,275.87,-6.28965],[5563.73,1348.59,15.3833,293.686,-0.00747347]]], + [24,1447.14,[[12035.1,-2003.27,44.9,271.402,-53.0771],[11958.6,-1902.58,44.4333,270.352,-52.4916],[11881.4,-1803.07,43.9667,269.312,-51.8958],[11800.7,-1701.26,43.4833,268.245,-51.2679],[11719.2,-1600.75,43,267.189,-50.6287],[11636.9,-1501.55,42.5167,266.147,-49.9782],[11550.9,-1400.34,42.0167,265.085,-49.2931],[11464.1,-1300.56,41.5167,264.04,-48.5956],[11376.3,-1202.25,41.0167,263.014,-47.8855],[11284.8,-1102.21,40.5,261.976,-47.1384],[11189.2,-1000.62,39.9667,260.93,-46.3529],[11092.7,-900.766,39.4333,259.912,-45.5528],[10995.1,-802.657,38.9,258.925,-44.738],[10890.3,-700.358,38.3333,257.912,-43.856],[10784.4,-600.087,37.7667,256.94,-42.9574],[10677.3,-501.869,37.2,256.01,-42.042],[10562.5,-400.142,36.6,255.078,-41.0546],[10446.5,-300.779,36,254.201,-40.0485],[10325.8,-201.152,35.3833,253.363,-38.9952],[10200.3,-101.503,34.75,252.573,-37.8933],[10070,-2.08355,34.1,251.842,-36.7415],[9931.19,99.2768,33.4167,251.167,-35.5083],[9787.13,199.706,32.7167,250.582,-34.2218],[9637.65,298.906,32,250.102,-32.8811],[9479.03,398.743,31.25,249.737,-31.4536],[9310.93,498.607,30.4667,249.515,-29.9372],[9129.34,599.825,29.6333,249.469,-28.2974],[8937.43,699.514,28.7667,249.645,-26.5652],[8731,798.663,27.85,250.093,-24.7064],[8501.67,899.323,26.85,250.91,-22.6518],[8248.25,999.373,25.7667,252.207,-20.4004],[7961.34,1099.06,24.5667,254.177,-17.8839],[7622.25,1199.12,23.1833,257.194,-14.9671],[7192.81,1299.74,21.4833,262.076,-11.3834],[6547.71,1399.89,19.0333,271.594,-6.28105],[5678.35,1447.14,15.9167,288.4,-0.0259894]]], + [25,1547.64,[[12114.9,-2000.03,45.8333,271.531,-53.9724],[12042.7,-1901.73,45.3833,270.48,-53.42],[11967.2,-1800.93,44.9167,269.396,-52.8371],[11890.9,-1701.32,44.45,268.32,-52.2438],[11813.8,-1602.9,43.9833,267.253,-51.6401],[11733.3,-1502.24,43.5,266.159,-51.0037],[11652,-1402.9,43.0167,265.076,-50.3558],[11567,-1301.53,42.5167,263.971,-49.6732],[11481.2,-1201.61,42.0167,262.882,-48.9781],[11394.5,-1103.16,41.5167,261.811,-48.2701],[11304,-1002.98,41,260.725,-47.5251],[11209.6,-901.247,40.4667,259.627,-46.7415],[11114.2,-801.248,39.9333,258.557,-45.9429],[11017.8,-703.001,39.4,257.516,-45.1293],[10914.3,-600.561,38.8333,256.444,-44.2484],[10809.7,-500.153,38.2667,255.411,-43.3504],[10703.9,-401.804,37.7,254.419,-42.4352],[10593.7,-302.741,37.1167,253.446,-41.4752],[10476,-200.453,36.5,252.472,-40.4407],[10356.8,-100.702,35.8833,251.56,-39.386],[10232.9,-0.932758,35.25,250.693,-38.2821],[10104.2,98.6029,34.6,249.881,-37.1275],[9970.61,197.64,33.9333,249.135,-35.9209],[9828.46,298.259,33.2333,248.455,-34.6301],[9677.53,399.911,32.5,247.862,-33.2525],[9520.99,499.839,31.75,247.392,-31.8176],[9355.14,599.787,30.9667,247.058,-30.2922],[9179.61,699.105,30.15,246.891,-28.6746],[8990.38,798.966,29.2833,246.931,-26.9298],[8786.86,898.281,28.3667,247.233,-25.0557],[8560.81,999.103,27.3667,247.886,-22.9821],[8311.08,1099.31,26.2833,249,-20.7075],[8028.44,1199.14,25.0833,250.762,-18.1623],[7694.5,1299.33,23.7,253.531,-15.2086],[7275.96,1399.21,22.0167,258.047,-11.6101],[6641.54,1499.83,19.5667,267.067,-6.42738],[5782.68,1547.64,16.4333,283.288,-0.0292565]]], + [26,1649.96,[[12190.1,-2001.72,46.7833,271.803,-54.8817],[12119.4,-1902.19,46.3333,270.715,-54.3418],[12045.4,-1800.1,45.8667,269.592,-53.772],[11973.4,-1702.76,45.4167,268.513,-53.2128],[11898,-1602.98,44.95,267.402,-52.6228],[11819.2,-1500.9,44.4667,266.259,-52.0005],[11739.6,-1400.12,43.9833,265.127,-51.3667],[11659.2,-1300.66,43.5,264.005,-50.7212],[11578.1,-1202.53,43.0167,262.896,-50.064],[11493.3,-1102.44,42.5167,261.763,-49.3715],[11404.8,-1000.56,42,260.61,-48.6423],[11315.4,-900.266,41.4833,259.477,-47.8991],[11225,-801.577,40.9667,258.365,-47.1419],[11130.8,-701.412,40.4333,257.242,-46.3453],[11035.6,-603.003,39.9,256.148,-45.5333],[10933.4,-500.395,39.3333,255.017,-44.6538],[10833.1,-402.752,38.7833,253.955,-43.7834],[10725.6,-301.315,38.2,252.87,-42.8422],[10616.9,-202.094,37.6167,251.831,-41.8824],[10503.7,-102.379,37.0167,250.814,-40.8758],[10386.1,-2.40356,36.4,249.827,-39.8207],[10263.9,97.5916,35.7667,248.881,-38.7158],[10133.6,199.872,35.1,247.963,-37.5294],[10001.7,299.056,34.4333,247.131,-36.3196],[9861.45,399.819,33.7333,246.358,-35.0245],[9715.92,499.344,33.0167,245.68,-33.673],[9561.52,599.498,32.2667,245.103,-32.2319],[9397.95,699.673,31.4833,244.653,-30.6986],[9224.87,799.215,30.6667,244.362,-29.0711],[9038.31,899.301,29.8,244.268,-27.3141],[8837.69,998.84,28.8833,244.422,-25.4252],[8614.92,1099.89,27.8833,244.911,-23.3331],[8372.69,1198.85,26.8167,245.825,-21.0711],[8094.36,1299.07,25.6167,247.371,-18.4976],[7765.64,1399.69,24.2333,249.884,-15.5071],[7357.96,1499.18,22.5667,254.028,-11.8946],[6742.99,1599.81,20.15,262.398,-6.70057],[5876.93,1649.96,16.9333,278.337,-0.0159754]]], + [27,1753.97,[[12255.4,-2001.09,47.7167,272.133,-55.764],[12186.2,-1900.36,47.2667,271.012,-55.2366],[12116.3,-1800.68,46.8167,269.893,-54.6999],[12045.9,-1702.08,46.3667,268.778,-54.1537],[11972.1,-1600.98,45.9,267.626,-53.5771],[11897.6,-1501.05,45.4333,266.48,-52.99],[11822.4,-1402.33,44.9667,265.341,-52.3923],[11743.7,-1301.36,44.4833,264.17,-51.7618],[11664.3,-1201.72,44,263.008,-51.1195],[11581.4,-1100.04,43.5,261.819,-50.4425],[11500.4,-1003.13,43.0167,260.683,-49.7758],[11413,-901.059,42.5,259.484,-49.0495],[11324.7,-800.574,41.9833,258.303,-48.309],[11235.5,-701.699,41.4667,257.143,-47.5543],[11142.5,-601.344,40.9333,255.969,-46.7599],[11048.5,-502.75,40.4,254.821,-45.95],[10950.6,-402.942,39.85,253.666,-45.0983],[10848.6,-302.119,39.2833,252.512,-44.2033],[10742.4,-200.49,38.7,251.364,-43.2631],[10635,-101.081,38.1167,250.259,-42.3039],[10523.4,-1.17945,37.5167,249.173,-41.2974],[10407.3,98.9837,36.9,248.113,-40.2419],[10286.6,199.165,36.2667,247.09,-39.1359],[10161.3,299.111,35.6167,246.113,-37.9776],[10031.2,398.555,34.95,245.193,-36.7657],[9892.82,499.585,34.25,244.325,-35.4674],[9749.28,599.375,33.5333,243.547,-34.1116],[9597.02,699.799,32.7833,242.862,-32.6646],[9439.19,798.155,32.0167,242.307,-31.157],[9268.6,898.073,31.2,241.889,-29.521],[9084.75,998.547,30.3333,241.655,-27.7529],[8887.09,1098.49,29.4167,241.659,-25.8502],[8667.64,1199.96,28.4167,241.977,-23.7404],[8429.08,1299.35,27.35,242.705,-21.4567],[8158.89,1398.73,26.1667,244.013,-18.8916],[7839.38,1498.94,24.8,246.228,-15.9012],[7438.54,1599.51,23.1333,250.028,-12.2389],[6851.32,1699.59,20.7833,257.618,-7.1067],[5965.89,1753.97,17.4333,273.44,-0.0190485]]], + [28,1859.54,[[12313.4,-2001.96,48.65,272.557,-56.6391],[12245.7,-1900.02,48.2,271.405,-56.1243],[12179.8,-1802.85,47.7667,270.296,-55.6199],[12110.8,-1702.98,47.3167,269.147,-55.0869],[12038.6,-1600.54,46.85,267.958,-54.5241],[11968.3,-1502.87,46.4,266.815,-53.9715],[11894.8,-1402.75,45.9333,265.635,-53.3881],[11817.8,-1300.31,45.45,264.418,-52.7725],[11742.8,-1202.65,44.9833,263.251,-52.167],[11664.4,-1102.8,44.5,262.051,-51.5282],[11582.5,-1000.91,44,260.82,-50.8546],[11499.8,-900.477,43.5,259.602,-50.168],[11416.3,-801.513,43,258.398,-49.4681],[11329.1,-700.817,42.4833,257.17,-48.7306],[11241,-601.732,41.9667,255.962,-47.9786],[11149.2,-501.164,41.4333,254.736,-47.187],[11056.4,-402.359,40.9,253.535,-46.3794],[10959.7,-302.336,40.35,252.325,-45.5299],[10859,-201.297,39.7833,251.111,-44.6367],[10757.2,-102.327,39.2167,249.934,-43.7252],[10651.3,-2.63862,38.6333,248.763,-42.7676],[10541.1,97.5474,38.0333,247.607,-41.7622],[10426.6,197.999,37.4167,246.473,-40.7074],[10307.5,298.471,36.7833,245.371,-39.6013],[10183.9,398.711,36.1333,244.311,-38.4423],[10055.6,498.452,35.4667,243.304,-37.2288],[9919.11,599.786,34.7667,242.341,-35.9279],[9777.57,699.881,34.05,241.464,-34.5683],[9630.8,798.423,33.3167,240.687,-33.1488],[9471.84,899.283,32.5333,240.003,-31.602],[9303.68,999.523,31.7167,239.462,-29.9572],[9125.99,1098.44,30.8667,239.098,-28.2127],[8931.27,1198.84,29.95,238.95,-26.2967],[8718.76,1299.16,28.9667,239.093,-24.2057],[8483.92,1399.2,27.9,239.628,-21.9012],[8218.02,1499.28,26.7167,240.716,-19.3093],[7907.56,1599.16,25.3667,242.64,-16.3204],[7521.48,1699.13,23.7333,246.016,-12.6824],[6957.42,1799.93,21.4333,252.884,-7.57879],[6045.05,1859.54,17.9167,268.687,-0.00413991]]], + [29,1966.55,[[12361.6,-2000.63,49.5667,273.025,-57.4875],[12297.7,-1901.32,49.1333,271.889,-57.004],[12233.3,-1802.96,48.7,270.753,-56.512],[12165.8,-1701.86,48.25,269.573,-55.992],[12097.6,-1601.81,47.8,268.393,-55.4626],[12028.9,-1502.84,47.35,267.216,-54.9236],[11956.9,-1401.35,46.8833,265.998,-54.3543],[11884.2,-1301.05,46.4167,264.784,-53.7744],[11810.8,-1201.96,45.95,263.574,-53.1837],[11734.1,-1100.6,45.4667,262.328,-52.5602],[11656.7,-1000.57,44.9833,261.09,-51.9248],[11578.5,-901.882,44.5,259.861,-51.2771],[11496.9,-801.219,44,258.6,-50.5941],[11414.4,-702.028,43.5,257.352,-49.8976],[11328.3,-601.098,42.9833,256.078,-49.1635],[11241.4,-501.781,42.4667,254.822,-48.4147],[11150.7,-400.976,41.9333,253.546,-47.6261],[11059.1,-301.936,41.4,252.292,-46.8214],[10963.7,-201.675,40.85,251.027,-45.9744],[10864.3,-100.392,40.2833,249.754,-45.0835],[10763.9,-1.18249,39.7167,248.515,-44.1739],[10659.3,98.7496,39.1333,247.28,-43.2178],[10550.6,199.182,38.5333,246.056,-42.2136],[10437.6,299.882,37.9167,244.85,-41.1593],[10323.3,397.991,37.3,243.701,-40.0825],[10201.4,498.558,36.65,242.558,-38.9233],[10074.8,598.63,35.9833,241.464,-37.7088],[9943.5,697.926,35.3,240.431,-36.4373],[9804.01,798.452,34.5833,239.452,-35.0752],[9656.04,899.633,33.8333,238.549,-33.6193],[9502.71,998.749,33.0667,237.765,-32.0997],[9337.03,1099.46,32.25,237.096,-30.4477],[9161.98,1198.86,31.4,236.596,-28.6935],[8970.2,1299.77,30.4833,236.297,-26.7651],[8764.5,1398.98,29.5167,236.271,-24.6939],[8533.36,1499.74,28.45,236.613,-22.3694],[8275.43,1599.26,27.2833,237.466,-19.7884],[7973.94,1699.06,25.95,239.097,-16.8024],[7598.46,1799.63,24.3333,242.088,-13.1538],[7069.23,1899.43,22.1333,248.099,-8.19423],[6119.01,1966.55,18.4,263.978,-0.00537117]]], + [30,2074.88,[[12402.6,-2000.96,50.4833,273.575,-58.3282],[12340.1,-1900.52,50.05,272.416,-57.8568],[12277,-1801.02,49.6167,271.254,-57.377],[12213.4,-1702.49,49.1833,270.091,-56.8888],[12146.7,-1601.19,48.7333,268.882,-56.3726],[12079.4,-1500.95,48.2833,267.674,-55.8471],[12011.4,-1401.79,47.8333,266.466,-55.3119],[11940.4,-1300.11,47.3667,265.216,-54.7465],[11871.2,-1203.19,46.9167,264.012,-54.1911],[11796.2,-1100.33,46.4333,262.724,-53.5833],[11723,-1002.26,45.9667,261.485,-52.9851],[11646.6,-901.982,45.4833,260.209,-52.3537],[11569.4,-803.05,45,258.941,-51.71],[11488.8,-702.137,44.5,257.638,-51.0309],[11407.4,-602.697,44,256.348,-50.3382],[11322.5,-501.512,43.4833,255.028,-49.6079],[11236.7,-401.942,42.9667,253.724,-48.8627],[11147.2,-300.876,42.4333,252.397,-48.0775],[11056.8,-201.579,41.9,251.092,-47.2759],[10962.7,-101.054,41.35,249.771,-46.4319],[10867.5,-2.45831,40.8,248.478,-45.5702],[10765.5,99.9751,40.2167,247.141,-44.6365],[10665.3,197.347,39.65,245.878,-43.71],[10558.1,298.122,39.05,244.584,-42.7079],[10446.7,399.171,38.4333,243.305,-41.6553],[10333.9,497.625,37.8167,242.081,-40.5796],[10213.7,598.553,37.1667,240.856,-39.4209],[10089,698.99,36.5,239.675,-38.206],[9959.48,798.657,35.8167,238.55,-36.9331],[9821.95,899.566,35.1,237.471,-35.5686],[9679.39,998.929,34.3667,236.482,-34.1417],[9528.34,1098.54,33.6,235.582,-32.6175],[9365.11,1199.77,32.7833,234.787,-30.9588],[9192.71,1299.7,31.9333,234.15,-29.1958],[9007.29,1399.39,31.0333,233.706,-27.2911],[8804.83,1499.32,30.0667,233.511,-25.2055],[8580.94,1599.34,29.0167,233.655,-22.8986],[8327.25,1699.88,27.85,234.283,-20.2929],[8034.55,1799.65,26.5333,235.629,-17.3114],[7673.32,1899.96,24.95,238.212,-13.6917],[7173.97,1999.53,22.8333,243.451,-8.84562]]], + [31,2184.4,[[12436.3,-2003.1,51.4,274.205,-59.1606],[12375.1,-1901.52,50.9667,273.024,-58.7013],[12313.4,-1800.88,50.5333,271.839,-58.2339],[12251.1,-1701.19,50.1,270.652,-57.7581],[12188.2,-1602.45,49.6667,269.463,-57.2738],[12122.4,-1500.95,49.2167,268.226,-56.7618],[12056,-1400.51,48.7667,266.988,-56.2402],[11988.9,-1301.14,48.3167,265.751,-55.709],[11921.2,-1202.87,47.8667,264.514,-55.168],[11850.4,-1102.12,47.4,263.234,-54.5963],[11778.9,-1002.58,46.9333,261.956,-54.0136],[11704.2,-900.763,46.45,260.637,-53.3983],[11628.7,-800.273,45.9667,259.323,-52.7709],[11552.5,-701.126,45.4833,258.016,-52.1309],[11475.6,-603.339,45,256.717,-51.4784],[11392.6,-500.333,44.4833,255.34,-50.7666],[11311.5,-402.168,43.9833,254.019,-50.0636],[11226.8,-302.322,43.4667,252.668,-49.3223],[11138.6,-200.974,42.9333,251.292,-48.5409],[11049.4,-101.395,42.4,249.935,-47.743],[10956.5,-0.581112,41.85,248.559,-46.9024],[10862.6,98.3005,41.3,247.21,-46.0437],[10764.9,198.131,40.7333,245.85,-45.1399],[10663.2,298.697,40.15,244.486,-44.189],[10557.4,399.776,39.55,243.125,-43.189],[10450.5,498.429,38.95,241.81,-42.1667],[10336.3,599.894,38.3167,240.476,-41.0633],[10220.9,698.581,37.6833,239.204,-39.935],[10097.9,799.418,37.0167,237.936,-38.7203],[9970.25,899.491,36.3333,236.72,-37.4468],[9837.88,998.507,35.6333,235.568,-36.1126],[9697.43,1098.39,34.9,234.472,-34.6834],[9548.62,1198.53,34.1333,233.457,-33.1553],[9391.18,1298.29,33.3333,232.551,-31.5252],[9221.45,1398.92,32.4833,231.775,-29.7549],[9038.95,1499.33,31.5833,231.177,-27.8401],[8843.15,1598.37,30.6333,230.817,-25.7774],[8622.93,1699.37,29.5833,230.766,-23.4529],[8377.04,1799.61,28.4333,231.161,-20.8613],[8093.04,1899.59,27.1333,232.219,-17.8864],[7745.82,1999.89,25.5833,234.397,-14.2986]]], + [32,2295,[[12460.3,-2003.21,52.3,274.863,-59.9671],[12400.5,-1900.54,51.8667,273.663,-59.5197],[12342.4,-1802.68,51.45,272.504,-59.082],[12281.4,-1701.82,51.0167,271.295,-58.6187],[12220,-1601.92,50.5833,270.083,-58.1471],[12157.9,-1502.97,50.15,268.868,-57.667],[12092.9,-1401.24,49.7,267.604,-57.1593],[12027.3,-1300.58,49.25,266.338,-56.642],[11961.2,-1201,48.8,265.071,-56.1151],[11894.4,-1102.5,48.35,263.804,-55.5782],[11824.5,-1001.52,47.8833,262.491,-55.0108],[11753.9,-901.752,47.4167,261.18,-54.4324],[11682.7,-803.198,46.95,259.871,-53.8427],[11608.2,-702.428,46.4667,258.521,-53.2199],[11533.1,-603.001,45.9833,257.176,-52.5845],[11454.6,-501.577,45.4833,255.792,-51.9138],[11375.3,-401.629,44.9833,254.416,-51.2293],[11295.3,-303.176,44.4833,253.052,-50.5306],[11211.8,-203.032,43.9667,251.655,-49.7936],[11124.7,-101.378,43.4333,250.229,-49.0165],[11036.8,-1.49441,42.9,248.821,-48.2225],[10945.1,99.6318,42.35,247.391,-47.3858],[10852.5,198.824,41.8,245.986,-46.5307],[10756.2,298.973,41.2333,244.567,-45.6302],[10655.9,399.865,40.65,243.14,-44.6823],[10554.5,498.493,40.0667,241.751,-43.7129],[10449.1,597.543,39.4667,240.365,-42.6934],[10336.6,699.426,38.8333,238.954,-41.5923],[10222.8,798.527,38.2,237.603,-40.4656],[10101.5,899.798,37.5333,236.249,-39.2518],[9978.86,997.9,36.8667,234.972,-38.0098],[9845.35,1099.78,36.15,233.693,-36.6432],[9710.13,1197.88,35.4333,232.519,-35.2445],[9563.58,1298.6,34.6667,231.388,-33.7134],[9408.54,1398.97,33.8667,230.359,-32.0784],[9244.72,1498.29,33.0333,229.462,-30.3363],[9065.11,1599.48,32.1333,228.712,-28.4123],[8872.46,1699.34,31.1833,228.186,-26.3371],[8659.27,1799.69,30.15,227.946,-24.0329],[8421.04,1899.67,29.0167,228.114,-21.4569],[8145.57,1999.91,27.7333,228.892,-18.4903]]], + [33,2406.56,[[12474.9,-2001.31,53.1833,275.544,-60.7485],[12418.5,-1901.54,52.7667,274.374,-60.3297],[12361.7,-1802.61,52.35,273.198,-59.9036],[12302.1,-1700.63,51.9167,271.97,-59.4526],[12244.3,-1603.45,51.5,270.785,-59.0112],[12183.6,-1503.32,51.0667,269.548,-58.544],[12120,-1400.35,50.6167,268.26,-58.0498],[12058.2,-1302.18,50.1833,267.016,-57.5651],[11993.5,-1201.28,49.7333,265.722,-57.0524],[11928.2,-1101.46,49.2833,264.426,-56.5299],[11862.3,-1002.73,48.8333,263.129,-55.9975],[11793.3,-901.505,48.3667,261.784,-55.4346],[11723.7,-801.487,47.9,260.44,-54.8607],[11653.4,-702.688,47.4333,259.098,-54.2755],[11579.9,-601.665,46.95,257.711,-53.6572],[11505.8,-501.985,46.4667,256.328,-53.0263],[11428.3,-400.301,45.9667,254.904,-52.3601],[11350.2,-300.093,45.4667,253.488,-51.6799],[11271.2,-201.381,44.9667,252.081,-50.9854],[11188.8,-100.972,44.45,250.639,-50.2526],[11105.6,-2.20292,43.9333,249.21,-49.504],[11018.9,98.0084,43.4,247.752,-48.7144],[10928.5,199.471,42.85,246.268,-47.8821],[10837.2,298.999,42.3,244.808,-47.031],[10742.2,399.492,41.7333,243.329,-46.1343],[10646.2,497.875,41.1667,241.882,-45.2172],[10543.4,599.714,40.5667,240.385,-44.2237],[10439.5,699.122,39.9667,238.931,-43.2068],[10331.5,798.725,39.35,237.484,-42.1373],[10219.3,898.273,38.7167,236.053,-41.0128],[10102.9,997.506,38.0667,234.649,-39.8313],[9979.04,1098.58,37.3833,233.248,-38.5593],[9850.6,1198.61,36.6833,231.901,-37.2246],[9714.33,1299.55,35.95,230.595,-35.7923],[9573.14,1398.64,35.2,229.378,-34.292],[9420.5,1499.64,34.4,228.225,-32.653],[9259.24,1599.63,33.5667,227.195,-30.9047],[9085.75,1699.71,32.6833,226.311,-29.008],[8899.57,1798.73,31.75,225.628,-26.9582],[8693.34,1898.6,30.7333,225.2,-24.6766],[8459.21,1999.93,29.6,225.144,-22.0802]]], + [34,2518.96,[[12482.2,-2001.43,54.0667,276.29,-61.5221],[12427.1,-1900.63,53.65,275.105,-61.1145],[12371.5,-1800.67,53.2333,273.914,-60.6998],[12315.4,-1701.54,52.8167,272.717,-60.2778],[12258.8,-1603.27,52.4,271.515,-59.8484],[12199.5,-1501.98,51.9667,270.259,-59.3938],[12139.6,-1401.64,51.5333,268.998,-58.9308],[12079.2,-1302.26,51.1,267.732,-58.4594],[12015.9,-1200.09,50.65,266.414,-57.9606],[11954.4,-1102.7,50.2167,265.141,-57.4712],[11889.9,-1002.63,49.7667,263.817,-56.9535],[11824.9,-903.644,49.3167,262.491,-56.4257],[11756.9,-802.16,48.85,261.114,-55.8677],[11688.2,-701.879,48.3833,259.738,-55.2986],[11618.9,-602.819,47.9167,258.362,-54.7181],[11546.4,-501.524,47.4333,256.939,-54.1046],[11473.3,-401.573,46.95,255.52,-53.4785],[11399.5,-302.984,46.4667,254.105,-52.8393],[11322.3,-202.447,45.9667,252.648,-52.1643],[11241.9,-100.131,45.45,251.15,-51.4517],[11163.3,-2.65675,44.95,249.711,-50.7472],[11078.6,99.6212,44.4167,248.188,-49.9792],[10995.7,197.013,43.9,246.728,-49.2188],[10906.7,298.836,43.35,245.191,-48.3912],[10816.7,398.724,42.8,243.675,-47.5446],[10723,499.586,42.2333,242.138,-46.6522],[10628.3,598.337,41.6667,240.63,-45.7391],[10529.9,697.758,41.0833,239.11,-44.7772],[10427.5,797.621,40.4833,237.586,-43.7643],[10321.1,897.689,39.8667,236.065,-42.6982],[10210.6,997.714,39.2333,234.556,-41.5767],[10093,1099.95,38.5667,233.031,-40.3669],[9973.91,1199.02,37.9,231.577,-39.127],[9847.4,1299.57,37.2,230.135,-37.7927],[9716.27,1398.79,36.4833,228.756,-36.3927],[9577.29,1498.52,35.7333,227.427,-34.8911],[9430.19,1598.15,34.95,226.175,-33.2837],[9271.53,1698.95,34.1167,225.009,-31.5311],[9100.86,1799.9,33.2333,223.975,-29.6274],[8917.72,1899.83,32.3,223.128,-27.5674],[8718.28,1999.1,31.3,222.524,-25.3092]]], + [35,2632.09,[[12482.3,-2003.71,54.95,277.097,-62.2874],[12428.4,-1901.89,54.5333,275.9,-61.891],[12374,-1800.88,54.1167,274.696,-61.4877],[12319.1,-1700.71,53.7,273.485,-61.0772],[12263.8,-1601.38,53.2833,272.268,-60.6595],[12208,-1502.89,52.8667,271.044,-60.2344],[12149.4,-1401.39,52.4333,269.764,-59.7842],[12090.3,-1300.83,52,268.48,-59.3257],[12030.7,-1201.23,51.5667,267.189,-58.8587],[11970.6,-1102.6,51.1333,265.895,-58.383],[11907.6,-1001.22,50.6833,264.546,-57.8796],[11844,-900.92,50.2333,263.194,-57.3665],[11779.9,-801.707,49.7833,261.839,-56.8433],[11715.1,-703.599,49.3333,260.482,-56.31],[11647.4,-603.04,48.8667,259.073,-55.7459],[11576.6,-500.175,48.3833,257.614,-55.1497],[11507.6,-402.115,47.9167,256.207,-54.5621],[11435.5,-301.875,47.4333,254.751,-53.941],[11362.7,-202.996,46.95,253.298,-53.3069],[11286.7,-102.16,46.45,251.801,-52.6369],[11209.9,-2.82035,45.95,250.31,-51.9524],[11129.8,98.2371,45.4333,248.778,-51.2296],[11048.9,197.653,44.9167,247.257,-50.4907],[10964.6,298.531,44.3833,245.7,-49.7108],[10879.5,397.613,43.85,244.159,-48.9131],[10790.8,497.884,43.3,242.588,-48.0715],[10698.5,599.141,42.7333,240.994,-47.1839],[10605.2,698.285,42.1667,239.425,-46.2753],[10508.2,798.109,41.5833,237.842,-45.3176],[10407.3,898.387,40.9833,236.25,-44.3086],[10302.5,998.88,40.3667,234.657,-43.2459],[10193.6,1099.34,39.7333,233.071,-42.1273],[10080.6,1199.5,39.0833,231.502,-40.9504],[9963.41,1299.1,38.4167,229.961,-39.7127],[9841.83,1397.84,37.7333,228.459,-38.4119],[9709.74,1499.99,37,226.943,-36.9799],[9575.97,1598.14,36.2667,225.535,-35.5109],[9431.21,1698.47,35.4833,224.162,-33.9015],[9278.23,1798.06,34.6667,222.888,-32.1804],[9110.37,1899.91,33.7833,221.704,-30.2708],[8933.52,1999.07,32.8667,220.71,-28.2391]]], + [36,2745.83,[[12470.8,-2000.02,55.8,277.866,-63.0135],[12420.2,-1901.33,55.4,276.707,-62.6433],[12369.1,-1803.38,55,275.541,-62.2669],[12315.5,-1702.16,54.5833,274.318,-61.8679],[12261.4,-1601.76,54.1667,273.087,-61.4619],[12206.8,-1502.21,53.75,271.849,-61.0487],[12151.7,-1403.5,53.3333,270.604,-60.628],[12094,-1301.76,52.9,269.302,-60.1825],[12035.7,-1200.97,52.4667,267.994,-59.7287],[11976.9,-1101.14,52.0333,266.679,-59.2664],[11917.6,-1002.28,51.6,265.36,-58.7953],[11855.5,-900.655,51.15,263.984,-58.2968],[11792.8,-800.109,50.7,262.605,-57.7885],[11729.5,-700.652,50.25,261.221,-57.2701],[11665.7,-602.3,49.8,259.835,-56.7416],[11598.9,-501.488,49.3333,258.395,-56.1824],[11531.5,-401.896,48.8667,256.954,-55.6118],[11461,-300.05,48.3833,255.461,-55.0085],[11392.3,-202.992,47.9167,254.021,-54.4138],[11318.1,-100.409,47.4167,252.48,-53.7631],[11245.6,-2.65051,46.9333,250.994,-53.1204],[11170,97.0076,46.4333,249.462,-52.4412],[11091,198.394,45.9167,247.886,-51.7238],[11011.3,298.139,45.4,246.32,-50.9901],[10928.2,399.356,44.8667,244.714,-50.2153],[10844.3,498.776,44.3333,243.123,-49.4226],[10756.9,599.394,43.7833,241.5,-48.5859],[10668.6,698.05,43.2333,239.897,-47.7293],[10576.7,797.613,42.6667,238.269,-46.8257],[10481.1,897.868,42.0833,236.622,-45.8728],[10381.8,998.587,41.4833,234.963,-44.8683],[10278.5,1099.53,40.8667,233.298,-43.8097],[10174.1,1197.84,40.25,231.68,-42.7244],[10062.9,1298.55,39.6,230.028,-41.5512],[9947.49,1398.71,38.9333,228.399,-40.3165],[9827.8,1498.03,38.25,226.804,-39.0178],[9700.75,1598.51,37.5333,225.221,-37.6199],[9566.12,1699.56,36.7833,223.671,-36.1177],[9426.71,1798.45,36.0167,222.211,-34.5411],[9276.22,1898.82,35.2,220.806,-32.817],[9114.25,1999.64,34.3333,219.5,-30.9384]]], + [37,2860.09,[[12454.3,-2002.73,56.6667,278.738,-63.7472],[12404.8,-1903.09,56.2667,277.571,-63.3875],[12352.8,-1800.07,55.85,276.346,-63.0063],[12302.4,-1701.93,55.45,275.162,-62.6339],[12249.5,-1600.51,55.0333,273.92,-62.2393],[12198.2,-1503.92,54.6333,272.719,-61.8538],[12142.2,-1400.15,54.2,271.411,-61.4287],[12087.9,-1301.25,53.7833,270.145,-61.0124],[12033.2,-1203.2,53.3667,268.872,-60.5885],[11975.7,-1102.16,52.9333,267.541,-60.1396],[11917.7,-1002.08,52.5,266.203,-59.6821],[11859.3,-902.974,52.0667,264.859,-59.216],[11798,-801.094,51.6167,263.457,-58.7225],[11736.2,-700.289,51.1667,262.05,-58.2192],[11673.8,-600.573,50.7167,260.639,-57.706],[11610.9,-501.962,50.2667,259.224,-57.1825],[11545,-400.881,49.8,257.753,-56.6285],[11478.6,-301.019,49.3333,256.28,-56.0631],[11411.5,-202.394,48.8667,254.805,-55.4859],[11341.4,-101.567,48.3833,253.278,-54.8755],[11270.7,-2.10113,47.9,251.752,-54.2518],[11196.8,99.3418,47.4,250.176,-53.5925],[11122.2,199.288,46.9,248.604,-52.9186],[11046.9,297.717,46.4,247.037,-52.2295],[10968.4,397.811,45.8833,245.426,-51.5014],[10886.5,499.388,45.35,243.773,-50.7323],[10803.8,599.169,44.8167,242.132,-49.945],[10720.3,697.128,44.2833,240.506,-49.1391],[10630.7,799.185,43.7167,238.798,-48.2622],[10540.2,899.13,43.15,237.112,-47.3635],[10446,999.776,42.5667,235.404,-46.4154],[10350.8,1098.12,41.9833,233.726,-45.4434],[10249.2,1199.55,41.3667,231.99,-44.3896],[10146.4,1298.33,40.75,230.297,-43.3084],[10036.9,1399.55,40.1,228.566,-42.1389],[9926.11,1497.75,39.45,226.893,-40.9384],[9808.31,1597.68,38.7667,225.206,-39.6427],[9683.29,1698.8,38.05,223.522,-38.2467],[9553.77,1798.3,37.3167,221.9,-36.779],[9416.65,1897.97,36.55,220.322,-35.2026],[9268.64,1999.17,35.7333,218.787,-33.4766]]], + [38,2974.73,[[12428.5,-2003.71,57.5167,279.612,-64.4582],[12380,-1903.14,57.1167,278.438,-64.1086],[12331.2,-1803.3,56.7167,277.255,-63.7531],[12279.9,-1700.07,56.3,276.013,-63.3763],[12230.2,-1601.73,55.9,274.811,-63.0082],[12178.1,-1500.09,55.4833,273.551,-62.618],[12127.5,-1403.29,55.0833,272.332,-62.2369],[12074.5,-1303.29,54.6667,271.054,-61.8327],[12018.8,-1200.19,54.2333,269.717,-61.4047],[11964.8,-1101.93,53.8167,268.422,-60.9854],[11908.1,-1000.67,53.3833,267.069,-60.5412],[11851,-900.362,52.95,265.707,-60.0885],[11793.3,-801.028,52.5167,264.339,-59.6271],[11735.1,-702.678,52.0833,262.965,-59.1568],[11674.2,-601.599,51.6333,261.531,-58.6589],[11612.7,-501.609,51.1833,260.092,-58.1509],[11550.7,-402.723,50.7333,258.649,-57.6327],[11485.8,-301.356,50.2667,257.147,-57.0843],[11420.3,-201.208,49.8,255.643,-56.5243],[11354.2,-102.296,49.3333,254.136,-55.9525],[11285.1,-1.17224,48.85,252.574,-55.3476],[11215.4,98.5904,48.3667,251.012,-54.7295],[11145,196.973,47.8833,249.451,-54.0979],[11071.6,297.277,47.3833,247.839,-53.43],[10994.9,399.33,46.8667,246.177,-52.7239],[10917.5,499.741,46.35,244.522,-52.0013],[10839.4,598.489,45.8333,242.875,-51.2618],[10757.9,698.652,45.3,241.186,-50.4803],[10675.7,796.993,44.7667,239.509,-49.6802],[10587.4,899.457,44.2,237.745,-48.809],[10498.3,999.807,43.6333,236.002,-47.9159],[10408.2,1098.02,43.0667,234.282,-47.0003],[10311.8,1199.63,42.4667,232.49,-46.0059],[10214.4,1298.78,41.8667,230.733,-44.9855],[10113.3,1398.07,41.25,228.967,-43.9093],[10005.5,1499.83,40.6,227.155,-42.7442],[9896.44,1598.57,39.95,225.4,-41.5474],[9780.51,1699.06,39.2667,223.623,-40.2547],[9660.35,1798.44,38.5667,221.882,-38.8936],[9532.95,1898.64,37.8333,220.153,-37.4276],[9398.07,1999.03,37.0667,218.46,-35.8514]]], + [39,3089.67,[[12393.4,-2002.95,58.35,280.486,-65.1475],[12346,-1901.49,57.95,279.306,-64.8078],[12298.3,-1800.74,57.55,278.117,-64.4623],[12250.1,-1700.71,57.15,276.918,-64.1109],[12201.6,-1601.41,56.75,275.709,-63.7535],[12152.6,-1502.85,56.35,274.49,-63.3898],[12101.1,-1400.99,55.9333,273.211,-63.0043],[12051.3,-1303.98,55.5333,271.975,-62.6275],[11999,-1203.75,55.1167,270.677,-62.2281],[11944.1,-1100.41,54.6833,269.319,-61.8049],[11890.9,-1001.92,54.2667,268.004,-61.3904],[11835.1,-900.425,53.8333,266.628,-60.9511],[11780.9,-803.731,53.4167,265.297,-60.5208],[11721.9,-700.309,52.9667,263.852,-60.047],[11664.6,-601.72,52.5333,262.453,-59.5817],[11604.5,-500.392,52.0833,260.993,-59.089],[11543.9,-400.153,51.6333,259.527,-58.5862],[11482.8,-301.018,51.1833,258.055,-58.0732],[11421.1,-203,50.7333,256.579,-57.5497],[11356.6,-102.55,50.2667,255.043,-56.9954],[11291.5,-3.3345,49.8,253.505,-56.4294],[11223.4,98.1046,49.3167,251.908,-55.8305],[11154.7,198.183,48.8333,250.311,-55.2182],[11085.4,296.881,48.35,248.713,-54.5924],[11013,397.511,47.85,247.062,-53.9304],[10937.5,499.903,47.3333,245.358,-53.2303],[10863.8,597.428,46.8333,243.714,-52.5369],[10784.3,699.737,46.3,241.967,-51.7798],[10706.6,797.135,45.7833,240.284,-51.0287],[10623.1,898.937,45.2333,238.504,-50.2096],[10538.7,998.776,44.6833,236.738,-49.3699],[10451,1099.56,44.1167,234.938,-48.4828],[10362.3,1198.19,43.55,233.158,-47.5729],[10270.1,1297.46,42.9667,231.353,-46.6121],[10171.5,1399.87,42.35,229.477,-45.5691],[10072,1499.63,41.7333,227.64,-44.4977],[9968.57,1599.29,41.1,225.798,-43.3672],[9861.3,1698.6,40.45,223.961,-42.175],[9747.24,1799.69,39.7667,222.093,-40.8861],[9629.03,1899.68,39.0667,220.257,-39.5279],[9506.56,1998.26,38.35,218.465,-38.0974]]], + [40,3204.78,[[12349.2,-2000.47,59.1667,281.356,-65.816],[12304.8,-1902.39,58.7833,280.221,-65.4998],[12258.1,-1800.73,58.3833,279.027,-65.1643],[12213,-1703.98,58,277.872,-64.8373],[12165.6,-1603.72,57.6,276.658,-64.4904],[12115.7,-1500.07,57.1833,275.382,-64.1226],[12067.5,-1401.32,56.7833,274.146,-63.7633],[12018.8,-1303.32,56.3833,272.902,-63.3976],[11967.7,-1202.05,55.9667,271.595,-63.0099],[11916.1,-1101.61,55.55,270.278,-62.6151],[11864.1,-1002.02,55.1333,268.952,-62.2129],[11811.6,-903.298,54.7167,267.617,-61.8033],[11756.6,-801.548,54.2833,266.219,-61.3692],[11701.1,-700.754,53.85,264.813,-60.9266],[11645.1,-600.928,53.4167,263.398,-60.4754],[11588.6,-502.085,52.9833,261.975,-60.0154],[11529.4,-400.494,52.5333,260.489,-59.5281],[11472,-303.694,52.1,259.052,-59.0493],[11409.5,-200.591,51.6333,257.497,-58.5231],[11348.7,-102.309,51.1833,255.992,-58.0051],[11285.2,-1.58282,50.7167,254.426,-57.4565],[11221,97.9082,50.25,252.856,-56.896],[11154,199.633,49.7667,251.225,-56.3028],[11086.3,299.997,49.2833,249.593,-55.6963],[11018,398.981,48.8,247.959,-55.0762],[10946.7,499.907,48.3,246.269,-54.42],[10874.8,599.316,47.8,244.58,-53.7484],[10802.1,697.188,47.3,242.895,-53.0612],[10723.9,799.867,46.7667,241.102,-52.3105],[10647.4,897.623,46.25,239.373,-51.5654],[10565.1,999.807,45.7,237.542,-50.7526],[10484.6,1097.02,45.1667,235.779,-49.9445],[10398.2,1198.25,44.6,233.921,-49.064],[10310.9,1297.35,44.0333,232.084,-48.1605],[10217.6,1399.9,43.4333,230.163,-47.1781],[10123.2,1499.99,42.8333,228.271,-46.1689],[10027.9,1597.56,42.2333,226.414,-45.1322],[9926.21,1697.81,41.6,224.495,-44.0077],[9820.69,1797.71,40.95,222.575,-42.8208],[9708.5,1899.43,40.2667,220.619,-41.5367],[9595.03,1997.71,39.5833,218.732,-40.215]]], + [41,3319.97,[[12297.8,-2000.59,59.9833,282.268,-66.478],[12254.4,-1901.68,59.6,281.131,-66.1709],[12210.7,-1803.4,59.2167,279.983,-65.8588],[12164.7,-1701.54,58.8167,278.774,-65.5276],[12118.3,-1600.39,58.4167,277.554,-65.1907],[12073.5,-1504.13,58.0333,276.375,-64.8623],[12024.4,-1400.27,57.6167,275.083,-64.4992],[11976.8,-1301.31,57.2167,273.831,-64.1443],[11928.9,-1203.1,56.8167,272.569,-63.7832],[11878.5,-1101.61,56.4,271.244,-63.4002],[11827.7,-1000.96,55.9833,269.909,-63.0101],[11776.4,-901.157,55.5667,268.563,-62.6127],[11724.7,-802.213,55.15,267.208,-62.2079],[11670.5,-700.234,54.7167,265.789,-61.7789],[11617.9,-603.08,54.3,264.415,-61.3583],[11562.8,-502.988,53.8667,262.977,-60.9126],[11505,-400.086,53.4167,261.474,-60.4403],[11448.9,-302.008,52.9833,260.019,-59.9763],[11390.1,-201.226,52.5333,258.501,-59.4846],[11330.8,-101.545,52.0833,256.974,-58.9828],[11270.9,-2.98225,51.6333,255.441,-58.4704],[11208.3,98.0355,51.1667,253.845,-57.9277],[11145.1,197.819,50.7,252.244,-57.3732],[11079.1,299.848,50.2167,250.58,-56.7861],[11014.8,397.067,49.75,248.971,-56.2066],[10945.2,499.804,49.25,247.244,-55.5716],[10877.4,597.694,48.7667,245.573,-54.9434],[10806.5,697.469,48.2667,243.845,-54.2785],[10732.6,798.955,47.75,242.061,-53.5748],[10658,898.777,47.2333,240.28,-52.8539],[10582.7,996.913,46.7167,238.505,-52.1154],[10501.8,1099.5,46.1667,236.624,-51.3093],[10422.5,1197.11,45.6333,234.81,-50.5076],[10337.5,1298.76,45.0667,232.898,-49.6336],[10251.6,1398.27,44.5,231.002,-48.7363],[10162.3,1498.43,43.9167,229.073,-47.7877],[10069.5,1599.03,43.3167,227.115,-46.785],[9973.08,1699.8,42.7,225.136,-45.7255],[9875.67,1797.9,42.0833,223.195,-44.6359],[9771.88,1898.35,41.4333,221.195,-43.4543],[9664.25,1998.19,40.7667,219.2,-42.2067]]], + [42,3435.11,[[12239.1,-2003.45,60.8,283.221,-67.1333],[12196.8,-1903.71,60.4167,282.082,-66.8353],[12152.2,-1800.3,60.0167,280.882,-66.5192],[12109.1,-1701.85,59.6333,279.72,-66.211],[12065.7,-1604.05,59.25,278.548,-65.8978],[12020,-1502.68,58.85,277.314,-65.5654],[11974,-1402.04,58.45,276.069,-65.2272],[11927.5,-1302.12,58.05,274.812,-64.883],[11880.7,-1202.95,57.65,273.544,-64.5328],[11831.5,-1100.44,57.2333,272.212,-64.1613],[11783.8,-1002.81,56.8333,270.923,-63.7982],[11733.8,-901.926,56.4167,269.569,-63.413],[11683.3,-801.891,56,268.205,-63.0206],[11632.4,-702.715,55.5833,266.83,-62.6209],[11579,-600.496,55.15,265.389,-62.197],[11527.2,-503.108,54.7333,263.994,-61.7816],[11472.9,-402.774,54.3,262.534,-61.3411],[11418.1,-303.42,53.8667,261.064,-60.8918],[11360.7,-201.297,53.4167,259.528,-60.4157],[11302.8,-100.261,52.9667,257.983,-59.9297],[11244.4,-0.325993,52.5167,256.43,-59.4334],[11185.5,98.4921,52.0667,254.869,-58.9266],[11123.8,199.775,51.6,253.243,-58.3897],[11061.6,299.823,51.1333,251.611,-57.841],[10998.8,398.62,50.6667,249.973,-57.2801],[10933.2,499.61,50.1833,248.272,-56.6861],[10867,599.22,49.7,246.567,-56.0783],[10800.2,697.434,49.2167,244.86,-55.4565],[10730.5,797.543,48.7167,243.093,-54.7981],[10657.8,899.374,48.2,241.267,-54.1011],[10584.3,999.542,47.6833,239.443,-53.3867],[10510.2,1098.02,47.1667,237.624,-52.6546],[10433,1197.89,46.6333,235.752,-51.8797],[10352.6,1298.94,46.0833,233.83,-51.0597],[10271.3,1398,45.5333,231.92,-50.218],[10186.8,1497.95,44.9667,229.968,-49.3276],[10099,1598.57,44.3833,227.978,-48.3857],[10007.7,1699.63,43.7833,225.955,-47.3895],[9915.44,1798.19,43.1833,223.961,-46.3651],[9817.05,1899.46,42.55,221.893,-45.2523],[9717.61,1997.86,41.9167,219.868,-44.1066]]], + [43,3550.11,[[12169.7,-2000.4,61.5833,284.114,-67.7569],[12130.1,-1904.24,61.2167,283.023,-67.4802],[12088.4,-1804.32,60.8333,281.872,-67.1862],[12044.5,-1700.72,60.4333,280.658,-66.8743],[12002.1,-1602.08,60.05,279.484,-66.5703],[11959.3,-1504.09,59.6667,278.298,-66.2613],[11914.3,-1402.53,59.2667,277.049,-65.9333],[11868.9,-1301.69,58.8667,275.789,-65.5995],[11823.2,-1201.58,58.4667,274.517,-65.2599],[11777,-1102.2,58.0667,273.233,-64.9141],[11730.5,-1003.58,57.6667,271.938,-64.5622],[11681.6,-901.655,57.25,270.577,-64.1889],[11632.3,-800.565,56.8333,269.205,-63.8086],[11582.6,-700.321,56.4167,267.821,-63.4211],[11532.5,-600.936,56,266.427,-63.0262],[11481.9,-502.421,55.5833,265.022,-62.6238],[11428.9,-400.9,55.15,263.549,-62.1971],[11375.4,-300.347,54.7167,262.066,-61.7618],[11321.5,-200.774,54.2833,260.573,-61.3177],[11267.1,-102.194,53.85,259.07,-60.8647],[11210.1,-0.888812,53.4,257.5,-60.3844],[11152.6,99.3156,52.95,255.92,-59.894],[11094.5,198.404,52.5,254.332,-59.3931],[11033.8,299.967,52.0333,252.677,-58.8623],[10974.8,396.735,51.5833,251.074,-58.3392],[10910.8,499.376,51.1,249.345,-57.7648],[10848.5,597.188,50.6333,247.67,-57.1976],[10783.4,697.139,50.15,245.931,-56.5965],[10715.4,799.066,49.65,244.128,-55.9599],[10646.7,899.478,49.15,242.322,-55.3079],[10577.5,998.352,48.65,240.515,-54.6399],[10505.2,1098.89,48.1333,238.649,-53.9326],[10432.3,1197.73,47.6167,236.785,-53.2073],[10356.3,1297.98,47.0833,234.865,-52.4394],[10277.2,1399.42,46.5333,232.893,-51.6264],[10197.3,1498.87,45.9833,230.931,-50.7915],[10114.2,1599.22,45.4167,228.922,-49.9078],[10030.2,1697.4,44.85,226.93,-48.9996],[9940.46,1798.96,44.25,224.843,-48.0107],[9849.76,1898,43.65,222.783,-46.993],[9753.02,1999.8,43.0167,220.641,-45.8869]]], + [44,3664.87,[[12093.1,-2000.19,62.3667,285.042,-68.3749],[12054.4,-1903.29,62,283.952,-68.1063],[12013.6,-1802.58,61.6167,282.8,-67.8211],[11972.6,-1702.5,61.2333,281.636,-67.5312],[11931.1,-1603.03,60.85,280.46,-67.2364],[11889.4,-1504.2,60.4667,279.273,-66.9367],[11845.4,-1401.75,60.0667,278.022,-66.6186],[11801.1,-1300.02,59.6667,276.758,-66.2949],[11758.3,-1203.2,59.2833,275.536,-65.9793],[11713.3,-1102.88,58.8833,274.249,-65.6443],[11667.8,-1003.3,58.4833,272.949,-65.3033],[11620.1,-900.361,58.0667,271.583,-64.9415],[11573.9,-802.318,57.6667,270.26,-64.5878],[11525.4,-701.008,57.25,268.87,-64.2125],[11476.5,-600.543,56.8333,267.468,-63.83],[11427.1,-500.936,56.4167,266.054,-63.4402],[11377.4,-402.198,56,264.629,-63.043],[11325.2,-300.446,55.5667,263.135,-62.6216],[11274.5,-203.518,55.15,261.688,-62.2084],[11221.4,-103.674,54.7167,260.172,-61.7702],[11165.8,-1.03937,54.2667,258.587,-61.3056],[11111.8,96.7678,53.8333,257.051,-60.8488],[11055.2,197.257,53.3833,255.445,-60.3644],[10998.1,296.631,52.9333,253.83,-59.8697],[10938.4,398.491,52.4667,252.146,-59.3453],[10878.2,499.119,52,250.454,-58.809],[10817.4,598.496,51.5333,248.754,-58.2606],[10756.1,696.607,51.0667,247.047,-57.6998],[10692,796.868,50.5833,245.273,-57.1053],[10625.1,899.117,50.0833,243.434,-56.4756],[10557.5,999.85,49.5833,241.59,-55.8303],[10489.4,1099.05,49.0833,239.744,-55.169],[10418.3,1199.91,48.5667,237.835,-54.4685],[10346.6,1299.09,48.05,235.927,-53.75],[10271.9,1399.68,47.5167,233.961,-52.9889],[10196.4,1498.42,46.9833,232,-52.2076],[10117.8,1598.28,46.4333,229.986,-51.3801],[10036.1,1699.06,45.8667,227.922,-50.5038],[9953.57,1797.67,45.3,225.872,-49.6027],[9865.3,1899.67,44.7,223.722,-48.6209],[9776.12,1999.17,44.1,221.596,-47.61]]], + [45,3779.27,[[12009.2,-2002.96,63.15,286.005,-68.9874],[11969.7,-1900.9,62.7667,284.866,-68.715],[11931.6,-1803.83,62.4,283.764,-68.4504],[11891.5,-1702.95,62.0167,282.601,-68.1692],[11851.1,-1602.69,61.6333,281.425,-67.8834],[11810.3,-1503.04,61.25,280.237,-67.5928],[11769.2,-1404.03,60.8667,279.037,-67.2973],[11725.9,-1301.4,60.4667,277.772,-66.9836],[11684.1,-1203.71,60.0833,276.548,-66.6778],[11640.2,-1102.48,59.6833,275.258,-66.3531],[11595.8,-1001.97,59.2833,273.955,-66.0227],[11551.1,-902.199,58.8833,272.64,-65.6862],[11506,-803.176,58.4833,271.313,-65.3437],[11458.7,-700.832,58.0667,269.917,-64.9803],[11412.8,-603.366,57.6667,268.565,-64.6248],[11364.7,-502.668,57.25,267.145,-64.2476],[11316.1,-402.826,56.8333,265.712,-63.8631],[11267.2,-303.853,56.4167,264.268,-63.4712],[11215.8,-201.854,55.9833,262.753,-63.0554],[11164,-100.821,55.55,261.226,-62.6312],[11111.7,-0.766507,55.1167,259.687,-62.1983],[11059,98.2954,54.6833,258.137,-61.7564],[11005.9,196.352,54.25,256.577,-61.3054],[10950.2,297.1,53.8,254.946,-60.8271],[10894.1,396.733,53.35,253.304,-60.3383],[10835.3,498.864,52.8833,251.592,-59.8202],[10776,599.761,52.4167,249.869,-59.2902],[10716.2,699.41,51.95,248.139,-58.7481],[10655.9,797.791,51.4833,246.4,-58.1935],[10592.9,898.333,51,244.593,-57.6056],[10529.3,997.478,50.5167,242.779,-57.0036],[10462.9,1098.55,50.0167,240.898,-56.3655],[10395.8,1198.09,49.5167,239.013,-55.7114],[10326,1299.31,49,237.062,-55.0182],[10255.4,1398.84,48.4833,235.112,-54.3069],[10181.9,1499.8,47.95,233.099,-53.5532],[10107.7,1598.9,47.4167,231.09,-52.7791],[10030.5,1699.14,46.8667,229.025,-51.9588],[9952.51,1797.36,46.3167,226.968,-51.1157],[9868.99,1899.3,45.7333,224.8,-50.1957],[9784.64,1998.9,45.15,222.648,-49.2485]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 73.8695; +_maxRange = 11291.5; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg8.sqf b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg8.sqf new file mode 100644 index 0000000000..1adc3558b7 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/105mm/tables/ace_arty_105mm_genericBtab_LA_chg8.sqf @@ -0,0 +1,62 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_105mm_m1_m782_pd_chg8 +// Ammo: ace_arty_105mm_m1_m782_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [0,0.0972759,[[9469.66,-2001.17,22.6167,335.292,-29.0078],[9287.44,-1901.96,22,337.695,-28.1031],[9097.28,-1802.34,21.3667,340.332,-27.173],[8898.86,-1702.51,20.7167,343.225,-26.2181],[8686.61,-1600.24,20.0333,346.478,-25.2148],[8470.51,-1500.73,19.35,349.958,-24.213],[8245.05,-1401.7,18.65,353.769,-23.1892],[8004.26,-1301.15,17.9167,358.041,-22.1206],[7752.99,-1201.73,17.1667,362.721,-21.0329],[7484.96,-1101.63,16.3833,367.962,-19.9039],[7199.21,-1001.4,15.5667,373.829,-18.736],[6894.69,-901.613,14.7167,380.399,-17.532],[6564.02,-801.08,13.8167,387.902,-16.272],[6205.33,-700.774,12.8667,396.472,-14.9607],[5809.96,-600.162,11.85,406.436,-13.581],[5374.78,-500.766,10.7667,418.027,-12.1407],[4874.95,-400.294,9.56667,432.146,-10.5847],[4296,-300.845,8.23333,449.575,-8.90864],[3581.13,-200.919,6.66667,472.692,-7.0162],[2599.42,-100.382,4.65,507.343,-4.71202],[92.042,-0.02233,0.133333,611.714,-0.137354],[10.2587,0.0972759,0,615.521,-0.0152142]]], + [1,5.70975,[[9769.06,-2000.39,23.6333,329.77,-29.7266],[9591.13,-1900.61,23.0167,331.931,-28.8129],[9405.49,-1800.43,22.3833,334.31,-27.8725],[9211.85,-1700.05,21.7333,336.928,-26.9061],[9014.96,-1602.16,21.0833,339.732,-25.9392],[8804.39,-1501.98,20.4,342.89,-24.923],[8584.76,-1402.29,19.7,346.356,-23.8835],[8350.31,-1301.07,18.9667,350.251,-22.797],[8105.76,-1201,18.2167,354.528,-21.6899],[7845.02,-1100.26,17.4333,359.326,-20.5392],[7572.93,-1001.41,16.6333,364.595,-19.3716],[7277.15,-900.918,15.7833,370.623,-18.141],[6962.2,-801.512,14.9,377.384,-16.8749],[6614.47,-700.418,13.95,385.257,-15.5301],[6237.85,-600.63,12.95,394.263,-14.136],[5816.93,-500.351,11.8667,404.915,-12.6534],[5340.85,-400.324,10.6833,417.705,-11.0705],[4789.7,-301.001,9.36667,433.492,-9.35859],[4109.46,-200.756,7.81667,454.427,-7.41607],[3192.1,-100.603,5.85,485.208,-5.07451],[1261.36,-0.0184732,2.13333,559.78,-1.06046],[650.646,5.70743,1.06667,586.233,-0.0136017]]], + [2,22.0154,[[10068.6,-2001.07,24.6833,324.49,-30.5242],[9894.92,-1900.5,24.0667,326.412,-29.6026],[9718.59,-1802.15,23.45,328.48,-28.6782],[9529.78,-1700.91,22.8,330.823,-27.7015],[9337.87,-1602.17,22.15,333.343,-26.7232],[9132.68,-1501.12,21.4667,336.189,-25.694],[8918.76,-1400.55,20.7667,339.323,-24.6398],[8695.71,-1300.72,20.05,342.773,-23.5618],[8463.13,-1201.89,19.3167,346.566,-22.4612],[8209.69,-1100.08,18.5333,350.927,-21.2897],[7945.35,-1000.16,17.7333,355.726,-20.0993],[7663.86,-900.521,16.9,361.116,-18.8673],[7364.21,-801.762,16.0333,367.169,-17.5967],[7033.33,-701.052,15.1,374.229,-16.2428],[6675.1,-601.393,14.1167,382.312,-14.835],[6274.78,-500.913,13.05,391.883,-13.3325],[5822.14,-400.3,11.8833,403.385,-11.7224],[5305.19,-301.114,10.6,417.397,-9.99573],[4673.68,-200.901,9.1,435.778,-8.04283],[3842.6,-100.766,7.23333,462.085,-5.72043],[2377.25,-0.0563873,4.21667,514.387,-2.2453],[1232.81,22.0137,2.08333,560.633,-0.0106146]]], + [3,48.088,[[10363,-2000.92,25.75,319.517,-31.3753],[10198.2,-1902.12,25.15,321.161,-30.4723],[10021.5,-1800.12,24.5167,323.037,-29.5153],[9842.13,-1700.48,23.8833,325.065,-28.555],[9655.08,-1600.72,23.2333,327.309,-27.5667],[9460.07,-1501.06,22.5667,329.79,-26.5512],[9256.79,-1401.72,21.8833,332.531,-25.5092],[9039.79,-1300.65,21.1667,335.628,-24.4162],[8813.61,-1200.57,20.4333,339.046,-23.2989],[8577.83,-1101.75,19.6833,342.813,-22.1586],[8321.22,-1000.34,18.8833,347.149,-20.9464],[8053.63,-901.136,18.0667,351.931,-19.715],[7763.21,-800.703,17.2,357.42,-18.4169],[7454.3,-701.774,16.3,363.597,-17.0805],[7107.91,-600.043,15.3167,370.936,-15.6364],[6733.43,-500.431,14.2833,379.356,-14.1401],[6316.02,-401.365,13.1667,389.334,-12.551],[5825.56,-300.04,11.9,401.846,-10.788],[5254.09,-201.019,10.4833,417.495,-8.87218],[4511.69,-100.294,8.73333,439.533,-6.59603],[3380.31,-0.390862,6.25,476.836,-3.55615],[1771.37,48.0853,3.06667,537.749,-0.0174009]]], + [4,83.1357,[[10652.2,-2000.35,26.8333,314.855,-32.2787],[10491.3,-1900.48,26.2333,316.281,-31.3708],[10323.6,-1800.04,25.6167,317.876,-30.4331],[10153.4,-1701.85,25,319.605,-29.4911],[9971.14,-1600.82,24.35,321.58,-28.4945],[9786,-1502.35,23.7,323.717,-27.4948],[9588.16,-1401.63,23.0167,326.148,-26.4415],[9382,-1301.46,22.3167,328.841,-25.3609],[9167.17,-1202.11,21.6,331.82,-24.2541],[8938.16,-1101.64,20.85,335.191,-23.0967],[8694.26,-1000.59,20.0667,339,-21.89],[8440.05,-901.546,19.2667,343.21,-20.6617],[8164.09,-800.98,18.4167,348.055,-19.3629],[7870.67,-701.648,17.5333,353.519,-18.0222],[7547.25,-600.81,16.5833,359.911,-16.5931],[7197.63,-501.495,15.5833,367.254,-15.1059],[6801.62,-400.505,14.4833,376.109,-13.4938],[6355.19,-300.422,13.2833,386.77,-11.7681],[5833.78,-200.745,11.9333,400.125,-9.87324],[5187.44,-100.883,10.3333,418.018,-7.69952],[4280.12,-0.527314,8.21667,445.622,-4.95816],[2261.45,83.1339,4,517.523,-0.0118991]]], + [5,126.471,[[10940.2,-2002.62,27.95,310.471,-33.2584],[10783.4,-1901.48,27.35,311.685,-32.3473],[10624.3,-1802.45,26.75,313.014,-31.4308],[10453.9,-1700.23,26.1167,314.548,-30.4579],[10280.9,-1600.43,25.4833,316.221,-29.4803],[10100.6,-1500.53,24.8333,318.089,-28.4727],[9912.69,-1400.77,24.1667,320.171,-27.4357],[9716.94,-1301.39,23.4833,322.488,-26.3699],[9508.08,-1200.33,22.7667,325.124,-25.2502],[9290.52,-1100.31,22.0333,328.051,-24.1035],[9063.86,-1001.62,21.2833,331.296,-22.9312],[8817.35,-900.422,20.4833,335.05,-21.6826],[8560.47,-801.515,19.6667,339.211,-20.412],[8281.9,-701.488,18.8,344.007,-19.0698],[7980.32,-601.314,17.8833,349.531,-17.6597],[7648.56,-500.393,16.9,356.002,-16.1607],[7284.43,-400.249,15.85,363.577,-14.5789],[6879.39,-301.175,14.7167,372.577,-12.8976],[6404.79,-200.568,13.4333,383.883,-11.0316],[5833.63,-100.047,11.95,398.569,-8.932],[5091.25,-0.0151736,10.1167,419.399,-6.43331],[3839,99.8138,7.25,458.972,-2.76825],[2715.42,126.469,4.9,499.245,-0.00704179]]], + [6,177.49,[[11218.1,-2002.51,29.0667,306.438,-34.2622],[11065.1,-1900.01,28.4667,307.45,-33.3494],[10914.3,-1802.39,27.8833,308.537,-32.4557],[10752.6,-1701.39,27.2667,309.803,-31.505],[10584.1,-1600.03,26.6333,311.232,-30.5226],[10413.1,-1501.12,26,312.798,-29.535],[10234.9,-1402.16,25.35,314.553,-28.5167],[10044.5,-1300.97,24.6667,316.567,-27.442],[9846.19,-1200.36,23.9667,318.819,-26.3376],[9639.67,-1100.6,23.25,321.329,-25.2045],[9424.59,-1001.96,22.5167,324.122,-24.0436],[9190.51,-900.493,21.7333,327.37,-22.8035],[8946.72,-801.087,20.9333,330.981,-21.5385],[8682.26,-700.208,20.0833,335.16,-20.1983],[8401.31,-600.632,19.2,339.896,-18.8118],[8097.43,-501.341,18.2667,345.361,-17.3564],[7757.84,-400.236,17.25,351.884,-15.7853],[7385.7,-300.757,16.1667,359.533,-14.1313],[6960.44,-200.732,14.9667,368.906,-12.3284],[6458.37,-100.17,13.6,380.831,-10.3187],[5838.24,-0.15384,11.9833,396.829,-8.01052],[4965.11,99.7191,9.83333,421.702,-5.07405],[3143.97,177.487,5.78333,482.364,-0.0185719]]], + [7,235.66,[[11486,-2000.33,30.1833,302.742,-35.2877],[11345.1,-1902.13,29.6167,303.513,-34.4256],[11193.9,-1800.21,29.0167,304.428,-33.5056],[11040.5,-1700.42,28.4167,305.449,-32.5787],[10880.7,-1600.11,27.8,306.614,-31.6194],[10718.6,-1502.11,27.1833,307.9,-30.654],[10545.1,-1401.34,26.5333,309.393,-29.6306],[10364.5,-1300.71,25.8667,311.077,-28.5754],[10176.3,-1200.48,25.1833,312.971,-27.4891],[9980.37,-1100.89,24.4833,315.095,-26.3722],[9776.34,-1002.21,23.7667,317.471,-25.2257],[9554.16,-900.369,23,320.249,-23.9972],[9322.83,-800.351,22.2167,323.352,-22.7414],[9076.87,-700.482,21.4,326.884,-21.4333],[8815.54,-601.389,20.55,330.9,-20.075],[8527.38,-500.16,19.6333,335.64,-18.6163],[8221.57,-401.53,18.6833,341.026,-17.1142],[7874.71,-300.096,17.6333,347.573,-15.4689],[7495.13,-201.136,16.5167,355.265,-13.7404],[7050.5,-100.268,15.25,364.969,-11.8121],[6521.97,-0.0691228,13.8,377.465,-9.6544],[5847.56,99.2306,12.0333,394.903,-7.10919],[4751.79,199.806,9.35,426.759,-3.44749],[3533.06,235.66,6.61667,467.275,-0.00472434]]], + [8,300.503,[[11752.1,-2002.3,31.3333,299.334,-36.3833],[11614.7,-1902.59,30.7667,299.928,-35.523],[11471.3,-1801.9,30.1833,300.627,-34.6295],[11321.9,-1700.44,29.5833,301.445,-33.7028],[11170.5,-1601.13,28.9833,302.365,-32.7686],[11012.6,-1501.33,28.3667,303.424,-31.8014],[10848.1,-1401.27,27.7333,304.635,-30.8011],[10676.8,-1301.15,27.0833,306.014,-29.768],[10498.3,-1201.23,26.4167,307.577,-28.7024],[10312.5,-1101.75,25.7333,309.344,-27.6047],[10114.5,-1000.65,25.0167,311.384,-26.4488],[9908.27,-900.665,24.2833,313.678,-25.2621],[9693.64,-802.096,23.5333,316.25,-24.0458],[9460.39,-701.123,22.7333,319.257,-22.7472],[9212.58,-600.584,21.9,322.695,-21.395],[8949.45,-501.128,21.0333,326.616,-19.9914],[8664.92,-401.692,20.1167,331.169,-18.5125],[8346.95,-300.089,19.1167,336.637,-16.909],[8004.24,-201.275,18.0667,342.977,-15.24],[7612.29,-101.139,16.9,350.787,-13.4083],[7155.08,-0.640908,15.5833,360.644,-11.3759],[6601.42,99.1856,14.05,373.64,-9.06501],[5848.5,199.812,12.0667,393.145,-6.181],[4043.25,299.983,7.75,448.354,-0.396303],[3900.55,300.502,7.43333,453.224,-0.00147559]]], + [9,371.585,[[12007.9,-2002.97,32.4833,296.252,-37.4959],[11873.9,-1901.68,31.9167,296.678,-36.6388],[11738.1,-1802.27,31.35,297.183,-35.7734],[11596.6,-1701.91,30.7667,297.788,-34.8744],[11449,-1600.79,30.1667,298.506,-33.9413],[11299.4,-1501.85,29.5667,299.325,-33.0004],[11143.6,-1402.45,28.95,300.276,-32.0256],[10976.9,-1300.23,28.3,301.404,-30.9904],[10807.7,-1200.65,27.65,302.667,-29.9481],[10631.6,-1101.3,26.9833,304.108,-28.8723],[10443.7,-1000.05,26.2833,305.788,-27.7365],[10252.7,-901.992,25.5833,307.646,-26.5955],[10044.6,-800.517,24.8333,309.843,-25.3683],[9828.08,-700.677,24.0667,312.321,-24.1104],[9597.88,-600.749,23.2667,315.168,-22.7957],[9353.37,-501.347,22.4333,318.432,-21.426],[9088.76,-401.289,21.55,322.241,-19.9762],[8802.89,-301.605,20.6167,326.677,-18.4495],[8483.88,-200.207,19.6,332.018,-16.7959],[8134.85,-100.573,18.5167,338.329,-15.0488],[7736.72,-0.567533,17.3167,346.117,-13.1371],[7267.73,99.7297,15.95,356.084,-10.9972],[6690.1,199.106,14.3333,369.521,-8.52798],[5860.56,299.434,12.1333,391.02,-5.29695],[4247.52,371.584,8.23333,440.102,-0.00726053]]], + [10,448.514,[[12253.6,-2002.63,33.6333,293.483,-38.6229],[12126.7,-1902.72,33.0833,293.741,-37.7957],[11994.4,-1801.61,32.5167,294.079,-36.9346],[11860.4,-1702.39,31.95,294.493,-36.0647],[11720.6,-1602.25,31.3667,295.004,-35.1606],[11575,-1501.37,30.7667,295.621,-34.2218],[11427.3,-1402.69,30.1667,296.337,-33.2745],[11269.3,-1300.92,29.5333,297.204,-32.2661],[11109.1,-1201.66,28.9,298.189,-31.2496],[10942.2,-1102.42,28.25,299.331,-30.1985],[10764,-1000.99,27.5667,300.678,-29.086],[10578.7,-900.233,26.8667,302.223,-27.9393],[10385.8,-800.404,26.15,303.986,-26.7591],[10185.1,-701.792,25.4167,305.987,-25.5462],[9966.87,-600.464,24.6333,308.356,-24.2462],[9739.87,-501.318,23.8333,311.034,-22.9156],[9493.94,-400.851,22.9833,314.18,-21.5008],[9228.05,-300.039,22.0833,317.866,-20.004],[8946.16,-201.644,21.15,322.095,-18.4561],[8626.47,-100.146,20.1167,327.288,-16.7511],[8277.03,-0.86594,19.0167,333.442,-14.9507],[7873.48,99.4552,17.7833,341.161,-12.956],[7393.76,199.973,16.3667,351.18,-10.7042],[6793.62,299.164,14.6667,364.978,-8.07049],[5870.68,399.687,12.2,388.884,-4.40985],[4574.99,448.512,9.01667,427.819,-0.0205649]]], + [11,530.93,[[12489.3,-2001.55,34.7833,291.012,-39.7617],[12365.5,-1900.02,34.2333,291.125,-38.9406],[12240.3,-1800.23,33.6833,291.301,-38.1103],[12113.4,-1702.21,33.1333,291.544,-37.271],[11977.3,-1600.2,32.55,291.878,-36.3714],[11839.3,-1500.22,31.9667,292.295,-35.4625],[11699.6,-1402.3,31.3833,292.797,-34.5446],[11549.8,-1301.06,30.7667,293.427,-33.5651],[11398,-1202.17,30.15,294.162,-32.5767],[11235.8,-1100.51,29.5,295.056,-31.5258],[11071.1,-1001.55,28.85,296.077,-30.4664],[10895.4,-900.436,28.1667,297.296,-29.3444],[10712.6,-800.018,27.4667,298.705,-28.1872],[10522.4,-700.567,26.75,300.323,-26.9955],[10320,-600.177,26,302.217,-25.742],[10109.5,-501.51,25.2333,304.373,-24.4555],[9881.15,-400.871,24.4167,306.929,-23.0813],[9638.8,-301.088,23.5667,309.886,-21.6488],[9376.86,-201.046,22.6667,313.364,-20.1323],[9089.2,-100.132,21.7,317.518,-18.5069],[8779.35,-1.44312,20.6833,322.384,-16.8051],[8424.74,99.3902,19.55,328.442,-14.922],[8021.83,199.122,18.3,335.954,-12.8688],[7538.07,299.319,16.85,345.842,-10.5272],[6911.3,399.795,15.05,360.036,-7.69558],[5891.69,499.736,12.3,386.381,-3.56799],[4876.9,530.928,9.76667,416.51,-0.0174145]]], + [12,618.501,[[12718.7,-2003.15,35.95,288.829,-40.9344],[12601.7,-1903.01,35.4167,288.801,-40.1457],[12479.5,-1801.44,34.8667,288.831,-39.3228],[12355.9,-1701.63,34.3167,288.922,-38.4902],[12227,-1600.65,33.75,289.084,-37.6226],[12096.5,-1501.58,33.1833,289.318,-36.7453],[11960.4,-1401.61,32.6,289.638,-35.8326],[11818.6,-1300.94,32,290.054,-34.8838],[11674.9,-1202.49,31.4,290.562,-33.9256],[11521.2,-1101.01,30.7667,291.204,-32.9043],[11365.3,-1002.06,30.1333,291.959,-31.8736],[11198.8,-900.67,29.4667,292.881,-30.7791],[11029.8,-802.162,28.8,293.94,-29.6759],[10849.7,-701.87,28.1,295.207,-28.5089],[10657.9,-600.3,27.3667,296.712,-27.2782],[10458.5,-500.174,26.6167,298.448,-26.0123],[10251.1,-401.805,25.85,300.438,-24.7121],[10026.1,-301.512,25.0333,302.811,-23.3222],[9782.76,-200.227,24.1667,305.627,-21.8438],[9524.81,-100.749,23.2667,308.894,-20.3077],[9241.62,-0.488767,22.3,312.813,-18.66],[8931.63,99.0008,21.2667,317.497,-16.9052],[8582.66,198.799,20.1333,323.261,-14.9934],[8175.6,299.764,18.85,330.63,-12.8517],[7694.04,399.068,17.3833,340.233,-10.4443],[7054.11,499.813,15.5167,354.448,-7.459],[5929.73,599.815,12.45,383.331,-2.7967],[5161.33,618.499,10.5,405.864,-0.0176072]]], + [13,710.919,[[12934.5,-2001.42,37.1,286.919,-42.089],[12823.9,-1902.78,36.5833,286.77,-41.3334],[12708.4,-1802.56,36.05,286.666,-40.5437],[12587.9,-1700.92,35.5,286.615,-39.7193],[12465.9,-1601.04,34.95,286.624,-38.8849],[12338.7,-1500.01,34.3833,286.698,-38.0149],[12210,-1400.88,33.8167,286.842,-37.1348],[12075.8,-1300.87,33.2333,287.066,-36.2186],[11935.9,-1200.18,32.6333,287.381,-35.2658],[11794.2,-1101.71,32.0333,287.785,-34.3029],[11642.6,-1000.22,31.4,288.314,-33.276],[11489,-901.281,30.7667,288.953,-32.239],[11329,-802.418,30.1167,289.729,-31.1649],[11158.3,-701.453,29.4333,290.68,-30.0259],[10980.8,-601.221,28.7333,291.807,-28.8496],[10796.2,-502.001,28.0167,293.128,-27.6365],[10599.9,-401.898,27.2667,294.701,-26.3587],[10391.2,-301.481,26.4833,296.56,-25.0168],[10169.8,-201.357,25.6667,298.747,-23.6116],[9930.22,-100.281,24.8,301.36,-22.1158],[9676.39,-1.05568,23.9,304.407,-20.5603],[9397.82,98.8947,22.9333,308.079,-18.8903],[9088.02,199.54,21.8833,312.564,-17.0815],[8744.86,298.726,20.75,318.02,-15.1404],[8344.78,398.923,19.4667,325.019,-12.9639],[7860.81,499.288,17.9667,334.391,-10.4595],[7220.66,599.625,16.0667,348.275,-7.36714],[6003.3,699.965,12.7,379.215,-2.17173],[5429.01,710.917,11.2167,395.82,-0.0197137]]], + [14,807.897,[[13144,-2002.97,38.2667,285.279,-43.2718],[13036.1,-1902.66,37.75,285.014,-42.5259],[12923.4,-1800.69,37.2167,284.786,-41.7458],[12809.5,-1700.35,36.6833,284.608,-40.9555],[12694.2,-1601.66,36.15,284.48,-40.1552],[12573.9,-1501.62,35.6,284.405,-39.3196],[12448.5,-1400.43,35.0333,284.391,-38.448],[12321.5,-1301.16,34.4667,284.444,-37.5659],[12189.2,-1201.01,33.8833,284.572,-36.647],[12051.3,-1100.17,33.2833,284.785,-35.6908],[11911.7,-1001.58,32.6833,285.085,-34.724],[11766.2,-902.608,32.0667,285.488,-33.7196],[11610.8,-800.912,31.4167,286.023,-32.6498],[11453.2,-701.947,30.7667,286.674,-31.5693],[11285.1,-600.888,30.0833,287.492,-30.4226],[11110.3,-500.577,29.3833,288.478,-29.2377],[10928.5,-401.292,28.6667,289.651,-28.0147],[10735.1,-301.14,27.9167,291.062,-26.7256],[10529.7,-200.693,27.1333,292.748,-25.3707],[10311.8,-100.561,26.3167,294.748,-23.9507],[10080.7,-1.39651,25.4667,297.106,-22.4671],[9826.42,99.6732,24.55,299.98,-20.8633],[9552.5,199.538,23.5833,303.404,-19.1713],[9252.86,298.521,22.55,307.536,-17.3658],[8910.8,399.046,21.4,312.742,-15.3661],[8517.88,498.969,20.1167,319.358,-13.154],[8037.48,599.943,18.6,328.355,-10.5775],[7409.41,699.395,16.7,341.592,-7.42729],[6160.92,799.831,13.1833,372.702,-1.89853],[5680.55,807.894,11.9167,386.324,-0.0223141]]], + [15,909.161,[[13340.1,-2001.57,39.4167,283.88,-44.4322],[13238.3,-1902.87,38.9167,283.519,-43.7207],[13131.8,-1802.36,38.4,283.185,-42.9756],[13020.7,-1700.19,37.8667,282.885,-42.1959],[12911.8,-1602.76,37.35,282.638,-41.4306],[12794.6,-1500.75,36.8,282.426,-40.6053],[12676,-1400.52,36.25,282.269,-39.769],[12556,-1302.08,35.7,282.17,-38.9221],[12430.9,-1202.56,35.1333,282.131,-38.0386],[12300.5,-1102.16,34.55,282.163,-37.1178],[12164.6,-1001.08,33.95,282.274,-36.1591],[12027,-902.251,33.35,282.468,-35.1891],[11879.8,-800.397,32.7167,282.77,-34.1534],[11730.7,-701.111,32.0833,283.174,-33.1062],[11575.4,-601.918,31.4333,283.701,-32.0201],[11409.9,-500.633,30.75,284.385,-30.8666],[11237.7,-400.102,30.05,285.228,-29.6738],[11058.8,-300.607,29.3333,286.25,-28.4417],[10868.5,-200.251,28.5833,287.5,-27.142],[10670.7,-101.706,27.8167,288.976,-25.8039],[10456.4,-1.29334,27,290.782,-24.37],[10229.1,98.1431,26.15,292.931,-22.8703],[9979.24,199.482,25.2333,295.571,-21.2477],[9710.08,299.604,24.2667,298.738,-19.5339],[9415.76,398.831,23.2333,302.583,-17.7033],[9079.9,499.591,22.0833,307.454,-15.6734],[8694.28,599.732,20.8,313.673,-13.4252],[8228.39,699.896,19.3,322.069,-10.8316],[7613.15,799.784,17.4,334.6,-7.61979],[6422.29,899.793,13.9667,363.367,-2.0985],[5916.55,909.159,12.6,377.328,-0.0240483]]], + [16,1014.46,[[13526.6,-2000.65,40.5667,282.716,-45.5921],[13427.2,-1900.33,40.0667,282.259,-44.8918],[13326.7,-1801.4,39.5667,281.835,-44.1817],[13221.7,-1700.64,39.05,281.433,-43.4377],[13115.5,-1601.4,38.5333,281.072,-42.6835],[13004.7,-1500.57,38,280.742,-41.8942],[12892.7,-1401.39,37.4667,280.46,-41.0942],[12775.7,-1300.87,36.9167,280.221,-40.258],[12657.5,-1202.15,36.3667,280.038,-39.4108],[12534.1,-1102.35,35.8,279.91,-38.5265],[12405.6,-1001.66,35.2167,279.846,-37.6044],[12271.8,-900.286,34.6167,279.857,-36.6438],[12136.2,-801.17,34.0167,279.948,-35.6712],[11995.1,-701.679,33.4,280.131,-34.6595],[11848.2,-602.043,32.7667,280.417,-33.6085],[11695.4,-502.498,32.1167,280.819,-32.5176],[11532.4,-400.854,31.4333,281.367,-31.3583],[11367,-302.329,30.75,282.049,-30.187],[11186.9,-200.116,30.0167,282.938,-28.918],[11003.8,-101.598,29.2833,283.997,-27.6377],[10805.1,-0.50543,28.5,285.328,-26.2592],[10598.7,98.2562,27.7,286.908,-24.8415],[10375.3,198.15,26.85,288.846,-23.3265],[10129.8,299.963,25.9333,291.25,-21.6856],[9870,398.888,24.9833,294.105,-19.9806],[9581.11,498.733,23.95,297.654,-18.1252],[9256.42,598.758,22.8167,302.109,-16.0951],[8878.42,699.777,21.5333,307.91,-13.8102],[8427.15,799.911,20.05,315.689,-11.1993],[7835.94,899.772,18.1833,327.256,-7.97999],[6755.76,999.841,14.9833,352.281,-2.70038],[6137.54,1014.46,13.2667,368.79,-0.0235024]]], + [17,1123.56,[[13703.4,-2000.44,41.7167,281.777,-46.7494],[13609.6,-1901.86,41.2333,281.247,-46.0842],[13511.6,-1801.22,40.7333,280.728,-45.3862],[13412.5,-1701.98,40.2333,280.24,-44.6783],[13309,-1600.9,39.7167,279.771,-43.9363],[13204.4,-1501.34,39.2,279.34,-43.1837],[13095.1,-1400.18,38.6667,278.937,-42.3958],[12984.7,-1300.69,38.1333,278.579,-41.5967],[12873,-1202.87,37.6,278.268,-40.7867],[12752.9,-1100.79,37.0333,277.993,-39.9141],[12631.3,-1000.66,36.4667,277.777,-39.0296],[12508.3,-902.498,35.9,277.624,-38.1332],[12376.5,-800.729,35.3,277.534,-37.1715],[12243,-701.221,34.7,277.522,-36.1972],[12104,-601.334,34.0833,277.595,-35.1831],[11959.4,-501.297,33.45,277.764,-34.1288],[11808.9,-401.35,32.8,278.044,-33.0338],[11652.5,-301.742,32.1333,278.446,-31.8978],[11485.8,-200.359,31.4333,279.003,-30.6918],[11312.6,-100.012,30.7167,279.721,-29.4442],[11132.6,-0.995541,29.9833,280.62,-28.1552],[10941.4,98.5019,29.2167,281.746,-26.7958],[10734.2,199.9,28.4,283.165,-25.3361],[10519,298.414,27.5667,284.86,-23.8366],[10282.3,399.095,26.6667,286.985,-22.2085],[10027.3,498.824,25.7167,289.578,-20.4835],[9743.81,599.526,24.6833,292.83,-18.604],[9430.07,699.062,23.5667,296.879,-16.575],[9069.38,798.784,22.3167,302.112,-14.3137],[8632.76,899.638,20.85,309.263,-11.6858],[8070.67,999.626,19.0333,319.758,-8.48834],[7114.35,1099.84,16.1167,340.841,-3.54603],[6344.01,1123.56,13.9167,360.672,-0.0193185]]], + [18,1236.23,[[13870.6,-2001.14,42.8667,281.05,-47.9017],[13779.1,-1900.95,42.3833,280.439,-47.249],[13686.6,-1802.04,41.9,279.852,-46.5868],[13589.9,-1701.06,41.4,279.273,-45.8917],[13492.3,-1601.47,40.9,278.723,-45.1863],[13390.2,-1500.04,40.3833,278.188,-44.4466],[13287.1,-1400.13,39.8667,277.689,-43.6961],[13182.8,-1301.77,39.35,277.228,-42.9347],[13073.9,-1201.86,38.8167,276.795,-42.1375],[12960.4,-1100.59,38.2667,276.394,-41.3035],[12845.6,-1001.14,37.7167,276.045,-40.4575],[12725.9,-900.582,37.15,275.741,-39.5735],[12604.7,-801.998,36.5833,275.497,-38.6772],[12478.5,-702.598,36,275.313,-37.742],[12347.1,-602.591,35.4,275.197,-36.767],[12210.3,-502.196,34.7833,275.159,-35.7515],[12068,-401.642,34.15,275.212,-34.695],[11919.9,-301.17,33.5,275.368,-33.5969],[11766,-201.029,32.8333,275.641,-32.4568],[11605.9,-101.483,32.15,276.044,-31.2745],[11435.6,-0.497105,31.4333,276.609,-30.0206],[11258.6,99.1661,30.7,277.346,-28.724],[11070.7,199.331,29.9333,278.297,-27.3552],[10871.3,299.395,29.1333,279.497,-25.9142],[10660,398.715,28.3,280.983,-24.4016],[10431.8,498.431,27.4167,282.837,-22.7878],[10181.6,599.175,26.4667,285.168,-21.0437],[9908.07,699.395,25.45,288.07,-19.1716],[9605.18,798.812,24.35,291.715,-17.1452],[9256.7,898.895,23.1167,296.463,-14.8795],[8839.36,999.713,21.6833,302.921,-12.2661],[8310.8,1099.55,19.9333,312.282,-9.12313],[7472.72,1199.61,17.3,329.755,-4.54081],[6536.41,1236.22,14.55,352.939,-0.0101566]]], + [19,1352.24,[[14028.2,-2002.95,44.0167,280.525,-49.0472],[13938.9,-1901.14,43.5333,279.838,-48.4078],[13848.6,-1800.6,43.05,279.173,-47.7586],[13757.5,-1701.32,42.5667,278.531,-47.0997],[13665.4,-1603.32,42.0833,277.914,-46.431],[13565.9,-1500.01,41.5667,277.283,-45.7053],[13468.6,-1401.46,41.0667,276.702,-44.9925],[13367,-1301.12,40.55,276.135,-44.2448],[13264.2,-1202.33,40.0333,275.605,-43.486],[13157,-1101.98,39.5,275.097,-42.6911],[13045.2,-1000.26,38.95,274.618,-41.8591],[12932,-900.355,38.4,274.187,-41.0147],[12817.6,-802.284,37.85,273.808,-40.1581],[12694.8,-700.299,37.2667,273.465,-39.2363],[12570.5,-600.432,36.6833,273.186,-38.3012],[12444.8,-502.708,36.1,272.975,-37.3531],[12310.1,-401.76,35.4833,272.83,-36.3369],[12170,-300.643,34.85,272.768,-35.2789],[12028.1,-202.153,34.2167,272.801,-34.2068],[11876.7,-101.355,33.55,272.942,-33.0637],[11719.3,-1.13927,32.8667,273.207,-31.8773],[11555.7,98.219,32.1667,273.611,-30.6474],[11381.8,198.674,31.4333,274.186,-29.3444],[11197.1,299.662,30.6667,274.961,-27.9675],[11005.4,398.523,29.8833,275.948,-26.5468],[10797.9,498.825,29.05,277.225,-25.0221],[10574,599.575,28.1667,278.849,-23.3936],[10332.8,699.697,27.2333,280.883,-21.6623],[10068.9,799.621,26.2333,283.446,-19.7995],[9776.69,899.128,25.15,286.697,-17.7775],[9440.14,999.813,23.9333,290.973,-15.5091],[9046.33,1099.72,22.55,296.69,-12.9439],[8550.28,1199.8,20.8667,304.969,-9.86021],[7813.9,1299.6,18.4833,319.415,-5.60533],[6720.91,1352.24,15.1833,345.408,-0.0217724]]], + [20,1471.4,[[14173.2,-2002.47,45.15,280.163,-50.1625],[14089.1,-1902.63,44.6833,279.434,-49.5583],[14001,-1800.44,44.2,278.697,-48.9229],[13915.2,-1702.97,43.7333,278.004,-48.3],[13825.3,-1603.26,43.25,277.307,-47.6451],[13731.5,-1501.46,42.75,276.61,-46.9571],[13636.6,-1401.06,42.25,275.94,-46.2584],[13540.7,-1302.06,41.75,275.298,-45.5491],[13440.6,-1201.27,41.2333,274.665,-44.8048],[13339.4,-1102.01,40.7167,274.066,-44.049],[13233.7,-1001.19,40.1833,273.486,-43.257],[13126.9,-902.06,39.65,272.946,-42.4528],[13015.6,-801.615,39.1,272.435,-41.611],[12899.5,-700.046,38.5333,271.959,-40.7304],[12782,-600.451,37.9667,271.538,-39.8365],[12659.7,-500.016,37.3833,271.165,-38.9026],[12535.9,-401.726,36.8,270.856,-37.955],[12403.4,-300.184,36.1833,270.605,-36.9388],[12269.1,-201.102,35.5667,270.435,-35.9081],[12129.5,-101.937,34.9333,270.35,-34.8348],[11980.6,-0.431074,34.2667,270.363,-33.6895],[11829.6,98.0821,33.6,270.487,-32.5291],[11668.9,198.256,32.9,270.744,-31.2952],[11498,299.562,32.1667,271.159,-29.9866],[11320.5,399.266,31.4167,271.748,-28.6327],[11132.2,499.121,30.6333,272.549,-27.2034],[10932.6,598.499,29.8167,273.597,-25.6986],[10717,698.601,28.95,274.961,-24.0878],[10484.7,798.372,28.0333,276.702,-22.3715],[10226.2,899.928,27.0333,278.969,-20.4885],[9944.3,999.718,25.9667,281.837,-18.4729],[9623.99,1099.9,24.7833,285.595,-16.2354],[9253.09,1199.21,23.45,290.603,-13.7225],[8788.48,1299.82,21.8333,297.854,-10.7036],[8138.52,1399.45,19.6667,309.78,-6.73955],[6891.92,1471.4,15.8,338.217,-0.0268527]]], + [21,1593.51,[[14308.8,-2003.39,46.2833,279.978,-51.2685],[14226.7,-1902.01,45.8167,279.187,-50.6779],[14143.8,-1801.77,45.35,278.411,-50.078],[14060,-1702.69,44.8833,277.652,-49.4689],[13972.3,-1601.3,44.4,276.883,-48.8282],[13883.8,-1501.18,43.9167,276.134,-48.1773],[13794.4,-1402.34,43.4333,275.406,-47.5163],[13700.9,-1301.47,42.9333,274.677,-46.8218],[13606.4,-1202,42.4333,273.974,-46.1164],[13507.8,-1100.71,41.9167,273.277,-45.3759],[13408.1,-1000.97,41.4,272.611,-44.6238],[13307.3,-902.792,40.8833,271.98,-43.8599],[13198.9,-800.014,40.3333,271.347,-43.0339],[13092.5,-702.084,39.8,270.775,-42.2204],[12981.7,-602.902,39.25,270.231,-41.3686],[12866.1,-502.66,38.6833,269.722,-40.4773],[12745.7,-401.558,38.1,269.255,-39.5457],[12623.9,-302.603,37.5167,268.85,-38.5998],[12493.5,-200.357,36.9,268.493,-37.5847],[12361.5,-100.573,36.2833,268.214,-36.5544],[12224.2,-0.6881,35.65,268.012,-35.4807],[12081.4,99.0528,35,267.901,-34.363],[11933,198.395,34.3333,267.892,-33.2007],[11775,299.437,33.6333,268.005,-31.9636],[11610.9,399.37,32.9167,268.256,-30.6805],[11440.5,497.893,32.1833,268.665,-29.3514],[11255.6,598.9,31.4,269.279,-27.9149],[11059.7,699.477,30.5833,270.126,-26.4008],[10852.3,798.955,29.7333,271.244,-24.8093],[10628.6,898.403,28.8333,272.706,-23.1098],[10383.8,998.362,27.8667,274.612,-21.2717],[10112.2,1098.75,26.8167,277.101,-19.2649],[9807.71,1198.71,25.6667,280.357,-17.0615],[9454.46,1298.86,24.3667,284.748,-14.5734],[9024.85,1399.02,22.8333,290.963,-11.6572],[8442.14,1499.5,20.8333,300.898,-7.91242],[7049.81,1593.51,16.4,331.335,-0.0240721]]], + [22,1718.37,[[14432.3,-2002.18,47.4,279.927,-52.3429],[14355,-1902.95,46.95,279.112,-51.7868],[14274,-1801.16,46.4833,278.278,-51.2009],[14192.2,-1700.5,46.0167,277.457,-50.6057],[14109.7,-1601,45.55,276.651,-50.0012],[14026.3,-1502.66,45.0833,275.86,-49.3871],[13939.1,-1402.06,44.6,275.059,-48.7411],[13851,-1302.74,44.1167,274.278,-48.0847],[13758.9,-1201.37,43.6167,273.492,-47.3948],[13665.9,-1101.4,43.1167,272.73,-46.6938],[13571.9,-1002.86,42.6167,271.994,-45.9815],[13473.7,-902.555,42.1,271.263,-45.2338],[13371.3,-800.648,41.5667,270.541,-44.4493],[13267.7,-700.425,41.0333,269.856,-43.6521],[13163.1,-601.907,40.5,269.209,-42.8422],[13053.9,-502.12,39.95,268.585,-41.9937],[12940.1,-401.254,39.3833,267.991,-41.1054],[12825.1,-302.388,38.8167,267.449,-40.203],[12705.2,-202.73,38.2333,266.949,-39.2596],[12580.5,-102.492,37.6333,266.5,-38.2739],[12450.7,-1.89758,37.0167,266.112,-37.2452],[12315.7,98.8195,36.3833,265.795,-36.1724],[12175.3,199.415,35.7333,265.561,-35.0546],[12029.4,299.633,35.0667,265.422,-33.8914],[11877.9,399.207,34.3833,265.392,-32.6819],[11720.4,497.857,33.6833,265.487,-31.4259],[11549.3,599.734,32.9333,265.738,-30.0621],[11371.6,699.733,32.1667,266.162,-28.6502],[11183.2,799.546,31.3667,266.797,-27.1592],[10983.8,898.52,30.5333,267.677,-25.5891],[10764.5,999.589,29.6333,268.894,-23.8768],[10528.7,1099.6,28.6833,270.496,-22.054],[10271.2,1198.91,27.6667,272.593,-20.0905],[9982.04,1298.6,26.55,275.38,-17.9248],[9645.77,1399.54,25.2833,279.192,-15.4655],[9244.95,1499.9,23.8167,284.531,-12.628],[8725.73,1599.67,21.9833,292.71,-9.12098],[7813.32,1699.72,18.9333,310.419,-3.46359],[7194.94,1718.36,16.9833,324.74,-0.0121129]]], + [23,1845.8,[[14546.4,-2002.6,48.5167,280.029,-53.4059],[14471,-1901.92,48.0667,279.165,-52.8632],[14394.8,-1802.27,47.6167,278.31,-52.3121],[14315,-1700.04,47.15,277.434,-51.7313],[14237.3,-1602.53,46.7,276.6,-51.1624],[14156,-1502.54,46.2333,275.748,-50.5631],[14070.9,-1400.22,45.75,274.881,-49.9322],[13987.9,-1302.62,45.2833,274.059,-49.3133],[13901.2,-1202.8,44.8,273.226,-48.6619],[13810.5,-1100.9,44.3,272.384,-47.9771],[13718.9,-1000.41,43.8,271.565,-47.2808],[13626.3,-901.342,43.3,270.77,-46.5732],[13529.6,-800.49,42.7833,269.975,-45.83],[13431.9,-701.197,42.2667,269.211,-45.0745],[13330,-600.358,41.7333,268.455,-44.2818],[13227,-501.224,41.2,267.735,-43.476],[13119.5,-400.799,40.65,267.033,-42.6314],[13010.9,-302.234,40.1,266.375,-41.7729],[12897.7,-202.651,39.5333,265.746,-40.8741],[12779.8,-102.254,38.95,265.154,-39.9337],[12657.1,-1.25472,38.35,264.606,-38.9507],[12532.9,97.4151,37.75,264.126,-37.9519],[12400.2,199.006,37.1167,263.695,-36.8808],[12265.8,297.933,36.4833,263.349,-35.7929],[12122.4,399.148,35.8167,263.08,-34.63],[11973.5,499.746,35.1333,262.913,-33.4199],[11818.9,599.446,34.4333,262.862,-32.162],[11658.3,697.957,33.7167,262.943,-30.856],[11483.9,799.292,32.95,263.188,-29.4398],[11303,898.442,32.1667,263.618,-27.974],[11107.4,998.978,31.3333,264.285,-26.3957],[10896.4,1099.89,30.45,265.242,-24.7041],[10673.5,1198.36,29.5333,266.523,-22.9315],[10421.4,1300,28.5167,268.308,-20.9496],[10147,1399.35,27.4333,270.656,-18.825],[9831.44,1499.72,26.2167,273.878,-16.4313],[9462.81,1599.07,24.8333,278.343,-13.7121],[8990.11,1699.91,23.1167,285.157,-10.3622],[8279.28,1799.71,20.65,297.648,-5.64767],[7332.93,1845.8,17.5667,318.281,-0.0190373]]], + [24,1975.62,[[14648.6,-2001.03,49.6167,280.241,-54.4367],[14577.7,-1902.7,49.1833,279.367,-53.9274],[14503.3,-1801.58,48.7333,278.465,-53.3901],[14428.3,-1701.49,48.2833,277.572,-52.8442],[14352.5,-1602.44,47.8333,276.687,-52.2896],[14273.1,-1500.84,47.3667,275.78,-51.7051],[14193,-1400.39,46.9,274.884,-51.111],[14112.1,-1301.11,46.4333,274.001,-50.5071],[14030.4,-1203,45.9667,273.133,-49.8935],[13944.9,-1102.65,45.4833,272.249,-49.2476],[13855.6,-1000.21,44.9833,271.353,-48.5682],[13768.4,-902.514,44.5,270.507,-47.9004],[13677.3,-802.849,44,269.653,-47.1982],[13582.1,-701.376,43.4833,268.796,-46.4604],[13486,-601.46,42.9667,267.967,-45.7101],[13388.8,-503.123,42.45,267.167,-44.9472],[13284.2,-400.196,41.9,266.351,-44.1213],[13181.7,-302.14,41.3667,265.596,-43.3069],[13074.9,-202.849,40.8167,264.858,-42.453],[12963.5,-102.516,40.25,264.144,-41.5584],[12847.6,-1.34443,39.6667,263.462,-40.6219],[12730.2,97.6557,39.0833,262.835,-39.6697],[12604.7,199.921,38.4667,262.238,-38.6462],[12477.7,299.695,37.85,261.712,-37.6056],[12345.6,399.538,37.2167,261.251,-36.5195],[12208.2,499.202,36.5667,260.866,-35.3869],[12065.5,598.428,35.9,260.57,-34.2069],[11913.7,699.308,35.2,260.373,-32.9487],[11756,799.03,34.4833,260.299,-31.641],[11588.6,899.479,33.7333,260.37,-30.2526],[11414.9,997.963,32.9667,260.607,-28.8135],[11226.9,1098.13,32.15,261.053,-27.2604],[11024.1,1199.01,31.2833,261.759,-25.5919],[10805.7,1299.51,30.3667,262.782,-23.8074],[10571.1,1398.5,29.4,264.185,-21.9074],[10306.9,1499.22,28.3333,266.146,-19.7947],[10011.3,1598.98,27.1667,268.817,-17.4718],[9664.75,1699.37,25.8333,272.586,-14.8125],[9240.63,1799.22,24.25,278.126,-11.6661],[8646.24,1899.46,22.1167,287.573,-7.48422],[7458.59,1975.62,18.1333,312.075,-0.0153016]]], + [25,2107.66,[[14741.7,-2001.33,50.7167,280.585,-55.4548],[14672.4,-1901.63,50.2833,279.672,-54.9587],[14602.6,-1802.85,49.85,278.764,-54.4548],[14529.3,-1701.27,49.4,277.827,-53.9232],[14455.3,-1600.72,48.95,276.896,-53.3828],[14380.7,-1501.22,48.5,275.973,-52.8337],[14305.3,-1402.76,48.05,275.059,-52.2757],[14226.4,-1301.79,47.5833,274.12,-51.6874],[14146.7,-1201.98,47.1167,273.193,-51.0894],[14066.3,-1103.34,46.65,272.279,-50.4815],[13982.1,-1002.44,46.1667,271.346,-49.8414],[13897.2,-902.839,45.6833,270.429,-49.1904],[13808.3,-801.178,45.1833,269.499,-48.5056],[13718.6,-700.937,44.6833,268.589,-47.8089],[13628,-602.136,44.1833,267.701,-47.1004],[13533.4,-501.572,43.6667,266.809,-46.3557],[13437.7,-402.582,43.15,265.945,-45.5983],[13338,-302.074,42.6167,265.083,-44.8029],[13234,-200.228,42.0667,264.23,-43.9683],[13128.8,-100.236,41.5167,263.416,-43.1192],[13022.5,-2.12401,40.9667,262.643,-42.2555],[12908.5,99.8547,40.3833,261.872,-41.3236],[12793.1,199.665,39.8,261.154,-40.3754],[12676.4,297.277,39.2167,260.493,-39.4111],[12551.5,398.047,38.6,259.86,-38.3745],[12421.7,498.916,37.9667,259.284,-37.2916],[12286.8,599.637,37.3167,258.778,-36.1614],[12146.6,699.951,36.65,258.353,-34.9829],[12001,799.587,35.9667,258.023,-33.7552],[11849.9,898.263,35.2667,257.802,-32.4778],[11689.3,997.905,34.5333,257.705,-31.119],[11518.9,1097.93,33.7667,257.76,-29.6772],[11334.5,1199.75,32.95,258.006,-28.1191],[11143.4,1298.55,32.1167,258.468,-26.5077],[10933.4,1399.35,31.2167,259.221,-24.7459],[10707.7,1499.01,30.2667,260.319,-22.8655],[10457.3,1599.41,29.2333,261.89,-20.8009],[10176.8,1699.74,28.1,264.091,-18.5201],[9855.54,1799.51,26.8333,267.183,-15.9605],[9468.76,1899.35,25.35,271.71,-12.9641],[8955.7,1999.68,23.45,279.051,-9.1572]]], + [26,2241.75,[[14825.7,-2003.67,51.8167,281.052,-56.459],[14758.1,-1902.6,51.3833,280.105,-55.9765],[14689.9,-1802.44,50.95,279.161,-55.4861],[14621,-1703.21,50.5167,278.221,-54.9879],[14548.8,-1601.16,50.0667,277.25,-54.4621],[14476,-1500.13,49.6167,276.283,-53.9276],[14402.5,-1400.14,49.1667,275.323,-53.3842],[14328.2,-1301.2,48.7167,274.37,-52.8319],[14253.3,-1203.33,48.2667,273.426,-52.2705],[14174.9,-1102.98,47.8,272.455,-51.6787],[14092.8,-1000.27,47.3167,271.462,-51.0551],[14012.8,-902.321,46.85,270.516,-50.4428],[13929.2,-802.141,46.3667,269.55,-49.7979],[13844.7,-703.269,45.8833,268.599,-49.142],[13756.4,-602.382,45.3833,267.635,-48.4517],[13667.2,-502.93,44.8833,266.69,-47.7493],[13574.1,-401.691,44.3667,265.737,-47.0108],[13480,-302.025,43.85,264.809,-46.2593],[13381.8,-200.814,43.3167,263.88,-45.4698],[13282.6,-101.323,42.7833,262.982,-44.6663],[13179.2,-0.545698,42.2333,262.092,-43.823],[13074.6,98.3555,41.6833,261.241,-42.9647],[12965.7,198.266,41.1167,260.407,-42.0648],[12852.3,298.982,40.5333,259.599,-41.1219],[12737.6,397.503,39.95,258.844,-40.1624],[12614.9,499.238,39.3333,258.108,-39.1301],[12490.7,598.455,38.7167,257.44,-38.0795],[12361.6,697.698,38.0833,256.831,-36.9819],[12223.9,799.218,37.4167,256.277,-35.8065],[12084.5,897.674,36.75,255.821,-34.6111],[11936.1,997.709,36.05,255.452,-33.335],[11778.5,1098.78,35.3167,255.195,-31.9761],[11615,1198.15,34.5667,255.077,-30.5641],[11438,1299.62,33.7667,255.124,-29.0348],[11254.4,1398.3,32.95,255.367,-27.4508],[11052.5,1499.39,32.0667,255.865,-25.7141],[10835.4,1599.71,31.1333,256.673,-23.8558],[10598.4,1699.67,30.1333,257.881,-21.8428],[10336.4,1799,29.05,259.615,-19.6423],[10035.4,1899.23,27.8333,262.124,-17.155],[9679.82,1999.39,26.4333,265.796,-14.2854]]], + [27,2377.74,[[14895.5,-2000.27,52.8833,281.559,-57.4128],[14832,-1901.82,52.4667,280.62,-56.9615],[14765.4,-1800.31,52.0333,279.644,-56.4845],[14700.8,-1703.57,51.6167,278.708,-56.0186],[14630.4,-1600.06,51.1667,277.7,-55.5072],[14561.9,-1501.33,50.7333,276.732,-55.0066],[14492.9,-1403.55,50.3,275.768,-54.4978],[14420.5,-1303.02,49.85,274.772,-53.9609],[14347.4,-1203.55,49.4,273.781,-53.4149],[14270.9,-1101.51,48.9333,272.762,-52.8391],[14193.6,-1000.63,48.4667,271.751,-52.2533],[14115.6,-900.915,48,270.749,-51.6575],[14036.9,-802.392,47.5333,269.758,-51.0515],[13954.6,-701.616,47.05,268.744,-50.413],[13871.4,-602.146,46.5667,267.745,-49.7634],[13784.5,-500.637,46.0667,266.727,-49.0795],[13696.7,-400.56,45.5667,265.727,-48.3834],[13608,-301.935,45.0667,264.748,-47.675],[13515.4,-201.566,44.55,263.759,-46.9299],[13421.9,-102.787,44.0333,262.795,-46.1715],[13324.4,-2.51006,43.5,261.828,-45.3746],[13222.7,99.0809,42.95,260.864,-44.5377],[13119.8,198.8,42.4,259.937,-43.6856],[13012.8,299.557,41.8333,259.022,-42.7915],[12904.5,398.275,41.2667,258.151,-41.8813],[12791.7,497.737,40.6833,257.304,-40.9273],[12674.4,597.728,40.0833,256.49,-39.9282],[12552.4,698.017,39.4667,255.717,-38.8827],[12425.6,798.366,38.8333,254.994,-37.7895],[12293.8,898.526,38.1833,254.334,-36.6473],[12156.9,998.234,37.5167,253.747,-35.455],[12011.3,1099.59,36.8167,253.237,-34.1811],[11860.1,1199.77,36.1,252.834,-32.8542],[11703.3,1298.46,35.3667,252.554,-31.4737],[11533.3,1399.55,34.5833,252.414,-29.9749],[11357.1,1498.11,33.7833,252.451,-28.4202],[11163.1,1599.46,32.9167,252.708,-26.7108],[10958.2,1698.64,32.0167,253.23,-24.9109],[10730.2,1799.81,31.0333,254.116,-22.9194],[10482,1899.41,29.9833,255.451,-20.7696],[10200.2,1999.65,28.8167,257.433,-18.3603]]], + [28,2515.45,[[14958.8,-2003.02,53.9667,282.208,-58.3707],[14896.9,-1903.29,53.55,281.244,-57.9321],[14831.9,-1800.44,53.1167,280.241,-57.4686],[14768.8,-1702.39,52.7,279.276,-57.0158],[14702.6,-1601.32,52.2667,278.274,-56.5372],[14635.9,-1501.17,51.8333,277.273,-56.0507],[14568.5,-1401.95,51.4,276.274,-55.5562],[14500.5,-1303.68,50.9667,275.278,-55.0536],[14429.2,-1202.64,50.5167,274.247,-54.5229],[14357.2,-1102.64,50.0667,273.221,-53.9832],[14281.9,-1000.06,49.6,272.163,-53.4139],[14208.6,-902.241,49.15,271.149,-52.8554],[14131.8,-801.942,48.6833,270.106,-52.2663],[14054.3,-702.827,48.2167,269.072,-51.667],[13973.3,-601.435,47.7333,268.012,-51.0353],[13891.4,-501.345,47.25,266.965,-50.3924],[13808.8,-402.574,46.7667,265.931,-49.7381],[13722.4,-301.802,46.2667,264.878,-49.049],[13635.2,-202.477,45.7667,263.843,-48.3475],[13544.1,-101.382,45.25,262.794,-47.6094],[13452.1,-1.87253,44.7333,261.768,-46.8578],[13356.2,99.1622,44.2,260.735,-46.0676],[13259.2,198.463,43.6667,259.732,-45.2628],[13158.1,299.028,43.1167,258.73,-44.4174],[13056,397.701,42.5667,257.764,-43.5563],[12949.5,497.358,42,256.81,-42.6527],[12838.7,597.794,41.4167,255.874,-41.7051],[12723.5,698.79,40.8167,254.965,-40.712],[12606.9,797.412,40.2167,254.113,-39.7003],[12482.3,898.905,39.5833,253.28,-38.6125],[12356.2,997.681,38.95,252.522,-37.5045],[12221.8,1098.68,38.2833,251.808,-36.3166],[12082.3,1199,37.6,251.174,-35.0766],[11937.5,1298.34,36.9,250.632,-33.7835],[11783.7,1398.65,36.1667,250.191,-32.4048],[11620.6,1499.34,35.4,249.876,-30.9384],[11447.8,1599.79,34.6,249.717,-29.3822],[11265.1,1699.33,33.7667,249.75,-27.7351],[11068.2,1799.07,32.8833,250.017,-25.9627],[10852.8,1899.61,31.9333,250.591,-24.0295],[10617.9,1999.32,30.9167,251.555,-21.9345]]], + [29,2654.74,[[15008.3,-2000.03,55.0167,282.878,-59.2795],[14950.2,-1903.11,54.6167,281.931,-58.8705],[14889.2,-1802.94,54.2,280.942,-58.4377],[14827.7,-1703.6,53.7833,279.953,-57.998],[14763.1,-1601.15,53.35,278.923,-57.5332],[14700.5,-1503.5,52.9333,277.932,-57.0789],[14634.7,-1402.85,52.5,276.903,-56.5988],[14568.4,-1303.12,52.0667,275.874,-56.1106],[14498.9,-1200.56,51.6167,274.807,-55.5951],[14431.3,-1102.77,51.1833,273.783,-55.0903],[14360.5,-1002.24,50.7333,272.722,-54.5572],[14289,-902.77,50.2833,271.666,-54.0148],[14214.1,-800.742,49.8167,270.577,-53.4426],[14141.3,-703.461,49.3667,269.532,-52.8812],[14062.3,-600.196,48.8833,268.418,-52.2675],[13985.3,-501.708,48.4167,267.352,-51.6644],[13904.8,-400.978,47.9333,266.258,-51.0285],[13823.4,-301.563,47.45,265.177,-50.3812],[13738.5,-200.122,46.95,264.072,-49.6993],[13652.7,-100.124,46.45,262.983,-49.0048],[13566,-1.58906,45.95,261.913,-48.2975],[13475.5,98.6747,45.4333,260.827,-47.5531],[13384.1,197.336,44.9167,259.764,-46.7949],[13288.8,297.479,44.3833,258.693,-45.9976],[13189.4,398.916,43.8333,257.619,-45.1596],[13089,498.466,43.2833,256.578,-44.3056],[12984.4,599.032,42.7167,255.544,-43.4089],[12878.6,697.542,42.15,254.551,-42.4951],[12765.4,799.575,41.55,253.549,-41.5089],[12650.8,899.241,40.95,252.601,-40.5035],[12531.7,999.174,40.3333,251.687,-39.4504],[12407.9,1099.13,39.7,250.817,-38.348],[12279.3,1198.87,39.05,250.002,-37.195],[12145.7,1298.11,38.3833,249.253,-35.99],[12003.6,1398.95,37.6833,248.569,-34.701],[11856.2,1498.57,36.9667,247.984,-33.3567],[11699.7,1598.83,36.2167,247.506,-31.9242],[11534,1699.13,35.4333,247.163,-30.4012],[11358.6,1798.83,34.6167,246.986,-28.786],[11169.5,1899.1,33.75,247.014,-27.0436],[10966.1,1998.85,32.8333,247.302,-25.172]]], + [30,2795.45,[[15051.3,-2003.5,56.0833,283.676,-60.1912],[14992.3,-1901.32,55.6667,282.671,-59.7776],[14935.2,-1803.97,55.2667,281.702,-59.3742],[14875.1,-1703.35,54.85,280.691,-58.9474],[14814.5,-1603.55,54.4333,279.678,-58.5136],[14751,-1500.63,54,278.622,-58.055],[14689.3,-1402.52,53.5833,277.606,-57.6068],[14624.5,-1301.39,53.15,276.549,-57.1329],[14559.2,-1201.18,52.7167,275.491,-56.651],[14493.3,-1101.91,52.2833,274.435,-56.161],[14426.8,-1003.6,51.85,273.379,-55.6627],[14357.1,-902.515,51.4,272.286,-55.1364],[14286.7,-802.488,50.95,271.195,-54.6009],[14215.7,-703.526,50.5,270.108,-54.056],[14141.4,-602.038,50.0333,268.987,-53.481],[14066.4,-501.726,49.5667,267.871,-52.8957],[13990.6,-402.605,49.1,266.763,-52.2998],[13911.4,-301.216,48.6167,265.625,-51.6714],[13831.4,-201.138,48.1333,264.497,-51.0315],[13750.6,-102.387,47.65,263.381,-50.3798],[13666.2,-1.64616,47.15,262.24,-49.6931],[13581,97.6369,46.65,261.115,-48.9935],[13492,198.678,46.1333,259.971,-48.257],[13402.2,298.122,45.6167,258.848,-47.5063],[13308.4,399.076,45.0833,257.712,-46.7166],[13213.7,498.283,44.55,256.603,-45.9117],[13115,598.737,44,255.49,-45.0654],[13015.3,697.284,43.45,254.41,-44.2028],[12908.3,799.693,42.8667,253.304,-43.2698],[12800.1,899.898,42.2833,252.243,-42.3182],[12690.7,997.872,41.7,251.229,-41.348],[12573.7,1098.99,41.0833,250.214,-40.3021],[12455.4,1197.54,40.4667,249.26,-39.2356],[12329.1,1298.6,39.8167,248.327,-38.0893],[12198,1399.22,39.15,247.453,-36.8901],[12062,1499.12,38.4667,246.65,-35.6369],[11920.7,1598.01,37.7667,245.933,-34.3284],[11770.8,1697.81,37.0333,245.303,-32.9314],[11611.8,1797.93,36.2667,244.787,-31.4435],[11440,1899.77,35.45,244.409,-29.829],[11262,1998.49,34.6167,244.217,-28.1524]]], + [31,2937.45,[[15080.7,-2001.22,57.1167,284.477,-61.056],[15025.4,-1901.99,56.7167,283.495,-60.6706],[14969.7,-1803.47,56.3167,282.51,-60.2791],[14911,-1701.63,55.9,281.48,-59.8649],[14851.9,-1600.58,55.4833,280.447,-59.4439],[14792.3,-1500.34,55.0667,279.411,-59.016],[14732.1,-1400.93,54.65,278.372,-58.581],[14671.3,-1302.35,54.2333,277.332,-58.139],[14607.6,-1200.72,53.8,276.248,-57.6715],[14543.3,-1100.01,53.3667,275.163,-57.1961],[14478.5,-1000.24,52.9333,274.078,-56.7126],[14413,-901.421,52.5,272.993,-56.2208],[14346.9,-803.558,52.0667,271.909,-55.7206],[14277.7,-702.959,51.6167,270.785,-55.1922],[14207.8,-603.422,51.1667,269.664,-54.6544],[14134.7,-501.335,50.7,268.505,-54.0867],[14060.9,-400.419,50.2333,267.352,-53.5086],[13986.3,-300.691,49.7667,266.204,-52.92],[13911.1,-202.164,49.3,265.063,-52.3207],[13832.4,-101.403,48.8167,263.89,-51.6885],[13753,-1.96473,48.3333,262.727,-51.0445],[13670,99.4916,47.8333,261.536,-50.3656],[13586.2,199.495,47.3333,260.36,-49.6738],[13501.5,298.025,46.8333,259.198,-48.9688],[13413.2,398.274,46.3167,258.017,-48.2264],[13323.9,496.909,45.8,256.856,-47.4695],[13230.9,597.012,45.2667,255.681,-46.673],[13133.9,698.395,44.7167,254.497,-45.8352],[13035.8,797.878,44.1667,253.344,-44.9807],[12933.8,898.36,43.6,252.19,-44.0827],[12827.5,999.633,43.0167,251.044,-43.1394],[12720.1,1098.68,42.4333,249.941,-42.1771],[12608.3,1198.21,41.8333,248.858,-41.1672],[12492.2,1297.98,41.2167,247.801,-40.1083],[12371.4,1397.75,40.5833,246.782,-38.9987],[12242.8,1499.78,39.9167,245.785,-37.8066],[12112.6,1598.7,39.25,244.874,-36.5903],[11974,1699.17,38.55,244.015,-35.2874],[11830.4,1798.38,37.8333,243.247,-33.9269],[11678,1898.18,37.0833,242.574,-32.4751],[11516.5,1997.97,36.3,242.022,-30.9294]]], + [32,3080.57,[[15101.5,-2001.48,58.15,285.353,-61.907],[15047.5,-1901.13,57.75,284.358,-61.5332],[14993.1,-1801.48,57.35,283.359,-61.1534],[14938.2,-1702.54,56.95,282.355,-60.7677],[14880.5,-1600.26,56.5333,281.305,-60.3594],[14824.6,-1502.81,56.1333,280.293,-59.961],[14765.9,-1402.1,55.7167,279.235,-59.5394],[14706.6,-1302.21,55.3,278.173,-59.1108],[14646.9,-1203.14,54.8833,277.109,-58.6751],[14584.2,-1101,54.45,276,-58.2143],[14523.4,-1003.66,54.0333,274.931,-57.7638],[14459.5,-903.335,53.6,273.819,-57.2873],[14392.6,-800.152,53.15,272.663,-56.7837],[14327.6,-701.765,52.7167,271.549,-56.2903],[14259.5,-600.619,52.2667,270.394,-55.7688],[14190.8,-500.531,51.8167,269.24,-55.238],[14121.4,-401.515,51.3667,268.088,-54.6977],[14051.3,-303.584,50.9167,266.94,-54.1478],[13978.1,-203.187,50.45,265.753,-53.5671],[13901.4,-100.468,49.9667,264.53,-52.9543],[13826.7,-2.52524,49.5,263.356,-52.3516],[13748.6,97.6193,49.0167,262.148,-51.7157],[13667,199.811,48.5167,260.909,-51.0451],[13587.3,297.22,48.0333,259.723,-50.3845],[13501.4,399.831,47.5167,258.469,-49.6646],[13417.3,497.621,47.0167,257.271,-48.9542],[13329.6,597.088,46.5,256.051,-48.2058],[13238.1,698.056,45.9667,254.813,-47.4179],[13145.7,797.265,45.4333,253.599,-46.6141],[13049.4,897.708,44.8833,252.375,-45.7684],[12949.1,999.186,44.3167,251.145,-44.8791],[12847.8,1098.6,43.75,249.951,-43.9714],[12742.3,1198.75,43.1667,248.763,-43.0178],[12632.5,1299.42,42.5667,247.587,-42.0164],[12521.6,1397.67,41.9667,246.463,-40.9943],[12403,1498.73,41.3333,245.337,-39.8928],[12280,1599.59,40.6833,244.25,-38.7384],[12152.2,1699.96,40.0167,243.214,-37.5294],[12019.6,1799.59,39.3333,242.242,-36.2643],[11882,1898.16,38.6333,241.348,-34.9416],[11732.6,1999.82,37.8833,240.511,-33.4951]]], + [33,3224.68,[[15111.2,-2000.18,59.1667,286.257,-62.7293],[15060.7,-1902.95,58.7833,285.293,-62.3818],[15007.6,-1802.17,58.3833,284.282,-62.0137],[14954,-1702.09,57.9833,283.266,-61.6397],[14899.9,-1602.73,57.5833,282.244,-61.2598],[14845.4,-1504.08,57.1833,281.217,-60.8738],[14788.1,-1402.11,56.7667,280.143,-60.4652],[14730.4,-1300.94,56.35,279.064,-60.0497],[14672.1,-1200.58,55.9333,277.981,-59.6273],[14613.2,-1101.05,55.5167,276.894,-59.1979],[14553.9,-1002.35,55.1,275.804,-58.7612],[14491.7,-900.61,54.6667,274.668,-58.2994],[14431.3,-803.653,54.25,273.573,-57.8477],[14367.9,-703.739,53.8167,272.432,-57.3698],[14301.5,-600.99,53.3667,271.247,-56.8648],[14237,-503.03,52.9333,270.105,-56.3698],[14169.4,-402.336,52.4833,268.919,-55.8466],[14101.1,-302.709,52.0333,267.734,-55.3139],[14029.7,-200.534,51.5667,266.508,-54.7513],[13960.2,-103.123,51.1167,265.328,-54.1987],[13887.4,-3.27731,50.65,264.108,-53.6151],[13811.4,98.8605,50.1667,262.851,-52.9992],[13734.5,199.684,49.6833,261.6,-52.3713],[13657,299.177,49.2,260.357,-51.7313],[13578.7,397.322,48.7167,259.124,-51.079],[13496.9,497.413,48.2167,257.86,-50.3911],[13411.5,599.285,47.7,256.567,-49.666],[13325.3,699.554,47.1833,255.291,-48.9261],[13238.2,798.2,46.6667,254.033,-48.1714],[13147.4,898.303,46.1333,252.756,-47.3766],[13052.8,999.673,45.5833,251.463,-46.5398],[12957.2,1099.13,45.0333,250.199,-45.6856],[12857.6,1199.57,44.4667,248.928,-44.7871],[12757,1297.93,43.9,247.693,-43.8698],[12649.3,1399.76,43.3,246.427,-42.8778],[12540.3,1499.2,42.7,245.21,-41.8645],[12427.1,1598.86,42.0833,244.012,-40.8008],[12309.4,1698.49,41.45,242.844,-39.6848],[12187.3,1797.85,40.8,241.716,-38.5149],[12057.2,1899.09,40.1167,240.613,-37.2582],[11922.3,1999.34,39.4167,239.578,-35.943]]], + [34,3369.65,[[15112.1,-2001.57,60.1833,287.225,-63.5382],[15062.9,-1903.3,59.8,286.253,-63.2015],[15011,-1801.43,59.4,285.232,-62.8446],[14958.7,-1700.24,59,284.205,-62.482],[14908.2,-1603.93,58.6167,283.215,-62.1292],[14855,-1504.13,58.2167,282.177,-61.7552],[14799.1,-1400.93,57.8,281.089,-61.3592],[14745,-1302.6,57.4,280.039,-60.9728],[14688.2,-1200.96,56.9833,278.94,-60.5637],[14630.8,-1100.13,56.5667,277.836,-60.1477],[14572.9,-1000.12,56.15,276.728,-59.7247],[14514.6,-900.946,55.7333,275.615,-59.2945],[14455.7,-802.613,55.3167,274.499,-58.8571],[14393.9,-701.252,54.8833,273.335,-58.3942],[14331.6,-600.827,54.45,272.169,-57.9232],[14268.7,-501.35,54.0167,271,-57.4439],[14205.2,-402.833,53.5833,269.829,-56.9561],[14138.7,-301.557,53.1333,268.613,-56.4404],[14071.6,-201.344,52.6833,267.397,-55.9152],[14003.8,-102.208,52.2333,266.181,-55.3803],[13932.9,-0.552004,51.7667,264.922,-54.8153],[13861.4,99.9151,51.3,263.665,-54.2395],[13789.2,199.178,50.8333,262.413,-53.6528],[13716.2,297.221,50.3667,261.165,-53.0549],[13640,397.462,49.8833,259.879,-52.4237],[13560.4,499.747,49.3833,258.556,-51.7577],[13482.7,597.237,48.9,257.288,-51.1012],[13398.8,699.926,48.3833,255.943,-50.3852],[13316.8,797.783,47.8833,254.655,-49.6783],[13231.3,897.31,47.3667,253.34,-48.933],[13142.1,998.329,46.8333,252.001,-48.1476],[13052,1097.58,46.3,250.683,-47.3459],[12958.1,1198.05,45.75,249.349,-46.5016],[12860.3,1299.55,45.1833,248.003,-45.613],[12761.5,1398.96,44.6167,246.69,-44.7052],[12658.7,1499.11,44.0333,245.376,-43.7505],[12551.8,1599.75,43.4333,244.068,-42.747],[12443.6,1697.96,42.8333,242.808,-41.7215],[12328.2,1798.96,42.2,241.535,-40.6153],[12208.3,1899.73,41.55,240.294,-39.4545],[12083.9,2000,40.8833,239.096,-38.2372]]], + [35,3515.33,[[15102.3,-2001.5,61.1833,288.21,-64.3195],[15054.2,-1902.22,60.8,287.231,-63.9931],[15005.7,-1803.56,60.4167,286.246,-63.6617],[14954.7,-1701.28,60.0167,285.211,-63.3105],[14905.4,-1603.9,59.6333,284.213,-62.9686],[14853.5,-1502.97,59.2333,283.164,-62.6063],[14801.2,-1402.74,58.8333,282.109,-62.2381],[14748.4,-1303.23,58.4333,281.047,-61.864],[14693,-1200.35,58.0167,279.936,-61.4678],[14639.3,-1102.32,57.6167,278.862,-61.0812],[14582.9,-1001.01,57.2,277.739,-60.6717],[14525.9,-900.511,56.7833,276.61,-60.2552],[14468.5,-800.842,56.3667,275.476,-59.8317],[14410.6,-702.012,55.95,274.338,-59.4009],[14349.8,-600.13,55.5167,273.15,-58.945],[14290.9,-503.046,55.1,272.004,-58.4991],[14229,-403.003,54.6667,270.809,-58.0271],[14164.2,-300.125,54.2167,269.565,-57.5281],[14101.2,-202.044,53.7833,268.366,-57.0387],[14035.2,-101.229,53.3333,267.119,-56.5213],[13968.6,-1.48713,52.8833,265.872,-55.9942],[13901.4,97.1687,52.4333,264.625,-55.4574],[13831.1,198.316,51.9667,263.332,-54.8901],[13760.1,298.264,51.5,262.043,-54.3118],[13688.4,396.997,51.0333,260.756,-53.7223],[13613.5,497.959,50.55,259.429,-53.0999],[13537.9,597.583,50.0667,258.107,-52.4651],[13458.9,699.216,49.5667,256.747,-51.7951],[13379.1,799.379,49.0667,255.397,-51.1113],[13298.5,898.052,48.5667,254.058,-50.4137],[13214.5,998.429,48.05,252.688,-49.6778],[13129.6,1097.17,47.5333,251.334,-48.9266],[13041.1,1197.37,47,249.954,-48.1348],[12948.9,1298.82,46.45,248.553,-47.3006],[12855.7,1398.35,45.9,247.178,-46.4482],[12758.7,1498.86,45.3333,245.79,-45.5508],[12660.7,1597.26,44.7667,244.434,-44.6336],[12555.7,1699.14,44.1667,243.038,-43.6409],[12449.7,1798.59,43.5667,241.686,-42.6257],[12339.4,1898.26,42.95,240.347,-41.5587],[12224.8,1997.88,42.3167,239.03,-40.4381]]], + [36,3661.57,[[15083.7,-2004.34,62.1833,289.249,-65.0879],[15036.8,-1904.07,61.8,288.266,-64.7718],[14987.5,-1800.08,61.4,287.232,-64.4368],[14939.8,-1701.04,61.0167,286.234,-64.1106],[14891.7,-1602.63,60.6333,285.229,-63.7795],[14841.1,-1500.61,60.2333,284.172,-63.4285],[14792.1,-1403.49,59.85,283.153,-63.0867],[14740.7,-1302.83,59.45,282.082,-62.7245],[14688.7,-1202.88,59.05,281.005,-62.3563],[14636.4,-1103.66,58.65,279.92,-61.9822],[14581.4,-1001.08,58.2333,278.784,-61.5859],[14528.1,-903.355,57.8333,277.688,-61.1991],[14472.1,-802.356,57.4167,276.539,-60.7894],[14415.6,-702.182,57,275.385,-60.3726],[14358.7,-602.843,56.5833,274.225,-59.9487],[14298.9,-500.427,56.15,273.014,-59.5],[14240.9,-402.825,55.7333,271.845,-59.0609],[14180.1,-302.24,55.3,270.626,-58.5962],[14118.7,-202.607,54.8667,269.402,-58.1232],[14054.4,-100.162,54.4167,268.129,-57.6228],[13992,-2.50779,53.9833,266.9,-57.1321],[13926.5,97.8549,53.5333,265.622,-56.6131],[13860.4,197.136,53.0833,264.343,-56.0843],[13791.3,298.937,52.6167,263.017,-55.5253],[13721.5,399.544,52.15,261.692,-54.9554],[13651.1,498.94,51.6833,260.368,-54.3744],[13580,597.111,51.2167,259.048,-53.782],[13505.6,697.479,50.7333,257.685,-53.1562],[13428,799.886,50.2333,256.28,-52.4956],[13352.3,897.489,49.75,254.93,-51.8439],[13273.1,996.998,49.25,253.542,-51.1559],[13190.6,1098.25,48.7333,252.119,-50.43],[13107.2,1197.87,48.2167,250.709,-49.6887],[13020.3,1298.97,47.6833,249.27,-48.9069],[12932.5,1398.3,47.15,247.85,-48.1081],[12841,1498.84,46.6,246.407,-47.2662],[12748.6,1597.44,46.05,244.989,-46.4057],[12649.5,1699.86,45.4667,243.516,-45.4724],[12552.3,1797.2,44.9,242.118,-44.5452],[12448.2,1897.93,44.3,240.678,-43.5413],[12340,1998.91,43.6833,239.243,-42.4854]]], + [37,3808.25,[[15052.5,-2001.39,63.15,290.252,-65.817],[15006.7,-1900.18,62.7667,289.266,-65.5106],[14962.6,-1803.91,62.4,288.315,-65.2132],[14916,-1703.86,62.0167,287.312,-64.8975],[14867.1,-1600.11,61.6167,286.258,-64.5629],[14819.8,-1501.31,61.2333,285.24,-64.2371],[14772.1,-1403.14,60.85,284.215,-63.9063],[14721.8,-1301.37,60.45,283.137,-63.5556],[14671.2,-1200.3,60.05,282.051,-63.1992],[14622.3,-1104.11,59.6667,281.004,-62.8521],[14568.6,-1000.3,59.25,279.857,-62.4686],[14516.7,-901.384,58.85,278.75,-62.0943],[14464.3,-803.204,58.45,277.636,-61.7138],[14409.2,-701.726,58.0333,276.468,-61.3107],[14353.7,-601.068,57.6167,275.295,-60.9006],[14297.7,-501.242,57.2,274.115,-60.4834],[14241.2,-402.257,56.7833,272.929,-60.0589],[14181.9,-300.217,56.35,271.69,-59.6095],[14124.4,-202.985,55.9333,270.494,-59.1697],[14064,-102.791,55.5,269.246,-58.7041],[14003.2,-3.55801,55.0667,267.994,-58.23],[13939.4,98.4628,54.6167,266.69,-57.7285],[13875,199.421,54.1667,265.383,-57.2174],[13810.1,299.302,53.7167,264.074,-56.6966],[13744.6,398.092,53.2667,262.764,-56.1658],[13676,499.374,52.8,261.404,-55.6046],[13606.8,599.45,52.3333,260.045,-55.0323],[13536.9,698.306,51.8667,258.688,-54.4486],[13463.9,799.388,51.3833,257.284,-53.8319],[13390.1,899.125,50.9,255.885,-53.2025],[13315.7,997.5,50.4167,254.491,-52.5602],[13238,1097.82,49.9167,253.056,-51.882],[13156.9,1199.9,49.4,251.582,-51.166],[13077.7,1297.15,48.9,250.167,-50.4584],[12992.3,1399.19,48.3667,248.67,-49.6872],[12906.1,1499.46,47.8333,247.19,-48.8988],[12819,1597.93,47.3,245.728,-48.093],[12728.3,1697.57,46.75,244.243,-47.2434],[12633.8,1798.17,46.1833,242.738,-46.3482],[12535.6,1899.54,45.6,241.221,-45.4051],[12436.3,1998.63,45.0167,239.738,-44.4399]]], + [38,3955.24,[[15012.6,-2001.46,64.1167,291.3,-66.5347],[14969.9,-1903.73,63.75,290.355,-66.2509],[14924.9,-1802.14,63.3667,289.359,-65.9498],[14879.5,-1701.13,62.9833,288.354,-65.644],[14833.8,-1600.72,62.6,287.341,-65.3335],[14787.6,-1500.91,62.2167,286.319,-65.0182],[14741.1,-1401.72,61.8333,285.289,-64.6979],[14694.2,-1303.15,61.45,284.25,-64.3727],[14644.8,-1200.96,61.05,283.159,-64.0278],[14597.1,-1103.69,60.6667,282.105,-63.6921],[14546.8,-1002.87,60.2667,280.997,-63.336],[14496.2,-902.77,59.8667,279.882,-62.9741],[14445.1,-803.39,59.4667,278.759,-62.6061],[14391.5,-700.648,59.05,277.581,-62.2163],[14339.5,-602.774,58.65,276.443,-61.8356],[14284.9,-501.621,58.2333,275.25,-61.4324],[14229.8,-401.295,57.8167,274.051,-61.022],[14174.3,-301.807,57.4,272.845,-60.6045],[14118.2,-203.168,56.9833,271.633,-60.1795],[14059.5,-101.495,56.55,270.366,-59.7296],[14000.1,-0.765794,56.1167,269.094,-59.2715],[13940.3,99.0083,55.6833,267.817,-58.8048],[13879.9,197.814,55.25,266.535,-58.3295],[13816.7,299.382,54.8,265.201,-57.8266],[13752.9,399.878,54.35,263.863,-57.314],[13688.5,499.288,53.9,262.522,-56.7914],[13623.5,597.597,53.45,261.179,-56.2587],[13555.5,698.369,52.9833,259.786,-55.6955],[13486.9,797.926,52.5167,258.393,-55.1208],[13415.1,899.74,52.0333,256.951,-54.5135],[13345.2,996.773,51.5667,255.561,-53.9151],[13269.6,1099.33,51.0667,254.076,-53.2606],[13195.8,1197.08,50.5833,252.645,-52.6145],[13118.7,1296.72,50.0833,251.171,-51.932],[13038.3,1398.11,49.5667,249.658,-51.2114],[12957.2,1497.86,49.05,248.155,-50.4749],[12872.5,1599.08,48.5167,246.617,-49.6976],[12787,1698.52,47.9833,245.095,-48.9027],[12698,1799.17,47.4333,243.544,-48.0642],[12608,1897.86,46.8833,242.016,-47.2064],[12514.4,1997.47,46.3167,240.467,-46.302]]], + [39,4102.4,[[14962.3,-2000.17,65.0667,292.346,-67.2284],[14920.7,-1901.58,64.7,291.401,-66.9535],[14878.7,-1803.51,64.3333,290.448,-66.6746],[14834.4,-1701.55,63.95,289.442,-66.3787],[14789.8,-1600.18,63.5667,288.427,-66.0782],[14746.7,-1503.76,63.2,287.448,-65.7863],[14701.3,-1403.56,62.8167,286.415,-65.4765],[14655.6,-1303.96,62.4333,285.374,-65.1618],[14607.4,-1200.7,62.0333,284.278,-64.8282],[14560.9,-1102.37,61.65,283.219,-64.5033],[14511.9,-1000.45,61.25,282.106,-64.1589],[14464.6,-903.433,60.8667,281.031,-63.8234],[14414.8,-802.892,60.4667,279.901,-63.4676],[14364.6,-703.069,60.0667,278.762,-63.1059],[14314,-603.975,59.6667,277.616,-62.7381],[14260.8,-501.536,59.25,276.413,-62.3484],[14209.2,-403.959,58.85,275.251,-61.9678],[14155.1,-303.123,58.4333,274.033,-61.5645],[14100.5,-203.12,58.0167,272.808,-61.154],[14043.2,-100.013,57.5833,271.526,-60.7194],[13987.7,-1.74441,57.1667,270.287,-60.2939],[13929.4,99.5342,56.7333,268.992,-59.8433],[13870.6,199.862,56.3,267.691,-59.3843],[13811.3,299.226,55.8667,266.385,-58.9167],[13751.4,397.614,55.4333,265.074,-58.4403],[13688.7,498.739,54.9833,263.708,-57.9361],[13625.4,598.782,54.5333,262.338,-57.4221],[13561.6,697.73,54.0833,260.965,-56.898],[13494.8,799.17,53.6167,259.539,-56.3437],[13427.4,899.4,53.15,258.112,-55.778],[13359.3,998.404,52.6833,256.684,-55.2008],[13288.2,1099.63,52.2,255.206,-54.5905],[13216.4,1199.51,51.7167,253.73,-53.9674],[13143.9,1298.02,51.2333,252.257,-53.3311],[13068.3,1398.47,50.7333,250.738,-52.6586],[12991.9,1497.41,50.2333,249.226,-51.9716],[12912.2,1598.05,49.7167,247.672,-51.2458],[12831.7,1697.04,49.2,246.128,-50.5038],[12747.8,1797.47,48.6667,244.548,-49.7205],[12660.4,1899.14,48.1167,242.935,-48.8937],[12572.1,1998.87,47.5667,241.341,-48.0475]]], + [40,4249.61,[[14903.4,-2002.08,66.0167,293.431,-67.9113],[14862.8,-1902.63,65.65,292.487,-67.6453],[14821.8,-1803.69,65.2833,291.534,-67.3753],[14778.7,-1700.81,64.9,290.529,-67.0889],[14737,-1602.94,64.5333,289.558,-66.8107],[14693.2,-1501.19,64.15,288.533,-66.5154],[14648.9,-1400.03,63.7667,287.499,-66.2155],[14606.2,-1303.83,63.4,286.501,-65.9243],[14561.2,-1203.85,63.0167,285.449,-65.6152],[14513.9,-1100.18,62.6167,284.341,-65.2873],[14468.2,-1001.46,62.2333,283.27,-64.968],[14422,-903.377,61.85,282.191,-64.6437],[14373.5,-801.71,61.45,281.056,-64.2997],[14324.5,-700.749,61.05,279.911,-63.95],[14275.2,-600.503,60.65,278.758,-63.5944],[14225.4,-500.982,60.25,277.596,-63.2327],[14175.2,-402.195,59.85,276.426,-62.8649],[14122.4,-300.085,59.4333,275.198,-62.4752],[14071.4,-202.828,59.0333,274.012,-62.0945],[14017.7,-102.332,58.6167,272.768,-61.691],[13963.6,-2.67688,58.2,271.516,-61.2803],[13909,96.1269,57.7833,270.257,-60.8622],[13851.7,197.967,57.35,268.941,-60.4194],[13793.9,298.862,56.9167,267.617,-59.9682],[13735.7,398.797,56.4833,266.287,-59.5085],[13676.9,497.761,56.05,264.951,-59.0401],[13615.3,599.488,55.6,263.559,-58.5443],[13555.4,696.432,55.1667,262.213,-58.0576],[13490.4,799.701,54.7,260.759,-57.523],[13427.1,898.157,54.25,259.353,-56.9971],[13360.9,999.076,53.7833,257.893,-56.4407],[13294.1,1098.77,53.3167,256.431,-55.8728],[13226.6,1197.24,52.85,254.968,-55.2931],[13156.2,1297.89,52.3667,253.454,-54.6801],[13085,1397.19,51.8833,251.94,-54.0539],[13010.7,1498.45,51.3833,250.378,-53.392],[12935.7,1598.21,50.8833,248.82,-52.7155],[12857.5,1699.71,50.3667,247.216,-52.0005],[12778.5,1799.56,49.85,245.621,-51.2693],[12698.7,1897.75,49.3333,244.037,-50.5213],[12615.6,1997.34,48.8,242.414,-49.7314]]], + [41,4396.74,[[14834.1,-2002.77,66.95,294.508,-68.5717],[14794.5,-1902.49,66.5833,293.566,-68.3142],[14754.6,-1802.71,66.2167,292.615,-68.0529],[14714.3,-1703.44,65.85,291.654,-67.7878],[14671.9,-1600.2,65.4667,290.64,-67.5064],[14630.9,-1501.99,65.1,289.66,-67.2331],[14589.7,-1404.31,64.7333,288.672,-66.9557],[14546.2,-1302.77,64.35,287.628,-66.6613],[14502.3,-1201.82,63.9667,286.575,-66.3622],[14458.1,-1101.47,63.5833,285.512,-66.0584],[14413.5,-1001.74,63.2,284.44,-65.7498],[14368.6,-902.62,62.8167,283.358,-65.4362],[14323.2,-804.131,62.4333,282.266,-65.1176],[14275.5,-702.038,62.0333,281.118,-64.7798],[14227.4,-600.648,61.6333,279.961,-64.4362],[14180.9,-504.149,61.25,278.842,-64.1015],[14130,-400.011,60.8333,277.617,-63.7315],[14080.6,-300.783,60.4333,276.432,-63.3701],[14030.9,-202.297,60.0333,275.237,-63.0025],[13978.6,-100.505,59.6167,273.984,-62.6128],[13928,-3.56039,59.2167,272.773,-62.2322],[13874.8,96.6036,58.8,271.503,-61.8287],[13819,199.875,58.3667,270.173,-61.4013],[13764.9,298.299,57.95,268.887,-60.9826],[13708.1,399.735,57.5167,267.542,-60.5392],[13653.1,496.371,57.1,266.241,-60.1048],[13593.1,599.733,56.65,264.829,-59.6267],[13534.9,698.269,56.2167,263.463,-59.1574],[13473.8,799.542,55.7667,262.039,-58.6604],[13412.2,899.73,55.3167,260.609,-58.1534],[13350.1,998.818,54.8667,259.174,-57.6363],[13287.4,1096.79,54.4167,257.736,-57.1088],[13221.8,1197.2,53.95,256.241,-56.5505],[13153.2,1299.9,53.4667,254.691,-55.9599],[13086.4,1397.78,53,253.192,-55.3775],[13016.5,1497.83,52.5167,251.64,-54.7614],[12943.6,1599.88,52.0167,250.036,-54.1099],[12872.4,1697.11,51.5333,248.487,-53.4662],[12795.7,1799.48,51.0167,246.836,-52.7626],[12720.6,1896.99,50.5167,245.245,-52.0661],[12639.8,1999.3,49.9833,243.555,-51.3058]]], + [42,4543.64,[[14754.5,-2002.25,67.8667,295.574,-69.2108],[14715.8,-1901.16,67.5,294.635,-68.9616],[14676.9,-1800.57,67.1333,293.686,-68.7086],[14637.6,-1700.47,66.7667,292.727,-68.452],[14598.1,-1600.88,66.4,291.759,-68.1915],[14558.2,-1501.81,66.0333,290.781,-67.9271],[14518,-1403.25,65.6667,289.794,-67.6589],[14475.6,-1300.78,65.2833,288.751,-67.374],[14434.7,-1203.31,64.9167,287.744,-67.0974],[14391.6,-1101.98,64.5333,286.681,-66.8038],[14348.1,-1001.26,64.15,285.609,-66.5054],[14304.3,-901.146,63.7667,284.526,-66.2023],[14260.1,-801.647,63.3833,283.433,-65.8943],[14215.6,-702.773,63,282.33,-65.5814],[14168.7,-600.274,62.6,281.17,-65.2495],[14123.4,-502.701,62.2167,280.048,-64.9261],[14075.7,-401.579,61.8167,278.868,-64.583],[14027.6,-301.174,61.4167,277.678,-64.2341],[13979.2,-201.496,61.0167,276.478,-63.8792],[13930.3,-102.554,60.6167,275.268,-63.5182],[13878.9,-0.284022,60.2,273.999,-63.1355],[13829.2,97.123,59.8,272.771,-62.7615],[13777,197.773,59.3833,271.483,-62.3651],[13724.3,297.58,58.9667,270.186,-61.9614],[13671.1,396.533,58.55,268.881,-61.5503],[13615.4,498.525,58.1167,267.515,-61.1148],[13559.2,599.567,57.6833,266.14,-60.6708],[13502.4,699.647,57.25,264.758,-60.2183],[13445.2,798.751,56.8167,263.368,-59.7571],[13387.5,896.867,56.3833,261.972,-59.2869],[13327,997.697,55.9333,260.515,-58.7889],[13266,1097.43,55.4833,259.053,-58.2808],[13202.2,1199.69,55.0167,257.531,-57.743],[13140.1,1297.15,54.5667,256.059,-57.2136],[13075.1,1397.01,54.1,254.529,-56.6531],[13007.1,1499.13,53.6167,252.941,-56.0601],[12938.6,1599.9,53.1333,251.352,-55.454],[12869.4,1699.3,52.65,249.762,-54.8345],[12799.5,1797.32,52.1667,248.173,-54.2012],[12726.6,1897.23,51.6667,246.531,-53.5314],[12650.6,1998.87,51.15,244.839,-52.8232]]], + [43,4690.22,[[14664.6,-2000.54,68.7667,296.627,-69.8296],[14628.6,-1903.29,68.4167,295.734,-69.5993],[14590.7,-1801.89,68.05,294.789,-69.3546],[14552.4,-1700.98,67.6833,293.834,-69.1064],[14513.9,-1600.56,67.3167,292.869,-68.8544],[14475,-1500.65,66.95,291.893,-68.5987],[14435.8,-1401.25,66.5833,290.908,-68.3391],[14396.2,-1302.36,66.2167,289.913,-68.0757],[14356.4,-1204,65.85,288.907,-67.8083],[14314.4,-1101.73,65.4667,287.846,-67.5244],[14272,-1000.05,65.0833,286.774,-67.2361],[14231.2,-903.356,64.7167,285.739,-66.9559],[14188.2,-802.853,64.3333,284.646,-66.6584],[14144.8,-702.963,63.95,283.543,-66.3561],[14101,-603.694,63.5667,282.43,-66.0489],[14054.9,-500.78,63.1667,281.257,-65.7231],[14010.4,-402.805,62.7833,280.124,-65.4056],[13963.6,-301.26,62.3833,278.931,-65.0688],[13916.4,-200.428,61.9833,277.727,-64.7262],[13868.8,-100.319,61.5833,276.513,-64.3776],[13820.8,-0.943139,61.1833,275.289,-64.023],[13772.3,97.6901,60.7833,274.056,-63.6623],[13721.5,199.633,60.3667,272.76,-63.2798],[13672.2,296.719,59.9667,271.508,-62.906],[13620.5,397.028,59.55,270.193,-62.5096],[13568.3,496.486,59.1333,268.869,-62.1059],[13513.5,599.009,58.7,267.483,-61.6781],[13460.5,696.698,58.2833,266.141,-61.2589],[13404.8,797.355,57.85,264.737,-60.8147],[13348.6,897.042,57.4167,263.325,-60.3618],[13289.7,999.521,56.9667,261.85,-59.8821],[13232.6,1097.19,56.5333,260.422,-59.4109],[13172.7,1197.54,56.0833,258.933,-58.9117],[13112.3,1296.79,55.6333,257.437,-58.4022],[13049,1398.54,55.1667,255.881,-57.8628],[12985.2,1499.06,54.7,254.319,-57.3118],[12920.9,1598.35,54.2333,252.753,-56.7489],[12853.6,1699.86,53.75,251.128,-56.1531],[12788,1796.57,53.2833,249.556,-55.5652],[12717.1,1898.77,52.7833,247.872,-54.9212],[12645.6,1999.47,52.2833,246.188,-54.2623]]], + [44,4836.31,[[14566.2,-2002.36,69.6667,297.707,-70.4396],[14531.2,-1904.38,69.3167,296.819,-70.2168],[14494.2,-1802.2,68.95,295.878,-69.9801],[14456.9,-1700.5,68.5833,294.927,-69.7399],[14421.1,-1603.87,68.2333,294.009,-69.5073],[14383.2,-1503.13,67.8667,293.038,-69.2601],[14345,-1402.88,67.5,292.056,-69.0092],[14306.5,-1303.15,67.1333,291.064,-68.7546],[14267.6,-1203.92,66.7667,290.061,-68.4961],[14226.7,-1100.74,66.3833,289.002,-68.2217],[14187.2,-1002.59,66.0167,287.979,-67.9551],[14145.6,-900.554,65.6333,286.898,-67.6721],[14105.5,-803.505,65.2667,285.854,-67.3972],[14063.2,-702.633,64.8833,284.752,-67.1052],[14020.6,-602.37,64.5,283.639,-66.8085],[13977.6,-502.725,64.1167,282.515,-66.5069],[13934.3,-403.705,63.7333,281.381,-66.2005],[13888.7,-301.056,63.3333,280.186,-65.8753],[13844.6,-203.341,62.95,279.031,-65.5585],[13798.2,-102.072,62.55,277.815,-65.2223],[13751.5,-1.52292,62.15,276.588,-64.8803],[13704.3,98.2977,61.75,275.35,-64.5323],[13656.8,197.379,61.35,274.102,-64.1782],[13606.8,299.793,60.9333,272.791,-63.8027],[13558.5,397.336,60.5333,271.522,-63.4357],[13507.7,498.124,60.1167,270.19,-63.0465],[13456.4,598.066,59.7,268.849,-62.65],[13404.7,697.151,59.2833,267.497,-62.2462],[13350.5,799.277,58.85,266.081,-61.8181],[13298,896.576,58.4333,264.711,-61.3986],[13242.8,996.82,58,263.277,-60.9539],[13185.1,1099.88,57.55,261.778,-60.4828],[13128.9,1198.12,57.1167,260.327,-60.02],[13070.1,1299.07,56.6667,258.812,-59.5296],[13010.8,1398.92,56.2167,257.289,-59.029],[12951,1497.65,55.7667,255.76,-58.5179],[12888.4,1598.85,55.3,254.167,-57.9767],[12825.2,1698.81,54.8333,252.57,-57.4237],[12761.5,1797.53,54.3667,250.967,-56.8585],[12694.9,1898.44,53.8833,249.304,-56.2602],[12627.7,1997.97,53.4,247.638,-55.6482]]], + [45,4981.82,[[14457.7,-2003.16,70.55,298.77,-71.0307],[14423.6,-1904.46,70.2,297.887,-70.8152],[14387.5,-1801.53,69.8333,296.951,-70.5863],[14352.8,-1703.71,69.4833,296.048,-70.3645],[14316.2,-1601.7,69.1167,295.091,-70.1289],[14279.3,-1500.17,68.75,294.124,-69.8898],[14243.8,-1403.72,68.4,293.191,-69.6582],[14206.3,-1303.16,68.0333,292.202,-69.412],[14168.4,-1203.1,67.6667,291.203,-69.1622],[14130.3,-1103.56,67.3,290.194,-68.9086],[14090.1,-1000.04,66.9167,289.127,-68.6393],[14051.4,-901.563,66.55,288.096,-68.3777],[14012.3,-803.616,66.1833,287.054,-68.1121],[13971.1,-701.794,65.8,285.954,-67.8301],[13929.6,-600.57,65.4167,284.842,-67.5435],[13889.5,-504.313,65.05,283.769,-67.265],[13847.3,-404.282,64.6667,282.635,-66.9692],[13802.9,-300.565,64.2667,281.441,-66.6554],[13760,-201.815,63.8833,280.285,-66.3495],[13716.7,-103.704,63.5,279.118,-66.0387],[13671.2,-2.01782,63.1,277.889,-65.7088],[13625.3,98.9525,62.7,276.65,-65.3731],[13579,199.198,62.3,275.398,-65.0316],[13532.3,298.708,61.9,274.136,-64.684],[13485.2,397.473,61.5,272.863,-64.3303],[13435.8,499.549,61.0833,271.526,-63.9551],[13387.9,596.762,60.6833,270.232,-63.5884],[13337.6,697.2,60.2667,268.873,-63.1994],[13286.9,796.784,59.85,267.503,-62.803],[13233.7,899.434,59.4167,266.068,-62.3829],[13182.1,997.242,59,264.678,-61.9711],[13127.9,1098.02,58.5667,263.223,-61.5344],[13073.4,1197.82,58.1333,261.758,-61.0891],[13018.3,1296.64,57.7,260.284,-60.6349],[12960.6,1398.19,57.25,258.744,-60.1535],[12902.4,1498.65,56.8,257.195,-59.662],[12843.7,1598.01,56.35,255.639,-59.1602],[12782.3,1699.85,55.8833,254.017,-58.6286],[12722.5,1796.9,55.4333,252.447,-58.1048],[12657.8,1899.84,54.95,250.754,-57.5299],[12594.7,1997.96,54.4833,249.115,-56.9622]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 92.042; +_maxRange = 14003.2; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/120mm/CfgAmmo.hpp new file mode 100644 index 0000000000..75b0f147ad --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/CfgAmmo.hpp @@ -0,0 +1,85 @@ +class ace_arty_howitzer_120mm_base : ace_arty_howitzer_base { + whistleDist = 1500; +}; +// DM11A5 Spreng Aufschlagznder DM111A1 +class ace_arty_120mm_dm11a5_dm111a1_pd: ace_arty_howitzer_120mm_base { + hit = 290; + indirectHit = 50; + indirectHitRange = 20; + typicalSpeed = 800; + timeToLive = 500; + explosive = 0.8; + cost = 200; + model = QPATHTO_M(120mm\ace_arty_dm11_shell); + airFriction = -0.0000758; + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; + muzzleEffect = "BIS_Effects_Cannon"; + caliber = 6; +}; +//DM61 Spreng Annherungsznder PPD324-B3 +class ace_arty_120mm_dm61_ppd_prox: ace_arty_120mm_dm11a5_dm111a1_pd { + CraterEffects = ""; + ExplosionEffects = ""; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_prox.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_120mm_dm11dm61_explosion"; +}; + +class ace_arty_120mm_dm11dm61_explosion : ace_arty_howitzer_120mm_base { + hit = 290; + indirectHit = 50; + indirectHitRange = 20; + explosionTime = 0.0001; + model = QPATHTO_M(120mm\ace_arty_dm11_shell); + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; +}; + +class ace_arty_120mm_dm26_dm93_time: ace_arty_howitzer_120mm_base { + hit = 5; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + model = QPATHTO_M(120mm\ace_arty_dm26_shell.p3d); + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "GrenadeExplosion"; + caliber = 6; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 500; + ACE_ARTY_BASEEJECT_COMPENSATE = 0; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.25; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m772\fuze_time.sqf"; + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\120mm\eject_illum.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; +class ace_arty_120mm_dm35_dm93_time : ace_arty_howitzer_120mm_base { + hit = 0; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = QPATHTO_M(120mm\ace_arty_dm35_shell.p3d); + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "WPExplosion"; + caliber = 6; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m782\fuze_time.sqf"; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 150; + ACE_ARTY_BASEEJECT_COMPENSATE = 1; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.125; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\120mm\eject_smoke_m84.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; + +class ace_arty_120mm_dm26_dm93_flare: FlareBase { + model="\ca\Weapons\granat"; + lightColor[] = {0.8, 0.8, 0.8, 0}; + deflecting=65; +}; diff --git a/TO_MERGE/ace/arty_ammunition/120mm/CfgMagazines.hpp b/TO_MERGE/ace/arty_ammunition/120mm/CfgMagazines.hpp new file mode 100644 index 0000000000..e8ed0d5fca --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/CfgMagazines.hpp @@ -0,0 +1,139 @@ +/* +#define __MV_C0 initSpeed = 102 +#define __MV_C1 initSpeed = 168 +#define __MV_C2 initSpeed = 224 +#define __MV_C3 initSpeed = 274 +#define __MV_C4 initSpeed = 322 +*/ +#define __MV_C0 initSpeed = 102 +#define __MV_C1 initSpeed = 168 +#define __MV_C2 initSpeed = 224 +#define __MV_C3 initSpeed = 274 +#define __MV_C4 initSpeed = 346 + +class ace_arty_120mm_default : ace_arty_howitzer_default { + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\120mm\tables\ace_arty_120mm_genericBtab_%1_chg%2.sqf"; // 1 = angle (LA/HA) 2 = chg# + ACE_ARTY_BTABS_KEY = "ace_arty_120mm_genericBtab_%1_chg%2"; + scope = 2; + ACE_Weight = 14.15; +}; + +// DM11A5 Spreng Aufschlagznder DM111A1 +class ace_arty_120mm_dm11a5: ace_arty_120mm_default { + scope = 1; + type = 0; + displayName = "120mm DM 11A5 HE"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_120mm_dm11a5_dm111a1_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_dm11_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd"}; + ACE_ARTY_FUZE_DESC[] = {"Impact Burst"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_120mm_dm11a5_dm111a1_pd"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "HE"; + ACE_Weight = 14.15; +}; +//IMP DM11A5 Spreng Aufschlagznder DM111A1 +class ace_arty_120mm_dm11a5_dm111a1_pd_chg0: ace_arty_howitzer_mag { + displayName = "120mm DM11A5 IMP 0"; + ammo = "ace_arty_120mm_dm11a5_dm111a1_pd"; + __MV_C0; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_120mm_dm11a5"; + ACE_Weight = 14.15; +}; +class ace_arty_120mm_dm11a5_dm111a1_pd_chg1: ace_arty_120mm_dm11a5_dm111a1_pd_chg0 { __MV_C1; displayName = "120mm DM11A5 IMP +1"; }; +class ace_arty_120mm_dm11a5_dm111a1_pd_chg2: ace_arty_120mm_dm11a5_dm111a1_pd_chg0 { __MV_C2; displayName = "120mm DM11A5 IMP +2"; }; +class ace_arty_120mm_dm11a5_dm111a1_pd_chg3: ace_arty_120mm_dm11a5_dm111a1_pd_chg0 { __MV_C3; displayName = "120mm DM11A5 IMP +3"; }; +class ace_arty_120mm_dm11a5_dm111a1_pd_chg4: ace_arty_120mm_dm11a5_dm111a1_pd_chg0 { __MV_C4; displayName = "120mm DM11A5 IMP +4"; }; + +//DM61 Spreng Annherungsznder PPD324-B3 +class ace_arty_120mm_dm61: ace_arty_120mm_default { + scope = 1; + type = 0; + displayName = "120mm DM61 HE"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_120mm_dm61_ppd_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_dm61_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"prox"}; + ACE_ARTY_FUZE_DESC[] = {"Proximity Burst"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_120mm_dm61_ppd_prox"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "HE"; + ACE_Weight = 14.15; +}; + +//PRX DM61 Spreng Annherungsznder PPD324-B3 +class ace_arty_120mm_dm61_ppd_prox_chg0: ace_arty_howitzer_mag { + displayName = "120mm DM61 PRX 0"; + ammo = "ace_arty_120mm_dm61_ppd_prox"; + __MV_C0; + ACE_Weight = 14.15; +}; +class ace_arty_120mm_dm61_ppd_prox_chg1: ace_arty_120mm_dm61_ppd_prox_chg0 { __MV_C1; displayName = "120mm DM61 PRX +1"; }; +class ace_arty_120mm_dm61_ppd_prox_chg2: ace_arty_120mm_dm61_ppd_prox_chg0 { __MV_C2; displayName = "120mm DM61 PRX +2"; }; +class ace_arty_120mm_dm61_ppd_prox_chg3: ace_arty_120mm_dm61_ppd_prox_chg0 { __MV_C3; displayName = "120mm DM61 PRX +3"; }; +class ace_arty_120mm_dm61_ppd_prox_chg4: ace_arty_120mm_dm61_ppd_prox_chg0 { __MV_C4; displayName = "120mm DM61 PRX +4"; }; + +//DM26 Leucht PT Doppelznder DM93 (DM93 == M776) +class ace_arty_120mm_dm26: ace_arty_120mm_default { + scope = 1; + type = 0; + displayName = "120mm DM26 Illumination"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_120mm_dm26_dm93_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_dm26_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_120mm_dm26_dm93_time"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "ILLUM"; + ACE_Weight = 14.15; +}; + +class ace_arty_120mm_dm26_dm93_time_chg0: ace_arty_howitzer_mag { + displayName = "120mm DM26 DM93 TIME 0"; + ammo = "ace_arty_120mm_dm26_dm93_time"; + __MV_C0; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_120mm_m853a1"; + ACE_Weight = 14.15; +}; +class ace_arty_120mm_dm26_dm93_time_chg1: ace_arty_120mm_dm26_dm93_time_chg0 { __MV_C1; displayName = "120mm DM26 TIME +1"; }; +class ace_arty_120mm_dm26_dm93_time_chg2: ace_arty_120mm_dm26_dm93_time_chg0 { __MV_C2; displayName = "120mm DM26 TIME +2"; }; +class ace_arty_120mm_dm26_dm93_time_chg3: ace_arty_120mm_dm26_dm93_time_chg0 { __MV_C3; displayName = "120mm DM26 TIME +3"; }; +class ace_arty_120mm_dm26_dm93_time_chg4: ace_arty_120mm_dm26_dm93_time_chg0 { __MV_C4; displayName = "120mm DM26 TIME +4"; }; + +// DM35 Nebel HC Doppelznder DM93 +class ace_arty_120mm_dm35: ace_arty_120mm_default { + scope = 1; + type = 0; + displayName = "120mm DM35 HC"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_120mm_dm35_dm93_%1_chg%2"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_dm35_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_120mm_dm35_dm93_time"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "SMOKE"; + ACE_Weight = 14.15; +}; + +class ace_arty_120mm_dm35_dm93_time_chg0: ace_arty_howitzer_mag { + displayName = "120mm DM35 DM93 TIME 0"; + ammo = "ace_arty_120mm_dm35_dm93_time"; + __MV_C0; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_120mm_dm35"; + ACE_Weight = 14.15; +}; +class ace_arty_120mm_dm35_dm93_time_chg1: ace_arty_120mm_dm35_dm93_time_chg0 { __MV_C1; displayName = "120mm DM35 TIME +1"; }; +class ace_arty_120mm_dm35_dm93_time_chg2: ace_arty_120mm_dm35_dm93_time_chg0 { __MV_C2; displayName = "120mm DM35 TIME +2"; }; +class ace_arty_120mm_dm35_dm93_time_chg3: ace_arty_120mm_dm35_dm93_time_chg0 { __MV_C3; displayName = "120mm DM35 TIME +3"; }; +class ace_arty_120mm_dm35_dm93_time_chg4: ace_arty_120mm_dm35_dm93_time_chg0 { __MV_C4; displayName = "120mm DM35 TIME +4"; }; diff --git a/TO_MERGE/ace/arty_ammunition/120mm/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/120mm/CfgVehicles.hpp new file mode 100644 index 0000000000..0ecab8e6d0 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/CfgVehicles.hpp @@ -0,0 +1,110 @@ +/* +DM11 Spreng Aufschlagznder DM111 +DM11A1 Spreng Aufschlagznder DM111A1 +DM11A2 Spreng Aufschlagznder DM111A1 +DM11A3 Spreng Aufschlagznder DM111A1 +DM11A4 Spreng Aufschlagznder DM111A1 oder DM111A2 +*DM11A5 Spreng Aufschlagznder DM111A1 oder DM111A2 +DM51 Spreng Annherungsznder NVT224A1 +DM51A1 Spreng Annherungsznder NVT224A1 +DM61 Spreng Annherungsznder PPD324-B3 +DM81 Spreng Aufschlagznder DM111A5 +DM25A1 Nebel Aufschlagznder DM111A1 oder DM111A2 +DM25A2 Nebel Aufschlagznder DM111A3 +DM35 Nebel HC Doppelznder DM93 +DM16 Leucht PT Doppelznder DM93 +DM26 Leucht PT Doppelznder DM93 +DM18 bung Doppelznder DM111 +DM18A1 bung Doppelznder DM111A1 +DM18A2 bung Doppelznder DM111A1 +DM18A3 bung Doppelznder DM111A1 +DM18A4 bung Doppelznder DM111A1 oder DM111A2 +DM28 bung Doppelznder DM111A1 oder DM111A3 +DM18 bung Doppelznder DM93 + + +M929 120mm Smoke WP +0: 101 m/s (102) +1: 165 m/s (168) +2: 220 m/s (224) +3: 270 m/s (274) +4: 318 m/s (322) + +multioption type (PRX/NSB/IMP/DLY) +PRX PROXIMITY BURST +NSB NEAR SURFACE BURST +IMP IMPACT BURST +DLY DELAY BURST (1/2 sec) + +*/ +// DM11A5 Spreng Aufschlagznder DM111A1 +class ace_arty_dm11_cartridge: ACE_Arty_ShellHolder { // HE + scope = 1; + icon = QPATHTO_C(120mm\data\icon_120mm_ca.paa); + mapSize = 0; // iconsize on map... small object such as a tree is 0.7 + displayName = "DM 11A5 HE Cartridge"; + vehicleClass = "Objects"; + nameSound = "obj_object"; + picture = "pictureThing"; + class Library {libTextDesc = "";}; + descriptionShort = ""; + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + type = 1; + model = QPATHTO_M(120mm\ace_arty_dm11_cartridge.p3d); + animated = 1; + reversed = 0; + class EventHandlers { + killed = "_this call ace_sys_arty_ammunition_fnc_onShellDestroyed"; + }; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_120mm_dm11a5"; + ACE_Weight = 4.5; + class AnimationSources { + class hide_inc1 { + source = "user"; + initPhase = 1; + animPeriod = 0.1; + }; + class hide_inc2: hide_inc1 {}; + class hide_inc3: hide_inc1 {}; + class hide_inc4: hide_inc1 {}; + class hide_inc5: hide_inc1 {}; + class hide_inc6: hide_inc1 {}; + class hide_inc7: hide_inc1 {}; + class hide_inc8: hide_inc1 {}; + class hide_inc9: hide_inc1 {}; + class hide_inc10: hide_inc1 {}; + }; +}; + +//DM61 Spreng Annherungsznder PPD324-B3 +class ace_arty_dm61_cartridge : ace_arty_dm11_cartridge { // ILLUM + displayName = "DM 61 HE Cartridge"; + model = QPATHTO_M(120mm\ace_arty_dm61_cartridge.p3d); + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_120mm_dm61"; + ACE_Weight = 4.1; +}; + +//DM26 Leucht PT Doppelznder DM93 +class ace_arty_dm26_cartridge : ace_arty_dm11_cartridge { // ILLUM + displayName = "DM 26 Illum Cartridge"; + model = QPATHTO_M(120mm\ace_arty_dm26_cartridge.p3d); + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_120mm_dm26"; + ACE_Weight = 4.1; +}; + +// DM35 Nebel HC Doppelznder DM93 +class ace_arty_dm35_cartridge : ace_arty_dm11_cartridge { // SMOKE (WP) + displayName = "DM 35 Smoke Cartridge"; + model = QPATHTO_M(120mm\ace_arty_dm35_cartridge.p3d); + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_120mm_dm35"; + ACE_Weight = 4.24; +}; + +class ace_arty_120mm_dm26_dm93_parachute : ACE_HuntIR { + class EventHandlers { + EXTENDED_EVENTHANDLERS + }; + SLX_XEH_DISABLED = 0; +}; diff --git a/TO_MERGE/ace/arty_ammunition/120mm/XEH_illum_init.sqf b/TO_MERGE/ace/arty_ammunition/120mm/XEH_illum_init.sqf new file mode 100644 index 0000000000..cea0e827cb --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/XEH_illum_init.sqf @@ -0,0 +1,71 @@ +//XEH_illum_init.sqf +#define MAX_ILL 2.1 + +private["_flareChute", "_pos", "_light", "_sm", "_sp"]; + +_flareChute = _this select 0; +_pos = getPos (_flareChute); + +_light = "#lightpoint" createVehicleLocal _pos; +_light setPos _pos; +_light setLightBrightness MAX_ILL; +_light setLightAmbient[238/255, 233/255, 183/255]; +_light setLightColor[241/255, 226/255, 62/255]; +_light lightAttachObject [_flareChute, [0,0,-0.8]]; + +_sm = "#particlesource" createVehicleLocal getPos (_flareChute); +_sm setParticleRandom [0.5, [0, 0, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0, 360]; +_sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 30, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.3,4], + [[0.9,0.9,0.9,0.6], [1,1,1,0.3], [1,1,1,0]],[1],0.1,0.1,"","",_light]; +_sm setDropInterval 0.02; + +_sp = "#particlesource" createVehicleLocal getPos (_flareChute); +_sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +_sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +_sp setDropInterval 0.001; + +// _sp2 = "#particlesource" createVehicleLocal getPos (_flareChute); +// _sp2 setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +// _sp2 setParticleParams ["\ca\Data\Flare12", + // "", "Billboard", 1, 0.1, [0, 0, 0], + // [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + // [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +// _sp2 setDropInterval 0.001; + + +//_flareChute setVectorDir _chuteVel; + +[_flareChute, _light, _sp, _sm] spawn { + private["_shell", "_light", "_sp", "_sm", "_start", "_b", "_s"]; + _shell = _this select 0; + _light = _this select 1; + _sp = _this select 2; + _sm = _this select 3; + + + _start = time; + _b = MAX_ILL; + _s = 0; + waitUntil { + if((_start + 50) < time) then { + _b = (_b - random (0.1)) max 0; + _light setLightBrightness _b; + }; + if((_start + 60) < time) then { + deleteVehicle _light; + deleteVehicle _sp; +// deleteVehicle _sp2; + deleteVehicle _sm; + }; + sleep 0.1; + (!alive _shell && (_start + 60) < time); + }; + deleteVehicle _light; + deleteVehicle _sp; + deleteVehicle _sm; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm11_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm11_cartridge.p3d new file mode 100644 index 0000000000..ae125b36c1 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm11_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm11_shell.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm11_shell.p3d new file mode 100644 index 0000000000..e23bc6c9ee Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm11_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm26_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm26_cartridge.p3d new file mode 100644 index 0000000000..9bf1396f23 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm26_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm26_shell.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm26_shell.p3d new file mode 100644 index 0000000000..abc87c3df1 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm26_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm35_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm35_cartridge.p3d new file mode 100644 index 0000000000..6f3d0e76e2 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm35_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm35_shell.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm35_shell.p3d new file mode 100644 index 0000000000..9b000e98b1 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm35_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm61_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm61_cartridge.p3d new file mode 100644 index 0000000000..9c8109a666 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm61_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm61_shell.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm61_shell.p3d new file mode 100644 index 0000000000..15c292131e Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_arty_dm61_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm11.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm11.p3d new file mode 100644 index 0000000000..6401134986 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm11.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm26.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm26.p3d new file mode 100644 index 0000000000..3ca536adf3 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm26.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm35.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm35.p3d new file mode 100644 index 0000000000..65e5217e2f Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm35.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm61.p3d b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm61.p3d new file mode 100644 index 0000000000..23a54cd1db Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/ace_box_dm61.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1.rvmat b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1.rvmat new file mode 100644 index 0000000000..00e9288553 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1.rvmat @@ -0,0 +1,91 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +//specular[]={1,1,1,1.000000}; +specular[] = {0.273158,0.3,0.27,1}; +//specularPower=40.000000; +specularPower = 100; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_120mm_1_2_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={20.0000,0.000000,0.000000}; + up[]={0.000000,20.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_120mm_1_2_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_co.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_co.paa new file mode 100644 index 0000000000..456c9836e9 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_nohq.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_nohq.paa new file mode 100644 index 0000000000..b66443b888 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_smdi.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_smdi.paa new file mode 100644 index 0000000000..56e62da192 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_1_2_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2.rvmat b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2.rvmat new file mode 100644 index 0000000000..e12e04ab3f --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2.rvmat @@ -0,0 +1,91 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +//specular[]={1,1,1,1.000000}; +specular[] = {0.273158,0.3,0.27,1}; +//specularPower=40.000000; +specularPower = 100; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_120mm_2_2_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={20.0000,0.000000,0.000000}; + up[]={0.000000,20.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_120mm_2_2_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_co.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_co.paa new file mode 100644 index 0000000000..799adddb33 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_nohq.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_nohq.paa new file mode 100644 index 0000000000..95cb3a56de Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_smdi.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_smdi.paa new file mode 100644 index 0000000000..5b91baf7cc Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_120mm_2_2_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box.rvmat b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box.rvmat new file mode 100644 index 0000000000..aef2f59143 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box.rvmat @@ -0,0 +1,98 @@ +class StageTI +{ + texture="ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {1.0,1.0,1.0,1.0}; +specularPower = 3.0; +PixelShaderID = "Super"; +VertexShaderID = "Super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm11_box_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="CA\Data\detail_maps\wood_512_dt.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={6,0,0}; + up[]={0,6,0}; + dir[]={0,-1,-1}; + pos[]={0,0,0}; + }; +}; + +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm11_box_smdi.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(1.23,0.01)"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; + diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_co.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_co.paa new file mode 100644 index 0000000000..73cfe3f3b5 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_nohq.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_nohq.paa new file mode 100644 index 0000000000..ee69f14f12 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_smdi.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_smdi.paa new file mode 100644 index 0000000000..747cb48cc4 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm11_box_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box.rvmat b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box.rvmat new file mode 100644 index 0000000000..9727bc908e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box.rvmat @@ -0,0 +1,98 @@ +class StageTI +{ + texture="ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {1.0,1.0,1.0,1.0}; +specularPower = 3.0; +PixelShaderID = "Super"; +VertexShaderID = "Super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm26_box_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="CA\Data\detail_maps\wood_512_dt.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={6,0,0}; + up[]={0,6,0}; + dir[]={0,-1,-1}; + pos[]={0,0,0}; + }; +}; + +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm26_box_smdi.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(1.23,0.01)"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; + diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_co.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_co.paa new file mode 100644 index 0000000000..e901c43906 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_nohq.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_nohq.paa new file mode 100644 index 0000000000..35c3ec8624 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_smdi.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_smdi.paa new file mode 100644 index 0000000000..dec3c9f877 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm26_box_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box.rvmat b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box.rvmat new file mode 100644 index 0000000000..bfd570c6ef --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box.rvmat @@ -0,0 +1,98 @@ +class StageTI +{ + texture="ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {1.0,1.0,1.0,1.0}; +specularPower = 3.0; +PixelShaderID = "Super"; +VertexShaderID = "Super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm35_box_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="CA\Data\detail_maps\wood_512_dt.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={6,0,0}; + up[]={0,6,0}; + dir[]={0,-1,-1}; + pos[]={0,0,0}; + }; +}; + +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm35_box_smdi.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(1.23,0.01)"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; + diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_co.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_co.paa new file mode 100644 index 0000000000..36ce813e11 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_nohq.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_nohq.paa new file mode 100644 index 0000000000..856478a650 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_smdi.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_smdi.paa new file mode 100644 index 0000000000..2c6268d465 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm35_box_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box.rvmat b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box.rvmat new file mode 100644 index 0000000000..ec7973794b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box.rvmat @@ -0,0 +1,98 @@ +class StageTI +{ + texture="ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,0.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {1.0,1.0,1.0,1.0}; +specularPower = 3.0; +PixelShaderID = "Super"; +VertexShaderID = "Super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm61_box_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="CA\Data\detail_maps\wood_512_dt.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={6,0,0}; + up[]={0,6,0}; + dir[]={0,-1,-1}; + pos[]={0,0,0}; + }; +}; + +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\120mm\data\ace_dm61_box_smdi.paa"; + uvSource="tex1"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(1.23,0.01)"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; +class Stage7 +{ + texture = "ca\data\env_land_co.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0.0,0.0,0.0}; + }; +}; + diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_co.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_co.paa new file mode 100644 index 0000000000..9ed0677e7d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_nohq.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_nohq.paa new file mode 100644 index 0000000000..acf331189b Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_smdi.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_smdi.paa new file mode 100644 index 0000000000..c22471653a Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_dm61_box_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/ace_explo_ca.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_explo_ca.paa new file mode 100644 index 0000000000..6cc34e10b4 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/ace_explo_ca.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm11_ca.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm11_ca.paa new file mode 100644 index 0000000000..71654ae36d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm11_ca.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm26_ca.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm26_ca.paa new file mode 100644 index 0000000000..b644ac30d1 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm26_ca.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm35_ca.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm35_ca.paa new file mode 100644 index 0000000000..61c2812317 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm35_ca.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm61_ca.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm61_ca.paa new file mode 100644 index 0000000000..49483a8ec2 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/icomap_dm61_ca.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/data/icon_120mm_ca.paa b/TO_MERGE/ace/arty_ammunition/120mm/data/icon_120mm_ca.paa new file mode 100644 index 0000000000..61f7f6022d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/120mm/data/icon_120mm_ca.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/120mm/eject_illum.sqf b/TO_MERGE/ace/arty_ammunition/120mm/eject_illum.sqf new file mode 100644 index 0000000000..f0e90c87d1 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/eject_illum.sqf @@ -0,0 +1,15 @@ +//eject_illum.sqf +private["_shell", "_velocity", "_pos", "_flareChute", "_chuteVel"]; + +_shell = _this select 6; + +_velocity = velocity _shell; + +_pos = getPos _shell; + +_flareChute = "ace_arty_120mm_dm26_dm93_parachute" createVehicle _pos; +_flareChute setPos _pos; +_chuteVel = [_velocity,0.25] call ACE_fnc_vectorMultiply; +_flareChute setVelocity _chuteVel; + +false diff --git a/TO_MERGE/ace/arty_ammunition/120mm/eject_smoke_m84.sqf b/TO_MERGE/ace/arty_ammunition/120mm/eject_smoke_m84.sqf new file mode 100644 index 0000000000..aba44fca05 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/eject_smoke_m84.sqf @@ -0,0 +1,78 @@ +//eject_dpicm.sqf +#define PRNG(number) (random (number)) +#define SMOKE_SPREAD 40 + +private["_roundSettings", "_roundData", "_seed", "_seedSeq", "_velocity", "_gVel", "_rv", "_pos"]; +private["_p", "_vP", "_vH", "_vA", "_sMin", "_sMax", "_az", "_el", "_g", "_grenades", "_v"]; + +_shell = _this select 6; + +_roundSettings = []; +_roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; // ERRRRROORR: _fireEHParams is not defined !!!!!! +{ + if((_x select 0) == _shell) exitWith { + _roundSettings = _x; + }; +} forEach _roundData; + +_seed = 101; +if((count _roundSettings) > 0) then { + _seed = _roundSettings select 3; +}; + +_seedSeq = _seed call ace_sys_arty_fnc_randomSequence; + +_velocity = velocity _shell; +_pos = getPos _shell; +_p = [0,0,0]; +if (!((_velocity select 0) == 0 && {(_velocity select 1) == 0} && {(_velocity select 2) == 0})) then { // velocity not 0 + _gVel = [_velocity,0.125] call ACE_fnc_vectorMultiply; + _p = (_gVel call CBA_fnc_vect2Polar); +}; +//setAccTime 0.25; +_vP = (abs(_p select 2)/90); +_vH = ((abs(_p select 2)/45) min 1); +_vA = 360*_vH*_vP; +_vA = (SMOKE_SPREAD + _vA) mod 360; + +_sMin = ((_vA)/2)*-1; +_sMax = (_vA); +////player sideChat format["p: %4 va: %1 vP: %2 vH: %3", _sMax, _vP, _vH, (_p select 2)]; +_grenades = []; +for "_i" from 1 to 3 do { + _az = (_p select 1); + + _az = _az + (_sMin + (PRNG(_sMax))); + + if(_az < 0) then { + _az = _az + 360; + } else { + if(_az >= 360) then { + _az = _az - 360; + }; + }; + + _el = (_p select 2); + + _el = _el + (-20*1.5 + (PRNG(40))); + + if(_el > 90) then { + _el = abs(_el - 180); + _az = (_az + 180) mod 360; + }; + + if(_el < -90) then { + _el = (_el + 180)*-1; + _az = (_az + 180) mod 360; + }; + + _v = [(_p select 0) + (-5 + (PRNG(10))), _az, _el] call CBA_fnc_polar2vect; + + _g = "ace_arty_105mm_m84a1_m782_smokeCanisterHC" createVehicle [((_pos select 0) + PRNG(0.5)), ((_pos select 1) + PRNG(0.5)), ((_pos select 2) + PRNG(0.5))]; + //_g setVelocity _v; + _grenades set[(count _grenades), [_g, _v]]; +}; + +["ace_arty_ammo_105mmSmokeEvent", [_grenades]] call CBA_fnc_globalEvent; + +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/120mm/model.cfg b/TO_MERGE/ace/arty_ammunition/120mm/model.cfg new file mode 100644 index 0000000000..fb54f37f4f --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/model.cfg @@ -0,0 +1,59 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + + class ace_mortar_shell: Default { + isDiscrete = 1; + skeletonInherit = "Default"; + skeletonBones[] = { + "inc1","", + "inc2","", + "inc3","", + "inc4","", + "inc5","", + "inc6","", + "inc7","", + "inc8","", + "inc9","", + "inc10","" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + skeletonName = ""; + }; + class ace_arty_dm11_cartridge: Default { + skeletonName="ace_mortar_shell"; + sections[]= {}; + class animations { + #define HIDE_INC(x) class hide_inc##x { \ + type = "hide"; \ + source = "user"; \ + selection = inc##x; \ + minValue = 0; \ + maxValue = 1; \ + hideValue = 1; \ + }; + HIDE_INC(1); + HIDE_INC(2); + HIDE_INC(3); + HIDE_INC(4); + HIDE_INC(5); + HIDE_INC(6); + HIDE_INC(7); + HIDE_INC(8); + HIDE_INC(9); + HIDE_INC(10); + }; + }; + class ace_arty_dm26_cartridge: ace_arty_dm11_cartridge {}; + class ace_arty_dm35_cartridge: ace_arty_dm11_cartridge {}; + class ace_arty_dm61_cartridge: ace_arty_dm11_cartridge {}; +}; diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg0.sqf new file mode 100644 index 0000000000..d14996c8d6 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg0.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_120mm_dm11a5_dm111a1_pd_chg0 +// Ammo: ace_arty_120mm_dm11a5_dm111a1_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,256.159,[[1914.92,-2002.79,29.3667,200.3,-73.8057],[1885.01,-1901.16,28.8333,196.876,-73.3795],[1854.86,-1801.51,28.3,193.409,-72.9345],[1823.52,-1700.87,27.75,189.79,-72.4547],[1791.94,-1602.4,27.2,186.126,-71.9522],[1758.17,-1500.38,26.6167,182.195,-71.3926],[1724.12,-1400.89,26.0333,178.218,-70.8034],[1688.82,-1301.23,25.4333,174.083,-70.164],[1652.25,-1201.67,24.8167,169.788,-69.4686],[1614.39,-1102.49,24.1833,165.334,-68.7107],[1574.21,-1001.51,23.5167,160.601,-67.8603],[1532.68,-901.684,22.8333,155.71,-66.9271],[1488.77,-801.065,22.1167,150.542,-65.8744],[1442.43,-700.298,21.3667,145.103,-64.6822],[1393.62,-600.076,20.5833,139.399,-63.326],[1342.3,-501.137,19.7667,133.442,-61.7755],[1286.32,-400.594,18.8833,127.011,-59.919],[1225.57,-300.084,17.9333,120.139,-57.6814],[1159.98,-201.403,16.9167,112.885,-54.9627],[1085.1,-101.017,15.7667,104.885,-51.4067],[998.517,-0.957532,14.45,96.1404,-46.5768],[891.077,99.8345,12.8333,86.339,-39.2849],[738.534,199.499,10.5667,75.3877,-26.0008],[506.016,256.158,7.16667,69.0085,-0.0103475]]], + [46,264.999,[[1892.46,-2003.21,29.5333,200.386,-74.1047],[1863.07,-1901.38,29,196.956,-73.6863],[1833.45,-1801.53,28.4667,193.483,-73.2495],[1802.66,-1700.67,27.9167,189.855,-72.7784],[1771.63,-1602,27.3667,186.184,-72.285],[1739.4,-1502.64,26.8,182.356,-71.7516],[1705,-1400.03,26.2,178.255,-71.1569],[1670.32,-1300.13,25.6,174.108,-70.529],[1634.39,-1200.33,24.9833,169.8,-69.846],[1597.2,-1100.89,24.35,165.331,-69.1013],[1558.71,-1002.13,23.7,160.701,-68.2873],[1517.92,-901.935,23.0167,155.792,-67.3717],[1474.79,-800.924,22.3,150.603,-66.3386],[1430.28,-701.94,21.5667,145.261,-65.1954],[1382.35,-601.171,20.7833,139.529,-63.8663],[1331.95,-501.657,19.9667,133.539,-62.346],[1276.96,-400.486,19.0833,127.066,-60.5248],[1218.35,-301,18.15,120.263,-58.3692],[1153.94,-201.43,17.1333,112.943,-55.7036],[1080.41,-100.03,15.9833,104.853,-52.2125],[997.556,-1.16286,14.7,96.2001,-47.5921],[894.265,99.7163,13.1167,86.3751,-40.5907],[750.085,199.954,10.9333,75.3104,-28.0391],[506.194,264.997,7.3,67.7678,-0.101048]]], + [47,273.826,[[1868.13,-2000.87,29.6833,200.382,-74.3966],[1840.18,-1902.04,29.1667,197.052,-73.9987],[1811.09,-1801.99,28.6333,193.572,-73.5702],[1780.86,-1700.91,28.0833,189.937,-73.1082],[1750.39,-1602.01,27.5333,186.257,-72.6241],[1718.75,-1502.43,26.9667,182.42,-72.1008],[1685.92,-1402.4,26.3833,178.424,-71.5339],[1651.88,-1302.18,25.7833,174.267,-70.9186],[1616.61,-1202.04,25.1667,169.947,-70.2494],[1580.09,-1102.26,24.5333,165.465,-69.5197],[1541.34,-1000.63,23.8667,160.7,-68.7006],[1501.29,-900.147,23.1833,155.772,-67.8016],[1459.93,-801.137,22.4833,150.684,-66.8113],[1416.24,-701.734,21.75,145.318,-65.6901],[1369.18,-600.515,20.9667,139.557,-64.3861],[1319.71,-500.526,20.15,133.534,-62.894],[1266.75,-400.693,19.2833,127.143,-61.141],[1209.23,-300.519,18.35,120.29,-59.027],[1146.01,-200.193,17.3333,112.906,-56.4106],[1075.94,-100.724,16.2167,104.963,-53.0863],[994.636,-0.491882,14.9333,96.1831,-48.5568],[896.499,99.2096,13.4,86.4574,-41.9114],[760.502,199.737,11.3,75.3258,-30.0966],[504.778,273.825,7.41667,66.5141,-0.0728469]]], + [48,282.629,[[1843.76,-2002.21,29.85,200.499,-74.7065],[1815.44,-1900.01,29.3167,197.056,-74.3037],[1787.8,-1802.9,28.8,193.677,-73.8966],[1758.14,-1701.6,28.25,190.035,-73.4437],[1728.24,-1602.48,27.7,186.348,-72.9693],[1697.19,-1502.65,27.1333,182.502,-72.4562],[1664.98,-1402.37,26.55,178.496,-71.9004],[1631.57,-1301.9,25.95,174.327,-71.2972],[1596.97,-1201.49,25.3333,169.995,-70.6409],[1561.14,-1101.43,24.7,165.499,-69.9252],[1524.07,-1002.02,24.05,160.838,-69.1426],[1484.78,-901.141,23.3667,155.893,-68.262],[1444.2,-801.722,22.6667,150.785,-67.292],[1401.34,-701.888,21.9333,145.396,-66.1933],[1355.18,-600.203,21.15,139.607,-64.9152],[1307.63,-501.718,20.35,133.675,-63.4834],[1255.69,-401.236,19.4833,127.244,-61.7671],[1199.26,-300.355,18.55,120.342,-59.6961],[1138.27,-200.835,17.55,113.015,-57.1754],[1069.55,-100.338,16.4333,104.987,-53.919],[990.851,-0.130643,15.1667,96.1983,-49.5366],[896.718,99.2807,13.6667,86.4856,-43.1665],[768.708,199.49,11.65,75.3568,-32.0629],[502.918,282.628,7.53333,65.2425,-0.0626778]]], + [49,291.398,[[1817.57,-2000.82,30,200.526,-75.0095],[1790.67,-1901.63,29.4833,197.185,-74.6272],[1762.68,-1801.2,28.95,193.69,-74.2154],[1734.48,-1702.77,28.4167,190.151,-73.785],[1704.27,-1600.43,27.85,186.343,-73.3059],[1673.82,-1500.42,27.2833,182.487,-72.8027],[1643.13,-1402.79,26.7167,178.586,-72.2734],[1610.37,-1302.05,26.1167,174.407,-71.6825],[1576.44,-1201.37,25.5,170.062,-71.0395],[1541.31,-1101.02,24.8667,165.552,-70.3382],[1504.96,-1001.31,24.2167,160.876,-69.5713],[1466.43,-900.117,23.5333,155.913,-68.7081],[1426.64,-800.372,22.8333,150.784,-67.757],[1384.61,-700.194,22.1,145.372,-66.6795],[1340.31,-600.257,21.3333,139.68,-65.4535],[1293.7,-501.277,20.5333,133.716,-64.0509],[1242.78,-400.253,19.6667,127.246,-62.3688],[1188.45,-300.53,18.75,120.419,-60.3761],[1128.66,-200.226,17.75,113.03,-57.9072],[1062.31,-100.274,16.65,105.039,-54.7651],[986.194,-0.100545,15.4,96.2472,-50.5311],[894.973,99.9775,13.9167,86.4536,-44.3598],[774.752,199.299,11.9833,75.3917,-33.9404],[500.607,291.396,7.65,63.9528,-0.0719349]]], + [50,300.122,[[1791.3,-2003.17,30.1667,200.677,-75.33],[1764.09,-1900.58,29.6333,197.222,-74.9436],[1737.52,-1803.08,29.1167,193.83,-74.553],[1709.01,-1701.37,28.5667,190.173,-74.1184],[1680.28,-1601.82,28.0167,186.469,-73.6631],[1650.44,-1501.56,27.45,182.605,-73.1707],[1619.48,-1400.83,26.8667,178.579,-72.6371],[1588.28,-1302.65,26.2833,174.505,-72.0744],[1555.03,-1201.68,25.6667,170.149,-71.445],[1520.6,-1101.04,25.0333,165.625,-70.7585],[1484.98,-1001.02,24.3833,160.934,-70.0075],[1448.15,-901.929,23.7167,156.075,-69.1836],[1409.17,-801.75,23.0167,150.928,-68.2537],[1368,-701.113,22.2833,145.494,-67.2],[1324.6,-600.69,21.5167,139.775,-66.0006],[1278.93,-501.2,20.7167,133.78,-64.6281],[1230,-401.51,19.8667,127.396,-63.0147],[1176.79,-301.057,18.95,120.522,-61.0667],[1119.2,-201.561,17.9667,113.196,-58.6942],[1054.21,-100.551,16.8667,105.122,-55.6237],[980.657,-0.41954,15.6333,96.3313,-51.5393],[893.339,99.2842,14.1833,86.5706,-45.6461],[777.669,199.978,12.2833,75.3311,-35.631],[507.235,299.981,7.91667,62.621,-1.44755],[497.842,300.12,7.76667,62.6457,-0.10195]]], + [51,308.79,[[1763.23,-2002.81,30.3167,200.738,-75.6438],[1736.58,-1900.04,29.7833,197.276,-75.2656],[1710.56,-1802.37,29.2667,193.878,-74.8833],[1682.65,-1700.47,28.7167,190.213,-74.4579],[1654.51,-1600.73,28.1667,186.501,-74.0121],[1625.28,-1500.28,27.6,182.628,-73.53],[1595.83,-1402.19,27.0333,178.707,-73.0228],[1564.4,-1300.96,26.4333,174.506,-72.4564],[1532.72,-1202.46,25.8333,170.256,-71.8572],[1499.01,-1101.51,25.2,165.719,-71.1858],[1464.13,-1001.17,24.55,161.013,-70.4512],[1428.07,-901.744,23.8833,156.138,-69.6452],[1389.91,-801.214,23.1833,150.971,-68.7353],[1349.59,-700.204,22.45,145.514,-67.704],[1308.02,-601.528,21.7,139.894,-66.5563],[1263.31,-501.511,20.9,133.868,-65.2147],[1215.41,-401.257,20.05,127.448,-63.6368],[1163.31,-300.189,19.1333,120.527,-61.7306],[1106.93,-200.028,18.15,113.144,-59.4069],[1045.24,-101.191,17.0833,105.238,-56.4944],[974.231,-1.11121,15.8667,96.4524,-52.5605],[889.765,99.218,14.4333,86.6262,-46.8713],[780.572,199.394,12.6,75.4297,-37.4407],[575.108,299.979,9.2,62.3241,-12.0747],[493.597,308.79,7.86667,61.3258,-0.00187349]]], + [52,317.394,[[1734.24,-2002.99,30.4667,200.817,-75.9629],[1708.16,-1900.03,29.9333,197.348,-75.5931],[1682.7,-1802.18,29.4167,193.944,-75.2192],[1655.38,-1700.08,28.8667,190.271,-74.8032],[1627.84,-1600.14,28.3167,186.551,-74.3672],[1600.09,-1502.41,27.7667,182.784,-73.9098],[1570.42,-1401.18,27.1833,178.739,-73.3995],[1540.52,-1302.51,26.6,174.644,-72.8612],[1508.66,-1201.01,25.9833,170.264,-72.259],[1476.54,-1102.44,25.3667,165.834,-71.6198],[1442.42,-1001.76,24.7167,161.114,-70.9021],[1407.14,-901.998,24.05,156.223,-70.1143],[1369.79,-801.102,23.35,151.037,-69.2249],[1331.25,-701.962,22.6333,145.683,-68.2404],[1289.67,-600.632,21.8667,139.912,-67.0942],[1245.93,-500.186,21.0667,133.856,-65.7816],[1199.98,-401.387,20.2333,127.526,-64.2689],[1149.94,-301.47,19.3333,120.686,-62.4416],[1094.8,-200.478,18.35,113.244,-60.1738],[1034.46,-100.731,17.2833,105.263,-57.3282],[965.955,-0.89684,16.0833,96.4921,-53.5359],[884.311,99.8268,14.6667,86.615,-48.039],[780.459,199.819,12.8833,75.4137,-39.0703],[602.418,299.749,9.86667,62.2686,-17.2525],[489.937,317.393,7.98333,59.9842,-0.0753117]]], + [53,325.922,[[1703.54,-2000.47,30.6,200.805,-76.2761],[1678.83,-1900.57,30.0833,197.439,-75.9259],[1653.93,-1802.52,29.5667,194.028,-75.5606],[1627.22,-1700.22,29.0167,190.349,-75.1541],[1600.29,-1600.07,28.4667,186.621,-74.7282],[1573.15,-1502.13,27.9167,182.845,-74.2812],[1544.15,-1400.68,27.3333,178.791,-73.7825],[1514.91,-1301.78,26.75,174.686,-73.2564],[1483.75,-1200.03,26.1333,170.294,-72.6679],[1452.34,-1101.22,25.5167,165.851,-72.043],[1418.98,-1000.29,24.8667,161.115,-71.3413],[1384.48,-900.253,24.2,156.207,-70.5709],[1348.83,-801.437,23.5167,151.126,-69.7224],[1311.15,-701.905,22.8,145.751,-68.7609],[1270.5,-600.153,22.0333,139.955,-67.6412],[1228.63,-501.309,21.25,133.996,-66.3864],[1183.72,-401.923,20.4167,127.63,-64.9106],[1134.81,-301.366,19.5167,120.747,-63.1268],[1081.82,-201.321,18.55,113.375,-60.9514],[1022.84,-100.641,17.4833,105.32,-58.1749],[956.822,-1.05778,16.3,96.5684,-54.5252],[878.921,98.9578,14.9167,86.7608,-49.2939],[779.359,199.757,13.1667,75.462,-40.7187],[618.987,299.849,10.3833,62.2157,-21.1551],[484.835,325.921,8.08333,58.6302,-0.0151399]]], + [54,334.364,[[1672.72,-2001.77,30.75,200.92,-76.6057],[1648.58,-1901.67,30.2333,197.548,-76.2639],[1623.46,-1800.29,29.7,194.021,-75.8957],[1598.15,-1700.91,29.1667,190.446,-75.5107],[1571.84,-1600.55,28.6167,186.711,-75.095],[1545.33,-1502.38,28.0667,182.927,-74.6587],[1516.99,-1400.7,27.4833,178.863,-74.1719],[1488.42,-1301.56,26.9,174.748,-73.6583],[1458.81,-1202.28,26.3,170.464,-73.0996],[1427.3,-1100.49,25.6667,165.889,-72.4734],[1395.54,-1001.84,25.0333,161.261,-71.8062],[1361.84,-901.435,24.3667,156.337,-71.0551],[1327.02,-802.235,23.6833,151.24,-70.2275],[1289.35,-700.024,22.95,145.717,-69.2669],[1250.5,-600.109,22.2,140.023,-68.197],[1209.6,-500.814,21.4167,134.035,-66.9723],[1165.73,-400.944,20.5833,127.635,-65.5311],[1118.84,-301.667,19.7,120.837,-63.8223],[1067.09,-200.907,18.7333,113.411,-61.6999],[1010.39,-100.939,17.6833,105.411,-59.0339],[945.914,-0.285423,16.5,96.5597,-55.4726],[870.758,99.879,15.1333,86.7224,-50.4234],[777.263,199.185,13.45,75.5772,-42.383],[630.165,299.912,10.8333,62.1952,-24.5179],[480.267,334.361,8.2,57.2557,-0.139283]]], + [55,342.71,[[1640.22,-2000.4,30.8833,200.945,-76.9296],[1616.65,-1900.16,30.3667,197.567,-76.596],[1592.9,-1801.76,29.85,194.143,-76.248],[1568.19,-1702.16,29.3167,190.563,-75.8727],[1542.51,-1601.57,28.7667,186.82,-75.4673],[1515.84,-1500.23,28.2,182.914,-75.0288],[1488.96,-1401.25,27.6333,178.957,-74.5673],[1461.08,-1301.86,27.05,174.832,-74.0664],[1432.17,-1202.33,26.45,170.538,-73.5216],[1401.41,-1100.27,25.8167,165.95,-72.9108],[1370.41,-1001.34,25.1833,161.308,-72.26],[1337.51,-900.639,24.5167,156.368,-71.5271],[1303.52,-801.135,23.8333,151.252,-70.7195],[1267.59,-700.877,23.1167,145.835,-69.804],[1229.68,-600.518,22.3667,140.117,-68.7614],[1189.76,-500.755,21.5833,134.102,-67.5674],[1146.94,-400.384,20.75,127.667,-66.1619],[1101.17,-300.57,19.8667,120.828,-64.4945],[1051.54,-200.896,18.9167,113.478,-62.4599],[996.205,-100.122,17.8667,105.409,-59.8598],[935.07,-1.23781,16.7167,96.712,-56.4882],[862.645,99.2815,15.3667,86.8446,-51.6375],[772.346,199.833,13.7,75.5487,-43.8818],[638.063,299.618,11.25,62.2457,-27.625],[474.299,342.708,8.3,55.869,-0.126338]]], + [56,350.951,[[1607.57,-2002.89,31.0333,201.097,-77.269],[1584.59,-1902.43,30.5167,197.715,-76.9442],[1560.68,-1800.67,29.9833,194.175,-76.5942],[1536.57,-1700.9,29.45,190.587,-76.2282],[1511.53,-1600.15,28.9,186.837,-75.8328],[1486.28,-1501.58,28.35,183.037,-75.4179],[1460.07,-1402.35,27.7833,179.072,-74.9685],[1432.87,-1302.71,27.2,174.938,-74.4807],[1403.89,-1200.17,26.5833,170.513,-73.9347],[1374.68,-1100.55,25.9667,166.033,-73.3549],[1344.45,-1001.34,25.3333,161.379,-72.7208],[1312.36,-900.333,24.6667,156.423,-72.0065],[1279.22,-800.513,23.9833,151.29,-71.2194],[1244.99,-702.211,23.2833,145.979,-70.3485],[1208.02,-601.394,22.5333,140.238,-69.3337],[1169.1,-501.149,21.75,134.195,-68.1713],[1127.34,-400.259,20.9167,127.728,-66.8024],[1083.56,-301.721,20.05,120.978,-65.2101],[1035.17,-201.304,19.1,113.577,-63.2307],[982.085,-101.236,18.0667,105.569,-60.7421],[922.488,-1.26173,16.9167,96.779,-57.4627],[852.76,99.397,15.5833,86.8941,-52.799],[767.396,199.13,13.9667,75.6877,-45.4871],[641.915,299.766,11.6167,62.2451,-30.3509],[467.906,350.949,8.4,54.4664,-0.138091]]], + [57,359.075,[[1573.29,-2002.74,31.1667,201.161,-77.603],[1550.89,-1902.12,30.65,197.773,-77.2866],[1527.59,-1800.18,30.1167,194.227,-76.9457],[1504.11,-1700.24,29.5833,190.632,-76.5892],[1480.44,-1602.33,29.05,186.989,-76.2161],[1455.09,-1500.56,28.4833,183.066,-75.8],[1429.55,-1401.14,27.9167,179.092,-75.3622],[1403.05,-1301.3,27.3333,174.948,-74.8868],[1375.57,-1201.29,26.7333,170.632,-74.3697],[1347.11,-1101.39,26.1167,166.141,-73.8055],[1317.66,-1001.87,25.4833,161.474,-73.1884],[1286.4,-900.546,24.8167,156.503,-72.4933],[1254.1,-800.395,24.1333,151.353,-71.7271],[1220.75,-701.752,23.4333,146.023,-70.8792],[1184.73,-600.565,22.6833,140.259,-69.891],[1147.62,-502.018,21.9167,134.318,-68.7838],[1106.95,-400.591,21.0833,127.819,-67.4524],[1064.3,-301.49,20.2167,121.03,-65.903],[1017.16,-200.451,19.2667,113.579,-63.9757],[966.278,-101.248,18.25,105.636,-61.5923],[908.229,-0.332061,17.1,96.7583,-58.3995],[842.018,99.0855,15.8,86.9893,-53.9753],[759.75,199.752,14.2,75.6685,-46.936],[643.669,299.586,11.9667,62.3032,-32.9671],[460.203,359.075,8.48333,53.0516,-0.000486065]]], + [58,367.077,[[1538.14,-2003.21,31.3,201.243,-77.9419],[1516.33,-1902.42,30.7833,197.85,-77.6342],[1493.65,-1800.3,30.25,194.298,-77.3025],[1470.79,-1700.18,29.7167,190.697,-76.9558],[1447.75,-1602.09,29.1833,187.047,-76.5927],[1423.07,-1500.11,28.6167,183.117,-76.1879],[1398.21,-1400.5,28.05,179.134,-75.7619],[1372.41,-1300.45,27.4667,174.98,-75.2994],[1345.66,-1200.23,26.8667,170.653,-74.7961],[1317.96,-1100.1,26.25,166.15,-74.2469],[1289.28,-1000.36,25.6167,161.469,-73.6462],[1259.61,-901.284,24.9667,156.609,-72.987],[1228.18,-800.789,24.2833,151.442,-72.2422],[1195.72,-701.79,23.5833,146.093,-71.4178],[1160.66,-600.219,22.8333,140.307,-70.4567],[1124.54,-501.275,22.0667,134.34,-69.3797],[1085.74,-401.392,21.25,127.94,-68.1113],[1044.24,-301.709,20.3833,121.113,-66.6059],[998.363,-200.026,19.4333,113.614,-64.7322],[948.851,-100.128,18.4167,105.609,-62.4129],[894.003,-1.19754,17.3,96.9043,-59.4001],[829.584,99.5245,16,87.0072,-55.1033],[751.218,199.927,14.4333,75.7061,-48.4041],[642.539,299.778,12.2833,62.3142,-35.351],[452.981,367.076,8.58333,51.618,-0.0638634]]], + [59,374.942,[[1501.43,-2001.05,31.4167,201.238,-78.2761],[1480.22,-1900.13,30.9,197.839,-77.9768],[1458.85,-1801.05,30.3833,194.392,-77.6645],[1436.61,-1700.74,29.85,190.785,-77.3276],[1414.21,-1602.45,29.3167,187.128,-76.9749],[1390.22,-1500.27,28.75,183.19,-76.5816],[1366.04,-1400.45,28.1833,179.199,-76.1676],[1340.95,-1300.18,27.6,175.037,-75.7181],[1315.67,-1202.49,27.0167,170.82,-75.243],[1288.73,-1102.05,26.4,166.307,-74.7101],[1260.85,-1001.98,25.7667,161.615,-74.1272],[1231.26,-900.065,25.1,156.615,-73.4703],[1201.44,-801.717,24.4333,151.558,-72.7644],[1169.13,-700.031,23.7167,146.063,-71.9441],[1135.8,-600.377,22.9833,140.383,-71.0307],[1100.68,-501.02,22.2167,134.392,-69.9845],[1062.96,-400.693,21.4,127.961,-68.752],[1022.61,-300.536,20.5333,121.097,-67.2885],[978.791,-200.052,19.6,113.683,-65.4996],[931.451,-101.011,18.6,105.75,-63.2864],[878.139,-1.11531,17.4833,96.9623,-60.3638],[816.33,99.5341,16.2,87.0703,-56.2468],[741.794,199.631,14.6667,75.8025,-49.8892],[639.482,299.895,12.5833,62.3426,-37.6345],[445.33,374.939,8.68333,50.1697,-0.159507]]], + [60,382.663,[[1464.55,-2002.83,31.55,201.362,-78.6246],[1443.95,-1901.72,31.0333,197.958,-78.3342],[1423.19,-1802.45,30.5167,194.507,-78.0313],[1401.6,-1701.94,29.9833,190.894,-77.7044],[1379.15,-1600.4,29.4333,187.116,-77.3513],[1356.53,-1501.05,28.8833,183.287,-76.9806],[1333.05,-1401.01,28.3167,179.288,-76.579],[1308.68,-1300.51,27.7333,175.116,-76.1428],[1284.12,-1202.59,27.15,170.891,-75.6817],[1257.96,-1101.9,26.5333,166.367,-75.1646],[1230.88,-1001.58,25.9,161.661,-74.5987],[1202.86,-901.906,25.25,156.774,-73.9775],[1173.18,-800.774,24.5667,151.575,-73.2755],[1142.53,-701.116,23.8667,146.19,-72.4982],[1110.16,-601.056,23.1333,140.489,-71.6126],[1076.05,-501.27,22.3667,134.474,-70.5979],[1039.42,-400.482,21.55,128.013,-69.4022],[1000.99,-301.704,20.7,121.246,-68.0106],[958.44,-200.547,19.7667,113.787,-66.2774],[912.472,-100.777,18.7667,105.796,-64.1313],[860.706,-0.0597649,17.65,96.9298,-61.2937],[802.254,99.0957,16.4,87.1805,-57.4043],[730.685,199.832,14.8833,75.8397,-51.3115],[635.364,299.343,12.8833,62.4757,-39.9358],[436.44,382.661,8.76667,48.7096,-0.098314]]], + [61,390.23,[[1426.17,-2002,31.6667,201.398,-78.9686],[1406.18,-1900.74,31.15,197.989,-78.687],[1386.04,-1801.33,30.6333,194.531,-78.3931],[1365.09,-1700.67,30.1,190.912,-78.076],[1343.97,-1602.03,29.5667,187.242,-77.744],[1322.03,-1502.46,29.0167,183.406,-77.3849],[1299.24,-1402.19,28.45,179.4,-76.9958],[1275.6,-1301.45,27.8667,175.221,-76.5732],[1251.1,-1200.52,27.2667,170.864,-76.1132],[1226.4,-1102.35,26.6667,166.452,-75.6252],[1200.13,-1001.75,26.0333,161.735,-75.0768],[1172.95,-901.805,25.3833,156.833,-74.4747],[1144.15,-800.38,24.7,151.619,-73.7941],[1114.42,-700.419,24,146.216,-73.0403],[1083.02,-600.038,23.2667,140.495,-72.1814],[1050.65,-502.039,22.5167,134.586,-71.2194],[1015.12,-400.772,21.7,128.097,-70.0613],[977.841,-301.491,20.85,121.296,-68.713],[937.311,-201.525,19.9333,113.927,-67.0647],[892.73,-101.003,18.9333,105.88,-64.9876],[843.277,-0.870971,17.8333,97.0698,-62.283],[786.595,99.4338,16.5833,87.2094,-58.5182],[718.725,199.566,15.1,75.9345,-52.7504],[628.629,299.5,13.15,62.5067,-42.025],[427.168,390.229,8.85,47.2351,-0.0641946]]], + [62,397.636,[[1386.97,-2001.84,31.7833,201.455,-79.3174],[1367.6,-1900.44,31.2667,198.041,-79.0446],[1348.09,-1800.88,30.75,194.577,-78.7599],[1327.78,-1700.06,30.2167,190.952,-78.4528],[1307.32,-1601.27,29.6833,187.276,-78.1312],[1286.06,-1501.53,29.1333,183.432,-77.7834],[1263.98,-1401.08,28.5667,179.418,-77.4064],[1241.07,-1300.17,27.9833,175.23,-76.9969],[1217.98,-1201.83,27.4,170.985,-76.5639],[1193.39,-1100.7,26.7833,166.439,-76.0783],[1168.6,-1002.52,26.1667,161.835,-75.5611],[1142.27,-902.282,25.5167,156.921,-74.9785],[1114.37,-800.55,24.8333,151.691,-74.3198],[1085.56,-700.271,24.1333,146.271,-73.5901],[1055.83,-601.794,23.4167,140.661,-72.7782],[1023.78,-501.209,22.65,134.598,-71.8268],[990.061,-401.579,21.85,128.214,-70.7288],[953.949,-301.776,21,121.38,-69.4248],[914.687,-201.242,20.0833,113.969,-67.8298],[871.501,-100.096,19.0833,105.868,-65.8182],[824.325,-0.715429,18,97.1193,-63.2392],[770.157,99.3205,16.7667,87.285,-59.6466],[705.168,199.839,15.3,75.964,-54.1314],[620.168,299.792,13.4,62.5203,-44.0253],[417.517,397.635,8.93333,45.7464,-0.0600616]]], + [63,404.869,[[1346.96,-2002.39,31.9,201.534,-79.6707],[1328.22,-1900.83,31.3833,198.115,-79.4069],[1309.33,-1801.11,30.8667,194.646,-79.1317],[1289.69,-1700.13,30.3333,191.015,-78.8347],[1269.89,-1601.17,29.8,187.333,-78.5237],[1249.31,-1501.25,29.25,183.483,-78.1873],[1227.94,-1400.63,28.6833,179.461,-77.8227],[1206.41,-1302.38,28.1167,175.384,-77.4382],[1183.44,-1201,27.5167,171.01,-77.0077],[1160.28,-1102.36,26.9167,166.577,-76.551],[1135.65,-1001.28,26.2833,161.837,-76.0375],[1110.17,-900.824,25.6333,156.909,-75.4736],[1083.83,-801.304,24.9667,151.793,-74.8522],[1055.96,-700.694,24.2667,146.356,-74.1472],[1027.2,-601.873,23.55,140.728,-73.3624],[996.183,-500.917,22.7833,134.642,-72.4427],[963.562,-400.897,21.9833,128.231,-71.3809],[928.623,-300.676,21.1333,121.364,-70.1192],[891.331,-201.457,20.2333,114.048,-68.6051],[850.253,-101.285,19.25,106.03,-66.696],[804.621,-1.03142,18.1667,97.2115,-64.2076],[752.938,98.7363,16.95,87.4091,-60.7882],[690.801,199.642,15.5,76.0506,-55.5292],[610.774,299.525,13.65,62.6194,-46.046],[450.919,399.984,10,45.151,-12.401],[407.486,404.868,9.01667,44.2442,-0.0894189]]], + [64,411.923,[[1305.57,-2000.34,32,201.525,-80.0204],[1288.04,-1901.93,31.5,198.211,-79.7738],[1269.79,-1802.04,30.9833,194.738,-79.5081],[1250.81,-1700.88,30.45,191.102,-79.2214],[1231.68,-1601.74,29.9167,187.414,-78.9212],[1211.79,-1501.64,29.3667,183.557,-78.5964],[1191.15,-1400.82,28.8,179.529,-78.2444],[1170.35,-1302.39,28.2333,175.444,-77.8732],[1148.15,-1200.79,27.6333,171.061,-77.4575],[1125.77,-1101.95,27.0333,166.618,-77.0164],[1101.97,-1000.65,26.4,161.866,-76.5205],[1077.99,-902.501,25.7667,157.053,-75.9903],[1051.9,-800.203,25.0833,151.795,-75.3755],[1025.62,-701.696,24.4,146.472,-74.711],[997.181,-600.26,23.6667,140.693,-73.9357],[967.869,-501.173,22.9167,134.719,-73.0666],[936.354,-400.745,22.1167,128.282,-72.0419],[902.601,-300.087,21.2667,121.383,-70.8237],[866.573,-200.401,20.3667,114.028,-69.3609],[827.564,-101.349,19.4,106.097,-67.5488],[783.486,-0.360696,18.3167,97.211,-65.1467],[734.251,98.9534,17.1167,87.4484,-61.8908],[675.622,198.959,15.7,76.1959,-56.9412],[599.743,299.455,13.8833,62.69,-47.9811],[463.134,399.855,10.65,45.1723,-19.7673],[397.075,411.921,9.1,42.7285,-0.155927]]], + [65,418.789,[[1263.98,-2002.33,32.1167,201.648,-80.3825],[1246.51,-1900.49,31.6,198.219,-80.1368],[1228.9,-1800.48,31.0833,194.74,-79.8805],[1211.16,-1702.33,30.5667,191.212,-79.6127],[1192.7,-1603.01,30.0333,187.519,-79.3235],[1173.52,-1502.72,29.4833,183.657,-79.0105],[1153.61,-1401.69,28.9167,179.622,-78.6712],[1132.95,-1300.19,28.3333,175.409,-78.3027],[1112.12,-1201.24,27.75,171.138,-77.9129],[1090.54,-1102.18,27.15,166.686,-77.4877],[1067.58,-1000.64,26.5167,161.924,-77.0097],[1044.44,-902.255,25.8833,157.099,-76.4985],[1019.89,-802.156,25.2167,151.956,-75.9207],[993.918,-700.932,24.5167,146.488,-75.265],[967.113,-601.477,23.8,140.823,-74.5348],[938.841,-501.995,23.05,134.828,-73.698],[908.444,-401.141,22.25,128.367,-72.7111],[875.888,-300.026,21.4,121.437,-71.5374],[841.784,-201.642,20.5167,114.183,-70.1552],[803.512,-100.272,19.5333,106.066,-68.3793],[761.654,-0.169363,18.4667,97.2533,-66.0986],[714.17,99.9947,17.2667,87.4002,-62.9583],[658.296,199.933,15.8667,76.1386,-58.2356],[587.148,299.635,14.1,62.7238,-49.8365],[465.693,399.971,11.1167,45.1751,-24.9961],[385.599,418.788,9.16667,41.2019,-0.0369308]]], + [66,425.457,[[1221.06,-2001.74,32.2167,201.683,-80.7412],[1204.78,-1903.03,31.7167,198.361,-80.5124],[1187.82,-1802.84,31.2,194.879,-80.2659],[1170.18,-1701.37,30.6667,191.232,-79.9999],[1152.4,-1601.91,30.1333,187.533,-79.7213],[1133.93,-1501.48,29.5833,183.664,-79.4199],[1114.75,-1400.31,29.0167,179.621,-79.0931],[1095.42,-1301.53,28.45,175.521,-78.7486],[1075.36,-1202.35,27.8667,171.243,-78.3736],[1054,-1100.34,27.25,166.658,-77.953],[1032.47,-1001.27,26.6333,162.011,-77.5048],[1009.6,-900.086,25.9833,157.047,-76.9997],[986.548,-802.274,25.3333,152.019,-76.4572],[961.532,-700.768,24.6333,146.536,-75.8261],[935.718,-601.023,23.9167,140.853,-75.1233],[908.491,-501.233,23.1667,134.838,-74.3177],[879.218,-400.049,22.3667,128.351,-73.3672],[848.482,-300.51,21.5333,121.529,-72.2599],[815.645,-201.627,20.65,114.239,-70.9307],[779.42,-101.351,19.6833,106.214,-69.2529],[739.121,-0.473296,18.6167,97.34,-67.0622],[694.042,99.2584,17.4333,87.5365,-64.0884],[640.897,199.354,16.05,76.2693,-59.6115],[573.71,299.29,14.3167,62.836,-51.7109],[464.041,399.85,11.5167,45.2417,-29.4945],[374.459,425.455,9.25,39.6607,-0.183593]]], + [67,431.921,[[1177.4,-2001.9,32.3167,201.742,-81.1041],[1161.75,-1903.06,31.8167,198.416,-80.8842],[1145.45,-1802.73,31.3,194.929,-80.6474],[1128.49,-1701.12,30.7667,191.277,-80.3918],[1111.4,-1601.51,30.2333,187.572,-80.124],[1093.64,-1500.94,29.6833,183.697,-79.8344],[1075.74,-1402.56,29.1333,179.767,-79.5298],[1056.61,-1300.68,28.55,175.539,-79.1891],[1037.33,-1201.34,27.9667,171.253,-78.8287],[1017.35,-1101.88,27.3667,166.783,-78.4356],[996.654,-1002.56,26.75,162.126,-78.0054],[974.669,-901.102,26.1,157.152,-77.5206],[951.943,-800.547,25.4333,151.982,-76.9859],[928.467,-701.214,24.75,146.615,-76.3938],[903.654,-601.163,24.0333,140.916,-75.7189],[877.482,-501.049,23.2833,134.881,-74.9452],[849.933,-401.577,22.5,128.508,-74.052],[820.393,-301.552,21.6667,121.658,-72.9902],[788.234,-200.339,20.7667,114.196,-71.6894],[754.017,-101.298,19.8167,106.266,-70.1048],[715.892,-1.28772,18.7667,97.4721,-68.0362],[672.572,99.3408,17.5833,87.5854,-65.1839],[622.117,199.382,16.2167,76.3247,-60.9396],[558.803,299.246,14.5167,62.9026,-53.5104],[459.114,399.678,11.8667,45.3272,-33.469],[362.308,431.919,9.31667,38.1089,-0.136885]]], + [68,438.171,[[1133.02,-2002.82,32.4167,201.824,-81.471],[1117.5,-1900.57,31.9,198.382,-81.2531],[1101.86,-1800.16,31.3833,194.889,-81.0257],[1086.09,-1701.6,30.8667,191.346,-80.7881],[1069.69,-1601.85,30.3333,187.636,-80.5315],[1052.65,-1501.11,29.7833,183.755,-80.2537],[1035.48,-1402.58,29.2333,179.819,-79.9617],[1017.13,-1300.52,28.65,175.585,-79.635],[998.631,-1201.01,28.0667,171.29,-79.2894],[979.458,-1101.37,27.4667,166.811,-78.9123],[959.601,-1001.86,26.85,162.145,-78.4997],[938.507,-900.208,26.2,157.159,-78.0346],[917.25,-801.924,25.55,152.107,-77.5349],[894.729,-702.287,24.8667,146.727,-76.9678],[870.926,-601.914,24.15,141.012,-76.3213],[845.819,-501.46,23.4,134.959,-75.58],[819.391,-401.629,22.6167,128.564,-74.724],[791.053,-301.219,21.7833,121.688,-73.7061],[760.777,-201.404,20.9,114.331,-72.4832],[727.378,-100.1,19.9333,106.219,-70.9377],[691.387,-1.10982,18.9,97.5103,-68.9848],[650.423,98.9256,17.7333,87.6845,-66.2919],[602.625,198.919,16.3833,76.4381,-62.2819],[542.505,299.545,14.7,62.9167,-55.2416],[451.142,399.833,12.1667,45.3489,-36.9493],[349.834,438.17,9.38333,36.5452,-0.12891]]], + [69,444.201,[[1087.45,-2001.19,32.5,201.819,-81.8352],[1073.06,-1902.12,32,198.484,-81.6334],[1058.09,-1801.55,31.4833,194.988,-81.416],[1042.99,-1702.84,30.9667,191.441,-81.1888],[1027.3,-1602.92,30.4333,187.726,-80.9433],[1010.98,-1502.01,29.8833,183.84,-80.6776],[994.042,-1400.35,29.3167,179.778,-80.3896],[976.971,-1301.07,28.75,175.658,-80.0858],[959.262,-1201.38,28.1667,171.356,-79.7552],[940.908,-1101.54,27.5667,166.869,-79.3945],[921.898,-1001.84,26.95,162.194,-78.9998],[902.223,-902.54,26.3167,157.326,-78.5665],[881.352,-801.473,25.65,152.133,-78.0765],[859.792,-701.611,24.9667,146.739,-77.5337],[837.004,-600.998,24.25,141.009,-76.9148],[812.968,-500.292,23.5,134.937,-76.205],[787.666,-400.196,22.7167,128.52,-75.3851],[761.081,-301.456,21.9,121.755,-74.4304],[732.1,-201.209,21.0167,114.367,-73.2608],[700.684,-101.112,20.0667,106.356,-71.8094],[666.238,-1.45123,19.0333,97.5943,-69.9444],[627.031,99.3481,17.8667,87.6939,-67.3696],[581.851,199.092,16.5333,76.4723,-63.5817],[525.461,299.345,14.8833,63.0041,-56.9922],[441.509,399.65,12.45,45.4438,-40.2892],[337.04,444.199,9.45,34.9699,-0.165386]]], + [70,450.003,[[1041.21,-2000.33,32.5833,201.837,-82.2037],[1027.47,-1901.16,32.0833,198.498,-82.0109],[1013.16,-1800.49,31.5667,194.998,-81.8032],[998.742,-1701.67,31.05,191.446,-81.5862],[983.746,-1601.65,30.5167,187.726,-81.3517],[968.162,-1500.63,29.9667,183.833,-81.0979],[952.458,-1401.81,29.4167,179.885,-80.831],[936.154,-1302.33,28.85,175.759,-80.5413],[919.242,-1202.45,28.2667,171.451,-80.2259],[901.712,-1102.41,27.6667,166.957,-79.8817],[883.557,-1002.49,27.05,162.273,-79.5051],[864.27,-900.4,26.4,157.267,-79.0804],[844.833,-801.676,25.75,152.192,-78.6241],[824.242,-701.573,25.0667,146.785,-78.1061],[802.478,-600.705,24.35,141.04,-77.5154],[780.034,-501.922,23.6167,135.086,-76.8534],[755.873,-401.431,22.8333,128.65,-76.0722],[729.967,-300.313,22,121.723,-75.1425],[702.813,-201.576,21.1333,114.444,-74.0471],[672.813,-100.986,20.1833,106.395,-72.6626],[639.919,-0.785199,19.15,97.583,-70.8821],[603.017,99.2682,18,87.7536,-68.46],[559.878,199.926,16.6667,76.4237,-64.8437],[507.128,299.529,15.05,63.0324,-58.6802],[429.741,399.735,12.7,45.4838,-43.3377],[323.928,450.001,9.51667,33.3834,-0.25262]]], + [71,455.571,[[994.313,-2000.27,32.6667,201.88,-82.576],[981.222,-1900.99,32.1667,198.538,-82.3925],[967.591,-1800.21,31.65,195.033,-82.1946],[953.856,-1701.27,31.1333,191.476,-81.9879],[939.569,-1601.13,30.6,187.751,-81.7646],[925.173,-1503.02,30.0667,183.973,-81.5304],[909.76,-1401.04,29.5,179.899,-81.2687],[894.227,-1301.44,28.9333,175.766,-80.9926],[878.115,-1201.42,28.35,171.451,-80.6921],[861.414,-1101.24,27.75,166.949,-80.3643],[844.116,-1001.18,27.1333,162.256,-80.0054],[826.214,-901.513,26.5,157.368,-79.6114],[807.224,-800.054,25.8333,152.152,-79.1657],[788.086,-702.188,25.1667,146.865,-78.6845],[767.355,-601.049,24.45,141.106,-78.1223],[745.976,-501.987,23.7167,135.137,-77.4923],[722.962,-401.194,22.9333,128.68,-76.7486],[698.78,-301.723,22.1167,121.869,-75.8821],[672.419,-200.676,21.2333,114.422,-74.8198],[644.345,-101.414,20.3,106.478,-73.5249],[613.017,-0.647305,19.2667,97.6181,-71.8311],[578.381,98.6691,18.1333,87.8652,-69.5616],[537.815,199.109,16.8167,76.5739,-66.1721],[488.104,299.213,15.2167,63.1333,-60.3857],[416.519,399.695,12.9333,45.5495,-46.2622],[309.972,455.57,9.56667,31.7871,-0.104383]]], + [72,460.896,[[946.779,-2001,32.75,201.947,-82.952],[934.343,-1901.61,32.25,198.602,-82.7778],[921.395,-1800.7,31.7333,195.093,-82.59],[908.347,-1701.65,31.2167,191.533,-82.3937],[894.776,-1601.37,30.6833,187.804,-82.1817],[880.672,-1500.1,30.1333,183.901,-81.9523],[866.459,-1401.02,29.5833,179.941,-81.7109],[851.704,-1301.27,29.0167,175.802,-81.4487],[836.398,-1201.11,28.4333,171.48,-81.1634],[820.533,-1100.78,27.8333,166.97,-80.8521],[804.101,-1000.56,27.2167,162.269,-80.5113],[787.095,-900.73,26.5833,157.372,-80.137],[769.508,-801.596,25.9333,152.276,-79.7246],[750.876,-701.059,25.25,146.846,-79.2564],[731.642,-602.04,24.55,141.207,-78.7351],[710.873,-500.476,23.8,135.086,-78.1233],[689.478,-401.57,23.0333,128.749,-77.4321],[666.511,-301.762,22.2167,121.916,-76.6098],[641.473,-200.349,21.3333,114.441,-75.6014],[614.809,-100.696,20.4,106.463,-74.3716],[585.535,-1.04869,19.3833,97.7008,-72.79],[552.643,98.9227,18.25,87.8853,-70.6371],[514.607,198.951,16.95,76.6416,-67.4629],[467.897,299.316,15.3667,63.1693,-62.0346],[401.921,399.596,13.15,45.6267,-49.0677],[296.259,460.894,9.63333,30.1797,-0.304032]]], + [73,465.973,[[898.616,-2002.56,32.8333,202.039,-83.3315],[886.842,-1903.04,32.3333,198.691,-83.1667],[874.582,-1802,31.8167,195.18,-82.989],[862.227,-1702.81,31.3,191.616,-82.8034],[849.377,-1602.4,30.7667,187.883,-82.6028],[836.023,-1500.98,30.2167,183.976,-82.3857],[822.565,-1401.75,29.6667,180.012,-82.1573],[808.594,-1301.86,29.1,175.868,-81.9093],[794.101,-1201.53,28.5167,171.54,-81.6393],[779.08,-1101.04,27.9167,167.023,-81.3447],[763.521,-1000.65,27.3,162.314,-81.0222],[747.419,-900.645,26.6667,157.409,-80.6681],[730.766,-801.329,26.0167,152.303,-80.2777],[713.123,-700.599,25.3333,146.861,-79.8345],[694.911,-601.38,24.6333,141.21,-79.341],[675.685,-501.811,23.9,135.21,-78.7751],[654.988,-400.472,23.1167,128.717,-78.1069],[633.241,-300.426,22.3,121.863,-77.3278],[609.982,-200.609,21.4333,114.503,-76.3911],[584.739,-100.541,20.5,106.492,-75.2277],[557.024,-0.439718,19.4833,97.6873,-73.7307],[526.344,98.6505,18.3667,87.9577,-71.724],[490.338,199.47,17.0667,76.6242,-68.7211],[446.588,299.865,15.5,63.136,-63.634],[386.025,399.493,13.35,45.7029,-51.7608],[281.76,465.971,9.68333,28.5628,-0.255416]]], + [74,470.796,[[849.472,-2001.59,32.9,202.045,-83.709],[838.361,-1901.99,32.4,198.693,-83.5535],[826.792,-1800.87,31.8833,195.178,-83.3858],[815.134,-1701.6,31.3667,191.61,-83.2107],[803.007,-1601.1,30.8333,187.872,-83.0213],[790.789,-1502.63,30.3,184.079,-82.8228],[777.706,-1400.27,29.7333,179.99,-82.6009],[764.523,-1300.28,29.1667,175.84,-82.3668],[751.239,-1202.7,28.6,171.629,-82.1194],[737.066,-1102.03,28,167.107,-81.8417],[722.388,-1001.45,27.3833,162.391,-81.5378],[707.196,-901.263,26.75,157.478,-81.2039],[691.485,-801.751,26.1,152.364,-80.836],[674.84,-700.812,25.4167,146.911,-80.4181],[657.657,-601.378,24.7167,141.248,-79.9528],[639.518,-501.582,23.9833,135.235,-79.4192],[620.408,-402.105,23.2167,128.864,-78.803],[599.894,-301.684,22.4,121.991,-78.0697],[577.954,-201.464,21.5333,114.608,-77.1879],[554.14,-100.96,20.6,106.567,-76.0922],[527.997,-0.377978,19.5833,97.7219,-74.6814],[499.054,99.2444,18.4667,87.9371,-72.7887],[465.526,199.488,17.1833,76.6652,-69.9935],[424.7,299.931,15.6333,63.1723,-65.2525],[368.914,399.441,13.5333,45.7665,-54.3493],[267.008,470.794,9.73333,26.9364,-0.261513]]], + [75,475.357,[[799.772,-2001.44,32.9667,202.077,-84.09],[789.33,-1901.76,32.4667,198.722,-83.9439],[778.457,-1800.55,31.95,195.203,-83.7863],[767.501,-1701.19,31.4333,191.631,-83.6218],[756.105,-1600.59,30.9,187.889,-83.4439],[744.621,-1502.03,30.3667,184.092,-83.2573],[732.689,-1402.55,29.8167,180.119,-83.0551],[720.302,-1302.38,29.25,175.965,-82.8355],[707.452,-1201.78,28.6667,171.625,-82.5964],[694.133,-1101,28.0667,167.096,-82.3354],[680.338,-1000.31,27.45,162.373,-82.0496],[666.06,-900,26.8167,157.451,-81.7358],[651.295,-800.364,26.1667,152.327,-81.3898],[636.035,-701.714,25.5,146.998,-81.0069],[619.889,-602.05,24.8,141.324,-80.5702],[602.845,-502.009,24.0667,135.297,-80.0692],[584.497,-400.161,23.2833,128.772,-79.4775],[565.612,-301.576,22.4833,122.02,-78.8021],[544.996,-201.059,21.6167,114.613,-77.9737],[522.621,-100.233,20.6833,106.543,-76.944],[498.459,-0.876903,19.6833,97.8059,-75.6411],[471.267,99.3068,18.5667,87.9693,-73.8651],[440.177,198.989,17.3,76.7661,-71.2776],[402.238,299.498,15.7667,63.2805,-66.8857],[350.669,399.483,13.7,45.8075,-56.8423],[252.008,475.355,9.78333,25.301,-0.33359]]], + [76,479.653,[[749.533,-2002.14,33.0333,202.133,-84.4742],[739.765,-1902.36,32.5333,198.776,-84.3376],[729.594,-1801.05,32.0167,195.254,-84.1903],[719.344,-1701.59,31.5,191.679,-84.0364],[708.684,-1600.88,30.9667,187.934,-83.87],[697.941,-1502.21,30.4333,184.133,-83.6956],[686.779,-1402.62,29.8833,180.156,-83.5065],[675.191,-1302.34,29.3167,175.997,-83.3011],[663.17,-1201.62,28.7333,171.652,-83.0775],[650.71,-1100.72,28.1333,167.117,-82.8334],[638.155,-1002.59,27.5333,162.515,-82.5737],[624.801,-902.057,26.9,157.588,-82.2807],[610.991,-802.196,26.25,152.457,-81.9576],[596.36,-700.888,25.5667,146.986,-81.5908],[581.257,-601.072,24.8667,141.3,-81.1821],[565.312,-500.872,24.1333,135.261,-80.7133],[548.514,-400.97,23.3667,128.859,-80.1717],[530.482,-300.093,22.55,121.949,-79.5269],[511.568,-201.26,21.7,114.663,-78.7668],[490.64,-100.088,20.7667,106.566,-77.8044],[468.04,-0.358547,19.7667,97.7931,-76.5858],[442.988,98.8277,18.6667,88.0554,-74.9509],[413.912,199.186,17.4,76.7798,-72.5339],[378.817,299.538,15.8833,63.315,-68.4749],[331.373,399.663,13.85,45.8169,-59.2491],[236.368,479.653,9.81667,23.6569,-0.0899633]]], + [77,483.677,[[698.469,-2000.33,33.0833,202.105,-84.8571],[689.377,-1900.5,32.5833,198.743,-84.7299],[680.217,-1802.38,32.0833,195.332,-84.5973],[670.679,-1702.8,31.5667,191.755,-84.4542],[660.759,-1601.99,31.0333,188.007,-84.2995],[650.449,-1500.15,30.4833,184.083,-84.1321],[640.06,-1400.5,29.9333,180.101,-83.9561],[629.274,-1300.17,29.3667,175.936,-83.7647],[618.406,-1202.23,28.8,171.71,-83.5626],[606.812,-1101.19,28.2,167.17,-83.3356],[594.803,-1000.23,27.5833,162.434,-83.0871],[582.703,-902.243,26.9667,157.628,-82.8215],[569.851,-802.23,26.3167,152.49,-82.521],[556.236,-700.76,25.6333,147.01,-82.1798],[542.182,-600.778,24.9333,141.314,-81.7996],[527.344,-500.402,24.2,135.263,-81.3634],[511.713,-400.314,23.4333,128.847,-80.8594],[495.276,-301.242,22.6333,122.062,-80.2721],[477.333,-200.196,21.7667,114.613,-79.5514],[458.206,-100.536,20.85,106.635,-78.672],[437.179,-0.407939,19.85,97.8301,-77.5394],[413.869,99.2207,18.75,88.0476,-76.0187],[387.173,198.862,17.5,76.8538,-73.8016],[354.883,299.078,16,63.4211,-70.0772],[311.474,399.342,14,45.9279,-61.6766],[220.908,483.675,9.86667,22.0045,-0.311078]]], + [78,487.423,[[647.225,-2002.73,33.15,202.213,-85.247],[638.816,-1902.79,32.65,198.851,-85.1295],[630.061,-1801.3,32.1333,195.323,-85.0028],[621.238,-1701.67,31.6167,191.743,-84.8705],[612.06,-1600.79,31.0833,187.991,-84.7273],[602.813,-1501.94,30.55,184.183,-84.5773],[593.204,-1402.16,30,180.197,-84.4146],[583.229,-1301.69,29.4333,176.029,-84.2379],[572.881,-1200.76,28.85,171.675,-84.0454],[562.454,-1102.42,28.2667,167.255,-83.8414],[551.347,-1001.31,27.65,162.514,-83.6117],[539.851,-900.556,27.0167,157.573,-83.3594],[527.962,-800.463,26.3667,152.426,-83.0813],[515.676,-701.34,25.7,147.071,-82.7733],[502.676,-601.175,25,141.366,-82.422],[488.953,-500.606,24.2667,135.304,-82.0188],[474.495,-400.315,23.5,128.876,-81.5529],[459.293,-301.029,22.7,122.075,-81.0099],[443.017,-201.633,21.85,114.752,-80.357],[425.329,-101.588,20.9333,106.752,-79.5457],[405.884,-1.03537,19.9333,97.9179,-78.5003],[384.327,99.0647,18.8333,88.0944,-77.096],[359.638,199.247,17.5833,76.839,-75.0464],[330.109,299.112,16.1,63.4504,-71.6419],[290.304,399.886,14.1167,45.8545,-63.9343],[204.872,487.422,9.9,20.3443,-0.190731]]], + [79,490.888,[[595.232,-2002.63,33.2,202.236,-85.6357],[587.509,-1902.62,32.7,198.872,-85.5278],[579.467,-1801.07,32.1833,195.342,-85.4114],[571.363,-1701.36,31.6667,191.758,-85.2899],[562.934,-1600.41,31.1333,188.003,-85.1585],[554.44,-1501.49,30.6,184.191,-85.0206],[545.614,-1401.64,30.05,180.202,-84.8712],[536.451,-1301.08,29.4833,176.03,-84.7089],[526.947,-1200.08,28.9,171.671,-84.5321],[517.369,-1101.65,28.3167,167.246,-84.3447],[507.168,-1000.45,27.7,162.499,-84.1337],[496.888,-902.218,27.0833,157.682,-83.9083],[485.971,-801.945,26.4333,152.53,-83.6532],[474.405,-700.199,25.75,147.034,-83.3634],[462.75,-602.271,25.0667,141.457,-83.0485],[450.147,-501.491,24.3333,135.385,-82.6788],[436.87,-400.978,23.5667,128.946,-82.2514],[422.91,-301.458,22.7667,122.132,-81.7532],[407.963,-201.812,21.9167,114.793,-81.1541],[391.719,-101.495,21,106.771,-80.4094],[373.861,-0.641726,20,97.9086,-79.4496],[354.065,99.7908,18.9,88.0464,-78.1591],[331.696,199.108,17.6667,76.8849,-76.3022],[304.581,299.661,16.1833,63.3999,-73.1757],[268.647,399.963,14.2333,45.8755,-66.2191],[188.659,490.888,9.93333,18.6768,-0.13928]]], + [80,494.068,[[542.582,-2000.03,33.2333,202.175,-86.0237],[535.546,-1900,32.7333,198.806,-85.9254],[528.457,-1801.68,32.2333,195.387,-85.8228],[521.077,-1701.9,31.7167,191.802,-85.7122],[513.4,-1600.86,31.1833,188.044,-85.5925],[505.664,-1501.85,30.65,184.23,-85.467],[497.627,-1401.91,30.1,180.238,-85.331],[489.282,-1301.27,29.5333,176.062,-85.1832],[480.625,-1200.17,28.95,171.699,-85.0223],[471.903,-1101.65,28.3667,167.27,-84.8516],[462.612,-1000.35,27.75,162.519,-84.6596],[453.25,-902.014,27.1333,157.696,-84.4543],[443.307,-801.632,26.4833,152.538,-84.222],[433.031,-702.211,25.8167,147.169,-83.9648],[422.159,-601.729,25.1167,141.449,-83.6713],[410.681,-500.824,24.3833,135.368,-83.3344],[398.589,-400.179,23.6167,128.917,-82.945],[385.874,-300.521,22.8167,122.09,-82.4911],[372.261,-200.727,21.9667,114.733,-81.9451],[357.468,-100.249,21.05,106.691,-81.266],[341.477,-0.830692,20.0667,97.9507,-80.4061],[323.449,99.9634,18.9667,88.0536,-79.2317],[303.079,199.689,17.7333,76.8405,-77.54],[278.667,299.717,16.2667,63.4198,-74.7245],[246.509,399.561,14.35,45.9934,-68.52],[172.273,494.067,9.96667,17.0025,-0.177507]]], + [81,496.957,[[489.782,-2001.67,33.2833,202.251,-86.4174],[483.44,-1901.56,32.7833,198.881,-86.3289],[477.049,-1803.15,32.2833,195.461,-86.2365],[470.181,-1700.09,31.75,191.757,-86.1335],[463.476,-1602.15,31.2333,188.115,-86.029],[456.502,-1503.05,30.7,184.299,-85.916],[449.036,-1400.01,30.1333,180.182,-85.7896],[441.734,-1302.26,29.5833,176.126,-85.6603],[433.931,-1201.06,29,171.76,-85.5154],[426.068,-1102.43,28.4167,167.328,-85.3616],[417.692,-1001.01,27.8,162.572,-85.1887],[409.253,-902.566,27.1833,157.745,-85.0037],[400.289,-802.062,26.5333,152.582,-84.7944],[390.793,-700.07,25.85,147.072,-84.5567],[381.225,-601.896,25.1667,141.48,-84.2982],[370.878,-500.849,24.4333,135.391,-83.9947],[359.977,-400.054,23.6667,128.931,-83.6438],[348.515,-300.238,22.8667,122.091,-83.2346],[336.243,-200.275,22.0167,114.72,-82.7423],[323.151,-101.377,21.1167,106.807,-82.1419],[308.737,-1.61213,20.1333,98.0449,-81.3684],[292.487,99.5729,19.0333,88.1168,-80.3116],[274.127,199.741,17.8,76.8576,-78.7882],[252.373,299.271,16.35,63.5118,-76.2838],[223.642,399.393,14.45,46.0584,-70.7585],[155.718,496.956,10,15.3219,-0.335719]]], + [82,499.552,[[436.409,-2000.82,33.3167,202.242,-86.8106],[430.762,-1900.67,32.8167,198.87,-86.7316],[425.073,-1802.23,32.3167,195.448,-86.6493],[419.149,-1702.32,31.8,191.858,-86.5607],[412.987,-1601.15,31.2667,188.096,-86.4647],[406.779,-1502.01,30.7333,184.277,-86.364],[400.327,-1401.93,30.1833,180.279,-86.2549],[393.63,-1301.14,29.6167,176.098,-86.1363],[386.881,-1202.74,29.05,171.853,-86.0109],[379.681,-1101.21,28.45,167.291,-85.8702],[372.426,-1002.45,27.85,162.66,-85.7204],[364.709,-901.254,27.2167,157.699,-85.5514],[356.729,-800.699,26.5667,152.529,-85.365],[348.481,-701.099,25.9,147.148,-85.1584],[339.755,-600.427,25.2,141.413,-84.9228],[330.752,-501.57,24.4833,135.455,-84.6587],[321.049,-400.607,23.7167,128.986,-84.3466],[310.845,-300.613,22.9167,122.137,-83.9827],[299.921,-200.46,22.0667,114.754,-83.5447],[288.266,-101.359,21.1667,106.825,-83.0104],[275.434,-1.37043,20.1833,98.042,-82.322],[261.189,98.6129,19.1,88.2368,-81.3968],[244.846,199.257,17.8667,76.937,-80.0441],[225.483,299.352,16.4167,63.522,-77.8176],[200.134,399.486,14.5333,46.0656,-72.946],[139,499.549,10.0333,13.6359,-0.659043]]], + [83,501.85,[[382.718,-2000.85,33.35,202.26,-87.2058],[377.77,-1900.66,32.85,198.887,-87.1367],[372.785,-1802.17,32.35,195.463,-87.0646],[367.594,-1702.21,31.8333,191.872,-86.9868],[362.194,-1600.99,31.3,188.107,-86.9027],[356.754,-1501.8,30.7667,184.286,-86.8145],[351.101,-1401.67,30.2167,180.286,-86.7189],[345.232,-1300.82,29.65,176.101,-86.615],[339.318,-1202.37,29.0833,171.854,-86.5052],[333.009,-1100.78,28.4833,167.288,-86.3819],[326.652,-1001.96,27.8833,162.654,-86.2506],[319.89,-900.703,27.25,157.688,-86.1025],[312.897,-800.083,26.6,152.514,-85.939],[305.669,-700.415,25.9333,147.127,-85.758],[298.206,-602.024,25.25,141.523,-85.5567],[290.135,-500.744,24.5167,135.42,-85.32],[281.817,-401.845,23.7667,129.085,-85.0527],[272.877,-301.655,22.9667,122.227,-84.7342],[263.306,-201.29,22.1167,114.834,-84.351],[252.905,-100.191,21.2,106.744,-83.8743],[241.661,-0.100597,20.2167,97.9414,-83.2699],[229.179,99.9949,19.1333,88.1099,-82.4572],[215.053,199.499,17.9167,76.9256,-81.2862],[198.088,299.971,16.4667,63.4489,-79.3331],[176.077,399.857,14.6,46.0112,-75.0942],[129.089,499.981,10.65,13.3474,-26.5827],[121.925,501.849,10.05,11.9436,-0.434312]]], + [84,503.848,[[328.732,-2001.77,33.3833,202.306,-87.6027],[324.486,-1901.52,32.8833,198.932,-87.5435],[320.207,-1802.98,32.3833,195.507,-87.4817],[315.752,-1702.96,31.8667,191.914,-87.4149],[311.119,-1601.68,31.3333,188.148,-87.3429],[306.45,-1502.43,30.8,184.326,-87.2671],[301.598,-1402.23,30.25,180.324,-87.1851],[296.561,-1301.32,29.6833,176.137,-87.096],[291.486,-1202.81,29.1167,171.888,-87.0019],[286.071,-1101.15,28.5167,167.32,-86.8961],[280.615,-1002.26,27.9167,162.682,-86.7834],[274.812,-900.918,27.2833,157.713,-86.6563],[268.81,-800.219,26.6333,152.535,-86.516],[262.608,-700.469,25.9667,147.144,-86.3608],[256.202,-601.994,25.2833,141.536,-86.1879],[249.275,-500.621,24.55,135.426,-85.9849],[242.137,-401.627,23.8,129.084,-85.7554],[234.465,-301.335,23,122.219,-85.4822],[226.251,-200.862,22.15,114.815,-85.1532],[217.488,-101.418,21.25,106.861,-84.7519],[207.839,-1.05277,20.2667,98.0439,-84.2345],[197.128,99.3491,19.1833,88.192,-83.5384],[185.007,199.201,17.9667,76.9771,-82.5352],[170.616,299.044,16.5333,63.6037,-80.8837],[151.729,399.77,14.6667,46.0489,-77.2592],[113.801,499.902,10.95,13.4448,-40.3991],[104.753,503.847,10.0667,10.2468,-0.304986]]], + [85,505.544,[[274.355,-2000.21,33.4,202.266,-87.9996],[270.93,-1903.27,32.9167,199.004,-87.9517],[267.242,-1801.4,32.4,195.463,-87.8986],[263.525,-1701.37,31.8833,191.868,-87.8429],[259.659,-1600.09,31.35,188.101,-87.7826],[255.763,-1500.83,30.8167,184.275,-87.7195],[251.715,-1400.63,30.2667,180.271,-87.6509],[247.636,-1302.64,29.7167,176.206,-87.5788],[243.278,-1201.19,29.1333,171.829,-87.4979],[238.886,-1102.31,28.55,167.385,-87.4121],[234.207,-1000.62,27.9333,162.616,-87.3155],[229.493,-901.902,27.3167,157.775,-87.2123],[224.487,-801.109,26.6667,152.594,-87.0954],[219.313,-701.262,26,147.2,-86.9659],[213.838,-600.33,25.3,141.45,-86.8183],[208.191,-501.204,24.5833,135.475,-86.6526],[202.236,-402.098,23.8333,129.128,-86.4613],[195.836,-301.684,23.0333,122.256,-86.2335],[188.984,-201.081,22.1833,114.844,-85.9593],[181.673,-101.498,21.2833,106.88,-85.6246],[173.624,-0.979127,20.3,98.0493,-85.193],[164.689,99.593,19.2167,88.179,-84.6124],[154.577,199.637,18,76.937,-83.7749],[142.573,299.709,16.5667,63.5185,-82.3947],[126.958,399.978,14.7167,46.022,-79.3931],[96.6018,499.826,11.15,13.5371,-50.894],[87.4899,505.543,10.0833,8.54592,-0.327361]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 173.624; +_maxRange = 998.517; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg1.sqf new file mode 100644 index 0000000000..1dc71f8b37 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg1.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_120mm_dm11a5_dm111a1_pd_chg1 +// Ammo: ace_arty_120mm_dm11a5_dm111a1_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,660.133,[[3575.7,-2002.72,35.75,219.589,-68.571],[3535.43,-1901.29,35.25,216.837,-68.0956],[3494.82,-1801.49,34.75,214.054,-67.6039],[3452.51,-1700.09,34.2333,211.148,-67.0779],[3409.85,-1600.48,33.7167,208.212,-66.5325],[3366.85,-1502.68,33.2,205.247,-65.9669],[3320.68,-1400.6,32.65,202.062,-65.3413],[3274.13,-1300.63,32.1,198.847,-64.6902],[3227.18,-1202.81,31.55,195.606,-64.0119],[3176.98,-1101.44,30.9667,192.142,-63.2612],[3126.34,-1002.55,30.3833,188.653,-62.4761],[3072.35,-900.764,29.7667,184.942,-61.6064],[3017.89,-801.835,29.15,181.211,-60.6932],[2959.98,-700.703,28.5,177.263,-59.6801],[2900.07,-600.38,27.8333,173.202,-58.5833],[2838.1,-501.177,27.15,169.035,-57.394],[2772.53,-401.139,26.4333,164.671,-56.0701],[2703.28,-300.906,25.6833,160.12,-54.594],[2630.28,-201.156,24.9,155.4,-52.945],[2551.87,-100.662,24.0667,150.435,-51.0599],[2467.95,-0.56442,23.1833,145.263,-48.9012],[2376.77,99.5954,22.2333,139.839,-46.3781],[2276.55,199.588,21.2,134.156,-43.3747],[2163.77,299.73,20.05,128.174,-39.6865],[2033.09,399.743,18.7333,121.895,-34.9813],[1872.14,499.881,17.1333,115.328,-28.5346],[1643.7,599.662,14.9,108.718,-18.2428],[1275.39,660.132,11.3833,106.229,-0.0175163]]], + [46,682.501,[[3541.2,-2001.1,36.0333,219.753,-68.9907],[3502.98,-1902.67,35.55,217.082,-68.5403],[3463.11,-1802.45,35.05,214.289,-68.0586],[3421.57,-1700.6,34.5333,211.371,-67.5433],[3379.69,-1600.54,34.0167,208.422,-67.009],[3337.46,-1502.29,33.5,205.444,-66.4548],[3293.52,-1402.8,32.9667,202.34,-65.8606],[3247.82,-1302.27,32.4167,199.11,-65.2232],[3200.34,-1200.93,31.85,195.752,-64.5386],[3152.46,-1101.91,31.2833,192.367,-63.8239],[3102.75,-1002.41,30.7,188.856,-63.055],[3051.19,-902.701,30.1,185.22,-62.2267],[2996.3,-800.382,29.4667,181.36,-61.3082],[2940.92,-701.12,28.8333,177.482,-60.3414],[2883.59,-602.47,28.1833,173.488,-59.2951],[2822.79,-502.335,27.5,169.282,-58.1316],[2758.45,-401.31,26.7833,164.871,-56.8361],[2690.5,-300.033,26.0333,160.267,-55.3909],[2620.4,-201.275,25.2667,155.587,-53.8108],[2545.02,-101.46,24.45,150.648,-52.0033],[2464.26,-1.70016,23.5833,145.485,-49.9321],[2376.42,98.5249,22.65,140.046,-47.5086],[2279.74,199.061,21.6333,134.313,-44.6191],[2172.39,298.945,20.5167,128.318,-41.117],[2047.58,399.891,19.2333,121.936,-36.6299],[1898.15,499.779,17.7167,115.301,-30.6471],[1696.38,599.436,15.7,108.484,-21.5458],[1274.09,682.499,11.5833,104.27,-0.0717994]]], + [47,704.826,[[3504.71,-2000.32,36.3167,219.94,-69.4166],[3467.19,-1901.53,35.8333,217.26,-68.9753],[3428.06,-1800.92,35.3333,214.456,-68.5033],[3388.62,-1701.94,34.8333,211.621,-68.0149],[3347.52,-1601.42,34.3167,208.66,-67.4918],[3306.09,-1502.7,33.8,205.669,-66.9492],[3262.96,-1402.72,33.2667,202.55,-66.3675],[3218.12,-1301.69,32.7167,199.303,-65.7432],[3172.91,-1202.79,32.1667,196.027,-65.0928],[3124.55,-1100.27,31.5833,192.522,-64.3727],[3075.78,-1000.22,31,188.988,-63.6193],[3026.59,-902.681,30.4167,185.43,-62.8306],[2974.16,-802.342,29.8,181.645,-61.9558],[2919.84,-702.299,29.1667,177.737,-61.0103],[2862.17,-600.334,28.5,173.607,-59.9598],[2803.98,-501.848,27.8333,169.465,-58.8483],[2742.35,-402.237,27.1333,165.113,-57.6104],[2677.2,-302.121,26.4,160.56,-56.2293],[2606.96,-200.04,25.6167,155.718,-54.6505],[2534.56,-101.049,24.8167,150.811,-52.9176],[2456.9,-1.78464,23.9667,145.663,-50.9306],[2372.33,98.333,23.05,140.218,-48.6032],[2279.13,199.222,22.05,134.448,-45.824],[2177.08,298.558,20.9667,128.461,-42.502],[2059.59,398.839,19.7333,122.083,-38.2886],[1919.74,499.006,18.2833,115.365,-32.7003],[1735.44,599.997,16.4,108.3,-24.3829],[1370.13,699.918,12.75,101.988,-5.46045],[1269.92,704.824,11.7667,102.301,-0.0552121]]], + [48,727.081,[[3466.21,-2000.42,36.6,220.153,-69.8486],[3429.41,-1901.24,36.1167,217.463,-69.4166],[3391.03,-1800.24,35.6167,214.648,-68.9546],[3352.34,-1700.87,35.1167,211.802,-68.4763],[3313.33,-1603.16,34.6167,208.925,-67.9809],[3271.39,-1500.79,34.0833,205.824,-67.4327],[3229.09,-1400.37,33.55,202.69,-66.8629],[3186.45,-1301.93,33.0167,199.526,-66.2703],[3142.11,-1202.5,32.4667,196.232,-65.6339],[3096.04,-1102.33,31.9,192.808,-64.9497],[3048.22,-1001.64,31.3167,189.255,-64.2132],[2998.62,-900.692,30.7167,185.571,-63.4194],[2948.59,-802.432,30.1167,181.863,-62.5864],[2895.34,-701.674,29.4833,177.925,-61.6615],[2840.21,-601.474,28.8333,173.865,-60.6599],[2783.17,-502.133,28.1667,169.687,-59.5735],[2722.75,-401.615,27.4667,165.292,-58.3629],[2658.89,-300.539,26.7333,160.69,-57.0116],[2592.98,-201.708,25.9833,155.998,-55.5339],[2522.03,-101.427,25.1833,151.023,-53.8413],[2445.93,-0.777069,24.3333,145.795,-51.8987],[2364.57,99.0672,23.4333,140.351,-49.6638],[2276.32,198.484,22.4667,134.65,-47.0386],[2177.92,298.637,21.4,128.594,-43.8436],[2065.99,399.147,20.2,122.168,-39.8369],[1933.83,499.868,18.8,115.354,-34.5599],[1767.95,599.465,17.0667,108.268,-27.0759],[1498.28,699.736,14.3,101.167,-13.1062],[1264.66,727.079,11.95,100.308,-0.0570766]]], + [49,749.239,[[3425.68,-2001.42,36.8833,220.391,-70.2866],[3389.61,-1901.86,36.4,217.692,-69.8641],[3351.99,-1800.45,35.9,214.867,-69.4121],[3314.07,-1700.67,35.4,212.01,-68.9442],[3275.83,-1602.55,34.9,209.122,-68.4595],[3236.01,-1502.92,34.3833,206.105,-67.9402],[3194.56,-1401.99,33.85,202.958,-67.3833],[3152.77,-1303.03,33.3167,199.778,-66.8041],[3107.99,-1200.07,32.75,196.368,-66.1626],[3064.17,-1102.33,32.2,193.026,-65.5129],[3017.31,-1001.07,31.6167,189.452,-64.7927],[2970.05,-902.296,31.0333,185.848,-64.0384],[2919.67,-800.64,30.4167,182.011,-63.2014],[2868.85,-701.861,29.8,178.15,-62.3207],[2814.84,-600.904,29.15,174.058,-61.3417],[2758.95,-500.777,28.4833,169.843,-60.2792],[2701.16,-401.795,27.8,165.513,-59.124],[2640.02,-302.011,27.0833,160.969,-57.8343],[2575.47,-202.066,26.3333,156.221,-56.3916],[2505.97,-100.583,25.5333,151.182,-54.7378],[2432.9,-0.584851,24.7,145.979,-52.8769],[2354.71,98.9531,23.8167,140.543,-50.7346],[2269.79,198.471,22.8667,134.824,-48.2154],[2174.97,299.242,21.8167,128.711,-45.1435],[2068.46,399.674,20.65,122.261,-41.3377],[1945.33,499.349,19.3167,115.472,-36.431],[1792.53,599.123,17.6833,108.282,-29.548],[1565.89,699.771,15.3,100.816,-17.8015],[1258.29,749.237,12.1333,98.2924,-0.0788074]]], + [50,771.276,[[3383.13,-2003.37,37.1667,220.654,-70.7303],[3347.8,-1903.42,36.6833,217.947,-70.3174],[3310.95,-1801.59,36.1833,215.113,-69.8757],[3273.79,-1701.39,35.6833,212.246,-69.4184],[3236.34,-1602.84,35.1833,209.346,-68.9447],[3197.33,-1502.77,34.6667,206.317,-68.437],[3156.73,-1401.38,34.1333,203.156,-67.8926],[3115.79,-1301.95,33.6,199.962,-67.3263],[3073.22,-1201.51,33.05,196.635,-66.7179],[3029,-1100.27,32.4833,193.174,-66.0636],[2984.41,-1001.35,31.9167,189.682,-65.3797],[2938.13,-901.979,31.3333,186.057,-64.6427],[2890.12,-802.408,30.7333,182.299,-63.8473],[2839.02,-700.253,30.1,178.305,-62.9637],[2787.47,-601.17,29.4667,174.288,-62.0316],[2732.75,-500.241,28.8,170.039,-60.9938],[2676.17,-400.429,28.1167,165.669,-59.865],[2617.7,-302.059,27.4167,161.186,-58.6345],[2554.49,-201.082,26.6667,156.386,-57.2254],[2487.88,-100.571,25.8833,151.39,-55.6441],[2417.79,-1.25337,25.0667,146.218,-53.8644],[2341.26,99.7889,24.1833,140.692,-51.7735],[2259.62,199.234,23.25,134.965,-49.3566],[2169.79,298.873,22.2333,128.905,-46.4541],[2068.6,399.106,21.1,122.446,-42.8492],[1951.22,499.781,19.8,115.551,-38.1822],[1809.5,599.521,18.25,108.29,-31.8056],[1613.06,699.427,16.1333,100.668,-21.628],[1249.2,771.276,12.3,96.265,-0.0245947]]], + [51,793.168,[[3337.34,-2002.84,37.4333,220.852,-71.1658],[3302.74,-1902.53,36.95,218.135,-70.7623],[3266.66,-1800.33,36.45,215.291,-70.3305],[3231.51,-1703.08,35.9667,212.51,-69.8986],[3193.62,-1600.82,35.45,209.502,-69.4204],[3155.42,-1500.36,34.9333,206.46,-68.924],[3116.91,-1401.7,34.4167,203.385,-68.4086],[3076.84,-1301.8,33.8833,200.176,-67.8555],[3035.17,-1200.85,33.3333,196.833,-67.2612],[2993.16,-1102.06,32.7833,193.457,-66.6411],[2949.52,-1002.54,32.2167,189.946,-65.9737],[2904.22,-902.555,31.6333,186.3,-65.2543],[2857.24,-802.343,31.0333,182.519,-64.4778],[2808.54,-702.173,30.4167,178.605,-63.6384],[2758.11,-602.319,29.7833,174.558,-62.7292],[2704.56,-500.57,29.1167,170.275,-61.7167],[2650.55,-402.32,28.45,165.974,-60.6427],[2591.98,-300.661,27.7333,161.34,-59.4135],[2531.51,-200.948,27,156.597,-58.0686],[2467.73,-101.436,26.2333,151.648,-56.5592],[2399.17,-0.834302,25.4167,146.406,-54.8236],[2325.73,99.74,24.55,140.899,-52.8226],[2247.32,199.08,23.6333,135.17,-50.5082],[2160.93,299.073,22.6333,129.075,-47.7246],[2064.92,398.815,21.5333,122.63,-44.3142],[1954.62,498.916,20.2833,115.746,-39.9434],[1822.15,599.129,18.8,108.396,-34.0005],[1645.56,699.666,16.85,100.58,-24.8611],[1240.62,793.165,12.4833,94.2031,-0.0884861]]], + [52,814.89,[[3289.55,-2003.31,37.7,221.075,-71.6075],[3255.71,-1902.63,37.2167,218.351,-71.2134],[3220.41,-1800.04,36.7167,215.497,-70.7918],[3186.01,-1702.42,36.2333,212.706,-70.3701],[3150.14,-1603.05,35.7333,209.785,-69.9184],[3112.78,-1502.11,35.2167,206.731,-69.4342],[3075.11,-1402.99,34.7,203.644,-68.9313],[3035.91,-1302.59,34.1667,200.422,-68.3916],[2995.15,-1201.14,33.6167,197.063,-67.8116],[2954.06,-1101.82,33.0667,193.67,-67.2065],[2911.37,-1001.77,32.5,190.141,-66.555],[2867.06,-901.223,31.9167,186.474,-65.8527],[2821.1,-800.431,31.3167,182.67,-65.0945],[2774.76,-702.343,30.7167,178.835,-64.2973],[2725.43,-601.783,30.0833,174.76,-63.4103],[2674.38,-501.804,29.4333,170.552,-62.4476],[2620.24,-400.275,28.75,166.107,-61.3737],[2564.29,-300.129,28.05,161.538,-60.202],[2506.52,-201.706,27.3333,156.855,-58.9206],[2444.16,-101.085,26.5667,151.85,-57.4493],[2378.51,-1.31269,25.7667,146.648,-55.7923],[2308.11,98.7627,24.9167,141.166,-53.8809],[2231.47,199.732,24,135.336,-51.626],[2148.45,299.898,23.0167,129.218,-48.9574],[2057.48,398.872,21.95,122.805,-45.7347],[1952.62,499.271,20.7333,115.875,-41.5904],[1829.11,599.131,19.3167,108.505,-36.0619],[1668.61,699.895,17.5,100.564,-27.7686],[1388.09,799.865,14.3833,92.5981,-10.5892],[1229.37,814.888,12.65,92.1295,-0.0753711]]], + [53,836.416,[[3238.62,-2001.32,37.95,221.232,-72.0418],[3205.52,-1900.31,37.4667,218.499,-71.657],[3172.16,-1800.79,36.9833,215.731,-71.2593],[3138.53,-1702.78,36.5,212.931,-70.8478],[3103.47,-1603.01,36,209.999,-70.4071],[3066.94,-1501.65,35.4833,206.934,-69.9347],[3030.11,-1402.11,34.9667,203.834,-69.4441],[2991.79,-1301.27,34.4333,200.598,-68.9174],[2953.16,-1202.4,33.9,197.327,-68.3688],[2912.99,-1102.56,33.35,193.918,-67.7789],[2871.26,-1001.96,32.7833,190.371,-67.1437],[2827.95,-900.834,32.2,186.684,-66.4589],[2784.29,-802.225,31.6167,182.963,-65.7404],[2737.74,-700.754,31,178.998,-64.9416],[2690.8,-602.176,30.3833,175.002,-64.0995],[2640.9,-501.447,29.7333,170.763,-63.1612],[2589.29,-401.574,29.0667,166.391,-62.1403],[2534.63,-300.512,28.3667,161.782,-60.9991],[2478.17,-201.141,27.65,157.053,-59.7505],[2418.58,-101.653,26.9,152.102,-58.3485],[2354.44,-0.689517,26.1,146.836,-56.7344],[2287.02,98.7362,25.2667,141.385,-54.9092],[2213.52,199.432,24.3667,135.566,-52.754],[2133.83,299.737,23.4,129.433,-50.2008],[2046.4,399.335,22.35,122.967,-47.1127],[1946.84,499.727,21.1667,116.014,-43.1882],[1830.56,599.79,19.8,108.59,-37.995],[1685.54,699.253,18.1167,100.673,-30.5204],[1459.37,799.871,15.5333,92.2655,-16.7075],[1217.05,836.414,12.8167,90.0332,-0.084234]]], + [54,857.721,[[3185.72,-2000.39,38.2,221.416,-72.4825],[3154.5,-1902.52,37.7333,218.77,-72.1203],[3121.91,-1802.61,37.25,215.994,-71.7327],[3087.93,-1700.83,36.75,213.088,-71.3177],[3053.67,-1600.7,36.25,210.145,-70.8877],[3019.13,-1502.23,35.75,207.168,-70.4419],[2983.16,-1402.24,35.2333,204.056,-69.9637],[2945.72,-1300.94,34.7,200.806,-69.4502],[2907.98,-1201.62,34.1667,197.521,-68.9155],[2868.75,-1101.3,33.6167,194.096,-68.3403],[2827.99,-1000.2,33.05,190.53,-67.7209],[2786.89,-901.427,32.4833,186.929,-67.0725],[2744.24,-802.223,31.9,183.188,-66.3725],[2698.78,-700.117,31.2833,179.198,-65.5942],[2652.93,-600.898,30.6667,175.176,-64.7735],[2605.46,-502.045,30.0333,171.016,-63.8828],[2555.06,-401.378,29.3667,166.61,-62.8888],[2502.96,-301.853,28.6833,162.072,-61.8045],[2447.84,-201.514,27.9667,157.298,-60.5896],[2389.66,-101.003,27.2167,152.296,-59.2246],[2328.35,-1.00854,26.4333,147.078,-57.6863],[2262.54,99.695,25.6,141.554,-55.9096],[2192.13,199.958,24.7167,135.754,-53.8503],[2117.04,298.536,23.7833,129.722,-51.4535],[2033.1,398.722,22.75,123.211,-48.501],[1938.72,498.984,21.6,116.255,-44.7961],[1829.49,599.016,20.2833,108.809,-39.9383],[1693.75,699.932,18.6667,100.715,-32.9612],[1502.03,799.472,16.4167,92.1859,-21.2798],[1202.19,857.721,12.9667,87.9242,-0.0103166]]], + [55,878.781,[[3130.84,-2000.56,38.45,221.628,-72.9292],[3100.37,-1902.35,37.9833,218.974,-72.5762],[3068.55,-1802.09,37.5,216.19,-72.1985],[3036.49,-1703.33,37.0167,213.372,-71.8079],[3003.05,-1602.77,36.5167,210.42,-71.3893],[2968.21,-1500.6,36,207.333,-70.9406],[2933.1,-1400.22,35.4833,204.208,-70.4745],[2897.7,-1301.67,34.9667,201.048,-69.9899],[2860.86,-1201.88,34.4333,197.748,-69.4692],[2822.57,-1101.06,33.8833,194.308,-68.9091],[2783.96,-1002.4,33.3333,190.831,-68.3239],[2742.67,-900.158,32.75,187.105,-67.6741],[2701.05,-800.416,32.1667,183.343,-66.9922],[2657.88,-700.473,31.5667,179.438,-66.2548],[2613.14,-600.596,30.95,175.39,-65.4559],[2566.81,-501.061,30.3167,171.201,-64.5888],[2518.86,-402.16,29.6667,166.873,-63.6456],[2468.03,-301.794,28.9833,162.298,-62.5908],[2414.26,-200.563,28.2667,157.481,-61.4085],[2358.76,-101.314,27.5333,152.54,-60.1101],[2298.95,-0.216799,26.75,147.264,-58.6138],[2236.04,99.6916,25.9333,141.781,-56.9203],[2168.67,199.493,25.0667,136.005,-54.9566],[2095.44,299.696,24.1333,129.868,-52.6262],[2016.24,398.557,23.1333,123.434,-49.8486],[1925.57,499.804,22,116.395,-46.3002],[1823.16,599.18,20.7333,108.973,-41.7588],[1697.75,699.694,19.2,100.866,-35.3349],[1527.79,799.647,17.15,92.1654,-25.0075],[1187.75,878.78,13.1333,85.7829,-0.0661465]]], + [56,899.574,[[3074.01,-2001.88,38.7,221.868,-73.3817],[3044.28,-1903.32,38.2333,219.207,-73.0382],[3013.25,-1802.69,37.75,216.415,-72.6706],[2980.9,-1700.18,37.25,213.49,-72.277],[2949.36,-1602.63,36.7667,210.627,-71.8829],[2915.39,-1500.06,36.25,207.529,-71.4461],[2882.25,-1402.5,35.75,204.495,-71.0072],[2846.61,-1300.32,35.2167,201.219,-70.5205],[2810.68,-1200.1,34.6833,197.906,-70.0135],[2774.47,-1101.88,34.15,194.555,-69.4849],[2736.82,-1002.71,33.6,191.062,-68.9157],[2697.72,-902.821,33.0333,187.426,-68.302],[2657.13,-802.454,32.45,183.644,-67.6394],[2615.04,-701.862,31.85,179.717,-66.9227],[2571.43,-601.31,31.2333,175.645,-66.1462],[2526.26,-501.075,30.6,171.428,-65.3032],[2479.51,-401.449,29.95,167.069,-64.3859],[2429.95,-300.313,29.2667,162.458,-63.3597],[2378.75,-200.592,28.5667,157.711,-62.2366],[2324.64,-100.401,27.8333,152.724,-60.9743],[2267.59,-0.406053,27.0667,147.504,-59.5509],[2207.53,98.6812,26.2667,142.067,-57.9401],[2141.88,199.877,25.4,136.21,-56.0333],[2071.8,299.848,24.4833,130.083,-53.8101],[1995.91,398.893,23.5,123.631,-51.1578],[1910.19,499.481,22.4,116.628,-47.8154],[1813.09,599.244,21.1667,109.161,-43.5257],[1696.32,699.682,19.7,101.025,-37.5658],[1543.11,799.901,17.8,92.2063,-28.2843],[1170.83,899.573,13.2833,83.6291,-0.0379081]]], + [57,920.072,[[3014.15,-2000.82,38.9333,222.043,-73.8281],[2985.18,-1901.95,38.4667,219.374,-73.4939],[2954.94,-1801.01,37.9833,216.573,-73.1362],[2924.45,-1701.56,37.5,213.737,-72.7661],[2892.67,-1600.28,37,210.766,-72.3695],[2860.63,-1500.64,36.5,207.758,-71.9583],[2828.33,-1402.69,36,204.713,-71.5316],[2793.61,-1300.07,35.4667,201.425,-71.0583],[2759.7,-1202.53,34.95,198.203,-70.5809],[2723.31,-1100.75,34.4,194.733,-70.0511],[2686.62,-1001.12,33.85,191.224,-69.4975],[2648.52,-900.757,33.2833,187.569,-68.9005],[2610.11,-802.74,32.7167,183.876,-68.2746],[2569.11,-701.557,32.1167,179.928,-67.5781],[2526.61,-600.391,31.5,175.831,-66.8232],[2483.77,-502.135,30.8833,171.699,-66.0257],[2438.23,-401.765,30.2333,167.31,-65.1349],[2391.14,-302.281,29.5667,162.778,-64.1632],[2341.27,-201.65,28.8667,157.992,-63.0735],[2288.58,-100.494,28.1333,152.958,-61.8482],[2234.23,-1.62476,27.3833,147.799,-60.497],[2175.75,98.6479,26.5833,142.299,-58.9342],[2113.05,199.231,25.7333,136.478,-57.1199],[2046.07,298.941,24.8333,130.368,-55.0039],[1972.2,399.776,23.85,123.796,-52.4311],[1891.3,499.438,22.7833,116.849,-49.2868],[1799.37,599.281,21.5833,109.363,-45.2412],[1690.96,699.078,20.1833,101.255,-39.7319],[1551.17,799.744,18.4,92.3325,-31.3012],[1316.13,899.95,15.45,82.8192,-13.7625],[1152.9,920.071,13.4333,81.453,-0.0342206]]], + [58,940.256,[[2952.35,-2000.95,39.1667,222.246,-74.2806],[2924.14,-1901.76,38.7,219.57,-73.9558],[2894.7,-1800.49,38.2167,216.762,-73.6081],[2865.02,-1700.7,37.7333,213.917,-73.2484],[2835.11,-1602.43,37.25,211.036,-72.876],[2803.92,-1502.39,36.75,208.019,-72.4767],[2771.43,-1400.77,36.2333,204.861,-72.0483],[2738.68,-1300.96,35.7167,201.665,-71.6028],[2705.67,-1202.98,35.2,198.43,-71.1392],[2670.25,-1100.73,34.65,194.946,-70.6246],[2634.54,-1000.63,34.1,191.422,-70.0868],[2598.54,-902.704,33.55,187.859,-69.5243],[2560.06,-801.256,32.9667,184.039,-68.8987],[2521.26,-702.33,32.3833,180.179,-68.2411],[2479.9,-600.534,31.7667,176.06,-67.5084],[2438.2,-501.642,31.15,171.902,-66.7341],[2393.89,-400.595,30.5,167.484,-65.8691],[2348.05,-300.41,29.8333,162.918,-64.9251],[2300.68,-201.402,29.15,158.208,-63.8922],[2250.58,-101.631,28.4333,153.246,-62.7308],[2197.69,-1.74353,27.6833,148.036,-61.4208],[2140.79,99.6264,26.8833,142.475,-59.9047],[2081,199.451,26.05,136.696,-58.1791],[2017.05,298.741,25.1667,130.611,-56.1659],[1946.43,399.587,24.2,124.037,-53.7156],[1868.98,499.735,23.15,117.052,-50.7169],[1782.09,599.365,21.9833,109.572,-46.9071],[1680.48,699.111,20.6333,101.448,-41.7644],[1552.31,799.751,18.95,92.4796,-34.0655],[1359.18,899.733,16.45,82.7478,-19.7387],[1133.94,940.254,13.5833,79.2551,-0.0573675]]], + [59,960.098,[[2888.63,-2002.31,39.4,222.478,-74.739],[2861.2,-1902.8,38.9333,219.796,-74.4237],[2832.56,-1801.18,38.45,216.981,-74.0862],[2803.7,-1701.05,37.9667,214.128,-73.7371],[2774.61,-1602.43,37.4833,211.239,-73.3756],[2744.27,-1502.02,36.9833,208.212,-72.988],[2712.67,-1400.02,36.4667,205.044,-72.5721],[2681.85,-1303.02,35.9667,201.94,-72.1537],[2648.72,-1201.46,35.4333,198.589,-71.6894],[2615.31,-1101.87,34.9,195.197,-71.2051],[2580.59,-1001.28,34.35,191.658,-70.6835],[2545.58,-902.859,33.8,188.079,-70.1377],[2508.16,-800.883,33.2167,184.241,-69.5308],[2470.43,-701.424,32.6333,180.361,-68.8926],[2431.3,-601.788,32.0333,176.331,-68.2013],[2390.76,-502.242,31.4167,172.149,-67.4508],[2347.67,-400.499,30.7667,167.702,-66.612],[2304.23,-302.073,30.1167,163.22,-65.7201],[2258.18,-202.228,29.4333,158.475,-64.7196],[2209.48,-101.57,28.7167,153.47,-63.5943],[2158.07,-0.744785,27.9667,148.212,-62.3242],[2103.92,99.5571,27.1833,142.71,-60.8853],[2046.97,198.6,26.3667,136.978,-59.248],[1984.82,299.281,25.4833,130.809,-57.2987],[1917.38,399.969,24.5333,124.242,-54.9661],[1844.53,498.874,23.5167,117.342,-52.1572],[1761.34,599.553,22.3667,109.779,-48.5257],[1666.33,698.831,21.0667,101.681,-43.7377],[1548.08,799.504,19.4667,92.677,-36.6699],[1380.82,899.647,17.2333,82.7957,-24.3287],[1113.97,960.096,13.7333,77.036,-0.109953]]], + [60,979.578,[[2822.03,-2001.36,39.6167,222.646,-75.1922],[2795.38,-1901.56,39.15,219.957,-74.8863],[2768.51,-1803.13,38.6833,217.232,-74.5703],[2740.47,-1702.64,38.2,214.372,-74.2319],[2711.23,-1600.27,37.7,211.374,-73.8692],[2682.74,-1502.87,37.2167,208.439,-73.5058],[2652.04,-1400.47,36.7,205.261,-73.1026],[2622.1,-1303.09,36.2,202.146,-72.697],[2589.91,-1201.11,35.6667,198.783,-72.2468],[2557.45,-1101.1,35.1333,195.378,-71.7772],[2523.72,-1000.07,34.5833,191.825,-71.2713],[2489.71,-901.213,34.0333,188.229,-70.7421],[2454.4,-801.657,33.4667,184.484,-70.1705],[2417.75,-701.649,32.8833,180.585,-69.5523],[2379.74,-601.442,32.2833,176.534,-68.8823],[2340.37,-501.304,31.6667,172.328,-68.1549],[2299.59,-401.515,31.0333,167.968,-67.3633],[2257.4,-302.366,30.3833,163.456,-66.4997],[2212.68,-201.756,29.7,158.676,-65.5307],[2165.38,-100.286,28.9833,153.631,-64.4404],[2116.57,-0.812377,28.25,148.444,-63.2376],[2065.11,98.4008,27.4833,143.004,-61.8752],[2009.82,198.627,26.6667,137.208,-60.2916],[1950.63,298.738,25.8,131.075,-58.4418],[1886.32,399.242,24.8667,124.523,-56.2271],[1815.62,499.964,23.85,117.495,-53.5106],[1737.22,599.911,22.7333,109.979,-50.0995],[1647.4,699.535,21.4667,101.839,-45.5891],[1538.71,799.294,19.95,92.8912,-39.1195],[1389.95,899.74,17.9,82.8953,-28.2002],[1091.73,979.576,13.8667,74.8029,-0.069778]]], + [61,998.673,[[2753.55,-2001.69,39.8333,222.844,-75.6514],[2727.68,-1901.59,39.3667,220.148,-75.355],[2701.6,-1802.86,38.9,217.416,-75.0489],[2674.39,-1702.05,38.4167,214.549,-74.721],[2646.96,-1602.74,37.9333,211.643,-74.3815],[2618.36,-1501.62,37.4333,208.598,-74.0174],[2589.53,-1402.16,36.9333,205.513,-73.6395],[2559.51,-1301.16,36.4167,202.284,-73.2336],[2529.24,-1201.97,35.9,199.014,-72.8111],[2497.75,-1101.53,35.3667,195.597,-72.3565],[2465.02,-1000.05,34.8167,192.029,-71.8667],[2432.02,-900.737,34.2667,188.419,-71.3542],[2397.75,-800.707,33.7,184.656,-70.8007],[2362.19,-700.206,33.1167,180.739,-70.2019],[2326.34,-602.248,32.5333,176.78,-69.5713],[2288.14,-501.501,31.9167,172.551,-68.8675],[2248.58,-401.079,31.2833,168.166,-68.1014],[2207.65,-301.276,30.6333,163.624,-67.2655],[2165.32,-202.396,29.9667,158.928,-66.3508],[2119.44,-100.093,29.25,153.845,-65.2963],[2073.18,-1.98985,28.5333,148.732,-64.16],[2023.27,98.2388,27.7667,143.241,-62.8434],[1969.65,199.557,26.95,137.381,-61.312],[1913.35,298.952,26.1,131.292,-59.5579],[1852.1,399.113,25.1833,124.764,-57.4563],[1784.68,499.931,24.1833,117.729,-54.8761],[1710.96,599.05,23.1,110.277,-51.6837],[1626.21,698.91,21.8667,102.118,-47.4514],[1524.38,799.385,20.4,93.0918,-41.4217],[1390.9,899.535,18.5,83.0707,-31.6775],[1068.54,998.672,14,72.5486,-0.0575678]]], + [62,1017.36,[[2683.18,-2003.35,40.05,223.072,-76.1164],[2658.1,-1902.94,39.5833,220.371,-75.8297],[2631.93,-1800.37,39.1,217.534,-75.5228],[2606.46,-1702.75,38.6333,214.758,-75.2164],[2579.87,-1603.11,38.15,211.845,-74.888],[2552.15,-1501.65,37.65,208.791,-74.5358],[2524.21,-1401.83,37.15,205.697,-74.1701],[2495.11,-1300.46,36.6333,202.457,-73.7774],[2465.77,-1200.91,36.1167,199.176,-73.3685],[2435.25,-1100.08,35.5833,195.746,-72.9286],[2404.49,-1001.26,35.05,192.274,-72.4692],[2372.51,-901.472,34.5,188.649,-71.9738],[2339.3,-800.953,33.9333,184.871,-71.4387],[2305.82,-702.793,33.3667,181.049,-70.8766],[2270.09,-601.47,32.7667,176.957,-70.2499],[2233.07,-500.174,32.15,172.705,-69.5691],[2195.75,-401.802,31.5333,168.411,-68.848],[2156.09,-301.324,30.8833,163.841,-68.0402],[2115.08,-201.746,30.2167,159.114,-67.1562],[2071.66,-101.034,29.5167,154.112,-66.1612],[2026.84,-2.06739,28.8,148.957,-65.064],[1978.49,99.0941,28.0333,143.416,-63.7921],[1927.61,199.384,27.2333,137.618,-62.3432],[1873.08,299.956,26.3833,131.457,-60.6492],[1814.84,399.618,25.4833,124.96,-58.6564],[1751.73,498.725,24.5167,118.048,-56.2516],[1680.35,599.873,23.4333,110.444,-53.1738],[1600.52,699.489,22.2333,102.298,-49.2008],[1506.46,798.941,20.8333,93.3534,-43.6577],[1384.14,899.848,19.0333,83.221,-34.7772],[1176.08,999.696,16.0167,71.9773,-14.8686],[1044.4,1017.36,14.1333,70.2733,-0.0764771]]], + [63,1035.62,[[2610.07,-2002.74,40.25,223.236,-76.5772],[2585.8,-1902.06,39.7833,220.528,-76.3001],[2561.33,-1802.73,39.3167,217.783,-76.0138],[2535.79,-1701.3,38.8333,214.901,-75.7071],[2510.05,-1601.38,38.35,211.979,-75.3896],[2484.11,-1502.97,37.8667,209.019,-75.0605],[2457.07,-1402.8,37.3667,205.916,-74.7074],[2428.9,-1301.04,36.85,202.667,-74.328],[2400.5,-1201.11,36.3333,199.376,-73.9331],[2371.89,-1103.02,35.8167,196.042,-73.5217],[2341.18,-1000.66,35.2667,192.449,-73.0643],[2310.23,-900.452,34.7167,188.81,-72.5856],[2279.03,-802.432,34.1667,185.127,-72.084],[2245.68,-700.896,33.5833,181.175,-71.5252],[2212.06,-601.894,33,177.178,-70.9366],[2176.23,-500.032,32.3833,172.905,-70.2793],[2140.11,-401.087,31.7667,168.587,-69.583],[2101.73,-300.001,31.1167,163.99,-68.8028],[2063.04,-202.255,30.4667,159.351,-67.9707],[2021.03,-100.781,29.7667,154.314,-67.0107],[1977.66,-1.0265,29.05,149.119,-65.9516],[1931.9,98.8202,28.3,143.652,-64.751],[1883.7,198.064,27.5167,137.919,-63.3839],[1830.95,299.839,26.6667,131.69,-61.7517],[1775.66,398.984,25.7833,125.231,-59.8674],[1714.62,499.629,24.8167,118.213,-57.5498],[1647.72,599.511,23.7667,110.704,-54.676],[1572.69,698.786,22.6,102.589,-50.9613],[1483.93,799.165,21.2333,93.5585,-45.7583],[1372.33,899.68,19.5333,83.4425,-37.6998],[1200.45,999.843,16.95,71.9957,-21.4102],[1019.32,1035.61,14.2667,67.9774,-0.129875]]], + [64,1053.42,[[2535.15,-2003.5,40.45,223.431,-77.0439],[2511.69,-1902.53,39.9833,220.717,-76.7765],[2488.04,-1802.92,39.5167,217.966,-76.5002],[2463.35,-1701.19,39.0333,215.077,-76.2042],[2438.47,-1600.96,38.55,212.148,-75.8977],[2413.39,-1502.25,38.0667,209.18,-75.5801],[2387.24,-1401.76,37.5667,206.068,-75.2393],[2360.89,-1302.94,37.0667,202.915,-74.8851],[2333.45,-1202.61,36.55,199.613,-74.5044],[2304.9,-1100.97,36.0167,196.161,-74.0946],[2276.12,-1001.33,35.4833,192.664,-73.6666],[2246.2,-900.686,34.9333,189.012,-73.2049],[2216.05,-802.228,34.3833,185.314,-72.7212],[2183.81,-700.222,33.8,181.346,-72.1821],[2151.32,-600.746,33.2167,177.33,-71.6142],[2117.63,-501.107,32.6167,173.152,-70.9976],[2082.73,-401.572,32,168.812,-70.3266],[2046.59,-302.425,31.3667,164.308,-69.5945],[2008.24,-201.478,30.7,159.521,-68.7723],[1968.62,-101.701,30.0167,154.571,-67.8692],[1926.72,-1.13632,29.3,149.338,-66.8491],[1882.5,99.5666,28.55,143.825,-65.6922],[1835.93,199.713,27.7667,138.04,-64.3741],[1786.98,298.565,26.95,131.992,-62.8639],[1733.57,399.002,26.0667,125.454,-61.0513],[1675.63,499.387,25.1167,118.458,-58.86],[1612.05,599.458,24.0833,110.939,-56.1403],[1540.63,699.484,22.9333,102.762,-52.6183],[1458.08,799.106,21.6167,93.7948,-47.8004],[1355.67,899.327,20,83.698,-40.4508],[1207.09,999.757,17.6833,72.1374,-26.4895],[992.194,1053.42,14.3833,65.6669,-0.0791323]]], + [65,1070.75,[[2457.62,-2002.04,40.6333,223.562,-77.5071],[2434.97,-1900.82,40.1667,220.842,-77.2493],[2412.14,-1800.96,39.7,218.084,-76.9828],[2389.13,-1702.47,39.2333,215.288,-76.7074],[2365.11,-1601.92,38.75,212.353,-76.4122],[2340.91,-1502.89,38.2667,209.377,-76.1063],[2315.67,-1402.07,37.7667,206.257,-75.7779],[2290.24,-1302.91,37.2667,203.094,-75.4367],[2263.75,-1202.23,36.75,199.783,-75.0698],[2236.2,-1100.23,36.2167,196.319,-74.6749],[2208.42,-1000.22,35.6833,192.81,-74.2625],[2180.42,-902.222,35.15,189.256,-73.8313],[2150.44,-800.347,34.5833,185.432,-73.3512],[2120.22,-700.819,34.0167,181.561,-72.8468],[2088.86,-600.852,33.4333,177.527,-72.3001],[2056.35,-500.702,32.8333,173.33,-71.7063],[2022.67,-400.639,32.2167,168.968,-71.06],[1987.8,-300.942,31.5833,164.439,-70.3548],[1951.72,-201.908,30.9333,159.744,-69.583],[1913.49,-101.437,30.25,154.762,-68.7139],[1873.06,-0.136512,29.5333,149.492,-67.7319],[1831.35,99.1391,28.8,144.06,-66.6436],[1787.39,198.118,28.0333,138.348,-65.4039],[1740.17,298.064,27.2167,132.24,-63.9533],[1688.66,399.697,26.3333,125.628,-62.2107],[1633.76,499.664,25.4,118.662,-60.1408],[1573.43,599.751,24.3833,111.144,-57.5696],[1506.57,698.939,23.2667,103.039,-54.2874],[1429.01,798.828,21.9833,94.0533,-49.7861],[1334.39,899.046,20.4333,83.9541,-43.038],[1202.64,999.831,18.3,72.3064,-30.7521],[964.204,1070.75,14.5,63.3361,-0.0612717]]], + [66,1087.6,[[2378.35,-2001.99,40.8167,223.725,-77.9764],[2356.51,-1900.52,40.35,221,-77.7282],[2334.51,-1800.4,39.8833,218.236,-77.4719],[2312.34,-1701.64,39.4167,215.433,-77.2068],[2289.19,-1600.82,38.9333,212.49,-76.9227],[2265.87,-1501.52,38.45,209.506,-76.6282],[2241.55,-1400.4,37.95,206.377,-76.3121],[2217.04,-1300.95,37.45,203.206,-75.9836],[2192.34,-1203.2,36.95,199.992,-75.6421],[2165.79,-1100.82,36.4167,196.518,-75.2624],[2139.02,-1000.42,35.8833,192.997,-74.8658],[2112.04,-902.042,35.35,189.431,-74.4512],[2084.01,-802.728,34.8,185.706,-74.0033],[2054.9,-702.711,34.2333,181.821,-73.5188],[2024.69,-602.237,33.65,177.772,-72.9936],[1993.37,-501.56,33.05,173.556,-72.4231],[1960.93,-400.949,32.4333,169.173,-71.8021],[1927.33,-300.686,31.8,164.621,-71.1243],[1892.58,-201.063,31.15,159.9,-70.3823],[1856.65,-102.389,30.4833,155.009,-69.5677],[1817.71,-0.330545,29.7667,149.704,-68.6247],[1777.54,99.7284,29.0333,144.231,-67.5791],[1735.19,199.534,28.2667,138.472,-66.3876],[1690.64,298.368,27.4667,132.432,-65.0222],[1641.97,399.223,26.6,125.875,-63.3814],[1590.05,498.757,25.6833,118.947,-61.4325],[1532.92,598.841,24.6833,111.438,-59.0101],[1468.56,699.961,23.5667,103.18,-55.8632],[1395.84,799.632,22.3167,94.2083,-51.6562],[1308.71,899.083,20.8333,84.1808,-45.4713],[1190.93,999.619,18.85,72.5379,-34.5697],[935.352,1087.59,14.6167,60.9855,-0.0801795]]], + [67,1103.92,[[2297.32,-2003.4,41,223.921,-78.4515],[2276.32,-1901.66,40.5333,221.191,-78.2132],[2255.16,-1801.27,40.0667,218.421,-77.967],[2233.83,-1702.24,39.6,215.613,-77.7125],[2211.56,-1601.14,39.1167,212.664,-77.4396],[2189.13,-1501.54,38.6333,209.673,-77.1568],[2165.73,-1400.12,38.1333,206.536,-76.8532],[2142.16,-1300.37,37.6333,203.356,-76.5378],[2118.4,-1202.31,37.1333,200.132,-76.2097],[2093.66,-1102.78,36.6167,196.757,-75.8566],[2067.92,-1001.99,36.0833,193.226,-75.4761],[2041.16,-900.149,35.5333,189.536,-75.0655],[2014.19,-800.483,34.9833,185.798,-74.6352],[1986.19,-700.102,34.4167,181.897,-74.1695],[1957.97,-602.094,33.85,177.947,-73.6795],[1927.84,-500.949,33.25,173.713,-73.1319],[1897.49,-402.545,32.65,169.429,-72.5522],[1865.18,-301.694,32.0167,164.855,-71.9024],[1831.77,-201.463,31.3667,160.109,-71.1909],[1797.22,-102.159,30.7,155.19,-70.4095],[1760.65,-1.75831,30,149.975,-69.5266],[1722.03,99.1081,29.2667,144.464,-68.5247],[1681.31,199.766,28.5,138.659,-67.3826],[1638.48,299.498,27.7,132.566,-66.073],[1592.59,399.438,26.85,126.069,-64.5299],[1543.59,498.389,25.95,119.187,-62.6972],[1488.69,599.923,24.95,111.572,-60.3764],[1428.68,699.775,23.8667,103.419,-57.4529],[1360.67,799.145,22.65,94.4832,-53.5395],[1278.85,899.653,21.2,84.3514,-47.7618],[1172.41,999.888,19.3333,72.7246,-37.9663],[957.311,1099.9,15.6167,59.043,-8.56116],[905.638,1103.92,14.7333,58.6153,-0.140921]]], + [68,1119.72,[[2213.85,-2002.64,41.1667,224.054,-78.9239],[2193.69,-1900.67,40.7,221.318,-78.6954],[2173.37,-1800.04,40.2333,218.542,-78.4592],[2152.89,-1700.78,39.7667,215.728,-78.2151],[2132.25,-1602.9,39.3,212.874,-77.9626],[2110.71,-1503,38.8167,209.877,-77.6916],[2088.25,-1401.27,38.3167,206.733,-77.4008],[2065.62,-1301.2,37.8167,203.545,-77.0985],[2042.82,-1202.81,37.3167,200.313,-76.7841],[2019.06,-1102.95,36.8,196.929,-76.4458],[1994.36,-1001.81,36.2667,193.387,-76.0812],[1969.45,-902.674,35.7333,189.798,-75.6999],[1943.57,-802.575,35.1833,186.048,-75.288],[1916.69,-701.743,34.6167,182.134,-74.8422],[1888.8,-600.42,34.0333,178.052,-74.3589],[1860.69,-501.647,33.45,173.919,-73.8488],[1830.74,-400.044,32.8333,169.497,-73.2778],[1800.55,-301.377,32.2167,165.021,-72.6713],[1768.48,-200.603,31.5667,160.25,-71.9897],[1735.32,-100.737,30.9,155.303,-71.2409],[1701.05,-2.09928,30.2167,150.182,-70.4154],[1663.99,99.4975,29.4833,144.634,-69.4565],[1625.77,198.774,28.7333,138.913,-68.3875],[1584.67,299.431,27.9333,132.769,-67.1352],[1541.51,398.445,27.1,126.338,-65.689],[1494.5,498.588,26.2,119.379,-63.9374],[1442.71,599.819,25.2167,111.792,-61.756],[1386.03,699.816,24.15,103.634,-59.0062],[1321.7,799.919,22.95,94.6342,-55.3181],[1245.95,899.863,21.55,84.559,-49.9919],[1149.4,999.687,19.7833,72.9783,-41.1669],[986.107,1099.83,16.8333,59.0934,-19.3798],[874.132,1119.71,14.8333,56.23,-0.0824925]]], + [69,1134.95,[[2128.73,-2003.37,41.3333,224.22,-79.4021],[2109.42,-1901.16,40.8667,221.479,-79.1835],[2089.95,-1800.29,40.4,218.699,-78.9576],[2070.33,-1700.78,39.9333,215.878,-78.724],[2050.55,-1602.65,39.4667,213.018,-78.4824],[2029.92,-1502.5,38.9833,210.015,-78.2232],[2008.4,-1400.49,38.4833,206.863,-77.9449],[1986.72,-1300.15,37.9833,203.667,-77.6556],[1964.87,-1201.49,37.4833,200.426,-77.3548],[1942.11,-1101.33,36.9667,197.032,-77.0309],[1919.18,-1003.03,36.45,193.591,-76.6931],[1894.58,-900.453,35.9,189.878,-76.317],[1869.78,-800.038,35.35,186.115,-75.9226],[1844.79,-701.819,34.8,182.302,-75.5087],[1818.08,-600.083,34.2167,178.206,-75.0466],[1791.15,-500.893,33.6333,174.056,-74.5588],[1763.24,-401.565,33.0333,169.735,-74.0278],[1734.33,-302.368,32.4167,165.24,-73.4485],[1703.61,-201.031,31.7667,160.447,-72.7974],[1671.85,-100.581,31.1,155.474,-72.082],[1639.04,-1.33996,30.4167,150.322,-71.293],[1604.35,98.636,29.7,144.866,-70.3978],[1567.75,198.692,28.95,139.105,-69.3773],[1529.22,298.129,28.1667,133.041,-68.2072],[1487.89,398.145,27.3333,126.553,-66.8278],[1442.89,499.382,26.4333,119.522,-65.1556],[1394.98,598.487,25.4833,112.101,-63.1461],[1341.58,698.615,24.4333,103.947,-60.5704],[1280.88,799.437,23.25,94.8987,-57.1103],[1210.12,899.78,21.8833,84.7945,-52.1638],[1122.11,999.283,20.2,73.2601,-44.1791],[984.596,1099.84,17.6,59.2628,-26.0896],[841.855,1134.95,14.9333,53.8257,-0.063616]]], + [70,1149.63,[[2041.31,-2001.96,41.4833,224.323,-79.8784],[2023.51,-1903.17,41.0333,221.675,-79.6772],[2004.9,-1802.05,40.5667,218.891,-79.4617],[1986.15,-1702.28,40.1,216.066,-79.2388],[1966.57,-1600.4,39.6167,213.097,-78.9999],[1946.85,-1500.03,39.1333,210.086,-78.7523],[1926.97,-1401.18,38.65,207.032,-78.4955],[1906.24,-1300.54,38.15,203.829,-78.2194],[1885.36,-1201.59,37.65,200.58,-77.9324],[1863.61,-1101.14,37.1333,197.177,-77.6233],[1841.69,-1002.53,36.6167,193.727,-77.3009],[1818.89,-902.708,36.0833,190.116,-76.953],[1795.2,-801.896,35.5333,186.343,-76.5771],[1770.59,-700.321,34.9667,182.401,-76.1703],[1745.79,-601.109,34.4,178.408,-75.742],[1720.06,-501.484,33.8167,174.243,-75.2769],[1693.39,-401.704,33.2167,169.905,-74.7706],[1665.76,-302.04,32.6,165.391,-74.218],[1636.41,-200.204,31.95,160.575,-73.5969],[1606.82,-101.72,31.3,155.702,-72.9319],[1575.47,-1.85264,30.6167,150.523,-72.1802],[1542.33,98.7861,29.9,145.033,-71.327],[1507.36,199.542,29.15,139.234,-70.354],[1470.55,299.717,28.3667,133.125,-69.2379],[1431.85,398.568,27.55,126.712,-67.9488],[1389.66,498.97,26.6667,119.744,-66.386],[1343.9,599.274,25.7167,112.238,-64.4725],[1293.71,699.208,24.6833,104.101,-62.058],[1237.37,799.019,23.5333,95.1505,-58.8604],[1171.46,899.47,22.2,85.0494,-54.2797],[1089.96,999.823,20.5667,73.4229,-46.9267],[971.404,1099.64,18.2167,59.5047,-31.4996],[808.813,1149.63,15.0333,51.4029,-0.0900986]]], + [71,1163.71,[[1952.32,-2002.09,41.6333,224.46,-80.3605],[1935.34,-1903.1,41.1833,221.809,-80.1689],[1917.6,-1801.76,40.7167,219.019,-79.9637],[1899.72,-1701.77,40.25,216.188,-79.7515],[1881.71,-1603.16,39.7833,213.317,-79.5319],[1862.91,-1502.5,39.3,210.301,-79.2964],[1843.96,-1403.36,38.8167,207.242,-79.052],[1824.2,-1302.43,38.3167,204.032,-78.7895],[1804.3,-1203.18,37.8167,200.777,-78.5164],[1783.57,-1102.4,37.3,197.366,-78.2224],[1762,-1000.31,36.7667,193.794,-77.9055],[1740.26,-900.225,36.2333,190.173,-77.574],[1718.35,-802.162,35.7,186.502,-77.2269],[1694.9,-700.227,35.1333,182.549,-76.8397],[1671.26,-600.65,34.5667,178.541,-76.4321],[1646.73,-500.647,33.9833,174.362,-75.9894],[1621.31,-400.473,33.3833,170.007,-75.5074],[1594.97,-300.401,32.7667,165.473,-74.9812],[1567.71,-200.712,32.1333,160.76,-74.4053],[1539.51,-101.704,31.4833,155.864,-73.7729],[1509.63,-1.28054,30.8,150.657,-73.0579],[1478.04,99.9468,30.0833,145.136,-72.246],[1445.46,199.123,29.35,139.429,-71.3413],[1411.13,297.97,28.5833,133.409,-70.3041],[1373.5,399.72,27.75,126.814,-69.0544],[1334.06,499.153,26.8833,119.914,-67.5965],[1291.23,598.842,25.95,112.46,-65.8116],[1244.19,698.574,24.9333,104.351,-63.5586],[1191.3,798.699,23.8,95.3847,-60.5717],[1130.1,898.979,22.5,85.3162,-56.3426],[1054.87,999.761,20.9167,73.6567,-49.6015],[950.054,1099.64,18.7333,59.729,-36.094],[775.013,1163.7,15.1333,48.9621,-0.169523]]], + [72,1177.18,[[1861.18,-2000.1,41.7667,224.535,-80.8414],[1845.04,-1900.94,41.3167,221.878,-80.6593],[1828.78,-1803.02,40.8667,219.184,-80.4714],[1811.78,-1702.8,40.4,216.349,-80.27],[1794.04,-1600.45,39.9167,213.369,-80.054],[1776.78,-1503.05,39.45,210.451,-79.838],[1758.15,-1400.27,38.95,207.279,-79.5979],[1739.99,-1302.48,38.4667,204.169,-79.3568],[1721.07,-1202.96,37.9667,200.906,-79.0975],[1701.36,-1101.92,37.45,197.487,-78.8183],[1681.5,-1002.72,36.9333,194.019,-78.5271],[1660.84,-902.28,36.4,190.389,-78.2128],[1639.36,-800.824,35.85,186.593,-77.8731],[1617.72,-701.553,35.3,182.744,-77.5164],[1595.26,-601.595,34.7333,178.725,-77.1298],[1571.94,-501.195,34.15,174.532,-76.7098],[1547.78,-400.61,33.55,170.161,-76.2526],[1522.75,-300.11,32.9333,165.61,-75.7534],[1497.52,-202.573,32.3167,161.002,-75.2217],[1470.03,-100.512,31.65,155.958,-74.6066],[1442.33,-2.0181,30.9833,150.853,-73.9448],[1412.31,99.822,30.2667,145.303,-73.1752],[1381.35,199.631,29.5333,139.562,-72.3172],[1348.72,299.146,28.7667,133.502,-71.3332],[1313.69,399.637,27.95,126.989,-70.1718],[1276.2,499.964,27.0833,120.03,-68.7899],[1236.24,598.895,26.1667,112.637,-67.1286],[1191.54,699.847,25.15,104.43,-64.9931],[1142.04,799.936,24.0333,95.4634,-62.2018],[1085.4,899.584,22.7667,85.4578,-58.298],[1016.97,999.179,21.25,73.9498,-52.2033],[922.806,1099.75,19.1833,59.9441,-40.1826],[739.685,1177.18,15.2167,46.5064,-0.109083]]], + [73,1190.03,[[1769.14,-2003.41,41.9167,224.743,-81.3344],[1753.28,-1900.37,41.45,221.984,-81.1556],[1737.87,-1802.26,41,219.285,-80.9777],[1721.76,-1701.85,40.5333,216.445,-80.787],[1705.53,-1602.81,40.0667,213.563,-80.5896],[1688.59,-1501.7,39.5833,210.535,-80.3779],[1671.52,-1402.11,39.1,207.464,-80.1582],[1653.72,-1300.7,38.6,204.24,-79.9222],[1635.78,-1200.97,38.1,200.969,-79.6766],[1617.71,-1102.94,37.6,197.652,-79.4209],[1598.28,-1000.27,37.0667,194.063,-79.1362],[1579.31,-902.713,36.55,190.537,-78.848],[1558.97,-800.944,36,186.731,-78.5266],[1538.46,-701.358,35.45,182.872,-78.1891],[1517.17,-601.072,34.8833,178.841,-77.8233],[1495.08,-500.331,34.3,174.634,-77.4258],[1472.82,-402.159,33.7167,170.37,-77.0054],[1449.11,-301.213,33.1,165.803,-76.5336],[1424.56,-200.618,32.4667,161.051,-76.017],[1399.17,-100.671,31.8167,156.112,-75.4494],[1372.92,-1.68089,31.15,150.984,-74.8237],[1345.14,98.3652,30.45,145.535,-74.1134],[1315.81,198.832,29.7167,139.763,-73.3031],[1284.91,299.042,28.95,133.665,-72.3734],[1252.4,398.272,28.15,127.241,-71.2993],[1216.9,499.525,27.2833,120.227,-69.9952],[1179.05,599.444,26.3667,112.764,-68.4261],[1137.41,699.905,25.3667,104.602,-66.4424],[1091.23,799.959,24.2667,95.6467,-63.848],[1039.02,898.92,23.0333,85.7251,-60.2677],[975.668,999.143,21.55,74.1653,-54.6606],[890.867,1099.87,19.5833,60.1534,-43.9203],[703.692,1190.03,15.3,44.0332,-0.0989234]]], + [74,1202.24,[[1674.53,-2000.92,42.0333,224.791,-81.8201],[1660.08,-1901.39,41.5833,222.127,-81.6575],[1645.53,-1803.09,41.1333,219.424,-81.4897],[1630.32,-1702.47,40.6667,216.579,-81.3098],[1614.99,-1603.22,40.2,213.693,-81.1237],[1598.99,-1501.9,39.7167,210.66,-80.924],[1582.87,-1402.09,39.2333,207.583,-80.7168],[1566.07,-1300.46,38.7333,204.352,-80.4941],[1549.13,-1200.5,38.2333,201.075,-80.2625],[1532.06,-1102.23,37.7333,197.751,-80.0212],[1514.29,-1002.5,37.2167,194.267,-79.7613],[1495.8,-901.509,36.6833,190.619,-79.4807],[1477.17,-802.538,36.15,186.919,-79.1869],[1457.82,-702.62,35.6,183.05,-78.8689],[1437.71,-601.989,35.0333,179.008,-78.5242],[1416.86,-500.889,34.45,174.788,-78.1497],[1395.84,-402.355,33.8667,170.511,-77.7533],[1373.45,-301.023,33.25,165.928,-77.3086],[1350.28,-200.028,32.6167,161.159,-76.8216],[1326.92,-102.197,31.9833,156.327,-76.3006],[1301.52,-0.246049,31.3,151.048,-75.6962],[1275.92,97.9086,30.6167,145.703,-75.0426],[1248.24,198.958,29.8833,139.901,-74.2793],[1219.06,299.782,29.1167,133.767,-73.4033],[1188.38,399.658,28.3167,127.301,-72.3906],[1155.51,499.718,27.4667,120.37,-71.1853],[1120.43,598.759,26.5667,112.979,-69.7358],[1081.8,698.728,25.5833,104.87,-67.9032],[1038.89,798.745,24.5,95.9374,-65.5059],[989.621,899.501,23.2667,85.8502,-62.1432],[931.195,999.828,21.8167,74.2818,-56.9889],[855.284,1099.68,19.95,60.4058,-47.4413],[694.711,1199.93,16.05,41.9839,-9.0976],[667.045,1202.24,15.3833,41.5433,-0.148318]]], + [75,1213.79,[[1578.55,-2000.07,42.15,224.876,-82.3114],[1564.96,-1900.37,41.7,222.207,-82.1586],[1551.27,-1801.91,41.25,219.5,-82.0008],[1536.96,-1701.13,40.7833,216.65,-81.8317],[1522.54,-1601.72,40.3167,213.759,-81.6568],[1507.5,-1500.22,39.8333,210.72,-81.469],[1492.33,-1400.23,39.35,207.637,-81.2743],[1477.05,-1301.78,38.8667,204.508,-81.072],[1461.12,-1201.57,38.3667,201.225,-80.8545],[1445.07,-1103.06,37.8667,197.894,-80.628],[1428.36,-1003.07,37.35,194.403,-80.3839],[1410.97,-901.817,36.8167,190.747,-80.1204],[1393.45,-802.576,36.2833,187.039,-79.8444],[1375.25,-702.377,35.7333,183.16,-79.5458],[1356.34,-601.454,35.1667,179.106,-79.2219],[1336.73,-500.051,34.5833,174.875,-78.87],[1316.96,-401.21,34,170.584,-78.4977],[1296.48,-302.26,33.4,166.111,-78.0914],[1274.69,-200.844,32.7667,161.325,-77.6344],[1252.14,-100.046,32.1167,156.347,-77.1321],[1228.84,-0.17482,31.45,151.175,-76.5781],[1204.77,98.447,30.7667,145.806,-75.9645],[1179.33,197.744,30.05,140.108,-75.2648],[1151.91,299.209,29.2833,133.941,-74.4434],[1123.06,399.76,28.4833,127.436,-73.4936],[1092.77,498.629,27.65,120.594,-72.386],[1059.79,598.577,26.75,113.144,-71.0279],[1023.48,699.544,25.7667,104.958,-69.3092],[983.758,799.197,24.7,96.0595,-67.0952],[938.707,898.84,23.5,86.096,-64.0332],[885.069,999.223,22.0833,74.5481,-59.3327],[816.303,1099.4,20.2833,60.6636,-50.7589],[694.65,1199.75,17.1333,42.1937,-22.9988],[629.102,1213.79,15.45,39.0389,-0.0293924]]], + [76,1224.68,[[1481.24,-2000.87,42.2667,224.997,-82.808],[1468.51,-1901,41.8167,222.325,-82.6651],[1455.69,-1802.37,41.3667,219.614,-82.5175],[1442.3,-1701.41,40.9,216.761,-82.3594],[1428.8,-1601.82,40.4333,213.865,-82.1957],[1414.71,-1500.13,39.95,210.822,-82.0201],[1401,-1403.38,39.4833,207.84,-81.8443],[1386.2,-1301.31,38.9833,204.599,-81.6488],[1371.29,-1200.91,38.4833,201.309,-81.4453],[1356.26,-1102.19,37.9833,197.972,-81.2333],[1340.62,-1001.99,37.4667,194.473,-81.0049],[1324.34,-900.516,36.9333,190.809,-80.7584],[1307.93,-801.053,36.4,187.091,-80.5002],[1290.89,-700.624,35.85,183.202,-80.2207],[1273.71,-602.403,35.3,179.258,-79.9267],[1255.35,-500.679,34.7167,175.015,-79.5978],[1236.85,-401.514,34.1333,170.713,-79.2499],[1217.67,-302.228,33.5333,166.226,-78.8701],[1197.27,-200.453,32.9,161.424,-78.4428],[1176.71,-101.835,32.2667,156.557,-77.9857],[1154.9,-1.49001,31.6,151.366,-77.4685],[1131.82,99.992,30.9,145.844,-76.881],[1108.01,199.709,30.1833,140.118,-76.2262],[1082.89,299.465,29.4333,134.054,-75.4748],[1056.45,398.556,28.65,127.649,-74.6066],[1028.11,498.166,27.8167,120.763,-73.5732],[997.248,598.922,26.9167,113.258,-72.3054],[963.839,699.126,25.95,105.14,-70.7286],[926.674,799.915,24.8833,96.146,-68.6624],[885.106,899.537,23.7,86.186,-65.8428],[836.106,999.488,22.3167,74.694,-61.5625],[774.171,1099.22,20.5833,60.8938,-53.8902],[672.507,1199.78,17.7667,42.4129,-31.197],[591.213,1224.68,15.5333,36.5172,-0.221263]]], + [77,1234.88,[[1382.62,-2003.34,42.3833,225.155,-83.3094],[1370.77,-1903.3,41.9333,222.481,-83.1764],[1358.39,-1800.85,41.4667,219.666,-83.034],[1346.36,-1703.34,41.0167,216.911,-82.8921],[1333.33,-1600.01,40.5333,213.908,-82.7344],[1320.66,-1501.66,40.0667,210.965,-82.5766],[1307.44,-1401.28,39.5833,207.872,-82.4072],[1294.11,-1302.44,39.1,204.733,-82.2312],[1280.22,-1201.82,38.6,201.439,-82.0419],[1266.23,-1102.89,38.1,198.096,-81.8448],[1251.66,-1002.47,37.5833,194.591,-81.6324],[1236.5,-900.755,37.05,190.919,-81.403],[1221.22,-801.055,36.5167,187.194,-81.1628],[1205.34,-700.38,35.9667,183.296,-80.9028],[1189.34,-601.91,35.4167,179.342,-80.6293],[1172.73,-502.798,34.85,175.211,-80.3322],[1155.01,-400.486,34.25,170.774,-79.9994],[1137.15,-300.92,33.65,166.274,-79.6459],[1118.65,-201.495,33.0333,161.584,-79.259],[1099.51,-102.494,32.4,156.702,-78.8342],[1079.2,-1.74205,31.7333,151.492,-78.3534],[1058.23,97.7913,31.05,146.082,-77.8208],[1036.05,198.053,30.3333,140.333,-77.213],[1012.67,298.384,29.5833,134.241,-76.5155],[988.054,398.082,28.8,127.803,-75.7093],[961.663,498.344,27.9667,120.876,-74.7492],[932.933,599.81,27.0667,113.32,-73.5705],[902.365,699.114,26.1167,105.276,-72.1306],[868.31,799.409,25.0667,96.3365,-70.2436],[830.165,899.019,23.9,86.3936,-67.6676],[785.111,999.624,22.5333,74.8439,-63.7498],[729.14,1099.32,20.85,61.0681,-56.8538],[641.859,1199.93,18.25,42.6069,-37.6591],[552.131,1234.87,15.6,33.9818,-0.242818]]], + [78,1244.38,[[1281.91,-2000.05,42.4667,225.154,-83.806],[1271.35,-1903.6,42.0333,222.576,-83.6875],[1259.89,-1801,41.5667,219.757,-83.5558],[1248.75,-1703.34,41.1167,216.999,-83.4245],[1237.11,-1603.4,40.65,214.096,-83.2837],[1224.96,-1501.35,40.1667,211.045,-83.1326],[1212.72,-1400.81,39.6833,207.947,-82.9759],[1200.38,-1301.8,39.2,204.803,-82.8131],[1187.52,-1201.01,38.7,201.503,-82.6379],[1174.57,-1101.91,38.2,198.154,-82.4556],[1161.07,-1001.3,37.6833,194.642,-82.259],[1147.48,-902.558,37.1667,191.079,-82.0536],[1133.34,-802.606,36.6333,187.347,-81.8316],[1118.64,-701.668,36.0833,183.442,-81.5913],[1103.83,-602.933,35.5333,179.481,-81.3385],[1088,-500.659,34.95,175.218,-81.0557],[1072.05,-400.938,34.3667,170.893,-80.7563],[1055.52,-301.075,33.7667,166.381,-80.4296],[1038.4,-201.34,33.15,161.678,-80.0719],[1020.68,-102.02,32.5167,156.78,-79.679],[1001.88,-0.927516,31.85,151.553,-79.2345],[982.464,98.9574,31.1667,146.122,-78.7417],[961.94,199.591,30.45,140.35,-78.1794],[940.777,298.128,29.7167,134.367,-77.5488],[917.996,398.35,28.9333,127.897,-76.8039],[893.57,499.175,28.1,120.933,-75.9164],[867.474,599.428,27.2167,113.469,-74.8477],[839.188,699.526,26.2667,105.366,-73.5182],[808.175,799.178,25.2333,96.4896,-71.804],[772.879,899.959,24.0667,86.4342,-69.4255],[732.212,999.667,22.7333,74.9926,-65.8983],[681.462,1099.86,21.0833,61.1619,-59.6703],[606.45,1199.54,18.6667,42.9138,-43.4023],[511.992,1244.38,15.65,31.4327,-0.0531283]]], + [79,1253.17,[[1180.47,-2002.19,42.5667,225.29,-84.312],[1170.39,-1901.89,42.1167,222.609,-84.1989],[1160.22,-1802.83,41.6667,219.888,-84.0823],[1149.6,-1701.41,41.2,217.024,-83.9572],[1138.9,-1601.36,40.7333,214.117,-83.8278],[1128.12,-1502.68,40.2667,211.167,-83.6938],[1116.87,-1401.97,39.7833,208.066,-83.5499],[1105.53,-1302.78,39.3,204.918,-83.4004],[1093.71,-1201.81,38.8,201.613,-83.2396],[1081.8,-1102.52,38.3,198.259,-83.0722],[1069.4,-1001.73,37.7833,194.742,-82.8916],[1056.9,-902.785,37.2667,191.173,-82.703],[1043.9,-802.629,36.7333,187.435,-82.4991],[1030.39,-701.479,36.1833,183.522,-82.2784],[1016.78,-602.53,35.6333,179.552,-82.0463],[1002.23,-500.026,35.05,175.28,-81.7865],[987.572,-400.074,34.4667,170.944,-81.5116],[972.799,-302.714,33.8833,166.547,-81.22],[957.063,-202.651,33.2667,161.833,-80.8919],[940.347,-100.409,32.6167,156.792,-80.5217],[923.502,-1.53425,31.9667,151.68,-80.1237],[905.657,98.7258,31.2833,146.231,-79.6715],[886.795,199.756,30.5667,140.439,-79.1554],[867.345,298.703,29.8333,134.432,-78.5765],[846.408,399.367,29.05,127.932,-77.8924],[824.41,498.699,28.2333,121.072,-77.0943],[800.431,599.588,27.35,113.566,-76.1143],[774.895,698.676,26.4167,105.552,-74.9172],[746.401,799.241,25.3833,96.6035,-73.3469],[714.436,899.695,24.2333,86.5905,-71.1993],[677.543,999.648,22.9167,75.1357,-68.0117],[632.341,1099.14,21.3167,61.4351,-62.5021],[566.311,1199.78,19,43.067,-48.3425],[471.898,1253.17,15.7167,28.8688,-0.246084]]], + [80,1261.24,[[1077.55,-2002.32,42.65,225.365,-84.8182],[1068.36,-1901.9,42.2,222.682,-84.7152],[1059.09,-1802.72,41.75,219.958,-84.6089],[1049.41,-1701.17,41.2833,217.091,-84.495],[1039.66,-1600.99,40.8167,214.18,-84.3771],[1029.83,-1502.19,40.35,211.226,-84.255],[1019.57,-1401.34,39.8667,208.121,-84.1238],[1009.24,-1302.02,39.3833,204.969,-83.9877],[998.461,-1200.91,38.8833,201.659,-83.8411],[987.604,-1101.48,38.3833,198.3,-83.6886],[976.299,-1000.53,37.8667,194.777,-83.5241],[964.907,-901.441,37.35,191.202,-83.3522],[953.057,-801.129,36.8167,187.456,-83.1664],[941.118,-702.854,36.2833,183.656,-82.9715],[928.335,-600.703,35.7167,179.558,-82.7537],[915.453,-500.923,35.15,175.399,-82.5238],[902.09,-400.722,34.5667,171.055,-82.2735],[888.24,-300.359,33.9667,166.521,-82.0003],[873.896,-200.107,33.35,161.794,-81.7011],[859.05,-100.25,32.7167,156.869,-81.3724],[843.697,-1.08676,32.0667,151.742,-81.0099],[827.432,99.4793,31.3833,146.277,-80.5982],[810.643,198.525,30.6833,140.6,-80.1394],[792.919,297.908,29.95,134.572,-79.6131],[773.84,399.043,29.1667,128.047,-78.9909],[753.794,498.87,28.35,121.156,-78.2648],[732.357,598.449,27.4833,113.753,-77.3907],[708.673,699.964,26.5333,105.546,-76.2822],[683.127,799.616,25.5167,96.6768,-74.8753],[654.426,899.585,24.3833,86.7183,-72.9514],[621.241,999.598,23.0833,75.2695,-70.0938],[580.493,1099.93,21.5,61.4604,-65.1394],[523.387,1199.55,19.3,43.3093,-52.9996],[430.856,1261.24,15.7667,26.2925,-0.222603]]], + [81,1268.57,[[973.289,-2000.43,42.7167,225.38,-85.3251],[965.301,-1903.64,42.2833,222.794,-85.2357],[956.633,-1800.66,41.8167,219.966,-85.1363],[948.21,-1702.64,41.3667,217.199,-85.0372],[939.409,-1602.32,40.9,214.286,-84.9309],[930.541,-1503.38,40.4333,211.329,-84.8209],[921.286,-1402.38,39.95,208.221,-84.7027],[911.961,-1302.91,39.4667,205.065,-84.58],[902.24,-1201.64,38.9667,201.752,-84.4479],[892.444,-1102.06,38.4667,198.389,-84.3104],[882.244,-1000.95,37.95,194.861,-84.1621],[871.966,-901.697,37.4333,191.281,-84.0071],[861.275,-801.214,36.9,187.53,-83.8396],[850.503,-702.767,36.3667,183.723,-83.6639],[838.97,-600.431,35.8,179.618,-83.4675],[827.347,-500.464,35.2333,175.452,-83.2603],[815.291,-400.068,34.65,171.099,-83.0346],[803.143,-302.261,34.0667,166.683,-82.7952],[790.203,-201.72,33.45,161.946,-82.5258],[776.811,-101.563,32.8167,157.011,-82.2299],[762.962,-2.08892,32.1667,151.872,-81.9035],[748.29,98.8068,31.4833,146.392,-81.5327],[733.144,198.193,30.7833,140.699,-81.1195],[717.156,297.937,30.05,134.651,-80.6452],[699.944,399.46,29.2667,128.102,-80.0846],[681.861,499.696,28.45,121.182,-79.43],[662.522,599.712,27.5833,113.743,-78.6415],[641.533,699.99,26.65,105.636,-77.6599],[618.87,798.747,25.65,96.8549,-76.4152],[592.985,899.646,24.5167,86.8153,-74.6853],[563.441,999.539,23.2333,75.3904,-72.1484],[527.471,1099.54,21.6833,61.6513,-67.7966],[477.548,1199.65,19.55,43.459,-57.2725],[389.402,1268.57,15.8167,23.7038,-0.307139]]], + [82,1275.17,[[868.103,-2000.29,42.7833,225.434,-85.8364],[860.985,-1903.4,42.35,222.845,-85.7567],[853.262,-1800.33,41.8833,220.016,-85.6682],[845.756,-1702.21,41.4333,217.246,-85.58],[837.914,-1601.79,40.9667,214.33,-85.4853],[830.012,-1502.74,40.5,211.37,-85.3873],[821.766,-1401.64,40.0167,208.258,-85.282],[813.456,-1302.07,39.5333,205.099,-85.1727],[804.794,-1200.69,39.0333,201.781,-85.0551],[796.065,-1100.99,38.5333,198.414,-84.9325],[787.271,-1003,38.0333,194.996,-84.8048],[777.818,-900.389,37.5,191.295,-84.6624],[768.591,-802.896,36.9833,187.657,-84.5179],[758.693,-701.211,36.4333,183.725,-84.3566],[748.72,-601.722,35.8833,179.735,-84.1868],[738.365,-501.551,35.3167,175.562,-84.0024],[727.625,-400.943,34.7333,171.203,-83.8017],[716.492,-300.158,34.1333,166.652,-83.5824],[705.275,-202.151,33.5333,162.034,-83.3489],[693.344,-101.757,32.9,157.088,-83.0855],[681.006,-2.03723,32.25,151.938,-82.7951],[667.935,99.1192,31.5667,146.444,-82.4649],[654.442,198.775,30.8667,140.735,-82.097],[640.198,298.803,30.1333,134.669,-81.6747],[625.192,398.521,29.3667,128.239,-81.1865],[609.084,499.196,28.55,121.293,-80.6045],[591.858,599.683,27.6833,113.824,-79.9034],[573.497,698.741,26.7667,105.823,-79.0468],[552.975,799.782,25.75,96.844,-77.9216],[530.257,899.905,24.6333,86.88,-76.4044],[504.287,999.507,23.3667,75.4959,-74.1792],[472.598,1099.9,21.8333,61.7132,-70.3554],[429.535,1199.71,19.7667,43.6005,-61.3294],[347.196,1275.17,15.85,21.1035,-0.0976131]]], + [83,1281.01,[[762.042,-2001.91,42.85,225.527,-86.3513],[755.56,-1901.21,42.4,222.837,-86.2788],[749.028,-1801.74,41.95,220.106,-86.204],[742.447,-1703.51,41.5,217.335,-86.1267],[735.571,-1602.98,41.0333,214.417,-86.0437],[728.393,-1500.31,40.55,211.348,-85.9547],[721.411,-1402.6,40.0833,208.341,-85.8656],[714.124,-1302.91,39.6,205.179,-85.7698],[706.528,-1201.4,39.1,201.859,-85.6667],[698.874,-1101.58,38.6,198.488,-85.5594],[690.904,-1000.22,38.0833,194.952,-85.4436],[682.873,-900.714,37.5667,191.362,-85.3227],[674.782,-803.087,37.05,187.719,-85.196],[666.103,-701.258,36.5,183.783,-85.0547],[657.357,-601.623,35.95,179.787,-84.906],[648.277,-501.3,35.3833,175.608,-84.7444],[638.859,-400.536,34.8,171.242,-84.5683],[629.369,-302.355,34.2167,166.81,-84.3816],[619.26,-201.416,33.6,162.056,-84.1715],[608.798,-100.847,32.9667,157.101,-83.9406],[597.979,-0.945993,32.3167,151.94,-83.6859],[586.797,97.9757,31.65,146.568,-83.4037],[574.968,197.926,30.95,140.847,-83.0817],[562.479,298.265,30.2167,134.765,-82.712],[549.323,398.311,29.45,128.316,-82.2845],[535.2,499.34,28.6333,121.349,-81.7748],[520.388,598.328,27.7833,113.997,-81.1731],[503.998,699.666,26.85,105.816,-80.4096],[486.301,799.569,25.85,96.9383,-79.4402],[466.684,898.941,24.75,87.0616,-78.1341],[443.919,999.505,23.4833,75.5836,-76.19],[416.748,1099.1,21.9833,61.9371,-72.9276],[379.617,1199.85,19.95,43.7037,-65.1998],[305,1281.01,15.9,18.4927,-0.483908]]], + [84,1286.09,[[654.952,-2001.54,42.9,225.561,-86.8671],[649.384,-1900.77,42.45,222.869,-86.8048],[643.773,-1801.23,42,220.136,-86.7406],[638.121,-1702.93,41.55,217.362,-86.6741],[632.214,-1602.33,41.0833,214.442,-86.6029],[626.263,-1503.1,40.6167,211.478,-86.5292],[620.052,-1401.8,40.1333,208.361,-86.4499],[613.793,-1302.02,39.65,205.196,-86.3677],[607.269,-1200.43,39.15,201.872,-86.2792],[600.694,-1100.53,38.65,198.498,-86.187],[594.07,-1002.33,38.15,195.073,-86.0908],[587.174,-902.674,37.6333,191.481,-85.9871],[580.001,-801.776,37.1,187.716,-85.875],[572.773,-702.909,36.5667,183.895,-85.7573],[565.034,-600.123,36,179.773,-85.6257],[557.465,-502.621,35.45,175.713,-85.4911],[549.377,-401.681,34.8667,171.341,-85.3402],[540.994,-300.551,34.2667,166.777,-85.1753],[532.547,-202.195,33.6667,162.144,-84.9997],[523.562,-101.43,33.0333,157.181,-84.8016],[514.271,-1.32593,32.3833,152.011,-84.5831],[504.669,97.806,31.7167,146.63,-84.341],[494.509,197.979,31.0167,140.896,-84.0647],[483.785,298.554,30.2833,134.801,-83.7474],[472.486,398.848,29.5167,128.336,-83.3804],[460.607,498.134,28.7167,121.491,-82.9522],[447.638,599.411,27.85,113.971,-82.4259],[433.815,699.311,26.9333,105.906,-81.7824],[418.62,799.699,25.9333,96.9898,-80.9512],[401.775,899.608,24.8333,87.0591,-79.8302],[382.486,999.561,23.5833,75.6517,-78.1845],[359.417,1099.14,22.1,62.0186,-75.4213],[328.327,1199.5,20.1167,43.8943,-68.9932],[262.167,1286.09,15.9333,15.8719,-0.581684]]], + [85,1290.4,[[547.159,-2002.95,42.95,225.635,-87.3859],[542.511,-1902.11,42.5,222.943,-87.334],[537.828,-1802.48,42.05,220.209,-87.2803],[532.934,-1700.48,41.5833,217.33,-87.2229],[528.179,-1603.41,41.1333,214.512,-87.1656],[523.032,-1500.57,40.65,211.439,-87.1019],[518.025,-1402.71,40.1833,208.427,-87.038],[512.8,-1302.84,39.7,205.261,-86.9693],[507.354,-1201.16,39.2,201.935,-86.8955],[501.866,-1101.15,38.7,198.558,-86.8186],[496.336,-1002.86,38.2,195.131,-86.7384],[490.579,-903.1,37.6833,191.536,-86.6517],[484.59,-802.096,37.15,187.768,-86.5582],[478.367,-700.062,36.6,183.823,-86.4569],[472.096,-600.221,36.05,179.818,-86.3503],[465.778,-502.607,35.5,175.752,-86.2379],[459.026,-401.547,34.9167,171.376,-86.112],[452.027,-300.293,34.3167,166.806,-85.9743],[444.975,-201.811,33.7167,162.167,-85.8279],[437.475,-100.912,33.0833,157.197,-85.6626],[429.718,-0.669403,32.4333,152.019,-85.4802],[421.702,98.6059,31.7667,146.628,-85.2781],[413.221,198.93,31.0667,140.884,-85.0474],[404.268,299.665,30.3333,134.777,-84.7824],[395.042,397.997,29.5833,128.438,-84.4829],[384.919,499.591,28.7667,121.434,-84.1182],[374.301,599.171,27.9167,114.038,-83.6874],[362.763,699.412,27,105.948,-83.1508],[350.292,798.569,26.0167,97.1486,-82.4699],[336.234,899.061,24.9167,87.1737,-81.5372],[320.135,999.684,23.6667,75.6989,-80.1664],[301.099,1099.05,22.2,62.1043,-77.891],[275.59,1199.41,20.25,44.0097,-72.6417],[218.842,1290.4,15.95,13.2416,-0.222174]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 429.718; +_maxRange = 2467.95; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg2.sqf new file mode 100644 index 0000000000..bc9b6f6a3e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg2.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_120mm_dm11a5_dm111a1_pd_chg2 +// Ammo: ace_arty_120mm_dm11a5_dm111a1_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1107.79,[[5111.13,-2000.46,41.1667,235.496,-66.6857],[5067.46,-1900.16,40.7,233.243,-66.2389],[5023.43,-1801.18,40.2333,230.967,-65.7795],[4977.44,-1700.06,39.75,228.587,-65.29],[4931.07,-1600.4,39.2667,226.183,-64.7859],[4884.31,-1502.21,38.7833,223.758,-64.2667],[4835.54,-1402.2,38.2833,221.227,-63.713],[4784.71,-1300.56,37.7667,218.589,-63.1222],[4733.44,-1200.68,37.25,215.93,-62.5117],[4681.73,-1102.57,36.7333,213.251,-61.8807],[4626.22,-1000.13,36.1833,210.38,-61.1852],[4571.91,-902.766,35.65,207.578,-60.4864],[4513.72,-801.493,35.0833,204.584,-59.7162],[4455.01,-702.489,34.5167,201.575,-58.9161],[4392.29,-600.171,33.9167,198.378,-58.0346],[4329,-500.472,33.3167,195.172,-57.1159],[4263.36,-400.773,32.7,191.871,-56.1309],[4195.34,-301.345,32.0667,188.482,-55.0738],[4124.88,-202.469,31.4167,185.01,-53.9382],[4050.11,-102.035,30.7333,181.374,-52.686],[3970.94,-0.627857,30.0167,177.585,-51.3045],[3889.13,98.9158,29.2833,173.745,-49.8143],[3802.76,198.35,28.5167,169.785,-48.1687],[3709.81,298.98,27.7,165.645,-46.311],[3610.12,399.713,26.8333,161.362,-44.2146],[3503.52,499.365,25.9167,156.986,-41.8491],[3385.9,599.87,24.9167,152.432,-39.0859],[3256.94,698.932,23.8333,147.815,-35.8678],[3108.2,799.08,22.6,143.043,-31.9118],[2930.78,899.323,21.15,138.231,-26.863],[2698.37,999.998,19.2833,133.581,-19.7726],[2257.16,1099.85,15.8333,130.687,-5.42145],[2091.33,1107.79,14.5667,131.751,-0.00107571]]], + [46,1144.62,[[5068.85,-2001.47,41.5667,235.869,-67.1916],[5026,-1900.62,41.1,233.606,-66.7546],[4982.81,-1801.09,40.6333,231.319,-66.3054],[4939.26,-1702.89,40.1667,229.01,-65.8433],[4893.78,-1602.59,39.6833,226.594,-65.3508],[4846.33,-1500.38,39.1833,224.071,-64.8255],[4800.08,-1403.09,38.7,221.609,-64.3021],[4750.22,-1300.75,38.1833,218.954,-63.7246],[4699.93,-1200.16,37.6667,216.277,-63.1278],[4649.22,-1101.35,37.15,213.578,-62.5108],[4596.42,-1001.23,36.6167,210.772,-61.8516],[4541.5,-900.027,36.0667,207.858,-61.1471],[4486.1,-800.919,35.5167,204.926,-60.4161],[4428.53,-701.036,34.95,201.889,-59.634],[4368.73,-600.609,34.3667,198.748,-58.7966],[4308.41,-502.649,33.7833,195.596,-57.9245],[4244.08,-401.81,33.1667,192.256,-56.963],[4177.4,-301.198,32.5333,188.822,-55.9307],[4108.33,-201.095,31.8833,185.3,-54.8214],[4036.84,-101.796,31.2167,181.697,-53.628],[3961.06,-1.2592,30.5167,177.931,-52.3106],[3880.9,99.9082,29.7833,174.017,-50.8556],[3798.11,198.91,29.0333,170.059,-49.2834],[3708.92,299.461,28.2333,165.902,-47.5065],[3615.05,398.573,27.4,161.665,-45.5393],[3512.6,499.066,26.5,157.221,-43.2734],[3401.32,599.311,25.5333,152.638,-40.6666],[3279.03,699.031,24.4833,147.932,-37.6218],[3139.48,799.786,23.3,143.043,-33.9132],[2978.07,899.432,21.95,138.118,-29.3175],[2775.64,999.552,20.2833,133.209,-23.1228],[2471.82,1099.81,17.8333,128.887,-13.1291],[2087.59,1144.61,14.8167,129.262,-0.055139]]], + [47,1181.35,[[5022.02,-2000.07,41.95,236.193,-67.6869],[4981.51,-1902.32,41.5,234.001,-67.275],[4939.16,-1802.23,41.0333,231.704,-66.836],[4896.45,-1703.46,40.5667,229.384,-66.3844],[4851.86,-1602.57,40.0833,226.956,-65.903],[4806.89,-1503.14,39.6,224.504,-65.407],[4759.99,-1401.84,39.1,221.942,-64.8779],[4712.68,-1302.15,38.6,219.358,-64.3319],[4663.39,-1200.84,38.0833,216.663,-63.7489],[4613.67,-1101.3,37.5667,213.946,-63.1462],[4561.91,-1000.43,37.0333,211.118,-62.5022],[4509.71,-901.5,36.5,208.27,-61.8349],[4455.41,-801.533,35.95,205.313,-61.1213],[4398.98,-700.754,35.3833,202.248,-60.3576],[4342.06,-602.259,34.8167,199.167,-59.5634],[4281.26,-500.496,34.2167,195.891,-58.6876],[4219.91,-401.369,33.6167,192.604,-57.7738],[4156.3,-302.274,33,189.219,-56.7928],[4088.64,-200.926,32.35,185.649,-55.7103],[4018.59,-100.336,31.6833,181.992,-54.5452],[3946.12,-0.81137,31,178.256,-53.2897],[3869.4,99.6163,30.2833,174.361,-51.9023],[3790.13,198.13,29.55,170.411,-50.403],[3704.63,298.541,28.7667,166.246,-48.7067],[3612.74,399.814,27.9333,161.895,-46.7877],[3516.17,498.98,27.0667,157.484,-44.6587],[3411.05,598.644,26.1333,152.893,-42.2046],[3295.25,698.662,25.1167,148.125,-39.3298],[3164.58,799.489,23.9833,143.162,-35.8653],[3014.68,899.856,22.7,138.091,-31.6003],[2834.91,999.241,21.1833,133.017,-26.0923],[2587.52,1099.81,19.1333,128.112,-17.9073],[2079.89,1181.35,15.05,126.771,-0.0560781]]], + [48,1217.95,[[4973.64,-2003.6,42.35,236.628,-68.2018],[4932.47,-1901.68,41.8833,234.347,-67.7846],[4890.95,-1801.07,41.4167,232.039,-67.3555],[4849.1,-1701.77,40.95,229.708,-66.9142],[4805.39,-1600.33,40.4667,227.267,-66.4436],[4761.31,-1500.34,39.9833,224.802,-65.9587],[4716.87,-1401.83,39.5,222.312,-65.459],[4670.51,-1301.49,39,219.712,-64.9256],[4623.77,-1202.78,38.5,217.088,-64.3748],[4575.06,-1102.5,37.9833,214.353,-63.7866],[4524.35,-1000.86,37.45,211.506,-63.158],[4473.21,-901.151,36.9167,208.636,-62.5066],[4420.01,-800.375,36.3667,205.655,-61.8098],[4366.36,-701.71,35.8167,202.654,-61.0863],[4310.6,-602.296,35.25,199.545,-60.3114],[4252.7,-502.369,34.6667,196.327,-59.4808],[4192.62,-402.174,34.0667,193.005,-58.5897],[4130.32,-301.971,33.45,189.58,-57.6328],[4065.76,-202.031,32.8167,186.057,-56.6042],[3997.18,-100.132,32.15,182.348,-55.4681],[3927.96,-1.66841,31.4833,178.647,-54.2739],[3854.6,97.9665,30.7833,174.777,-52.9535],[3777.02,198.163,30.05,170.751,-51.4924],[3695.12,298.268,29.2833,166.586,-49.8742],[3607,399.6,28.4667,162.217,-48.0414],[3514.34,499.172,27.6167,157.766,-46.0064],[3413.36,599.709,26.7,153.105,-43.6562],[3303.83,699.541,25.7167,148.305,-40.9445],[3181.75,799.765,24.6333,143.314,-37.7151],[3042.92,899.929,23.4167,138.165,-33.7722],[2879.03,999.755,22,132.92,-28.7512],[2669.38,1099.24,20.2167,127.733,-21.7955],[2304.4,1199.89,17.1833,123.476,-8.67871],[2068.35,1217.95,15.2667,124.275,-0.000838607]]], + [49,1254.38,[[4919.28,-2001.14,42.7167,236.933,-68.6922],[4880.38,-1902.38,42.2667,234.724,-68.2991],[4839.72,-1801.23,41.8,232.407,-67.8802],[4798.72,-1701.39,41.3333,230.065,-67.4492],[4757.38,-1602.88,40.8667,227.698,-67.0057],[4714.22,-1502.27,40.3833,225.221,-66.5327],[4670.7,-1403.13,39.9,222.719,-66.0451],[4625.3,-1302.13,39.4,220.104,-65.5246],[4579.52,-1202.76,38.9,217.465,-64.9871],[4531.82,-1101.79,38.3833,214.712,-64.4129],[4483.71,-1002.6,37.8667,211.935,-63.8188],[4433.64,-902.095,37.3333,209.045,-63.1835],[4381.55,-800.495,36.7833,206.041,-62.5039],[4329.01,-700.998,36.2333,203.016,-61.798],[4274.41,-600.717,35.6667,199.878,-61.0419],[4219.35,-502.735,35.1,196.723,-60.2548],[4160.53,-401.53,34.5,193.366,-59.3859],[4099.54,-300.278,33.8833,189.903,-58.4524],[4038.01,-201.869,33.2667,186.43,-57.4756],[3972.56,-101.264,32.6167,182.767,-56.3962],[3904.83,-1.45786,31.95,179.011,-55.2326],[3833.04,99.6015,31.25,175.079,-53.9454],[3758.85,199.042,30.5333,171.074,-52.5533],[3680.47,298.683,29.7833,166.918,-51.0106],[3596.04,399.902,28.9833,162.54,-49.2615],[3507.2,499.697,28.15,158.061,-47.3179],[3412.06,599.098,27.2667,153.429,-45.1127],[3308.64,698.559,26.3167,148.616,-42.563],[3193.04,799.378,25.2667,143.551,-39.5167],[3063.04,899.998,24.1,138.31,-35.8348],[2914.41,998.902,22.7833,133.001,-31.2897],[2727.27,1099.62,21.15,127.523,-25.0777],[2456.74,1199.9,18.8333,122.391,-15.291],[2057.14,1254.38,15.5,121.735,-0.040033]]], + [50,1290.6,[[4861.92,-2000.02,43.0833,237.269,-69.1876],[4823.84,-1900.78,42.6333,235.051,-68.8038],[4785.45,-1802.74,42.1833,232.809,-68.4095],[4745.31,-1702.35,41.7167,230.457,-67.9891],[4704.85,-1603.29,41.25,228.079,-67.5564],[4662.59,-1502.1,40.7667,225.59,-67.0949],[4619.98,-1402.37,40.2833,223.075,-66.619],[4575.54,-1300.76,39.7833,220.447,-66.1111],[4530.72,-1200.76,39.2833,217.792,-65.5865],[4485.54,-1102.4,38.7833,215.112,-65.0444],[4438.45,-1002.49,38.2667,212.317,-64.4651],[4389.44,-901.247,37.7333,209.407,-63.8455],[4340.01,-801.943,37.2,206.472,-63.203],[4288.6,-701.599,36.65,203.423,-62.5151],[4235.17,-600.437,36.0833,200.259,-61.7781],[4181.29,-501.563,35.5167,197.075,-61.0107],[4125.33,-402.207,34.9333,193.78,-60.1873],[4067.28,-302.617,34.3333,190.374,-59.303],[4005.46,-200.402,33.7,186.767,-58.3258],[3943.08,-101.218,33.0667,183.152,-57.3009],[3876.82,-0.136732,32.4,179.345,-56.1672],[3808.28,99.8823,31.7167,175.448,-54.943],[3737.42,198.517,31.0167,171.471,-53.6193],[3660.77,299.84,30.2667,167.236,-52.1172],[3581.67,398.685,29.5,162.951,-50.4857],[3496.58,498.64,28.6833,158.453,-48.6335],[3405.37,598.6,27.8167,153.778,-46.5293],[3306.1,699.103,26.8833,148.889,-44.0922],[3198.58,798.432,25.8833,143.862,-41.2701],[3077.11,898.978,24.7667,138.572,-37.8442],[2937.6,999.568,23.5,133.085,-33.5894],[2770.08,1099.86,22,127.47,-28.0317],[2546.73,1199.85,20.0333,121.926,-19.9301],[2042.15,1290.6,15.7167,119.189,-0.0225921]]], + [51,1326.56,[[4801.54,-2000.32,43.45,237.637,-69.688],[4764.27,-1900.6,43,235.411,-69.3136],[4726.71,-1802.07,42.55,233.16,-68.929],[4687.43,-1701.17,42.0833,230.798,-68.5188],[4647.84,-1601.58,41.6167,228.41,-68.0967],[4607.92,-1503.33,41.15,225.996,-67.6621],[4566.24,-1403,40.6667,223.469,-67.1982],[4522.76,-1300.77,40.1667,220.827,-66.7031],[4478.91,-1200.14,39.6667,218.158,-66.1916],[4434.71,-1101.13,39.1667,215.462,-65.663],[4388.64,-1000.56,38.65,212.65,-65.098],[4342.19,-901.772,38.1333,209.812,-64.5129],[4293.85,-801.703,37.6,206.857,-63.8868],[4243.56,-700.561,37.05,203.785,-63.2164],[4192.85,-601.535,36.5,200.689,-62.5195],[4140.15,-501.754,35.9333,197.478,-61.7723],[4085.44,-401.455,35.35,194.151,-60.9703],[4028.66,-300.885,34.75,190.712,-60.1086],[3969.8,-200.303,34.1333,187.161,-59.1818],[3910.42,-102.583,33.5167,183.6,-58.2106],[3845.65,-0.207141,32.85,179.743,-57.1076],[3780.29,98.7245,32.1833,175.887,-55.9457],[3711.03,198.841,31.4833,171.846,-54.6579],[3637.8,299.529,30.75,167.633,-53.2291],[3562.19,398,30,163.357,-51.6774],[3479.05,499.964,29.1833,158.757,-49.8757],[3393.38,598.271,28.35,154.144,-47.9079],[3298.17,699.611,27.4333,149.193,-45.5807],[3196.69,798.648,26.4667,144.151,-42.9281],[3081.69,899.934,25.3833,138.777,-39.6959],[2952.76,999.964,24.1833,133.253,-35.7751],[2802.18,1099.15,22.8,127.583,-30.792],[2608.8,1199.44,21.05,121.76,-23.7795],[2294.75,1299.74,18.2667,116.481,-11.2384],[2025.44,1326.56,15.9333,116.62,-0.0254478]]], + [52,1362.24,[[4738.1,-2002.1,43.8167,238.036,-70.1934],[4701.66,-1901.88,43.3667,235.803,-69.8285],[4664.93,-1802.85,42.9167,233.544,-69.4536],[4626.53,-1701.42,42.45,231.174,-69.0539],[4587.81,-1601.31,41.9833,228.776,-68.6424],[4548.78,-1502.52,41.5167,226.351,-68.2188],[4508.02,-1401.63,41.0333,223.812,-67.7666],[4466.93,-1302.21,40.55,221.246,-67.3002],[4424.06,-1200.93,40.05,218.563,-66.8021],[4380.85,-1101.27,39.55,215.852,-66.2872],[4335.81,-1000.02,39.0333,213.023,-65.7368],[4290.4,-900.546,38.5167,210.168,-65.1668],[4244.62,-802.878,38,207.286,-64.5761],[4195.47,-700.924,37.45,204.192,-63.9235],[4145.9,-601.077,36.9,201.073,-63.245],[4094.39,-500.442,36.3333,197.835,-62.5173],[4042.44,-402.11,35.7667,194.575,-61.7589],[3986.96,-300.543,35.1667,191.102,-60.9204],[3931,-201.634,34.5667,187.612,-60.0432],[3871.41,-100.158,33.9333,183.913,-59.0726],[3811.29,-1.73388,33.3,180.205,-58.0531],[3747.44,98.5259,32.6333,176.296,-56.9236],[3681.4,197.679,31.95,172.293,-55.7017],[3609.87,299.958,31.2167,168.01,-54.313],[3537.67,397.898,30.4833,163.752,-52.8381],[3458.15,499.719,29.6833,159.151,-51.1232],[3376.19,598.173,28.8667,154.52,-49.2497],[3286.64,698.329,27.9833,149.612,-47.0725],[3189.33,798.583,27.0333,144.487,-44.5421],[3082.33,898.716,26,139.142,-41.5499],[2961.87,999.06,24.85,133.55,-37.9047],[2822.22,1099.36,23.5333,127.729,-33.2996],[2650.12,1199.93,21.9333,121.713,-27.0668],[2407.46,1299.85,19.7167,115.832,-17.3494],[2006.99,1362.23,16.15,114.025,-0.0500754]]], + [53,1397.58,[[4670.3,-2001.65,44.1667,238.385,-70.6901],[4634.69,-1900.97,43.7167,236.145,-70.3345],[4598.79,-1801.48,43.2667,233.878,-69.9692],[4562.6,-1703.18,42.8167,231.584,-69.5937],[4524.77,-1602.52,42.35,229.177,-69.1931],[4486.63,-1503.19,41.8833,226.743,-68.7806],[4446.81,-1401.72,41.4,224.193,-68.3403],[4406.65,-1301.73,40.9167,221.614,-67.8861],[4366.17,-1203.21,40.4333,219.008,-67.4174],[4323.95,-1102.89,39.9333,216.284,-66.9165],[4279.96,-1000.94,39.4167,213.44,-66.3809],[4235.6,-900.762,38.9,210.567,-65.8262],[4190.87,-802.384,38.3833,207.667,-65.2513],[4144.32,-702.748,37.85,204.646,-64.6357],[4095.9,-602.065,37.3,201.505,-63.9758],[4045.59,-500.56,36.7333,198.242,-63.2681],[3994.85,-401.348,36.1667,194.954,-62.5302],[3942.18,-301.651,35.5833,191.548,-61.7375],[3887.53,-201.717,34.9833,188.023,-60.8847],[3830.87,-101.809,34.3667,184.384,-59.9663],[3772.17,-2.19831,33.7333,180.632,-58.9758],[3709.83,99.3229,33.0667,176.674,-57.878],[3645.35,199.783,32.3833,172.615,-56.6897],[3578.7,298.859,31.6833,168.464,-55.4016],[3508.23,398.428,30.95,164.131,-53.9693],[3432.25,499.942,30.1667,159.538,-52.3384],[3353.9,598.37,29.3667,154.9,-50.5564],[3268.19,698.931,28.5,149.96,-48.4824],[3176.61,798.32,27.5833,144.861,-46.1127],[3075.65,898.442,26.5833,139.492,-43.3039],[2961.64,999.845,25.4667,133.799,-39.8693],[2834.21,1098.89,24.2333,127.986,-35.6842],[2678.93,1199.69,22.75,121.831,-30.0793],[2475.11,1299.77,20.8333,115.615,-21.9215],[1984.94,1397.58,16.35,111.423,-0.0140635]]], + [54,1432.55,[[4599.47,-2002.77,44.5167,238.767,-71.192],[4564.69,-1901.62,44.0667,236.52,-70.8459],[4529.63,-1801.65,43.6167,234.245,-70.4902],[4494.3,-1702.87,43.1667,231.943,-70.1247],[4457.35,-1601.7,42.7,229.527,-69.7347],[4420.11,-1501.86,42.2333,227.083,-69.3331],[4382.56,-1403.36,41.7667,224.611,-68.9193],[4343.36,-1302.77,41.2833,222.021,-68.4775],[4302.47,-1200.27,40.7833,219.312,-68.0056],[4262.61,-1102.71,40.3,216.665,-67.5342],[4219.66,-1000.11,39.7833,213.805,-67.0131],[4177.75,-902.497,39.2833,211.01,-66.491],[4132.67,-800.229,38.75,207.998,-65.9138],[4088.64,-703.005,38.2333,205.053,-65.3336],[4041.38,-601.535,37.6833,201.889,-64.692],[3993.72,-502.187,37.1333,198.699,-64.0243],[3944.2,-402.08,36.5667,195.385,-63.3075],[3892.79,-301.451,35.9833,191.95,-62.5371],[3839.45,-200.549,35.3833,188.393,-61.7082],[3785.65,-102.324,34.7833,184.816,-60.8398],[3728.38,-1.58986,34.15,181.023,-59.8777],[3669.07,98.601,33.5,177.118,-58.8382],[3607.7,197.95,32.8333,173.106,-57.7133],[3542.69,298.493,32.1333,168.894,-56.4636],[3473.95,399.616,31.4,164.491,-55.0731],[3403,498.519,30.65,160.013,-53.558],[3326.6,598.9,29.85,155.278,-51.8298],[3244.64,699.686,29,150.317,-49.8561],[3156.98,799.706,28.1,145.171,-47.5982],[3061.86,899.349,27.1333,139.804,-44.9635],[2955.77,999.797,26.0667,134.134,-41.7827],[2836.71,1099.38,24.8833,128.238,-37.8905],[2695.8,1199.73,23.5,122.021,-32.8236],[2518.41,1299.77,21.7833,115.606,-25.7397],[2239.31,1399.85,19.1333,109.416,-13.244],[1963.05,1432.55,16.5667,108.781,-0.0856847]]], + [55,1467.12,[[4524.34,-2001.72,44.85,239.098,-71.6863],[4490.4,-1900.14,44.4,236.844,-71.3494],[4457.46,-1803.42,43.9667,234.646,-71.0163],[4421.69,-1700.49,43.5,232.251,-70.6475],[4386.93,-1602.47,43.05,229.913,-70.2815],[4350.58,-1502.1,42.5833,227.46,-69.891],[4313.95,-1403.07,42.1167,224.978,-69.4886],[4275.7,-1301.93,41.6333,222.377,-69.0589],[4237.13,-1202.26,41.15,219.747,-68.6154],[4196.91,-1100.73,40.65,216.995,-68.1413],[4156.35,-1000.82,40.15,214.213,-67.651],[4115.46,-902.56,39.65,211.402,-67.1435],[4072.87,-802.78,39.1333,208.468,-66.6004],[4028.53,-701.68,38.6,205.41,-66.0185],[3983.83,-602.538,38.0667,202.322,-65.4139],[3937.34,-502.379,37.5167,199.109,-64.7654],[3889.04,-401.428,36.95,195.77,-64.069],[3840.33,-302.787,36.3833,192.406,-63.3423],[3788.32,-200.899,35.7833,188.818,-62.5377],[3735.85,-101.678,35.1833,185.207,-61.6946],[3681.47,-2.52026,34.5667,181.476,-60.7853],[3623.65,98.8561,33.9167,177.527,-59.7766],[3563.81,199.434,33.25,173.465,-58.6846],[3501.94,298.901,32.5667,169.297,-57.5005],[3436.46,399.219,31.85,164.929,-56.1825],[3367.3,499.751,31.1,160.375,-54.7131],[3294.39,599.817,30.3167,155.649,-53.0716],[3217.66,698.692,29.5,150.777,-51.2339],[3133.86,799.282,28.6167,145.594,-49.0881],[3042.81,899.978,27.6667,140.156,-46.5801],[2944.36,999.016,26.65,134.543,-43.6449],[2831.76,1100,25.5,128.527,-39.9833],[2702.94,1199.81,24.2,122.277,-35.3725],[2545.63,1299.53,22.6333,115.748,-29.1148],[2324.5,1399.7,20.4667,109.086,-19.2257],[1935.87,1467.12,16.75,106.143,-0.00827332]]], + [56,1501.24,[[4446.22,-2002.32,45.1833,239.462,-72.1859],[4413.13,-1900.29,44.7333,237.201,-71.8584],[4381,-1803.13,44.3,234.997,-71.5345],[4347.38,-1703.4,43.85,232.68,-71.1889],[4312.23,-1601.24,43.3833,230.248,-70.8202],[4276.79,-1500.39,42.9167,227.785,-70.4404],[4241.07,-1400.87,42.45,225.293,-70.0492],[4205.05,-1302.69,41.9833,222.771,-69.6459],[4167.46,-1202.46,41.5,220.13,-69.215],[4128.24,-1100.33,41,217.366,-68.7544],[4090.03,-1003.14,40.5167,214.664,-68.2941],[4048.84,-900.948,40,211.745,-67.7849],[4007.31,-800.533,39.4833,208.794,-67.257],[3965.44,-701.921,38.9667,205.813,-66.7094],[3921.87,-602.049,38.4333,202.706,-66.1224],[3876.55,-501.128,37.8833,199.471,-65.4926],[3830.86,-402.344,37.3333,196.207,-64.8365],[3783.39,-302.834,36.7667,192.817,-64.1314],[3732.7,-200.016,36.1667,189.198,-63.3505],[3683,-102.6,35.5833,185.656,-62.5552],[3630.01,-2.38954,34.9667,181.889,-61.6734],[3575.12,97.5214,34.3333,178,-60.7206],[3516.83,199.348,33.6667,173.891,-59.6622],[3458.02,297.696,33,169.772,-58.5428],[3394.24,399.482,32.2833,165.343,-57.2659],[3328.39,499.348,31.55,160.818,-55.8739],[3258.9,599.047,30.7833,156.111,-54.3185],[3184.19,699.876,29.9667,151.138,-52.5387],[3105.68,798.846,29.1167,146.031,-50.5394],[3020.19,898.647,28.2,140.634,-48.1994],[2925.96,999.191,27.2,134.921,-45.4078],[2821.2,1099.59,26.1,128.913,-42.0211],[2702.39,1199.26,24.8667,122.626,-37.7941],[2559.32,1299.74,23.4,115.954,-32.1313],[2372.9,1399.49,21.5167,109.072,-23.8201],[1960.45,1499.94,17.45,103.182,-2.76086],[1908.82,1501.24,16.95,103.467,-0.0422232]]], + [57,1534.88,[[4363.91,-2000.81,45.5,239.775,-72.6789],[4332.86,-1902.14,45.0667,237.592,-72.3726],[4300.35,-1800.8,44.6167,235.297,-72.0458],[4267.59,-1700.64,44.1667,232.972,-71.7099],[4234.56,-1601.68,43.7167,230.618,-71.3644],[4200.04,-1500.33,43.25,228.148,-70.9956],[4165.23,-1400.31,42.7833,225.646,-70.6157],[4130.15,-1301.63,42.3167,223.115,-70.224],[4093.52,-1200.86,41.8333,220.462,-69.8055],[4056.59,-1101.57,41.35,217.778,-69.3732],[4018.08,-1000.44,40.85,214.97,-68.9109],[3979.25,-900.952,40.35,212.13,-68.4324],[3940.11,-803.119,39.85,209.26,-67.9368],[3898.02,-700.618,39.3167,206.166,-67.3885],[3855.57,-600.061,38.7833,203.04,-66.8186],[3812.77,-501.476,38.25,199.883,-66.226],[3768.28,-401.906,37.7,196.597,-65.5896],[3722.05,-301.578,37.1333,193.181,-64.9056],[3674.06,-200.729,36.55,189.635,-64.1694],[3625.66,-102.383,35.9667,186.063,-63.3986],[3574.07,-1.17689,35.35,182.261,-62.5436],[3520.62,99.7667,34.7167,178.333,-61.6194],[3466.71,197.628,34.0833,174.386,-60.6452],[3408.04,299.706,33.4,170.113,-59.5337],[3348.85,398.088,32.7167,165.833,-58.3546],[3284.76,499.495,31.9833,161.241,-57.0075],[3218.62,598.672,31.2333,156.559,-55.535],[3147.41,699.328,30.4333,151.595,-53.8487],[3072.54,798.461,29.6,146.478,-51.9536],[2990.9,898.872,28.7,141.042,-49.7324],[2902.33,998.909,27.7333,135.346,-47.1243],[2803.58,1099.76,26.6667,129.293,-43.9516],[2692.81,1199.75,25.4833,122.95,-40.033],[2563.36,1299.42,24.1167,116.267,-34.9378],[2400.14,1399.34,22.4167,109.22,-27.6968],[2144.43,1499.98,19.8,102.086,-14.7004],[1878.42,1534.88,17.1333,100.779,-0.010746]]], + [58,1567.99,[[4278.62,-2001.04,45.8167,240.121,-73.1774],[4248.4,-1901.95,45.3833,237.933,-72.8801],[4216.75,-1800.18,44.9333,235.631,-72.5629],[4186.04,-1703.29,44.5,233.386,-72.249],[4152.71,-1600.19,44.0333,230.938,-71.9014],[4120.3,-1501.99,43.5833,228.547,-71.5564],[4086.43,-1401.45,43.1167,226.038,-71.1878],[4052.28,-1302.25,42.65,223.497,-70.808],[4016.63,-1200.94,42.1667,220.834,-70.402],[3980.69,-1101.1,41.6833,218.139,-69.9827],[3944.46,-1002.76,41.2,215.413,-69.5494],[3906.68,-902.635,40.7,212.56,-69.0857],[3867.32,-800.906,40.1833,209.58,-68.5891],[3827.63,-700.967,39.6667,206.566,-68.0739],[3787.62,-602.844,39.15,203.52,-67.5391],[3744.68,-500.418,38.6,200.245,-66.947],[3701.38,-400.111,38.05,196.937,-66.3299],[3657.72,-301.956,37.5,193.599,-65.6863],[3611.03,-200.24,36.9167,190.027,-64.9731],[3563.95,-101.015,36.3333,186.425,-64.2262],[3515.11,-1.59562,35.7333,182.693,-63.4203],[3464.49,97.7555,35.1167,178.832,-62.5496],[3410.68,199.325,34.4667,174.739,-61.5818],[3356.4,297.611,33.8167,170.629,-60.5587],[3297.44,399.732,33.1167,166.19,-59.3901],[3237.95,497.93,32.4167,161.745,-58.1463],[3173.64,598.725,31.6667,156.99,-56.7231],[3105.86,699.047,30.8833,152.043,-55.1271],[3034.54,798.17,30.0667,146.927,-53.3328],[2956.67,899.005,29.1833,141.465,-51.2269],[2872.09,999.937,28.2333,135.71,-48.7505],[2780.66,1099.2,27.2167,129.738,-45.8311],[2677.65,1199.01,26.0833,123.386,-42.2128],[2558.15,1299.2,24.7833,116.623,-37.5411],[2412.3,1399.32,23.2167,109.462,-31.1081],[2207.46,1499.95,21.05,101.966,-20.7406],[1846.42,1567.99,17.3167,98.0653,-0.00431915]]], + [59,1600.55,[[4190.38,-2003.05,46.1333,240.501,-73.6812],[4160.98,-1903.54,45.7,238.308,-73.393],[4130.21,-1801.34,45.25,236,-73.0855],[4099.2,-1700.29,44.8,233.662,-72.7694],[4067.93,-1600.44,44.35,231.294,-72.4442],[4036.42,-1501.79,43.9,228.896,-72.1097],[4003.47,-1400.77,43.4333,226.378,-71.7524],[3970.27,-1301.08,42.9667,223.828,-71.3841],[3936.8,-1202.75,42.5,221.247,-71.0042],[3901.85,-1102.35,42.0167,218.542,-70.5981],[3865.41,-1000.06,41.5167,215.71,-70.1636],[3829.89,-902.725,41.0333,212.939,-69.7291],[3791.62,-800.375,40.5167,209.944,-69.248],[3754.29,-703.025,40.0167,207.013,-68.7652],[3714.14,-601.053,39.4833,203.852,-68.2305],[3673.65,-501.038,38.95,200.658,-67.6743],[3632.84,-403.009,38.4167,197.431,-67.0953],[3589.12,-301.063,37.85,193.969,-66.4537],[3545.03,-201.425,37.2833,190.474,-65.7831],[3499.27,-101.306,36.7,186.845,-65.0604],[3451.81,-0.955516,36.1,183.082,-64.2807],[3402.61,99.3621,35.4833,179.186,-63.4379],[3351.65,199.371,34.85,175.159,-62.5254],[3298.9,298.781,34.2,171.004,-61.5358],[3242.97,399.71,33.5167,166.62,-60.4326],[3185.17,499.237,32.8167,162.118,-59.23],[3124.08,599.25,32.0833,157.4,-57.8846],[3059.65,699.083,31.3167,152.479,-56.3757],[2991.8,798.031,30.5167,147.373,-54.6786],[2917.6,899.109,29.65,141.897,-52.6845],[2838.38,998.994,28.7333,136.2,-50.3802],[2751.09,1099.6,27.7333,130.14,-47.6119],[2655.55,1198.58,26.65,123.825,-44.2785],[2544.1,1299.67,25.4,116.971,-39.9508],[2413.27,1399.03,23.95,109.798,-34.2173],[2239.44,1499.6,22.05,102.112,-25.4722],[1844.56,1599.97,17.8333,95.1554,-1.99161],[1812.83,1600.55,17.5,95.3271,-0.0251785]]], + [60,1632.51,[[4098.05,-2003.07,46.4333,240.831,-74.1794],[4069.5,-1903.17,46,238.633,-73.9002],[4039.6,-1800.55,45.55,236.319,-73.6022],[4010.58,-1702.83,45.1167,234.062,-73.3074],[3980.21,-1602.52,44.6667,231.688,-72.9926],[3949.6,-1503.39,44.2167,229.283,-72.6688],[3917.6,-1401.89,43.75,226.757,-72.3229],[3885.35,-1301.71,43.2833,224.199,-71.9663],[3852.83,-1202.87,42.8167,221.609,-71.5985],[3818.89,-1101.95,42.3333,218.893,-71.2053],[3784.67,-1002.52,41.85,216.145,-70.7988],[3748.99,-901.24,41.35,213.267,-70.3637],[3713.01,-801.604,40.85,210.355,-69.9131],[3675.54,-700.396,40.3333,207.311,-69.4301],[3637.76,-600.991,39.8167,204.233,-68.9287],[3598.44,-500.3,39.2833,201.021,-68.3904],[3558.8,-401.587,38.75,197.774,-67.8301],[3517.59,-301.894,38.2,194.393,-67.2277],[3474.78,-201.447,37.6333,190.874,-66.5793],[3430.34,-100.486,37.05,187.219,-65.8804],[3385.53,-2.03564,36.4667,183.531,-65.1476],[3337.77,99.2683,35.85,179.602,-64.3333],[3289.6,197.681,35.2333,175.645,-63.4752],[3238.4,298.238,34.5833,171.449,-62.5197],[3185.44,397.935,33.9167,167.124,-61.4809],[3129.34,498.817,33.2167,162.567,-60.3205],[3071.41,598.005,32.5,157.894,-59.0521],[3008.88,699.458,31.7333,152.897,-57.5964],[2944.41,798.07,30.95,147.811,-55.9933],[2873.82,899.219,30.1,142.333,-54.1073],[2798.36,999.573,29.2,136.607,-51.9261],[2716.53,1099.52,28.2333,130.583,-49.3475],[2626.76,1198.73,27.1833,124.244,-46.2366],[2524.51,1298.69,26,117.449,-42.2964],[2403.62,1399.37,24.6167,110.137,-37.0376],[2251.65,1499.67,22.9,102.355,-29.441],[2013.08,1599.88,20.25,94.2992,-15.4155],[1777.64,1632.51,17.6833,92.5644,-0.0763725]]], + [61,1663.84,[[4001.74,-2001.07,46.7167,241.11,-74.6728],[3974.01,-1900.81,46.2833,238.906,-74.4023],[3946.07,-1801.61,45.85,236.673,-74.1246],[3917.91,-1703.48,45.4167,234.41,-73.8393],[3888.44,-1602.73,44.9667,232.03,-73.5348],[3858.73,-1503.18,44.5167,229.618,-73.2214],[3827.68,-1401.21,44.05,227.084,-72.8867],[3796.37,-1300.57,43.5833,224.518,-72.5416],[3764.82,-1201.28,43.1167,221.918,-72.1857],[3733.02,-1103.34,42.65,219.287,-71.8184],[3699.82,-1003.36,42.1667,216.528,-71.4255],[3665.2,-901.519,41.6667,213.638,-71.0048],[3630.29,-801.31,41.1667,210.714,-70.5691],[3595.11,-702.759,40.6667,207.755,-70.1174],[3558.46,-602.691,40.15,204.662,-69.633],[3520.32,-501.307,39.6167,201.434,-69.1131],[3481.86,-401.896,39.0833,198.169,-68.5717],[3441.89,-301.474,38.5333,194.767,-67.9896],[3400.36,-200.268,37.9667,191.226,-67.3629],[3358.48,-101.39,37.4,187.65,-66.7072],[3315.02,-2.07107,36.8167,183.936,-65.9995],[3269.95,97.4359,36.2167,180.082,-65.2349],[3221.98,199.512,35.5833,175.983,-64.3841],[3173.59,298.504,34.95,171.855,-63.4851],[3122.23,399.324,34.2833,167.485,-62.4822],[3069.13,499.011,33.6,162.985,-61.389],[3012.96,599.528,32.8833,158.252,-60.1651],[2954.97,698.043,32.15,153.405,-58.8228],[2892.49,798.355,31.3667,148.236,-57.2786],[2825.41,899.407,30.5333,142.766,-55.4971],[2755,998.213,29.6667,137.132,-53.4758],[2677.1,1099.04,28.7167,131.058,-51.0392],[2591.52,1199.7,27.6833,124.621,-48.0935],[2496.69,1299.14,26.55,117.847,-44.463],[2386.74,1398.84,25.25,110.578,-39.7164],[2251.2,1499.22,23.6667,102.721,-32.9963],[2060.09,1599.62,21.4667,94.3527,-21.8481],[1739.36,1663.84,17.85,89.7874,-0.0562652]]], + [62,1694.5,[[3902.53,-2000.99,47,241.425,-75.1721],[3875.66,-1900.36,46.5667,239.216,-74.9106],[3848.57,-1800.78,46.1333,236.977,-74.642],[3821.27,-1702.28,45.7,234.708,-74.3662],[3792.7,-1601.13,45.25,232.321,-74.0717],[3763.9,-1501.18,44.8,229.902,-73.7687],[3734.87,-1402.43,44.35,227.452,-73.4567],[3704.53,-1301.32,43.8833,224.877,-73.1233],[3673.95,-1201.54,43.4167,222.27,-72.7794],[3643.12,-1103.12,42.95,219.629,-72.4246],[3610.94,-1002.64,42.4667,216.86,-72.0449],[3577.39,-900.272,41.9667,213.959,-71.6384],[3544.69,-802.862,41.4833,211.12,-71.2316],[3509.45,-700.442,40.9667,208.049,-70.7807],[3475.08,-603.03,40.4667,205.041,-70.3279],[3438.12,-500.999,39.9333,201.796,-69.8259],[3400.85,-400.934,39.4,198.514,-69.3031],[3363.29,-302.864,38.8667,195.197,-68.7583],[3323.05,-200.882,38.3,191.634,-68.1538],[3282.48,-101.219,37.7333,188.035,-67.5211],[3240.38,-1.08334,37.15,184.294,-66.8382],[3196.71,99.2717,36.55,180.411,-66.1001],[3151.45,199.582,35.9333,176.386,-65.3008],[3104.58,299.569,35.3,172.221,-64.4337],[3056.07,398.942,34.65,167.918,-63.4911],[3004.64,499.815,33.9667,163.37,-62.4375],[2951.5,599.269,33.2667,158.691,-61.2856],[2895.35,699.183,32.5333,153.779,-59.9925],[2836.13,798.893,31.7667,148.645,-58.5366],[2772.49,899.687,30.95,143.192,-56.856],[2705.65,998.57,30.1,137.557,-54.9487],[2631.57,1099.96,29.1667,131.449,-52.6458],[2552.77,1198.52,28.1833,125.147,-49.9531],[2463.75,1298.57,27.0833,118.329,-46.5732],[2361.51,1398.99,25.8333,110.993,-42.1952],[2238.8,1499.53,24.35,103.078,-36.1576],[2076.73,1599.71,22.4167,94.5763,-26.775],[1699.57,1694.5,18.0167,86.9853,-0.0666527]]], + [63,1724.47,[[3800.46,-2002.85,47.2833,241.773,-75.677],[3774.44,-1901.84,46.85,239.56,-75.4246],[3748.22,-1801.88,46.4167,237.316,-75.1653],[3721.79,-1702.99,45.9833,235.043,-74.8991],[3694.13,-1601.44,45.5333,232.65,-74.6148],[3666.25,-1501.07,45.0833,230.224,-74.3222],[3638.15,-1401.9,44.6333,227.767,-74.021],[3608.77,-1300.36,44.1667,225.185,-73.6992],[3579.16,-1200.14,43.7,222.569,-73.3671],[3549.32,-1101.28,43.2333,219.919,-73.0245],[3518.17,-1000.33,42.75,217.139,-72.6578],[3486.76,-900.872,42.2667,214.323,-72.2786],[3455.11,-802.933,41.7833,211.474,-71.8861],[3422.11,-703.237,41.2833,208.489,-71.4655],[3387.74,-601.972,40.7667,205.368,-71.0143],[3353.08,-502.518,40.25,202.21,-70.5453],[3317.02,-401.783,39.7167,198.911,-70.0415],[3280.67,-303.036,39.1833,195.576,-69.5163],[3241.73,-200.328,38.6167,191.992,-68.9335],[3203.63,-102.851,38.0667,188.478,-68.3417],[3162.88,-1.88099,37.4833,184.712,-67.6841],[3120.63,99.3416,36.8833,180.801,-66.973],[3078.03,197.855,36.2833,176.855,-66.2243],[3032.69,298.858,35.65,172.655,-65.3898],[2985.76,399.285,35,168.312,-64.4823],[2937.22,498.834,34.3333,163.829,-63.4931],[2885.82,599.54,33.6333,159.099,-62.3849],[2832.74,698.528,32.9167,154.239,-61.1694],[2775.48,799.743,32.15,149.032,-59.7692],[2716.45,898.088,31.3667,143.719,-58.2203],[2651.82,998.917,30.5167,137.98,-56.3886],[2582.76,1098.9,29.6167,131.963,-54.257],[2507.9,1198.4,28.65,125.606,-51.7181],[2424.48,1298.58,27.5833,118.779,-48.5748],[2329.68,1399.03,26.3833,111.433,-44.547],[2217.87,1499.56,24.9833,103.493,-39.0909],[2076.36,1599.58,23.2333,94.9206,-30.9707],[1843.5,1699.95,20.4,85.7738,-14.6855],[1658.28,1724.47,18.1833,84.1585,-0.110201]]], + [64,1753.69,[[3694.54,-2002.83,47.55,242.072,-76.1781],[3669.39,-1901.47,47.1167,239.854,-75.9346],[3644.03,-1801.15,46.6833,237.606,-75.6845],[3618.48,-1701.9,46.25,235.327,-75.4277],[3592.72,-1603.73,45.8167,233.017,-75.1637],[3565.77,-1502.94,45.3667,230.586,-74.8818],[3538.61,-1403.35,44.9167,228.123,-74.5916],[3510.21,-1301.35,44.45,225.534,-74.2814],[3481.59,-1200.68,43.9833,222.91,-73.9614],[3452.74,-1101.36,43.5167,220.252,-73.6312],[3423.66,-1003.4,43.05,217.559,-73.2902],[3393.31,-903.41,42.5667,214.735,-72.925],[3361.66,-801.56,42.0667,211.776,-72.5339],[3329.76,-701.351,41.5667,208.779,-72.1284],[3297.6,-602.808,41.0667,205.745,-71.7077],[3264.11,-502.756,40.55,202.573,-71.256],[3229.25,-401.397,40.0167,199.258,-70.7707],[3194.12,-302.019,39.4833,195.905,-70.2649],[3157.59,-201.642,38.9333,192.408,-69.7203],[3119.65,-100.493,38.3667,188.765,-69.1332],[3081.4,-1.68276,37.8,185.083,-68.5179],[3041.7,97.5548,37.2167,181.255,-67.853],[2999.39,199.687,36.6,177.17,-67.1126],[2956.73,298.925,35.9833,173.047,-66.3306],[2912.56,397.785,35.35,168.779,-65.4806],[2865.67,498.449,34.6833,164.254,-64.5301],[2817.2,597.959,34,159.588,-63.491],[2765.94,698.268,33.2833,154.671,-62.3239],[2711.83,798.732,32.5333,149.511,-61.0089],[2654.82,898.662,31.75,144.12,-59.522],[2593.63,999.276,30.9167,138.399,-57.798],[2528.19,1099.42,30.0333,132.376,-55.7903],[2457.16,1199.54,29.0833,125.982,-53.3962],[2379.17,1299.38,28.05,119.177,-50.4759],[2291.51,1399.22,26.9,111.872,-46.7789],[2188.8,1499.87,25.5667,103.908,-41.8082],[2062.82,1599.8,23.95,95.2931,-34.6409],[1881.05,1699.5,21.65,85.9424,-22.0719],[1614.13,1753.69,18.3333,81.3155,-0.0762987]]], + [65,1782.14,[[3584.87,-2000.93,47.8,242.321,-76.6759],[3561.51,-1903.14,47.3833,240.185,-76.4504],[3537.04,-1802.46,46.95,237.932,-76.2097],[3512.37,-1702.84,46.5167,235.649,-75.9624],[3486.55,-1600.52,46.0667,233.244,-75.6984],[3461.49,-1503.11,45.6333,230.898,-75.4369],[3435.26,-1403.12,45.1833,228.428,-75.1574],[3407.85,-1300.71,44.7167,225.831,-74.8588],[3381.21,-1203.21,44.2667,223.294,-74.5619],[3353.36,-1103.41,43.8,220.629,-74.2442],[3324.29,-1001.49,43.3167,217.831,-73.9043],[3294.99,-901.055,42.8333,214.996,-73.5526],[3265.46,-802.123,42.35,212.125,-73.1887],[3234.66,-701.388,41.85,209.117,-72.7986],[3203.62,-602.313,41.35,206.071,-72.3938],[3171.29,-501.705,40.8333,202.884,-71.9592],[3138.71,-402.923,40.3167,199.659,-71.507],[3104.8,-302.898,39.7833,196.29,-71.0208],[3069.55,-201.846,39.2333,192.774,-70.4973],[3034.02,-102.958,38.6833,189.219,-69.9499],[2996.02,-0.475278,38.1,185.406,-69.3412],[2957.71,99.4999,37.5167,181.553,-68.7016],[2917.99,199.676,36.9167,177.549,-68.0091],[2876.82,299.788,36.3,173.396,-67.2577],[2834.2,399.555,35.6667,169.092,-66.4407],[2790.09,498.685,35.0167,164.64,-65.5503],[2743.33,599.284,34.3333,159.928,-64.5524],[2695.03,698.435,33.6333,155.073,-63.4579],[2644,798.01,32.9,149.966,-62.2247],[2589.02,899.444,32.1167,144.501,-60.7989],[2531.2,999.69,31.3,138.806,-59.1787],[2469.29,1099.83,30.4333,132.79,-57.2909],[2403.22,1198.65,29.5167,126.487,-55.0799],[2329.26,1299.59,28.5,119.615,-52.332],[2247.24,1399.8,27.3833,112.284,-48.8984],[2153.25,1499.74,26.1167,104.371,-44.3875],[2039.47,1599.91,24.6,95.7121,-37.9748],[1886.25,1699.64,22.5833,86.2362,-27.487],[1568.57,1782.14,18.4833,78.4472,-0.0759868]]], + [66,1809.79,[[3472.44,-2001.08,48.05,242.606,-77.18],[3449.92,-1902.97,47.6333,240.466,-76.9631],[3426.33,-1801.96,47.2,238.209,-76.7315],[3402.55,-1702,46.7667,235.92,-76.4937],[3378.58,-1603.11,46.3333,233.6,-76.2494],[3353.5,-1501.58,45.8833,231.158,-75.9883],[3328.22,-1401.22,45.4333,228.681,-75.7195],[3302.74,-1302.08,44.9833,226.171,-75.4426],[3276.11,-1200.56,44.5167,223.532,-75.1466],[3249.27,-1100.38,44.05,220.858,-74.841],[3222.21,-1001.56,43.5833,218.148,-74.5255],[3193.97,-900.662,43.1,215.304,-74.1875],[3165.51,-801.264,42.6167,212.422,-73.8378],[3135.83,-700.043,42.1167,209.403,-73.4628],[3105.91,-600.476,41.6167,206.344,-73.0737],[3075.76,-502.59,41.1167,203.247,-72.6697],[3043.34,-400.056,40.5833,199.903,-72.2213],[3011.69,-302.604,40.0667,196.623,-71.7687],[2977.72,-200.925,39.5167,193.09,-71.2659],[2943.48,-101.403,38.9667,189.515,-70.74],[2907.92,-1.15524,38.4,185.79,-70.1724],[2871.01,99.5773,37.8167,181.913,-69.5587],[2833.81,197.773,37.2333,177.996,-68.913],[2794.16,298.78,36.6167,173.813,-68.1927],[2753.1,399.476,35.9833,169.476,-67.4094],[2710.61,499.57,35.3333,164.986,-66.5555],[2666.67,598.758,34.6667,160.346,-65.6221],[2620.15,699.062,33.9667,155.442,-64.5733],[2571,799.857,33.2333,150.277,-63.3909],[2520.31,898.34,32.4833,144.977,-62.0833],[2465.78,998.179,31.6833,139.318,-60.5659],[2407.33,1098.28,30.8333,133.318,-58.7973],[2343.74,1199.22,29.9167,126.89,-56.6844],[2274.89,1299.29,28.9333,120.085,-54.1447],[2198.33,1399.55,27.85,112.759,-50.9658],[2111.49,1499.47,26.6333,104.853,-46.8355],[2008.12,1599.69,25.2,96.1818,-41.0663],[1874.32,1699.88,23.3667,86.604,-32.0041],[1626.97,1799.88,20.0333,76.2136,-10.4499],[1521.62,1809.79,18.6333,75.554,-0.113391]]], + [67,1836.6,[[3357.27,-2003.38,48.3,242.928,-77.6898],[3334.74,-1901.03,47.8667,240.698,-77.4732],[3312.91,-1803.59,47.45,238.524,-77.2595],[3290.03,-1703.28,47.0167,236.231,-77.0313],[3266.08,-1600.25,46.5667,233.816,-76.7876],[3242.83,-1502.13,46.1333,231.459,-76.5462],[3218.51,-1401.41,45.6833,228.976,-76.2883],[3193.99,-1301.89,45.2333,226.46,-76.0226],[3169.29,-1203.59,44.7833,223.909,-75.7487],[3143.47,-1102.96,44.3167,221.228,-75.4558],[3116.51,-1000.16,43.8333,218.413,-75.1423],[3090.28,-902.312,43.3667,215.659,-74.8293],[3062.89,-802.435,42.8833,212.769,-74.4939],[3034.34,-700.712,42.3833,209.739,-74.1343],[3005.56,-600.639,41.8833,206.669,-73.7612],[2976.56,-502.241,41.3833,203.56,-73.3737],[2946.35,-402.348,40.8667,200.307,-72.9574],[2914.92,-301.164,40.3333,196.906,-72.5095],[2883.23,-201.973,39.8,193.464,-72.0421],[2850.3,-101.799,39.25,189.871,-71.5382],[2816.09,-0.872591,38.6833,186.126,-70.9943],[2781.61,97.7021,38.1167,182.338,-70.4233],[2744.8,199.474,37.5167,178.284,-69.787],[2707.7,298.529,36.9167,174.186,-69.1156],[2669.26,397.462,36.3,169.933,-68.3857],[2628.41,498.544,35.65,165.408,-67.569],[2586.16,598.754,34.9833,160.727,-66.6759],[2542.5,697.776,34.3,155.894,-65.6967],[2495.25,799.82,33.5667,150.675,-64.5663],[2446.52,899.593,32.8167,145.312,-63.3155],[2395.18,998.769,32.0333,139.696,-61.8943],[2340.11,1098.55,31.2,133.723,-60.2373],[2280.1,1199.57,30.3,127.298,-58.256],[2216.19,1298.51,29.35,120.581,-55.9158],[2144.91,1398.52,28.3,113.288,-52.9824],[2063.8,1499.29,27.1167,105.326,-49.1602],[1969.18,1599.69,25.75,96.6427,-43.9296],[1851.32,1699.41,24.0667,87.0854,-36.0371],[1669.12,1799.7,21.5,76.3556,-20.4532],[1472.06,1836.6,18.7667,72.6431,-0.0649725]]], + [68,1862.54,[[3238.52,-2003.88,48.5333,243.201,-78.1973],[3216.88,-1901.21,48.1,240.967,-77.9898],[3195.91,-1803.47,47.6833,238.789,-77.785],[3173.93,-1702.84,47.25,236.492,-77.5663],[3151.79,-1603.28,46.8167,234.162,-77.3415],[3128.61,-1501.03,46.3667,231.709,-77.1014],[3106.11,-1403.69,45.9333,229.313,-76.8635],[3081.7,-1300.1,45.4667,226.697,-76.5995],[3057.97,-1201.46,45.0167,224.14,-76.3371],[3033.16,-1100.46,44.55,221.451,-76.0562],[3008.17,-1000.82,44.0833,218.725,-75.7662],[2982.98,-902.545,43.6167,215.962,-75.4665],[2956.68,-802.228,43.1333,213.063,-75.1453],[2929.26,-700.044,42.6333,210.023,-74.801],[2902.55,-602.829,42.15,207.045,-74.4558],[2873.77,-500.636,41.6333,203.82,-74.0725],[2844.76,-400.251,41.1167,200.553,-73.6737],[2815.52,-301.704,40.6,197.245,-73.2583],[2785.1,-201.932,40.0667,193.787,-72.811],[2753.48,-101.155,39.5167,190.177,-72.3288],[2721.61,-2.55332,38.9667,186.524,-71.8239],[2687.53,99.61,38.3833,182.603,-71.2617],[2653.18,199.251,37.8,178.637,-70.6698],[2617.56,299.068,37.2,174.513,-70.0278],[2580.66,398.792,36.5833,170.23,-69.3297],[2542.45,498.142,35.95,165.788,-68.5689],[2501.9,599.312,35.2833,161.07,-67.7155],[2460,699.328,34.6,156.193,-66.7795],[2416.72,797.857,33.9,151.161,-65.7493],[2369.96,898.949,33.15,145.739,-64.5565],[2320.71,999.517,32.3667,140.053,-63.2005],[2268.92,1098.82,31.55,134.116,-61.651],[2212.42,1199.77,30.6667,127.705,-59.797],[2152.2,1299.03,29.7333,120.976,-57.606],[2084.92,1399.9,28.7,113.627,-54.8547],[2010.44,1499.47,27.5667,105.766,-51.3703],[1924.18,1599.21,26.2667,97.1486,-46.6475],[1817.99,1699.48,24.6833,87.5354,-39.6145],[1668.61,1799.46,22.4833,76.7347,-27.0198],[1421.22,1862.54,18.9,69.7071,-0.0542518]]], + [69,1887.58,[[3116.29,-2002.62,48.75,243.425,-78.7032],[3096.35,-1903.61,48.3333,241.274,-78.5124],[3075.45,-1801.65,47.9,239.005,-78.3087],[3054.39,-1700.74,47.4667,236.703,-78.0994],[3033.16,-1600.89,47.0333,234.368,-77.8843],[3011.76,-1502.11,46.6,232,-77.6632],[2989.37,-1400.69,46.15,229.507,-77.4269],[2966.8,-1300.47,45.7,226.978,-77.1834],[2944.06,-1201.46,45.25,224.414,-76.9325],[2920.29,-1100.09,44.7833,221.719,-76.664],[2896.34,-1000.06,44.3167,218.985,-76.3867],[2872.19,-901.401,43.85,216.214,-76.1001],[2846.99,-800.679,43.3667,213.306,-75.7931],[2821.59,-701.468,42.8833,210.357,-75.4749],[2795.11,-600.447,42.3833,207.266,-75.1336],[2768.43,-501.092,41.8833,204.134,-74.7791],[2740.63,-400.2,41.3667,200.855,-74.3981],[2712.61,-301.139,40.85,197.533,-74.0013],[2683.46,-200.833,40.3167,194.06,-73.574],[2654.09,-102.537,39.7833,190.544,-73.1275],[2622.62,-0.334409,39.2167,186.761,-72.6306],[2590.91,99.53,38.65,182.932,-72.1089],[2558,199.852,38.0667,178.944,-71.5439],[2524.82,297.62,37.4833,174.91,-70.9483],[2489.48,398.157,36.8667,170.6,-70.2826],[2452.88,498.352,36.2333,166.127,-69.5569],[2415.01,597.91,35.5833,161.491,-68.7637],[2374.88,698.946,34.9,156.573,-67.8718],[2333.43,798.531,34.2,151.495,-66.8897],[2289.65,898.544,33.4667,146.138,-65.7784],[2243.49,998.313,32.7,140.509,-64.5152],[2193.91,1099.12,31.8833,134.493,-63.0406],[2140.84,1199.83,31.0167,128.108,-61.3095],[2084.22,1299.24,30.1,121.38,-59.263],[2021.91,1399.19,29.1,114.111,-56.7342],[1952.74,1498.77,28,106.269,-53.5276],[1872.33,1599.75,26.7333,97.5577,-49.1655],[1777.21,1699.11,25.25,88.0372,-42.9307],[1648.56,1799.58,23.2667,77.1471,-32.2274],[1369.09,1887.57,19.0333,66.7466,-0.0872855]]], + [70,1911.68,[[2991.48,-2003.59,48.9667,243.686,-79.2154],[2971.65,-1900.34,48.5333,241.445,-79.0259],[2952.42,-1802.04,48.1167,239.259,-78.8389],[2932.28,-1700.82,47.6833,236.953,-78.6392],[2911.98,-1600.67,47.25,234.614,-78.434],[2891.52,-1501.58,46.8167,232.242,-78.2229],[2870.9,-1403.59,46.3833,229.836,-78.0059],[2849.33,-1303,45.9333,227.303,-77.7738],[2827.59,-1203.62,45.4833,224.734,-77.5346],[2804.86,-1101.86,45.0167,222.032,-77.2786],[2781.96,-1001.43,44.55,219.293,-77.0143],[2758.88,-902.375,44.0833,216.515,-76.7411],[2734.78,-801.235,43.6,213.598,-76.4483],[2710.5,-701.601,43.1167,210.641,-76.145],[2685.18,-600.14,42.6167,207.54,-75.8195],[2659.67,-500.338,42.1167,204.397,-75.4814],[2633.95,-402.222,41.6167,201.212,-75.13],[2607.17,-302.632,41.1,197.878,-74.752],[2579.31,-201.774,40.5667,194.392,-74.345],[2551.22,-102.92,40.0333,190.86,-73.9196],[2521.15,-0.118068,39.4667,187.06,-73.4462],[2491.72,97.43,38.9167,183.326,-72.964],[2460.27,198.453,38.3333,179.317,-72.4263],[2427.66,299.706,37.7333,175.145,-71.8427],[2394.78,398.224,37.1333,170.925,-71.2256],[2359.81,499.204,36.5,166.422,-70.5346],[2323.61,599.576,35.85,161.752,-69.7791],[2286.2,699.034,35.1833,156.916,-68.9506],[2246.58,799.607,34.4833,151.793,-68.016],[2205.7,898.418,33.7667,146.508,-66.9829],[2161.6,999.397,33,140.818,-65.7816],[2115.2,1099.48,32.2,134.853,-64.4083],[2065.47,1199.81,31.35,128.502,-62.7958],[2012.38,1299.2,30.45,121.787,-60.8889],[1953.86,1399.61,29.4667,114.498,-58.5302],[1889.82,1498.73,28.4,106.705,-55.5835],[1816.09,1599.16,27.1833,98.0615,-51.6214],[1728.38,1699.91,25.75,88.4202,-45.9286],[1616.01,1799.9,23.9333,77.5693,-36.6839],[1413.09,1899.77,20.7,65.081,-13.4789],[1314.62,1911.68,19.15,63.767,-0.0234317]]], + [71,1934.83,[[2863.37,-2002.83,49.1667,243.9,-79.7265],[2845.18,-1903.29,48.75,241.742,-79.5531],[2826.11,-1800.76,48.3167,239.466,-79.368],[2807.63,-1703.16,47.9,237.245,-79.1852],[2788.27,-1602.69,47.4667,234.902,-78.99],[2768.76,-1503.29,47.0333,232.526,-78.7892],[2748.34,-1401.22,46.5833,230.023,-78.5746],[2727.76,-1300.33,46.1333,227.483,-78.3536],[2707.01,-1200.66,45.6833,224.908,-78.1257],[2686.11,-1102.21,45.2333,222.296,-77.8908],[2664.27,-1001.43,44.7667,219.549,-77.6392],[2642.25,-902.005,44.3,216.764,-77.3792],[2619.27,-800.485,43.8167,213.839,-77.1006],[2596.11,-700.466,43.3333,210.873,-76.812],[2572.77,-601.972,42.85,207.867,-76.5127],[2548.44,-501.709,42.35,204.714,-76.1914],[2523.92,-403.126,41.85,201.519,-75.8573],[2498.38,-303.05,41.3333,198.173,-75.498],[2471.81,-201.684,40.8,194.673,-75.1109],[2445.03,-102.317,40.2667,191.127,-74.7065],[2417.2,-1.97185,39.7167,187.423,-74.2698],[2388.3,99.1224,39.15,183.558,-73.7976],[2359.16,197.855,38.5833,179.644,-73.3011],[2328.07,299.783,37.9833,175.449,-72.7467],[2296.72,398.983,37.3833,171.205,-72.1603],[2264.26,498.053,36.7667,166.793,-71.5213],[2229.76,599.263,36.1167,162.092,-70.8042],[2194.08,699.591,35.45,157.22,-70.0176],[2157.23,798.714,34.7667,152.179,-69.1519],[2118.26,898.576,34.05,146.846,-68.1719],[2077.14,998.523,33.3,141.224,-67.0578],[2032.92,1099.92,32.5,135.191,-65.7561],[1986.47,1199.72,31.6667,128.884,-64.2579],[1936.82,1298.93,30.7833,122.194,-62.486],[1882.01,1399.63,29.8167,114.899,-60.2921],[1821.96,1499.54,28.7667,107.058,-57.5478],[1754.63,1598.82,27.6,98.5292,-53.9592],[1675.02,1699.16,26.2333,88.9536,-48.8487],[1574.96,1799.56,24.5333,78.0771,-40.728],[1420.02,1899.88,21.9333,65.3907,-23.4191],[1258.99,1934.83,19.2667,60.7631,-0.00326621]]], + [72,1956.99,[[2732.07,-2000.37,49.35,244.066,-80.2374],[2714.76,-1900.6,48.9333,241.905,-80.0726],[2697.32,-1801.77,48.5167,239.712,-79.9036],[2679.04,-1700,48.0833,237.398,-79.7231],[2661.33,-1603.14,47.6667,235.141,-79.5448],[2642.77,-1503.46,47.2333,232.761,-79.3542],[2623.35,-1401.08,46.7833,230.253,-79.1505],[2604.5,-1303.62,46.35,227.803,-78.9485],[2584.77,-1203.59,45.9,225.223,-78.7325],[2564.16,-1101.15,45.4333,222.509,-78.5013],[2543.38,-1000.05,44.9667,219.756,-78.2625],[2522.44,-900.294,44.5,216.963,-78.0157],[2501.34,-801.918,44.0333,214.131,-77.7604],[2479.31,-701.501,43.55,211.158,-77.4866],[2457.12,-602.603,43.0667,208.143,-77.2028],[2433.98,-501.919,42.5667,204.981,-76.898],[2410.66,-402.911,42.0667,201.775,-76.5812],[2386.37,-302.39,41.55,198.418,-76.2403],[2361.11,-200.56,41.0167,194.905,-75.8731],[2335.64,-100.726,40.4833,191.344,-75.4893],[2309.97,-2.91718,39.95,187.737,-75.0878],[2282.49,98.7527,39.3833,183.855,-74.6403],[2254.79,198.067,38.8167,179.923,-74.1697],[2226.05,297.805,38.2333,175.825,-73.6592],[2196.25,397.709,37.6333,171.558,-73.1041],[2165.39,497.51,37.0167,167.121,-72.4991],[2132.59,599.499,36.3667,162.39,-71.8199],[2099.53,698.147,35.7167,157.607,-71.094],[2064.49,798.198,35.0333,152.528,-70.2751],[2027.45,899.042,34.3167,147.151,-69.3476],[1989.24,997.833,33.5833,141.602,-68.3171],[1948.09,1098.37,32.8,135.634,-67.1131],[1903.95,1199.59,31.9667,129.252,-65.6981],[1857.66,1298.48,31.1,122.597,-64.0564],[1806.49,1399.29,30.15,115.31,-62.022],[1750.35,1499.81,29.1167,107.437,-59.4747],[1688.23,1598.94,27.9833,98.9396,-56.1893],[1615.4,1699.27,26.6667,89.386,-51.5571],[1526.02,1799.4,25.0667,78.5623,-44.3879],[1397.96,1899.65,22.8,65.8629,-30.3454],[1202.21,1956.99,19.3833,57.7353,-0.0341046]]], + [73,1978.12,[[2598.37,-2000.25,49.5333,244.271,-80.7547],[2581.95,-1900.24,49.1167,242.106,-80.5987],[2565.41,-1801.17,48.7,239.91,-80.4387],[2548.75,-1703.06,48.2833,237.682,-80.2745],[2531.29,-1602.05,47.85,235.332,-80.099],[2513.69,-1502.11,47.4167,232.947,-79.9185],[2495.95,-1403.24,46.9833,230.528,-79.7329],[2477.39,-1301.74,46.5333,227.979,-79.5345],[2458.69,-1201.44,46.0833,225.393,-79.3299],[2439.84,-1102.36,45.6333,222.77,-79.1189],[2420.14,-1000.91,45.1667,220.011,-78.8931],[2400.29,-900.817,44.7,217.212,-78.6596],[2380.28,-802.095,44.2333,214.374,-78.4181],[2359.4,-701.316,43.75,211.392,-78.1592],[2338.36,-602.053,43.2667,208.369,-77.8907],[2316.42,-500.987,42.7667,205.197,-77.6023],[2294.31,-401.593,42.2667,201.981,-77.3025],[2271.28,-300.67,41.75,198.612,-76.9799],[2248.08,-201.587,41.2333,195.197,-76.6436],[2223.93,-101.266,40.7,191.624,-76.2809],[2199.61,-2.96616,40.1667,188.003,-75.9014],[2173.55,99.2307,39.6,184.105,-75.4783],[2147.3,199.077,39.0333,180.155,-75.0334],[2120.05,299.368,38.45,176.036,-74.5506],[2091.81,399.847,37.85,171.747,-74.0256],[2063.34,497.569,37.25,167.405,-73.4693],[2033.05,597.685,36.6167,162.769,-72.8447],[2000.92,699.651,35.95,157.832,-72.1417],[1968.53,798.059,35.2833,152.841,-71.3872],[1933.43,899.816,34.5667,147.421,-70.5117],[1897.22,999.552,33.8333,141.824,-69.5385],[1859.06,1099,33.0667,135.926,-68.426],[1818.07,1199.44,32.25,129.602,-67.1186],[1774.22,1299.73,31.3833,122.863,-65.5709],[1727.45,1398.63,30.4667,115.726,-63.7222],[1675.14,1499.58,29.45,107.839,-61.3661],[1617.18,1599.7,28.3333,99.2744,-58.3227],[1550.84,1699.41,27.0667,89.7991,-54.1381],[1470.66,1799.14,25.55,79.0481,-47.779],[1360.25,1899.97,23.4833,66.2871,-35.8556],[1144.28,1978.12,19.5,54.6842,-0.125392]]], + [74,1998.21,[[2462.29,-2002.5,49.7167,244.515,-81.2781],[2446.79,-1902.25,49.3,242.348,-81.1311],[2431.16,-1802.93,48.8833,240.149,-80.9802],[2414.78,-1700.65,48.45,237.829,-80.819],[2398.92,-1603.29,48.0333,235.565,-80.6599],[2382.29,-1503.08,47.6,233.177,-80.4897],[2364.88,-1400.15,47.15,230.66,-80.3079],[2348,-1302.16,46.7167,228.201,-80.1276],[2330.32,-1201.57,46.2667,225.61,-79.9346],[2312.51,-1102.19,45.8167,222.982,-79.7356],[2293.9,-1000.44,45.35,220.217,-79.5226],[2275.14,-900.044,44.8833,217.411,-79.3025],[2256.24,-801.012,44.4167,214.566,-79.0747],[2237.19,-703.37,43.95,211.68,-78.8391],[2216.63,-600.318,43.45,208.544,-78.5772],[2196.59,-502.263,42.9667,205.47,-78.3145],[2175.7,-402.468,42.4667,202.245,-78.032],[2153.95,-301.125,41.95,198.866,-77.728],[2132.03,-201.619,41.4333,195.44,-77.4111],[2109.23,-100.857,40.9,191.854,-77.0693],[2086.24,-2.11072,40.3667,188.22,-76.7116],[2062.36,97.578,39.8167,184.421,-76.3249],[2037.56,197.977,39.25,180.456,-75.9061],[2011.83,298.843,38.6667,176.319,-75.4516],[1985.15,399.918,38.0667,172.009,-74.9573],[1958.26,498.244,37.4667,167.645,-74.4333],[1929.66,599.002,36.8333,162.982,-73.845],[1900.07,699.129,36.1833,158.139,-73.1999],[1869.48,798.315,35.5167,153.116,-72.4899],[1837.1,898.579,34.8167,147.784,-71.6859],[1802.91,999.29,34.0833,142.142,-70.7713],[1766.88,1099.77,33.3167,136.191,-69.7253],[1728.98,1199.3,32.5167,129.933,-68.5215],[1688.37,1299,31.6667,123.246,-67.0966],[1644.22,1399.45,30.75,116.012,-65.3612],[1596.47,1498.9,29.7667,108.258,-63.2241],[1542.59,1599.81,28.6667,99.6471,-60.4165],[1481.64,1699.79,27.4333,90.1693,-56.6027],[1409.33,1799.23,25.9833,79.4762,-50.9246],[1313.64,1899.48,24.0833,66.8269,-40.7493],[1084.36,1998.21,19.6,51.6137,-0.106724]]], + [75,2017.23,[[2323.29,-2003.14,49.8833,244.712,-81.8017],[2308.69,-1902.66,49.4667,242.543,-81.6635],[2293.99,-1803.13,49.05,240.341,-81.5217],[2278.57,-1700.61,48.6167,238.018,-81.3703],[2263.64,-1603.03,48.2,235.751,-81.2207],[2247.99,-1502.58,47.7667,233.358,-81.0608],[2232.22,-1403.2,47.3333,230.931,-80.8963],[2215.71,-1301.16,46.8833,228.373,-80.7205],[2199.08,-1200.32,46.4333,225.777,-80.5392],[2182.32,-1100.69,45.9833,223.144,-80.3522],[2165.43,-1002.29,45.5333,220.472,-80.1592],[2147.78,-901.569,45.0667,217.661,-79.9525],[2129.99,-802.213,44.6,214.81,-79.7387],[2111.42,-700.771,44.1167,211.814,-79.5094],[2092.72,-600.838,43.6333,208.775,-79.2717],[2073.86,-502.437,43.15,205.693,-79.0249],[2054.21,-402.28,42.65,202.459,-78.7597],[2033.74,-300.56,42.1333,199.07,-78.4743],[2013.11,-200.672,41.6167,195.633,-78.1766],[1992.32,-102.644,41.1,192.148,-77.8659],[1970.02,-0.366177,40.55,188.387,-77.5197],[1947.55,99.74,40,184.574,-77.1564],[1924.9,197.642,39.45,180.71,-76.7748],[1900.69,299.031,38.8667,176.556,-76.3484],[1876.29,397.864,38.2833,172.348,-75.8977],[1850.29,499.525,37.6667,167.841,-75.3927],[1824.09,598.242,37.05,163.277,-74.8554],[1796.26,699.06,36.4,158.407,-74.2507],[1767.48,798.963,35.7333,153.352,-73.585],[1737.03,899.987,35.0333,147.984,-72.8308],[1705.6,999.244,34.3167,142.429,-71.9929],[1672.45,1098.53,33.5667,136.559,-71.0351],[1636.8,1199.18,32.7667,130.243,-69.9088],[1599.37,1298.17,31.9333,123.617,-68.6022],[1558.61,1398.26,31.0333,116.426,-67.0108],[1513.71,1499.42,30.05,108.557,-65.0142],[1464.6,1599.32,28.9833,100.053,-62.4724],[1408.86,1699.27,27.7833,90.6071,-59.0161],[1343.26,1798.99,26.3833,79.9225,-53.9198],[1258.9,1899.27,24.6,67.317,-45.0758],[1113.69,1999.79,21.5667,51.5647,-20.8694]]], + [76,2035.15,[[2181.49,-2002.18,50.0333,244.864,-82.326],[2167.82,-1901.51,49.6167,242.692,-82.1967],[2154.04,-1801.78,49.2,240.487,-82.064],[2140.15,-1702.99,48.7833,238.25,-81.9278],[2125.6,-1601.28,48.35,235.889,-81.7823],[2110.93,-1500.62,47.9167,233.492,-81.6327],[2096.16,-1401.04,47.4833,231.061,-81.4787],[2081.27,-1302.54,47.05,228.593,-81.3203],[2065.68,-1201.43,46.6,225.994,-81.1508],[2049.98,-1101.53,46.15,223.356,-80.9759],[2034.16,-1002.86,45.7,220.679,-80.7955],[2017.62,-901.853,45.2333,217.863,-80.6022],[2000.96,-802.208,44.7667,215.006,-80.4023],[1983.57,-700.464,44.2833,212.003,-80.1879],[1966.04,-600.226,43.8,208.957,-79.9655],[1948.38,-501.517,43.3167,205.867,-79.7347],[1929.97,-401.038,42.8167,202.624,-79.4867],[1911.41,-302.246,42.3167,199.336,-79.2285],[1892.09,-201.959,41.8,195.889,-78.9505],[1871.99,-100.385,41.2667,192.281,-78.6506],[1851.73,-0.817551,40.7333,188.622,-78.3367],[1830.68,99.726,40.1833,184.796,-77.9973],[1809.47,198.069,39.6333,180.917,-77.6407],[1786.79,299.931,39.05,176.746,-77.2422],[1763.94,399.243,38.4667,172.52,-76.821],[1740.25,498.69,37.8667,168.115,-76.3619],[1715.71,598.001,37.25,163.529,-75.8604],[1689.64,699.452,36.6,158.633,-75.2957],[1663.37,797.54,35.95,153.677,-74.6901],[1634.86,899.354,35.25,148.276,-73.9869],[1605.43,999.427,34.5333,142.683,-73.2052],[1574.39,1099.57,33.7833,136.768,-72.3113],[1541.71,1199.09,33,130.53,-71.2826],[1506.66,1299.18,32.1667,123.839,-70.0642],[1469.21,1398.66,31.2833,116.701,-68.608],[1427.9,1499.61,30.3167,108.861,-66.7803],[1382.64,1599.76,29.2667,100.351,-64.452],[1331.94,1699.24,28.1,90.9714,-61.3297],[1272.02,1799.74,26.7333,80.2302,-56.7125],[1197.54,1899.38,25.05,67.7405,-48.9904],[1082.02,1999.59,22.4667,52.065,-30.2621]]], + [77,2051.95,[[2037.56,-2003.68,50.1833,245.056,-82.8564],[2024.82,-1902.81,49.7667,242.882,-82.7361],[2011.97,-1802.87,49.35,240.675,-82.6126],[1999.03,-1703.88,48.9333,238.435,-82.4858],[1985.47,-1601.95,48.5,236.071,-82.3504],[1971.8,-1501.07,48.0667,233.672,-82.2112],[1958.03,-1401.26,47.6333,231.237,-82.0679],[1944.15,-1302.55,47.2,228.766,-81.9205],[1929.63,-1201.2,46.75,226.162,-81.7627],[1914.99,-1101.06,46.3,223.519,-81.6],[1900.24,-1002.15,45.85,220.837,-81.4321],[1884.83,-900.892,45.3833,218.016,-81.2522],[1869.3,-800.994,44.9167,215.153,-81.0661],[1853.65,-702.477,44.45,212.248,-80.8735],[1837.32,-601.919,43.9667,209.195,-80.6668],[1820.86,-502.887,43.4833,206.099,-80.4523],[1803.7,-402.07,42.9833,202.849,-80.2216],[1786.41,-302.937,42.4833,199.553,-79.9816],[1768.41,-202.294,41.9667,196.097,-79.7231],[1749.68,-100.348,41.4333,192.479,-79.4442],[1730.8,-0.405643,40.9,188.808,-79.1523],[1711.78,97.5022,40.3667,185.086,-78.8464],[1691.42,199.266,39.8,181.077,-78.5049],[1670.89,298.664,39.2333,177.011,-78.1451],[1649.6,398.475,38.65,172.768,-77.7538],[1627.53,498.441,38.05,168.345,-77.3273],[1604.67,598.291,37.4333,163.739,-76.8612],[1581,697.741,36.8,158.946,-76.3503],[1555.9,798.982,36.1333,153.836,-75.7734],[1529.97,899.032,35.45,148.533,-75.1356],[1502.55,999.853,34.7333,142.904,-74.4098],[1474.28,1098.6,34,137.08,-73.5988],[1443.84,1199.06,33.2167,130.793,-72.6448],[1411.85,1298.2,32.4,124.177,-71.538],[1376.98,1398.9,31.5167,116.966,-70.1886],[1339.17,1499.5,30.5667,109.167,-68.5243],[1297.7,1599.74,29.5333,100.667,-66.4036],[1251.16,1699.86,28.3833,91.2465,-63.5559],[1197.43,1799.48,27.0667,80.6284,-59.4489],[1130.86,1899.54,25.45,68.1336,-52.6255],[1033.83,1999.97,23.1167,52.4735,-37.1955]]], + [78,2067.61,[[1891.07,-2003.63,50.3167,245.203,-83.3879],[1879.26,-1902.58,49.9,243.026,-83.2766],[1867.36,-1802.47,49.4833,240.817,-83.1623],[1855.37,-1703.3,49.0667,238.574,-83.045],[1842.8,-1601.18,48.6333,236.207,-82.9197],[1830.14,-1500.11,48.2,233.804,-82.7908],[1817.38,-1400.11,47.7667,231.365,-82.6582],[1804.52,-1301.2,47.3333,228.89,-82.5218],[1791.57,-1203.39,46.9,226.379,-82.3813],[1778.01,-1103,46.45,223.733,-82.2308],[1763.84,-1000.19,45.9833,220.948,-82.0698],[1750.07,-902.316,45.5333,218.222,-81.9093],[1735.69,-802.151,45.0667,215.354,-81.7373],[1721.19,-703.363,44.6,212.444,-81.5592],[1706.06,-602.522,44.1167,209.386,-81.3681],[1690.82,-503.205,43.6333,206.283,-81.1697],[1674.93,-402.09,43.1333,203.026,-80.9564],[1658.91,-302.655,42.6333,199.721,-80.7345],[1642.23,-201.698,42.1167,196.257,-80.4953],[1625.43,-102.59,41.6,192.743,-80.2457],[1607.94,-2.25345,41.0667,189.063,-79.9761],[1589.78,99.0914,40.5167,185.214,-79.6845],[1571.47,198.244,39.9667,181.309,-79.3781],[1552.46,298.073,39.4,177.23,-79.0456],[1532.74,398.332,38.8167,172.972,-78.6842],[1512.3,498.765,38.2167,168.532,-78.2901],[1491.12,599.098,37.6,163.906,-77.8594],[1469.21,699.05,36.9667,159.091,-77.3871],[1446.54,798.322,36.3167,154.085,-76.8675],[1422.53,899.016,35.6333,148.754,-76.2787],[1397.73,998.206,34.9333,143.225,-75.6248],[1370.96,1099.97,34.1833,137.229,-74.8593],[1343.37,1199.09,33.4167,131.032,-73.9972],[1313.76,1299.14,32.6,124.362,-72.9758],[1282.08,1398.98,31.7333,117.219,-71.7546],[1247.69,1499.09,30.8,109.472,-70.2485],[1209.92,1599.27,29.7833,100.998,-68.329],[1167.48,1699.86,28.65,91.5579,-65.7491],[1119.01,1799.45,27.3667,80.9727,-62.0736],[1059.97,1899.15,25.8167,68.5715,-56.0888],[977.298,1999.57,23.6667,53.0041,-43.2042]]], + [79,2082.09,[[1742.17,-2002.03,50.4333,245.305,-83.9211],[1731.3,-1900.84,50.0167,243.125,-83.8187],[1720.35,-1800.57,49.6,240.913,-83.7137],[1709.32,-1701.25,49.1833,238.667,-83.6059],[1698.21,-1602.89,48.7667,236.389,-83.4951],[1686.56,-1501.62,48.3333,233.983,-83.3768],[1674.82,-1401.42,47.9,231.542,-83.255],[1662.99,-1302.3,47.4667,229.064,-83.1296],[1650.62,-1200.54,47.0167,226.452,-82.9956],[1638.61,-1103.68,46.5833,223.9,-82.8625],[1625.58,-1000.64,46.1167,221.11,-82.7145],[1612.91,-902.544,45.6667,218.38,-82.5671],[1599.68,-802.147,45.2,215.507,-82.4091],[1586.35,-703.125,44.7333,212.592,-82.2455],[1572.43,-602.038,44.25,209.528,-82.07],[1558.41,-502.473,43.7667,206.419,-81.8878],[1543.79,-401.099,43.2667,203.155,-81.6918],[1529.05,-301.403,42.7667,199.842,-81.4879],[1513.71,-200.173,42.25,196.369,-81.2682],[1498.26,-100.79,41.7333,192.845,-81.0388],[1482.18,-0.166644,41.2,189.155,-80.7911],[1465.97,98.4285,40.6667,185.411,-80.5314],[1449.13,197.949,40.1167,181.496,-80.2502],[1431.65,298.16,39.55,177.404,-79.9451],[1413.51,398.818,38.9667,173.132,-79.6132],[1394.71,499.663,38.3667,168.676,-79.2515],[1375.77,597.741,37.7667,164.158,-78.867],[1355.62,698.219,37.1333,159.324,-78.434],[1334.78,798.038,36.4833,154.295,-77.9576],[1312.69,899.311,35.8,148.938,-77.4176],[1289.89,999.101,35.1,143.379,-76.8176],[1265.82,1099.29,34.3667,137.483,-76.1315],[1240.46,1199.18,33.6,131.245,-75.3416],[1213.79,1298.07,32.8,124.662,-74.4255],[1184.67,1398.93,31.9333,117.46,-73.3079],[1153.62,1498.42,31.0167,109.776,-71.9548],[1118.91,1599.97,30,101.201,-70.1988],[1081.04,1699.27,28.9,91.9009,-67.9107],[1037.09,1799.8,27.6333,81.2452,-64.6011],[984.588,1899.42,26.1333,68.8886,-59.3239],[913.368,1999.65,24.1167,53.4175,-48.3864]]], + [80,2095.4,[[1591.43,-2002.97,50.55,245.449,-84.4601],[1581.52,-1901.62,50.1333,243.267,-84.3668],[1571.54,-1801.19,49.7167,241.053,-84.271],[1561.47,-1701.71,49.3,238.805,-84.1728],[1551.34,-1603.18,48.8833,236.524,-84.0719],[1540.71,-1501.75,48.45,234.116,-83.9641],[1530.01,-1401.37,48.0167,231.672,-83.8531],[1519.22,-1302.08,47.5833,229.191,-83.7389],[1507.93,-1200.13,47.1333,226.575,-83.6167],[1496.97,-1103.1,46.7,224.02,-83.4955],[1485.51,-1003.53,46.25,221.326,-83.3656],[1473.53,-901.582,45.7833,218.491,-83.2263],[1461.46,-800.987,45.3167,215.613,-83.0823],[1449.3,-701.765,44.85,212.693,-82.9333],[1436.6,-600.47,44.3667,209.623,-82.7732],[1423.81,-500.695,43.8833,206.507,-82.6072],[1410.92,-402.461,43.4,203.345,-82.4347],[1397.48,-302.487,42.9,200.027,-82.2491],[1383.49,-200.967,42.3833,196.547,-82.049],[1369.39,-101.291,41.8667,193.015,-81.8402],[1354.73,-0.36242,41.3333,189.316,-81.6146],[1339.95,98.5411,40.8,185.564,-81.3782],[1324.59,198.382,40.25,181.637,-81.1222],[1308.65,298.928,39.6833,177.534,-80.8443],[1292.11,399.933,39.1,173.248,-80.5421],[1275.44,498.364,38.5167,168.902,-80.222],[1257.68,599.579,37.9,164.242,-79.8623],[1239.79,697.831,37.2833,159.517,-79.4785],[1220.78,798.137,36.6333,154.468,-79.0451],[1200.65,899.927,35.95,149.087,-78.5537],[1180.35,997.91,35.2667,143.634,-78.0211],[1158.41,1098.76,34.5333,137.707,-77.3977],[1135.28,1199.36,33.7667,131.432,-76.6797],[1110.97,1298.99,32.9667,124.805,-75.8466],[1084.93,1398.77,32.1167,117.687,-74.8504],[1056.62,1499.26,31.2,109.934,-73.621],[1026.02,1598.71,30.2167,101.552,-72.0804],[991.509,1699.57,29.1167,92.1291,-70.0075],[952.502,1799.41,27.8833,81.5734,-67.09],[905.729,1899.62,26.4167,69.1846,-62.4288],[844.07,1999.8,24.5,53.7845,-53.0796]]], + [81,2107.5,[[1438.56,-2002.4,50.65,245.548,-85.0008],[1429.61,-1900.92,50.2333,243.365,-84.9166],[1420.59,-1800.36,49.8167,241.148,-84.8303],[1411.51,-1700.75,49.4,238.898,-84.7417],[1402.35,-1602.09,48.9833,236.614,-84.6506],[1392.75,-1500.51,48.55,234.204,-84.5533],[1383.46,-1403.84,48.1333,231.851,-84.4571],[1373.34,-1300.56,47.6833,229.272,-84.3502],[1363.53,-1202.22,47.25,226.75,-84.244],[1353.26,-1101.28,46.8,224.093,-84.1304],[1342.91,-1001.55,46.35,221.395,-84.0132],[1332.48,-903.067,45.9,218.658,-83.8921],[1321.58,-802.261,45.4333,215.776,-83.7623],[1310.6,-702.826,44.9667,212.852,-83.6279],[1299.14,-601.308,44.4833,209.777,-83.4837],[1287.59,-501.307,44,206.656,-83.334],[1275.95,-402.846,43.5167,203.49,-83.1785],[1263.82,-302.634,43.0167,200.165,-83.0111],[1251.19,-200.865,42.5,196.678,-82.8308],[1238.46,-100.938,41.9833,193.139,-82.6425],[1225.63,-2.88013,41.4667,189.549,-82.4456],[1211.88,99.4191,40.9167,185.67,-82.2259],[1198.01,199.535,40.3667,181.734,-81.995],[1184.04,297.435,39.8167,177.741,-81.7519],[1169.11,398.809,39.2333,173.444,-81.4798],[1154.07,497.613,38.65,169.085,-81.1915],[1138.04,599.227,38.0333,164.411,-80.8675],[1121.89,697.881,37.4167,159.67,-80.5217],[1104.73,798.615,36.7667,154.602,-80.1312],[1087,898.411,36.1,149.332,-79.6996],[1068.24,999.3,35.4,143.722,-79.2083],[1048.88,1098.39,34.6833,137.901,-78.6594],[1028.01,1199.63,33.9167,131.592,-78.0132],[1006.06,1299.92,33.1167,124.926,-77.2629],[983.02,1398.51,32.2833,117.899,-76.3839],[957.477,1499.9,31.3667,110.085,-75.2779],[930.329,1598.71,30.4,101.766,-73.9162],[899.664,1699.38,29.3167,92.3786,-72.0831],[864.947,1799.58,28.1,81.8078,-69.5012],[823.713,1899.89,26.6667,69.4386,-65.4197],[770.523,1999.79,24.8333,54.1418,-57.4468]]], + [82,2118.37,[[1283.73,-2000.35,50.7333,245.604,-85.5438],[1276.07,-1902.81,50.3333,243.506,-85.4719],[1268.03,-1802.11,49.9167,241.289,-85.395],[1259.93,-1702.35,49.5,239.037,-85.316],[1251.77,-1603.55,49.0833,236.752,-85.2349],[1243.21,-1501.81,48.65,234.339,-85.1483],[1234.59,-1401.15,48.2167,231.89,-85.0591],[1225.9,-1301.55,47.7833,229.403,-84.9674],[1217.15,-1203.06,47.35,226.879,-84.8729],[1208,-1101.95,46.9,224.219,-84.7717],[1198.77,-1002.06,46.45,221.519,-84.6673],[1189.47,-903.408,46,218.778,-84.5595],[1179.75,-802.426,45.5333,215.893,-84.4438],[1169.96,-702.813,45.0667,212.964,-84.3242],[1159.74,-601.109,44.5833,209.885,-84.1957],[1149.45,-500.92,44.1,206.76,-84.0623],[1139.07,-402.268,43.6167,203.588,-83.9238],[1128.26,-301.858,43.1167,200.257,-83.7747],[1117.36,-203.144,42.6167,196.877,-83.6194],[1106.01,-102.948,42.1,193.333,-83.4519],[1094.21,-1.47814,41.5667,189.62,-83.271],[1082.32,97.9724,41.0333,185.851,-83.0813],[1069.96,198.383,40.4833,181.906,-82.8759],[1057.12,299.522,39.9167,177.782,-82.6529],[1044.19,398.274,39.35,173.598,-82.4174],[1030.78,497.401,38.7667,169.227,-82.1609],[1016.49,599.358,38.15,164.54,-81.8725],[1002.1,698.36,37.5333,159.784,-81.5648],[986.803,799.463,36.8833,154.699,-81.2171],[970.996,899.641,36.2167,149.409,-80.8328],[954.669,998.571,35.5333,143.911,-80.4061],[937.415,1098.18,34.8167,138.066,-79.9181],[918.814,1199.98,34.05,131.727,-79.3434],[899.661,1298.81,33.2667,125.165,-78.6906],[879.128,1398.14,32.4333,118.096,-77.91],[856.781,1498.56,31.5333,110.371,-76.9466],[832.59,1598.38,30.5667,101.984,-75.7389],[805.686,1698.72,29.5,92.6474,-74.1388],[775.179,1799.11,28.3,82.0848,-71.8843],[739.3,1899.26,26.9,69.7793,-68.363],[693.217,1999.94,25.1167,54.4305,-61.5313]]], + [83,2128.01,[[1127.42,-2000.91,50.8167,245.703,-86.0921],[1120.7,-1903.26,50.4167,243.604,-86.029],[1113.64,-1802.44,50,241.385,-85.9615],[1106.53,-1702.57,49.5833,239.132,-85.8923],[1099.37,-1603.65,49.1667,236.845,-85.8212],[1091.86,-1501.79,48.7333,234.43,-85.7452],[1084.3,-1401,48.3,231.978,-85.6671],[1076.68,-1301.28,47.8667,229.489,-85.5866],[1069,-1202.66,47.4333,226.963,-85.5037],[1060.96,-1101.42,46.9833,224.3,-85.415],[1052.86,-1001.4,46.5333,221.596,-85.3235],[1044.7,-902.608,46.0833,218.852,-85.2289],[1036.17,-801.484,45.6167,215.963,-85.1275],[1027.58,-701.729,45.15,213.031,-85.0226],[1018.93,-603.362,44.6833,210.055,-84.9138],[1009.89,-502.97,44.2,206.926,-84.797],[1000.47,-400.732,43.7,203.64,-84.6714],[990.983,-300.163,43.2,200.304,-84.5407],[981.42,-201.289,42.7,196.918,-84.4044],[971.462,-100.926,42.1833,193.366,-84.2574],[961.429,-2.42886,41.6667,189.762,-84.1038],[950.994,97.2602,41.1333,185.987,-83.9376],[940.15,197.92,40.5833,182.035,-83.7576],[928.892,299.316,40.0167,177.903,-83.5622],[917.547,398.33,39.45,173.709,-83.3559],[905.779,497.728,38.8667,169.329,-83.1311],[893.243,599.975,38.25,164.629,-82.8784],[880.61,699.268,37.6333,159.86,-82.6086],[867.537,798.124,37,154.891,-82.312],[853.671,898.713,36.3333,149.585,-81.9756],[839.349,998.068,35.65,144.069,-81.6022],[824.213,1098.13,34.9333,138.202,-81.175],[808.25,1198.24,34.1833,131.975,-80.6833],[791.091,1299.75,33.3833,125.242,-80.0999],[773.079,1399.61,32.55,118.135,-79.4158],[753.838,1498.81,31.6667,110.506,-78.5876],[732.619,1599.42,30.7,102.058,-77.5303],[709.391,1699.12,29.65,92.7855,-76.1519],[683.007,1799.36,28.4667,82.2522,-74.2092],[651.919,1900,27.0833,69.9034,-71.1701],[613.025,1999.7,25.3667,54.7476,-65.4517]]], + [84,2136.4,[[969.703,-2004.06,50.9,245.846,-86.6447],[963.685,-1902.24,50.4833,243.659,-86.5883],[957.621,-1801.34,50.0667,241.438,-86.5303],[951.511,-1701.38,49.65,239.183,-86.4708],[945.354,-1602.37,49.2333,236.893,-86.4098],[938.901,-1500.42,48.8,234.476,-86.3445],[932.65,-1403.39,48.3833,232.117,-86.2799],[926.1,-1303.54,47.95,229.627,-86.2109],[919.246,-1201,47.5,227.002,-86.1369],[912.595,-1103.4,47.0667,224.435,-86.0636],[905.636,-1003.23,46.6167,221.73,-85.985],[898.364,-900.648,46.15,218.881,-85.9008],[891.297,-803.01,45.7,216.092,-85.8168],[883.914,-703.098,45.2333,213.157,-85.7268],[876.209,-601.081,44.75,210.071,-85.63],[868.443,-500.575,44.2667,206.937,-85.5296],[860.619,-401.604,43.7833,203.757,-85.4254],[852.463,-300.861,43.2833,200.417,-85.3131],[844.245,-201.81,42.7833,197.026,-85.1961],[835.689,-101.263,42.2667,193.47,-85.0701],[827.067,-2.57958,41.75,189.861,-84.938],[818.099,97.3034,41.2167,186.079,-84.7954],[808.781,198.165,40.6667,182.121,-84.6409],[799.106,299.771,40.1,177.981,-84.4732],[789.356,398.997,39.5333,173.779,-84.296],[779.244,498.615,38.95,169.389,-84.103],[768.764,598.366,38.35,164.806,-83.8921],[757.911,697.977,37.7333,160.027,-83.6607],[746.382,799.728,37.0833,154.915,-83.3994],[734.765,898.1,36.4333,149.727,-83.118],[722.459,997.817,35.75,144.194,-82.7976],[709.454,1098.26,35.0333,138.308,-82.4312],[695.739,1198.78,34.2833,132.059,-82.0093],[681.304,1298.65,33.5,125.44,-81.5196],[665.83,1399.09,32.6667,118.301,-80.9337],[649.3,1498.92,31.7833,110.631,-80.224],[631.386,1598.53,30.8333,102.278,-79.3343],[611.433,1699.14,29.7833,92.9365,-78.1548],[589.09,1799.08,28.6167,82.4525,-76.5163],[563.033,1898.9,27.2667,70.2432,-73.9878],[530.282,1999.23,25.5833,55.0673,-69.2261]]], + [85,2143.52,[[810.279,-2001.69,50.95,245.859,-87.1971],[805.454,-1903.87,50.55,243.758,-87.1519],[800.388,-1802.87,50.1333,241.536,-87.1036],[795.284,-1702.81,49.7167,239.281,-87.0539],[790.141,-1603.7,49.3,236.991,-87.0029],[784.752,-1501.65,48.8667,234.572,-86.9485],[779.32,-1400.66,48.4333,232.117,-86.8923],[773.848,-1300.74,48,229.624,-86.8347],[768.334,-1201.92,47.5667,227.094,-86.7752],[762.565,-1100.47,47.1167,224.426,-86.7116],[756.751,-1000.23,46.6667,221.717,-86.6459],[750.892,-901.225,46.2167,218.967,-86.5782],[744.989,-803.471,45.7667,216.177,-86.5081],[738.823,-703.438,45.3,213.239,-86.4328],[732.386,-601.294,44.8167,210.15,-86.3521],[725.899,-500.66,44.3333,207.013,-86.2683],[719.364,-401.56,43.85,203.829,-86.1814],[712.551,-300.681,43.35,200.485,-86.0876],[705.686,-201.494,42.85,197.091,-85.9899],[698.538,-100.805,42.3333,193.53,-85.8847],[691.337,-1.97799,41.8167,189.916,-85.7746],[683.846,98.0546,41.2833,186.129,-85.6555],[676.062,199.072,40.7333,182.164,-85.5264],[668.218,297.881,40.1833,178.14,-85.3906],[660.076,397.34,39.6167,173.932,-85.2429],[651.631,497.201,39.0333,169.535,-85.082],[642.634,599.943,38.4167,164.817,-84.901],[633.567,699.736,37.8,160.027,-84.7079],[624.184,799.109,37.1667,155.034,-84.4954],[614.482,897.762,36.5167,149.835,-84.2606],[604.205,997.779,35.8333,144.289,-83.9935],[593.343,1098.54,35.1167,138.386,-83.6879],[581.889,1199.39,34.3667,132.117,-83.3358],[569.833,1299.62,33.5833,125.475,-82.9272],[557.168,1398.48,32.7667,118.451,-82.4483],[543.365,1498.84,31.8833,110.749,-81.857],[528.405,1599.03,30.9333,102.352,-81.1155],[512.008,1698.76,29.9,93.1006,-80.1486],[493.352,1799.59,28.7333,82.5333,-78.7843],[471.864,1899.33,27.4,70.3444,-76.7045],[445.063,1999.5,25.75,55.2174,-72.8255]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 691.337; +_maxRange = 3970.94; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg3.sqf new file mode 100644 index 0000000000..5fd9f37dd1 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg3.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_120mm_dm11a5_dm111a1_pd_chg3 +// Ammo: ace_arty_120mm_dm11a5_dm111a1_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1562.37,[[6504.26,-2003.35,45.85,248.189,-66.2409],[6459.08,-1901.67,45.4,246.241,-65.8254],[6413.52,-1801.13,44.95,244.273,-65.3997],[6367.58,-1701.74,44.5,242.286,-64.9634],[6321.25,-1603.52,44.05,240.28,-64.5162],[6272.81,-1502.92,43.5833,238.181,-64.0405],[6222.21,-1400.09,43.1,235.987,-63.5345],[6172.93,-1302.14,42.6333,233.851,-63.0326],[6121.46,-1202.09,42.15,231.621,-62.4986],[6067.76,-1100.12,41.65,229.295,-61.9303],[6015.4,-1003.04,41.1667,227.031,-61.365],[5958.94,-900.918,40.65,224.594,-60.7427],[5901.99,-800.52,40.1333,222.14,-60.1012],[5844.54,-701.875,39.6167,219.673,-59.4395],[5784.71,-601.912,39.0833,217.114,-58.7345],[5722.46,-500.837,38.5333,214.463,-57.9832],[5659.66,-401.834,37.9833,211.802,-57.2061],[5594.37,-302.029,37.4167,209.054,-56.3774],[5526.54,-201.653,36.8333,206.221,-55.4931],[5456.12,-100.948,36.2333,203.306,-54.5493],[5383.07,-0.166647,35.6167,200.314,-53.5411],[5309.33,97.8156,35,197.33,-52.4927],[5230.87,198.021,34.35,194.2,-51.3419],[5147.57,299.913,33.6667,190.934,-50.0793],[5063.45,398.216,32.9833,187.7,-48.76],[4972.26,499.66,32.25,184.276,-47.2781],[4878.01,599.007,31.5,180.836,-45.6885],[4776.41,699.995,30.7,177.25,-43.9069],[4669.41,799.64,29.8667,173.627,-41.9526],[4554.7,898.984,28.9833,169.933,-39.7672],[4429.87,998.504,28.0333,166.162,-37.282],[4290.15,1099.53,26.9833,162.279,-34.3688],[4135.04,1199.19,25.8333,158.428,-30.9764],[3954.8,1298.95,24.5167,154.626,-26.8382],[3732.01,1399.18,22.9167,151.029,-21.4691],[3414.13,1499.72,20.6833,148.224,-13.4636],[2887.1,1562.37,17.1,150.082,-0.0256168]]], + [46,1613.35,[[6451.98,-2000.14,46.3167,248.613,-66.7737],[6409.33,-1901.64,45.8833,246.728,-66.3829],[6364.67,-1800.45,45.4333,244.75,-65.9673],[6319.63,-1700.42,44.9833,242.753,-65.5413],[6274.22,-1601.55,44.5333,240.736,-65.1046],[6226.74,-1500.26,44.0667,238.624,-64.6399],[6178.85,-1400.25,43.6,236.493,-64.163],[6130.56,-1301.55,43.1333,234.342,-63.6733],[6080.12,-1200.72,42.65,232.096,-63.1521],[6029.25,-1101.33,42.1667,229.831,-62.6161],[5976.17,-1000.06,41.6667,227.469,-62.0455],[5922.63,-900.362,41.1667,225.09,-61.4579],[5868.63,-802.276,40.6667,222.694,-60.8524],[5812.36,-702.634,40.15,220.203,-60.2075],[5753.75,-601.63,39.6167,217.617,-59.5201],[5694.63,-502.537,39.0833,215.017,-58.81],[5633.12,-402.375,38.5333,212.324,-58.0528],[5569.18,-301.363,37.9667,209.54,-57.245],[5504.66,-202.601,37.4,206.749,-56.408],[5435.71,-100.518,36.8,203.79,-55.4883],[5366.12,-1.03191,36.2,200.83,-54.5327],[5293.93,98.4732,35.5833,197.792,-53.5114],[5219.09,197.729,34.95,194.682,-52.4191],[5139.55,298.946,34.2833,191.426,-51.2197],[5057.23,399.169,33.6,188.114,-49.9348],[4972.06,498.081,32.9,184.757,-48.5576],[4879.87,599.78,32.15,181.212,-47.0101],[4784.66,699.096,31.3833,177.658,-45.3477],[4682.14,799.647,30.5667,173.965,-43.4833],[4574.26,898.474,29.7167,170.244,-41.4359],[4456.59,998.286,28.8,166.4,-39.1009],[4326.66,1099.04,27.8,162.443,-36.3986],[4181.88,1199.91,26.7,158.427,-33.2355],[4019.5,1299.12,25.4833,154.469,-29.5041],[3825.21,1399.04,24.05,150.574,-24.8048],[3572.03,1499.61,22.2167,147.023,-18.3647],[3117.56,1599.93,19.0167,145.443,-6.33313],[2876.88,1613.35,17.3667,147.223,-0.00313973]]], + [47,1664.18,[[6397.4,-2002.32,46.8,249.144,-67.3244],[6355.61,-1903.2,46.3667,247.251,-66.9431],[6311.86,-1801.37,45.9167,245.265,-66.5376],[6267.74,-1700.68,45.4667,243.258,-66.122],[6223.25,-1601.14,45.0167,241.23,-65.696],[6178.4,-1502.77,44.5667,239.183,-65.259],[6131.49,-1402.02,44.1,237.04,-64.7941],[6084.19,-1302.56,43.6333,234.876,-64.3166],[6034.79,-1200.94,43.15,232.615,-63.8084],[5984.96,-1100.74,42.6667,230.334,-63.2857],[5934.71,-1002,42.1833,228.034,-62.748],[5882.28,-901.407,41.6833,225.636,-62.1754],[5829.4,-802.41,41.1833,223.22,-61.5853],[5774.29,-701.815,40.6667,220.705,-60.9566],[5718.7,-602.977,40.15,218.175,-60.3078],[5660.82,-502.819,39.6167,215.548,-59.616],[5600.59,-401.548,39.0667,212.825,-58.8782],[5539.83,-302.353,38.5167,210.09,-58.1145],[5476.67,-202.358,37.95,207.262,-57.2993],[5411.06,-101.791,37.3667,204.344,-56.4287],[5342.96,-0.896436,36.7667,201.339,-55.4984],[5274.23,97.3796,36.1667,198.334,-54.5311],[5201,198.233,35.5333,195.167,-53.4679],[5125.13,298.618,34.8833,191.928,-52.3296],[5046.57,398.243,34.2167,188.624,-51.11],[4963.27,499.162,33.5167,185.185,-49.7697],[4877.13,598.512,32.8,181.704,-48.331],[4786.08,698.118,32.05,178.117,-46.7497],[4687.93,799.368,31.25,174.368,-44.9734],[4584.58,899.271,30.4167,170.569,-43.0203],[4473.81,998.871,29.5333,166.683,-40.8302],[4353.29,1098.65,28.5833,162.698,-38.332],[4218.43,1199.93,27.5333,158.572,-35.3932],[4068.77,1299.84,26.3833,154.45,-31.9571],[3894.92,1399.86,25.0667,150.335,-27.7459],[3682.39,1499.42,23.4833,146.398,-22.3111],[3380.82,1599.43,21.2833,143.112,-14.1956],[2866.73,1664.18,17.65,144.315,-0.0633067]]], + [48,1714.81,[[6337.22,-2002.34,47.2667,249.637,-67.8634],[6296.3,-1902.63,46.8333,247.737,-67.4915],[6253.45,-1800.18,46.3833,245.742,-67.0959],[6211.84,-1702.59,45.95,243.8,-66.7056],[6168.28,-1602.38,45.5,241.764,-66.2903],[6124.37,-1503.34,45.05,239.706,-65.8643],[6078.44,-1401.87,44.5833,237.551,-65.411],[6032.12,-1301.69,44.1167,235.375,-64.9455],[5985.42,-1202.81,43.65,233.178,-64.4673],[5936.64,-1101.81,43.1667,230.882,-63.958],[5887.45,-1002.24,42.6833,228.566,-63.4341],[5836.13,-900.788,42.1833,226.15,-62.8761],[5784.37,-800.92,41.6833,223.714,-62.3011],[5732.16,-702.664,41.1833,221.26,-61.7083],[5677.75,-602.851,40.6667,218.707,-61.0764],[5621.1,-501.676,40.1333,216.054,-60.4025],[5563.95,-402.414,39.6,213.385,-59.7058],[5504.49,-302.085,39.05,210.619,-58.9623],[5442.69,-200.907,38.4833,207.756,-58.1685],[5380.32,-101.984,37.9167,204.884,-57.3451],[5315.55,-2.54379,37.3333,201.92,-56.4652],[5246.45,99.9034,36.7167,198.783,-55.4976],[5176.7,199.56,36.1,195.647,-54.4897],[5104.4,298.963,35.4667,192.433,-53.4104],[5029.5,397.832,34.8167,189.146,-52.2539],[4950,498.28,34.1333,185.712,-50.9819],[4865.79,599.726,33.4167,182.143,-49.5829],[4778.77,699.335,32.6833,178.536,-48.0788],[4686.86,798.866,31.9167,174.828,-46.4238],[4587.92,899.632,31.1,170.965,-44.5632],[4483.82,998.665,30.25,167.062,-42.5146],[4370.3,1098.68,29.3333,163.014,-40.1714],[4244.99,1199.63,28.3333,158.828,-37.4505],[4107.52,1299.24,27.25,154.616,-34.3031],[3951.03,1398.8,26.0333,150.36,-30.5178],[3763.88,1499.11,24.6,146.115,-25.7252],[3522.37,1599.33,22.7833,142.158,-19.1774],[3092.27,1699.97,19.6333,139.871,-6.92935],[2849.39,1714.81,17.9,141.436,-0.0126804]]], + [49,1765.18,[[6271.6,-2000.21,47.7167,250.092,-68.3916],[6233.07,-1903.78,47.3,248.258,-68.0429],[6191.14,-1800.7,46.85,246.256,-67.6574],[6150.42,-1702.51,46.4167,244.306,-67.2769],[6107.78,-1601.65,45.9667,242.26,-66.872],[6064.79,-1501.96,45.5167,240.193,-66.4568],[6021.44,-1403.44,45.0667,238.104,-66.0308],[5976.12,-1302.52,44.6,235.916,-65.5774],[5930.42,-1202.91,44.1333,233.707,-65.1115],[5882.68,-1101.13,43.65,231.397,-64.6154],[5834.54,-1000.78,43.1667,229.065,-64.105],[5785.99,-901.889,42.6833,226.713,-63.5796],[5735.34,-801.139,42.1833,224.259,-63.0197],[5684.26,-701.992,41.6833,221.785,-62.4425],[5631.03,-601.247,41.1667,219.209,-61.8271],[5577.33,-502.263,40.65,216.615,-61.1916],[5521.43,-401.96,40.1167,213.92,-60.5135],[5463.26,-300.544,39.5667,211.124,-59.7898],[5404.59,-201.211,39.0167,208.314,-59.04],[5343.6,-101.079,38.45,205.406,-58.2389],[5280.25,-0.37839,37.8667,202.403,-57.3825],[5216.33,97.8749,37.2833,199.393,-56.4924],[5148.14,199.044,36.6667,196.207,-55.5129],[5079.33,297.398,36.05,193.023,-54.4917],[5006.12,397.977,35.4,189.674,-53.3679],[4930.32,497.792,34.7333,186.253,-52.162],[4849.96,598.899,34.0333,182.686,-50.8347],[4766.87,698.431,33.3167,179.069,-49.4072],[4679.05,798.213,32.5667,175.334,-47.8351],[4584.41,899.636,31.7667,171.422,-46.0653],[4484.77,999.703,30.9333,167.446,-44.1141],[4377.99,1099.46,30.05,163.367,-41.92],[4261.85,1199.38,29.1,159.166,-39.4091],[4134,1299.26,28.0667,154.862,-36.493],[3989.87,1399.45,26.9167,150.461,-33.0151],[3822.53,1499.75,25.6,146.023,-28.7309],[3618.04,1599.62,24.0167,141.702,-23.1688],[3328.09,1699.97,21.8167,137.918,-14.8022],[2832.07,1765.18,18.1667,138.51,-0.047306]]], + [50,1815.23,[[6203.54,-2003.74,48.1833,250.654,-68.9367],[6164.35,-1902.87,47.75,248.741,-68.5834],[6124.84,-1803.02,47.3167,246.806,-68.2217],[6083.47,-1700.42,46.8667,244.773,-67.8368],[6043.3,-1602.7,46.4333,242.795,-67.4569],[6001.24,-1502.35,45.9833,240.718,-67.0525],[5958.84,-1403.16,45.5333,238.62,-66.6376],[5914.51,-1301.55,45.0667,236.421,-66.1959],[5869.8,-1201.23,44.6,234.199,-65.7421],[5824.71,-1102.22,44.1333,231.956,-65.2757],[5777.63,-1001.08,43.65,229.61,-64.7789],[5730.15,-901.384,43.1667,227.242,-64.2674],[5682.27,-803.155,42.6833,224.853,-63.7408],[5632.33,-703.104,42.1833,222.361,-63.1794],[5580.27,-601.415,41.6667,219.765,-62.5807],[5527.77,-501.477,41.15,217.148,-61.9624],[5473.1,-400.177,40.6167,214.428,-61.3025],[5417.95,-300.798,40.0833,211.69,-60.6198],[5360.59,-200.352,39.5333,208.849,-59.8906],[5302.72,-102.008,38.9833,205.995,-59.1346],[5240.8,-0.0329413,38.4,202.954,-58.3023],[5178.33,99.5092,37.8167,199.903,-57.4368],[5113.48,199.32,37.2167,196.758,-56.5103],[5046.24,299.143,36.6,193.523,-55.5177],[4976.53,398.708,35.9667,190.202,-54.4535],[4904.33,497.733,35.3167,186.803,-53.3114],[4827.71,598.334,34.6333,183.246,-52.0534],[4746.56,699.93,33.9167,179.543,-50.6672],[4662.7,799.679,33.1833,175.794,-49.174],[4574.15,899.342,32.4167,171.932,-47.5273],[4480.8,998.227,31.6167,167.98,-45.7106],[4378.6,1099.37,30.75,163.811,-43.6228],[4269.29,1199.49,29.8333,159.558,-41.2721],[4150.68,1298.9,28.85,155.213,-38.5797],[4018.42,1398.73,27.7667,150.739,-35.4012],[3865.83,1499.78,26.5333,146.126,-31.5054],[3687.97,1599.02,25.1167,141.587,-26.669],[3455.91,1699.43,23.3,137.199,-19.9408],[3047.46,1799.73,20.1833,134.273,-7.38206],[2810.1,1815.23,18.4167,135.585,-0.0347111]]], + [51,1864.93,[[6128.53,-2001.3,48.6167,251.104,-69.4581],[6091.68,-1903.77,48.2,249.258,-69.1272],[6053.04,-1803.34,47.7667,247.317,-68.775],[6012.59,-1700.13,47.3167,245.277,-68.4002],[5973.31,-1601.81,46.8833,243.291,-68.0302],[5932.19,-1500.84,46.4333,241.205,-67.6364],[5890.72,-1401.02,45.9833,239.097,-67.2323],[5848.92,-1302.38,45.5333,236.966,-66.8177],[5805.21,-1201.34,45.0667,234.734,-66.3761],[5761.14,-1101.61,44.6,232.478,-65.9221],[5716.7,-1003.2,44.1333,230.2,-65.4555],[5670.3,-902.691,43.65,227.818,-64.9582],[5621.88,-800.247,43.15,225.33,-64.4281],[5574.68,-702.724,42.6667,222.904,-63.9],[5523.8,-600.135,42.15,220.288,-63.3176],[5474.14,-502.512,41.65,217.735,-62.7358],[5420.72,-400.203,41.1167,214.992,-62.0944],[5368.52,-302.911,40.6,212.314,-61.4517],[5312.48,-201.339,40.05,209.446,-60.7434],[5255.94,-101.856,39.5,206.561,-60.0089],[5197.18,-1.57514,38.9333,203.572,-59.2236],[5136.15,99.2712,38.35,200.483,-58.3832],[5074.58,197.664,37.7667,197.384,-57.5088],[5008.9,298.971,37.15,194.101,-56.5453],[4942.63,397.455,36.5333,190.816,-55.5397],[4872.13,498.163,35.8833,187.356,-54.4314],[4799.14,598.098,35.2167,183.817,-53.2403],[4721.77,699.32,34.5167,180.121,-51.927],[4641.78,798.956,33.8,176.368,-50.512],[4557.26,898.833,33.05,172.484,-48.9503],[4468.08,998.281,32.2667,168.492,-47.2257],[4372.23,1098.53,31.4333,164.336,-45.28],[4269.54,1198.47,30.55,160.058,-43.0855],[4157.87,1298.55,29.6,155.637,-40.5654],[4034.96,1398.59,28.5667,151.086,-37.627],[3896.47,1498.93,27.4167,146.403,-34.1062],[3735.72,1599.36,26.1,141.639,-29.7458],[3539.38,1699.33,24.5167,136.932,-24.0479],[3261.17,1799.74,22.3167,132.653,-15.4089],[2785.81,1864.93,18.6667,132.636,-0.0423404]]], + [52,1914.21,[[6049.61,-2000.73,49.05,251.588,-69.9833],[6013.59,-1902.68,48.6333,249.737,-69.6611],[5975.83,-1801.7,48.2,247.789,-69.3181],[5937.75,-1701.74,47.7667,245.818,-68.9668],[5899.38,-1602.81,47.3333,243.825,-68.6069],[5859.19,-1501.2,46.8833,241.732,-68.2238],[5818.68,-1400.74,46.4333,239.615,-67.8307],[5777.83,-1301.45,45.9833,237.474,-67.4272],[5736.65,-1203.35,45.5333,235.311,-67.013],[5693.59,-1102.89,45.0667,233.044,-66.5718],[5648.62,-1000.22,44.5833,230.672,-66.1016],[5604.84,-902.445,44.1167,228.358,-65.6345],[5559.12,-802.606,43.6333,225.939,-65.1365],[5511.43,-700.872,43.1333,223.413,-64.6055],[5463.33,-600.735,42.6333,220.863,-64.0576],[5414.82,-502.218,42.1333,218.291,-63.4922],[5364.28,-402.144,41.6167,215.612,-62.8886],[5311.65,-300.71,41.0833,212.824,-62.2441],[5258.57,-201.201,40.55,210.017,-61.5767],[5203.36,-100.628,40,207.102,-60.8632],[5147.66,-2.16232,39.45,204.17,-60.123],[5088.08,99.9344,38.8667,201.045,-59.3072],[5027.96,199.591,38.2833,197.906,-58.458],[4965.57,299.511,37.6833,194.668,-57.5479],[4900.87,399.438,37.0667,191.333,-56.5716],[4833.81,499.099,36.4333,187.906,-55.5235],[4764.36,598.214,35.7833,184.394,-54.397],[4690.67,698.897,35.1,180.713,-53.1541],[4614.46,798.248,34.4,176.965,-51.8148],[4533.85,898.155,33.6667,173.072,-50.3355],[4448.74,997.97,32.9,169.053,-48.7006],[4357.16,1099,32.0833,164.846,-46.8535],[4260.84,1198.28,31.2333,160.57,-44.8081],[4155.84,1298.51,30.3167,156.107,-42.4535],[4040,1399.65,29.3167,151.454,-39.699],[3912.99,1499.4,28.2333,146.721,-36.4854],[3768.51,1599.06,27.0167,141.872,-32.5822],[3595.87,1699.39,25.5833,136.93,-27.582],[3373.34,1799.5,23.7667,132.126,-20.6536],[2975.67,1899.97,20.6,128.614,-7.38623],[2759.21,1914.2,18.9167,129.664,-0.0718819]]], + [53,1963.01,[[5966.73,-2002.12,49.4833,252.107,-70.512],[5931.55,-1903.54,49.0667,250.251,-70.1986],[5894.67,-1801.99,48.6333,248.297,-69.865],[5857.49,-1701.46,48.2,246.32,-69.5233],[5820,-1601.97,47.7667,244.32,-69.1732],[5782.22,-1503.52,47.3333,242.297,-68.8145],[5742.65,-1402.41,46.8833,240.172,-68.4324],[5702.77,-1302.46,46.4333,238.023,-68.0403],[5661.06,-1200.06,45.9667,235.77,-67.6226],[5620.51,-1102.53,45.5167,233.573,-67.2088],[5578.12,-1002.67,45.05,231.271,-66.7677],[5533.85,-900.641,44.5667,228.862,-66.2976],[5489.2,-800.055,44.0833,226.429,-65.8134],[5444.18,-700.931,43.6,223.971,-65.3145],[5398.79,-603.291,43.1167,221.49,-64.8003],[5349.87,-500.582,42.6,218.814,-64.2329],[5302.11,-402.848,42.1,216.201,-63.6656],[5250.75,-300.425,41.5667,213.391,-63.0399],[5200.56,-203.028,41.05,210.648,-62.4124],[5146.68,-101.351,40.5,207.706,-61.7203],[5092.33,-1.76836,39.95,204.745,-61.002],[5035.84,98.6082,39.3833,201.675,-60.2333],[4977.18,199.545,38.8,198.5,-59.4098],[4918.01,298.02,38.2167,195.311,-58.5519],[4854.89,399.406,37.6,191.93,-57.6057],[4791.21,497.959,36.9833,188.543,-56.6166],[4723.47,598.729,36.3333,184.971,-55.5251],[4653.35,698.716,35.6667,181.314,-54.3501],[4579.03,799.979,34.9667,177.489,-53.0522],[4502.22,899.644,34.25,173.597,-51.651],[4421.05,999.536,33.5,169.564,-50.1012],[4335.43,1098.98,32.7167,165.409,-48.3855],[4243.42,1199.21,31.8833,161.074,-46.4444],[4144.87,1299.1,31,156.599,-44.2482],[4037.71,1399.11,30.05,151.958,-41.7169],[3919.82,1499.04,29.0167,147.162,-38.7531],[3787.01,1599.22,27.8667,142.2,-35.1844],[3632.93,1699.42,26.55,137.115,-30.7391],[3442.83,1799.98,24.95,131.985,-24.826],[3176.43,1899.49,22.75,127.255,-15.8776],[2728.15,1963.01,19.15,126.688,-0.0511617]]], + [54,2011.3,[[5878.51,-2001.56,49.9,252.585,-71.0319],[5844.17,-1902.47,49.4833,250.724,-70.7271],[5808.17,-1800.39,49.05,248.765,-70.4027],[5773.27,-1703.19,48.6333,246.859,-70.0833],[5736.69,-1603.11,48.2,244.853,-69.7432],[5698.39,-1500.29,47.75,242.744,-69.381],[5661.2,-1402.35,47.3167,240.691,-69.0233],[5622.27,-1301.77,46.8667,238.533,-68.6422],[5583.03,-1202.37,46.4167,236.352,-68.251],[5542,-1100.55,45.95,234.063,-67.8341],[5500.62,-1000.02,45.4833,231.75,-67.4054],[5458.9,-900.808,45.0167,229.412,-66.9645],[5416.85,-802.933,44.55,227.05,-66.5107],[5372.93,-702.991,44.0667,224.578,-66.0266],[5327.12,-601.156,43.5667,221.996,-65.5102],[5280.92,-500.921,43.0667,219.389,-64.9771],[5234.34,-402.312,42.5667,216.758,-64.4266],[5185.79,-302.148,42.05,214.015,-63.8385],[5135.26,-200.627,41.5167,211.16,-63.21],[5084.29,-101.036,40.9833,208.282,-62.5587],[5031.28,-0.385992,40.4333,205.292,-61.8619],[4977.81,98.1501,39.8833,202.283,-61.1383],[4922.25,197.429,39.3167,199.164,-60.3632],[4864.55,297.214,38.7333,195.938,-59.5323],[4804.68,397.26,38.1333,192.606,-58.6408],[4740.92,499.971,37.5,189.078,-57.6567],[4676.57,599.667,36.8667,185.544,-56.6259],[4609.93,698.805,36.2167,181.918,-55.5164],[4539.23,799.5,35.5333,178.112,-54.29],[4466.12,898.849,34.8333,174.231,-52.966],[4388.8,998.74,34.1,170.194,-51.5006],[4307.19,1098.52,33.3333,166.017,-49.8772],[4219.38,1199.5,32.5167,161.637,-48.0379],[4127.04,1298.69,31.6667,157.174,-45.9951],[4026.42,1398.82,30.75,152.502,-43.6352],[3915.42,1499.81,29.75,147.613,-40.8633],[3793.77,1599.36,28.6667,142.618,-37.6143],[3655.43,1698.76,27.45,137.471,-33.6462],[3488.27,1799.78,26,132.123,-28.4674],[3273.41,1899.85,24.1667,126.878,-21.2463],[2881.11,1999.78,20.9,122.853,-6.95738]]], + [55,2059.02,[[5786.36,-2003.05,50.3167,253.097,-71.5555],[5752.86,-1903.45,49.9,251.233,-71.2595],[5717.75,-1800.83,49.4667,249.269,-70.9443],[5683.71,-1703.11,49.05,247.357,-70.6341],[5648.03,-1602.48,48.6167,245.345,-70.3036],[5612.06,-1502.88,48.1833,243.309,-69.965],[5574.4,-1400.56,47.7333,241.169,-69.6043],[5537.84,-1303.12,47.3,239.084,-69.2479],[5499.57,-1203.08,46.85,236.894,-68.8681],[5459.55,-1100.58,46.3833,234.596,-68.4634],[5420.65,-1002.96,45.9333,232.356,-68.0623],[5379.98,-903.016,45.4667,230.008,-67.6347],[5337.5,-800.9,44.9833,227.549,-67.1786],[5294.68,-700.229,44.5,225.063,-66.7085],[5251.49,-601.025,44.0167,222.552,-66.224],[5207.95,-503.31,43.5333,220.016,-65.7243],[5161.02,-400.525,43.0167,217.279,-65.1726],[5115.23,-302.722,42.5167,214.606,-64.6206],[5065.96,-200.233,41.9833,211.729,-64.0113],[5017.84,-102.778,41.4667,208.918,-63.3998],[4966.17,-1.04499,40.9167,205.903,-62.7248],[4914.06,98.5859,40.3667,202.865,-62.0237],[4859.9,199.005,39.8,199.714,-61.2725],[4803.67,299.977,39.2167,196.452,-60.4669],[4746.94,398.478,38.6333,193.173,-59.6269],[4686.45,499.882,38.0167,189.692,-58.699],[4625.41,598.443,37.4,186.202,-57.7279],[4560.5,699.209,36.75,182.519,-56.6545],[4493.32,799.18,36.0833,178.742,-55.4971],[4423.82,898.048,35.4,174.88,-54.2476],[4350.25,997.762,34.6833,170.848,-52.8638],[4270.79,1099.86,33.9167,166.57,-51.2946],[4188.81,1199.22,33.1333,162.251,-49.5896],[4100.72,1299.33,32.3,157.734,-47.655],[4006.39,1399.08,31.4167,153.06,-45.4586],[3903.84,1498.91,30.4667,148.198,-42.9174],[3791.06,1598.61,29.4333,143.152,-39.9286],[3662.2,1699.86,28.2667,137.834,-36.2561],[3514.87,1799.47,26.95,132.432,-31.716],[3333.2,1899.26,25.35,126.93,-25.6318],[3071.02,1999.86,23.0833,121.643,-16.0463]]], + [56,2106.11,[[5688.95,-2002.67,50.7167,253.57,-72.0714],[5656.3,-1902.58,50.3,251.701,-71.7839],[5623.39,-1803.4,49.8833,249.808,-71.4897],[5588.89,-1701.23,49.45,247.815,-71.1765],[5554.1,-1600.08,49.0167,245.797,-70.8556],[5520.39,-1503.79,48.6,243.833,-70.5394],[5483.69,-1400.88,48.15,241.687,-70.1894],[5448.06,-1302.86,47.7167,239.595,-69.8436],[5410.76,-1202.2,47.2667,237.396,-69.475],[5373.16,-1102.72,46.8167,235.173,-69.0965],[5333.84,-1000.82,46.35,232.84,-68.693],[5294.2,-900.221,45.8833,230.48,-68.2779],[5254.24,-800.942,45.4167,228.094,-67.8506],[5213.95,-703.002,44.95,225.683,-67.4108],[5171.88,-602.998,44.4667,223.159,-66.9413],[5128,-501.102,43.9667,220.52,-66.4402],[5083.75,-400.814,43.4667,217.855,-65.9225],[5039.14,-302.156,42.9667,215.164,-65.3876],[4992.65,-201.947,42.45,212.357,-64.8158],[4944.25,-100.385,41.9167,209.433,-64.2043],[4895.45,-0.761505,41.3833,206.484,-63.57],[4844.69,99.9159,40.8333,203.419,-62.8908],[4793.5,198.471,40.2833,200.332,-62.1849],[4740.31,297.762,39.7167,197.13,-61.4279],[4685.08,397.551,39.1333,193.814,-60.6155],[4627.77,497.59,38.5333,190.387,-59.7427],[4568.36,597.62,37.9167,186.851,-58.8041],[4505.17,699.951,37.2667,183.114,-57.7662],[4441.41,799.047,36.6167,179.372,-56.6752],[4373.77,899.685,35.9333,175.442,-55.4672],[4303.83,998.96,35.2333,171.426,-54.1604],[4229.89,1098.76,34.5,167.243,-52.7108],[4151.84,1198.42,33.7333,162.908,-51.1008],[4067.88,1299.25,32.9167,158.352,-49.2716],[3979.63,1398.28,32.0667,153.7,-47.2333],[3881.7,1499.94,31.1333,148.728,-44.8253],[3777.41,1598.91,30.15,143.686,-42.0819],[3659.42,1699.59,29.05,138.347,-38.7446],[3525.5,1799.67,27.8167,132.833,-34.646],[3365.91,1899.71,26.3667,127.147,-29.3289],[3157.17,1999.95,24.5,121.426,-21.7093]]], + [57,2152.53,[[5586.35,-2000.43,51.1,254.002,-72.5802],[5555.82,-1903.89,50.7,252.204,-72.3124],[5522.48,-1800.24,50.2667,250.231,-72.0155],[5490.17,-1701.52,49.85,248.31,-71.7232],[5457.6,-1603.72,49.4333,246.365,-71.424],[5423.46,-1503.02,49,244.317,-71.1052],[5389.04,-1403.36,48.5667,242.244,-70.7784],[5353.01,-1300.97,48.1167,240.065,-70.4302],[5318.03,-1203.47,47.6833,237.941,-70.086],[5281.42,-1103.36,47.2333,235.709,-69.7191],[5243.14,-1000.8,46.7667,233.367,-69.328],[5205.92,-903.132,46.3167,231.083,-68.9401],[5167.02,-803.133,45.85,228.687,-68.5264],[5126.4,-700.966,45.3667,226.177,-68.085],[5085.43,-600.251,44.8833,223.64,-67.6298],[5044.13,-501.007,44.4,221.075,-67.1604],[5002.49,-403.256,43.9167,218.484,-66.6759],[4957.61,-300.44,43.4,215.685,-66.1407],[4913.82,-202.612,42.9,212.951,-65.6048],[4866.71,-100.103,42.3667,210.006,-65.0128],[4820.7,-2.63535,41.85,207.128,-64.4183],[4771.3,99.1042,41.3,204.038,-63.7614],[4721.48,198.734,40.75,200.923,-63.0785],[4669.72,299.142,40.1833,197.69,-62.3461],[4617.51,397.245,39.6167,194.435,-61.5827],[4561.76,498.568,39.0167,190.969,-60.7389],[4503.94,599.93,38.4,187.389,-59.831],[4445.62,698.439,37.7833,183.796,-58.8793],[4383.61,799.137,37.1333,179.999,-57.8258],[4319.43,899.026,36.4667,176.101,-56.6879],[4253.05,997.794,35.7833,172.11,-55.457],[4181.15,1099.66,35.05,167.842,-54.0582],[4106.92,1199.34,34.3,163.504,-52.538],[4028.65,1298.53,33.5167,159.019,-50.846],[3944.57,1398.44,32.6833,154.318,-48.9202],[3852.84,1499.76,31.7833,149.35,-46.683],[3754.99,1599.16,30.8333,144.265,-44.1301],[3645.65,1699.89,29.7833,138.888,-41.0623],[3524.51,1799.01,28.6333,133.367,-37.3848],[3382.29,1899.04,27.3,127.574,-32.6824],[3205.55,1999.41,25.6667,121.6,-26.2674]]], + [58,2198.22,[[5479.86,-2000.42,51.4833,254.467,-73.0936],[5450.15,-1903.43,51.0833,252.666,-72.8339],[5418.96,-1803.27,50.6667,250.765,-72.5572],[5386.26,-1700.08,50.2333,248.763,-72.2626],[5354.56,-1601.8,49.8167,246.813,-71.9724],[5321.33,-1500.59,49.3833,244.76,-71.6633],[5287.84,-1400.42,48.95,242.68,-71.3463],[5254.07,-1301.28,48.5167,240.575,-71.0213],[5220.04,-1203.21,48.0833,238.445,-70.6879],[5184.42,-1102.51,47.6333,236.205,-70.3324],[5148.5,-1002.99,47.1833,233.939,-69.9671],[5110.96,-901.052,46.7167,231.56,-69.5776],[5073.1,-800.415,46.25,229.154,-69.1766],[5034.94,-701.104,45.7833,226.72,-68.7638],[4996.47,-603.138,45.3167,224.258,-68.3385],[4956.3,-503.111,44.8333,221.681,-67.8844],[4914.4,-401.197,44.3333,218.986,-67.3994],[4872.15,-300.896,43.8333,216.262,-66.898],[4829.56,-202.231,43.3333,213.51,-66.3796],[4785.18,-102.022,42.8167,210.638,-65.825],[4738.98,-0.467226,42.2833,207.646,-65.2314],[4692.4,99.1425,41.75,204.626,-64.6153],[4643.95,199.798,41.2,201.484,-63.9549],[4595.1,298.322,40.65,198.318,-63.2678],[4544.34,397.573,40.0833,195.032,-62.5302],[4491.64,497.311,39.5,191.627,-61.7378],[4436.97,597.287,38.9,188.104,-60.8854],[4378.75,699.902,38.2667,184.367,-59.942],[4320.01,799.478,37.6333,180.617,-58.9507],[4259.2,898.468,36.9833,176.759,-57.8802],[4194.69,998.98,36.3,172.702,-56.6926],[4128.01,1098.11,35.6,168.551,-55.4052],[4055.9,1199.95,34.85,164.122,-53.9402],[3981.5,1299.31,34.0833,159.628,-52.3439],[3901.47,1399.8,33.2667,154.896,-50.5248],[3817.36,1498.44,32.4167,150.052,-48.4908],[3724.07,1599.65,31.4833,144.863,-46.0782],[3623.04,1699.71,30.4833,139.498,-43.2678],[3510.67,1799.62,29.3833,133.893,-39.8852],[3383.18,1898.77,28.15,128.079,-35.7041],[3227.82,1999.7,26.6667,121.923,-30.1048]]], + [59,2243.14,[[5369.49,-2002.7,51.8667,254.967,-73.6111],[5339.4,-1901.2,51.45,253.087,-73.3491],[5309.07,-1800.6,51.0333,251.183,-73.0809],[5278.5,-1700.91,50.6167,249.254,-72.8064],[5247.68,-1602.14,50.2,247.299,-72.5255],[5215.38,-1500.41,49.7667,245.241,-72.2261],[5184.07,-1403.56,49.35,243.237,-71.9311],[5149.98,-1300.05,48.9,241.045,-71.6044],[5116.89,-1201.44,48.4667,238.907,-71.2814],[5082.26,-1100.18,48.0167,236.66,-70.9371],[5047.34,-1000.09,47.5667,234.385,-70.5834],[5012.14,-901.193,47.1167,232.083,-70.2197],[4976.66,-803.502,46.6667,229.754,-69.8458],[4939.58,-703.487,46.2,227.31,-69.4467],[4900.85,-601.309,45.7167,224.749,-69.0206],[4861.8,-500.588,45.2333,222.159,-68.5811],[4822.44,-401.344,44.75,219.54,-68.1275],[4781.38,-300.255,44.25,216.801,-67.6427],[4739.98,-200.794,43.75,214.032,-67.1413],[4698.25,-102.984,43.25,211.236,-66.6226],[4653.36,-0.50097,42.7167,208.223,-66.049],[4609.52,96.9344,42.2,205.277,-65.4725],[4562.45,198.631,41.65,202.111,-64.835],[4514.99,298.21,41.1,198.919,-64.1716],[4465.68,398.557,40.5333,195.603,-63.4593],[4414.48,499.436,39.95,192.164,-62.6938],[4362.85,597.824,39.3667,188.702,-61.8936],[4307.79,699.087,38.75,185.021,-61.0074],[4252.26,797.484,38.1333,181.323,-60.0771],[4193.21,898.051,37.4833,177.412,-59.0455],[4132.11,997.791,36.8167,173.392,-57.9293],[4067.38,1098.75,36.1167,169.171,-56.689],[4000.5,1198.05,35.4,164.858,-55.3413],[3928.29,1299.67,34.6333,160.266,-53.8053],[3853.81,1398.5,33.85,155.613,-52.1268],[3772.21,1499.94,33,150.631,-50.1701],[3686.57,1598.85,32.1167,145.552,-47.9745],[3591.88,1699.4,31.15,140.149,-45.3653],[3487.93,1799.34,30.1,134.518,-42.2653],[3371.12,1898.9,28.9333,128.633,-38.469],[3232.58,1999.89,27.5667,122.38,-33.5179]]], + [60,2287.24,[[5254.02,-2003.26,52.2333,255.427,-74.1228],[5224.79,-1901.31,51.8167,253.544,-73.8691],[5195.32,-1800.26,51.4,251.636,-73.6096],[5165.63,-1700.11,50.9833,249.703,-73.3439],[5135.69,-1600.87,50.5667,247.745,-73.072],[5105.52,-1502.57,50.15,245.761,-72.7935],[5073.9,-1401.33,49.7167,243.672,-72.4967],[5042.02,-1301.13,49.2833,241.555,-72.1923],[5009.88,-1201.98,48.85,239.412,-71.88],[4976.24,-1100.14,48.4,237.158,-71.547],[4943.59,-1003.18,47.9667,234.961,-71.2177],[4909.42,-903.649,47.5167,232.652,-70.8663],[4873.69,-801.702,47.05,230.227,-70.4915],[4837.67,-701.065,46.5833,227.773,-70.1054],[4801.36,-601.759,46.1167,225.29,-69.7077],[4763.45,-500.33,45.6333,222.688,-69.283],[4725.22,-400.37,45.15,220.056,-68.8446],[4686.69,-301.901,44.6667,217.395,-68.3919],[4646.5,-201.629,44.1667,214.611,-67.9078],[4605.98,-103,43.6667,211.798,-67.4069],[4563.77,-2.83439,43.15,208.861,-66.8706],[4519.84,98.6678,42.6167,205.799,-66.2962],[4475.54,198.217,42.0833,202.707,-65.6994],[4429.47,298.801,41.5333,199.489,-65.0591],[4383.02,397.245,40.9833,196.244,-64.3923],[4333.33,499.285,40.4,192.773,-63.6542],[4283.22,598.846,39.8167,189.277,-62.8824],[4231.24,698.628,39.2167,185.657,-62.051],[4177.35,798.369,38.6,181.916,-61.1544],[4121.53,897.794,37.9667,178.055,-60.1859],[4062.26,999.104,37.3,173.978,-59.1106],[4000.96,1099.33,36.6167,169.792,-57.9443],[3937.6,1198.15,35.9167,165.506,-56.6772],[3869.1,1299.64,35.1667,160.925,-55.2317],[3798.42,1398.63,34.4,156.269,-53.6522],[3722.43,1498.68,33.5833,151.357,-51.8464],[3641,1598.71,32.7167,146.222,-49.7783],[3552.43,1699.23,31.7833,140.814,-47.3603],[3456.55,1798.52,30.7833,135.207,-44.5292],[3348.31,1898.94,29.6667,129.244,-41.0467],[3224.1,1999.3,28.4,122.972,-36.6508]]], + [61,2330.47,[[5133.56,-2002.11,52.5833,255.846,-74.6292],[5106.33,-1903.82,52.1833,254.036,-74.3937],[5077.75,-1802.3,51.7667,252.126,-74.1429],[5048.94,-1701.68,51.35,250.19,-73.8861],[5019.89,-1601.97,50.9333,248.228,-73.6233],[4990.62,-1503.19,50.5167,246.24,-73.3541],[4959.94,-1401.44,50.0833,244.146,-73.0673],[4929.01,-1300.73,49.65,242.024,-72.7731],[4897.83,-1201.06,49.2167,239.875,-72.4713],[4866.4,-1102.46,48.7833,237.699,-72.1615],[4833.51,-1001.2,48.3333,235.411,-71.8311],[4800.35,-901.113,47.8833,233.093,-71.4915],[4766.92,-802.225,47.4333,230.747,-71.1422],[4731.98,-700.955,46.9667,228.284,-70.7694],[4696.75,-601.009,46.5,225.79,-70.3853],[4661.25,-502.405,46.0333,223.268,-69.9895],[4624.17,-401.716,45.55,220.624,-69.5665],[4586.8,-302.51,45.0667,217.95,-69.1297],[4547.82,-201.468,44.5667,215.152,-68.6625],[4508.53,-102.059,44.0667,212.324,-68.1791],[4467.59,-1.08014,43.55,209.369,-67.6615],[4426.31,98.1018,43.0333,206.383,-67.1246],[4383.35,198.57,42.5,203.27,-66.5491],[4340.03,297.066,41.9667,200.127,-65.9507],[4293.63,399.526,41.4,196.756,-65.2884],[4246.83,499.692,40.8333,193.356,-64.597],[4199.63,597.532,40.2667,189.928,-63.8748],[4149.24,698.553,39.6667,186.272,-63.0744],[4097.01,799.581,39.05,182.489,-62.2108],[4044.33,897.73,38.4333,178.686,-61.3028],[3988.32,998.02,37.7833,174.658,-60.2943],[3928.91,1099.9,37.1,170.412,-59.1726],[3868.98,1198.08,36.4167,166.159,-57.9832],[3804.09,1299.28,35.6833,161.599,-56.625],[3737.12,1398.24,34.9333,156.951,-55.141],[3665.03,1498.66,34.1333,152.027,-53.4427],[3587.69,1599.47,33.2833,146.853,-51.4958],[3505.01,1699.49,32.3833,141.471,-49.2587],[3415.3,1799.11,31.4167,135.838,-46.6347],[3315.28,1899.5,30.35,129.859,-43.4468],[3203.08,1998.97,29.1667,123.608,-39.516]]], + [62,2372.77,[[5009.28,-2003.44,52.9333,256.3,-75.1404],[4981.78,-1900.64,52.5167,254.412,-74.9034],[4955.18,-1802.78,52.1167,252.574,-74.6707],[4927.25,-1701.71,51.7,250.635,-74.4228],[4899.1,-1601.56,51.2833,248.669,-74.1689],[4870.73,-1502.32,50.8667,246.678,-73.909],[4840.99,-1400.1,50.4333,244.579,-73.6319],[4812.16,-1302.78,50.0167,242.534,-73.3588],[4781.95,-1202.58,49.5833,240.38,-73.0676],[4751.5,-1103.44,49.15,238.199,-72.7687],[4719.62,-1001.63,48.7,235.904,-72.4498],[4687.48,-900.977,48.25,233.579,-72.1221],[4655.09,-801.517,47.8,231.225,-71.785],[4622.44,-703.263,47.35,228.842,-71.4382],[4588.32,-602.663,46.8833,226.34,-71.0679],[4553.92,-503.399,46.4167,223.808,-70.6863],[4518,-402.019,45.9333,221.153,-70.2784],[4481.79,-302.114,45.45,218.467,-69.8572],[4444.02,-200.34,44.95,215.655,-69.4067],[4405.94,-100.193,44.45,212.811,-68.9404],[4367.56,-1.69613,43.95,209.936,-68.4576],[4327.57,98.3241,43.4333,206.932,-67.9403],[4285.96,199.667,42.9,203.799,-67.3857],[4243.99,299.047,42.3667,200.633,-66.809],[4200.36,399.447,41.8167,197.337,-66.1897],[4156.37,497.697,41.2667,194.011,-65.5439],[4109.32,599.519,40.6833,190.452,-64.8283],[4061.88,698.85,40.1,186.863,-64.0791],[4012.67,798.383,39.5,183.146,-63.271],[3961.66,897.853,38.8833,179.3,-62.398],[3907.43,999.552,38.2333,175.223,-61.428],[3852.73,1097.97,37.5833,171.13,-60.4028],[3794.73,1197.85,36.9,166.814,-59.2609],[3733.35,1298.59,36.1833,162.284,-57.9868],[3668.54,1399.55,35.4333,157.549,-56.5622],[3601.69,1497.96,34.6667,152.73,-55.0007],[3528.34,1599.36,33.8333,147.533,-53.1713],[3451.34,1698.57,32.9667,142.2,-51.1082],[3366.1,1799.87,32.0167,136.472,-48.6392],[3273.95,1899.54,31,130.528,-45.731],[3170.13,1999.82,29.8667,124.206,-42.1301]]], + [63,2414.11,[[4880.09,-2003.15,53.2667,256.714,-75.6474],[4854.54,-1904.05,52.8667,254.899,-75.4279],[4827.72,-1801.68,52.45,252.983,-75.1941],[4800.68,-1700.2,52.0333,251.04,-74.9548],[4774.52,-1603.63,51.6333,249.15,-74.7197],[4747.06,-1503.93,51.2167,247.155,-74.4691],[4718.27,-1401.22,50.7833,245.052,-74.2019],[4690.37,-1303.43,50.3667,243.003,-73.9386],[4661.12,-1202.74,49.9333,240.845,-73.6578],[4631.64,-1103.09,49.5,238.657,-73.3695],[4600.79,-1000.75,49.05,236.356,-73.0621],[4570.84,-903.29,48.6167,234.111,-72.7579],[4539.49,-803.246,48.1667,231.75,-72.4332],[4506.72,-700.765,47.7,229.271,-72.0866],[4474.87,-603.184,47.25,226.849,-71.7424],[4441.57,-503.294,46.7833,224.308,-71.3746],[4406.81,-401.259,46.3,221.642,-70.9817],[4371.76,-300.692,45.8167,218.944,-70.5758],[4336.43,-201.616,45.3333,216.213,-70.1563],[4299.59,-100.714,44.8333,213.356,-69.7075],[4262.45,-1.45535,44.3333,210.465,-69.2426],[4223.76,99.3611,43.8167,207.444,-68.7446],[4184.75,198.371,43.3,204.391,-68.2276],[4144.16,298.653,42.7667,201.205,-67.6728],[4101.94,399.992,42.2167,197.886,-67.077],[4059.38,499.192,41.6667,194.534,-66.4557],[4015.17,599.127,41.1,191.049,-65.7871],[3969.28,699.558,40.5167,187.429,-65.0668],[3923,797.474,39.9333,183.78,-64.3118],[3873.67,898.21,39.3167,179.895,-63.4733],[3822.57,998.654,38.6833,175.878,-62.5657],[3769.68,1098.52,38.0333,171.734,-61.5816],[3713.59,1199.94,37.35,167.359,-60.4848],[3655.63,1299.97,36.65,162.867,-59.2897],[3595.76,1398.29,35.9333,158.265,-57.9845],[3531.15,1498.8,35.1667,153.352,-56.4883],[3463.11,1598.47,34.3667,148.253,-54.8063],[3390.15,1698.44,33.5167,142.887,-52.8703],[3310.7,1799.31,32.6,137.189,-50.5923],[3224.64,1899.39,31.6167,131.224,-47.9048],[3128.84,1999.74,30.5333,124.89,-44.6184]]], + [64,2454.44,[[4746.1,-2001.26,53.5833,257.087,-76.1506],[4721.4,-1901.79,53.1833,255.269,-75.939],[4696.5,-1803.13,52.7833,253.427,-75.7227],[4670.36,-1701.22,52.3667,251.482,-75.4922],[4644.01,-1600.21,51.95,249.509,-75.2562],[4617.45,-1500.11,51.5333,247.51,-75.0145],[4590.68,-1400.94,51.1167,245.484,-74.7669],[4563.71,-1302.7,50.7,243.431,-74.5132],[4535.43,-1201.54,50.2667,241.267,-74.2426],[4506.93,-1101.42,49.8333,239.074,-73.9649],[4478.21,-1002.37,49.4,236.852,-73.6798],[4448.14,-900.638,48.95,234.515,-73.3756],[4417.83,-800.087,48.5,232.146,-73.0627],[4387.28,-700.731,48.05,229.747,-72.7408],[4356.49,-602.586,47.6,227.318,-72.4094],[4324.31,-502.106,47.1333,224.766,-72.0555],[4291.87,-402.967,46.6667,222.183,-71.6904],[4258,-301.725,46.1833,219.475,-71.3],[4223.86,-201.965,45.7,216.732,-70.8966],[4188.26,-100.349,45.2,213.861,-70.4649],[4152.36,-0.36729,44.7,210.956,-70.0178],[4116.18,97.9551,44.2,208.018,-69.5544],[4078.49,197.786,43.6833,204.947,-69.0575],[4039.26,298.924,43.15,201.742,-68.5243],[3999.71,398.09,42.6167,198.503,-67.9694],[3958.6,498.257,42.0667,195.128,-67.3728],[3915.88,599.2,41.5,191.616,-66.7308],[3872.82,697.814,40.9333,188.071,-66.0592],[3826.84,799.655,40.3333,184.285,-65.3136],[3780.47,898.807,39.7333,180.468,-64.5301],[3732.42,997.871,39.1167,176.516,-63.6824],[3681.33,1099.12,38.4667,172.324,-62.7386],[3628.49,1199.55,37.8,168.002,-61.7128],[3573.86,1298.82,37.1167,163.555,-60.5954],[3516.06,1398.91,36.4,158.881,-59.3454],[3455.04,1499.17,35.65,153.991,-57.9438],[3390.73,1598.9,34.8667,148.897,-56.3675],[3321.69,1699.33,34.0333,143.514,-54.5517],[3247.82,1799.32,33.15,137.874,-52.4534],[3167.62,1899.31,32.2,131.92,-49.9747],[3079.51,1999.05,31.1667,125.628,-46.9858]]], + [65,2493.7,[[4608.39,-2001.98,53.9,257.495,-76.6594],[4584.54,-1902.14,53.5,255.676,-76.4558],[4560.5,-1803.1,53.1,253.831,-76.2476],[4535.26,-1700.8,52.6833,251.883,-76.0257],[4510.84,-1603.42,52.2833,249.987,-75.8078],[4485.2,-1502.87,51.8667,247.985,-75.5754],[4459.37,-1403.25,51.45,245.956,-75.3373],[4432.28,-1300.62,51.0167,243.817,-75.0835],[4406.04,-1202.91,50.6,241.732,-74.8332],[4378.53,-1102.31,50.1667,239.534,-74.5661],[4350.8,-1002.77,49.7333,237.308,-74.292],[4321.77,-900.527,49.2833,234.964,-73.9995],[4293.6,-803.179,48.85,232.677,-73.7099],[4264.12,-703.252,48.4,230.272,-73.4006],[4233.3,-600.899,47.9333,227.745,-73.0703],[4203.35,-503.448,47.4833,225.276,-72.7422],[4170.92,-400.161,47,222.591,-72.3787],[4139.35,-301.817,46.5333,219.965,-72.0164],[4106.4,-201.411,46.05,217.212,-71.6288],[4073.19,-102.502,45.5667,214.425,-71.228],[4038.55,-1.78311,45.0667,211.507,-70.7988],[4003.63,97.285,44.5667,208.554,-70.354],[3967.26,197.895,44.05,205.467,-69.877],[3929.41,299.846,43.5167,202.243,-69.365],[3891.25,399.833,42.9833,198.984,-68.8321],[3852.78,497.827,42.45,195.689,-68.2769],[3811.57,599.728,41.8833,192.153,-67.661],[3770.02,699.313,41.3167,188.581,-67.0166],[3726.89,799.369,40.7333,184.869,-66.3214],[3682.16,899.644,40.1333,181.017,-65.5702],[3635.81,999.875,39.5167,177.027,-64.7572],[3587.8,1099.78,38.8833,172.898,-63.8758],[3538.11,1199.08,38.2333,168.635,-62.918],[3485.42,1299.87,37.55,164.13,-61.8483],[3430.99,1399.25,36.85,159.499,-60.6797],[3373.46,1499.08,36.1167,154.641,-59.3691],[3312.8,1598.71,35.35,149.564,-57.8949],[3247.59,1699.43,34.5333,144.178,-56.1953],[3179.1,1798.24,33.6833,138.617,-54.2692],[3103.18,1899.55,32.75,132.595,-51.9476],[3021.06,1999.64,31.75,126.288,-49.1906]]], + [66,2531.85,[[4465.99,-2001.21,54.2,257.864,-77.1654],[4443,-1901.02,53.8,256.043,-76.9697],[4419.82,-1801.62,53.4,254.195,-76.7695],[4396.46,-1703.03,53,252.323,-76.5648],[4371.94,-1601.2,52.5833,250.345,-76.3467],[4347.23,-1500.28,52.1667,248.339,-76.1232],[4322.32,-1400.26,51.75,246.306,-75.8943],[4297.21,-1301.18,51.3333,244.245,-75.6598],[4271.91,-1203.03,50.9167,242.156,-75.4194],[4245.39,-1101.98,50.4833,239.954,-75.1629],[4218.67,-1001.97,50.05,237.722,-74.8996],[4191.73,-903.031,49.6167,235.46,-74.6291],[4163.54,-801.428,49.1667,233.079,-74.3404],[4135.12,-701.008,48.7167,230.666,-74.0433],[4106.47,-601.789,48.2667,228.222,-73.7375],[4076.53,-500.181,47.8,225.654,-73.4108],[4047.43,-403.462,47.35,223.145,-73.086],[4015.93,-300.977,46.8667,220.416,-72.7261],[3985.27,-203.419,46.4,217.748,-72.3671],[3952.16,-100.436,45.9,214.852,-71.9693],[3919.9,-2.42454,45.4167,212.019,-71.5712],[3886.25,97.3501,44.9167,209.052,-71.1447],[3851.21,198.698,44.4,205.95,-70.6872],[3815.88,298.238,43.8833,202.81,-70.2119],[3779.12,399.065,43.35,199.532,-69.7013],[3742.06,497.908,42.8167,196.218,-69.1693],[3703.53,597.73,42.2667,192.763,-68.5969],[3663.51,698.304,41.7,189.166,-67.9801],[3621.97,799.39,41.1167,185.425,-67.3145],[3580.08,897.957,40.5333,181.65,-66.6157],[3535.44,999.377,39.9167,177.623,-65.8382],[3490.43,1097.9,39.3,173.564,-65.0176],[3442.58,1198.56,38.65,169.255,-64.1023],[3393.1,1298.35,37.9833,164.808,-63.1053],[3340.69,1399.32,37.2833,160.116,-61.9892],[3286.57,1498.59,36.5667,155.297,-60.7661],[3229.44,1597.96,35.8167,150.248,-59.3902],[3167.97,1698.78,35.0167,144.871,-57.8029],[3102.06,1799.97,34.1667,139.187,-55.9657],[3032.93,1898.56,33.2833,133.339,-53.8723],[2956.58,1998.64,32.3167,127.047,-51.3387]]], + [67,2568.86,[[4319.93,-2003.17,54.5,258.269,-77.677],[4297.8,-1902.62,54.1,256.446,-77.4892],[4275.49,-1802.85,53.7,254.597,-77.2972],[4253.02,-1703.89,53.3,252.722,-77.1009],[4229.42,-1601.68,52.8833,250.742,-76.8916],[4205.63,-1500.36,52.4667,248.734,-76.6773],[4182.63,-1403.94,52.0667,246.779,-76.4666],[4157.5,-1300.46,51.6333,244.632,-76.2327],[4133.16,-1201.91,51.2167,242.539,-76.0021],[4107.64,-1100.43,50.7833,240.332,-75.756],[4082.91,-1003.83,50.3667,238.181,-75.5132],[4055.99,-900.612,49.9167,235.826,-75.2439],[4029.86,-802.311,49.4833,233.528,-74.9773],[4002.52,-701.385,49.0333,231.109,-74.6926],[3974.96,-601.653,48.5833,228.658,-74.3995],[3947.19,-503.135,48.1333,226.174,-74.0976],[3918.16,-402.268,47.6667,223.565,-73.775],[3888.89,-302.744,47.2,220.921,-73.442],[3858.34,-201.103,46.7167,218.147,-73.0857],[3827.55,-100.947,46.2333,215.337,-72.7173],[3796.51,-2.29712,45.75,212.492,-72.3361],[3764.15,98.1448,45.25,209.512,-71.9276],[3731.53,196.926,44.75,206.496,-71.5038],[3697.55,297.229,44.2333,203.341,-71.049],[3662.19,398.852,43.7,200.045,-70.5605],[3626.54,498.498,43.1667,196.712,-70.0514],[3589.48,599.159,42.6167,193.235,-69.5035],[3552.12,697.655,42.0667,189.72,-68.9308],[3512.18,799.721,41.4833,185.953,-68.2945],[3471.9,899.277,40.9,182.147,-67.6262],[3430.13,999.023,40.3,178.196,-66.9031],[3386.85,1098.69,39.6833,174.1,-66.119],[3342.03,1198,39.05,169.859,-65.2673],[3294.46,1299.15,38.3833,165.362,-64.3155],[3245.28,1399.17,37.7,160.726,-63.2756],[3194.48,1497.72,37,155.955,-62.1366],[3139.58,1598.86,36.25,150.829,-60.8249],[3081.73,1699.52,35.4667,145.473,-59.3433],[3020.89,1798.95,34.65,139.903,-57.6631],[2955.74,1898.23,33.7833,134.031,-55.7105],[2883.67,1999.56,32.8333,127.674,-53.3432]]], + [68,2604.67,[[4169.31,-2003.69,54.7833,258.634,-78.1866],[4148.05,-1902.8,54.3833,256.81,-78.0066],[4126.63,-1802.7,53.9833,254.959,-77.8227],[4105.04,-1703.39,53.5833,253.082,-77.6347],[4082.37,-1600.81,53.1667,251.099,-77.4342],[4060.44,-1503.18,52.7667,249.168,-77.2372],[4037.41,-1402.36,52.35,247.129,-77.027],[4014.21,-1302.46,51.9333,245.061,-76.8117],[3990.83,-1203.49,51.5167,242.965,-76.591],[3966.32,-1101.58,51.0833,240.754,-76.3555],[3941.61,-1000.7,50.65,238.512,-76.1137],[3916.72,-900.871,50.2167,236.239,-75.8654],[3891.62,-802.117,49.7833,233.936,-75.6102],[3865.36,-700.716,49.3333,231.511,-75.3377],[3838.89,-600.505,48.8833,229.053,-75.0571],[3812.21,-501.501,48.4333,226.561,-74.7682],[3784.33,-400.125,47.9667,223.943,-74.4593],[3756.22,-300.088,47.5,221.29,-74.1406],[3727.9,-201.408,47.0333,218.602,-73.8115],[3698.33,-100.657,46.55,215.782,-73.4592],[3668.52,-1.4062,46.0667,212.926,-73.0946],[3637.44,99.6642,45.5667,209.933,-72.7038],[3606.11,199.081,45.0667,206.902,-72.2985],[3574.54,296.818,44.5667,203.834,-71.8778],[3540.59,399.193,44.0333,200.522,-71.411],[3506.37,499.601,43.5,197.17,-70.9245],[3471.87,598.012,42.9667,193.779,-70.4171],[3436,697.375,42.4167,190.242,-69.8704],[3398.76,797.461,41.85,186.558,-69.2806],[3360.1,898.029,41.2667,182.726,-68.6433],[3320.02,998.826,40.6667,178.744,-67.9536],[3278.47,1099.59,40.05,174.612,-67.2056],[3236.59,1197.43,39.4333,170.444,-66.4148],[3190.94,1299.87,38.7667,165.902,-65.5074],[3144.9,1398.79,38.1,161.327,-64.5407],[3096.15,1498.83,37.4,156.497,-63.4557],[3044.65,1599.34,36.6667,151.414,-62.2342],[2990.34,1699.67,35.9,146.089,-60.8545],[2933.18,1799.1,35.1,140.534,-59.2896],[2871.9,1898.77,34.25,134.654,-57.4697],[2805.23,1999.25,33.3333,128.367,-55.3016]]], + [69,2639.24,[[4014.26,-2002.84,55.05,258.961,-78.6946],[3993.88,-1901.63,54.65,257.134,-78.5226],[3973.33,-1801.22,54.25,255.281,-78.3467],[3952.63,-1701.59,53.85,253.402,-78.1668],[3931.77,-1602.77,53.45,251.495,-77.9829],[3909.87,-1500.71,53.0333,249.482,-77.7867],[3888.68,-1403.57,52.6333,247.521,-77.5939],[3866.44,-1303.29,52.2167,245.45,-77.3881],[3844.03,-1203.93,51.8,243.351,-77.1772],[3820.53,-1101.6,51.3667,241.136,-76.9522],[3796.85,-1000.31,50.9333,238.89,-76.7212],[3772.99,-900.067,50.5,236.612,-76.4839],[3748.93,-800.89,50.0667,234.303,-76.24],[3724.69,-702.796,49.6333,231.962,-75.9894],[3699.33,-602.091,49.1833,229.499,-75.7215],[3673.76,-502.589,48.7333,227.001,-75.4457],[3647.04,-400.69,48.2667,224.376,-75.1509],[3620.1,-300.124,47.8,221.715,-74.8465],[3592.95,-200.91,47.3333,219.018,-74.5323],[3565.59,-103.069,46.8667,216.286,-74.2077],[3537.03,-3.20136,46.3833,213.42,-73.86],[3507.25,98.5142,45.8833,210.415,-73.4873],[3477.23,198.583,45.3833,207.372,-73.1007],[3446.98,296.979,44.8833,204.291,-72.6994],[3415.47,396.873,44.3667,201.067,-72.2683],[3382.68,498.061,43.8333,197.699,-71.8047],[3349.63,597.26,43.3,194.289,-71.3212],[3315.27,697.444,42.75,190.732,-70.8001],[3279.59,798.386,42.1833,187.025,-70.2379],[3242.55,899.844,41.6,183.166,-69.6303],[3205.22,998.776,41.0167,179.266,-68.9913],[3166.51,1097.86,40.4167,175.214,-68.2987],[3125.31,1199.46,39.7833,170.896,-67.5254],[3083.77,1297.95,39.15,166.539,-66.7052],[3039.69,1398.21,38.4833,161.918,-65.7865],[2993.01,1499.66,37.7833,157.031,-64.7548],[2944.81,1599.41,37.0667,152.001,-63.62],[2893.95,1699.26,36.3167,146.716,-62.3382],[2840.36,1798.53,35.5333,141.187,-60.8845],[2782.87,1898.41,34.7,135.312,-59.1931],[2720.22,1999.57,33.8,129.002,-57.1758]]], + [70,2672.53,[[3854.88,-2000.6,55.3,259.249,-79.202],[3836.2,-1903.32,54.9167,257.496,-79.0447],[3816.55,-1802.58,54.5167,255.642,-78.8769],[3796.75,-1702.62,54.1167,253.76,-78.7054],[3776.8,-1603.47,53.7167,251.852,-78.5299],[3755.85,-1501.05,53.3,249.836,-78.3428],[3735.58,-1403.58,52.9,247.873,-78.1589],[3714.31,-1302.94,52.4833,245.799,-77.9626],[3692.87,-1203.22,52.0667,243.696,-77.7615],[3670.4,-1100.51,51.6333,241.477,-77.5469],[3648.62,-1002.72,51.2167,239.313,-77.3351],[3625.8,-902.046,50.7833,237.032,-77.109],[3602.8,-802.434,50.35,234.719,-76.8766],[3578.73,-700.132,49.9,232.282,-76.6285],[3555.36,-602.733,49.4667,229.904,-76.3826],[3530.91,-502.764,49.0167,227.4,-76.1198],[3505.36,-400.377,48.55,224.767,-75.8388],[3480.52,-302.902,48.1,222.194,-75.5593],[3454.56,-203.14,47.6333,219.49,-75.2602],[3427.47,-101.255,47.15,216.651,-74.9399],[3400.16,-0.85936,46.6667,213.774,-74.6085],[3372.63,98.0261,46.1833,210.859,-74.2653],[3343.93,198.708,45.6833,207.804,-73.8972],[3315,297.724,45.1833,204.71,-73.515],[3284.87,398.266,44.6667,201.471,-73.1045],[3254.5,496.975,44.15,198.192,-72.6771],[3222.91,596.919,43.6167,194.765,-72.2171],[3190.06,697.879,43.0667,191.188,-71.7214],[3155.95,799.629,42.5,187.459,-71.1865],[3121.56,899.039,41.9333,183.686,-70.6252],[3085.87,998.893,41.35,179.759,-70.0178],[3048.87,1098.94,40.75,175.677,-69.3593],[3010.53,1198.9,40.1333,171.438,-68.6439],[2970.83,1298.5,39.5,167.044,-67.8649],[2928.7,1399.95,38.8333,162.377,-66.992],[2886.22,1497.85,38.1667,157.674,-66.0596],[2840.17,1599.09,37.45,152.584,-64.9841],[2792.66,1698.32,36.7167,147.348,-63.7966],[2741.48,1799.37,35.9333,141.736,-62.4193],[2687.66,1899.19,35.1167,135.881,-60.8487],[2630.05,1998.86,34.25,129.682,-59.0112]]], + [71,2704.5,[[3692.05,-2001.29,55.55,259.574,-79.7157],[3674.22,-1903.73,55.1667,257.82,-79.566],[3655.47,-1802.68,54.7667,255.964,-79.4064],[3636.58,-1702.42,54.3667,254.081,-79.2431],[3617.54,-1602.96,53.9667,252.17,-79.0761],[3597.55,-1500.21,53.55,250.151,-78.898],[3578.21,-1402.42,53.15,248.185,-78.7229],[3557.92,-1301.45,52.7333,246.108,-78.5362],[3537.46,-1201.39,52.3167,244.001,-78.3447],[3516.84,-1102.27,51.9,241.864,-78.1484],[3495.24,-1000.2,51.4667,239.61,-77.9388],[3474.3,-903.027,51.05,237.412,-77.732],[3452.36,-803.009,50.6167,235.094,-77.511],[3429.39,-700.28,50.1667,232.652,-77.2751],[3407.1,-602.467,49.7333,230.268,-77.0412],[3383.78,-502.062,49.2833,227.759,-76.7913],[3360.27,-402.869,48.8333,225.214,-76.5337],[3335.7,-301.299,48.3667,222.538,-76.2582],[3310.94,-201.07,47.9,219.825,-75.9737],[3285.98,-102.203,47.4333,217.076,-75.6798],[3259.94,-1.26284,46.95,214.189,-75.3649],[3233.68,98.173,46.4667,211.264,-75.0389],[3206.31,199.43,45.9667,208.198,-74.6891],[3178.72,299.028,45.4667,205.09,-74.3259],[3150.91,396.942,44.9667,201.943,-73.9486],[3121.01,499.499,44.4333,198.542,-73.5295],[3091.82,596.969,43.9167,195.206,-73.1062],[3060.5,698.661,43.3667,191.611,-72.6356],[3028.92,798.19,42.8167,187.971,-72.143],[2996.13,898.439,42.25,184.176,-71.6107],[2962.11,999.165,41.6667,180.224,-71.0346],[2927.81,1097.35,41.0833,176.228,-70.4277],[2891.26,1198.33,40.4667,171.958,-69.7499],[2853.41,1298.99,39.8333,167.528,-69.0116],[2814.25,1399.04,39.1833,162.937,-68.2054],[2773.76,1498.17,38.5167,158.187,-67.3226],[2730.9,1598.41,37.8167,153.162,-66.3283],[2685.61,1699.12,37.0833,147.862,-65.2047],[2637.88,1799.63,36.3167,142.295,-63.9296],[2587.64,1899.23,35.5167,136.469,-62.4757],[2533.8,1999.05,34.6667,130.279,-60.7739]]], + [72,2735.11,[[3525.07,-2000.71,55.7833,259.861,-80.2294],[3508.1,-1902.87,55.4,258.106,-80.0872],[3490.26,-1801.55,55,256.247,-79.9356],[3472.28,-1701,54.6,254.362,-79.7806],[3454.16,-1601.26,54.2,252.449,-79.622],[3435.91,-1502.32,53.8,250.509,-79.4597],[3416.74,-1400.13,53.3833,248.458,-79.2867],[3398.2,-1302.88,52.9833,246.461,-79.1165],[3378.74,-1202.48,52.5667,244.351,-78.9349],[3359.13,-1103.01,52.15,242.211,-78.7486],[3338.57,-1000.56,51.7167,239.953,-78.5499],[3318.65,-903.032,51.3,237.751,-78.3536],[3297.77,-802.636,50.8667,235.429,-78.144],[3276.73,-703.31,50.4333,233.074,-77.9285],[3254.72,-601.313,49.9833,230.593,-77.6983],[3232.52,-500.503,49.5333,228.077,-77.4611],[3210.16,-400.901,49.0833,225.525,-77.2168],[3187.62,-302.522,48.6333,222.938,-76.9648],[3164.06,-201.813,48.1667,220.219,-76.6952],[3140.33,-102.46,47.7,217.461,-76.4166],[3115.55,-1.01025,47.2167,214.566,-76.1181],[3090.57,98.9399,46.7333,211.631,-75.809],[3065.4,197.368,46.25,208.656,-75.4887],[3039.16,297.565,45.75,205.538,-75.1448],[3011.83,399.338,45.2333,202.272,-74.7754],[2984.28,499.293,44.7167,198.963,-74.3907],[2956.51,597.402,44.2,195.612,-73.9898],[2926.72,699.781,43.65,191.999,-73.544],[2897.61,796.999,43.1167,188.451,-73.0918],[2866.43,898.038,42.55,184.635,-72.5882],[2834.07,999.588,41.9667,180.66,-72.043],[2801.46,1098.6,41.3833,176.637,-71.4687],[2767.64,1197.76,40.7833,172.454,-70.8448],[2731.66,1299.42,40.15,167.99,-70.1468],[2695.39,1397.96,39.5167,163.48,-69.4046],[2656.89,1498.26,38.85,158.687,-68.5708],[2616.15,1599.73,38.15,153.611,-67.6313],[2574.08,1699.48,37.4333,148.374,-66.5942],[2529.69,1799.32,36.6833,142.859,-65.4174],[2482.95,1898.55,35.9,137.073,-64.0759],[2432.8,1998.36,35.0667,130.906,-62.5052]]], + [73,2764.31,[[3354.76,-2003.14,56.0167,260.187,-80.7493],[3337.97,-1900.79,55.6167,258.353,-80.6088],[3321.75,-1803.42,55.2333,256.571,-80.4713],[3304.69,-1702.58,54.8333,254.684,-80.3247],[3287.51,-1602.54,54.4333,252.77,-80.1746],[3270.19,-1503.3,54.0333,250.827,-80.0211],[3252.01,-1400.8,53.6167,248.774,-79.8574],[3234.43,-1303.25,53.2167,246.775,-79.6964],[3215.97,-1202.52,52.8,244.662,-79.5245],[3197.36,-1102.73,52.3833,242.519,-79.3484],[3178.62,-1003.87,51.9667,240.345,-79.1676],[3158.97,-902.078,51.5333,238.052,-78.9746],[3139.17,-801.334,51.1,235.725,-78.7763],[3119.21,-701.655,50.6667,233.364,-78.5724],[3099.1,-603.058,50.2333,230.971,-78.3627],[3078.06,-501.83,49.7833,228.449,-78.1385],[3056.85,-401.805,49.3333,225.892,-77.9076],[3035.47,-302.999,48.8833,223.299,-77.6694],[3013.14,-201.842,48.4167,220.573,-77.4145],[2990.62,-102.037,47.95,217.807,-77.1512],[2967.12,-0.113536,47.4667,214.903,-76.869],[2944.25,96.8773,47,212.061,-76.587],[2919.56,199.227,46.5,208.973,-76.2739],[2894.68,299.929,46,205.843,-75.9487],[2869.59,398.958,45.5,202.671,-75.6109],[2843.47,499.505,44.9833,199.349,-75.2475],[2817.15,598.212,44.4667,195.983,-74.8688],[2789.76,698.143,43.9333,192.463,-74.4607],[2761.29,799.082,43.3833,188.787,-74.0204],[2732.6,897.84,42.8333,185.064,-73.5589],[2702.8,997.275,42.2667,181.18,-73.0595],[2671,1099.96,41.6667,177.018,-72.5023],[2638.94,1199.93,41.0667,172.807,-71.9133],[2605.73,1299.8,40.45,168.429,-71.2721],[2571.34,1399.3,39.8167,163.884,-70.5721],[2535.77,1498.13,39.1667,159.171,-69.8058],[2498.08,1598.38,38.4833,154.171,-68.9425],[2458.22,1699.44,37.7667,148.88,-67.9666],[2417.09,1798.47,37.0333,143.426,-66.8844],[2372.81,1899.27,36.25,137.566,-65.6229],[2326.25,1998.81,35.4333,131.432,-64.1756]]], + [74,2792.08,[[3179.82,-2000.08,56.2167,260.399,-81.2641],[3164.61,-1901.76,55.8333,258.64,-81.1372],[3149.28,-1804.13,55.45,256.856,-81.0075],[3133.16,-1703.03,55.05,254.968,-80.8691],[3116.92,-1602.71,54.65,253.052,-80.7276],[3100.55,-1503.2,54.25,251.107,-80.5828],[3083.36,-1400.41,53.8333,249.052,-80.4284],[3066.74,-1302.58,53.4333,247.05,-80.2765],[3049.29,-1201.56,53.0167,244.934,-80.1145],[3031.7,-1101.46,52.6,242.788,-79.9482],[3013.98,-1002.31,52.1833,240.61,-79.7777],[2995.4,-900.194,51.75,238.312,-79.5957],[2977.41,-802.997,51.3333,236.071,-79.4159],[2958.55,-702.953,50.9,233.707,-79.2238],[2938.81,-600.202,50.45,231.216,-79.0185],[2919.65,-502.372,50.0167,228.783,-78.815],[2899.61,-401.955,49.5667,226.22,-78.5973],[2879.41,-302.754,49.1167,223.621,-78.3729],[2858.29,-201.182,48.65,220.887,-78.1327],[2837.02,-100.958,48.1833,218.114,-77.8845],[2815.57,-2.10096,47.7167,215.303,-77.6279],[2793.19,98.8227,47.2333,212.35,-77.3527],[2770.64,198.235,46.75,209.356,-77.0676],[2747.12,299.46,46.25,206.216,-76.7615],[2723.42,399.017,45.75,203.032,-76.4433],[2699.54,496.883,45.25,199.806,-76.1125],[2673.86,599.38,44.7167,196.318,-75.7446],[2647.98,699.893,44.1833,192.783,-75.3603],[2621.89,798.392,43.65,189.201,-74.9584],[2594.78,897.828,43.1,185.46,-74.5242],[2566.63,997.969,42.5333,181.556,-74.0544],[2537.43,1098.57,41.95,177.487,-73.545],[2507.14,1199.38,41.35,173.251,-72.9916],[2476.62,1297.44,40.75,168.964,-72.4056],[2444.15,1397.93,40.1167,164.387,-71.7486],[2410.55,1497.78,39.4667,159.639,-71.0292],[2374.95,1599.11,38.7833,154.595,-70.2185],[2338.18,1698.99,38.0833,149.379,-69.3237],[2299.34,1799.31,37.35,143.868,-68.3082],[2258.41,1899.39,36.5833,138.064,-67.1502],[2215.35,1998.5,35.7833,131.974,-65.8219]]], + [75,2818.37,[[3001.76,-2000.12,56.4167,260.65,-81.7858],[2987.43,-1901.56,56.0333,258.89,-81.6665],[2973,-1803.71,55.65,257.105,-81.5445],[2957.82,-1702.36,55.25,255.215,-81.4145],[2942.52,-1601.79,54.85,253.296,-81.2816],[2927.11,-1502.03,54.45,251.35,-81.1455],[2911.57,-1403.08,54.05,249.374,-81.0062],[2895.27,-1300.88,53.6333,247.287,-80.8576],[2879.5,-1203.63,53.2333,245.253,-80.7114],[2862.94,-1103.22,52.8167,243.104,-80.5554],[2846.26,-1003.75,52.4,240.924,-80.3953],[2828.77,-901.314,51.9667,238.623,-80.2244],[2811.83,-803.796,51.55,236.378,-80.0556],[2794.07,-703.416,51.1167,234.01,-79.8752],[2775.49,-600.312,50.6667,231.515,-79.6824],[2757.46,-502.138,50.2333,229.077,-79.4913],[2738.59,-401.361,49.7833,226.509,-79.2869],[2719.57,-301.795,49.3333,223.904,-79.0761],[2700.4,-203.459,48.8833,221.262,-78.8587],[2680.38,-102.801,48.4167,218.483,-78.6259],[2660.19,-3.50486,47.95,215.665,-78.3852],[2639.13,97.8783,47.4667,212.704,-78.1271],[2617.9,197.755,46.9833,209.702,-77.8596],[2595.76,299.465,46.4833,206.552,-77.5724],[2573.45,399.514,45.9833,203.357,-77.2739],[2550.97,497.875,45.4833,200.119,-76.9634],[2527.56,597.716,44.9667,196.728,-76.6292],[2503.2,698.831,44.4333,193.179,-76.2691],[2478.66,797.938,43.9,189.583,-75.8924],[2453.14,898.007,43.35,185.825,-75.4854],[2426.65,998.808,42.7833,181.902,-75.045],[2399.95,1097.24,42.2167,177.929,-74.5813],[2371.45,1198.83,41.6167,173.669,-74.0631],[2342.73,1297.69,41.0167,169.356,-73.5144],[2312.18,1399.03,40.3833,164.749,-72.8989],[2280.56,1499.76,39.7333,159.966,-72.2248],[2247.88,1599.58,39.0667,155.006,-71.4841],[2214.11,1698.16,38.3833,149.87,-70.6672],[2177.58,1799.71,37.65,144.305,-69.718],[2139.92,1898.92,36.9,138.567,-68.6595],[2099.41,1999.51,36.1,132.403,-67.4188]]], + [76,2843.16,[[2820.61,-2003.3,56.6167,260.941,-82.3138],[2806.59,-1900.23,56.2167,259.103,-82.1972],[2793.06,-1802.16,55.8333,257.316,-82.0832],[2778.83,-1700.59,55.4333,255.424,-81.9615],[2765.09,-1603.98,55.05,253.584,-81.8423],[2750.64,-1503.96,54.65,251.636,-81.715],[2735.48,-1400.63,54.2333,249.576,-81.5793],[2720.8,-1302.27,53.8333,247.57,-81.4458],[2705.4,-1200.7,53.4167,245.449,-81.3034],[2689.88,-1100.05,53,243.296,-81.1573],[2674.24,-1000.33,52.5833,241.111,-81.0075],[2658.48,-901.56,52.1667,238.895,-80.8537],[2642.6,-803.749,51.75,236.647,-80.6958],[2625.96,-703.061,51.3167,234.275,-80.5271],[2609.19,-603.444,50.8833,231.868,-80.3536],[2591.64,-501.146,50.4333,229.332,-80.1681],[2573.95,-400.038,49.9833,226.759,-79.977],[2556.13,-300.139,49.5333,224.148,-79.7798],[2538.16,-201.466,49.0833,221.499,-79.5765],[2519.39,-100.455,48.6167,218.713,-79.3587],[2500.47,-0.802758,48.15,215.887,-79.1336],[2481.41,97.4693,47.6833,213.021,-78.9006],[2461.52,197.774,47.2,210.01,-78.6507],[2440.77,299.933,46.7,206.851,-78.3823],[2420.56,397.111,46.2167,203.754,-78.1129],[2398.8,499.253,45.7,200.397,-77.8133],[2376.86,599.572,45.1833,196.993,-77.501],[2354.75,698.039,44.6667,193.543,-77.1751],[2331.75,797.712,44.1333,189.932,-76.8235],[2307.84,898.371,43.5833,186.158,-76.4436],[2283.02,999.786,43.0167,182.217,-76.0323],[2258,1098.84,42.45,178.224,-75.5994],[2232.05,1198.29,41.8667,174.06,-75.1292],[2205.14,1297.9,41.2667,169.723,-74.6174],[2177.28,1397.38,40.65,165.211,-74.0589],[2147.67,1499.02,40,160.397,-73.4309],[2117.05,1599.78,39.3333,155.401,-72.7408],[2085.42,1699.34,38.65,150.224,-71.9794],[2051.99,1799.66,37.9333,144.738,-71.1152],[2017.5,1897.89,37.2,139.072,-70.1524],[1979.57,1999.89,36.4,132.84,-68.9986]]], + [77,2866.4,[[2635.31,-2001.08,56.7833,261.12,-82.8386],[2622.79,-1902.09,56.4,259.358,-82.7347],[2610.17,-1803.81,56.0167,257.57,-82.6285],[2596.9,-1702,55.6167,255.676,-82.5153],[2583.53,-1600.98,55.2167,253.754,-82.3994],[2570.05,-1500.75,54.8167,251.804,-82.2809],[2556.47,-1401.33,54.4167,249.824,-82.1596],[2542.79,-1302.73,54.0167,247.815,-82.0354],[2528.43,-1200.91,53.6,245.692,-81.9028],[2514.54,-1104.02,53.2,243.624,-81.7724],[2499.37,-1000.02,52.7667,241.349,-81.6275],[2484.68,-900.984,52.35,239.13,-81.4843],[2469.87,-802.907,51.9333,236.878,-81.3374],[2454.35,-701.939,51.5,234.502,-81.1804],[2438.71,-602.039,51.0667,232.091,-81.0189],[2422.96,-503.223,50.6333,229.645,-80.8528],[2406.47,-401.771,50.1833,227.067,-80.675],[2389.85,-301.524,49.7333,224.452,-80.4918],[2373.1,-202.5,49.2833,221.798,-80.3027],[2355.6,-101.12,48.8167,219.007,-80.1003],[2337.97,-1.0962,48.35,216.174,-79.8909],[2320.19,97.5519,47.8833,213.301,-79.6743],[2301.64,198.251,47.4,210.282,-79.4419],[2282.95,297.428,46.9167,207.22,-79.2008],[2263.47,398.401,46.4167,204.008,-78.9418],[2243.83,497.695,45.9167,200.749,-78.6723],[2223.38,598.511,45.4,197.335,-78.3822],[2202.77,697.481,44.8833,193.873,-78.0794],[2181.33,797.678,44.35,190.249,-77.7528],[2159.05,898.883,43.8,186.46,-77.3998],[2136.59,997.9,43.25,182.619,-77.0292],[2113.28,1097.59,42.6833,178.609,-76.6275],[2089.09,1197.72,42.1,174.426,-76.1912],[2064.01,1298.02,41.5,170.067,-75.7162],[2038.04,1398.22,40.8833,165.528,-75.1976],[2011.15,1498.05,40.25,160.809,-74.63],[1982.63,1599.69,39.5833,155.781,-73.9901],[1953.87,1697.77,38.9167,150.693,-73.3018],[1922.72,1799.15,38.2,145.164,-72.5015],[1890.59,1898.49,37.4667,139.447,-71.6095],[1855.99,1999.61,36.6833,133.283,-70.5633]]], + [78,2888.06,[[2447.18,-2002.08,56.95,261.34,-83.3701],[2435.57,-1902.9,56.5667,259.576,-83.274],[2423.37,-1800.15,56.1667,257.709,-83.1714],[2411.58,-1702.4,55.7833,255.892,-83.0709],[2399.19,-1601.17,55.3833,253.969,-82.9637],[2386.69,-1500.73,54.9833,252.016,-82.854],[2374.11,-1401.09,54.5833,250.035,-82.7418],[2361.43,-1302.27,54.1833,248.024,-82.6268],[2348.11,-1200.22,53.7667,245.898,-82.5042],[2335.24,-1103.11,53.3667,243.827,-82.3835],[2321.72,-1002.85,52.95,241.638,-82.2545],[2308.1,-903.544,52.5333,239.417,-82.1222],[2293.83,-801.275,52.1,237.072,-81.9809],[2279.45,-700.056,51.6667,234.692,-81.8356],[2265.51,-603.734,51.25,232.37,-81.692],[2250.34,-500.829,50.8,229.825,-81.5324],[2235.62,-402.854,50.3667,227.339,-81.3741],[2220.22,-302.291,49.9167,224.719,-81.2046],[2204.7,-202.947,49.4667,222.06,-81.0298],[2188.48,-101.231,49,219.263,-80.8426],[2172.14,-0.868055,48.5333,216.424,-80.6491],[2155.67,98.1226,48.0667,213.544,-80.4488],[2138.48,199.18,47.5833,210.518,-80.2339],[2121.15,298.719,47.1,207.448,-80.0109],[2103.7,396.718,46.6167,204.334,-79.7795],[2084.89,499.747,46.1,200.958,-79.5221],[2066.55,597.725,45.6,197.643,-79.2626],[2047.46,697.157,45.0833,194.17,-78.983],[2027.59,797.836,44.55,190.534,-78.6813],[2006.95,899.543,44,186.731,-78.3551],[1986.14,999.067,43.45,182.875,-78.0127],[1964.53,1099.29,42.8833,178.847,-77.6415],[1942.12,1199.96,42.3,174.644,-77.2382],[1919.53,1298.07,41.7167,170.385,-76.8116],[1895.47,1398.94,41.1,165.823,-76.333],[1870.56,1499.46,40.4667,161.077,-75.8089],[1844.79,1599.33,39.8167,156.144,-75.2332],[1818.16,1698.24,39.15,151.023,-74.5985],[1789.97,1798.21,38.45,145.583,-73.8782],[1760.21,1898.59,37.7167,139.82,-73.0566],[1728.85,1998.7,36.95,133.732,-72.114]]], + [79,2908.12,[[2255.8,-2002,57.1,261.524,-83.9039],[2245.12,-1902.65,56.7167,259.76,-83.8155],[2234.35,-1803.99,56.3333,257.969,-83.7252],[2223.03,-1701.79,55.9333,256.073,-83.6289],[2211.62,-1600.36,55.5333,254.148,-83.5304],[2200.61,-1503.91,55.15,252.275,-83.4338],[2189.02,-1404.05,54.75,250.293,-83.3307],[2176.87,-1300.89,54.3333,248.197,-83.2207],[2165.11,-1202.71,53.9333,246.154,-83.1125],[2152.76,-1101.32,53.5167,243.994,-82.997],[2140.32,-1000.86,53.1,241.802,-82.8785],[2127.78,-901.341,52.6833,239.577,-82.7568],[2115.15,-802.774,52.2667,237.32,-82.632],[2101.91,-701.29,51.8333,234.937,-82.4986],[2088.57,-600.869,51.4,232.518,-82.3613],[2075.13,-501.527,50.9667,230.064,-82.2201],[2061.59,-403.279,50.5333,227.573,-82.0747],[2047.41,-302.43,50.0833,224.949,-81.9191],[2033.13,-202.797,49.6333,222.286,-81.7586],[2018.21,-100.778,49.1667,219.483,-81.5866],[2003.16,-0.109013,48.7,216.638,-81.4088],[1988.01,99.1908,48.2333,213.752,-81.2249],[1972.73,197.1,47.7667,210.824,-81.0344],[1956.79,297.019,47.2833,207.747,-80.8299],[1940.18,398.766,46.7833,204.518,-80.6101],[1923.43,498.844,46.2833,201.242,-80.3815],[1906.56,597.227,45.7833,197.918,-80.1433],[1888.99,697.082,45.2667,194.435,-79.8868],[1870.71,798.201,44.7333,190.787,-79.6099],[1852.29,897.304,44.2,187.088,-79.3199],[1833.15,997.358,43.65,183.219,-79.006],[1813.27,1098.13,43.0833,179.177,-78.6658],[1792.65,1199.38,42.5,174.957,-78.2962],[1771.87,1298.06,41.9167,170.679,-77.9051],[1749.73,1399.56,41.3,166.096,-77.4662],[1727.42,1498.1,40.6833,161.451,-76.9987],[1703.72,1598.72,40.0333,156.491,-76.4716],[1679.23,1698.41,39.3667,151.339,-75.8903],[1653.3,1799.2,38.6667,145.863,-75.2303],[1626.55,1898.2,37.95,140.189,-74.4951],[1597.7,1999.35,37.1833,134.051,-73.6326]]], + [80,2926.54,[[2061.37,-2000.9,57.2333,261.674,-84.4403],[2051.61,-1901.39,56.85,259.908,-84.3598],[2041.79,-1802.57,56.4667,258.116,-84.2775],[2031.45,-1700.21,56.0667,256.218,-84.1896],[2021.47,-1602.84,55.6833,254.372,-84.1036],[2010.98,-1502.01,55.2833,252.416,-84.0117],[2000.41,-1401.98,54.8833,250.432,-83.9178],[1989.76,-1302.76,54.4833,248.417,-83.8215],[1978.58,-1200.29,54.0667,246.287,-83.7188],[1967.76,-1102.77,53.6667,244.212,-83.6177],[1956.41,-1002.09,53.25,242.018,-83.5097],[1944.97,-902.345,52.8333,239.791,-83.3989],[1933.44,-803.553,52.4167,237.531,-83.2852],[1921.36,-701.834,51.9833,235.145,-83.1636],[1909.18,-601.174,51.55,232.724,-83.0386],[1896.92,-501.591,51.1167,230.266,-82.91],[1884.56,-403.1,50.6833,227.772,-82.7775],[1871.62,-301.995,50.2333,225.143,-82.6358],[1858.59,-202.104,49.7833,222.475,-82.4895],[1845.45,-103.445,49.3333,219.768,-82.3386],[1831.73,-2.45455,48.8667,216.919,-82.1768],[1817.9,97.1703,48.4,214.028,-82.0094],[1803.47,198.891,47.9167,210.989,-81.8297],[1788.92,299.101,47.4333,207.905,-81.6434],[1774.26,397.778,46.95,204.776,-81.4499],[1758.98,498.219,46.45,201.492,-81.2418],[1743.59,596.968,45.95,198.16,-81.025],[1727.55,697.206,45.4333,194.668,-80.7915],[1710.88,798.725,44.9,191.009,-80.5394],[1694.07,898.231,44.3667,187.298,-80.2754],[1676.6,998.705,43.8167,183.416,-79.9897],[1658.47,1099.92,43.25,179.359,-79.6799],[1640.19,1198.75,42.6833,175.244,-79.3531],[1621.23,1297.97,42.1,170.95,-78.9975],[1601.58,1397.31,41.5,166.472,-78.6095],[1580.68,1499.14,40.8667,161.68,-78.1731],[1559.62,1597.82,40.2333,156.823,-77.7062],[1537.27,1698.23,39.5667,151.643,-77.1782],[1513.62,1799.79,38.8667,146.133,-76.5785],[1489.22,1899.58,38.15,140.421,-75.9102],[1463.48,1999.42,37.4,134.372,-75.1438]]], + [81,2943.29,[[1864.46,-2003.14,57.3667,261.866,-84.983],[1855.64,-1903.47,56.9833,260.1,-84.9103],[1846.38,-1800.2,56.5833,258.229,-84.8327],[1837.43,-1701.95,56.2,256.408,-84.7569],[1828.03,-1600.19,55.8,254.48,-84.6758],[1818.94,-1503.41,55.4167,252.605,-84.5963],[1809.39,-1403.2,55.0167,250.619,-84.5116],[1799.77,-1303.8,54.6167,248.603,-84.4248],[1789.67,-1201.14,54.2,246.472,-84.3321],[1779.89,-1103.44,53.8,244.395,-84.241],[1769.64,-1002.56,53.3833,242.199,-84.1435],[1759.3,-902.624,52.9667,239.969,-84.0436],[1748.89,-803.635,52.55,237.707,-83.941],[1737.98,-701.707,52.1167,235.318,-83.8314],[1726.98,-600.838,51.6833,232.894,-83.7186],[1715.9,-501.042,51.25,230.432,-83.6025],[1704.73,-402.337,50.8167,227.935,-83.483],[1693.05,-301.007,50.3667,225.302,-83.3552],[1681.27,-200.888,49.9167,222.63,-83.2232],[1669.4,-102,49.4667,219.918,-83.087],[1657.01,-0.769047,49,217.063,-82.9411],[1644.51,99.0985,48.5333,214.166,-82.79],[1631.92,197.582,48.0667,211.227,-82.6336],[1618.78,298.101,47.5833,208.137,-82.4657],[1605.54,397.089,47.1,205.002,-82.2913],[1591.74,497.856,46.6,201.711,-82.1038],[1577.84,596.935,46.1,198.371,-81.9084],[1563.36,697.517,45.5833,194.87,-81.6979],[1548.29,799.394,45.05,191.202,-81.4707],[1533.11,899.262,44.5167,187.48,-81.2327],[1517.82,997.089,43.9833,183.704,-80.9831],[1501.44,1098.76,43.4167,179.635,-80.7042],[1484.93,1198.06,42.85,175.507,-80.41],[1467.81,1297.76,42.2667,171.197,-80.0899],[1450.07,1397.61,41.6667,166.702,-79.7404],[1431.19,1499.98,41.0333,161.889,-79.3474],[1412.17,1599.2,40.4,157.01,-78.9268],[1392.49,1697.71,39.75,151.934,-78.4633],[1371.14,1799.97,39.05,146.395,-77.9238],[1349.62,1898.2,38.35,140.783,-77.3371],[1326.39,1998.91,37.6,134.694,-76.6485]]], + [82,2958.36,[[1664.47,-2000.02,57.4667,261.948,-85.5255],[1656.61,-1900.24,57.0833,260.18,-85.4606],[1648.69,-1801.15,56.7,258.385,-85.3944],[1640.7,-1702.76,56.3167,256.564,-85.3268],[1632.31,-1600.85,55.9167,254.635,-85.2546],[1624.21,-1503.92,55.5333,252.759,-85.1838],[1615.69,-1403.55,55.1333,250.771,-85.1082],[1607.1,-1304,54.7333,248.754,-85.0309],[1598.09,-1201.17,54.3167,246.621,-84.9483],[1589.37,-1103.31,53.9167,244.542,-84.8671],[1580.22,-1002.27,53.5,242.344,-84.7803],[1571,-902.162,53.0833,240.112,-84.6913],[1561.71,-803.001,52.6667,237.847,-84.5998],[1551.98,-700.894,52.2333,235.456,-84.5021],[1542.54,-603.709,51.8167,233.122,-84.4056],[1532.66,-503.689,51.3833,230.659,-84.3023],[1522.32,-400.973,50.9333,228.062,-84.1917],[1512.28,-303.187,50.5,225.524,-84.0821],[1501.78,-202.827,50.05,222.849,-83.9646],[1490.8,-100.048,49.5833,220.032,-83.8388],[1480.14,-2.20838,49.1333,217.276,-83.7134],[1468.99,97.9176,48.6667,214.375,-83.579],[1457.76,196.662,48.2,211.43,-83.4398],[1446.04,297.454,47.7167,208.336,-83.2902],[1434.24,396.719,47.2333,205.195,-83.135],[1421.93,497.774,46.7333,201.897,-82.968],[1409.52,597.145,46.2333,198.55,-82.7941],[1396.61,698.031,45.7167,195.041,-82.6067],[1383.59,797.062,45.2,191.48,-82.4109],[1370.05,897.313,44.6667,187.749,-82.1992],[1355.98,998.564,44.1167,183.846,-81.9702],[1341.81,1097.62,43.5667,179.885,-81.7293],[1327.09,1197.34,43,175.745,-81.4676],[1311.82,1297.47,42.4167,171.422,-81.1828],[1296,1397.77,41.8167,166.911,-80.872],[1279.61,1497.96,41.2,162.208,-80.5318],[1262.64,1597.76,40.5667,157.31,-80.1583],[1244.65,1699.35,39.9,152.081,-79.7356],[1226.06,1799.76,39.2167,146.647,-79.2673],[1206.87,1898.65,38.5167,141.005,-78.7458],[1186.62,1997.86,37.7833,135.018,-78.1479]]], + [83,2971.71,[[1462.36,-2000.29,57.5667,262.072,-86.074],[1455.46,-1900.39,57.1833,260.304,-86.0171],[1448.5,-1801.18,56.8,258.508,-85.9591],[1441.5,-1702.67,56.4167,256.686,-85.8997],[1434.13,-1600.63,56.0167,254.756,-85.8364],[1427.01,-1503.58,55.6333,252.878,-85.7743],[1419.53,-1403.08,55.2333,250.89,-85.708],[1411.99,-1303.4,54.8333,248.871,-85.6401],[1404.08,-1200.43,54.4167,246.736,-85.5677],[1396.43,-1102.43,54.0167,244.655,-85.4964],[1388.39,-1001.25,53.6,242.455,-85.4203],[1380.3,-901.001,53.1833,240.221,-85.3423],[1372.14,-801.696,52.7667,237.954,-85.262],[1363.92,-703.351,52.35,235.652,-85.1796],[1355.31,-602.105,51.9167,233.223,-85.0916],[1346.63,-501.93,51.4833,230.756,-85.0009],[1337.88,-402.84,51.05,228.253,-84.9076],[1328.73,-301.108,50.6,225.614,-84.8077],[1319.51,-200.583,50.15,222.935,-84.7047],[1310.22,-101.284,49.7,220.215,-84.5983],[1300.85,-3.22919,49.25,217.455,-84.4885],[1291.07,97.1222,48.7833,214.55,-84.3706],[1280.86,199.603,48.3,211.496,-84.2441],[1270.93,297.125,47.8333,208.502,-84.1176],[1260.56,396.63,47.35,205.356,-83.9815],[1249.75,497.937,46.85,202.053,-83.8351],[1238.86,597.561,46.35,198.699,-83.6827],[1227.53,698.712,45.8333,195.183,-83.5184],[1216.1,798.011,45.3167,191.613,-83.3467],[1204.22,898.542,44.7833,187.874,-83.1612],[1192.24,997.039,44.25,184.08,-82.9666],[1179.42,1099.43,43.6833,179.989,-82.7491],[1166.5,1199.45,43.1167,175.837,-82.5197],[1153.09,1299.91,42.5333,171.5,-82.2699],[1139.59,1397.78,41.95,167.1,-82.0051],[1125.2,1498.39,41.3333,162.381,-81.7071],[1110.31,1598.62,40.7,157.465,-81.3799],[1094.91,1698.17,40.05,152.347,-81.0192],[1078.6,1799.15,39.3667,146.891,-80.6096],[1061.76,1898.62,38.6667,141.224,-80.1534],[1043.98,1998.47,37.9333,135.205,-79.6302]]], + [84,2983.33,[[1258.24,-2003.98,57.6667,262.241,-86.6278],[1252.31,-1903.95,57.2833,260.472,-86.5789],[1246.07,-1800.31,56.8833,258.598,-86.5268],[1240.04,-1701.7,56.5,256.775,-86.4757],[1233.97,-1603.8,56.1167,254.924,-86.4237],[1227.58,-1502.4,55.7167,252.964,-86.368],[1221.15,-1401.8,55.3167,250.974,-86.3111],[1214.67,-1302.01,54.9167,248.954,-86.2528],[1208.14,-1203.03,54.5167,246.903,-86.193],[1201.28,-1100.82,54.1,244.734,-86.1293],[1194.65,-1003.56,53.7,242.62,-86.0665],[1187.69,-903.152,53.2833,240.386,-85.9995],[1180.68,-803.691,52.8667,238.117,-85.9306],[1173.33,-701.268,52.4333,235.722,-85.857],[1166.2,-603.777,52.0167,233.384,-85.7842],[1158.74,-503.434,51.5833,230.915,-85.7064],[1150.93,-400.38,51.1333,228.313,-85.6231],[1143.36,-302.265,50.7,225.769,-85.5406],[1135.43,-201.56,50.25,223.087,-85.4521],[1127.44,-102.08,49.8,220.365,-85.3607],[1119.09,-0.22751,49.3333,217.498,-85.2629],[1110.98,96.7017,48.8833,214.693,-85.1652],[1102.2,199.384,48.4,211.635,-85.0566],[1093.66,297.101,47.9333,208.637,-84.9479],[1084.74,396.812,47.45,205.486,-84.8311],[1075.45,498.333,46.95,202.178,-84.7054],[1066.09,598.174,46.45,198.819,-84.5745],[1056.34,699.551,45.9333,195.295,-84.4334],[1046.52,799.078,45.4167,191.719,-84.286],[1036.3,899.846,44.8833,187.972,-84.1266],[1026,998.583,44.35,184.169,-83.9595],[1015.3,1098.24,43.8,180.19,-83.7783],[1004.2,1198.6,43.2333,176.028,-83.5815],[992.675,1299.4,42.65,171.681,-83.3672],[981.065,1397.61,42.0667,167.269,-83.1401],[968.698,1498.59,41.45,162.537,-82.8845],[955.899,1599.2,40.8167,157.606,-82.6037],[942.661,1699.15,40.1667,152.47,-82.2941],[928.981,1798.13,39.5,147.128,-81.9514],[914.507,1898.13,38.8,141.438,-81.5606],[899.227,1998.54,38.0667,135.393,-81.1122]]], + [85,2993.2,[[1051.82,-2002.36,57.7333,262.3,-87.1822],[1046.86,-1902.26,57.35,260.53,-87.1414],[1041.86,-1802.85,56.9667,258.734,-87.0996],[1036.82,-1704.13,56.5833,256.91,-87.0572],[1031.53,-1601.87,56.1833,254.978,-87.0117],[1026.19,-1500.39,55.7833,253.017,-86.9653],[1021.04,-1403.89,55.4,251.109,-86.9196],[1015.62,-1303.98,55,249.088,-86.871],[1009.94,-1200.77,54.5833,246.95,-86.819],[1004.43,-1102.55,54.1833,244.867,-86.7678],[998.661,-1001.12,53.7667,242.664,-86.7132],[992.842,-900.626,53.35,240.427,-86.6572],[986.98,-801.074,52.9333,238.156,-86.5996],[981.073,-702.479,52.5167,235.851,-86.5406],[974.883,-600.971,52.0833,233.417,-86.4773],[968.645,-500.531,51.65,230.946,-86.4123],[962.36,-401.174,51.2167,228.437,-86.3454],[956.028,-302.918,50.7833,225.891,-86.2764],[949.402,-202.065,50.3333,223.207,-86.2025],[942.725,-102.434,49.8833,220.482,-86.1263],[935.748,-0.424563,49.4167,217.613,-86.0446],[928.969,96.6579,48.9667,214.805,-85.9631],[921.633,199.506,48.4833,211.743,-85.8724],[914.495,297.386,48.0167,208.741,-85.7817],[907.046,397.266,47.5333,205.586,-85.6841],[899.281,498.965,47.0333,202.273,-85.5792],[891.457,598.985,46.5333,198.909,-85.4699],[883.573,697.301,46.0333,195.495,-85.356],[875.365,797.076,45.5167,191.914,-85.233],[866.827,898.103,44.9833,188.162,-85.1002],[858.224,997.102,44.45,184.353,-84.9608],[849.285,1097.04,43.9,180.367,-84.8097],[840.004,1197.67,43.3333,176.198,-84.6456],[830.376,1298.77,42.75,171.842,-84.4669],[820.675,1397.28,42.1667,167.42,-84.2774],[810.342,1498.58,41.55,162.677,-84.0642],[799.647,1599.52,40.9167,157.732,-83.83],[788.586,1699.81,40.2667,152.582,-83.5717],[777.155,1799.14,39.6,147.222,-83.2858],[765.061,1899.53,38.9,141.512,-82.9596],[752.584,1998.09,38.1833,135.582,-82.5942]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 935.748; +_maxRange = 5383.07; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg4.sqf new file mode 100644 index 0000000000..4f04a144b7 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_HA_chg4.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_120mm_dm11a5_dm111a1_pd_chg4 +// Ammo: ace_arty_120mm_dm11a5_dm111a1_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,2269.99,[[8449.25,-2001.62,52.1167,263.39,-66.6669],[8405.61,-1901.27,51.7,261.821,-66.3112],[8361.6,-1801.79,51.2833,260.236,-65.9483],[8317.24,-1703.2,50.8667,258.635,-65.5778],[8270.71,-1601.62,50.4333,256.955,-65.1843],[8223.78,-1501.04,50,255.258,-64.7822],[8176.47,-1401.45,49.5667,253.545,-64.3713],[8128.75,-1302.88,49.1333,251.817,-63.9513],[8078.78,-1201.61,48.6833,250.007,-63.5052],[8028.39,-1101.47,48.2333,248.182,-63.0487],[7977.56,-1002.47,47.7833,246.341,-62.5815],[7924.41,-901.03,47.3167,244.418,-62.0853],[7870.78,-800.853,46.85,242.479,-61.5768],[7816.7,-701.957,46.3833,240.527,-61.0556],[7760.2,-600.9,45.9,238.492,-60.502],[7703.2,-501.257,45.4167,236.443,-59.9339],[7645.71,-403.049,44.9333,234.383,-59.3508],[7585.71,-302.984,44.4333,232.241,-58.7314],[7523.15,-201.241,43.9167,230.017,-58.0732],[7460.03,-101.208,43.4,227.784,-57.3961],[7396.34,-2.90788,42.8833,225.544,-56.6994],[7327.93,99.8025,42.3333,223.154,-55.9354],[7260.97,197.471,41.8,220.833,-55.1718],[7189.17,299.133,41.2333,218.365,-54.3351],[7116.7,398.589,40.6667,215.899,-53.4711],[7041.39,498.633,40.0833,213.367,-52.5523],[6963.18,599.026,39.4833,210.771,-51.5749],[6882.01,699.519,38.8667,208.117,-50.5349],[6797.83,799.849,38.2333,205.412,-49.4282],[6710.56,899.742,37.5833,202.664,-48.25],[6620.15,998.912,36.9167,199.881,-46.9956],[6524.22,1099.41,36.2167,197.006,-45.6265],[6424.97,1198.39,35.5,194.122,-44.1678],[6317.63,1299.82,34.7333,191.115,-42.5416],[6206.71,1398.65,33.95,188.141,-40.8078],[6087.35,1498.36,33.1167,185.104,-38.8813],[5956.87,1599.66,32.2167,181.992,-36.7039],[5817.36,1699.29,31.2667,178.925,-34.2955],[5663.56,1799.01,30.2333,175.88,-31.5479],[5489.89,1899.22,29.0833,172.899,-28.3368],[5287.82,1999.75,27.7667,170.087,-24.4722]]], + [46,2342.08,[[8384.93,-2000.29,52.7,264.034,-67.2432],[8343.92,-1903.28,52.3,262.522,-66.9106],[8300.85,-1803.08,51.8833,260.932,-66.5573],[8257.43,-1703.75,51.4667,259.325,-66.1966],[8211.89,-1601.4,51.0333,257.637,-65.8135],[8165.96,-1500.04,50.6,255.931,-65.422],[8121.43,-1403.5,50.1833,254.276,-65.0375],[8072.94,-1300.29,49.7333,252.472,-64.6129],[8025.85,-1201.95,49.3,250.718,-64.1948],[7976.53,-1100.92,48.85,248.881,-63.7506],[7926.8,-1001.02,48.4,247.027,-63.2959],[7876.64,-902.267,47.95,245.159,-62.8305],[7824.18,-801.09,47.4833,243.205,-62.336],[7771.27,-701.185,47.0167,241.236,-61.8291],[7717.9,-602.568,46.55,239.253,-61.3094],[7662.15,-501.807,46.0667,237.184,-60.7572],[7605.91,-402.467,45.5833,235.103,-60.1904],[7547.23,-301.219,45.0833,232.936,-59.5881],[7488.02,-201.536,44.5833,230.758,-58.969],[7426.29,-100.197,44.0667,228.496,-58.3111],[7364,-0.577747,43.55,226.224,-57.6339],[7301.17,97.299,43.0333,223.945,-56.9368],[7233.66,199.548,42.4833,221.512,-56.172],[7165.54,299.765,41.9333,219.075,-55.383],[7096.78,397.921,41.3833,216.636,-54.5688],[7023.18,499.742,40.8,214.05,-53.6768],[6948.88,599.179,40.2167,211.47,-52.7543],[6871.73,698.933,39.6167,208.825,-51.7724],[6791.67,798.753,39,206.12,-50.7269],[6708.63,898.376,38.3667,203.362,-49.6136],[6622.57,997.526,37.7167,200.558,-48.4277],[6531.17,1098.33,37.0333,197.648,-47.1317],[6436.56,1197.9,36.3333,194.715,-45.7501],[6336.4,1298.13,35.6,191.704,-44.242],[6230.53,1398.4,34.8333,188.637,-42.5966],[6118.82,1498.03,34.0333,185.539,-40.8025],[5998.75,1598.2,33.1833,182.382,-38.8079],[5867.66,1699.56,32.2667,179.156,-36.5527],[5727.64,1798.85,31.3,175.986,-34.0562],[5571.03,1899.19,30.2333,172.805,-31.1609],[5394.72,1999,29.05,169.723,-27.7805]]], + [47,2413.92,[[8315.48,-2001.07,53.2833,264.714,-67.8195],[8275.35,-1903.4,52.8833,263.198,-67.4958],[8233.21,-1802.5,52.4667,261.602,-67.1518],[8190.72,-1702.47,52.05,259.989,-66.8007],[8147.87,-1603.33,51.6333,258.36,-66.4422],[8102.95,-1501.17,51.2,256.647,-66.0614],[8057.64,-1400,50.7667,254.918,-65.6721],[8013.71,-1303.66,50.35,253.239,-65.2897],[7965.87,-1200.67,49.9,251.408,-64.8674],[7919.42,-1102.54,49.4667,249.628,-64.4514],[7870.78,-1001.73,49.0167,247.764,-64.0094],[7821.72,-902.063,48.5667,245.882,-63.5568],[7772.25,-803.551,48.1167,243.985,-63.0933],[7720.51,-702.627,47.65,242.001,-62.6008],[7668.32,-602.981,47.1833,240.001,-62.0958],[7613.8,-501.142,46.7,237.915,-61.5592],[7558.81,-400.712,46.2167,235.813,-61.0083],[7503.33,-301.711,45.7333,233.697,-60.4425],[7445.45,-200.823,45.2333,231.494,-59.8412],[7387.05,-101.508,44.7333,229.279,-59.2228],[7326.17,-0.559017,44.2167,226.979,-58.5653],[7264.75,98.6616,43.7,224.668,-57.8884],[7200.77,199.244,43.1667,222.274,-57.1684],[7136.22,297.933,42.6333,219.873,-56.4261],[7069.05,397.693,42.0833,217.392,-55.6362],[6999.2,498.309,41.5167,214.833,-54.7957],[6926.62,599.554,40.9333,212.2,-53.9009],[6853.36,698.4,40.35,209.571,-52.975],[6777.29,797.533,39.75,206.876,-51.9889],[6696.21,899.341,39.1167,204.044,-50.9095],[6614.34,998.198,38.4833,201.233,-49.7889],[6527.3,1099.02,37.8167,198.301,-48.563],[6437.17,1198.88,37.1333,195.334,-47.2553],[6341.67,1299.75,36.4167,192.272,-45.826],[6242.9,1398.82,35.6833,189.203,-44.3001],[6136.25,1499.94,34.9,186.009,-42.5968],[6026.1,1598.13,34.1,182.852,-40.7765],[5905.39,1698.61,33.2333,179.574,-38.71],[5773.79,1799.86,32.3,176.234,-36.3725],[5633.36,1898.61,31.3167,172.962,-33.7825],[5474.1,1999.28,30.2167,169.648,-30.731]]], + [48,2485.42,[[8240.84,-2004.08,53.8667,265.43,-68.3958],[8199.95,-1901.66,53.45,263.847,-68.0677],[8158.72,-1800.09,53.0333,262.246,-67.7328],[8118.82,-1703.4,52.6333,260.693,-67.4048],[8076.92,-1603.54,52.2167,259.058,-67.0561],[8032.98,-1500.63,51.7833,257.339,-66.6856],[7990.38,-1402.59,51.3667,255.67,-66.3217],[7945.71,-1301.61,50.9333,253.916,-65.935],[7900.66,-1201.62,50.5,252.144,-65.5395],[7855.24,-1102.66,50.0667,250.355,-65.1351],[7807.67,-1000.98,49.6167,248.48,-64.7054],[7759.7,-900.432,49.1667,246.587,-64.2654],[7711.32,-801.028,48.7167,244.677,-63.8147],[7662.54,-702.785,48.2667,242.75,-63.3531],[7611.52,-602.147,47.8,240.736,-62.8625],[7560.07,-502.793,47.3333,238.704,-62.3592],[7506.32,-401.264,46.85,236.584,-61.8243],[7452.1,-301.153,46.3667,234.449,-61.2749],[7397.42,-202.478,45.8833,232.298,-60.7106],[7340.35,-101.935,45.3833,230.06,-60.1105],[7282.79,-2.97392,44.8833,227.808,-59.4932],[7222.78,97.6003,44.3667,225.468,-58.8366],[7160.28,199.596,43.8333,223.042,-58.1381],[7097.21,299.713,43.3,220.606,-57.4177],[7033.58,397.926,42.7667,218.162,-56.6746],[6967.36,497.183,42.2167,215.637,-55.8836],[6898.52,597.269,41.65,213.032,-55.0414],[6826.99,697.955,41.0667,210.35,-54.1443],[6752.72,799.001,40.4667,207.596,-53.1884],[6677.75,897.458,39.8667,204.849,-52.1975],[6597.85,998.537,39.2333,201.963,-51.1121],[6515.03,1099.19,38.5833,199.022,-49.9542],[6429.25,1199.12,37.9167,196.034,-48.7184],[6340.43,1298.05,37.2333,193.009,-47.3991],[6246.32,1397.92,36.5167,189.886,-45.956],[6146.79,1498.12,35.7667,186.684,-44.3779],[6041.71,1597.99,34.9833,183.427,-42.653],[5928.65,1698.8,34.15,180.077,-40.7291],[5807.4,1799.43,33.2667,176.677,-38.5868],[5677.71,1898.69,32.3333,173.282,-36.2056],[5532.27,1999.99,31.3,169.799,-33.4265]]], + [49,2556.5,[[8157.77,-2001.17,54.4167,266.057,-68.9467],[8119.39,-1902.22,54.0167,264.533,-68.6402],[8080.7,-1804.05,53.6167,262.993,-68.3276],[8040.07,-1702.63,53.2,261.371,-67.9954],[7999.11,-1602.07,52.7833,259.731,-67.6563],[7957.8,-1502.4,52.3667,258.073,-67.3099],[7916.16,-1403.63,51.95,256.397,-66.9562],[7872.5,-1301.86,51.5167,254.636,-66.5803],[7828.46,-1201.09,51.0833,252.857,-66.196],[7784.06,-1101.33,50.65,251.06,-65.8029],[7739.29,-1002.58,50.2167,249.245,-65.4008],[7692.41,-901.146,49.7667,247.342,-64.9734],[7645.14,-800.841,49.3167,245.42,-64.5357],[7597.46,-701.688,48.8667,243.481,-64.0873],[7547.6,-600.095,48.4,241.453,-63.6106],[7499.12,-503.337,47.95,239.48,-63.1393],[7446.6,-400.748,47.4667,237.343,-62.62],[7395.45,-303.031,47,235.263,-62.1053],[7342.03,-203.223,46.5167,233.094,-61.5578],[7286.29,-101.495,46.0167,230.833,-60.9755],[7230.05,-1.33542,45.5167,228.557,-60.3764],[7173.33,97.2332,45.0167,226.267,-59.76],[7114.2,197.392,44.5,223.888,-59.104],[7052.62,298.949,43.9667,221.42,-58.4058],[6990.48,398.617,43.4333,218.942,-57.6855],[6925.83,499.393,42.8833,216.377,-56.9184],[6860.59,598.101,42.3333,213.807,-56.1259],[6792.76,697.609,41.7667,211.155,-55.2814],[6722.29,797.685,41.1833,208.424,-54.3815],[6649.12,898.089,40.5833,205.618,-53.422],[6573.21,998.569,39.9667,202.742,-52.3986],[6494.49,1098.86,39.3333,199.802,-51.3064],[6412.91,1198.68,38.6833,196.804,-50.1405],[6328.42,1297.75,38.0167,193.758,-48.8951],[6238.8,1398.11,37.3167,190.598,-47.5313],[6143.94,1499.16,36.5833,187.341,-46.0382],[6045.9,1598.11,35.8333,184.078,-44.4403],[5940.18,1698.7,35.0333,180.689,-42.6538],[5826.58,1799.87,34.1833,177.21,-40.6596],[5707.15,1898.69,33.3,173.752,-38.4791],[5574.84,1999.33,32.3333,170.183,-35.9638]]], + [50,2627.11,[[8069.57,-2000.55,54.9667,266.718,-69.4984],[8032.06,-1900.99,54.5667,265.191,-69.2004],[7994.24,-1802.2,54.1667,263.648,-68.8964],[7954.53,-1700.12,53.75,262.021,-68.5733],[7916.1,-1602.94,53.35,260.442,-68.2568],[7875.74,-1502.56,52.9333,258.78,-67.9202],[7835.05,-1403.07,52.5167,257.099,-67.5765],[7792.38,-1300.56,52.0833,255.332,-67.2112],[7751.01,-1202.91,51.6667,253.614,-66.8521],[7707.64,-1102.34,51.2333,251.81,-66.4704],[7663.9,-1002.79,50.8,249.987,-66.0799],[7618.1,-900.492,50.35,248.074,-65.6648],[7573.63,-803.049,49.9167,246.215,-65.2556],[7527.07,-702.977,49.4667,244.265,-64.8205],[7478.37,-600.421,49,242.224,-64.3579],[7431.01,-502.723,48.55,240.237,-63.9005],[7381.49,-402.664,48.0833,238.16,-63.414],[7329.75,-300.4,47.6,235.989,-62.8967],[7279.38,-203.004,47.1333,233.877,-62.3838],[7224.94,-100.133,46.6333,231.596,-61.8189],[7171.86,-2.16903,46.15,229.375,-61.2573],[7116.48,97.6213,45.65,227.061,-60.6597],[7058.74,199.057,45.1333,224.656,-60.0236],[7000.5,298.76,44.6167,222.236,-59.368],[6939.85,399.834,44.0833,219.726,-58.6699],[6878.65,499.009,43.55,217.204,-57.9493],[6814.98,599.264,43,214.595,-57.1815],[6750.74,697.44,42.45,211.978,-56.3878],[6681.97,799.262,41.8667,209.198,-55.5163],[6612.57,898.677,41.2833,206.418,-54.6131],[6540.52,998.386,40.6833,203.56,-53.6494],[6465.78,1098.13,40.0667,200.63,-52.6208],[6388.28,1197.66,39.4333,197.634,-51.5223],[6305.9,1299.17,38.7667,194.501,-50.3179],[6220.61,1399.72,38.0833,191.319,-49.0298],[6132.37,1498.98,37.3833,188.099,-47.6517],[6038.98,1598.86,36.65,184.779,-46.1414],[5940.31,1698.71,35.8833,181.381,-44.4867],[5834.05,1799.87,35.0667,177.858,-42.6354],[5722.21,1899.35,34.2167,174.317,-40.6077],[5600.18,1999.91,33.3,170.67,-38.302]]], + [51,2697.16,[[7976.22,-2002.37,55.5167,267.413,-70.051],[7939.58,-1902.19,55.1167,265.885,-69.7614],[7902.65,-1802.77,54.7167,264.338,-69.4661],[7863.86,-1700.03,54.3,262.709,-69.1521],[7826.32,-1602.21,53.9,261.126,-68.8446],[7786.9,-1501.15,53.4833,259.459,-68.5175],[7747.15,-1400.98,53.0667,257.773,-68.1835],[7707.08,-1301.7,52.65,256.069,-67.8423],[7666.68,-1203.32,52.2333,254.346,-67.4937],[7624.32,-1101.97,51.8,252.535,-67.1231],[7581.61,-1001.63,51.3667,250.704,-66.7439],[7538.55,-902.314,50.9333,248.855,-66.356],[7493.45,-800.27,50.4833,246.914,-65.9435],[7449.67,-703.074,50.05,245.027,-65.5368],[7403.82,-603.265,49.6,243.048,-65.1041],[7355.88,-500.989,49.1333,240.976,-64.644],[7309.26,-403.568,48.6833,238.959,-64.189],[7258.76,-300.263,48.2,236.774,-63.6873],[7209.58,-201.85,47.7333,234.645,-63.1898],[7158.21,-101.319,47.25,232.422,-62.6605],[7106.41,-2.22832,46.7667,230.182,-62.1163],[7052.36,98.7407,46.2667,227.847,-61.5371],[6997.84,198.123,45.7667,225.495,-60.9407],[6941.01,299.127,45.25,223.049,-60.3057],[6883.68,398.388,44.7333,220.589,-59.6508],[6823.98,498.996,44.2,218.035,-58.9532],[6763.75,597.693,43.6667,215.47,-58.2327],[6701.08,697.444,43.1167,212.815,-57.4647],[6635.94,798.03,42.55,210.071,-56.6457],[6568.26,899.223,41.9667,207.241,-55.7721],[6499.96,997.994,41.3833,204.41,-54.8659],[6427.08,1099.74,40.7667,201.419,-53.8711],[6353.51,1198.7,40.15,198.434,-52.8366],[6275.23,1299.95,39.5,195.302,-51.7013],[6196.18,1398.02,38.85,192.189,-50.5177],[6112.28,1497.63,38.1667,188.946,-49.2191],[6023.38,1598.21,37.45,185.585,-47.7944],[5929.39,1699.14,36.7,182.126,-46.2315],[5830.18,1799.75,35.9167,178.589,-44.5171],[5725.63,1899.34,35.1,175.002,-42.6367],[5613.42,1999.03,34.2333,171.329,-40.5331]]], + [52,2766.6,[[7876.17,-2002.51,56.05,268.079,-70.5925],[7840.4,-1901.73,55.65,266.549,-70.3112],[7804.34,-1801.71,55.25,265,-70.0242],[7767.99,-1702.45,54.85,263.433,-69.7316],[7731.34,-1603.98,54.45,261.848,-69.433],[7692.86,-1502.24,54.0333,260.178,-69.1156],[7654.06,-1401.38,53.6167,258.488,-68.7913],[7614.95,-1301.4,53.2,256.779,-68.4601],[7575.51,-1202.31,52.7833,255.051,-68.1217],[7534.16,-1100.22,52.35,253.234,-67.7618],[7494.08,-1003,51.9333,251.467,-67.4081],[7452.05,-902.881,51.5,249.61,-67.0317],[7409.67,-803.787,51.0667,247.734,-66.6466],[7365.3,-701.982,50.6167,245.765,-66.237],[7320.56,-601.314,50.1667,243.776,-65.8173],[7275.44,-501.8,49.7167,241.767,-65.387],[7229.95,-403.456,49.2667,239.739,-64.9459],[7182.38,-302.723,48.8,237.616,-64.4766],[7134.41,-203.284,48.3333,235.473,-63.9947],[7084.3,-101.678,47.85,233.234,-63.4819],[7033.76,-1.50178,47.3667,230.976,-62.9547],[6982.79,97.2255,46.8833,228.699,-62.4124],[6929.61,197.81,46.3833,226.326,-61.835],[6875.98,296.799,45.8833,223.936,-61.2402],[6820.07,397.387,45.3667,221.45,-60.6067],[6761.85,499.38,44.8333,218.867,-59.9316],[6703.12,599.478,44.3,216.27,-59.2342],[6643.87,697.653,43.7667,213.66,-58.5135],[6580.35,799.827,43.2,210.876,-57.7212],[6516.25,899.766,42.6333,208.083,-56.9003],[6451.58,997.441,42.0667,205.285,-56.0494],[6382.48,1098.35,41.4667,202.32,-55.1144],[6310.79,1199.35,40.85,199.273,-54.1151],[6238.44,1297.54,40.2333,196.233,-53.0752],[6161.45,1397.96,39.5833,193.042,-51.933],[6081.72,1497.63,38.9167,189.789,-50.71],[5997.18,1598.6,38.2167,186.403,-49.3669],[5909.75,1698.01,37.5,182.98,-47.9263],[5815.26,1799.85,36.7333,179.377,-46.3083],[5717.7,1899.03,35.95,175.775,-44.569],[5612.78,1999.03,35.1167,172.049,-42.619]]], + [53,2835.36,[[7769.46,-2000.95,56.5667,268.715,-71.1239],[7736.02,-1903.81,56.1833,267.247,-70.8621],[7700.83,-1803.18,55.7833,265.697,-70.5836],[7665.36,-1703.31,55.3833,264.128,-70.2996],[7628.12,-1600.1,54.9667,262.474,-69.9976],[7592.06,-1501.82,54.5667,260.867,-69.7017],[7554.21,-1400.3,54.15,259.174,-69.387],[7517.57,-1303.65,53.75,257.529,-69.0785],[7479.11,-1203.85,53.3333,255.797,-68.7503],[7438.77,-1101.01,52.9,253.975,-68.4013],[7399.67,-1003.06,52.4833,252.203,-68.0582],[7358.67,-902.172,52.05,250.34,-67.6932],[7317.33,-802.301,51.6167,248.456,-67.3197],[7275.65,-703.46,51.1833,246.552,-66.9373],[7232.02,-601.925,50.7333,244.554,-66.5306],[7188.01,-501.533,50.2833,242.536,-66.1136],[7143.64,-402.301,49.8333,240.497,-65.6861],[7097.24,-300.637,49.3667,238.361,-65.2312],[7050.45,-200.257,48.9,236.204,-64.7641],[7003.26,-101.18,48.4333,234.028,-64.2843],[6955.69,-3.42314,47.9667,231.832,-63.7915],[6904.28,99.8289,47.4667,229.459,-63.2484],[6854.15,198.156,46.9833,227.146,-62.7079],[6801.86,298.317,46.4833,224.734,-62.1321],[6749.12,396.873,45.9833,222.304,-61.5389],[6694.15,497.003,45.4667,219.776,-60.9065],[6636.91,598.513,44.9333,217.15,-60.2325],[6579.17,698.116,44.4,214.508,-59.5358],[6519.1,798.805,43.85,211.77,-58.7926],[6458.5,897.408,43.3,209.021,-58.023],[6393.64,999.673,42.7167,206.095,-57.1769],[6328.19,1099.52,42.1333,203.162,-56.2983],[6260.25,1199.67,41.5333,200.143,-55.3592],[6189.77,1299.85,40.9167,197.041,-54.3549],[6116.71,1399.81,40.2833,193.861,-53.28],[6041.02,1499.25,39.6333,190.61,-52.1288],[5962.65,1597.9,38.9667,187.296,-50.895],[5879.55,1697.78,38.2667,183.847,-49.5387],[5791.63,1798.28,37.5333,180.278,-48.0477],[5698.76,1898.77,36.7667,176.609,-46.4083],[5600.83,1998.55,35.9667,172.862,-44.6054]]], + [54,2903.36,[[7657.6,-2002.01,57.0833,269.384,-71.6568],[7623.55,-1900.09,56.6833,267.851,-71.3916],[7590.67,-1803.11,56.3,266.363,-71.1326],[7556.08,-1702.65,55.9,264.793,-70.8569],[7521.21,-1602.96,55.5,263.203,-70.5758],[7486.06,-1504.04,55.1,261.594,-70.2889],[7449.15,-1401.85,54.6833,259.898,-69.9837],[7411.94,-1300.51,54.2667,258.181,-69.6721],[7374.43,-1200.06,53.85,256.445,-69.3536],[7336.61,-1100.5,53.4333,254.688,-69.0281],[7298.49,-1001.85,53.0167,252.91,-68.6954],[7258.51,-900.226,52.5833,251.041,-68.3415],[7219.76,-803.46,52.1667,249.224,-67.9934],[7177.56,-700.014,51.7167,247.239,-67.6085],[7136.58,-601.455,51.2833,245.307,-67.2289],[7093.68,-500.22,50.8333,243.28,-66.8249],[7050.43,-400.135,50.3833,241.23,-66.4106],[7006.82,-301.217,49.9333,239.16,-65.9857],[6962.85,-203.483,49.4833,237.07,-65.5499],[6916.88,-103.397,49.0167,234.881,-65.0858],[6868.86,-1.11788,48.5333,232.592,-64.5918],[6820.43,99.7359,48.05,230.281,-64.0836],[6771.59,199.143,47.5667,227.95,-63.5607],[6722.34,297.084,47.0833,225.6,-63.0224],[6670.96,396.836,46.5833,223.149,-62.4488],[6617.41,498.216,46.0667,220.596,-61.8374],[6563.39,597.847,45.55,218.026,-61.2061],[6507.15,698.83,45.0167,215.355,-60.5329],[6450.4,797.894,44.4833,212.668,-59.8366],[6391.38,898.015,43.9333,209.883,-59.0934],[6330.03,998.974,43.3667,207,-58.2998],[6268.12,1097.67,42.8,204.108,-57.4763],[6201.98,1199.67,42.2,201.037,-56.5704],[6135.24,1299.06,41.6,197.963,-55.6279],[6066.01,1398.46,40.9833,194.804,-54.6189],[5994.25,1497.58,40.35,191.565,-53.5382],[5917.99,1598.65,39.6833,188.168,-52.3493],[5839.08,1698.69,39,184.708,-51.0732],[5755.5,1799.71,38.2833,181.112,-49.669],[5669.12,1898.87,37.55,177.477,-48.1587],[5577.89,1997.92,36.7833,173.74,-46.4959]]], + [55,2970.53,[[7539.21,-2001.54,57.5833,270.022,-72.1805],[7507.42,-1903.32,57.2,268.552,-71.9341],[7473.97,-1801.55,56.8,266.999,-71.6719],[7440.26,-1700.53,56.4,265.427,-71.4046],[7406.27,-1600.26,56,263.835,-71.1318],[7372.01,-1500.77,55.6,262.224,-70.8535],[7337.48,-1402.06,55.2,260.593,-70.5695],[7301.21,-1300.08,54.7833,258.873,-70.2673],[7266.12,-1203,54.3833,257.203,-69.9711],[7229.27,-1102.74,53.9667,255.442,-69.6559],[7192.13,-1003.38,53.55,253.661,-69.3337],[7153.18,-901.004,53.1167,251.787,-68.9909],[7115.42,-803.512,52.7,249.965,-68.6538],[7075.84,-703.115,52.2667,248.048,-68.295],[7035.93,-603.745,51.8333,246.109,-67.9276],[6994.15,-501.657,51.3833,244.074,-67.5366],[6952.01,-400.709,50.9333,242.016,-67.1357],[6909.53,-300.919,50.4833,239.936,-66.7245],[6866.69,-202.303,50.0333,237.835,-66.3027],[6821.91,-101.292,49.5667,235.634,-65.8535],[6776.74,-1.58086,49.1,233.41,-65.392],[6731.21,96.8127,48.6333,231.166,-64.9177],[6683.65,197.311,48.15,228.819,-64.4124],[6634.03,299.744,47.65,226.369,-63.874],[6585.66,397.261,47.1667,223.981,-63.3378],[6533.51,499.847,46.65,221.406,-62.7468],[6482.61,597.472,46.15,218.895,-62.1566],[6427.85,699.787,45.6167,216.197,-61.5062],[6374.34,797.09,45.1,213.566,-60.8549],[6316.89,898.678,44.55,210.747,-60.1375],[6258.93,998.184,44,207.914,-59.3941],[6198.68,1098.49,43.4333,204.981,-58.5997],[6136.11,1199.38,42.85,201.95,-57.7502],[6072.98,1297.81,42.2667,198.911,-56.8669],[6005.63,1399.17,41.65,195.694,-55.8946],[5937.66,1497.72,41.0333,192.477,-54.8805],[5865.36,1598.5,40.3833,189.092,-53.7639],[5790.5,1698.52,39.7167,185.633,-52.5653],[5711.13,1799.84,39.0167,182.022,-51.2452],[5629.08,1899.59,38.3,178.359,-49.8248],[5542.35,1999.6,37.55,174.574,-48.2594]]], + [56,3036.8,[[7415.64,-2003.83,58.0833,270.693,-72.7061],[7383.32,-1900.79,57.6833,269.158,-72.4568],[7352.1,-1802.74,57.3,267.669,-72.2133],[7319.27,-1701.14,56.9,266.096,-71.9542],[7286.17,-1600.3,56.5,264.503,-71.6898],[7252.8,-1500.23,56.1,262.89,-71.4202],[7219.17,-1400.92,55.7,261.256,-71.1449],[7185.27,-1302.41,55.3,259.603,-70.864],[7149.67,-1200.63,54.8833,257.861,-70.5651],[7115.22,-1103.76,54.4833,256.167,-70.272],[7079.05,-1003.71,54.0667,254.382,-69.9601],[7041.13,-900.627,53.6333,252.504,-69.6282],[7004.36,-802.44,53.2167,250.676,-69.3018],[6965.82,-701.31,52.7833,248.753,-68.9543],[6926.96,-601.2,52.35,246.808,-68.5986],[6887.78,-502.124,51.9167,244.841,-68.2342],[6846.76,-400.348,51.4667,242.776,-67.8463],[6806.93,-303.426,51.0333,240.765,-67.4634],[6763.69,-200.256,50.5667,238.576,-67.0404],[6721.65,-101.973,50.1167,236.442,-66.6215],[6677.69,-1.31643,49.65,234.207,-66.1753],[6633.37,98.0332,49.1833,231.949,-65.7168],[6587.07,199.533,48.7,229.588,-65.2282],[6540.39,299.589,48.2167,227.203,-64.7252],[6493.31,398.181,47.7333,224.797,-64.2072],[6444.2,498.61,47.2333,222.286,-63.6549],[6394.68,597.426,46.7333,219.754,-63.0851],[6343.07,697.818,46.2167,217.116,-62.4772],[6289.34,799.589,45.6833,214.373,-61.8283],[6235.13,899.445,45.15,211.61,-61.1568],[6180.46,997.356,44.6167,208.83,-60.4615],[6121.87,1099.23,44.05,205.86,-59.6955],[6062.75,1198.84,43.4833,202.875,-58.9],[6001.36,1298.99,42.9,199.791,-58.0487],[5937.64,1399.43,42.3,196.609,-57.1371],[5871.56,1499.9,41.6833,193.334,-56.16],[5804.88,1597.54,41.0667,190.058,-55.1401],[5732.12,1699.87,40.4,186.522,-53.9866],[5658.67,1798.78,39.7333,182.999,-52.7773],[5580.81,1898.91,39.0333,179.322,-51.444],[5498.45,1999.66,38.3,175.505,-49.9732]]], + [57,3102.12,[[7284.23,-2000.35,58.55,271.268,-73.2136],[7254.08,-1901.11,58.1667,269.797,-72.9821],[7223.7,-1802.54,57.7833,268.308,-72.7461],[7191.74,-1700.4,57.3833,266.734,-72.4952],[7160.87,-1603.21,57,265.206,-72.2499],[7128.41,-1502.55,56.6,263.592,-71.9889],[7095.68,-1402.65,56.2,261.958,-71.7225],[7062.69,-1303.52,55.8,260.303,-71.4506],[7028.05,-1201.11,55.3833,258.558,-71.1614],[6994.53,-1103.62,54.9833,256.862,-70.8777],[6959.33,-1002.92,54.5667,255.074,-70.5757],[6923.85,-903.121,54.15,253.264,-70.2671],[6886.65,-800.293,53.7167,251.359,-69.9386],[6850.59,-702.359,53.3,249.505,-69.6154],[6812.78,-601.499,52.8667,247.554,-69.2714],[6774.66,-501.665,52.4333,245.581,-68.919],[6736.24,-402.872,52,243.585,-68.558],[6696.01,-301.396,51.55,241.489,-68.1736],[6655.44,-201.074,51.1,239.37,-67.7792],[6614.55,-101.925,50.65,237.227,-67.3745],[6571.79,-0.35823,50.1833,234.981,-66.9433],[6528.67,99.9113,49.7167,232.711,-66.5002],[6485.19,198.865,49.25,230.417,-66.0445],[6439.79,299.946,48.7667,228.018,-65.5588],[6394.01,399.573,48.2833,225.596,-65.0586],[6347.84,497.728,47.8,223.151,-64.5432],[6299.69,597.693,47.3,220.599,-63.9935],[6249.5,699.286,46.7833,217.939,-63.4068],[6198.89,799.121,46.2667,215.258,-62.8005],[6147.85,897.172,45.75,212.555,-62.1735],[6093.04,999.56,45.2,209.658,-61.4823],[6037.75,1099.87,44.65,206.741,-60.7655],[5981.99,1198.06,44.1,203.808,-60.0217],[5922.32,1299.87,43.5167,200.681,-59.2018],[5862.13,1399.23,42.9333,197.542,-58.3485],[5799.66,1498.84,42.3333,194.303,-57.4338],[5734.88,1598.45,41.7167,190.969,-56.4527],[5667.74,1697.78,41.0833,187.543,-55.3992],[5596.42,1799.04,40.4167,183.942,-54.2372],[5522.62,1899.26,39.7333,180.264,-52.9863],[5446.3,1998.13,39.0333,176.519,-51.6384]]], + [58,3166.4,[[7149,-2004.09,59.0333,271.939,-73.7334],[7118.41,-1900.01,58.6333,270.405,-73.4996],[7088.86,-1800.94,58.25,268.915,-73.2711],[7059.08,-1702.54,57.8667,267.406,-73.0383],[7027.75,-1600.59,57.4667,265.811,-72.7906],[6997.5,-1503.59,57.0833,264.263,-72.5485],[6965.67,-1403.12,56.6833,262.628,-72.2908],[6933.6,-1303.42,56.2833,260.971,-72.0278],[6899.91,-1200.39,55.8667,259.224,-71.7479],[6867.31,-1102.3,55.4667,257.525,-71.4735],[6833.09,-1000.98,55.05,255.734,-71.1814],[6798.58,-900.553,54.6333,253.92,-70.8827],[6763.8,-801.022,54.2167,252.084,-70.5773],[6728.74,-702.405,53.8,250.226,-70.2649],[6691.98,-600.827,53.3667,248.271,-69.9324],[6654.92,-500.266,52.9333,246.292,-69.5917],[6617.56,-400.737,52.5,244.289,-69.2427],[6579.9,-302.256,52.0667,242.264,-68.8851],[6540.47,-201.111,51.6167,240.136,-68.5042],[6500.71,-101.128,51.1667,237.985,-68.1132],[6460.63,-2.3245,50.7167,235.81,-67.7119],[6418.73,98.8751,50.25,233.529,-67.2842],[6376.48,198.77,49.7833,231.224,-66.8444],[6333.88,297.34,49.3167,228.895,-66.3921],[6289.4,398.014,48.8333,226.459,-65.9098],[6244.54,497.227,48.35,223.998,-65.4128],[6197.75,598.3,47.85,221.428,-64.8826],[6150.56,697.763,47.35,218.835,-64.3353],[6101.39,798.825,46.8333,216.131,-63.7511],[6051.8,898.117,46.3167,213.404,-63.1468],[6000.18,998.728,45.7833,210.568,-62.5011],[5948.11,1097.4,45.25,207.71,-61.8321],[5893.96,1197.09,44.7,204.744,-61.1165],[5837.67,1297.58,44.1333,201.669,-60.3504],[5779.23,1398.63,43.55,198.488,-59.5298],[5720.26,1497.22,42.9667,195.292,-58.6749],[5657.38,1598.73,42.35,191.904,-57.7319],[5593.92,1697.41,41.7333,188.509,-56.7461],[5526.43,1798.32,41.0833,184.928,-55.658],[5456.56,1898.44,40.4167,181.262,-54.4867],[5382.51,1999.85,39.7167,177.425,-53.1926]]], + [59,3229.58,[[7006.1,-2002.15,59.4833,272.515,-74.2366],[6977.61,-1901.92,59.1,271.045,-74.0198],[6948.9,-1802.35,58.7167,269.555,-73.7989],[6919.96,-1703.44,58.3333,268.046,-73.5738],[6889.52,-1600.95,57.9333,266.451,-73.3342],[6860.12,-1503.43,57.55,264.903,-73.1001],[6829.2,-1402.41,57.15,263.266,-72.8509],[6798.03,-1302.16,56.75,261.608,-72.5965],[6766.61,-1202.68,56.35,259.929,-72.3369],[6734.95,-1103.99,55.95,258.229,-72.0717],[6701.69,-1002.03,55.5333,256.436,-71.7895],[6668.17,-900.963,55.1167,254.619,-71.501],[6634.38,-800.784,54.7,252.78,-71.2059],[6600.32,-701.512,54.2833,250.918,-70.9041],[6565.99,-603.16,53.8667,249.034,-70.5953],[6529.99,-501.863,53.4333,247.05,-70.2664],[6493.71,-401.59,53,245.042,-69.9296],[6457.12,-302.355,52.5667,243.011,-69.5843],[6418.83,-200.419,52.1167,240.876,-69.2166],[6381.65,-103.348,51.6833,238.797,-68.8533],[6341.28,-0.0232694,51.2167,236.532,-68.4517],[6302.04,98.4026,50.7667,234.323,-68.0537],[6261,199.202,50.3,232.008,-67.6295],[6219.63,298.687,49.8333,229.667,-67.1932],[6177.93,396.84,49.3667,227.301,-66.7442],[6134.37,497.072,48.8833,224.826,-66.2652],[6088.94,599.212,48.3833,222.24,-65.7542],[6043.13,699.754,47.8833,219.627,-65.2266],[5996.92,798.674,47.3833,216.991,-64.6818],[5948.78,899.163,46.8667,214.242,-64.0998],[5900.24,997.87,46.35,211.47,-63.4976],[5849.7,1097.86,45.8167,208.585,-62.8537],[5797.14,1198.94,45.2667,205.588,-62.1648],[5744.12,1297.9,44.7167,202.57,-61.4494],[5689.03,1397.62,44.15,199.441,-60.683],[5631.82,1497.87,43.5667,196.203,-59.8614],[5572.46,1598.4,42.9667,192.858,-58.9797],[5510.9,1698.94,42.35,189.408,-58.0326],[5447.11,1799.24,41.7167,185.858,-57.0142],[5381.04,1899,41.0667,182.213,-55.9179],[5312.67,1997.93,40.4,178.479,-54.7363]]], + [60,3291.59,[[6858.09,-2003.26,59.9333,273.123,-74.7429],[6830.44,-1902.56,59.55,271.654,-74.5334],[6802.56,-1802.51,59.1667,270.164,-74.3199],[6774.47,-1703.12,58.7833,268.655,-74.1023],[6744.92,-1600.12,58.3833,267.059,-73.8708],[6716.37,-1502.1,58,265.51,-73.6445],[6686.35,-1400.55,57.6,263.872,-73.4037],[6657.35,-1303.95,57.2167,262.283,-73.1682],[6626.86,-1203.9,56.8167,260.603,-72.9175],[6594.83,-1100.52,56.4,258.83,-72.6506],[6563.85,-1002.08,56,257.105,-72.3889],[6531.31,-900.394,55.5833,255.286,-72.1103],[6499.82,-803.61,55.1833,253.518,-71.8369],[6466.77,-703.674,54.7667,251.654,-71.5457],[6432.11,-600.709,54.3333,249.69,-71.2357],[6398.52,-502.647,53.9167,247.778,-70.9305],[6363.3,-401.66,53.4833,245.765,-70.6055],[6327.8,-301.703,53.05,243.728,-70.2724],[6292.01,-202.791,52.6167,241.667,-69.9309],[6254.55,-101.198,52.1667,239.5,-69.5671],[6216.77,-0.765403,51.7167,237.308,-69.1936],[6178.69,98.4894,51.2667,235.091,-68.81],[6140.31,196.549,50.8167,232.849,-68.4159],[6100.17,296.961,50.35,230.497,-67.9956],[6058.26,399.564,49.8667,228.035,-67.5475],[6017.46,497.264,49.4,225.632,-67.1018],[5974.86,597.017,48.9167,223.117,-66.6262],[5930.42,698.65,48.4167,220.489,-66.1186],[5885.61,798.674,47.9167,217.835,-65.5942],[5840.42,897.066,47.4167,215.155,-65.0524],[5793.35,996.997,46.9,212.361,-64.4733],[5744.34,1098.27,46.3667,209.451,-63.8541],[5694.91,1197.6,45.8333,206.517,-63.2119],[5643.51,1297.98,45.2833,203.468,-62.5244],[5590.08,1399.17,44.7167,200.305,-61.7877],[5536.2,1498.08,44.15,197.121,-61.0208],[5480.26,1597.47,43.5667,193.825,-60.1978],[5420.59,1699.82,42.95,190.326,-59.2889],[5360.39,1799.34,42.3333,186.814,-58.3373],[5298.02,1898.56,41.7,183.199,-57.313],[5231.76,1999.69,41.0333,179.392,-56.1801]]], + [61,3352.37,[[6703.76,-2003.11,60.3667,273.699,-75.2436],[6676.94,-1901.96,59.9833,272.23,-75.0412],[6649.9,-1801.45,59.6,270.741,-74.835],[6622.65,-1701.59,59.2167,269.232,-74.6248],[6595.18,-1602.4,58.8333,267.702,-74.4106],[6567.5,-1503.88,58.45,266.153,-74.1922],[6538.39,-1401.8,58.05,264.515,-73.9598],[6509.04,-1300.48,57.65,262.855,-73.7226],[6480.69,-1204.09,57.2667,261.244,-73.4906],[6449.64,-1100.13,56.85,259.469,-73.2331],[6419.59,-1001.14,56.45,257.743,-72.9805],[6389.3,-902.939,56.05,255.995,-72.7225],[6357.49,-801.512,55.6333,254.151,-72.4478],[6325.44,-700.976,55.2167,252.283,-72.1668],[6293.12,-601.346,54.8,250.391,-71.8792],[6260.55,-502.634,54.3833,248.475,-71.585],[6226.4,-400.962,53.95,246.458,-71.2716],[6191.98,-300.312,53.5167,244.416,-70.9504],[6157.27,-200.7,53.0833,242.348,-70.6212],[6122.3,-102.141,52.65,240.256,-70.2835],[6085.68,-0.921785,52.2,238.057,-69.9237],[6048.76,99.1287,51.75,235.831,-69.5541],[6011.55,197.993,51.3,233.58,-69.1744],[5972.64,299.249,50.8333,231.218,-68.7696],[5933.41,399.191,50.3667,228.83,-68.3529],[5893.86,497.802,49.9,226.415,-67.9239],[5852.57,598.509,49.4167,223.886,-67.4661],[5810.94,697.745,48.9333,221.331,-66.9939],[5767.51,798.832,48.4333,218.659,-66.4896],[5723.72,898.299,47.9333,215.961,-65.9684],[5678.1,999.354,47.4167,213.146,-65.4114],[5632.09,1098.63,46.9,210.305,-64.8346],[5584.2,1199.21,46.3667,207.345,-64.2173],[5535.9,1297.83,45.8333,204.361,-63.5768],[5485.68,1397.46,45.2833,201.26,-62.8905],[5433.49,1497.87,44.7167,198.041,-62.1547],[5379.31,1598.82,44.1333,194.706,-61.3649],[5324.65,1697.3,43.55,191.352,-60.5404],[5266.36,1798.67,42.9333,187.789,-59.6289],[5205.97,1899.81,42.3,184.117,-58.6472],[5145.04,1997.89,41.6667,180.436,-57.6164]]], + [62,3411.87,[[6543.25,-2001.7,60.7833,274.243,-75.739],[6517.25,-1900.12,60.4,272.774,-75.5436],[6492.19,-1803.55,60.0333,271.351,-75.3533],[6465.79,-1703.22,59.65,269.842,-75.1507],[6439.19,-1603.55,59.2667,268.313,-74.9441],[6411.2,-1500.26,58.8667,266.696,-74.7242],[6384.16,-1401.97,58.4833,265.126,-74.5093],[6355.73,-1300.13,58.0833,263.465,-74.2805],[6328.27,-1203.25,57.7,261.853,-74.0568],[6299.39,-1102.9,57.3,260.148,-73.8185],[6270.28,-1003.34,56.9,258.421,-73.5752],[6239.71,-900.476,56.4833,256.599,-73.3161],[6210.14,-802.544,56.0833,254.826,-73.0619],[6179.08,-701.4,55.6667,252.955,-72.7911],[6147.78,-601.154,55.25,251.06,-72.5141],[6116.23,-501.818,54.8333,249.141,-72.2306],[6084.43,-403.408,54.4167,247.198,-71.9404],[6051.09,-302.056,53.9833,245.152,-71.6312],[6017.48,-201.734,53.55,243.079,-71.3143],[5983.61,-102.457,53.1167,240.981,-70.9892],[5948.14,-0.482982,52.6667,238.776,-70.6428],[5913.72,96.6177,52.2333,236.626,-70.3004],[5876.34,199.967,51.7667,234.283,-69.9215],[5840.01,298.409,51.3167,231.997,-69.5458],[5802.03,399.217,50.85,229.598,-69.1451],[5763.73,498.702,50.3833,227.172,-68.7324],[5725.13,596.846,49.9167,224.719,-68.3075],[5684.83,697.06,49.4333,222.15,-67.8537],[5642.78,799.17,48.9333,219.464,-67.3691],[5600.39,899.672,48.4333,216.749,-66.8682],[5557.65,998.54,47.9333,214.006,-66.3503],[5513.11,1098.96,47.4167,211.144,-65.7964],[5468.21,1197.59,46.9,208.255,-65.2225],[5421.47,1297.49,46.3667,205.245,-64.608],[5372.86,1398.45,45.8167,202.115,-63.9495],[5323.85,1497.29,45.2667,198.959,-63.2644],[5271.41,1599.75,44.6833,195.588,-62.5072],[5218.52,1699.76,44.1,192.193,-61.7164],[5165.18,1797.27,43.5167,188.779,-60.8902],[5108.3,1897.59,42.9,185.153,-59.9757],[5049.38,1997.64,42.2667,181.414,-58.9898]]], + [63,3469.99,[[6377.68,-2003.61,61.2,274.819,-76.2382],[6352.52,-1901.59,60.8167,273.352,-76.05],[6327.16,-1800.2,60.4333,271.864,-75.8582],[6302.72,-1703.82,60.0667,270.421,-75.6713],[6276.97,-1603.69,59.6833,268.892,-75.4723],[6251.02,-1504.23,59.3,267.343,-75.2693],[6223.72,-1401.16,58.9,265.704,-75.0533],[6197.35,-1303.08,58.5167,264.113,-74.8421],[6169.62,-1201.47,58.1167,262.43,-74.6173],[6141.67,-1100.63,57.7167,260.724,-74.3877],[6113.5,-1000.56,57.3167,258.995,-74.1532],[6085.1,-901.28,56.9167,257.244,-73.9136],[6056.48,-802.795,56.5167,255.469,-73.6689],[6026.44,-701.069,56.1,253.596,-73.4082],[5996.15,-600.233,55.6833,251.699,-73.1415],[5965.62,-500.302,55.2667,249.776,-72.8686],[5934.84,-401.289,54.85,247.829,-72.5892],[5903.83,-303.207,54.4333,245.857,-72.3031],[5871.32,-202.205,54,243.78,-71.9982],[5838.55,-102.239,53.5667,241.677,-71.6856],[5805.51,-3.32514,53.1333,239.548,-71.3649],[5770.93,98.2629,52.6833,237.309,-71.023],[5736.07,198.683,52.2333,235.043,-70.6718],[5700.93,297.917,51.7833,232.749,-70.3107],[5664.19,399.555,51.3167,230.341,-69.9256],[5627.15,499.881,50.85,227.905,-69.529],[5589.81,598.875,50.3833,225.44,-69.1206],[5550.82,699.979,49.9,222.858,-68.6845],[5511.51,799.611,49.4167,220.247,-68.2344],[5471.88,897.75,48.9333,217.608,-67.7697],[5430.55,997.679,48.4333,214.848,-67.2729],[5387.49,1099.21,47.9167,211.967,-66.7415],[5344.07,1198.96,47.4,209.057,-66.1908],[5300.3,1296.9,46.8833,206.119,-65.6199],[5253.31,1399.14,46.3333,202.962,-64.9886],[5205.92,1499.28,45.7833,199.777,-64.3318],[5158.13,1597.27,45.2333,196.566,-63.6479],[5107.02,1698.82,44.65,193.135,-62.8913],[5055.47,1797.9,44.0667,189.681,-62.1004],[5000.5,1899.9,43.45,186.006,-61.2249],[4945.05,1999.04,42.8333,182.314,-60.306]]], + [64,3526.69,[[6205.93,-2004.41,61.6,275.364,-76.7332],[6181.62,-1901.97,61.2167,273.897,-76.552],[6157.11,-1800.16,60.8333,272.41,-76.3674],[6133.48,-1703.37,60.4667,270.967,-76.1875],[6108.59,-1602.81,60.0833,269.439,-75.9958],[6083.5,-1502.91,59.7,267.89,-75.8005],[6058.22,-1403.68,59.3167,266.32,-75.6013],[6031.63,-1300.85,58.9167,264.658,-75.3892],[6005.94,-1203.01,58.5333,263.045,-75.1818],[5978.93,-1101.66,58.1333,261.339,-74.961],[5951.7,-1001.07,57.7333,259.609,-74.7354],[5924.26,-901.266,57.3333,257.856,-74.505],[5896.6,-802.254,56.9333,256.08,-74.2696],[5868.72,-704.045,56.5333,254.281,-74.029],[5839.46,-602.611,56.1167,252.381,-73.7727],[5809.96,-502.075,55.7,250.457,-73.5104],[5780.23,-402.449,55.2833,248.507,-73.242],[5750.26,-303.748,54.8667,246.531,-72.9671],[5718.84,-202.094,54.4333,244.451,-72.6741],[5687.18,-101.469,54,242.343,-72.3736],[5655.26,-1.88937,53.5667,240.208,-72.0655],[5623.08,96.6306,53.1333,238.046,-71.7492],[5589.4,197.801,52.6833,235.773,-71.412],[5555.45,297.795,52.2333,233.472,-71.0653],[5521.23,396.595,51.7833,231.143,-70.7089],[5485.45,497.773,51.3167,228.698,-70.3286],[5449.39,597.629,50.85,226.223,-69.9368],[5411.73,699.636,50.3667,223.63,-69.5184],[5375.07,796.74,49.9,221.097,-69.1018],[5335.48,899.245,49.4,218.353,-68.6408],[5296.89,996.804,48.9167,215.67,-68.1804],[5255.31,1099.4,48.4,212.772,-67.671],[5214.73,1197.01,47.9,209.937,-67.1605],[5171.09,1299.26,47.3667,206.882,-66.5959],[5127.09,1399.58,46.8333,203.797,-66.0093],[5082.72,1497.92,46.3,200.683,-65.3996],[5036.58,1597.24,45.75,197.443,-64.7453],[4988.66,1697.31,45.1833,194.077,-64.0423],[4938.9,1797.9,44.6,190.585,-63.2863],[4887.28,1898.75,44,186.968,-62.4722],[4833.76,1999.61,43.3833,183.228,-61.5943]]], + [65,3581.91,[[6028.15,-2004.14,61.9833,275.877,-77.2248],[6004.67,-1901.3,61.6,274.411,-77.0505],[5982.04,-1803.51,61.2333,272.989,-76.8807],[5958.2,-1701.9,60.85,271.482,-76.6999],[5934.17,-1600.94,60.4667,269.954,-76.5156],[5909.95,-1500.62,60.0833,268.405,-76.3277],[5885.54,-1400.96,59.7,266.834,-76.1361],[5860.94,-1301.98,59.3167,265.241,-75.9407],[5836.15,-1203.68,58.9333,263.628,-75.7415],[5810.07,-1101.84,58.5333,261.921,-75.5293],[5783.79,-1000.76,58.1333,260.19,-75.3125],[5757.31,-900.458,57.7333,258.436,-75.0911],[5730.61,-800.942,57.3333,256.659,-74.8649],[5703.71,-702.224,56.9333,254.857,-74.6337],[5675.46,-600.253,56.5167,252.955,-74.3875],[5648.13,-503.2,56.1167,251.105,-74.1456],[5619.44,-402.989,55.7,249.152,-73.8879],[5590.52,-303.696,55.2833,247.174,-73.624],[5560.2,-201.419,54.85,245.089,-73.3427],[5529.64,-100.165,54.4167,242.977,-73.0543],[5500.02,-3.78282,54,240.919,-72.7699],[5467.78,99.2164,53.55,238.669,-72.4548],[5436.49,197.312,53.1167,236.474,-72.1432],[5403.73,298.033,52.6667,234.166,-71.8107],[5370.71,397.569,52.2167,231.829,-71.4688],[5336.19,499.519,51.75,229.375,-71.104],[5302.64,596.584,51.3,226.98,-70.7418],[5266.31,699.458,50.8167,224.376,-70.3409],[5230.95,797.408,50.35,221.832,-69.9416],[5194.03,897.409,49.8667,219.167,-69.5149],[5155.52,999.286,49.3667,216.377,-69.0586],[5116.7,1099.54,48.8667,213.556,-68.5864],[5077.57,1198.15,48.3667,210.703,-68.0976],[5036.79,1298.28,47.85,207.725,-67.5741],[4994.36,1399.75,47.3167,204.618,-67.013],[4951.57,1499.26,46.7833,201.479,-66.4297],[4907.08,1599.8,46.2333,198.212,-65.8036],[4862.22,1698.2,45.6833,194.915,-65.1511],[4815.62,1797.3,45.1167,191.49,-64.4494],[4765.85,1899.67,44.5167,187.834,-63.6718],[4715.66,1999.38,43.9167,184.151,-62.8563]]], + [66,3635.56,[[5844.41,-2002.89,62.35,276.359,-77.7136],[5822.77,-1904.15,61.9833,274.958,-77.5535],[5799.96,-1801.52,61.6,273.473,-77.383],[5777.98,-1703.94,61.2333,272.032,-77.2169],[5754.82,-1602.56,60.85,270.505,-77.04],[5731.48,-1501.81,60.4667,268.956,-76.8597],[5707.95,-1401.73,60.0833,267.385,-76.6758],[5684.24,-1302.31,59.7,265.793,-76.4882],[5660.35,-1203.57,59.3167,264.179,-76.297],[5635.22,-1101.26,58.9167,262.472,-76.0933],[5610.95,-1003.93,58.5333,260.813,-75.894],[5585.43,-903.125,58.1333,259.059,-75.6817],[5559.7,-803.097,57.7333,257.28,-75.4648],[5533.78,-703.86,57.3333,255.477,-75.2431],[5506.56,-601.343,56.9167,253.574,-75.007],[5480.22,-503.759,56.5167,251.722,-74.7751],[5452.58,-402.989,56.1,249.767,-74.5279],[5424.71,-303.131,55.6833,247.785,-74.2748],[5395.49,-200.259,55.25,245.697,-74.0051],[5367.18,-102.302,54.8333,243.662,-73.7393],[5337.5,-1.43643,54.4,241.518,-73.4559],[5307.58,98.3834,53.9667,239.346,-73.165],[5277.43,197.142,53.5333,237.146,-72.8665],[5245.87,298.56,53.0833,234.831,-72.548],[5214.06,398.8,52.6333,232.487,-72.2205],[5181.99,497.844,52.1833,230.113,-71.8836],[5148.47,599.274,51.7167,227.621,-71.5239],[5114.67,699.38,51.25,225.097,-71.1532],[5080.61,798.142,50.7833,222.542,-70.771],[5045.05,898.993,50.3,219.864,-70.3626],[5009.19,998.36,49.8167,217.155,-69.9405],[4971.8,1099.57,49.3167,214.319,-69.489],[4934.11,1199.14,48.8167,211.451,-69.0216],[4896.11,1297.05,48.3167,208.551,-68.5373],[4855.25,1399.63,47.7833,205.424,-68.0013],[4815.34,1497.15,47.2667,202.362,-67.4617],[4772.5,1598.93,46.7167,199.071,-66.8641],[4729.31,1698.57,46.1667,195.746,-66.2412],[4684.44,1798.97,45.6,192.29,-65.5712],[4637.86,1899.9,45.0167,188.7,-64.8498],[4590.89,1998.31,44.4333,185.082,-64.094]]], + [67,3687.61,[[5654.78,-2000.67,62.7,276.811,-78.2002],[5633.94,-1901.59,62.3333,275.41,-78.0466],[5612.95,-1803.06,61.9667,273.99,-77.8902],[5590.83,-1700.67,61.5833,272.484,-77.7237],[5569.51,-1603.32,61.2167,271.023,-77.5614],[5547.05,-1502.18,60.8333,269.475,-77.3885],[5524.41,-1401.68,60.45,267.905,-77.2122],[5501.6,-1301.85,60.0667,266.313,-77.0325],[5478.6,-1202.69,59.6833,264.698,-76.8492],[5455.43,-1104.21,59.3,263.062,-76.6621],[5431.07,-1002.19,58.9,261.33,-76.4629],[5406.51,-900.927,58.5,259.575,-76.2594],[5381.75,-800.442,58.1,257.795,-76.0515],[5356.8,-700.744,57.7,255.99,-75.839],[5331.66,-601.844,57.3,254.161,-75.6218],[5306.32,-503.754,56.9,252.307,-75.3997],[5279.72,-402.452,56.4833,250.349,-75.163],[5252.9,-302.054,56.0667,248.365,-74.9207],[5225.88,-202.575,55.65,246.354,-74.6724],[5197.55,-100.107,55.2167,244.234,-74.4078],[5170.1,-2.54387,54.8,242.168,-74.1469],[5141.32,97.9027,54.3667,239.992,-73.8687],[5112.32,197.295,53.9333,237.787,-73.583],[5081.96,299.379,53.4833,235.466,-73.2783],[5052.49,396.575,53.05,233.203,-72.9767],[5021.65,496.344,52.6,230.823,-72.6547],[4989.41,598.534,52.1333,228.322,-72.3109],[4956.91,699.409,51.6667,225.79,-71.9566],[4924.15,798.949,51.2,223.225,-71.5912],[4891.13,897.134,50.7333,220.63,-71.2144],[4856.65,997.375,50.25,217.909,-70.8114],[4820.7,1099.5,49.75,215.059,-70.3803],[4784.45,1200,49.25,212.176,-69.9338],[4747.91,1298.84,48.75,209.26,-69.4713],[4709.84,1399.22,48.2333,206.212,-68.9756],[4671.47,1497.79,47.7167,203.131,-68.4607],[4631.54,1597.61,47.1833,199.916,-67.9081],[4590.02,1698.46,46.6333,196.567,-67.3143],[4548.16,1797.16,46.0833,193.185,-66.6948],[4503.39,1899.46,45.5,189.563,-66.0078],[4458.24,1999.27,44.9167,185.909,-65.2878]]], + [68,3737.98,[[5460.27,-2002.06,63.05,277.294,-78.6918],[5440.26,-1902.62,62.6833,275.895,-78.5448],[5420.1,-1803.74,62.3167,274.476,-78.3952],[5398.85,-1700.97,61.9333,272.971,-78.2358],[5378.37,-1603.26,61.5667,271.511,-78.0804],[5356.8,-1501.74,61.1833,269.963,-77.9149],[5335.05,-1400.85,60.8,268.393,-77.7462],[5313.13,-1300.63,60.4167,266.8,-77.5742],[5291.04,-1201.07,60.0333,265.186,-77.3987],[5268.78,-1102.19,59.65,263.548,-77.2197],[5246.35,-1004,59.2667,261.889,-77.037],[5222.76,-902.278,58.8667,260.133,-76.8424],[5198.99,-801.327,58.4667,258.352,-76.6436],[5175.03,-701.158,58.0667,256.546,-76.4404],[5150.88,-601.781,57.6667,254.715,-76.2327],[5126.54,-503.21,57.2667,252.86,-76.0203],[5100.99,-401.4,56.85,250.9,-75.794],[5075.24,-300.489,56.4333,248.913,-75.5622],[5049.29,-200.491,56.0167,246.898,-75.3249],[5023.13,-101.42,55.6,244.857,-75.0817],[4996.76,-3.28875,55.1833,242.788,-74.8324],[4969.13,97.7559,54.75,240.607,-74.5666],[4941.28,197.753,54.3167,238.397,-74.2937],[4913.21,296.688,53.8833,236.158,-74.0135],[4883.82,398.287,53.4333,233.802,-73.7144],[4854.21,498.705,52.9833,231.415,-73.4068],[4824.36,597.925,52.5333,228.996,-73.0902],[4793.15,699.536,52.0667,226.455,-72.752],[4761.7,799.82,51.6,223.882,-72.4033],[4729.99,898.756,51.1333,221.276,-72.0436],[4696.89,999.786,50.65,218.543,-71.6589],[4663.52,1099.33,50.1667,215.776,-71.2613],[4629.89,1197.36,49.6833,212.976,-70.85],[4594.82,1297.16,49.1833,210.046,-70.4094],[4558.29,1398.53,48.6667,206.981,-69.9371],[4521.46,1498.11,48.15,203.882,-69.4467],[4483.13,1598.97,47.6167,200.646,-68.9201],[4444.49,1697.86,47.0833,197.376,-68.3718],[4404.32,1797.73,46.5333,193.968,-67.7821],[4362.59,1898.36,45.9667,190.421,-67.1472],[4319.28,1999.52,45.3833,186.735,-66.4626]]], + [69,3786.61,[[5260.02,-2002.63,63.3833,277.748,-79.1822],[5240.83,-1902.86,63.0167,276.349,-79.0417],[5221.5,-1803.65,62.65,274.931,-78.8987],[5201.13,-1700.52,62.2667,273.427,-78.7463],[5181.5,-1602.47,61.9,271.967,-78.5979],[5160.81,-1500.58,61.5167,270.42,-78.4398],[5140.87,-1403.72,61.15,268.918,-78.2856],[5119.86,-1303.09,60.7667,267.327,-78.1214],[5098.69,-1203.13,60.3833,265.712,-77.9539],[5077.35,-1103.84,60,264.075,-77.7829],[5054.91,-1000.96,59.6,262.343,-77.6009],[5033.24,-903.072,59.2167,260.659,-77.4228],[5010.45,-801.679,58.8167,258.877,-77.2329],[4987.48,-701.062,58.4167,257.071,-77.039],[4964.33,-601.233,58.0167,255.239,-76.8407],[4941,-502.204,57.6167,253.381,-76.6379],[4917.49,-403.986,57.2167,251.498,-76.4306],[4892.81,-302.551,56.8,249.509,-76.2095],[4867.94,-202.023,56.3833,247.493,-75.9831],[4842.87,-102.416,55.9667,245.449,-75.7512],[4817.6,-3.74245,55.55,243.377,-75.5135],[4791.12,97.8723,55.1167,241.192,-75.2599],[4764.42,198.446,54.6833,238.978,-74.9996],[4737.52,297.964,54.25,236.734,-74.7323],[4710.4,396.41,53.8167,234.459,-74.4578],[4682.02,497.491,53.3667,232.066,-74.1647],[4653.42,597.382,52.9167,229.641,-73.863],[4623.52,699.696,52.45,227.093,-73.5408],[4594.46,797.107,52,224.604,-73.2205],[4564.08,896.81,51.5333,221.99,-72.8781],[4532.37,998.643,51.05,219.247,-72.512],[4500.4,1099,50.5667,216.469,-72.1334],[4468.18,1197.85,50.0833,213.657,-71.7419],[4434.58,1298.51,49.5833,210.712,-71.3224],[4400.71,1397.51,49.0833,207.731,-70.8876],[4365.43,1498.05,48.5667,204.615,-70.4211],[4328.71,1599.92,48.0333,201.36,-69.9203],[4291.7,1699.83,47.5,198.068,-69.3987],[4254.38,1797.74,46.9667,194.739,-68.8551],[4214.42,1899.54,46.4,191.166,-68.2517],[4174.12,1999.03,45.8333,187.555,-67.6201]]], + [70,3833.45,[[5054.11,-2002.43,63.7,278.172,-79.6717],[5035.75,-1902.34,63.3333,276.774,-79.5377],[5017.25,-1802.81,62.9667,275.357,-79.4013],[4998.61,-1703.84,62.6,273.919,-79.2624],[4978.98,-1600.97,62.2167,272.394,-79.1144],[4960.05,-1503.17,61.85,270.914,-78.9702],[4940.1,-1401.54,61.4667,269.345,-78.8166],[4920,-1300.57,61.0833,267.753,-78.66],[4899.75,-1200.25,60.7,266.138,-78.5002],[4879.33,-1100.6,60.3167,264.5,-78.3372],[4858.76,-1001.63,59.9333,262.839,-78.1708],[4838.03,-903.342,59.55,261.154,-78.0011],[4816.23,-801.529,59.15,259.372,-77.8202],[4794.26,-700.487,58.75,257.564,-77.6354],[4772.12,-600.228,58.35,255.73,-77.4464],[4749.8,-500.764,57.95,253.871,-77.2532],[4727.31,-402.107,57.55,251.986,-77.0556],[4703.7,-300.21,57.1333,249.994,-76.845],[4680.86,-203.236,56.7333,248.056,-76.638],[4656.89,-103.118,56.3167,246.01,-76.4172],[4632.72,-3.92928,55.9,243.935,-76.1909],[4607.39,98.228,55.4667,241.747,-75.9495],[4581.86,199.351,55.0333,239.528,-75.7017],[4556.13,299.424,54.6,237.279,-75.4473],[4530.2,398.431,54.1667,234.999,-75.1859],[4504.07,496.356,53.7333,232.689,-74.9173],[4476.72,596.886,53.2833,230.258,-74.6304],[4448.12,699.871,52.8167,227.703,-74.3239],[4420.33,797.936,52.3667,225.206,-74.0193],[4391.29,898.326,51.9,222.583,-73.6937],[4362.01,997.365,51.4333,219.925,-73.3576],[4331.45,1098.5,50.95,217.137,-72.9979],[4300.65,1198.13,50.4667,214.314,-72.6259],[4268.52,1299.61,49.9667,211.355,-72.2273],[4236.14,1399.45,49.4667,208.36,-71.8141],[4203.5,1497.61,48.9667,205.329,-71.3853],[4169.51,1597.27,48.45,202.159,-70.9251],[4134.13,1698.22,47.9167,198.848,-70.4305],[4098.47,1797.18,47.3833,195.499,-69.915],[4061.4,1897.12,46.8333,192.006,-69.36],[4022.9,1997.81,46.2667,188.369,-68.7617]]], + [71,3878.45,[[4842.65,-2001.45,64,278.566,-80.161],[4825.13,-1901.07,63.6333,277.169,-80.0334],[4807.47,-1801.24,63.2667,275.752,-79.9036],[4789.68,-1701.96,62.9,274.314,-79.7714],[4771.76,-1603.25,62.5333,272.856,-79.6368],[4752.87,-1500.66,62.15,271.309,-79.4934],[4734.67,-1403.13,61.7833,269.808,-79.3536],[4715.49,-1301.79,61.4,268.217,-79.2046],[4696.16,-1201.11,61.0167,266.602,-79.0527],[4676.68,-1101.09,60.6333,264.964,-78.8977],[4657.05,-1001.75,60.25,263.303,-78.7395],[4637.27,-903.086,59.8667,261.618,-78.5781],[4616.46,-800.875,59.4667,259.835,-78.4061],[4596.37,-703.642,59.0833,258.102,-78.2378],[4575.25,-602.944,58.6833,256.268,-78.0583],[4553.96,-503.036,58.2833,254.408,-77.8747],[4532.51,-403.929,57.8833,252.521,-77.687],[4509.98,-301.558,57.4667,250.529,-77.487],[4487.28,-200.083,57.05,248.507,-77.282],[4465.32,-103.523,56.65,246.539,-77.0805],[4442.26,-3.8436,56.2333,244.462,-76.8655],[4418.1,98.8289,55.8,242.27,-76.6362],[4394.68,196.583,55.3833,240.134,-76.41],[4370.14,297.223,54.95,237.881,-76.1685],[4345.4,396.804,54.5167,235.597,-75.9205],[4319.51,499.076,54.0667,233.193,-75.6556],[4294.38,596.449,53.6333,230.846,-75.3933],[4268.09,696.394,53.1833,228.376,-75.113],[4240.6,798.761,52.7167,225.78,-74.8134],[4212.89,899.804,52.25,223.149,-74.5043],[4184.97,999.504,51.7833,220.482,-74.1853],[4156.82,1097.84,51.3167,217.78,-73.8559],[4127.44,1198.23,50.8333,214.946,-73.5031],[4097.83,1297.11,50.35,212.075,-73.138],[4066.95,1397.8,49.85,209.068,-72.7467],[4035.83,1496.82,49.35,206.022,-72.3406],[4003.41,1597.37,48.8333,202.836,-71.9046],[3969.67,1699.25,48.3,199.507,-71.4361],[3935.67,1799.16,47.7667,196.137,-70.9478],[3901.39,1897.06,47.2333,192.729,-70.4381],[3864.68,1998.85,46.6667,189.066,-69.8719]]], + [72,3921.54,[[4626.54,-2004.39,64.3,278.994,-80.6561],[4609.87,-1903.71,63.9333,277.599,-80.5352],[4593.07,-1803.57,63.5667,276.183,-80.412],[4576.14,-1703.98,63.2,274.746,-80.2866],[4558.3,-1600.46,62.8167,273.222,-80.153],[4541.11,-1502.03,62.45,271.743,-80.0229],[4523.78,-1404.18,62.0833,270.243,-79.8902],[4505.53,-1302.5,61.7,268.651,-79.7489],[4487.14,-1201.47,61.3167,267.037,-79.6048],[4468.6,-1101.11,60.9333,265.399,-79.4577],[4449.91,-1001.41,60.55,263.737,-79.3077],[4431.09,-902.391,60.1667,262.052,-79.1546],[4412.12,-804.064,59.7833,260.342,-78.9983],[4392.17,-702.208,59.3833,258.533,-78.8317],[4372.06,-601.125,58.9833,256.698,-78.6615],[4351.8,-500.828,58.5833,254.836,-78.4874],[4331.38,-401.329,58.1833,252.947,-78.3093],[4310.81,-302.638,57.7833,251.032,-78.1272],[4289.2,-200.709,57.3667,249.009,-77.933],[4268.31,-103.708,56.9667,247.039,-77.742],[4246.37,-3.56444,56.55,244.959,-77.5383],[4223.38,99.5965,56.1167,242.764,-77.321],[4201.09,197.825,55.7,240.623,-77.1066],[4177.74,298.965,55.2667,238.367,-76.8778],[4154.2,399.051,54.8333,236.078,-76.6427],[4130.48,498.067,54.4,233.758,-76.4011],[4105.65,599.742,53.95,231.315,-76.143],[4081.56,696.529,53.5167,228.93,-75.8873],[4055.41,799.51,53.05,226.327,-75.6037],[4029.99,897.567,52.6,223.782,-75.3216],[4003.43,997.943,52.1333,221.108,-75.0199],[3976.65,1096.96,51.6667,218.398,-74.7084],[3948.71,1198.07,51.1833,215.554,-74.3747],[3920.54,1297.68,50.7,212.672,-74.0294],[3891.17,1399.12,50.2,209.652,-73.6592],[3861.56,1498.9,49.7,206.593,-73.275],[3831.72,1597.02,49.2,203.495,-72.8762],[3799.64,1699.79,48.6667,200.148,-72.4335],[3768.31,1797.48,48.15,196.866,-71.9866],[3734.7,1899.42,47.6,193.331,-71.4903],[3700.81,1999.2,47.05,189.753,-70.9711]]], + [73,3962.66,[[4404.33,-2002.12,64.5667,279.33,-81.1465],[4388.51,-1901.18,64.2,277.935,-81.0319],[4372.57,-1800.77,63.8333,276.519,-80.9154],[4356.5,-1700.92,63.4667,275.083,-80.7966],[4340.31,-1601.62,63.1,273.625,-80.6757],[4323.99,-1502.89,62.7333,272.147,-80.5526],[4306.81,-1400.28,62.35,270.578,-80.4213],[4290.24,-1302.73,61.9833,269.056,-80.2934],[4272.78,-1201.38,61.6,267.441,-80.1571],[4255.19,-1100.69,61.2167,265.803,-80.018],[4237.47,-1000.66,60.8333,264.141,-79.876],[4219.6,-901.305,60.45,262.455,-79.7312],[4201.6,-802.638,60.0667,260.745,-79.5834],[4182.67,-700.424,59.6667,258.934,-79.4258],[4164.39,-603.192,59.2833,257.174,-79.2715],[4145.17,-502.496,58.8833,255.312,-79.107],[4125.8,-402.593,58.4833,253.422,-78.9387],[4106.28,-303.495,58.0833,251.506,-78.7666],[4085.79,-201.136,57.6667,249.481,-78.583],[4065.96,-103.718,57.2667,247.509,-78.4026],[4045.15,-3.13512,56.85,245.425,-78.2101],[4024.18,96.5211,56.4333,243.313,-78.0127],[4002.2,199.166,56,241.084,-77.802],[3980.9,296.889,55.5833,238.91,-77.5942],[3958.57,397.493,55.15,236.618,-77.3722],[3936.07,497.033,54.7167,234.294,-77.1441],[3912.52,599.259,54.2667,231.846,-76.9005],[3889.67,696.581,53.8333,229.456,-76.6591],[3865.75,796.47,53.3833,226.94,-76.401],[3840.76,898.771,52.9167,224.295,-76.125],[3815.56,999.744,52.45,221.612,-75.8401],[3790.17,1099.37,51.9833,218.893,-75.5459],[3764.57,1197.62,51.5167,216.138,-75.2419],[3737.86,1297.92,51.0333,213.246,-74.9161],[3710.94,1396.7,50.55,210.316,-74.5788],[3682.87,1497.27,50.05,207.245,-74.2168],[3653.63,1599.45,49.5333,204.029,-73.8282],[3624.16,1699.81,49.0167,200.772,-73.4239],[3594.45,1798.34,48.5,197.473,-73.0028],[3563.55,1898.09,47.9667,194.026,-72.5495],[3531.42,1998.85,47.4167,190.427,-72.0608]]], + [74,4001.76,[[4177.64,-2003.88,64.8333,279.702,-81.6433],[4162.68,-1902.66,64.4667,278.308,-81.5353],[4147.61,-1801.99,64.1,276.893,-81.4253],[4132.41,-1701.86,63.7333,275.457,-81.3133],[4117.1,-1602.28,63.3667,274,-81.1993],[4101.68,-1503.27,63,272.522,-81.0831],[4085.42,-1400.36,62.6167,270.954,-80.9594],[4069.76,-1302.53,62.25,269.432,-80.8388],[4053.25,-1200.87,61.8667,267.817,-80.7102],[4037.35,-1104.25,61.5,266.25,-80.5848],[4020.59,-1003.88,61.1167,264.589,-80.4511],[4003.71,-904.179,60.7333,262.903,-80.3146],[3985.95,-800.875,60.3333,261.117,-80.1693],[3968.79,-702.582,59.95,259.382,-80.0269],[3950.76,-600.766,59.55,257.544,-79.8752],[3933.34,-503.921,59.1667,255.758,-79.7266],[3915.02,-403.638,58.7667,253.868,-79.568],[3895.8,-300.027,58.35,251.869,-79.399],[3877.2,-201.391,57.95,249.923,-79.2329],[3858.46,-103.579,57.55,247.949,-79.0629],[3838.78,-2.58149,57.1333,245.863,-78.8815],[3818.95,97.4938,56.7167,243.747,-78.6956],[3798.97,196.633,56.3,241.601,-78.5049],[3778.02,298.731,55.8667,239.337,-78.3013],[3756.91,399.785,55.4333,237.041,-78.0922],[3735.64,499.781,55,234.711,-77.8773],[3714.2,598.702,54.5667,232.349,-77.6564],[3692.59,696.532,54.1333,229.954,-77.4291],[3669.99,796.953,53.6833,227.433,-77.1862],[3646.36,899.813,53.2167,224.78,-76.9264],[3623.39,997.747,52.7667,222.187,-76.668],[3599.39,1097.99,52.3,219.461,-76.3914],[3575.21,1196.87,51.8333,216.698,-76.1056],[3549.96,1297.82,51.35,213.796,-75.7993],[3524.51,1397.27,50.8667,210.856,-75.4821],[3497.98,1498.53,50.3667,207.773,-75.1417],[3471.24,1598.14,49.8667,204.648,-74.7883],[3443.39,1699.29,49.35,201.377,-74.4085],[3415.32,1798.62,48.8333,198.063,-74.013],[3386.11,1899.21,48.3,194.598,-73.5871],[3356.68,1997.79,47.7667,191.09,-73.1423]]], + [75,4038.82,[[3945.23,-2000.48,65.0667,279.983,-82.1369],[3931.77,-1903.63,64.7167,278.652,-82.04],[3917.57,-1802.7,64.35,277.238,-81.9366],[3903.26,-1702.31,63.9833,275.803,-81.8314],[3888.84,-1602.48,63.6167,274.346,-81.7243],[3874.31,-1503.2,63.25,272.868,-81.6152],[3859,-1400.02,62.8667,271.3,-81.4989],[3844.24,-1301.91,62.5,269.778,-81.3856],[3829.37,-1204.39,62.1333,268.234,-81.2701],[3813.7,-1103.07,61.75,266.596,-81.147],[3797.92,-1002.41,61.3667,264.934,-81.0213],[3782.01,-902.413,60.9833,263.247,-80.8931],[3765.98,-803.1,60.6,261.536,-80.7622],[3749.12,-700.204,60.2,259.724,-80.6227],[3732.84,-602.31,59.8167,257.962,-80.4862],[3715.72,-500.917,59.4167,256.097,-80.3405],[3698.47,-400.308,59.0167,254.204,-80.1916],[3681.08,-300.497,58.6167,252.284,-80.0392],[3663.56,-201.494,58.2167,250.336,-79.8833],[3645.91,-103.312,57.8167,248.36,-79.7237],[3627.38,-1.92478,57.4,246.271,-79.5535],[3608.71,98.5447,56.9833,244.153,-79.3789],[3589.89,198.083,56.5667,242.004,-79.1999],[3570.92,296.675,56.15,239.824,-79.0163],[3551.05,398.194,55.7167,237.524,-78.8202],[3531.02,498.659,55.2833,235.191,-78.6187],[3510.83,598.054,54.85,232.825,-78.4115],[3490.49,696.363,54.4167,230.425,-78.1984],[3469.2,797.288,53.9667,227.898,-77.9705],[3447.75,897.006,53.5167,225.335,-77.7358],[3425.32,999.125,53.05,222.64,-77.4846],[3402.72,1099.91,52.5833,219.906,-77.2251],[3379.95,1199.33,52.1167,217.134,-76.957],[3356.99,1297.38,51.65,214.323,-76.6799],[3333.04,1397.45,51.1667,211.373,-76.3827],[3308.06,1499.38,50.6667,208.279,-76.0638],[3282.88,1599.65,50.1667,205.142,-75.7327],[3257.51,1698.24,49.6667,201.964,-75.3885],[3231.08,1798.33,49.15,198.636,-75.0183],[3203.59,1899.71,48.6167,195.155,-74.6198],[3175.88,1999.09,48.0833,191.628,-74.2033]]], + [76,4073.74,[[3708.54,-2001.22,65.3,280.299,-82.6373],[3695.93,-1904.15,64.95,278.969,-82.5466],[3682.61,-1802.98,64.5833,277.555,-82.4499],[3669.19,-1702.35,64.2167,276.121,-82.3515],[3655.66,-1602.27,63.85,274.664,-82.2513],[3642.03,-1502.75,63.4833,273.187,-82.1491],[3628.3,-1403.79,63.1167,271.687,-82.0452],[3613.83,-1300.95,62.7333,270.096,-81.9343],[3599.89,-1203.17,62.3667,268.552,-81.8263],[3585.2,-1101.58,61.9833,266.914,-81.7111],[3570.39,-1000.65,61.6,265.251,-81.5936],[3555.47,-900.381,61.2167,263.563,-81.4736],[3540.44,-800.79,60.8333,261.851,-81.3511],[3525.29,-701.885,60.45,260.113,-81.2261],[3510.03,-603.677,60.0667,258.351,-81.0985],[3493.97,-501.951,59.6667,256.485,-80.9623],[3477.8,-401.007,59.2667,254.591,-80.8231],[3461.5,-300.856,58.8667,252.669,-80.6806],[3445.07,-201.51,58.4667,250.72,-80.5349],[3428.52,-102.981,58.0667,248.742,-80.3857],[3411.14,-1.22861,57.65,246.651,-80.2266],[3393.63,99.6105,57.2333,244.53,-80.0634],[3375.99,199.522,56.8167,242.378,-79.8961],[3358.2,298.492,56.4,240.194,-79.7244],[3340.29,396.507,55.9833,237.98,-79.5482],[3321.51,497.414,55.55,235.644,-79.36],[3302.58,597.256,55.1167,233.274,-79.1666],[3282.78,699.794,54.6667,230.777,-78.9598],[3263.56,797.417,54.2333,228.338,-78.7548],[3243.45,897.615,53.7833,225.769,-78.5355],[3223.18,996.594,53.3333,223.164,-78.3095],[3202,1097.93,52.8667,220.424,-78.0675],[3180.65,1197.92,52.4,217.645,-77.8174],[3159.13,1296.54,51.9333,214.828,-77.5588],[3136.68,1397.21,51.45,211.869,-77.2815],[3113.27,1499.75,50.95,208.764,-76.9841],[3090.46,1597.32,50.4667,205.722,-76.6856],[3065.88,1699.88,49.95,202.425,-76.354],[3041.92,1797.41,49.45,199.191,-76.0199],[3016.15,1899.55,48.9167,195.696,-75.6484],[2990.18,1999.69,48.3833,192.153,-75.2603]]], + [77,4106.49,[[3467.09,-2001.53,65.5167,280.588,-83.1401],[3455.32,-1904.25,65.1667,279.259,-83.0556],[3442.89,-1802.86,64.8,277.846,-82.9656],[3430.37,-1702.01,64.4333,276.411,-82.874],[3417.75,-1601.71,64.0667,274.955,-82.7806],[3405.03,-1501.95,63.7,273.478,-82.6856],[3392.22,-1402.77,63.3333,271.978,-82.5888],[3379.31,-1304.15,62.9667,270.457,-82.4901],[3365.71,-1201.67,62.5833,268.842,-82.385],[3352.6,-1104.24,62.2167,267.275,-82.2824],[3338.79,-1003.03,61.8333,265.612,-82.1731],[3324.87,-902.478,61.45,263.925,-82.0615],[3310.85,-802.6,61.0667,262.212,-81.9475],[3296.72,-703.404,60.6833,260.474,-81.8313],[3281.86,-600.635,60.2833,258.634,-81.7073],[3267.51,-502.867,59.9,256.845,-81.5859],[3252.42,-401.61,59.5,254.95,-81.4564],[3237.21,-301.142,59.1,253.027,-81.3239],[3221.89,-201.475,58.7,251.076,-81.1883],[3206.44,-102.622,58.3,249.096,-81.0496],[3190.24,-0.528072,57.8833,247.003,-80.9015],[3174.56,96.6264,57.4833,244.965,-80.7559],[3158.1,196.924,57.0667,242.811,-80.6003],[3141.52,296.285,56.65,240.626,-80.4408],[3124.13,398.611,56.2167,238.319,-80.2705],[3106.62,499.892,55.7833,235.979,-80.0954],[3089.64,596.278,55.3667,233.696,-79.9224],[3071.17,699.257,54.9167,231.195,-79.7303],[3053.24,797.309,54.4833,228.752,-79.5398],[3034.48,897.958,54.0333,226.178,-79.336],[3015.58,997.392,53.5833,223.567,-79.1259],[2995.82,1099.21,53.1167,220.82,-78.901],[2975.91,1199.68,52.65,218.034,-78.6685],[2955.85,1298.78,52.1833,215.208,-78.4282],[2934.9,1399.96,51.7,212.239,-78.1705],[2913.79,1499.63,51.2167,209.229,-77.9034],[2892.52,1597.77,50.7333,206.177,-77.6263],[2870.35,1697.66,50.2333,202.976,-77.3285],[2847.26,1799.1,49.7167,199.622,-77.0082],[2823.98,1898.7,49.2,196.222,-76.6743],[2799.77,1999.57,48.6667,192.664,-76.3143]]], + [78,4137.04,[[3221.04,-2001.44,65.7167,280.851,-83.6457],[3210.12,-1903.97,65.3667,279.522,-83.5675],[3198.59,-1802.38,65,278.109,-83.4841],[3186.98,-1701.32,64.6333,276.675,-83.3993],[3175.27,-1600.8,64.2667,275.219,-83.3129],[3163.48,-1500.84,63.9,273.741,-83.2249],[3151.59,-1401.44,63.5333,272.242,-83.1353],[3139.62,-1302.61,63.1667,270.72,-83.044],[3127.56,-1204.35,62.8,269.175,-82.9509],[3114.85,-1102.25,62.4167,267.537,-82.8516],[3102.04,-1000.81,62.0333,265.873,-82.7505],[3089.13,-900.02,61.65,264.185,-82.6471],[3076.69,-804.243,61.2833,262.546,-82.5464],[3063.01,-700.469,60.8833,260.732,-82.434],[3049.8,-601.724,60.5,258.967,-82.3241],[3036.5,-503.679,60.1167,257.177,-82.2118],[3022.5,-402.13,59.7167,255.281,-82.092],[3008.4,-301.367,59.3167,253.357,-81.9695],[2994.19,-201.403,58.9167,251.404,-81.8441],[2979.88,-102.248,58.5167,249.423,-81.7157],[2965.45,-3.91641,58.1167,247.412,-81.5843],[2950.3,97.6251,57.7,245.287,-81.4441],[2935.04,198.247,57.2833,243.131,-81.3003],[2919.66,297.936,56.8667,240.942,-81.1527],[2904.17,396.676,56.45,238.722,-81.0013],[2887.93,498.346,56.0167,236.378,-80.8395],[2871.56,598.96,55.5833,234,-80.6732],[2855.06,698.502,55.15,231.588,-80.5022],[2838.44,796.955,54.7167,229.14,-80.3261],[2821.05,898.025,54.2667,226.562,-80.1378],[2803.52,997.885,53.8167,223.945,-79.9437],[2785.86,1096.52,53.3667,221.291,-79.7434],[2767.41,1197.49,52.9,218.5,-79.5289],[2748.8,1297.1,52.4333,215.667,-79.3071],[2729.39,1398.81,51.95,212.692,-79.0692],[2709.82,1499.01,51.4667,209.673,-78.8226],[2690.11,1597.69,50.9833,206.612,-78.5668],[2669.55,1698.14,50.4833,203.401,-78.2919],[2648.84,1796.91,49.9833,200.144,-78.006],[2627.27,1897.17,49.4667,196.733,-77.6981],[2604.82,1998.72,48.9333,193.161,-77.3663]]], + [79,4165.31,[[2970.58,-2001.03,65.9,281.088,-84.1543],[2960.53,-1903.38,65.55,279.759,-84.0825],[2949.91,-1801.6,65.1833,278.347,-84.0058],[2939.21,-1700.36,64.8167,276.913,-83.9278],[2928.93,-1604.22,64.4667,275.523,-83.8521],[2918.07,-1504.04,64.1,274.046,-83.7712],[2907.12,-1404.41,63.7333,272.547,-83.6889],[2895.6,-1300.87,63.35,270.956,-83.6011],[2884.48,-1202.41,62.9833,269.411,-83.5155],[2872.78,-1100.1,62.6,267.772,-83.4243],[2861.49,-1002.85,62.2333,266.181,-83.3354],[2849.61,-901.822,61.85,264.492,-83.2404],[2837.63,-801.458,61.4667,262.778,-83.1436],[2825.56,-701.773,61.0833,261.039,-83.0447],[2813.4,-602.775,60.7,259.273,-82.9437],[2800.61,-500.217,60.3,257.404,-82.836],[2788.26,-402.657,59.9167,255.586,-82.7305],[2775.28,-301.622,59.5167,253.66,-82.6179],[2762.19,-201.381,59.1167,251.706,-82.5027],[2749.01,-101.948,58.7167,249.723,-82.3848],[2735.72,-3.33479,58.3167,247.711,-82.2641],[2721.78,98.5033,57.9,245.583,-82.1353],[2707.72,199.425,57.4833,243.424,-82.0032],[2693.56,299.417,57.0667,241.233,-81.8676],[2679.29,398.464,56.65,239.009,-81.7285],[2664.91,496.553,56.2333,236.753,-81.5857],[2649.84,597.533,55.8,234.372,-81.4331],[2634.66,697.444,55.3667,231.956,-81.2761],[2619.36,796.272,54.9333,229.505,-81.1146],[2603.34,897.735,54.4833,226.922,-80.9417],[2587.21,997.993,54.0333,224.301,-80.7636],[2570.95,1097.03,53.5833,221.641,-80.5798],[2553.95,1198.42,53.1167,218.843,-80.3829],[2536.83,1298.45,52.65,216.004,-80.1793],[2519.57,1397.11,52.1833,213.124,-79.9686],[2501.56,1497.82,51.7,210.098,-79.7425],[2483.41,1597,51.2167,207.029,-79.508],[2464.49,1697.98,50.7167,203.809,-79.256],[2445.42,1797.29,50.2167,200.542,-78.9939],[2425.57,1898.11,49.7,197.118,-78.7116],[2405.56,1997.09,49.1833,193.647,-78.417]]], + [80,4191.31,[[2715.93,-2000.28,66.0667,281.3,-84.6665],[2706.75,-1902.47,65.7167,279.971,-84.6009],[2697.06,-1800.52,65.35,278.559,-84.5311],[2687.73,-1703.7,65,277.19,-84.4632],[2677.89,-1602.8,64.6333,275.735,-84.3908],[2667.97,-1502.44,64.2667,274.258,-84.3171],[2657.98,-1402.64,63.9,272.758,-84.242],[2647.91,-1303.41,63.5333,271.236,-84.1654],[2637.3,-1200.27,63.15,269.621,-84.0839],[2627.07,-1102.22,62.7833,268.053,-84.0044],[2616.3,-1000.34,62.4,266.389,-83.9196],[2605.92,-903.497,62.0333,264.773,-83.8368],[2594.98,-802.907,61.65,263.059,-83.7486],[2583.96,-702.991,61.2667,261.319,-83.6585],[2572.85,-603.761,60.8833,259.553,-83.5665],[2561.18,-500.958,60.4833,257.683,-83.4684],[2549.9,-403.16,60.1,255.864,-83.3722],[2538.04,-301.875,59.7,253.938,-83.2696],[2526.09,-201.381,59.3,251.982,-83.1647],[2514.05,-101.692,58.9,249.997,-83.0573],[2501.92,-2.81977,58.5,247.983,-82.9473],[2489.19,99.2908,58.0833,245.854,-82.8299],[2476.87,196.458,57.6833,243.779,-82.7144],[2463.94,296.765,57.2667,241.586,-82.591],[2450.91,396.132,56.85,239.361,-82.4644],[2437.26,498.46,56.4167,237.012,-82.3291],[2423.5,599.739,55.9833,234.627,-82.19],[2409.63,699.952,55.55,232.207,-82.047],[2395.66,799.085,55.1167,229.751,-81.8998],[2381.58,897.12,54.6833,227.259,-81.7482],[2366.85,997.746,54.2333,224.633,-81.5861],[2352,1097.15,53.7833,221.969,-81.4188],[2336.49,1198.93,53.3167,219.165,-81.2395],[2320.85,1299.36,52.85,216.32,-81.0542],[2305.1,1398.42,52.3833,213.433,-80.8624],[2288.65,1499.54,51.9,210.4,-80.6566],[2272.08,1599.15,51.4167,207.322,-80.4431],[2255.38,1697.22,50.9333,204.2,-80.2214],[2237.98,1797.02,50.4333,200.924,-79.983],[2219.85,1898.37,49.9167,197.49,-79.7263],[2201.59,1997.87,49.4,194.007,-79.4584]]], + [81,4214.95,[[2457.71,-2003.94,66.2333,281.549,-85.1852],[2449.02,-1901.32,65.8667,280.158,-85.1232],[2440.65,-1803.85,65.5167,278.81,-85.063],[2431.82,-1702.25,65.15,277.376,-84.9989],[2422.92,-1601.19,64.7833,275.921,-84.9335],[2413.95,-1500.68,64.4167,274.443,-84.8669],[2404.92,-1400.72,64.05,272.944,-84.7991],[2395.81,-1301.32,63.6833,271.421,-84.73],[2386.64,-1202.49,63.3167,269.876,-84.6597],[2377.4,-1104.25,62.95,268.308,-84.5879],[2367.66,-1002.16,62.5667,266.644,-84.5114],[2357.85,-900.731,62.1833,264.954,-84.4333],[2348.39,-804.33,61.8167,263.314,-84.3572],[2338.43,-704.206,61.4333,261.574,-84.2758],[2327.95,-600.456,61.0333,259.73,-84.1891],[2317.84,-501.738,60.65,257.936,-84.1042],[2307.64,-403.724,60.2667,256.116,-84.0175],[2296.93,-302.21,59.8667,254.189,-83.925],[2286.13,-201.486,59.4667,252.232,-83.8304],[2275.24,-101.563,59.0667,250.246,-83.7335],[2264.28,-2.45501,58.6667,248.23,-83.6343],[2252.77,99.9039,58.25,246.099,-83.5283],[2241.63,197.312,57.85,244.022,-83.4242],[2229.94,297.873,57.4333,241.827,-83.3128],[2218.17,397.496,57.0167,239.598,-83.1986],[2206.3,496.167,56.6,237.337,-83.0813],[2193.87,597.759,56.1667,234.95,-82.956],[2181.34,698.289,55.7333,232.528,-82.8271],[2168.71,797.742,55.3,230.069,-82.6944],[2155.49,899.861,54.85,227.477,-82.5525],[2142.67,997.066,54.4167,224.944,-82.4117],[2129.25,1096.82,53.9667,222.276,-82.2609],[2115.23,1198.96,53.5,219.467,-82.0994],[2101.1,1299.75,53.0333,216.616,-81.9323],[2086.86,1399.17,52.5667,213.723,-81.7595],[2072.51,1497.21,52.1,210.788,-81.5805],[2057.54,1597.26,51.6167,207.704,-81.3883],[2041.93,1699.14,51.1167,204.466,-81.1817],[2026.2,1799.35,50.6167,201.181,-80.9668],[2010.35,1897.87,50.1167,197.848,-80.743],[1993.84,1997.87,49.6,194.355,-80.5017]]], + [82,4236.22,[[2195.32,-2002.7,66.3667,281.711,-85.7048],[2187.91,-1904.6,66.0167,280.384,-85.6521],[2180.09,-1802.34,65.65,278.972,-85.5958],[2172.2,-1700.61,65.2833,277.538,-85.5386],[2164.62,-1604,64.9333,276.149,-85.4829],[2156.62,-1503.32,64.5667,274.672,-85.4237],[2148.55,-1403.19,64.2,273.173,-85.3633],[2140.43,-1303.62,63.8333,271.651,-85.3017],[2131.86,-1200.14,63.45,270.035,-85.2361],[2123.61,-1101.75,63.0833,268.466,-85.1721],[2115.3,-1003.94,62.7167,266.874,-85.1069],[2106.54,-902.323,62.3333,265.184,-85.0373],[2097.71,-801.368,61.95,263.469,-84.9663],[2088.82,-701.083,61.5667,261.727,-84.8939],[2079.86,-601.48,61.1833,259.959,-84.8198],[2070.83,-502.568,60.8,258.165,-84.7441],[2061.33,-400.105,60.4,256.264,-84.6635],[2052.16,-302.638,60.0167,254.416,-84.5844],[2042.52,-201.706,59.6167,252.458,-84.5001],[2032.81,-101.573,59.2167,250.471,-84.4137],[2023.02,-2.25116,58.8167,248.453,-84.3253],[2013.16,96.2463,58.4167,246.406,-84.2348],[2002.81,197.958,58,244.241,-84.1381],[1992.37,298.749,57.5833,242.044,-84.0389],[1981.86,398.603,57.1667,239.813,-83.9372],[1971.27,497.508,56.75,237.549,-83.8327],[1960.17,599.346,56.3167,235.159,-83.721],[1949.42,696.269,55.9,232.826,-83.6106],[1937.71,799.829,55.45,230.27,-83.4879],[1926.35,898.441,55.0167,227.77,-83.3662],[1914.47,999.673,54.5667,225.136,-83.2359],[1902.49,1099.69,54.1167,222.463,-83.1016],[1890.42,1198.48,53.6667,219.749,-82.9628],[1877.81,1299.6,53.2,216.893,-82.8141],[1865.11,1399.36,52.7333,213.995,-82.6602],[1852.3,1497.74,52.2667,211.054,-82.5009],[1838.94,1598.14,51.7833,207.963,-82.3298],[1825.47,1697.02,51.3,204.827,-82.1522],[1811.44,1797.66,50.8,201.535,-81.9611],[1796.82,1899.89,50.2833,198.082,-81.7553],[1782.56,1997.07,49.7833,194.692,-81.5476]]], + [83,4255.08,[[1929.48,-2001.25,66.4833,281.85,-86.2284],[1922.97,-1903.04,66.1333,280.522,-86.1821],[1916.09,-1800.66,65.7667,279.11,-86.1328],[1909.48,-1703.43,65.4167,277.741,-86.0849],[1902.5,-1602.08,65.05,276.286,-86.0337],[1895.47,-1501.28,64.6833,274.809,-85.9817],[1888.38,-1401.03,64.3167,273.309,-85.9286],[1881.24,-1301.34,63.95,271.786,-85.8745],[1874.05,-1202.21,63.5833,270.24,-85.8195],[1866.8,-1103.66,63.2167,268.672,-85.7634],[1859.16,-1001.26,62.8333,267.007,-85.7036],[1851.8,-903.92,62.4667,265.39,-85.6452],[1844.05,-802.798,62.0833,263.674,-85.5829],[1836.24,-702.345,61.7,261.932,-85.5193],[1828.36,-602.571,61.3167,260.164,-85.4543],[1820.43,-503.486,60.9333,258.369,-85.388],[1812.09,-400.84,60.5333,256.468,-85.3173],[1804.03,-303.197,60.15,254.619,-85.2479],[1795.57,-202.078,59.75,252.66,-85.174],[1787.03,-101.757,59.35,250.671,-85.0982],[1778.43,-2.24511,58.95,248.653,-85.0207],[1769.77,96.4447,58.55,246.604,-84.9413],[1760.67,198.359,58.1333,244.437,-84.8565],[1751.51,299.354,57.7167,242.238,-84.7695],[1742.28,399.416,57.3,240.005,-84.6802],[1732.97,498.53,56.8833,237.738,-84.5886],[1723.59,596.682,56.4667,235.438,-84.4945],[1713.77,697.724,56.0333,233.01,-84.3938],[1703.87,797.694,55.6,230.545,-84.2902],[1693.89,896.575,55.1667,228.044,-84.1836],[1683.46,998.09,54.7167,225.407,-84.0694],[1672.94,1098.39,54.2667,222.73,-83.9517],[1662.34,1197.47,53.8167,220.013,-83.8302],[1651.26,1298.9,53.35,217.153,-83.6999],[1640.1,1398.96,52.8833,214.25,-83.565],[1628.85,1497.65,52.4167,211.304,-83.4254],[1617.12,1598.38,51.9333,208.208,-83.2755],[1605.29,1697.58,51.45,205.065,-83.1198],[1592.96,1798.56,50.95,201.766,-82.9523],[1580.54,1897.86,50.45,198.417,-82.778],[1567.6,1998.68,49.9333,194.906,-82.59]]], + [84,4271.49,[[1660.73,-2004.33,66.6,282.027,-86.7582],[1654.86,-1901.33,66.2333,280.636,-86.7165],[1649.22,-1803.49,65.8833,279.288,-86.676],[1643.26,-1701.51,65.5167,277.855,-86.6327],[1637.25,-1600.06,65.15,276.399,-86.5888],[1631.48,-1503.73,64.8,274.989,-86.5461],[1625.38,-1403.35,64.4333,273.489,-86.5004],[1619.24,-1303.52,64.0667,271.967,-86.4541],[1613.05,-1204.26,63.7,270.422,-86.4067],[1606.52,-1101.11,63.3167,268.781,-86.3564],[1600.24,-1003.03,62.95,267.188,-86.3071],[1593.62,-901.134,62.5667,265.497,-86.2547],[1587.24,-804.282,62.2,263.856,-86.2035],[1580.52,-703.68,61.8167,262.114,-86.1488],[1573.74,-603.755,61.4333,260.345,-86.093],[1566.62,-500.22,61.0333,258.471,-86.0336],[1559.74,-401.713,60.65,256.648,-85.9753],[1552.81,-303.915,60.2667,254.798,-85.9157],[1545.53,-202.632,59.8667,252.838,-85.8522],[1538.18,-102.145,59.4667,250.849,-85.7871],[1530.79,-2.46524,59.0667,248.829,-85.7205],[1523.33,96.3938,58.6667,246.779,-85.6523],[1515.51,198.487,58.25,244.611,-85.5795],[1507.62,299.662,57.8333,242.41,-85.5047],[1499.68,399.906,57.4167,240.175,-85.428],[1491.67,499.204,57,237.906,-85.3493],[1483.6,597.541,56.5833,235.603,-85.2684],[1475.15,698.779,56.15,233.173,-85.1819],[1466.63,798.946,55.7167,230.705,-85.0929],[1458.05,898.027,55.2833,228.2,-85.0013],[1449.07,999.751,54.8333,225.56,-84.9032],[1440.36,1096.57,54.4,222.979,-84.8058],[1430.9,1199.56,53.9333,220.158,-84.6975],[1421.71,1297.6,53.4833,217.396,-84.5897],[1412.11,1397.94,53.0167,214.489,-84.474],[1402.44,1496.9,52.55,211.539,-84.3541],[1392.34,1597.92,52.0667,208.438,-84.2254],[1382.17,1697.41,51.5833,205.29,-84.0919],[1371.56,1798.71,51.0833,201.984,-83.9481],[1360.87,1898.32,50.5833,198.629,-83.7984],[1349.75,1999.46,50.0667,195.11,-83.637]]], + [85,4285.43,[[1388.83,-2002.56,66.6833,282.118,-87.2897],[1384.14,-1904.15,66.3333,280.791,-87.2565],[1379.2,-1801.56,65.9667,279.379,-87.221],[1374.44,-1704.12,65.6167,278.011,-87.1867],[1369.42,-1602.56,65.25,276.556,-87.1498],[1364.36,-1501.54,64.8833,275.078,-87.1125],[1359.26,-1401.07,64.5167,273.578,-87.0744],[1354.12,-1301.15,64.15,272.055,-87.0356],[1348.94,-1201.81,63.7833,270.509,-86.9961],[1343.73,-1103.03,63.4167,268.939,-86.9558],[1338.23,-1000.39,63.0333,267.274,-86.9127],[1332.93,-902.815,62.6667,265.656,-86.8708],[1327.35,-801.447,62.2833,263.939,-86.8261],[1321.73,-700.746,61.9,262.196,-86.7805],[1316.07,-600.721,61.5167,260.426,-86.7338],[1310.36,-501.384,61.1333,258.629,-86.6861],[1304.6,-402.744,60.75,256.805,-86.6375],[1298.56,-300.57,60.35,254.874,-86.5856],[1292.72,-203.387,59.9667,252.995,-86.5347],[1286.58,-102.757,59.5667,251.004,-86.4803],[1280.39,-2.93294,59.1667,248.984,-86.4247],[1274.16,96.0724,58.7667,246.932,-86.3677],[1267.61,198.319,58.35,244.763,-86.3069],[1261.02,299.65,57.9333,242.56,-86.2445],[1254.64,396.053,57.5333,240.414,-86.183],[1247.68,499.508,57.1,238.053,-86.1147],[1240.94,598.007,56.6833,235.749,-86.0471],[1233.87,699.413,56.25,233.316,-85.9748],[1226.74,799.751,55.8167,230.846,-85.9006],[1219.57,899.004,55.3833,228.338,-85.824],[1212.34,997.156,54.95,225.793,-85.7452],[1204.77,1097.9,54.5,223.111,-85.6608],[1197.15,1197.42,54.05,220.387,-85.5737],[1189.18,1299.31,53.5833,217.52,-85.4803],[1181.15,1399.85,53.1167,214.609,-85.3836],[1173.06,1499.01,52.65,211.654,-85.2835],[1164.91,1596.77,52.1833,208.655,-85.1798],[1156.11,1699.93,51.6833,205.394,-85.0644],[1147.54,1798.09,51.2,202.193,-84.9484],[1138.6,1897.97,50.7,198.832,-84.8234],[1129.3,1999.4,50.1833,195.307,-84.6888]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 1280.39; +_maxRange = 7396.34; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg0.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg0.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg1.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg1.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg2.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg2.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg3.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg3.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg4.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/120mm/tables/ace_arty_120mm_genericBtab_LA_chg4.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/155mm/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/155mm/CfgAmmo.hpp new file mode 100644 index 0000000000..72e57f7cc8 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/155mm/CfgAmmo.hpp @@ -0,0 +1,10 @@ + +class Sh_125_SABOT; +class ace_arty_155mm_bonus_EFP : Sh_125_SABOT { + hit = 1000; + indirectHit = 11; + indirectHitRange = 2; + typicalSpeed = 2000; + deflecting = 0; + airFriction = -4e-005; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/155mm/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/155mm/CfgVehicles.hpp new file mode 100644 index 0000000000..35539059ad --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/155mm/CfgVehicles.hpp @@ -0,0 +1,8 @@ + +class ace_arty_155mm_bonus_parachute : ACE_HuntIR { + class EventHandlers { + EXTENDED_EVENTHANDLERS + }; + SLX_XEH_DISABLED = 0; + model = QPATHTO_M(155mm\data\bonus.p3d); +}; diff --git a/TO_MERGE/ace/arty_ammunition/155mm/data/bonus.p3d b/TO_MERGE/ace/arty_ammunition/155mm/data/bonus.p3d new file mode 100644 index 0000000000..021c6f9c64 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/155mm/data/bonus.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/60mm/CfgAmmo.hpp new file mode 100644 index 0000000000..b5549e6a58 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/CfgAmmo.hpp @@ -0,0 +1,96 @@ +class GrenadeBase; +class ace_arty_howitzer_60mm_base: GrenadeBase { + whistleDist = 1500; + deflecting = 0; +}; + +class ace_arty_60mm_m720a1_m734_pd: ace_arty_howitzer_60mm_base { + hit = 110; + indirecthit = 20; + indirecthitrange = 9; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m720a1_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = "GrenadeCrater"; + ExplosionEffects = "GrenadeExplosion"; + caliber = 6; +}; + +class ace_arty_60mm_m720a1_m734_prox: ace_arty_60mm_m720a1_m734_pd { + CraterEffects = ""; + ExplosionEffects = ""; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_prox.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_60mm_m720a1_explosion"; +}; + +class ace_arty_60mm_m720a1_m734_delay: ace_arty_60mm_m720a1_m734_prox { + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_delay.sqf"; + soundHit[] = {"",0,1,0}; + ACE_FRAG_SKIP = 1; +}; +class ace_arty_60mm_m720a1_m734_nsb: ace_arty_60mm_m720a1_m734_prox { + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_nsb.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_60mm_m720a1_explosion"; +}; + +class ace_arty_60mm_m720a1_explosion : ace_arty_howitzer_60mm_base { + hit = 110; + indirecthit = 20; + indirecthitrange = 9; + explosionTime = 0.0001; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m720a1_shell.p3d"; // Add model or : No shape for ammo type ace_arty_105mm_m1_explosion + CraterEffects = "GrenadeCrater"; + ExplosionEffects = "GrenadeExplosion"; +}; + +class ace_arty_60mm_m720a1_delay_action: ace_arty_60mm_m720a1_m734_pd { + explosionTime = 0.05; + deflecting=65; +}; + +class ace_arty_60mm_m721_m776_time: ace_arty_howitzer_60mm_base { + hit = 0; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m721_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "GrenadeExplosion"; + caliber = 6; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 500; + ACE_ARTY_BASEEJECT_COMPENSATE = 0; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.25; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m776\fuze_time.sqf"; + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\60mm\eject_illum.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; +//TODO: Adjust WP effect, currently its the same for all smoke shells +class ace_arty_60mm_m722a1_m745_pd : ace_arty_howitzer_60mm_base { + hit = 110; + indirecthit = 15; + indirecthitrange = 5; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m722a1_shell.p3d"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "ace_arty_WPExplosion"; + caliber = 6; +}; + +class FlareBase; +class ace_arty_60mm_m721_m766_flare :FlareBase { + model="\ca\Weapons\granat"; + lightColor[] = {0.8, 0.8, 0.8, 0}; + deflecting=65; +}; diff --git a/TO_MERGE/ace/arty_ammunition/60mm/CfgMagazines.hpp b/TO_MERGE/ace/arty_ammunition/60mm/CfgMagazines.hpp new file mode 100644 index 0000000000..016c7185f3 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/CfgMagazines.hpp @@ -0,0 +1,143 @@ +class ace_arty_60mm_default: ace_arty_howitzer_default { + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\60mm\tables\ace_arty_60mm_genericBtab_%1_chg%2.sqf"; // 1 = angle (LA/HA) 2 = chg# + ACE_ARTY_BTABS_KEY = "ace_arty_60mm_genericBtab_%1_chg%2"; + scope = 2; + ACE_Weight = 1.66; +}; + +class ace_arty_60mm_m720a1: ace_arty_60mm_default { + scope = 1; + type = 0; + displayName = "60mm M720A1 HE"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_60mm_m720a1_m734_%1_chg%2"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\60mm\data\images\m720_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\60mm\data\images\m720.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m720a1_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd", "prox", "nsb", "delay"}; + ACE_ARTY_FUZE_DESC[] = {"Impact Burst", "Proximity Burst", "Near-Surface Burst", "Delay"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_60mm_m720a1_m734_pd", "ace_arty_60mm_m720a1_m734_prox", "ace_arty_60mm_m720a1_m734_nsb", "ace_arty_60mm_m720a1_m734_delay"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "HE"; + ACE_Weight = 1.66; +}; +//IMP +class ace_arty_60mm_m720a1_m734_pd_chg0: ace_arty_howitzer_mag { + displayName = "60mm M720A1 IMP Chg. 0"; + ammo = "ace_arty_60mm_m720a1_m734_pd"; + initSpeed = 64; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_60mm_m720a1"; + ACE_Weight = 1.66; +}; + +/* +0- 64 +1- 126.492 +2- 170.688 +3- 207.264 +4- 246.888 +*/ +class ace_arty_60mm_m720a1_m734_pd_chg1: ace_arty_60mm_m720a1_m734_pd_chg0 { initSpeed = 124; displayName = "60mm M720A1 IMP Chg. 1"; }; +class ace_arty_60mm_m720a1_m734_pd_chg2: ace_arty_60mm_m720a1_m734_pd_chg0 { initSpeed = 160.16; displayName = "60mm M720A1 IMP Chg. 2"; }; +class ace_arty_60mm_m720a1_m734_pd_chg3: ace_arty_60mm_m720a1_m734_pd_chg0 { initSpeed = 180.92; displayName = "60mm M720A1 IMP Chg. 3"; }; +class ace_arty_60mm_m720a1_m734_pd_chg4: ace_arty_60mm_m720a1_m734_pd_chg0 { initSpeed = 207.264; displayName = "60mm M720A1 IMP Chg. 4"; }; +//PRX (3 - 13 feet / 1 - 4 m) +class ace_arty_60mm_m720a1_m734_prox_chg0: ace_arty_howitzer_mag { + displayName = "60mm M720A1 PRX Chg. 0"; + ammo = "ace_arty_60mm_m720a1_m734_prox"; + initSpeed = 64; + ACE_Weight = 1.66; +}; +class ace_arty_60mm_m720a1_m734_prox_chg1: ace_arty_60mm_m720a1_m734_prox_chg0 { initSpeed = 124; displayName = "60mm M720A1 PRX Chg. 1"; }; +class ace_arty_60mm_m720a1_m734_prox_chg2: ace_arty_60mm_m720a1_m734_prox_chg0 { initSpeed = 160.16; displayName = "60mm M720A1 PRX Chg. 2"; }; +class ace_arty_60mm_m720a1_m734_prox_chg3: ace_arty_60mm_m720a1_m734_prox_chg0 { initSpeed = 180.92; displayName = "60mm M720A1 PRX Chg. 3"; }; +class ace_arty_60mm_m720a1_m734_prox_chg4: ace_arty_60mm_m720a1_m734_prox_chg0 { initSpeed = 207.264; displayName = "60mm M720A1 PRX Chg. 4"; }; +// DLY +class ace_arty_60mm_m720a1_m734_delay_chg0: ace_arty_howitzer_mag { + displayName = "60mm M720A1 DLY Chg. 0"; + ammo = "ace_arty_60mm_m720a1_m734_delay"; + initSpeed = 64; + ACE_Weight = 1.66; +}; +class ace_arty_60mm_m720a1_m734_delay_chg1: ace_arty_60mm_m720a1_m734_delay_chg0 { initSpeed = 124; displayName = "60mm M720A1 DLY Chg. 1"; }; +class ace_arty_60mm_m720a1_m734_delay_chg2: ace_arty_60mm_m720a1_m734_delay_chg0 { initSpeed = 160.16; displayName = "60mm M720A1 DLY Chg. 2"; }; +class ace_arty_60mm_m720a1_m734_delay_chg3: ace_arty_60mm_m720a1_m734_delay_chg0 { initSpeed = 180.92; displayName = "60mm M720A1 DLY Chg. 3"; }; +class ace_arty_60mm_m720a1_m734_delay_chg4: ace_arty_60mm_m720a1_m734_delay_chg0 { initSpeed = 207.264; displayName = "60mm M720A1 DLY Chg. 4"; }; +// NSB (0-3 feet / 0 - 1 m) +class ace_arty_60mm_m720a1_m734_nsb_chg0: ace_arty_howitzer_mag { + displayName = "60mm M720A1 NSB Chg. 0"; + ammo = "ace_arty_60mm_m720a1_m734_nsb"; + initSpeed = 64; + ACE_Weight = 1.66; +}; +class ace_arty_60mm_m720a1_m734_nsb_chg1: ace_arty_60mm_m720a1_m734_nsb_chg0 { initSpeed = 124; displayName = "60mm M720A1 NSB Chg. 1"; }; +class ace_arty_60mm_m720a1_m734_nsb_chg2: ace_arty_60mm_m720a1_m734_nsb_chg0 { initSpeed = 160.16; displayName = "60mm M720A1 NSB Chg. 2"; }; +class ace_arty_60mm_m720a1_m734_nsb_chg3: ace_arty_60mm_m720a1_m734_nsb_chg0 { initSpeed = 180.92; displayName = "60mm M720A1 NSB Chg. 3"; }; +class ace_arty_60mm_m720a1_m734_nsb_chg4: ace_arty_60mm_m720a1_m734_nsb_chg0 { initSpeed = 207.264; displayName = "60mm M720A1 NSB Chg. 4"; }; + +// ILLUM +class ace_arty_60mm_m721: ace_arty_60mm_default { + scope = 1; + type = 0; + displayName = "60mm M721 Illumination"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_60mm_m721_m776_%1_chg%2"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\60mm\data\images\m14_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\60mm\data\images\M721.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m721_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_60mm_m721_m776_time"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "ILLUM"; + ACE_Weight = 1.71; +}; + +class ace_arty_60mm_m721_m776_time_chg0: ace_arty_howitzer_mag { + displayName = "60mm M721 M776 TIME Chg. 0"; + ammo = "ace_arty_60mm_m721_m776_time"; + initSpeed = 64; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_60mm_m721"; + ACE_Weight = 1.71; +}; +class ace_arty_60mm_m721_m776_time_chg1: ace_arty_60mm_m721_m776_time_chg0 { initSpeed = 124; displayName = "60mm M721 M776 TIME Chg. 1"; }; +class ace_arty_60mm_m721_m776_time_chg2: ace_arty_60mm_m721_m776_time_chg0 { initSpeed = 160.16; displayName = "60mm M721 M776 TIME Chg. 2"; }; +class ace_arty_60mm_m721_m776_time_chg3: ace_arty_60mm_m721_m776_time_chg0 { initSpeed = 180.92; displayName = "60mm M721 M776 TIME Chg. 3"; }; +class ace_arty_60mm_m721_m776_time_chg4: ace_arty_60mm_m721_m776_time_chg0 { initSpeed = 207.264; displayName = "60mm M721 M776 TIME Chg. 4"; }; + +// WP +class ace_arty_60mm_m722a1: ace_arty_60mm_default { + scope = 1; + type = 0; + displayName = "60mm M722A1 WP"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_60mm_m722a1_m745_%1_chg%2"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\60mm\data\images\m14_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\60mm\data\images\M722A1.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m722a1_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd"}; + ACE_ARTY_FUZE_DESC[] = {"Point Detonate"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_60mm_m722a1_m745_pd"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "WP"; + ACE_Weight = 1.68; +}; + +class ace_arty_60mm_m722a1_m745_pd_chg0: ace_arty_howitzer_mag { + displayName = "60mm M722A1 M745 PD Chg. 0"; + ammo = "ace_arty_60mm_m722a1_m745_pd"; + initSpeed = 64; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_60mm_m722a1_m745"; + ACE_Weight = 1.68; +}; +class ace_arty_60mm_m722a1_m745_pd_chg1: ace_arty_60mm_m722a1_m745_pd_chg0 { initSpeed = 124; displayName = "60mm M722A1 M745 PD Chg. 1"; }; +class ace_arty_60mm_m722a1_m745_pd_chg2: ace_arty_60mm_m722a1_m745_pd_chg0 { initSpeed = 160.16; displayName = "60mm M722A1 M745 PD Chg. 2"; }; +class ace_arty_60mm_m722a1_m745_pd_chg3: ace_arty_60mm_m722a1_m745_pd_chg0 { initSpeed = 180.92; displayName = "60mm M722A1 M745 PD Chg. 3"; }; +class ace_arty_60mm_m722a1_m745_pd_chg4: ace_arty_60mm_m722a1_m745_pd_chg0 { initSpeed = 207.264; displayName = "60mm M722A1 M745 PD Chg. 4"; }; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/60mm/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/60mm/CfgVehicles.hpp new file mode 100644 index 0000000000..d752661f75 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/CfgVehicles.hpp @@ -0,0 +1,77 @@ +/* +"60mm M720a1 HE"; 1.66kg M734A1 Multi-option fuze +"60mm M721 ILLUM"; 1.71kg M776 MTSQ Fuze 8mechanical time superquick9 +"60mm M722a1 WP"; 1.68kg M745 point detonating fuze + +multioption type (PRX/NSB/IMP/DLY) +PRX PROXIMITY BURST - 1 - 4 meter // random in CfgEffect +NSB NEAR SURFACE BURST - 1 meter +IMP IMPACT BURST +DLY DELAY BURST (1/2 sec) + +*/ + +class ace_arty_m720a1_cartridge : ACE_Arty_ShellHolder { + scope = 1; + icon = "iconThing"; + mapSize = 0; // iconsize on map... small object such as a tree is 0.7 + displayName = "M720A1 HE Cartridge"; + vehicleClass = "Objects"; + nameSound = "obj_object"; + picture = "pictureThing"; + class Library {libTextDesc = "";}; + descriptionShort = ""; + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + type = 1; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m720a1_cartridge.p3d"; + animated = 1; + reversed = 0; + class EventHandlers { + killed = "_this call ace_sys_arty_ammunition_fnc_onShellDestroyed"; + }; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_60mm_m720a1"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_60mm_m720a1_m734_pd_chg0",{0},"fnord",0,"pd"}; + ACE_Weight = 1.66; + class AnimationSources { + class hide_inc1 { + source = "user"; + initPhase = 1; + animPeriod = 0.1; + }; + class hide_inc2: hide_inc1 {}; + class hide_inc3: hide_inc1 {}; + class hide_inc4: hide_inc1 {}; + class hide_inc5: hide_inc1 {}; + class hide_inc6: hide_inc1 {}; + class hide_inc7: hide_inc1 {}; + class hide_inc8: hide_inc1 {}; + class hide_inc9: hide_inc1 {}; + class hide_inc10: hide_inc1 {}; + }; +}; + +class ace_arty_m721_cartridge : ace_arty_m720a1_cartridge { + displayName = "M721 Illum Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m721_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_60mm_m721"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_60mm_m721_m776_time_chg1",{10},"fnord",1,"time"}; + ACE_Weight = 1.71; +}; + +class ace_arty_m722a1_cartridge : ace_arty_m720a1_cartridge { + displayName = "M722A1 WP Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m722a1_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_60mm_m722a1"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_60mm_m722a1_m745_pd_chg0",{0},"fnord",0,"pd"}; + ACE_Weight = 1.68; +}; + +class ACE_HuntIR; +class ace_arty_60mm_m721_m766_parachute : ACE_HuntIR { + class EventHandlers { + EXTENDED_EVENTHANDLERS + }; + SLX_XEH_DISABLED = 0; +}; diff --git a/TO_MERGE/ace/arty_ammunition/60mm/XEH_illum_init.sqf b/TO_MERGE/ace/arty_ammunition/60mm/XEH_illum_init.sqf new file mode 100644 index 0000000000..afde231220 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/XEH_illum_init.sqf @@ -0,0 +1,71 @@ +//XEH_illum_init.sqf +#define MAX_ILL 0.8 + +private["_flareChute", "_pos", "_light", "_sm", "_sp"]; + +_flareChute = _this select 0; +_pos = getPos (_flareChute); + +_light = "#lightpoint" createVehicleLocal _pos; +_light setPos _pos; +_light setLightBrightness MAX_ILL; +_light setLightAmbient[238/255, 233/255, 183/255]; +_light setLightColor[241/255, 226/255, 62/255]; +_light lightAttachObject [_flareChute, [0,0,-0.8]]; + +_sm = "#particlesource" createVehicleLocal getPos (_flareChute); +_sm setParticleRandom [0.5, [0, 0, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0, 360]; +_sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 30, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.3,4], + [[0.9,0.9,0.9,0.6], [1,1,1,0.3], [1,1,1,0]],[1],0.1,0.1,"","",_light]; +_sm setDropInterval 0.02; + +_sp = "#particlesource" createVehicleLocal getPos (_flareChute); +_sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +_sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +_sp setDropInterval 0.001; + +// _sp2 = "#particlesource" createVehicleLocal getPos (_flareChute); +// _sp2 setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +// _sp2 setParticleParams ["\ca\Data\Flare12", + // "", "Billboard", 1, 0.1, [0, 0, 0], + // [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + // [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +// _sp2 setDropInterval 0.001; + + +//_flareChute setVectorDir _chuteVel; + +[_flareChute, _light, _sp, _sm] spawn { + private["_shell", "_light", "_sp", "_sm", "_start", "_b", "_s"]; + _shell = _this select 0; + _light = _this select 1; + _sp = _this select 2; + _sm = _this select 3; + + + _start = time; + _b = MAX_ILL; + _s = 0; + waitUntil { + if((_start + 30) < time) then { + _b = (_b - random (0.1)) max 0; + _light setLightBrightness _b; + }; + if((_start + 40) < time) then { + deleteVehicle _light; + deleteVehicle _sp; +// deleteVehicle _sp2; + deleteVehicle _sm; + }; + sleep 0.1; + (!alive _shell && (_start + 40) < time); + }; + deleteVehicle _light; + deleteVehicle _sp; + deleteVehicle _sm; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m720a1_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m720a1_cartridge.p3d new file mode 100644 index 0000000000..533e9252f6 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m720a1_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m720a1_shell.p3d b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m720a1_shell.p3d new file mode 100644 index 0000000000..e6fd3b01f6 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m720a1_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m721_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m721_cartridge.p3d new file mode 100644 index 0000000000..c541e63038 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m721_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m721_shell.p3d b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m721_shell.p3d new file mode 100644 index 0000000000..1cfe73e19d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m721_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m722a1_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m722a1_cartridge.p3d new file mode 100644 index 0000000000..bdb4e6580a Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m722a1_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m722a1_shell.p3d b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m722a1_shell.p3d new file mode 100644 index 0000000000..81ea9678fb Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/ace_arty_m722a1_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm.rvmat b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm.rvmat new file mode 100644 index 0000000000..c4e3d6560b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm.rvmat @@ -0,0 +1,89 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +specular[]={1,1,1,1.000000}; +specularPower=40.000000; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\60mm\data\ace_60mm_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={8.0000,0.000000,0.000000}; + up[]={0.000000,8.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\60mm\data\ace_60mm_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture="#(ai,16,2,2)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; diff --git a/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_co.paa b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_co.paa new file mode 100644 index 0000000000..a446ba8600 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_nohq.paa b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_nohq.paa new file mode 100644 index 0000000000..ce3ea43cfe Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_smdi.paa b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_smdi.paa new file mode 100644 index 0000000000..f381cfc388 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/data/ace_60mm_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/default_60mm_crtg.p3d b/TO_MERGE/ace/arty_ammunition/60mm/default_60mm_crtg.p3d new file mode 100644 index 0000000000..b0c4fcdc3d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/default_60mm_crtg.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/default_60mm_shell.p3d b/TO_MERGE/ace/arty_ammunition/60mm/default_60mm_shell.p3d new file mode 100644 index 0000000000..5f521c46d4 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/60mm/default_60mm_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/60mm/eject_illum.sqf b/TO_MERGE/ace/arty_ammunition/60mm/eject_illum.sqf new file mode 100644 index 0000000000..ed77c55c11 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/eject_illum.sqf @@ -0,0 +1,15 @@ +//eject_illum.sqf +private["_shell", "_velocity", "_pos", "_flareChute", "_chuteVel"]; + +_shell = _this select 6; + +_velocity = velocity _shell; + +_pos = getPos _shell; + +_flareChute = "ace_arty_60mm_m721_m766_parachute" createVehicle _pos; +_flareChute setPos _pos; +_chuteVel = [_velocity,0.25] call ACE_fnc_vectorMultiply; +_flareChute setVelocity _chuteVel; + +false diff --git a/TO_MERGE/ace/arty_ammunition/60mm/model.cfg b/TO_MERGE/ace/arty_ammunition/60mm/model.cfg new file mode 100644 index 0000000000..2a744a3967 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/model.cfg @@ -0,0 +1,59 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + + class ace_mortar_shell: Default { + isDiscrete = 1; + skeletonInherit = "Default"; + skeletonBones[] = { + "inc1","", + "inc2","", + "inc3","", + "inc4","", + "inc5","", + "inc6","", + "inc7","", + "inc8","", + "inc9","", + "inc10","" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + skeletonName = ""; + }; + class ace_arty_60mm_cartridge: Default { + skeletonName="ace_mortar_shell"; + sections[]= {}; + class animations { + #define HIDE_INC(x) class hide_inc##x { \ + type = "hide"; \ + source = "user"; \ + selection = inc##x; \ + minValue = 0; \ + maxValue = 1; \ + hideValue = 1; \ + }; + HIDE_INC(1); + HIDE_INC(2); + HIDE_INC(3); + HIDE_INC(4); + HIDE_INC(5); + HIDE_INC(6); + HIDE_INC(7); + HIDE_INC(8); + HIDE_INC(9); + HIDE_INC(10); + }; + }; + class ace_arty_m721_cartridge: ace_arty_60mm_cartridge {}; + class ace_arty_m722a1_cartridge: ace_arty_60mm_cartridge {}; + class ace_arty_m720a1_cartridge:ace_arty_60mm_cartridge {}; +}; diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg0.sqf new file mode 100644 index 0000000000..9d4609546b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg0.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_60mm_m720a1_m734_pd_chg0 +// Ammo: ace_arty_60mm_m720a1_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,102.774,[[1091.06,-2000.04,25.8667,190.963,-78.7781],[1071.17,-1901.12,25.3333,187.281,-78.4655],[1050.49,-1801.26,24.7833,183.431,-78.1273],[1029.03,-1700.68,24.2167,179.41,-77.7607],[1007.39,-1602.49,23.65,175.334,-77.3742],[984.311,-1501.16,23.05,170.96,-76.9415],[961.047,-1402.58,22.45,166.528,-76.4823],[936.299,-1301.56,21.8167,161.789,-75.966],[910.7,-1201.17,21.1667,156.863,-75.3992],[884.237,-1101.71,20.5,151.748,-74.7745],[856.232,-1001.17,19.8,146.313,-74.0657],[826.659,-900.174,19.0667,140.555,-73.2576],[796.175,-801.541,18.3167,134.604,-72.3521],[763.4,-701.602,17.5167,128.196,-71.2848],[728.297,-601.469,16.6667,121.333,-70.0165],[690.133,-500.575,15.75,113.887,-68.4644],[648.856,-400.652,14.7667,105.876,-66.5405],[603.004,-300.677,13.6833,97.0676,-64.0328],[551.072,-201.226,12.4667,87.281,-60.5867],[488.637,-100.703,11.0167,75.9493,-55.2875],[407.499,-0.567578,9.15,62.4594,-45.6336],[238.003,99.9874,5.3,44.9396,-9.35551],[205.446,102.772,4.56667,44.4521,-0.158363]]], + [46,106.346,[[1076.27,-2000.82,25.9667,191.017,-78.9802],[1056.73,-1901.8,25.4333,187.332,-78.6732],[1036.41,-1801.84,24.8833,183.479,-78.3411],[1015.32,-1701.15,24.3167,179.454,-77.9812],[994.068,-1602.85,23.75,175.374,-77.6017],[971.389,-1501.41,23.15,170.996,-77.1767],[947.895,-1400.01,22.5333,166.435,-76.7127],[924.217,-1301.57,21.9167,161.814,-76.2187],[899.065,-1201.05,21.2667,156.881,-75.6619],[873.065,-1101.46,20.6,151.758,-75.0482],[845.55,-1000.78,19.9,146.315,-74.3519],[817.158,-901.885,19.1833,140.678,-73.5767],[786.544,-800.851,18.4167,134.584,-72.6681],[754.343,-700.748,17.6167,128.162,-71.619],[719.854,-600.439,16.7667,121.282,-70.3721],[683.042,-501.127,15.8667,113.95,-68.8751],[642.494,-400.853,14.8833,105.913,-66.9869],[597.451,-300.487,13.8,97.0688,-64.5244],[546.435,-200.593,12.5833,87.2319,-61.1373],[485.81,-100.587,11.15,75.9499,-55.9893],[406.827,-0.221905,9.3,62.4166,-46.5877],[254.141,99.9569,5.76667,44.894,-14.3138],[204.748,106.346,4.63333,43.6652,-0.00765876]]], + [47,109.914,[[1061,-2001.87,26.0667,191.082,-79.1862],[1041.8,-1902.75,25.5333,187.394,-78.885],[1021.86,-1802.68,24.9833,183.538,-78.5591],[1001.15,-1701.89,24.4167,179.51,-78.2059],[979.666,-1600.61,23.8333,175.305,-77.8222],[958.014,-1501.9,23.25,171.043,-77.4164],[934.946,-1400.38,22.6333,166.477,-76.9612],[911.697,-1301.81,22.0167,161.85,-76.4763],[887.001,-1201.16,21.3667,156.911,-75.9298],[861.472,-1101.43,20.7,151.781,-75.3275],[834.456,-1000.6,20,146.329,-74.6439],[806.578,-901.551,19.2833,140.682,-73.8829],[776.519,-800.352,18.5167,134.576,-72.9907],[744.901,-700.076,17.7167,128.14,-71.9604],[711.704,-601.491,16.8833,121.378,-70.7609],[674.892,-500.071,15.9667,113.89,-69.2644],[635.756,-401.211,15,105.963,-67.4419],[591.535,-300.44,13.9167,97.0836,-65.0258],[541.451,-200.087,12.7,87.1966,-61.6998],[482.628,-100.595,11.2833,75.9662,-56.7042],[406.498,-0.765611,9.46667,62.5087,-47.6606],[265.178,99.8788,6.13333,44.8789,-18.0778],[204.597,109.913,4.71667,42.8633,-0.0883026]]], + [48,113.473,[[1044.65,-2000.08,26.15,191.042,-79.3869],[1025.82,-1900.91,25.6167,187.351,-79.0911],[1006.24,-1800.79,25.0667,183.49,-78.7711],[986.518,-1702.88,24.5167,179.576,-78.4347],[965.436,-1601.49,23.9333,175.367,-78.0585],[944.19,-1502.66,23.35,171.101,-77.6606],[921.555,-1401,22.7333,166.53,-77.2142],[898.742,-1302.3,22.1167,161.898,-76.7387],[874.509,-1201.5,21.4667,156.952,-76.2028],[849.461,-1101.62,20.8,151.815,-75.6121],[822.951,-1000.64,20.1,146.355,-74.9416],[795.596,-901.427,19.3833,140.698,-74.1951],[766.101,-800.053,18.6167,134.58,-73.3197],[735.725,-701.63,17.8333,128.265,-72.3308],[702.501,-600.817,16.9833,121.352,-71.1313],[667.039,-500.965,16.0833,113.98,-69.6906],[627.978,-400.096,15.1,105.89,-67.8717],[585.258,-300.544,14.0333,97.1128,-65.5368],[536.796,-201.005,12.8333,87.3109,-62.3237],[479.089,-100.734,11.4167,75.9991,-57.4319],[405.094,-0.67878,9.61667,62.5071,-48.6474],[273.445,99.7796,6.45,44.8793,-21.2652],[204.25,113.471,4.8,42.0492,-0.191165]]], + [49,117.019,[[1028.43,-2001.71,26.25,191.127,-79.6004],[1009.96,-1902.43,25.7167,187.433,-79.3106],[990.763,-1802.19,25.1667,183.57,-78.9972],[970.834,-1701.22,24.6,179.533,-78.6573],[950.751,-1602.63,24.0333,175.441,-78.299],[929.32,-1500.88,23.4333,171.048,-77.8977],[907.722,-1401.87,22.8333,166.595,-77.4718],[884.746,-1300.4,22.2,161.832,-76.9929],[861.591,-1202.08,21.5667,157.006,-76.4808],[837.029,-1102.05,20.9,151.862,-75.9018],[811.034,-1000.9,20.2,146.393,-75.2448],[784.211,-901.518,19.4833,140.727,-74.5131],[755.919,-802.115,18.7333,134.731,-73.6746],[725.502,-701.349,17.9333,128.269,-72.6855],[692.924,-600.328,17.0833,121.34,-71.5092],[658.151,-500.256,16.1833,113.947,-70.0959],[620.501,-400.786,15.2167,105.968,-68.3435],[578.615,-300.807,14.15,97.1569,-66.057],[531.101,-200.784,12.95,87.3062,-62.9082],[475.191,-101.013,11.55,76.0496,-58.1718],[403.325,-0.728255,9.76667,62.5269,-49.6504],[279.057,99.9974,6.71667,44.8208,-23.8921],[203.017,117.018,4.86667,41.2245,-0.0907568]]], + [50,120.546,[[1011.16,-2000.49,26.3333,191.109,-79.8088],[993.059,-1901.16,25.8,187.411,-79.5247],[974.248,-1800.86,25.25,183.544,-79.2174],[955.293,-1702.77,24.7,179.622,-78.8943],[935.033,-1601.18,24.1167,175.405,-78.5329],[914.615,-1502.16,23.5333,171.129,-78.1507],[892.862,-1400.29,22.9167,166.547,-77.7218],[870.938,-1301.38,22.3,161.903,-77.2649],[847.65,-1200.36,21.65,156.944,-76.7499],[823.577,-1100.26,20.9833,151.791,-76.182],[798.709,-1001.39,20.3,146.444,-75.5533],[772.425,-901.834,19.5833,140.769,-74.8369],[744.084,-800.083,18.8167,134.628,-73.9965],[714.898,-701.273,18.0333,128.287,-73.0468],[682.975,-600.035,17.1833,121.341,-71.8944],[649.535,-501.522,16.3,114.066,-70.5366],[612.008,-400.009,15.3167,105.924,-68.7911],[571.609,-301.237,14.2667,97.2167,-66.5863],[525.057,-200.713,13.0667,87.3176,-63.5035],[470.279,-100.353,11.6667,75.986,-58.8599],[400.528,-0.115633,9.9,62.4481,-50.5737],[284.141,99.8074,6.98333,44.8532,-26.5415],[201.611,120.546,4.93333,40.388,-0.00670949]]], + [51,124.053,[[993.991,-2002.73,26.4333,191.216,-80.0295],[975.711,-1900.19,25.8833,187.4,-79.7428],[957.849,-1802.84,25.35,183.646,-79.4511],[938.725,-1701.67,24.7833,179.602,-79.1253],[918.883,-1600.02,24.2,175.38,-78.7713],[898.887,-1500.92,23.6167,171.1,-78.3968],[878.161,-1401.7,23.0167,166.636,-77.9883],[856.695,-1302.63,22.4,161.988,-77.5414],[833.892,-1201.45,21.75,157.023,-77.0376],[810.321,-1101.17,21.0833,151.863,-76.4821],[785.972,-1002.13,20.4,146.508,-75.8672],[759.635,-900.114,19.6667,140.691,-75.1492],[732.486,-800.43,18.9167,134.673,-74.344],[703.907,-701.411,18.1333,128.318,-73.4146],[673.265,-601.873,17.3,121.494,-72.3101],[639.906,-501.191,16.4,114.062,-70.9573],[603.787,-401.062,15.4333,106.033,-69.279],[563.605,-300.348,14.3667,97.1543,-67.0868],[518.658,-200.801,13.1833,87.3457,-64.1095],[465.669,-100.925,11.8,76.0733,-59.6245],[398.034,-0.45059,10.05,62.5126,-51.6088],[287.379,99.9248,7.21667,44.8252,-28.8383],[200.691,124.051,5.01667,39.5377,-0.17718]]], + [52,127.533,[[975.808,-2002.14,26.5167,191.22,-80.2453],[958.464,-1902.61,25.9833,187.517,-79.9734],[940.441,-1802.11,25.4333,183.643,-79.6793],[921.726,-1700.87,24.8667,179.595,-79.3604],[902.866,-1602.01,24.3,175.49,-79.0241],[883.302,-1502.76,23.7167,171.205,-78.6582],[862.459,-1400.67,23.1,166.613,-78.2476],[841.453,-1301.52,22.4833,161.958,-77.8101],[819.138,-1200.24,21.8333,156.986,-77.3169],[796.65,-1102.34,21.1833,151.949,-76.7871],[772.244,-1000.74,20.4833,146.455,-76.1708],[747.059,-900.9,19.7667,140.761,-75.4843],[720.497,-801.008,19.0167,134.731,-74.6973],[692.535,-701.77,18.2333,128.365,-73.7887],[661.952,-600.063,17.3833,121.387,-72.6857],[629.916,-501.059,16.5,114.073,-71.3856],[594.576,-400.652,15.5333,106.02,-69.7434],[555.878,-301.128,14.4833,97.2468,-67.634],[511.907,-201.055,13.3,87.3915,-64.7256],[460.068,-100.558,11.9167,76.0461,-60.3389],[394.534,-0.117859,10.1833,62.4772,-52.5665],[290.132,99.7251,7.45,44.8676,-31.1564],[198.923,127.531,5.08333,38.6776,-0.135098]]], + [53,130.982,[[957.179,-2001.87,26.6,191.235,-80.4647],[940.221,-1902.27,26.0667,187.529,-80.1989],[922.597,-1801.69,25.5167,183.651,-79.9113],[904.298,-1700.37,24.95,179.599,-79.5996],[885.857,-1601.43,24.3833,175.49,-79.2708],[866.728,-1502.1,23.8,171.201,-78.9129],[846.9,-1402.64,23.2,166.728,-78.5226],[825.808,-1300.67,22.5667,161.942,-78.0836],[804.55,-1201.86,21.9333,157.092,-77.614],[782,-1101.31,21.2667,151.918,-77.0831],[758.706,-1001.98,20.5833,146.547,-76.4951],[734.086,-901.934,19.8667,140.844,-75.8248],[708.117,-801.825,19.1167,134.805,-75.0562],[680.198,-700.299,18.3167,128.29,-74.149],[650.883,-600.4,17.4833,121.433,-73.0915],[619.563,-501.133,16.6,114.101,-71.8212],[585.014,-400.435,15.6333,106.022,-70.2162],[547.182,-300.593,14.5833,97.2172,-68.1534],[504.194,-200.158,13.4,87.3166,-65.3069],[454.129,-100.345,12.0333,76.0379,-61.0664],[391.305,-0.771994,10.3333,62.591,-53.6302],[291.768,99.6099,7.66667,44.8951,-33.3148],[196.979,130.981,5.15,37.8061,-0.113916]]], + [54,134.398,[[938.105,-2001.93,26.6833,191.262,-80.6877],[921.537,-1902.25,26.15,187.553,-80.4281],[904.32,-1801.59,25.6,183.672,-80.1472],[886.442,-1700.18,25.0333,179.616,-79.8427],[868.426,-1601.16,24.4667,175.503,-79.5215],[849.737,-1501.73,23.8833,171.209,-79.172],[830.366,-1402.18,23.2833,166.731,-78.7906],[809.76,-1300.12,22.65,161.939,-78.3618],[788.992,-1201.21,22.0167,157.082,-77.903],[766.962,-1100.55,21.35,151.901,-77.3841],[744.204,-1001.11,20.6667,146.522,-76.8096],[720.151,-900.944,19.95,140.809,-76.1544],[694.78,-800.714,19.2,134.758,-75.4031],[668.075,-701.118,18.4167,128.366,-74.5355],[639.44,-600.962,17.5833,121.495,-73.5038],[608.847,-501.42,16.7,114.144,-72.264],[575.099,-400.418,15.7333,106.042,-70.6972],[538.144,-300.242,14.6833,97.2048,-68.6823],[496.748,-200.76,13.5167,87.399,-65.9434],[447.848,-100.294,12.15,76.0498,-61.8065],[387.093,-0.751752,10.4667,62.6038,-54.6189],[292.326,99.6404,7.86667,44.8942,-35.3203],[194.857,134.396,5.21667,36.9235,-0.115417]]], + [55,137.774,[[918.592,-2002.33,26.7667,191.301,-80.9141],[902.42,-1902.56,26.2333,187.589,-80.6608],[885.614,-1801.81,25.6833,183.705,-80.3868],[868.164,-1700.31,25.1167,179.646,-80.0896],[850.578,-1601.19,24.55,175.528,-79.7762],[832.336,-1501.67,23.9667,171.23,-79.4352],[813.428,-1402.02,23.3667,166.748,-79.063],[793.845,-1302.5,22.75,162.077,-78.6559],[773.042,-1200.83,22.1,157.087,-78.1967],[751.539,-1100.06,21.4333,151.899,-77.6902],[729.325,-1000.5,20.75,146.511,-77.1293],[705.847,-900.212,20.0333,140.789,-76.4897],[681.635,-802.028,19.3,134.862,-75.7732],[655.015,-700.115,18.5,128.322,-74.9088],[627.627,-601.758,17.6833,121.573,-73.9222],[597.204,-500.111,16.7833,114.064,-72.6893],[564.833,-400.609,15.8333,106.078,-71.1859],[528.767,-300.085,14.7833,97.2102,-69.2203],[488.366,-200.212,13.6167,87.3608,-66.5463],[441.228,-100.412,12.2667,76.0824,-62.5586],[381.939,-0.0332593,10.5833,62.5117,-55.5381],[291.847,99.8707,8.05,44.8529,-37.1802],[192.558,137.773,5.28333,36.03,-0.14155]]], + [56,141.108,[[898.64,-2003.08,26.85,191.353,-81.1439],[882.375,-1900.13,26.3,187.521,-80.8892],[866.481,-1802.37,25.7667,183.751,-80.63],[849.464,-1700.78,25.2,179.689,-80.3403],[832.315,-1601.55,24.6333,175.567,-80.0349],[814.526,-1501.93,24.05,171.265,-79.7024],[796.087,-1402.17,23.45,166.778,-79.3396],[776.99,-1302.54,22.8333,162.102,-78.9427],[756.704,-1200.75,22.1833,157.106,-78.495],[736.26,-1102.33,21.5333,152.041,-78.0141],[714.071,-1000.17,20.8333,146.515,-77.4544],[691.71,-902.032,20.1333,140.918,-76.8457],[667.565,-801.422,19.3833,134.847,-76.1317],[642.148,-701.427,18.6,128.43,-75.307],[614.896,-600.843,17.7667,121.529,-74.3258],[585.78,-500.843,16.8833,114.142,-73.1463],[554.217,-401.015,15.9333,106.133,-71.6821],[519.051,-300.129,14.8833,97.2342,-69.767],[480.223,-201.193,13.7333,87.4829,-67.2015],[434.266,-100.707,12.3833,76.1368,-63.322],[377.038,-0.336763,10.7167,62.574,-56.5582],[290.951,99.877,8.23333,44.8608,-39.0647],[190.08,141.106,5.35,35.126,-0.19459]]], + [57,144.396,[[877.776,-2001.02,26.9167,191.302,-81.3697],[862.409,-1901.12,26.3833,187.583,-81.129],[846.439,-1800.24,25.8333,183.691,-80.8685],[830.346,-1701.57,25.2833,179.744,-80.5946],[813.639,-1602.24,24.7167,175.62,-80.2972],[796.309,-1502.51,24.1333,171.314,-79.9735],[778.345,-1402.63,23.5333,166.822,-79.6203],[759.236,-1300.22,22.9,162.014,-79.2229],[739.977,-1200.96,22.2667,157.139,-78.7978],[720.06,-1102.42,21.6167,152.068,-78.3295],[698.444,-1000.11,20.9167,146.535,-77.7844],[676.658,-901.837,20.2167,140.929,-77.1915],[653.136,-801.076,19.4667,134.847,-76.496],[628.374,-700.922,18.6833,128.418,-75.6924],[601.824,-600.166,17.85,121.502,-74.7362],[573.996,-501.81,16.9833,114.237,-73.6095],[543.251,-401.643,16.0333,106.206,-72.1855],[508.996,-300.379,14.9833,97.2771,-70.3221],[471.173,-201.025,13.8333,87.4844,-67.8242],[426.406,-100.045,12.4833,76.0739,-64.0423],[371.78,-0.819671,10.85,62.6635,-57.5913],[289.634,99.6493,8.41667,44.9199,-40.9694],[186.853,144.396,5.4,34.2126,-0.00318078]]], + [58,147.633,[[856.975,-2002.47,27,191.378,-81.6061],[842.019,-1902.47,26.4667,187.657,-81.372],[826.477,-1801.49,25.9167,183.763,-81.1187],[810.816,-1702.7,25.3667,179.814,-80.8524],[794.076,-1600.37,24.7833,175.564,-80.5544],[777.206,-1500.6,24.2,171.252,-80.2391],[759.72,-1400.67,23.6,166.755,-79.895],[741.61,-1300.87,22.9833,162.068,-79.5184],[722.867,-1201.48,22.35,157.188,-79.105],[702.985,-1100.31,21.6833,151.98,-78.6373],[682.446,-1000.35,21,146.569,-78.1191],[661.244,-901.922,20.3,140.955,-77.5425],[638.351,-800.999,19.55,134.863,-76.8657],[614.252,-700.675,18.7667,128.423,-76.0839],[588.932,-601.696,17.95,121.631,-75.1729],[561.33,-501.189,17.0667,114.209,-74.0563],[531.408,-400.811,16.1167,106.156,-72.6694],[498.602,-300.844,15.0833,97.3397,-70.8852],[461.797,-201.055,13.9333,87.5064,-68.4567],[418.774,-100.708,12.6,76.1732,-64.828],[365.622,-0.597068,10.9667,62.6468,-58.5584],[287.344,99.6879,8.58333,44.9236,-42.7369],[184.031,147.632,5.46667,33.2879,-0.110115]]], + [59,150.815,[[835.293,-2001.14,27.0667,191.352,-81.8386],[820.751,-1901.09,26.5333,187.628,-81.611],[805.638,-1800.06,25.9833,183.73,-81.3646],[790.41,-1701.23,25.4333,179.776,-81.1055],[774.6,-1601.73,24.8667,175.644,-80.8241],[758.2,-1501.83,24.2833,171.329,-80.5179],[741.201,-1401.78,23.6833,166.828,-80.1837],[723.596,-1301.84,23.0667,162.137,-79.8179],[705.375,-1202.31,22.4333,157.251,-79.4163],[686.046,-1101,21.7667,152.037,-78.962],[666.079,-1000.88,21.0833,146.62,-78.4586],[645.467,-902.294,20.3833,140.998,-77.8984],[623.211,-801.199,19.6333,134.897,-77.2409],[599.784,-700.693,18.85,128.445,-76.4811],[575.169,-601.524,18.0333,121.639,-75.5957],[548.335,-500.809,17.15,114.2,-74.5102],[519.246,-400.206,16.2,106.125,-73.1614],[487.869,-301.532,15.1833,97.4227,-71.4559],[452.094,-201.29,14.0333,87.5497,-69.0986],[410.274,-100.414,12.7,76.1553,-65.5723],[359.137,-0.549451,11.0833,62.6565,-59.5408],[284.657,99.5094,8.75,44.9743,-44.5253],[181.029,150.812,5.53333,32.3534,-0.25185]]], + [60,153.939,[[813.218,-2000.18,27.1333,191.34,-82.0744],[799.094,-1900.08,26.6,187.612,-81.8533],[784.863,-1802.02,26.0667,183.83,-81.6214],[769.626,-1700.1,25.5,179.753,-81.3623],[754.272,-1600.56,24.9333,175.616,-81.089],[738.344,-1500.59,24.35,171.297,-80.7914],[721.834,-1400.48,23.75,166.79,-80.4667],[704.735,-1300.48,23.1333,162.093,-80.1113],[687.039,-1200.89,22.5,157.201,-79.721],[668.737,-1102,21.85,152.111,-79.2909],[649.349,-1001.71,21.1667,146.688,-78.8026],[628.856,-900.658,20.45,140.923,-78.2455],[607.723,-801.682,19.7167,134.947,-77.6211],[584.974,-700.984,18.9333,128.484,-76.8838],[561.072,-601.613,18.1167,121.666,-76.0245],[535.015,-500.677,17.2333,114.21,-74.9708],[507.266,-401.534,16.3,106.255,-73.6858],[476.3,-300.902,15.2667,97.3832,-72.0041],[441.561,-200.367,14.1167,87.4713,-69.712],[401.462,-100.311,12.8,76.1605,-66.3282],[352.326,-0.683786,11.2,62.6937,-60.5373],[281.054,99.648,8.9,44.9584,-46.1864],[177.323,153.938,5.58333,31.4101,-0.133712]]], + [61,157,[[791.18,-2002.75,27.2167,191.456,-82.32],[777.483,-1902.54,26.6833,187.727,-82.1058],[763.249,-1801.32,26.1333,183.824,-81.874],[748.905,-1702.3,25.5833,179.864,-81.6302],[734.013,-1602.62,25.0167,175.726,-81.3655],[718.566,-1502.52,24.4333,171.403,-81.0773],[702.555,-1402.26,23.8333,166.894,-80.7627],[685.972,-1302.12,23.2167,162.193,-80.4185],[668.81,-1202.37,22.5833,157.297,-80.0404],[650.603,-1100.82,21.9167,152.07,-79.6127],[631.796,-1000.45,21.2333,146.639,-79.1388],[612.382,-901.619,20.5333,141,-78.6112],[591.419,-800.254,19.7833,134.879,-77.9917],[569.823,-701.554,19.0167,128.542,-77.2918],[546.641,-601.969,18.2,121.711,-76.4591],[521.37,-500.8,17.3167,114.238,-75.4378],[494.458,-401.408,16.3833,106.264,-74.1919],[464.426,-300.499,15.35,97.3641,-72.5607],[431.224,-201.027,14.2167,87.5585,-70.3719],[392.338,-100.407,12.9,76.1897,-67.0952],[344.688,-0.088763,11.3,62.6207,-61.4756],[277.082,99.5836,9.05,44.9862,-47.8696],[173.467,157,5.63333,30.4574,-0.039413]]], + [62,159.996,[[768.314,-2002.56,27.2833,191.471,-82.562],[755.045,-1902.28,26.75,187.739,-82.3545],[741.256,-1800.99,26.2,183.833,-82.13],[727.36,-1701.91,25.65,179.87,-81.8939],[712.934,-1602.16,25.0833,175.727,-81.6373],[697.97,-1501.99,24.5,171.401,-81.3581],[682.459,-1401.65,23.9,166.887,-81.0534],[666.395,-1301.42,23.2833,162.18,-80.7199],[649.769,-1201.59,22.65,157.278,-80.3536],[632.574,-1102.45,22,152.177,-79.9499],[614.358,-1001.91,21.3167,146.74,-79.4915],[595.104,-900.58,20.6,140.959,-78.9684],[575.25,-801.321,19.8667,134.965,-78.3819],[553.876,-700.316,19.0833,128.479,-77.6893],[531.419,-600.623,18.2667,121.634,-76.8818],[507.402,-501.184,17.4,114.286,-75.9109],[481.335,-401.529,16.4667,106.292,-74.705],[452.246,-300.327,15.4333,97.3662,-73.1255],[420.087,-200.53,14.3,87.5241,-71.0047],[382.901,-100.709,13,76.2437,-67.8724],[337.235,-0.600669,11.4167,62.7145,-62.4993],[272.252,99.8791,9.18333,44.9377,-49.4362],[169.954,159.993,5.7,29.4948,-0.288825]]], + [63,162.922,[[745.071,-2002.75,27.35,191.499,-82.8069],[732.235,-1902.4,26.8167,187.764,-82.6063],[718.895,-1801.04,26.2667,183.856,-82.3891],[705.453,-1701.89,25.7167,179.889,-82.1607],[691.497,-1602.06,25.15,175.743,-81.9127],[677.02,-1501.8,24.5667,171.413,-81.6426],[662.015,-1401.39,23.9667,166.895,-81.3478],[646.474,-1301.07,23.35,162.184,-81.0252],[630.391,-1201.15,22.7167,157.276,-80.6709],[613.757,-1101.92,22.0667,152.169,-80.2803],[596.135,-1001.28,21.3833,146.724,-79.8368],[577.943,-902.159,20.6833,141.071,-79.3429],[558.301,-800.482,19.9333,134.932,-78.763],[538.067,-701.46,19.1667,128.574,-78.1076],[516.345,-601.529,18.35,121.717,-77.3277],[493.115,-501.836,17.4833,114.355,-76.3898],[467.45,-400.191,16.5333,106.198,-75.2022],[439.766,-300.393,15.5167,97.3899,-73.698],[408.66,-200.255,14.3833,87.5124,-71.6469],[372.692,-100.038,13.0833,76.1785,-68.6142],[328.989,-0.380139,11.5167,62.6975,-63.467],[267.083,99.9828,9.31667,44.9303,-51.0269],[165.784,162.92,5.75,28.524,-0.260789]]], + [64,165.775,[[721.068,-2000.18,27.4,191.425,-83.0488],[709.055,-1902.92,26.8833,187.804,-82.861],[696.17,-1801.49,26.3333,183.893,-82.6513],[683.185,-1702.25,25.7833,179.924,-82.4308],[669.705,-1602.33,25.2167,175.775,-82.1912],[655.721,-1501.99,24.6333,171.441,-81.9305],[641.227,-1401.48,24.0333,166.919,-81.6458],[626.215,-1301.08,23.4167,162.203,-81.3343],[610.679,-1201.06,22.7833,157.291,-80.992],[594.612,-1101.73,22.1333,152.177,-80.6148],[577.59,-1000.98,21.45,146.726,-80.1865],[560.018,-901.745,20.75,141.065,-79.7094],[541.468,-802.159,20.0167,135.054,-79.1622],[521.499,-700.804,19.2333,128.549,-78.5159],[500.517,-600.741,18.4167,121.679,-77.7621],[478.078,-500.907,17.55,114.301,-76.8555],[453.723,-400.824,16.6167,106.268,-75.7288],[426.986,-300.705,15.6,97.4361,-74.2777],[396.943,-200.207,14.4667,87.5241,-72.2979],[362.652,-100.764,13.1833,76.2837,-69.4111],[320.447,-0.353621,11.6167,62.7095,-64.4486],[261.572,99.8866,9.45,44.9657,-52.6383],[161.466,165.773,5.8,27.5446,-0.266195]]], + [65,168.552,[[697.096,-2001.18,27.4667,191.481,-83.2995],[685.136,-1900.73,26.9333,187.741,-83.1125],[673.084,-1802.32,26.4,183.945,-82.9163],[660.181,-1700.01,25.8333,179.852,-82.6972],[647.178,-1600.08,25.2667,175.699,-82.466],[634.076,-1502.55,24.7,171.485,-82.2216],[620.098,-1401.94,24.1,166.959,-81.9472],[605.621,-1301.43,23.4833,162.239,-81.6469],[590.638,-1201.31,22.85,157.322,-81.317],[575.142,-1101.87,22.2,152.203,-80.9533],[558.726,-1001,21.5167,146.746,-80.5403],[541.78,-901.648,20.8167,141.078,-80.0804],[523.89,-801.936,20.0833,135.059,-79.5528],[504.632,-700.443,19.3,128.543,-78.9294],[484.397,-600.237,18.4833,121.661,-78.2023],[462.757,-500.25,17.6167,114.268,-77.3276],[439.691,-401.722,16.7,106.361,-76.2611],[413.908,-301.268,15.6833,97.505,-74.864],[384.939,-200.392,14.55,87.5598,-72.9572],[351.872,-100.517,13.2667,76.2696,-70.1742],[311.61,-0.527409,11.7167,62.7514,-65.4428],[255.72,99.5825,9.58333,45.0454,-54.2668],[156.999,168.55,5.85,26.5569,-0.309026]]], + [66,171.249,[[672.763,-2002.6,27.5333,191.552,-83.5528],[661.249,-1902.06,27,187.81,-83.3729],[649.283,-1800.5,26.45,183.893,-83.1782],[637.224,-1701.15,25.9,179.918,-82.9734],[624.706,-1601.12,25.3333,175.762,-82.7509],[611.72,-1500.65,24.75,171.42,-82.5087],[598.26,-1400.01,24.15,166.889,-82.2443],[584.698,-1302.15,23.55,162.292,-81.963],[570.273,-1201.92,22.9167,157.371,-81.6455],[555.354,-1102.35,22.2667,152.247,-81.2956],[539.55,-1001.36,21.5833,146.784,-80.8983],[523.235,-901.88,20.8833,141.109,-80.4556],[506.012,-802.03,20.15,135.082,-79.9479],[487.472,-700.389,19.3667,128.556,-79.3479],[467.991,-600.027,18.55,121.663,-78.648],[447.558,-501.736,17.7,114.399,-77.8231],[424.949,-401.167,16.7667,106.33,-76.7786],[400.127,-300.515,15.75,97.451,-75.4325],[372.649,-200.817,14.6333,87.6202,-73.624],[340.818,-100.49,13.35,76.2817,-70.9474],[302.479,-0.90913,11.8167,62.8242,-66.4484],[249.104,99.6851,9.7,45.0382,-55.7921],[151.959,171.249,5.88333,25.5615,-0.0277193]]], + [67,173.863,[[647.728,-2001.25,27.5833,191.522,-83.8033],[636.661,-1900.68,27.05,187.776,-83.6303],[625.509,-1802.14,26.5167,183.976,-83.4489],[613.922,-1702.68,25.9667,179.999,-83.2523],[601.893,-1602.55,25.4,175.84,-83.0387],[589.414,-1501.97,24.8167,171.496,-82.8062],[576.48,-1401.22,24.2167,166.962,-82.5523],[563.084,-1300.56,23.6,162.234,-82.2744],[549.22,-1200.28,22.9667,157.306,-81.9691],[534.882,-1100.68,22.3167,152.176,-81.6326],[520.064,-1002.07,21.65,146.84,-81.2599],[504.011,-900.121,20.9333,141.023,-80.8243],[487.458,-800.225,20.2,134.986,-80.3357],[470.019,-700.645,19.4333,128.59,-79.7711],[451.298,-600.114,18.6167,121.685,-79.0988],[431.664,-501.647,17.7667,114.408,-78.3063],[409.937,-400.882,16.8333,106.322,-77.3026],[386.085,-300.016,15.8167,97.42,-76.0085],[359.679,-200.081,14.7,87.5581,-74.2689],[329.49,-100.688,13.4333,76.3208,-71.7299],[292.652,-0.536367,11.9,62.7827,-67.4068],[242.177,99.5892,9.81667,45.0731,-57.3369],[147.215,173.862,5.93333,24.5577,-0.145571]]], + [68,176.39,[[622.373,-2000.33,27.6333,191.506,-84.0565],[612.091,-1902.83,27.1167,187.876,-83.8959],[601.061,-1801.14,26.5667,183.954,-83.7165],[589.947,-1701.64,26.0167,179.974,-83.5279],[578.409,-1601.46,25.45,175.812,-83.323],[566.439,-1500.84,24.8667,171.464,-83.0998],[554.033,-1400.05,24.2667,166.926,-82.8562],[541.532,-1302.03,23.6667,162.321,-82.597],[528.236,-1201.61,23.0333,157.39,-82.3045],[514.485,-1101.88,22.3833,152.256,-81.982],[499.918,-1000.7,21.7,146.781,-81.6158],[484.88,-901.02,21,141.092,-81.2077],[469.005,-800.965,20.2667,135.048,-80.7396],[452.281,-701.217,19.5,128.643,-80.1986],[434.327,-600.506,18.6833,121.729,-79.5544],[415.497,-501.849,17.8333,114.439,-78.7948],[394.661,-400.875,16.9,106.337,-77.8326],[372.162,-301.359,15.9,97.5597,-76.6139],[346.841,-200.999,14.7833,87.669,-74.9503],[317.892,-101.117,13.5167,76.3877,-72.5209],[282.566,-0.369633,11.9833,62.7718,-68.3785],[234.553,99.9311,9.91667,45.0143,-58.7902],[142.324,176.387,5.98333,23.5466,-0.31632]]], + [69,178.827,[[597.02,-2003.02,27.7,191.621,-84.3172],[586.862,-1902.29,27.1667,187.872,-84.1586],[576.306,-1800.55,26.6167,183.948,-83.987],[565.668,-1701.01,26.0667,179.965,-83.8064],[554.625,-1600.78,25.5,175.8,-83.6102],[543.169,-1500.11,24.9167,171.448,-83.3966],[531.626,-1402.02,24.3333,167.033,-83.1701],[519.33,-1301.18,23.7167,162.297,-82.9152],[506.605,-1200.72,23.0833,157.361,-82.6352],[493.445,-1100.92,22.4333,152.221,-82.3265],[479.844,-1002.1,21.7667,146.874,-81.9846],[465.454,-902.264,21.0667,141.18,-81.5947],[450.263,-802.039,20.3333,135.131,-81.1472],[434.259,-702.112,19.5667,128.718,-80.6302],[417.079,-601.208,18.75,121.794,-80.0144],[398.705,-500.474,17.8833,114.348,-79.273],[379.121,-401.149,16.9667,106.374,-78.3683],[357.591,-301.391,15.9667,97.5769,-77.2027],[333.36,-200.757,14.85,87.6576,-75.6108],[305.658,-100.563,13.5833,76.3337,-73.2841],[272.223,-0.414124,12.0667,62.7922,-69.3622],[227.026,99.4274,10.0333,45.1355,-60.3684],[136.912,178.826,6.01667,22.5283,-0.132019]]], + [70,181.172,[[571.029,-2002.95,27.75,191.636,-84.5753],[561.331,-1902.18,27.2167,187.885,-84.4239],[551.252,-1800.39,26.6667,183.958,-84.26],[541.095,-1700.79,26.1167,179.972,-84.0876],[530.551,-1600.5,25.55,175.804,-83.9003],[519.927,-1502.61,24.9833,171.574,-83.7024],[508.592,-1401.62,24.3833,167.03,-83.4801],[496.852,-1300.72,23.7667,162.29,-83.2367],[484.702,-1200.19,23.1333,157.35,-82.9694],[472.136,-1100.32,22.4833,152.205,-82.6745],[459.15,-1001.44,21.8167,146.853,-82.348],[445.411,-901.524,21.1167,141.152,-81.9756],[430.906,-801.221,20.3833,135.095,-81.5482],[415.626,-701.212,19.6167,128.673,-81.0542],[399.223,-600.221,18.8,121.738,-80.4658],[382.018,-501.27,17.95,114.423,-79.7717],[363.322,-401.71,17.0333,106.435,-78.9091],[342.425,-300.103,16.0167,97.4709,-77.7772],[319.637,-200.768,14.9167,87.6722,-76.2787],[293.191,-100.241,13.65,76.3074,-74.0572],[261.624,-0.675871,12.15,62.8448,-70.3565],[218.835,99.3694,10.1333,45.1611,-61.8575],[131.748,181.17,6.06667,21.5032,-0.413176]]], + [71,183.422,[[544.452,-2000.15,27.7833,191.549,-84.8313],[535.504,-1902.5,27.2667,187.912,-84.6915],[525.906,-1800.65,26.7167,183.983,-84.5355],[516.234,-1700.98,26.1667,179.995,-84.3714],[506.193,-1600.63,25.6,175.825,-84.1931],[496.076,-1502.68,25.0333,171.593,-84.0046],[485.282,-1401.62,24.4333,167.045,-83.793],[474.102,-1300.65,23.8167,162.302,-83.5613],[462.532,-1200.04,23.1833,157.357,-83.3067],[450.566,-1100.1,22.5333,152.208,-83.026],[438.199,-1001.13,21.8667,146.85,-82.7151],[425.116,-901.135,21.1667,141.143,-82.3603],[411.303,-800.743,20.4333,135.079,-81.9533],[396.752,-700.641,19.6667,128.649,-81.4827],[381.452,-601.555,18.8667,121.846,-80.9342],[364.748,-500.494,18,114.377,-80.2607],[346.944,-400.82,17.0833,106.374,-79.4384],[327.372,-300.679,16.0833,97.5373,-78.3784],[305.674,-201.038,14.9833,87.7132,-76.9533],[280.493,-100.156,13.7167,76.3096,-74.8391],[250.436,-0.167592,12.2167,62.7806,-71.3123],[210.033,99.7795,10.2167,45.0865,-63.2687],[126.099,183.421,6.1,20.4712,-0.315729]]], + [72,185.574,[[517.886,-2000.97,27.8333,191.594,-85.094],[509.114,-1900.14,27.3,187.838,-84.9571],[500.276,-1801.33,26.7667,184.025,-84.8134],[491.092,-1701.6,26.2167,180.035,-84.6576],[481.558,-1601.18,25.65,175.863,-84.4884],[471.668,-1500.31,25.0667,171.503,-84.3041],[461.702,-1402.02,24.4833,167.078,-84.1087],[451.087,-1300.96,23.8667,162.331,-83.8887],[440.101,-1200.27,23.2333,157.383,-83.647],[428.739,-1100.25,22.5833,152.23,-83.3806],[416.996,-1001.19,21.9167,146.867,-83.0854],[404.573,-901.099,21.2167,141.155,-82.7487],[391.458,-800.608,20.4833,135.084,-82.3622],[377.641,-700.4,19.7167,128.646,-81.9154],[363.113,-601.204,18.9167,121.834,-81.3945],[347.252,-500.022,18.05,114.353,-80.7548],[330.347,-400.22,17.1333,106.336,-79.9736],[312.073,-301.536,16.15,97.6291,-78.9845],[291.161,-200.142,15.0333,87.6312,-77.6109],[267.567,-100.313,13.7833,76.3407,-75.6291],[239.348,-0.874218,12.3,62.899,-72.3258],[200.992,99.9961,10.3,45.0525,-64.7008],[120.342,185.573,6.13333,19.4328,-0.261268]]], + [73,187.626,[[491.035,-2002.23,27.8833,191.654,-85.3589],[482.733,-1901.33,27.35,187.897,-85.2293],[474.368,-1802.45,26.8167,184.083,-85.0934],[465.676,-1702.65,26.2667,180.092,-84.946],[456.652,-1602.14,25.7,175.917,-84.7859],[447.292,-1501.19,25.1167,171.555,-84.6117],[437.589,-1400.05,24.5167,167.001,-84.4213],[427.813,-1301.68,23.9167,162.379,-84.2188],[417.415,-1200.89,23.2833,157.428,-83.9902],[406.661,-1100.77,22.6333,152.271,-83.7381],[395.547,-1001.62,21.9667,146.904,-83.4589],[383.789,-901.422,21.2667,141.187,-83.1403],[371.376,-800.82,20.5333,135.11,-82.7747],[358.298,-700.496,19.7667,128.665,-82.3519],[344.548,-601.176,18.9667,121.844,-81.859],[329.826,-501.747,18.1167,114.498,-81.2661],[313.828,-401.667,17.2,106.469,-80.5286],[296.241,-301.077,16.2,97.5982,-79.5776],[276.744,-200.939,15.1,87.7262,-78.298],[254.415,-100.718,13.85,76.4014,-76.426],[227.71,-0.809021,12.3667,62.9004,-73.3026],[192.018,99.3236,10.4,45.2074,-66.2346],[114.477,187.624,6.16667,18.3884,-0.257488]]], + [74,189.573,[[463.665,-2000.77,27.9167,191.614,-85.6217],[456.08,-1902.97,27.4,187.972,-85.5034],[447.944,-1800.96,26.85,184.038,-85.3712],[439.745,-1701.13,26.3,180.043,-85.2321],[431.233,-1600.62,25.7333,175.866,-85.0811],[422.657,-1502.5,25.1667,171.626,-84.9214],[413.507,-1401.26,24.5667,167.069,-84.7421],[404.03,-1300.1,23.95,162.316,-84.5457],[394.481,-1201.91,23.3333,157.491,-84.3358],[384.339,-1101.68,22.6833,152.331,-84.0982],[373.859,-1002.42,22.0167,146.961,-83.8352],[362.77,-902.109,21.3167,141.239,-83.5349],[351.063,-801.386,20.5833,135.157,-83.1903],[338.73,-700.934,19.8167,128.706,-82.792],[325.762,-601.479,19.0167,121.877,-82.3274],[311.606,-500.016,18.15,114.376,-81.7568],[296.791,-401.667,17.25,106.48,-81.0732],[280.205,-300.904,16.25,97.5929,-80.1763],[261.818,-200.574,15.15,87.6985,-78.9692],[240.76,-100.132,13.9,76.3403,-77.2017],[215.859,-0.971194,12.4333,62.9352,-74.2889],[182.202,99.8245,10.4667,45.1116,-67.6152],[108.508,189.572,6.2,17.3382,-0.314083]]], + [75,191.416,[[436.286,-2002.94,27.9667,191.706,-85.8902],[428.931,-1901.94,27.4333,187.946,-85.7756],[421.521,-1802.96,26.9,184.129,-85.6552],[413.586,-1700.06,26.3333,180.012,-85.5207],[405.826,-1602.44,25.7833,175.955,-85.383],[397.533,-1501.37,25.2,171.588,-85.2287],[388.937,-1400.11,24.6,167.029,-85.0601],[380.275,-1301.62,24,162.401,-84.8807],[371.063,-1200.71,23.3667,157.443,-84.6783],[361.536,-1100.45,22.7167,152.278,-84.4549],[351.69,-1001.16,22.05,146.903,-84.2076],[341.272,-900.822,21.35,141.175,-83.9253],[330.275,-800.069,20.6167,135.086,-83.6012],[318.942,-701.716,19.8667,128.769,-83.2351],[306.507,-600.098,19.05,121.79,-82.7896],[293.464,-500.489,18.2,114.423,-82.2637],[279.291,-400.214,17.2833,106.369,-81.6093],[263.97,-301.018,16.3,97.6137,-80.7802],[246.7,-200.477,15.2,87.6984,-79.6466],[227.186,-101.041,13.9667,76.4613,-78.0113],[203.532,-0.348489,12.4833,62.8512,-75.2452],[172.457,99.4259,10.55,45.2068,-69.0902],[102.435,191.414,6.23333,16.2826,-0.442817]]], + [76,193.15,[[408.435,-2002.39,28,191.698,-86.1571],[401.557,-1901.35,27.4667,187.936,-86.0498],[394.627,-1802.35,26.9333,184.117,-85.9373],[387.426,-1702.41,26.3833,180.119,-85.8153],[379.95,-1601.76,25.8167,175.938,-85.6827],[372.195,-1500.66,25.2333,171.569,-85.5382],[364.38,-1402.15,24.65,167.134,-85.3851],[356.057,-1300.84,24.0333,162.375,-85.2128],[347.67,-1202.52,23.4167,157.545,-85.0285],[338.762,-1102.14,22.7667,152.378,-84.82],[329.325,-1000.28,22.0833,146.864,-84.583],[319.817,-902.247,21.4,141.269,-84.3255],[309.535,-801.35,20.6667,135.176,-84.023],[298.702,-700.714,19.9,128.712,-83.6731],[287.312,-601.067,19.1,121.869,-83.2651],[275.118,-501.286,18.25,114.494,-82.774],[261.866,-400.825,17.3333,106.43,-82.1629],[247.541,-301.425,16.35,97.661,-81.3885],[231.394,-200.655,15.25,87.7263,-80.3295],[213.148,-100.96,14.0167,76.4605,-78.801],[191.282,-0.972431,12.55,62.9544,-76.2481],[162.229,99.5229,10.6167,45.1956,-70.5032],[96.0047,193.15,6.25,15.2214,-0.0443312]]], + [77,194.775,[[380.364,-2002.3,28.0333,191.705,-86.4257],[373.966,-1901.23,27.5,187.942,-86.3259],[367.519,-1802.19,26.9667,184.121,-86.2212],[360.821,-1702.21,26.4167,180.122,-86.1077],[353.866,-1601.53,25.85,175.939,-85.9844],[346.652,-1500.39,25.2667,171.567,-85.8501],[339.383,-1401.83,24.6833,167.13,-85.7076],[331.64,-1300.49,24.0667,162.368,-85.5473],[323.838,-1202.11,23.45,157.535,-85.3759],[315.552,-1101.69,22.8,152.365,-85.182],[306.989,-1002.23,22.1333,146.983,-84.967],[297.928,-901.703,21.4333,141.247,-84.7218],[288.364,-800.753,20.7,135.149,-84.4402],[278.287,-700.063,19.9333,128.679,-84.1147],[267.692,-600.358,19.1333,121.828,-83.7348],[256.348,-500.516,18.2833,114.444,-83.2777],[244.246,-401.748,17.3833,106.516,-82.7198],[230.696,-300.516,16.3833,97.5854,-81.9873],[215.904,-201.111,15.3,87.7828,-81.0171],[198.933,-101.135,14.0667,76.4904,-79.5969],[178.595,-0.811413,12.6,62.9385,-77.2229],[151.807,99.414,10.6833,45.2276,-71.9295],[89.7454,194.773,6.28333,14.1556,-0.322965]]], + [78,196.287,[[352.082,-2002.68,28.0667,191.729,-86.696],[346.167,-1901.56,27.5333,187.965,-86.6037],[340.206,-1802.48,27,184.143,-86.5069],[334.013,-1702.46,26.45,180.142,-86.402],[327.583,-1601.73,25.8833,175.957,-86.288],[320.912,-1500.54,25.3,171.584,-86.1639],[314.192,-1401.94,24.7167,167.144,-86.0322],[307.033,-1300.54,24.1,162.38,-85.884],[299.819,-1202.12,23.4833,157.545,-85.7255],[292.158,-1101.64,22.8333,152.371,-85.5461],[284.24,-1002.12,22.1667,146.986,-85.3475],[275.863,-901.534,21.4667,141.246,-85.1207],[267.019,-800.521,20.7333,135.143,-84.8604],[257.906,-701.901,19.9833,128.81,-84.5662],[248.111,-602.01,19.1833,121.954,-84.2159],[237.418,-500.071,18.3167,114.419,-83.7853],[226.228,-401.224,17.4167,106.48,-83.2692],[213.91,-301.517,16.4333,97.6865,-82.6037],[200.023,-200.401,15.3333,87.7162,-81.6931],[184.333,-100.314,14.1,76.3977,-80.3775],[165.743,-0.885423,12.65,62.9574,-78.2057],[140.977,99.8177,10.7333,45.1497,-73.306],[83.1688,196.287,6.3,13.085,-0.0136016]]], + [79,197.685,[[323.43,-2000.33,28.0833,191.653,-86.9652],[318.169,-1902.36,27.5667,188.004,-86.8831],[312.525,-1800.16,27.0167,184.061,-86.7915],[306.838,-1700.16,26.4667,180.057,-86.6949],[301.108,-1602.37,25.9167,175.994,-86.5934],[294.984,-1501.13,25.3333,171.619,-86.4794],[288.814,-1402.47,24.75,167.178,-86.3586],[282.242,-1301.02,24.1333,162.412,-86.2225],[275.619,-1202.53,23.5167,157.574,-86.0771],[268.586,-1101.99,22.8667,152.398,-85.9126],[261.317,-1002.4,22.2,147.01,-85.7302],[253.627,-901.745,21.5,141.267,-85.5222],[245.508,-800.657,20.7667,135.16,-85.2832],[237.141,-701.959,20.0167,128.822,-85.0132],[228.149,-601.986,19.2167,121.96,-84.6916],[218.522,-501.856,18.3667,114.564,-84.3044],[208.06,-401.014,17.45,106.47,-83.8224],[196.751,-301.203,16.4667,97.6647,-83.2113],[184.196,-201.421,15.3833,87.8304,-82.3889],[169.793,-101.011,14.15,76.4899,-81.1843],[152.532,-0.166529,12.6833,62.8559,-79.167],[130.193,99.2894,10.8,45.2695,-74.753],[76.7304,197.684,6.33333,12.0106,-0.518528]]], + [80,198.968,[[294.771,-2001.65,28.1167,191.71,-87.2384],[289.826,-1900.49,27.5833,187.942,-87.1613],[284.844,-1801.37,27.05,184.117,-87.0803],[279.667,-1701.3,26.5,180.113,-86.9925],[274.292,-1600.53,25.9333,175.924,-86.8973],[268.877,-1502.16,25.3667,171.672,-86.7965],[263.099,-1400.65,24.7667,167.102,-86.6834],[257.277,-1301.91,24.1667,162.463,-86.5628],[251.085,-1200.73,23.5333,157.492,-86.4269],[244.681,-1100.2,22.8833,152.312,-86.2768],[238.063,-1000.63,22.2167,146.919,-86.1106],[231.228,-902.336,21.5333,141.31,-85.9257],[223.837,-801.163,20.8,135.199,-85.7083],[216.051,-700.236,20.0333,128.715,-85.4568],[207.864,-600.283,19.2333,121.847,-85.1634],[199.098,-500.174,18.3833,114.441,-84.8102],[189.747,-401.122,17.4833,106.486,-84.379],[179.452,-301.191,16.5,97.6702,-83.8228],[168.023,-201.274,15.4167,87.8215,-83.0741],[154.911,-100.711,14.1833,76.4597,-81.977],[139.377,-0.716556,12.7333,62.9453,-80.1634],[119.043,99.2772,10.85,45.2787,-76.1527],[70.0142,198.967,6.35,10.9317,-0.365738]]], + [81,200.134,[[265.793,-2000.25,28.1333,191.666,-87.5106],[261.476,-1902.23,27.6167,188.015,-87.4433],[256.987,-1803.04,27.0833,184.19,-87.3704],[252.322,-1702.91,26.5333,180.186,-87.2914],[247.479,-1602.07,25.9667,175.997,-87.2057],[242.455,-1500.76,25.3833,171.618,-87.1122],[237.393,-1402.04,24.8,167.174,-87.013],[232,-1300.52,24.1833,162.403,-86.9014],[226.567,-1201.97,23.5667,157.561,-86.782],[220.796,-1101.36,22.9167,152.38,-86.647],[214.833,-1001.7,22.25,146.986,-86.4974],[208.523,-900.963,21.55,141.236,-86.3266],[202.014,-802.044,20.8333,135.261,-86.1351],[194.998,-701.014,20.0667,128.773,-85.9087],[187.62,-600.952,19.2667,121.901,-85.6447],[179.722,-500.728,18.4167,114.49,-85.3266],[171.295,-401.552,17.5167,106.529,-84.9384],[162.018,-301.483,16.5333,97.7034,-84.4376],[151.719,-201.414,15.45,87.8421,-83.7633],[139.904,-100.675,14.2167,76.461,-82.7749],[125.905,-0.473471,12.7667,62.9143,-81.1399],[107.582,99.7914,10.8833,45.1751,-77.5163],[64.8813,199.975,6.53333,9.99082,-9.70463],[63.2399,200.133,6.36667,9.84921,-0.289694]]], + [82,201.181,[[236.796,-2002.52,28.1667,191.756,-87.7861],[232.831,-1901.3,27.6333,187.987,-87.7244],[228.835,-1802.1,27.1,184.16,-87.6594],[224.683,-1701.97,26.55,180.154,-87.5891],[220.373,-1601.12,25.9833,175.963,-87.5126],[216.03,-1502.67,25.4167,171.709,-87.4319],[211.396,-1401.08,24.8167,167.136,-87.3411],[206.727,-1302.26,24.2167,162.494,-87.2446],[201.761,-1201,23.5833,157.519,-87.1356],[196.625,-1100.38,22.9333,152.335,-87.0153],[191.318,-1000.71,22.2667,146.937,-86.882],[185.836,-902.327,21.5833,141.322,-86.7337],[179.909,-801.05,20.85,135.205,-86.5594],[173.665,-700.015,20.0833,128.712,-86.3578],[167.236,-601.975,19.3,121.979,-86.1276],[160.208,-501.621,18.45,114.564,-85.8451],[152.57,-400.535,17.5333,106.449,-85.4931],[144.313,-300.46,16.55,97.6136,-85.0467],[135.148,-200.385,15.4667,87.7392,-84.4453],[124.775,-100.907,14.25,76.4944,-83.577],[112.318,-0.471998,12.8,62.919,-82.1228],[96.1576,99.3582,10.9333,45.2725,-78.9345],[60.6444,199.971,6.86667,9.98351,-28.6588],[56.4095,201.18,6.38333,8.76351,-0.31998]]], + [83,202.108,[[207.532,-2002.07,28.1833,191.746,-88.0607],[204.059,-1900.84,27.65,187.976,-88.0066],[200.558,-1801.63,27.1167,184.148,-87.9497],[196.921,-1701.48,26.5667,180.141,-87.8881],[193.146,-1600.62,26,175.948,-87.8211],[189.341,-1502.16,25.4333,171.693,-87.7504],[185.282,-1400.56,24.8333,167.118,-87.6709],[181.193,-1301.72,24.2333,162.474,-87.5863],[176.842,-1200.45,23.6,157.497,-87.4907],[172.459,-1102.35,22.9667,152.444,-87.3881],[167.694,-1000.13,22.2833,146.91,-87.2686],[162.893,-901.728,21.6,141.292,-87.1386],[157.701,-800.434,20.8667,135.172,-86.9858],[152.35,-701.524,20.1167,128.818,-86.8132],[146.6,-601.322,19.3167,121.938,-86.6075],[140.443,-500.948,18.4667,114.518,-86.3598],[133.875,-401.612,17.5667,106.544,-86.0572],[126.643,-301.367,16.5833,97.7026,-85.6669],[118.616,-201.102,15.5,87.819,-85.1411],[109.406,-100.139,14.2667,76.4048,-84.37],[98.6207,-0.713834,12.8333,62.9598,-83.1103],[84.466,99.4537,10.9667,45.2567,-80.319],[54.5128,199.938,7.05,10.0164,-40.0131],[49.5253,202.106,6.4,7.67501,-0.501733]]], + [84,202.913,[[178.149,-2002.11,28.2,191.753,-88.3363],[175.169,-1900.86,27.6667,187.982,-88.2899],[172.166,-1801.63,27.1333,184.153,-88.2412],[169.045,-1701.46,26.5833,180.145,-88.1882],[165.806,-1600.58,26.0167,175.952,-88.1307],[162.542,-1502.1,25.45,171.695,-88.07],[159.06,-1400.47,24.85,167.119,-88.0019],[155.551,-1301.62,24.25,162.473,-87.9293],[151.819,-1200.32,23.6167,157.495,-87.8473],[148.058,-1102.2,22.9833,152.441,-87.7593],[144.07,-1002.4,22.3167,147.041,-87.6593],[139.85,-901.519,21.6167,141.285,-87.5452],[135.396,-800.197,20.8833,135.162,-87.4141],[130.805,-701.257,20.1333,128.804,-87.2659],[125.872,-601.024,19.3333,121.921,-87.0894],[120.589,-500.616,18.4833,114.496,-86.8768],[114.954,-401.244,17.5833,106.517,-86.6171],[108.75,-300.96,16.6,97.6688,-86.2821],[101.863,-200.652,15.5167,87.7757,-85.8306],[94.0684,-100.91,14.3,76.503,-85.1785],[84.708,-0.157604,12.85,62.8796,-84.0853],[72.6731,99.3367,11,45.2855,-81.7107],[47.6353,199.887,7.18333,10.069,-49.1918],[42.5891,202.911,6.41667,6.58423,-0.911152]]], + [85,203.596,[[148.658,-2002.63,28.2167,191.777,-88.6129],[146.172,-1901.35,27.6833,188.005,-88.574],[143.668,-1802.1,27.15,184.176,-88.5334],[141.066,-1701.91,26.6,180.167,-88.4893],[138.364,-1601,26.0333,175.974,-88.4414],[135.642,-1502.49,25.4667,171.716,-88.3909],[132.737,-1400.83,24.8667,167.14,-88.3339],[129.811,-1301.94,24.2667,162.493,-88.2734],[126.698,-1200.61,23.6333,157.514,-88.2051],[123.562,-1102.45,23,152.459,-88.1316],[120.153,-1000.17,22.3167,146.921,-88.0462],[116.717,-901.703,21.6333,141.299,-87.953],[113.002,-800.341,20.9,135.174,-87.8439],[109.174,-701.36,20.15,128.815,-87.7204],[105.059,-601.082,19.35,121.929,-87.573],[100.654,-500.626,18.5,114.501,-87.3958],[95.9537,-401.204,17.6,106.517,-87.1792],[90.7795,-300.864,16.6167,97.6632,-86.8997],[85.0355,-200.494,15.5333,87.7623,-86.5232],[78.5352,-100.682,14.3167,76.4782,-85.979],[70.8187,-0.891516,12.8833,62.9934,-85.0792],[60.6917,99.7559,11.0167,45.1993,-83.081],[40.1769,199.986,7.26667,9.97626,-56.6304],[35.603,203.593,6.43333,5.49216,-1.68453]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 70.8187; +_maxRange = 407.499; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg1.sqf new file mode 100644 index 0000000000..434c18e5d9 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg1.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_60mm_m720a1_m734_pd_chg1 +// Ammo: ace_arty_60mm_m720a1_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,373.038,[[2441.17,-2002.72,31.4667,206.524,-71.6102],[2407.38,-1902.34,30.95,203.367,-71.158],[2372.21,-1800.64,30.4167,200.069,-70.6723],[2336.75,-1700.91,29.8833,196.732,-70.1661],[2299.9,-1600.16,29.3333,193.251,-69.6212],[2262.74,-1501.58,28.7833,189.733,-69.0518],[2224.15,-1402.31,28.2167,186.07,-68.4375],[2184.1,-1302.59,27.6333,182.261,-67.7738],[2142.57,-1202.67,27.0333,178.306,-67.0556],[2098.36,-1100.17,26.4,174.093,-66.2553],[2053.79,-1000.75,25.7667,169.846,-65.4081],[2007.66,-901.986,25.1167,165.455,-64.4856],[1958.76,-801.767,24.4333,160.811,-63.4527],[1907.03,-700.7,23.7167,155.918,-62.2933],[1853.64,-601.63,22.9833,150.896,-61.0182],[1796.12,-500.734,22.2,145.528,-59.546],[1735.62,-401.049,21.3833,139.943,-57.8764],[1670.84,-301.498,20.5167,134.054,-55.9356],[1600.44,-201.582,19.5833,127.787,-53.6255],[1523.02,-101.481,18.5667,121.097,-50.8132],[1435.87,-0.79562,17.4333,113.885,-47.2599],[1336.15,99.1207,16.15,106.165,-42.6205],[1214.33,199.518,14.6,97.7382,-36.0095],[1047.05,299.534,12.5,88.601,-25.0914],[732.904,373.036,8.63333,82.2422,-0.0861465]]], + [46,385.843,[[2414.19,-2001.46,31.6667,206.596,-71.9508],[2380.99,-1900.85,31.15,203.431,-71.5068],[2347.52,-1802.06,30.6333,200.227,-71.0451],[2312.7,-1702.02,30.1,196.881,-70.5487],[2276.5,-1600.95,29.55,193.39,-70.0143],[2240,-1502.05,29,189.861,-69.4557],[2202.1,-1402.44,28.4333,186.185,-68.8531],[2162.76,-1302.36,27.85,182.363,-68.202],[2121.97,-1202.08,27.25,178.392,-67.4973],[2079.69,-1101.86,26.6333,174.273,-66.7332],[2035.92,-1001.97,26,170.007,-65.9028],[1989.45,-900.211,25.3333,165.482,-64.9746],[1942.59,-801.973,24.6667,160.928,-63.9858],[1891.8,-700.354,23.95,156.006,-62.8487],[1839.37,-600.712,23.2167,150.952,-61.5976],[1784.09,-501.308,22.45,145.66,-60.1846],[1724.68,-400.861,21.6333,140.03,-58.5478],[1661.08,-300.493,20.7667,134.087,-56.6438],[1593.19,-201.422,19.85,127.866,-54.4182],[1517.19,-100.194,18.8333,121.09,-51.6589],[1434.15,-1.07382,17.7333,113.978,-48.2764],[1337.56,99.4589,16.4667,106.193,-43.7876],[1221.9,199.375,14.9667,97.7772,-37.5163],[1065.68,299.773,12.9667,88.533,-27.324],[732.217,385.84,8.78333,80.7551,-0.113734]]], + [47,398.627,[[2385.95,-2000.78,31.8667,206.687,-72.2975],[2354.41,-1903.15,31.3667,203.616,-71.8763],[2320.49,-1800.89,30.8333,200.3,-71.409],[2286.3,-1700.59,30.3,196.944,-70.9219],[2251.84,-1602.3,29.7667,193.55,-70.4138],[2214.92,-1500.08,29.2,189.902,-69.8494],[2177.71,-1400.19,28.6333,186.213,-69.2579],[2140.19,-1302.66,28.0667,182.486,-68.6375],[2100.15,-1202,27.4667,178.5,-67.9466],[2058.65,-1101.39,26.85,174.365,-67.1973],[2015.68,-1001.1,26.2167,170.08,-66.383],[1971.21,-901.418,25.5667,165.647,-65.496],[1924.07,-800.233,24.8833,160.954,-64.5023],[1875.37,-700.47,24.1833,156.119,-63.4131],[1823.91,-600.243,23.45,151.033,-62.1868],[1769.65,-500.22,22.6833,145.704,-60.8012],[1712.55,-401.114,21.8833,140.146,-59.2294],[1651.33,-301.795,21.0333,134.264,-57.401],[1584.73,-201.698,20.1167,127.977,-55.2222],[1511.39,-100.925,19.1167,121.228,-52.5649],[1429.93,-0.383051,18.0167,114.004,-49.2513],[1337.68,99.3024,16.7833,106.27,-44.9688],[1226.78,199.614,15.3167,97.7952,-38.9621],[1081.32,299.62,13.4167,88.5281,-29.4796],[729.544,398.626,8.91667,79.2551,-0.0427388]]], + [48,411.373,[[2356.43,-2000.7,32.0667,206.796,-72.6504],[2325.48,-1902.82,31.5667,203.717,-72.2375],[2292.2,-1800.29,31.0333,200.393,-71.7794],[2259.71,-1702.84,30.5167,197.133,-71.3171],[2224.84,-1601.17,29.9667,193.622,-70.8037],[2189.68,-1501.65,29.4167,190.071,-70.267],[2153.18,-1401.4,28.85,186.371,-69.6878],[2115.29,-1300.66,28.2667,182.52,-69.0618],[2077.09,-1202.46,27.6833,178.631,-68.4034],[2036.38,-1101.44,27.0667,174.479,-67.6694],[1994.22,-1000.73,26.4333,170.175,-66.8715],[1950.6,-900.616,25.7833,165.721,-66.0022],[1905.48,-801.407,25.1167,161.12,-65.0527],[1857.72,-701.075,24.4167,156.258,-63.9864],[1807.25,-600.246,23.6833,151.141,-62.7855],[1755.19,-501.724,22.9333,145.892,-61.4587],[1699.19,-401.836,22.1333,140.292,-59.9209],[1639.16,-301.678,21.2833,134.358,-58.131],[1573.84,-200.667,20.3667,128.007,-55.9963],[1503.12,-100.511,19.3833,121.291,-53.436],[1424.47,-0.148618,18.3,114.071,-50.2399],[1335.25,99.8992,17.0833,106.293,-46.1019],[1230.27,199.241,15.6667,97.8781,-40.4228],[1092.77,299.955,13.8333,88.4968,-31.4679],[844.898,399.779,10.5833,78.4717,-10.9856],[727.544,411.371,9.06667,77.7265,-0.108629]]], + [49,424.069,[[2325.64,-2001.23,32.2667,206.925,-73.0091],[2295.3,-1903.1,31.7667,203.839,-72.6047],[2262.66,-1800.3,31.2333,200.506,-72.156],[2230.8,-1702.58,30.7167,197.237,-71.7032],[2196.61,-1600.62,30.1667,193.716,-71.2003],[2162.14,-1500.81,29.6167,190.154,-70.6744],[2126.34,-1400.25,29.05,186.441,-70.1069],[2090.25,-1302.06,28.4833,182.688,-69.5115],[2051.73,-1200.69,27.8833,178.673,-68.8483],[2012.9,-1102.03,27.2833,174.617,-68.1488],[1971.57,-1000.89,26.65,170.295,-67.3677],[1928.8,-900.333,26,165.821,-66.5166],[1884.57,-800.661,25.3333,161.196,-65.5866],[1838.86,-702.194,24.65,156.424,-64.5679],[1789.39,-600.746,23.9167,151.277,-63.393],[1738.37,-501.586,23.1667,145.993,-62.0947],[1683.47,-401.011,22.3667,140.351,-60.589],[1624.63,-300.116,21.5167,134.367,-58.8354],[1561.77,-200.089,20.6167,128.07,-56.7823],[1493.64,-100.564,19.65,121.39,-54.319],[1417.76,-0.397727,18.5833,114.178,-51.2412],[1331.55,99.994,17.3833,106.364,-47.2494],[1231.14,199.316,16,97.9316,-41.8248],[1102.63,299.38,14.25,88.573,-33.4716],[891.39,399.68,11.4167,78.2763,-16.0916],[723.598,424.068,9.2,76.1854,-0.0740305]]], + [50,436.699,[[2293.58,-2002.41,32.4667,207.074,-73.3736],[2262.84,-1900.76,31.95,203.877,-72.9645],[2231.86,-1800.93,31.4333,200.64,-72.5389],[2200.64,-1702.94,30.9167,197.363,-72.0957],[2167.14,-1600.67,30.3667,193.832,-71.6036],[2133.36,-1500.56,29.8167,190.258,-71.0888],[2099.32,-1402.63,29.2667,186.644,-70.5501],[2062.92,-1301.18,28.6833,182.768,-69.9504],[2026.22,-1202.27,28.1,178.85,-69.3196],[1987.11,-1100.48,27.4833,174.665,-68.6161],[1947.69,-1001.61,26.8667,170.44,-67.8718],[1905.79,-900.592,26.2167,165.945,-67.0392],[1862.45,-800.444,25.55,161.298,-66.1295],[1817.67,-701.484,24.8667,156.501,-65.1325],[1770.31,-601.771,24.15,151.441,-64.0095],[1720.33,-501.956,23.4,146.123,-62.7402],[1666.56,-400.676,22.6,140.44,-61.2676],[1610.06,-300.958,21.7667,134.525,-59.5868],[1549.64,-201.798,20.8833,128.285,-57.6191],[1482.92,-101.112,19.9167,121.528,-55.2138],[1409.78,-1.15934,18.8667,114.329,-52.2545],[1326.55,99.5568,17.6833,106.484,-48.4102],[1229.44,199.899,16.3167,97.9484,-43.1713],[1108.47,299.572,14.6333,88.5892,-35.314],[921.403,399.825,12.0667,78.155,-19.9532],[719.019,436.698,9.33333,74.6237,-0.0584285]]], + [51,449.248,[[2259.26,-2000.94,32.65,207.14,-73.731],[2230.13,-1902.33,32.15,204.039,-73.3437],[2199.8,-1802.21,31.6333,200.795,-72.9277],[2168.24,-1700.79,31.1,197.403,-72.4802],[2136.42,-1601.36,30.5667,193.969,-72.0132],[2103.35,-1500.94,30.0167,190.386,-71.5099],[2070.01,-1402.7,29.4667,186.76,-70.983],[2034.37,-1300.91,28.8833,182.871,-70.3966],[1998.44,-1201.65,28.3,178.939,-69.7795],[1961.19,-1102.23,27.7,174.852,-69.1104],[1921.54,-1000.27,27.0667,170.495,-68.363],[1881.57,-901.42,26.4333,166.097,-67.5697],[1839.15,-800.781,25.7667,161.428,-66.6806],[1795.3,-701.313,25.0833,156.605,-65.706],[1748.94,-601.063,24.3667,151.516,-64.6079],[1700,-500.68,23.6167,146.165,-63.3662],[1648.46,-400.856,22.8333,140.56,-61.9562],[1593.15,-300.378,22,134.597,-60.3133],[1534.01,-200.403,21.1167,128.3,-58.3884],[1469.84,-100.5,20.1667,121.588,-56.0762],[1399.4,-0.932618,19.1333,114.41,-53.2297],[1319.11,99.9108,17.9667,106.545,-49.526],[1226.42,199.899,16.6333,98.025,-44.5331],[1111.62,299.842,15,88.6114,-37.0869],[943.06,399.856,12.6333,78.1006,-23.2708],[713.804,449.247,9.46667,73.0424,-0.0633163]]], + [52,461.702,[[2223.69,-2000.15,32.8333,207.228,-74.0945],[2195.19,-1901.31,32.3333,204.119,-73.7158],[2165.5,-1800.96,31.8167,200.866,-73.3089],[2135.59,-1702.45,31.3,197.572,-72.8852],[2104.46,-1602.71,30.7667,194.129,-72.429],[2072.1,-1501.96,30.2167,190.536,-71.9374],[2038.49,-1400.44,29.65,186.789,-71.4067],[2004.61,-1301.26,29.0833,182.999,-70.8497],[1969.45,-1201.65,28.5,179.053,-70.2467],[1933,-1101.86,27.9,174.951,-69.5928],[1895.23,-1002.17,27.2833,170.692,-68.882],[1855.1,-900.272,26.6333,166.158,-68.0868],[1814.63,-801.699,25.9833,161.585,-67.2398],[1771.74,-701.708,25.3,156.739,-66.2881],[1726.38,-600.904,24.5833,151.621,-65.2155],[1679.58,-502.129,23.85,146.356,-64.0302],[1629.17,-401.579,23.0667,140.713,-62.6545],[1575.07,-300.32,22.2333,134.704,-61.0505],[1518.32,-201.349,21.3667,128.47,-59.2074],[1455.56,-100.4,20.4167,121.686,-56.951],[1387.79,-1.23235,19.4,114.533,-54.2174],[1310.4,99.7225,18.25,106.655,-50.6556],[1222.05,199.283,16.95,98.1634,-45.9088],[1113.3,299.337,15.3667,88.7221,-38.8751],[959.099,399.623,13.15,78.1128,-26.2746],[707.947,461.7,9.6,71.4416,-0.0903045]]], + [53,474.044,[[2186.89,-2000.07,33.0167,207.336,-74.4638],[2159.02,-1901,32.5167,204.22,-74.0939],[2129.99,-1800.4,32,200.959,-73.6964],[2100.73,-1701.64,31.4833,197.656,-73.2824],[2070.29,-1601.64,30.95,194.205,-72.8367],[2038.65,-1500.63,30.4,190.601,-72.3563],[2006.75,-1401.79,29.85,186.953,-71.8533],[1973.63,-1302.26,29.2833,183.151,-71.3096],[1939.26,-1202.29,28.7,179.192,-70.7211],[1903.62,-1102.12,28.1,175.075,-70.0827],[1866.7,-1002.03,27.4833,170.8,-69.3888],[1828.47,-902.304,26.85,166.365,-68.6327],[1787.89,-800.728,26.1833,161.653,-67.7848],[1745.96,-700.291,25.5,156.782,-66.855],[1702.65,-601.322,24.8,151.756,-65.832],[1656.9,-501.958,24.0667,146.46,-64.6753],[1607.62,-400.773,23.2833,140.779,-63.3321],[1555.8,-300.813,22.4667,134.845,-61.798],[1500.33,-201.002,21.6,128.557,-59.9997],[1440.08,-100.842,20.6667,121.824,-57.8372],[1373.85,-0.518371,19.65,114.584,-55.1702],[1300.42,98.961,18.5333,106.816,-51.7975],[1215.22,199.224,17.25,98.2581,-47.2315],[1111.23,299.951,15.7,88.7312,-40.5147],[969.759,399.639,13.6167,78.1249,-28.9717],[700.283,474.044,9.71667,69.8276,-0.00718586]]], + [54,486.262,[[2148.85,-2000.71,33.2,207.466,-74.8387],[2121.62,-1901.4,32.7,204.343,-74.4777],[2093.25,-1800.55,32.1833,201.075,-74.0898],[2064.67,-1701.53,31.6667,197.764,-73.6858],[2034.92,-1601.26,31.1333,194.303,-73.2508],[2004.95,-1503.01,30.6,190.799,-72.7964],[1972.84,-1400.85,30.0333,187.03,-72.2908],[1940.48,-1301.03,29.4667,183.216,-71.76],[1906.89,-1200.75,28.8833,179.243,-71.1853],[1872.07,-1100.27,28.2833,175.111,-70.5619],[1836.97,-1002.54,27.6833,170.935,-69.9029],[1799.63,-902.385,27.05,166.482,-69.1654],[1759.99,-800.363,26.3833,161.749,-68.3382],[1720.03,-701.879,25.7167,156.974,-67.4538],[1676.72,-600.017,25,151.802,-66.4323],[1632.02,-500.149,24.2667,146.474,-65.3027],[1584.91,-400.531,23.5,140.878,-64.0196],[1535.34,-301.88,22.7,135.022,-62.5549],[1481.17,-201.208,21.8333,128.681,-60.8029],[1422.32,-100.111,20.9,121.883,-58.694],[1358.71,-0.345333,19.9,114.677,-56.1358],[1288.1,99.0225,18.8,106.913,-52.8977],[1206,199.775,17.5333,98.3032,-48.5044],[1107.78,299.862,16.0333,88.8189,-42.171],[976.388,399.671,14.05,78.1563,-31.4758],[693.162,486.26,9.85,68.1887,-0.0808804]]], + [55,498.341,[[2109.56,-2002.1,33.3833,207.618,-75.2193],[2082.97,-1902.54,32.8833,204.489,-74.8674],[2055.28,-1801.42,32.3667,201.214,-74.4892],[2027.38,-1702.14,31.85,197.895,-74.0954],[1998.34,-1601.6,31.3167,194.425,-73.6713],[1968.16,-1500.02,30.7667,190.802,-73.214],[1937.74,-1400.6,30.2167,187.132,-72.7352],[1906.14,-1300.48,29.65,183.306,-72.2176],[1874.3,-1202.73,29.0833,179.435,-71.6735],[1840.31,-1101.84,28.4833,175.29,-71.0663],[1805.1,-1001.01,27.8667,170.981,-70.406],[1768.64,-900.507,27.2333,166.51,-69.6864],[1730.92,-800.628,26.5833,161.875,-68.8999],[1691.92,-701.68,25.9167,157.078,-68.0378],[1650.63,-601.645,25.2167,151.999,-67.0661],[1607.02,-501.154,24.4833,146.642,-65.9665],[1561.04,-400.879,23.7167,141.011,-64.717],[1512.66,-301.536,22.9167,135.114,-63.2899],[1459.8,-200.106,22.05,128.721,-61.5818],[1404.43,-101.694,21.15,122.103,-59.6019],[1342.37,-0.741737,20.15,114.815,-57.1136],[1273.48,99.9443,19.05,106.942,-53.9593],[1195.5,199.727,17.8167,98.4061,-49.7924],[1102.91,299.039,16.3667,88.9876,-43.841],[979.137,399.977,14.45,78.1732,-33.7936],[684.281,498.34,9.96667,66.5369,-0.0418253]]], + [56,510.267,[[2068.15,-2000.92,33.55,207.689,-75.594],[2042.22,-1901.15,33.05,204.553,-75.2509],[2016.09,-1803.06,32.55,201.376,-74.8943],[1987.99,-1700.32,32.0167,197.943,-74.4982],[1960.55,-1602.67,31.5,194.573,-74.0979],[1931.11,-1500.79,30.95,190.94,-73.6526],[1901.44,-1401.07,30.4,187.261,-73.1862],[1870.63,-1300.63,29.8333,183.423,-72.6821],[1839.57,-1202.56,29.2667,179.54,-72.1521],[1806.42,-1101.33,28.6667,175.38,-71.5605],[1772.08,-1000.15,28.05,171.056,-70.9171],[1737.46,-901.895,27.4333,166.685,-70.2348],[1700.68,-801.551,26.7833,162.031,-69.4694],[1662.64,-702.122,26.1167,157.212,-68.6303],[1622.38,-601.577,25.4167,152.109,-67.6842],[1579.85,-500.547,24.6833,146.722,-66.6133],[1536,-401.843,23.9333,141.179,-65.4235],[1488.83,-301.787,23.1333,135.241,-64.0351],[1438.29,-201.483,22.2833,128.922,-62.406],[1383.31,-100.35,21.3667,122.121,-60.4434],[1323.81,-0.107705,20.3833,114.877,-58.0596],[1258.69,98.8333,19.3167,107.14,-55.0854],[1183.73,199.05,18.1,98.5688,-51.0938],[1094.55,299.566,16.6667,89.0267,-45.3739],[980.27,399.247,14.85,78.3222,-36.1265],[768.518,499.821,11.5333,65.9502,-12.4327],[674.8,510.267,10.0833,64.8664,-0.0260835]]], + [57,522.026,[[2025.56,-2000.52,33.7167,207.783,-75.9744],[2000.29,-1900.53,33.2167,204.641,-75.6404],[1974.82,-1802.22,32.7167,201.456,-75.2931],[1948.29,-1702.44,32.2,198.122,-74.9197],[1920.69,-1601.37,31.6667,194.635,-74.5175],[1892.88,-1502.31,31.1333,191.103,-74.0972],[1863.97,-1402.27,30.5833,187.415,-73.6435],[1833.94,-1301.51,30.0167,183.567,-73.1531],[1802.79,-1200.24,29.4333,179.556,-72.6219],[1771.38,-1101.53,28.85,175.498,-72.0618],[1738.83,-1002.68,28.25,171.277,-71.4532],[1704.19,-901.35,27.6167,166.771,-70.7717],[1668.35,-800.613,26.9667,162.098,-70.0266],[1631.29,-700.776,26.3,157.257,-69.2096],[1592.99,-602.158,25.6167,152.251,-68.3108],[1551.56,-500.572,24.8833,146.835,-67.2693],[1508.84,-401.293,24.1333,141.259,-66.1117],[1462.88,-300.619,23.3333,135.282,-64.7603],[1414.61,-201.572,22.5,129.04,-63.2063],[1362.04,-101.373,21.6,122.303,-61.334],[1304.09,-0.0595922,20.6167,114.984,-59.0181],[1241.67,98.5691,19.5667,107.27,-56.1731],[1169.68,199.02,18.3667,98.6761,-52.3486],[1084.86,299.417,16.9667,89.1386,-46.923],[976.698,399.882,15.2,78.3253,-38.1854],[797.761,499.876,12.3167,65.8668,-18.3079],[664.719,522.026,10.2,63.178,-0.0357024]]], + [58,533.603,[[1981.77,-2000.93,33.8833,207.9,-76.3603],[1957.16,-1900.71,33.3833,204.752,-76.0355],[1932.36,-1802.18,32.8833,201.56,-75.6978],[1906.54,-1702.15,32.3667,198.219,-75.3345],[1879.67,-1600.84,31.8333,194.723,-74.9434],[1852.59,-1501.53,31.3,191.182,-74.5346],[1824.44,-1401.24,30.75,187.483,-74.0933],[1795.21,-1300.2,30.1833,183.624,-73.6161],[1765.75,-1201.52,29.6167,179.716,-73.1143],[1735.18,-1102.45,29.0333,175.646,-72.5702],[1702.61,-1000.51,28.4167,171.292,-71.9618],[1669.77,-901.507,27.8,166.888,-71.3163],[1634.89,-800.361,27.15,162.196,-70.592],[1598.81,-700.101,26.4833,157.334,-69.7975],[1561.54,-601.046,25.8,152.304,-68.9234],[1522.13,-501.256,25.0833,146.983,-67.9341],[1480.55,-401.384,24.3333,141.376,-66.8096],[1435.83,-300.072,23.5333,135.36,-65.4962],[1388.85,-200.354,22.7,129.072,-63.9851],[1338.63,-101.229,21.8167,122.404,-62.1988],[1283.21,-0.626239,20.85,115.137,-59.9883],[1222.47,99.1846,19.8,107.328,-57.2255],[1153.4,199.676,18.6167,98.7237,-53.5603],[1072.87,299.674,17.25,89.2133,-48.416],[971.656,399.653,15.55,78.4365,-40.2626],[813.894,499.749,12.9333,65.8786,-22.8465],[654.036,533.601,10.3167,61.4718,-0.0732138]]], + [59,544.985,[[1936.78,-2002.16,34.05,208.042,-76.7517],[1912.85,-1901.71,33.55,204.887,-76.4362],[1888.73,-1802.94,33.05,201.689,-76.1082],[1863.62,-1702.67,32.5333,198.341,-75.7554],[1837.49,-1601.1,32,194.837,-75.3754],[1811.15,-1501.52,31.4667,191.288,-74.9783],[1783.78,-1400.96,30.9167,187.579,-74.5496],[1756.19,-1302.59,30.3667,183.823,-74.1],[1726.7,-1200.68,29.7833,179.789,-73.5985],[1696.97,-1101.31,29.2,175.705,-73.0696],[1666.15,-1001.79,28.6,171.455,-72.4947],[1634.23,-902.382,27.9833,167.036,-71.8683],[1600.3,-800.814,27.3333,162.326,-71.1652],[1565.23,-700.115,26.6667,157.443,-70.3939],[1528.99,-600.607,25.9833,152.39,-69.545],[1490.67,-500.337,25.2667,147.043,-68.584],[1451.14,-402.138,24.5333,141.529,-67.5166],[1407.66,-300.168,23.7333,135.476,-66.2423],[1362.91,-201.707,22.9167,129.27,-64.8061],[1314.09,-101.713,22.0333,122.548,-63.0744],[1260.22,-0.150132,21.0667,115.211,-60.9297],[1202.12,99.19,20.0333,107.438,-58.2915],[1135.94,199.712,18.8667,98.8281,-54.7871],[1059.59,299.251,17.5333,89.3596,-49.924],[964.164,399.412,15.8833,78.5562,-42.2637],[821.737,499.882,13.45,65.8925,-26.6142],[642.749,544.983,10.4333,59.7482,-0.141201]]], + [60,556.16,[[1889.83,-2000.87,34.2,208.102,-77.1382],[1866.58,-1900.23,33.7,204.941,-76.8318],[1843.14,-1801.27,33.2,201.736,-76.5133],[1818.74,-1700.8,32.6833,198.379,-76.1706],[1794.15,-1602.17,32.1667,194.978,-75.8133],[1768.57,-1502.32,31.6333,191.42,-75.4281],[1741.98,-1401.48,31.0833,187.702,-75.0122],[1715.18,-1302.82,30.5333,183.936,-74.576],[1686.53,-1200.61,29.95,179.891,-74.0895],[1657.65,-1100.93,29.3667,175.794,-73.5763],[1627.72,-1001.08,28.7667,171.53,-73.0184],[1596.7,-901.346,28.15,167.095,-72.4103],[1564.6,-801.996,27.5167,162.488,-71.7458],[1530.53,-700.844,26.85,157.587,-70.9982],[1495.33,-600.865,26.1667,152.511,-70.1751],[1458.11,-500.098,25.45,147.138,-69.2431],[1419.72,-401.385,24.7167,141.594,-68.2075],[1378.38,-300.931,23.9333,135.631,-66.9977],[1334.92,-201.771,23.1167,129.383,-65.6059],[1287.52,-101.014,22.2333,122.609,-63.9266],[1236.11,-0.303698,21.2833,115.332,-61.8832],[1180.61,98.5568,20.2667,107.599,-59.3695],[1117.28,199.1,19.1167,98.9916,-56.0269],[1044.1,299.282,17.8,89.4619,-51.3791],[954.299,399.229,16.2,78.6744,-44.1919],[824.673,499.765,13.9167,65.9645,-30.0172],[629.891,556.158,10.5333,58.0117,-0.0813135]]], + [61,567.111,[[1841.73,-2000.43,34.35,208.187,-77.5301],[1819.93,-1902.93,33.8667,205.126,-77.2432],[1796.43,-1800.44,33.35,201.808,-76.9242],[1773.52,-1702.97,32.85,198.553,-76.6029],[1748.89,-1600.91,32.3167,195.034,-76.2454],[1724.07,-1500.85,31.7833,191.467,-75.8718],[1699.05,-1402.81,31.25,187.853,-75.4809],[1672.26,-1300.89,30.6833,183.963,-75.0452],[1645.25,-1201.32,30.1167,180.022,-74.587],[1617.23,-1101.32,29.5333,175.914,-74.0898],[1588.19,-1001.14,28.9333,171.636,-73.5492],[1558.1,-901.06,28.3167,167.186,-72.9599],[1526.95,-801.351,27.6833,162.562,-72.3159],[1494.73,-702.313,27.0333,157.764,-71.6098],[1460.58,-601.848,26.35,152.667,-70.8131],[1424.48,-500.566,25.6333,147.269,-69.9108],[1387.24,-401.321,24.9,141.697,-68.9079],[1347.13,-300.293,24.1167,135.699,-67.7357],[1304.97,-200.53,23.3,129.41,-66.3866],[1259.86,-100.966,22.4333,122.714,-64.7901],[1210.87,-1.11471,21.5,115.502,-62.8476],[1157.05,98.8196,20.4833,107.686,-60.4155],[1096.53,199.2,19.35,99.0909,-57.227],[1026.48,299.814,18.05,89.515,-52.785],[942.14,399.17,16.5,78.7821,-46.0508],[822.955,499.876,14.3333,66.0214,-33.0681],[616.486,567.111,10.6333,56.2582,-0.0486555]]], + [62,577.829,[[1792.5,-2000.88,34.5,208.298,-77.9276],[1771.36,-1903.18,34.0167,205.231,-77.6497],[1748.6,-1800.47,33.5,201.907,-77.341],[1726.39,-1702.79,33,198.645,-77.0298],[1702.52,-1600.5,32.4667,195.118,-76.6837],[1678.46,-1500.21,31.9333,191.543,-76.3219],[1654.21,-1401.93,31.4,187.92,-75.9433],[1629.02,-1302.74,30.85,184.135,-75.5341],[1602.85,-1202.85,30.2833,180.184,-75.0909],[1575.7,-1102.51,29.7,176.065,-74.61],[1547.56,-1001.99,29.1,171.774,-74.0871],[1518.41,-901.543,28.4833,167.309,-73.517],[1488.22,-801.461,27.85,162.67,-72.8938],[1457,-702.035,27.2,157.853,-72.2105],[1423.92,-601.16,26.5167,152.735,-71.4393],[1389.75,-501.76,25.8167,147.438,-70.5867],[1353.67,-401.966,25.0833,141.838,-69.6172],[1314.82,-300.344,24.3,135.808,-68.4837],[1274.81,-201.948,23.5,129.608,-67.2064],[1231.11,-101.589,22.6333,122.863,-65.6642],[1183.66,-0.874848,21.7,115.591,-63.7864],[1132.39,98.43,20.7,107.825,-61.4741],[1074.64,198.641,19.5833,99.2491,-58.4404],[1007.66,299.678,18.3,89.6359,-54.2069],[927.764,399.299,16.7833,78.8706,-47.8441],[817.733,499.982,14.7167,66.0906,-35.9001],[602.534,577.828,10.7333,54.488,-0.045895]]], + [63,588.3,[[1742.14,-2002.24,34.65,208.433,-78.33],[1720.98,-1900.97,34.15,205.255,-78.0521],[1699.65,-1801.38,33.65,202.032,-77.763],[1677.44,-1700.25,33.1333,198.654,-77.452],[1655.06,-1600.96,32.6167,195.23,-77.1277],[1631.78,-1500.42,32.0833,191.647,-76.778],[1608.31,-1401.9,31.55,188.016,-76.412],[1583.92,-1302.45,31,184.221,-76.0163],[1558.6,-1202.29,30.4333,180.259,-75.5878],[1532.33,-1101.68,29.85,176.128,-75.1228],[1505.09,-1000.88,29.25,171.824,-74.617],[1476.88,-900.135,28.6333,167.345,-74.0655],[1448.44,-802.348,28.0167,162.811,-73.479],[1417.45,-700.005,27.35,157.853,-72.8014],[1386.21,-601.218,26.6833,152.839,-72.0738],[1353.15,-501.377,25.9833,147.519,-71.2498],[1318.24,-401.115,25.25,141.891,-70.3125],[1281.45,-301.109,24.4833,135.957,-69.2407],[1241.93,-200.076,23.6667,129.59,-67.9803],[1200.47,-101.03,22.8167,122.929,-66.5175],[1155.38,-1.30835,21.9,115.728,-64.7364],[1105.78,98.9579,20.9,107.888,-62.5037],[1050.75,198.824,19.8,99.3394,-59.6175],[987.665,298.846,18.55,89.8268,-55.642],[911.254,399.672,17.05,78.9323,-49.5759],[810.038,499.626,15.0833,66.2324,-38.6335],[588.037,588.298,10.8333,52.7017,-0.0764778]]], + [64,598.509,[[1689.98,-2001.11,34.7833,208.49,-78.7286],[1670.21,-1903.03,34.3,205.412,-78.4692],[1649.6,-1803.2,33.8,202.184,-78.1903],[1628.14,-1701.83,33.2833,198.801,-77.8903],[1606.51,-1602.3,32.7667,195.37,-77.5773],[1584.01,-1501.51,32.2333,191.78,-77.2398],[1561.33,-1402.73,31.7,188.141,-76.8867],[1537.05,-1300.02,31.1333,184.221,-76.4929],[1513.3,-1202.58,30.5833,180.366,-76.0912],[1487.91,-1101.68,30,176.224,-75.6423],[1461.59,-1000.58,29.4,171.907,-75.1541],[1435.06,-902.219,28.8,167.536,-74.6364],[1406.84,-801.427,28.1667,162.865,-74.0552],[1377.65,-701.266,27.5167,158.014,-73.4177],[1347.47,-602.046,26.85,152.98,-72.7161],[1315.52,-501.745,26.15,147.638,-71.9214],[1281.79,-400.998,25.4167,141.984,-71.0171],[1246.24,-300.479,24.65,136.019,-69.9827],[1208.85,-200.911,23.85,129.746,-68.7918],[1168.79,-101.164,23,123.04,-67.3817],[1125.23,-0.679148,22.0833,115.784,-65.6635],[1078.12,98.8155,21.1,108.004,-63.5459],[1024.97,199.78,20,99.3586,-60.7617],[964.844,299.806,18.7667,89.8361,-56.9745],[893.517,399.311,17.3167,79.08,-51.3245],[799.121,499.632,15.4167,66.3294,-41.1617],[572.995,598.507,10.9333,50.8997,-0.144381]]], + [65,608.446,[[1636.74,-2000.91,34.9167,208.572,-79.1324],[1617.67,-1902.65,34.4333,205.489,-78.8823],[1597.78,-1802.65,33.9333,202.255,-78.6134],[1577.07,-1701.08,33.4167,198.865,-78.324],[1556.2,-1601.35,32.9,195.428,-78.0222],[1534.49,-1500.36,32.3667,191.829,-77.6967],[1512.6,-1401.38,31.8333,188.182,-77.3561],[1489.86,-1301.45,31.2833,184.369,-76.9877],[1466.25,-1200.8,30.7167,180.387,-76.5887],[1442.45,-1102.53,30.15,176.352,-76.1683],[1417.06,-1001.11,29.55,172.024,-75.6979],[1391.46,-902.438,28.95,167.64,-75.1992],[1364.24,-801.31,28.3167,162.954,-74.639],[1336.07,-700.801,27.6667,158.085,-74.0246],[1306.95,-601.22,27,153.033,-73.3482],[1276.13,-500.538,26.3,147.668,-72.5819],[1244.33,-401.636,25.5833,142.118,-71.7303],[1210.04,-300.585,24.8167,136.123,-70.7341],[1173.96,-200.457,24.0167,129.815,-69.5869],[1135.32,-100.108,23.1667,123.066,-68.2276],[1094.07,-0.742315,22.2667,115.889,-66.6021],[1048.63,99.6058,21.2833,108.041,-64.5624],[998.921,198.607,20.2167,99.5673,-61.965],[941.733,298.822,19,90.0399,-58.3786],[873.754,399.242,17.5667,79.1933,-53.0145],[785.955,499.429,15.7333,66.4591,-43.601],[620.244,599.996,12.3167,50.4882,-14.6531],[556.59,608.445,11.0167,49.085,-0.0632478]]], + [66,618.1,[[1582.45,-2001.66,35.05,208.681,-79.5413],[1564.07,-1903.22,34.5667,205.593,-79.3006],[1544.91,-1803.02,34.0667,202.354,-79.0418],[1524.96,-1701.25,33.55,198.958,-78.7633],[1504.86,-1601.32,33.0333,195.514,-78.4728],[1483.94,-1500.11,32.5,191.908,-78.1595],[1462.86,-1400.92,31.9667,188.253,-77.8316],[1440.95,-1300.76,31.4167,184.431,-77.477],[1418.88,-1202.81,30.8667,180.557,-77.1045],[1395.28,-1101.38,30.2833,176.393,-76.6881],[1371.5,-1002.49,29.7,172.174,-76.2481],[1346.16,-900.779,29.0833,167.655,-75.7548],[1320.62,-802.01,28.4667,163.078,-75.2299],[1293.5,-701.138,27.8167,158.194,-74.639],[1265.45,-601.18,27.15,153.123,-73.9883],[1235.77,-500.099,26.45,147.737,-73.251],[1205.14,-400.785,25.7333,142.163,-72.4315],[1172.83,-301.443,24.9833,136.27,-71.4943],[1138.09,-200.733,24.1833,129.928,-70.3916],[1101.61,-101.68,23.35,123.272,-69.1117],[1061.89,-1.51511,22.45,116.045,-67.5513],[1018.14,99.7141,21.4667,108.132,-65.5916],[970.275,199.679,20.4,99.5717,-63.0929],[915.968,299.709,19.2,90.0532,-59.688],[852.048,399.517,17.8,79.2659,-54.6504],[769.853,499.894,16.0167,66.4974,-45.8557],[629.96,599.95,13.0167,50.5289,-21.7719],[539.704,618.1,11.1,47.255,-0.0141688]]], + [67,627.457,[[1527.1,-2003.39,35.1833,208.817,-79.9549],[1508.82,-1901.37,34.6833,205.618,-79.7156],[1490.4,-1801.03,34.1833,202.372,-79.4668],[1471.83,-1702.37,33.6833,199.08,-79.2078],[1452.5,-1602.22,33.1667,195.63,-78.9288],[1432.39,-1500.79,32.6333,192.018,-78.6279],[1412.12,-1401.37,32.1,188.355,-78.313],[1391.06,-1300.98,31.55,184.525,-77.9724],[1369.83,-1202.79,31,180.642,-77.6145],[1347.14,-1101.09,30.4167,176.468,-77.2145],[1324.27,-1001.95,29.8333,172.238,-76.7918],[1300.57,-902.685,29.2333,167.829,-76.331],[1275.36,-800.921,28.6,163.115,-75.8134],[1249.94,-702.307,27.9667,158.34,-75.2604],[1222.98,-601.956,27.3,153.253,-74.636],[1194.45,-500.458,26.6,147.847,-73.9283],[1165,-400.713,25.8833,142.249,-73.1415],[1133.94,-300.917,25.1333,136.33,-72.2415],[1101.24,-201.769,24.35,130.088,-71.2053],[1065.47,-100.149,23.5,123.259,-69.9516],[1027.99,-1.22494,22.6167,116.118,-68.4802],[986.651,99.1102,21.65,108.277,-66.6322],[941.371,198.573,20.6,99.7692,-64.2764],[889.182,299.916,19.4,90.1325,-61.0137],[829.224,399.071,18.0333,79.4203,-56.3025],[752.474,499.527,16.3,66.6526,-48.1297],[629.362,599.873,13.55,50.6128,-27.1701],[522.339,627.457,11.1833,45.4101,-0.00168265]]], + [68,636.507,[[1470.13,-2002.67,35.3,208.875,-80.3654],[1452.59,-1900.5,34.8,205.67,-80.1359],[1435.5,-1803.32,34.3167,202.527,-79.9053],[1417.09,-1701.17,33.8,199.12,-79.6487],[1398.53,-1600.86,33.2833,195.663,-79.3811],[1379.83,-1502.4,32.7667,192.158,-79.1016],[1360.38,-1402.74,32.2333,188.488,-78.7998],[1340.17,-1302.11,31.6833,184.651,-78.4735],[1319.18,-1200.72,31.1167,180.642,-78.1198],[1298.03,-1101.71,30.55,176.577,-77.7472],[1276.09,-1002.29,29.9667,172.336,-77.342],[1252.71,-900.018,29.35,167.792,-76.8876],[1229.15,-800.681,28.7333,163.188,-76.4041],[1204.76,-701.765,28.1,158.399,-75.8738],[1178.89,-601.093,27.4333,153.294,-75.2751],[1152.16,-501.633,26.75,147.997,-74.6131],[1123.91,-401.439,26.0333,142.378,-73.8596],[1094.11,-301.168,25.2833,136.433,-72.9975],[1062.73,-201.519,24.5,130.16,-72.0047],[1029.09,-101.295,23.6667,123.429,-70.8279],[993.144,-1.66669,22.7833,116.242,-69.4199],[953.483,99.4457,21.8167,108.342,-67.65],[910.045,199.76,20.7667,99.7572,-65.3912],[861.376,299.422,19.6,90.2796,-62.3534],[804.575,399.006,18.25,79.5282,-57.904],[733.104,499.158,16.5667,66.8074,-50.3249],[622.983,599.702,14,50.7315,-31.7534],[504.498,636.507,11.2667,43.5507,-0.0306546]]], + [69,645.24,[[1412.19,-2002.95,35.4167,208.96,-80.7808],[1395.38,-1900.62,34.9167,205.75,-80.5612],[1379.02,-1803.27,34.4333,202.603,-80.3405],[1361.39,-1700.95,33.9167,199.19,-80.095],[1343.62,-1600.46,33.4,195.727,-79.8388],[1325.71,-1501.82,32.8833,192.215,-79.5714],[1307.08,-1401.98,32.35,188.538,-79.2825],[1287.73,-1301.14,31.8,184.693,-78.9701],[1268.22,-1202.51,31.25,180.793,-78.6418],[1247.37,-1100.34,30.6667,176.6,-78.2748],[1226.36,-1000.72,30.0833,172.348,-77.8869],[1204.57,-900.949,29.4833,167.915,-77.4639],[1182.01,-801.305,28.8667,163.299,-77.0015],[1158.66,-702.071,28.2333,158.495,-76.4945],[1133.89,-601.062,27.5667,153.374,-75.9219],[1108.3,-501.253,26.8833,148.06,-75.2886],[1081.25,-400.69,26.1667,142.419,-74.5677],[1052.71,-300.028,25.4167,136.448,-73.7426],[1023.32,-202.043,24.65,130.28,-72.8132],[991.107,-101.259,23.8167,123.513,-71.6884],[956.692,-1.03168,22.9333,116.283,-70.3418],[919.38,99.0581,21.9833,108.463,-68.6793],[878.463,198.727,20.95,99.9416,-66.5578],[831.882,299.556,19.7833,90.3602,-63.6584],[778.19,399.362,18.45,79.5845,-59.4598],[711.152,499.732,16.8,66.8286,-52.3606],[611.974,599.793,14.3833,50.8106,-35.7234],[486.183,645.239,11.35,41.6773,-0.10705]]], + [70,653.643,[[1352.74,-2000.81,35.5167,208.967,-81.1939],[1337.22,-1901.74,35.0333,205.86,-80.9912],[1321.04,-1800.89,34.5333,202.599,-80.7732],[1304.73,-1701.71,34.0333,199.29,-80.5463],[1287.76,-1601.03,33.5167,195.822,-80.3018],[1270.65,-1502.21,33,192.304,-80.0465],[1252.86,-1402.16,32.4667,188.62,-79.7708],[1234.37,-1301.13,31.9167,184.768,-79.4726],[1215.73,-1202.29,31.3667,180.86,-79.1592],[1196.38,-1102.78,30.8,176.778,-78.8191],[1175.73,-1000.04,30.2,172.395,-78.4384],[1154.92,-900.042,29.6,167.952,-78.0345],[1133.37,-800.157,28.9833,163.322,-77.593],[1111.06,-700.672,28.35,158.505,-77.1087],[1087.99,-601.886,27.7,153.496,-76.5758],[1063.55,-501.71,27.0167,148.164,-75.9718],[1037.71,-400.759,26.3,142.503,-75.2841],[1011.06,-301.882,25.5667,136.642,-74.515],[982.37,-201.279,24.7833,130.312,-73.6096],[951.605,-100.031,23.95,123.51,-72.5355],[919.355,-1.14598,23.0833,116.375,-71.2745],[883.719,99.6213,22.1333,108.503,-69.6886],[845.274,198.49,21.1167,100.051,-67.6982],[801.429,298.977,19.9667,90.5091,-64.9768],[750.805,399.008,18.65,79.7199,-61.0317],[688.1,499.559,17.0333,66.9522,-54.4169],[598.019,599.622,14.7333,50.9425,-39.4119],[466.734,653.642,11.4167,39.7923,-0.002882]]], + [71,661.706,[[1292.89,-2003.13,35.6333,209.108,-81.6185],[1277.59,-1900.49,35.1333,205.89,-81.4188],[1262.69,-1802.84,34.65,202.733,-81.2181],[1246.63,-1700.2,34.1333,199.309,-80.9948],[1230.98,-1602.6,33.6333,195.948,-80.7696],[1214.15,-1500.41,33.1,192.31,-80.5186],[1197.19,-1400.22,32.5667,188.619,-80.2559],[1180.1,-1302.06,32.0333,184.876,-79.9805],[1161.81,-1200.03,31.4667,180.842,-79.6729],[1143.37,-1100.37,30.9,176.75,-79.3488],[1124.24,-1000.29,30.3167,172.479,-78.9961],[1104.41,-900.038,29.7167,168.025,-78.6116],[1084.43,-802.564,29.1167,163.51,-78.203],[1062.62,-700.146,28.4667,158.553,-77.7302],[1040.63,-601.084,27.8167,153.529,-77.2227],[1017.34,-500.617,27.1333,148.18,-76.6473],[993.296,-401.663,26.4333,142.631,-76.008],[967.33,-300.162,25.6833,136.613,-75.2592],[940.578,-201.31,24.9167,130.392,-74.4152],[911.857,-101.552,24.1,123.695,-73.4145],[880.544,-0.179808,23.2167,116.383,-72.1922],[847.193,99.4432,22.2833,108.599,-70.7093],[810.571,199.074,21.2667,100.082,-68.8157],[769.414,299.047,20.1333,90.5886,-66.2641],[721.81,399.104,18.8333,79.7992,-62.5617],[663.327,499.544,17.25,67.0503,-56.4095],[580.676,599.998,15.0333,50.9737,-42.6963],[447.513,661.704,11.5,37.8923,-0.185528]]], + [72,669.419,[[1231.62,-2003.06,35.7333,209.172,-82.0408],[1217.08,-1900.27,35.2333,205.95,-81.8511],[1202.92,-1802.48,34.75,202.788,-81.6606],[1188.16,-1702.98,34.25,199.471,-81.4555],[1172.79,-1601.95,33.7333,195.992,-81.2346],[1157.3,-1502.77,33.2167,192.463,-81.0038],[1141.19,-1402.36,32.6833,188.767,-80.7546],[1124.45,-1300.94,32.1333,184.901,-80.485],[1107.57,-1201.71,31.5833,180.978,-80.2016],[1090.05,-1101.81,31.0167,176.879,-79.8941],[1071.88,-1001.47,30.4333,172.6,-79.5596],[1053.04,-900.957,29.8333,168.136,-79.1948],[1033.53,-800.544,29.2167,163.485,-78.7959],[1013.34,-700.512,28.5833,158.641,-78.3584],[992.451,-601.158,27.9333,153.604,-77.8767],[970.322,-500.382,27.25,148.238,-77.3306],[947.477,-401.108,26.55,142.671,-76.7236],[923.358,-301.473,25.8167,136.766,-76.029],[897.391,-200.053,25.0333,130.384,-75.2107],[870.664,-101.898,24.2333,123.793,-74.2801],[841.482,-1.83991,23.3667,116.583,-73.1439],[809.805,98.503,22.4333,108.754,-71.7398],[775.021,198.925,21.4167,100.175,-69.9455],[735.93,299.789,20.2833,90.5962,-67.5246],[691.298,399.68,19,79.8187,-64.0547],[636.931,499.731,17.45,67.1164,-58.3439],[562.007,599.387,15.3333,51.1875,-45.9991],[427.229,669.417,11.5667,35.9811,-0.180768]]], + [73,676.775,[[1169.02,-2000.58,35.8167,209.158,-82.4615],[1155.7,-1901.1,35.3333,206.039,-82.2879],[1142.29,-1803.16,34.85,202.874,-82.1076],[1127.84,-1700.21,34.3333,199.44,-81.9069],[1113.75,-1602.31,33.8333,196.069,-81.7044],[1099.08,-1502.97,33.3167,192.534,-81.486],[1083.82,-1402.39,32.7833,188.833,-81.2501],[1067.96,-1300.79,32.2333,184.96,-80.9949],[1051.98,-1201.38,31.6833,181.03,-80.7267],[1035.39,-1101.29,31.1167,176.923,-80.4356],[1018.18,-1000.76,30.5333,172.635,-80.1189],[1000.34,-900.051,29.9333,168.161,-79.7735],[982.356,-802.11,29.3333,163.625,-79.4063],[963.232,-701.781,28.7,158.771,-78.9926],[943.453,-602.119,28.05,153.721,-78.5372],[922.497,-501.015,27.3667,148.341,-78.0208],[900.863,-401.403,26.6667,142.756,-77.4467],[878.022,-301.41,25.9333,136.831,-76.7896],[853.957,-201.716,25.1667,130.562,-76.0327],[828.12,-101.052,24.35,123.805,-75.1345],[800.485,-0.560835,23.4833,116.559,-74.0583],[771.025,98.5204,22.5667,108.825,-72.7531],[738.089,199.612,21.55,100.189,-71.0555],[701.621,299.818,20.4333,90.6714,-68.7994],[659.915,399.553,19.1667,79.9155,-65.5639],[609.559,499.19,17.65,67.2805,-60.2949],[540.325,599.707,15.5833,51.2262,-48.9375],[406.55,676.773,11.6333,34.0575,-0.232066]]], + [74,683.761,[[1106.04,-2002.63,35.9167,209.281,-82.8924],[1093.48,-1902.99,35.4333,206.159,-82.7288],[1080.38,-1801.54,34.9333,202.881,-82.5528],[1067.19,-1701.77,34.4333,199.554,-82.3696],[1053.44,-1600.47,33.9167,196.065,-82.1723],[1039.6,-1501.01,33.4,192.524,-81.9661],[1025.19,-1400.31,32.8667,188.816,-81.7434],[1010.68,-1301.64,32.3333,185.054,-81.5099],[995.595,-1202.04,31.7833,181.118,-81.257],[979.936,-1101.75,31.2167,177.004,-80.9826],[963.691,-1001.02,30.6333,172.708,-80.6839],[946.853,-900.091,30.0333,168.225,-80.3582],[929.885,-801.934,29.4333,163.679,-80.012],[911.837,-701.374,28.8,158.814,-79.6218],[893.171,-601.474,28.15,153.751,-79.1922],[873.394,-500.117,27.4667,148.355,-78.705],[852.976,-400.243,26.7667,142.754,-78.1633],[831.912,-302.203,26.05,136.945,-77.5578],[809.205,-202.111,25.2833,130.653,-76.8446],[784.826,-101.018,24.4667,123.869,-75.9981],[758.749,-0.0675519,23.6,116.59,-74.9834],[730.95,99.5032,22.6833,108.814,-73.7521],[700.384,199.551,21.6833,100.265,-72.1777],[666.493,299.11,20.5833,90.8163,-70.0859],[627.149,399.928,19.3167,79.9496,-67.04],[580.168,499.881,17.8167,67.2675,-62.1263],[516.977,599.853,15.8167,51.2934,-51.7831],[384.945,683.761,11.6833,32.123,-0.0590509]]], + [75,690.372,[[1041.82,-2002.29,36,209.326,-83.3217],[1030.01,-1902.54,35.5167,206.2,-83.1679],[1017.7,-1800.97,35.0167,202.918,-83.0026],[1005.29,-1701.08,34.5167,199.587,-82.8304],[992.792,-1602.9,34.0167,196.206,-82.651],[979.355,-1500.07,33.4833,192.547,-82.4512],[966.239,-1402.36,32.9667,188.95,-82.2486],[952.169,-1300.44,32.4167,185.064,-82.0224],[937.99,-1200.71,31.8667,181.122,-81.7847],[923.269,-1100.28,31.3,177,-81.5267],[908.435,-1002.24,30.7333,172.819,-81.2542],[892.609,-901.083,30.1333,168.329,-80.9484],[876.216,-800.003,29.5167,163.647,-80.614],[859.698,-701.889,28.9,158.898,-80.257],[842.153,-601.734,28.25,153.824,-79.8536],[823.565,-500.106,27.5667,148.415,-79.3961],[804.833,-402.291,26.8833,142.932,-78.8999],[784.576,-301.624,26.15,136.97,-78.3185],[763.233,-201.22,25.3833,130.656,-77.6483],[740.788,-101.805,24.5833,123.986,-76.8697],[716.282,-0.370577,23.7167,116.676,-75.9178],[690.158,99.7167,22.8,108.862,-74.762],[661.913,198.729,21.8167,100.405,-73.3098],[630.066,299.087,20.7167,90.8876,-71.3486],[593.584,399.589,19.4667,80.0616,-68.5306],[549.935,499.876,17.9833,67.3471,-63.9778],[492.057,599.887,16.0333,51.3773,-54.5396],[363.523,690.37,11.75,30.1762,-0.239108]]], + [76,696.597,[[976.828,-2003.04,36.0833,209.402,-83.755],[965.777,-1903.17,35.6,206.273,-83.6112],[954.257,-1801.48,35.1,202.987,-83.4566],[942.649,-1701.46,34.6,199.652,-83.2956],[930.952,-1603.14,34.1,196.268,-83.1278],[918.379,-1500.17,33.5667,192.604,-82.9409],[906.105,-1402.33,33.05,189.002,-82.7514],[892.939,-1300.26,32.5,185.111,-82.5399],[879.671,-1200.37,31.95,181.162,-82.3176],[866.302,-1102.71,31.4,177.156,-82.0835],[852.015,-1001.59,30.8167,172.845,-81.8213],[837.206,-900.272,30.2167,168.346,-81.5353],[822.282,-801.715,29.6167,163.782,-81.2311],[806.409,-700.73,28.9833,158.896,-80.8884],[789.992,-600.389,28.3333,153.809,-80.5109],[773.023,-501.003,27.6667,148.519,-80.0935],[755.069,-400.551,26.9667,142.887,-79.6181],[736.546,-301.914,26.25,137.044,-79.0865],[716.578,-201.177,25.4833,130.711,-78.4601],[695.579,-101.411,24.6833,124.017,-77.7321],[673.094,-1.49011,23.8333,116.818,-76.86],[648.655,99.1409,22.9167,108.969,-75.7812],[622.233,198.742,21.9333,100.466,-74.4249],[592.441,299.763,20.8333,90.8836,-72.5913],[558.77,399.773,19.6,80.108,-69.992],[518.863,499.151,18.15,67.5219,-65.8434],[465.664,599.856,16.2333,51.4679,-57.2122],[341.25,696.596,11.8,28.2192,-0.182434]]], + [77,702.429,[[910.733,-2001.43,36.15,209.401,-84.1872],[900.445,-1901.48,35.6667,206.268,-84.0533],[890.079,-1803.07,35.1833,203.088,-83.9143],[879.274,-1702.91,34.6833,199.75,-83.7646],[868.022,-1601.2,34.1667,196.249,-83.6033],[856.683,-1501.33,33.65,192.695,-83.4348],[844.889,-1400.21,33.1167,188.972,-83.2528],[833.004,-1301.11,32.5833,185.193,-83.0619],[820.654,-1201.06,32.0333,181.239,-82.8552],[807.832,-1100.3,31.4667,177.105,-82.6307],[794.913,-1001.94,30.9,172.91,-82.3936],[781.128,-900.437,30.3,168.404,-82.1276],[767.237,-801.698,29.7,163.832,-81.8446],[752.462,-700.516,29.0667,158.936,-81.5258],[737.573,-602.509,28.4333,153.97,-81.1839],[721.386,-500.378,27.75,148.536,-80.7861],[705.073,-402.055,27.0667,143.026,-80.3546],[687.432,-300.838,26.3333,137.031,-79.8488],[669.251,-201.997,25.5833,130.817,-79.2789],[649.708,-101.858,24.7833,124.101,-78.6025],[628.781,-1.53622,23.9333,116.876,-77.7917],[606.037,99.5306,23.0167,108.992,-76.7884],[581.447,199.603,22.0333,100.446,-75.5262],[554.142,299.7,20.95,90.9494,-73.8466],[523.234,399.232,19.7333,80.2334,-71.4661],[486.102,499.774,18.2833,67.5034,-67.6115],[437.898,599.81,16.4167,51.5559,-59.8072],[337.031,699.907,12.55,27.1199,-14.8454],[318.668,702.427,11.85,26.2517,-0.193511]]], + [78,707.859,[[843.965,-2000.93,36.2167,209.43,-84.6234],[834.445,-1900.89,35.7333,206.294,-84.4995],[824.853,-1802.38,35.25,203.111,-84.3709],[814.855,-1702.13,34.75,199.769,-84.2324],[804.443,-1600.32,34.2333,196.264,-84.0832],[793.951,-1500.36,33.7167,192.706,-83.9273],[783.38,-1402.26,33.2,189.095,-83.7642],[772.385,-1302.99,32.6667,185.312,-83.5879],[760.96,-1202.77,32.1167,181.354,-83.3969],[749.099,-1101.83,31.55,177.215,-83.1895],[736.793,-1000.43,30.9667,172.891,-82.9638],[724.393,-901.588,30.3833,168.503,-82.7246],[711.542,-802.649,29.7833,163.924,-82.4631],[697.873,-701.257,29.15,159.02,-82.1684],[683.736,-600.494,28.5,153.913,-81.8439],[669.124,-500.672,27.8333,148.6,-81.4849],[654.032,-402.114,27.15,143.077,-81.086],[637.712,-300.644,26.4167,137.067,-80.6183],[620.891,-201.541,25.6667,130.836,-80.0913],[602.81,-101.12,24.8667,124.099,-79.4655],[583.451,-0.496571,24.0167,116.849,-78.7153],[562.793,99.121,23.1167,109.077,-77.8045],[540.046,199.695,22.1333,100.49,-76.6384],[515.179,298.881,21.0667,91.0861,-75.1117],[486.592,399.231,19.85,80.291,-72.9149],[452.643,499.703,18.4167,67.5761,-69.3975],[408.861,599.79,16.5833,51.6329,-62.3313],[326.089,699.947,13.15,27.1907,-27.0508],[295.782,707.857,11.9,24.2745,-0.289203]]], + [79,712.884,[[776.546,-2001.54,36.2833,209.49,-85.063],[767.8,-1901.4,35.8,206.351,-84.9493],[758.987,-1802.8,35.3167,203.166,-84.8312],[749.802,-1702.44,34.8167,199.821,-84.704],[740.236,-1600.52,34.3,196.312,-84.567],[730.597,-1500.45,33.7833,192.751,-84.4238],[720.885,-1402.24,33.2667,189.136,-84.2741],[710.784,-1302.86,32.7333,185.349,-84.1122],[700.288,-1202.52,32.1833,181.386,-83.9367],[689.39,-1101.45,31.6167,177.242,-83.7462],[678.409,-1002.78,31.05,173.036,-83.545],[666.693,-900.944,30.45,168.516,-83.3192],[654.886,-801.87,29.85,163.93,-83.0791],[642.328,-700.332,29.2167,159.017,-82.8084],[629.674,-601.965,28.5833,154.032,-82.518],[616.252,-501.899,27.9167,148.71,-82.1887],[602.05,-400.726,27.2167,143.041,-81.8135],[587.398,-301.344,26.5,137.154,-81.3939],[571.947,-201.957,25.75,130.907,-80.9103],[555.339,-101.232,24.95,124.152,-80.3361],[537.556,-0.281683,24.1,116.878,-79.6474],[518.58,99.6846,23.2,109.077,-78.811],[498.041,199.004,22.2333,100.6,-77.7592],[475.202,298.772,21.1667,91.1468,-76.3596],[448.945,399.791,19.95,80.2789,-74.3431],[418.128,499.992,18.5333,67.5934,-71.1508],[378.655,599.838,16.7333,51.6918,-64.7917],[308.209,699.904,13.55,27.3007,-35.5122],[272.228,712.884,11.9333,22.288,-0.0724213]]], + [80,717.493,[[708.498,-2003.29,36.35,209.581,-85.5057],[700.531,-1903.04,35.8667,206.441,-85.4022],[692.226,-1800.96,35.3667,203.143,-85.291],[683.856,-1700.54,34.8667,199.795,-85.175],[675.423,-1601.82,34.3667,196.396,-85.0543],[666.643,-1501.62,33.85,192.831,-84.924],[657.509,-1400.15,33.3167,189.096,-84.7832],[648.305,-1300.7,32.7833,185.304,-84.6356],[638.742,-1200.3,32.2333,181.335,-84.4756],[629.105,-1102.1,31.6833,177.307,-84.3072],[618.807,-1000.42,31.1,172.972,-84.1185],[608.429,-901.307,30.5167,168.571,-83.9186],[597.674,-802.082,29.9167,163.978,-83.6999],[586.234,-700.384,29.2833,159.058,-83.4534],[574.707,-601.855,28.65,154.066,-83.1891],[562.48,-501.616,27.9833,148.734,-82.8892],[549.543,-400.26,27.2833,143.053,-82.5476],[536.195,-300.689,26.5667,137.154,-82.1653],[522.121,-201.105,25.8167,130.892,-81.7247],[506.991,-100.166,25.0167,124.119,-81.2014],[491.111,-0.910382,24.1833,116.966,-80.5867],[473.827,99.4319,23.2833,109.14,-79.8259],[455.12,199.159,22.3167,100.629,-78.8688],[434.317,299.38,21.25,91.1306,-77.5941],[410.731,399.622,20.05,80.3458,-75.7839],[382.997,499.577,18.65,67.7031,-72.9183],[347.383,599.98,16.8667,51.7264,-67.1965],[286.946,699.714,13.8667,27.4583,-42.5559],[248.789,717.491,11.9833,20.2927,-0.375264]]], + [81,721.684,[[639.602,-2002.7,36.4,209.597,-85.9479],[632.417,-1902.38,35.9167,206.454,-85.8546],[624.927,-1800.23,35.4167,203.153,-85.7543],[617.631,-1703.06,34.9333,199.914,-85.6533],[609.773,-1600.95,34.4167,196.399,-85.5408],[601.855,-1500.68,33.9,192.831,-85.4233],[593.876,-1402.28,33.3833,189.21,-85.3004],[585.578,-1302.69,32.85,185.415,-85.1675],[576.955,-1202.14,32.3,181.444,-85.0235],[568.002,-1100.85,31.7333,177.289,-84.8671],[558.981,-1001.96,31.1667,173.073,-84.7018],[549.624,-902.681,30.5833,168.668,-84.5217],[539.656,-800.568,29.9667,163.942,-84.3192],[529.612,-701.414,29.35,159.144,-84.1028],[518.944,-600.152,28.7,154.012,-83.8582],[508.194,-502.277,28.05,148.805,-83.5946],[496.529,-400.72,27.35,143.115,-83.2868],[484.494,-300.941,26.6333,137.205,-82.9424],[471.803,-201.137,25.8833,130.93,-82.5454],[458.447,-102.013,25.1,124.283,-82.0842],[443.842,-0.457544,24.25,116.969,-81.5197],[428.548,98.3572,23.3667,109.265,-80.8472],[411.682,198.521,22.4,100.725,-79.9861],[392.927,299.23,21.3333,91.1859,-78.8387],[371.959,398.716,20.15,80.493,-77.2334],[346.957,499.539,18.75,67.7548,-74.657],[315.455,599.441,17,51.8809,-69.6164],[263.106,699.681,14.1167,27.5548,-48.5896],[224.761,721.682,12.0167,18.2892,-0.344356]]], + [82,725.448,[[570.186,-2003.25,36.45,209.644,-86.3931],[563.788,-1902.86,35.9667,206.499,-86.31],[557.118,-1800.62,35.4667,203.196,-86.2206],[550.396,-1700.05,34.9667,199.842,-86.1276],[543.624,-1601.19,34.4667,196.438,-86.0307],[536.572,-1500.83,33.95,192.867,-85.926],[529.467,-1402.34,33.4333,189.242,-85.8167],[522.077,-1302.66,32.9,185.445,-85.6983],[514.398,-1202.02,32.35,181.47,-85.5701],[506.426,-1100.64,31.7833,177.311,-85.4309],[498.392,-1001.65,31.2167,173.09,-85.2838],[490.06,-902.274,30.6333,168.681,-85.1234],[481.183,-800.055,30.0167,163.948,-84.943],[472.238,-700.793,29.4,159.144,-84.7504],[462.982,-601.974,28.7667,154.138,-84.5384],[453.165,-501.427,28.1,148.79,-84.2978],[443.026,-402.12,27.4167,143.227,-84.0305],[432.31,-302.113,26.7,137.308,-83.7242],[421.011,-202.067,25.95,131.022,-83.3713],[408.865,-100.632,25.15,124.22,-82.952],[396.115,-0.855363,24.3167,117.032,-82.4591],[382.497,98.2514,23.4333,109.307,-81.861],[367.481,198.738,22.4667,100.739,-81.0947],[350.782,299.805,21.4,91.1635,-80.0729],[332.112,399.692,20.2167,80.4177,-78.642],[310.117,499.894,18.8333,67.7462,-76.3732],[282.339,599.851,17.1,51.8535,-71.9269],[237.36,699.819,14.3167,27.5822,-53.9788],[200.523,725.446,12.05,16.2782,-0.432532]]], + [83,728.78,[[500.087,-2001.47,36.4833,209.615,-86.8382],[494.478,-1901.04,36,206.468,-86.7653],[488.827,-1802.15,35.5167,203.273,-86.6896],[482.936,-1701.5,35.0167,199.918,-86.6082],[477.001,-1602.54,34.5167,196.512,-86.5233],[470.821,-1502.09,34,192.939,-86.4317],[464.392,-1400.35,33.4667,189.195,-86.3327],[457.914,-1300.64,32.9333,185.393,-86.2289],[451.388,-1202.97,32.4,181.535,-86.1199],[444.4,-1101.49,31.8333,177.373,-85.998],[437.36,-1002.38,31.2667,173.149,-85.8691],[429.848,-900.089,30.6667,168.608,-85.7246],[422.278,-800.553,30.0667,163.999,-85.5707],[414.439,-701.168,29.45,159.19,-85.402],[406.327,-602.221,28.8167,154.178,-85.2163],[397.723,-501.538,28.15,148.823,-85.0055],[388.836,-402.091,27.4667,143.253,-84.7713],[379.445,-301.935,26.75,137.324,-84.503],[369.542,-201.733,26,131.028,-84.1938],[358.897,-100.13,25.2,124.213,-83.8263],[347.723,-0.176208,24.3667,117.009,-83.3942],[335.788,99.1192,23.4833,109.265,-82.8697],[322.627,199.813,22.5167,100.673,-82.1974],[308.221,299.608,21.4667,91.2139,-81.3159],[291.861,399.934,20.2833,80.422,-80.0627],[272.82,499.548,18.9167,67.8299,-78.1013],[248.715,599.6,17.2,51.9417,-74.2552],[210.253,699.958,14.4833,27.6006,-59.0136],[175.846,728.78,12.0667,14.2599,-0.0352832]]], + [84,731.678,[[429.581,-2000.84,36.5167,209.619,-87.286],[424.766,-1900.37,36.0333,206.47,-87.2234],[419.914,-1801.44,35.55,203.273,-87.1584],[414.857,-1700.74,35.05,199.915,-87.0886],[409.761,-1601.73,34.55,196.507,-87.0156],[404.456,-1501.23,34.0333,192.932,-86.937],[399.11,-1402.6,33.5167,189.302,-86.8548],[393.55,-1302.78,32.9833,185.499,-86.7658],[387.772,-1201.98,32.4333,181.518,-86.6693],[381.774,-1100.44,31.8667,177.353,-86.5646],[375.729,-1001.28,31.3,173.125,-86.4539],[369.46,-901.736,30.7167,168.706,-86.3334],[362.963,-802.066,30.1167,164.094,-86.2015],[356.234,-702.542,29.5,159.281,-86.0568],[349.087,-600.886,28.85,154.132,-85.8932],[341.701,-500.14,28.1833,148.771,-85.7122],[334.072,-400.627,27.5,143.192,-85.511],[326.01,-300.402,26.7833,137.255,-85.2805],[317.508,-200.128,26.0333,130.948,-85.0146],[308.56,-100.509,25.25,124.263,-84.7057],[298.969,-0.354227,24.4167,117.047,-84.3351],[288.725,99.1567,23.5333,109.287,-83.8851],[277.624,198.419,22.5833,100.823,-83.319],[265.26,298.634,21.5333,91.338,-82.5646],[251.219,399.438,20.35,80.5072,-81.4917],[234.877,499.609,18.9833,67.8518,-79.8107],[214.39,599.523,17.2833,51.9918,-76.5467],[182.195,699.799,14.6333,27.7142,-63.8996],[151.245,731.677,12.1,12.2359,-0.442202]]], + [85,734.137,[[358.702,-2001.37,36.55,209.655,-87.7359],[354.684,-1900.85,36.0667,206.504,-87.6838],[350.635,-1801.87,35.5833,203.306,-87.6296],[346.415,-1701.11,35.0833,199.947,-87.5713],[342.163,-1602.05,34.5833,196.538,-87.5105],[337.736,-1501.5,34.0667,192.96,-87.4448],[333.275,-1402.81,33.55,189.329,-87.3762],[328.636,-1302.92,33.0167,185.524,-87.3019],[323.815,-1202.05,32.4667,181.54,-87.2215],[318.809,-1100.45,31.9,177.373,-87.1341],[313.765,-1001.23,31.3333,173.142,-87.042],[308.534,-901.613,30.75,168.72,-86.9412],[303.112,-801.871,30.15,164.104,-86.8313],[297.498,-702.273,29.5333,159.288,-86.7105],[291.534,-600.538,28.8833,154.134,-86.574],[285.525,-502.187,28.2333,148.902,-86.4269],[279.004,-400.113,27.5333,143.183,-86.255],[272.434,-302.084,26.8333,137.377,-86.0674],[265.341,-201.61,26.0833,131.064,-85.846],[257.876,-101.781,25.3,124.372,-85.5886],[249.874,-1.39981,24.4667,117.146,-85.28],[241.327,98.3533,23.5833,109.373,-84.9052],[231.901,199.553,22.6167,100.742,-84.4245],[221.585,299.901,21.5667,91.2326,-83.7938],[210.034,399.525,20.4,80.5202,-82.9103],[196.566,498.965,19.05,67.9666,-81.5276],[179.474,599.636,17.35,52.0008,-78.8101],[153.124,699.818,14.75,27.756,-68.5043],[126.287,734.137,12.1167,10.2058,-0.299425]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 249.874; +_maxRange = 1435.87; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg2.sqf new file mode 100644 index 0000000000..329bb2bf18 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg2.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_60mm_m720a1_m734_pd_chg2 +// Ammo: ace_arty_60mm_m720a1_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,604.265,[[3367.12,-2002.66,34.9833,217.256,-68.9946],[3328.03,-1902.04,34.4833,214.451,-68.5231],[3288.62,-1803.05,33.9833,211.615,-68.035],[3247.56,-1702.52,33.4667,208.654,-67.5124],[3204.82,-1600.63,32.9333,205.564,-66.9524],[3161.73,-1500.7,32.4,202.444,-66.3704],[3118.28,-1402.75,31.8667,199.294,-65.7652],[3071.73,-1300.87,31.3,195.917,-65.0952],[3024.79,-1201.3,30.7333,192.51,-64.3957],[2976.06,-1101.24,30.15,188.976,-63.643],[2925.51,-1000.94,29.55,185.314,-62.8318],[2873.11,-900.66,28.9333,181.527,-61.9564],[2818.84,-800.683,28.3,177.617,-61.0103],[2762.64,-701.293,27.65,173.588,-59.9861],[2703.05,-600.373,26.9667,169.341,-58.8468],[2641.46,-500.839,26.2667,164.987,-57.6079],[2576.35,-400.804,25.5333,160.432,-56.2255],[2507.67,-300.929,24.7667,155.69,-54.68],[2435.33,-201.919,23.9667,150.781,-52.9481],[2356.21,-100.749,23.1,145.529,-50.9215],[2271.7,-0.74144,22.1833,140.082,-48.5914],[2180.13,98.4185,21.2,134.405,-45.8572],[2076.6,199.227,20.1,128.323,-42.4823],[1959.2,299.351,18.8667,121.946,-38.2628],[1819.46,399.331,17.4167,115.23,-32.666],[1636.95,499.326,15.55,108.225,-24.4144],[1265.22,599.966,11.8333,101.886,-5.11274],[1171.87,604.263,10.9167,102.202,-0.0685313]]], + [46,624.792,[[3333.78,-2000.73,35.25,217.391,-69.4],[3296.67,-1903.1,34.7667,214.67,-68.953],[3256.68,-1800.44,34.25,211.728,-68.4585],[3217.66,-1702.78,33.75,208.851,-67.9626],[3175.69,-1600.46,33.2167,205.749,-67.4137],[3133.38,-1500.09,32.6833,202.615,-66.8433],[3090.72,-1401.7,32.15,199.45,-66.25],[3046.36,-1302.33,31.6,196.156,-65.6128],[3000.28,-1202.22,31.0333,192.731,-64.9277],[2952.44,-1101.59,30.45,189.177,-64.1904],[2902.81,-1000.7,29.85,185.494,-63.3956],[2852.77,-902.503,29.25,181.785,-62.5616],[2799.49,-801.812,28.6167,177.848,-61.6355],[2744.34,-701.682,27.9667,173.788,-60.6326],[2687.28,-602.413,27.3,169.61,-59.5447],[2626.84,-501.973,26.6,165.216,-58.3326],[2562.95,-400.979,25.8667,160.614,-56.9795],[2495.54,-300.091,25.1,155.819,-55.4658],[2424.55,-200.013,24.3,150.847,-53.7682],[2349.91,-101.493,23.4667,145.723,-51.8597],[2268.52,-1.75527,22.5667,140.282,-49.6218],[2178.7,99.1857,21.5833,134.488,-46.9455],[2080.24,199.051,20.5167,128.441,-43.7411],[1968.26,299.232,19.3167,122.028,-39.7229],[1836.03,399.563,17.9167,115.234,-34.4317],[1668.46,499.487,16.1667,108.12,-26.8528],[1393.7,599.635,13.35,101.054,-12.5776],[1169.89,624.789,11.1,100.33,-0.0738738]]], + [47,645.279,[[3299.83,-2002.99,35.5333,217.642,-69.8266],[3262.16,-1901.62,35.0333,214.818,-69.3737],[3224.17,-1801.89,34.5333,211.962,-68.9049],[3184.6,-1700.58,34.0167,208.977,-68.4028],[3144.7,-1601.06,33.5,205.959,-67.8818],[3103.17,-1500.25,32.9667,202.812,-67.3231],[3061.31,-1401.4,32.4333,199.632,-66.7419],[3017.77,-1301.56,31.8833,196.322,-66.1177],[2972.55,-1200.96,31.3167,192.88,-65.4466],[2926.95,-1102.67,30.75,189.409,-64.7451],[2878.26,-1001.18,30.15,185.703,-63.9672],[2829.16,-902.378,29.55,181.971,-63.1506],[2776.89,-801.039,28.9167,178.007,-62.2437],[2722.77,-700.237,28.2667,173.917,-61.2614],[2666.79,-600.272,27.6,169.704,-60.1953],[2608.9,-501.458,26.9167,165.377,-59.0362],[2547.66,-401.852,26.2,160.836,-57.7422],[2482.99,-302.095,25.45,156.093,-56.2945],[2413.38,-200.817,24.65,151.059,-54.6352],[2340.18,-101.034,23.8167,145.863,-52.768],[2261.85,-1.72794,22.9333,140.435,-50.6188],[2175.29,99.2085,21.9667,134.628,-48.0451],[2080.29,199.542,20.9167,128.533,-44.9587],[1973.59,299.482,19.75,122.107,-41.1358],[1848.69,399.721,18.4,115.273,-36.1431],[1694.02,499.411,16.75,108.085,-29.1505],[1462.09,599.746,14.3167,100.667,-17.086],[1165.24,645.279,11.2667,98.4477,-0.00288454]]], + [48,665.702,[[3262.74,-2002.67,35.8,217.825,-70.2443],[3225.78,-1900.95,35.3,214.991,-69.8008],[3188.52,-1800.85,34.8,212.124,-69.3415],[3150.96,-1702.42,34.3,209.225,-68.8659],[3111.83,-1602.46,33.7833,206.196,-68.3561],[3071.1,-1501.18,33.25,203.036,-67.8095],[3030.04,-1401.88,32.7167,199.842,-67.2407],[2987.35,-1301.55,32.1667,196.517,-66.6298],[2943,-1200.45,31.6,193.057,-65.9728],[2898.28,-1101.66,31.0333,189.567,-65.286],[2851.86,-1002.42,30.45,185.944,-64.5459],[2802.37,-900.272,29.8333,182.085,-63.7245],[2752.45,-800.992,29.2167,178.199,-62.86],[2700.76,-702.064,28.5833,174.184,-61.924],[2645.87,-601.299,27.9167,169.94,-60.882],[2589.12,-501.657,27.2333,165.575,-59.7485],[2529.08,-401.174,26.5167,160.991,-58.4826],[2465.68,-300.491,25.7667,156.197,-57.0657],[2398.86,-200.291,24.9833,151.21,-55.4757],[2328.55,-101.302,24.1667,146.049,-53.6864],[2251.79,-0.618843,23.2833,140.537,-51.5842],[2169.89,98.4419,22.35,134.827,-49.1547],[2078.31,199.207,21.3167,128.691,-46.1873],[1976.79,298.791,20.1833,122.267,-42.5596],[1857.51,399.893,18.8667,115.336,-37.8012],[1713.79,499.421,17.3,108.088,-31.3095],[1510.41,599.793,15.1167,100.451,-20.7254],[1161.21,665.701,11.45,96.5294,-0.045282]]], + [49,686.039,[[3223.78,-2003.2,36.0667,218.031,-70.6681],[3187.55,-1901.11,35.5667,215.188,-70.2341],[3151.02,-1800.65,35.0667,212.311,-69.7847],[3114.2,-1701.83,34.5667,209.401,-69.3192],[3075.84,-1601.48,34.05,206.361,-68.8203],[3037.17,-1502.95,33.5333,203.287,-68.3023],[2995.66,-1400.08,32.9833,199.98,-67.7285],[2955.08,-1302.35,32.45,196.74,-67.1488],[2911.61,-1200.72,31.8833,193.264,-66.5063],[2867.77,-1101.42,31.3167,189.755,-65.8346],[2822.28,-1001.64,30.7333,186.112,-65.1106],[2775.09,-901.651,30.1333,182.334,-64.3291],[2726.18,-801.71,29.5167,178.424,-63.4842],[2675.52,-702.096,28.8833,174.382,-62.5692],[2621.73,-600.602,28.2167,170.104,-61.5502],[2566.12,-500.205,27.5333,165.703,-60.4414],[2508.66,-401.231,26.8333,161.184,-59.2323],[2447.93,-301.81,26.1,156.45,-57.8789],[2382.47,-200.502,25.3167,151.406,-56.3258],[2313.6,-100.347,24.5,146.178,-54.5769],[2239.83,-0.252472,23.6333,140.69,-52.5607],[2161.05,98.5737,22.7167,134.983,-50.2291],[2072.82,199.583,21.7,128.818,-47.3765],[1974.89,299.944,20.5833,122.32,-43.8822],[1864.07,398.94,19.3333,115.502,-39.4701],[1727.96,499.811,17.8167,108.099,-33.3334],[1547.43,599.326,15.8333,100.375,-23.943],[1154.56,686.039,11.6167,94.5997,-0.0101352]]], + [50,706.265,[[3181.75,-2001.19,36.3167,218.168,-71.0839],[3147.44,-1902.16,35.8333,215.411,-70.6735],[3111.65,-1801.32,35.3333,212.525,-70.2342],[3075.58,-1702.11,34.8333,209.605,-69.7791],[3038,-1601.36,34.3167,206.553,-69.2913],[3000.11,-1502.42,33.8,203.467,-68.7846],[2960.69,-1402.21,33.2667,200.247,-68.2408],[2919.69,-1300.95,32.7167,196.891,-67.6565],[2878.36,-1201.83,32.1667,193.501,-67.0469],[2835.43,-1101.99,31.6,189.975,-66.3905],[2790.86,-1001.66,31.0167,186.312,-65.6829],[2744.64,-901.096,30.4167,182.512,-64.919],[2696.74,-800.557,29.8,178.577,-64.093],[2647.12,-700.322,29.1667,174.507,-63.1982],[2595.76,-600.681,28.5167,170.306,-62.227],[2542.63,-501.935,27.85,165.977,-61.1708],[2486.37,-402.068,27.15,161.419,-59.9906],[2426.91,-301.702,26.4167,156.638,-58.6689],[2364.19,-201.499,25.65,151.647,-57.185],[2296.77,-100.156,24.8333,146.354,-55.4776],[2225.94,-0.675799,23.9833,140.894,-53.5471],[2148.84,99.6435,23.0667,135.092,-51.2702],[2065.32,199.103,22.0833,129.01,-48.5764],[1972.38,298.755,21,122.545,-45.271],[1865.42,399.342,19.7667,115.592,-41.0244],[1738.19,499.803,18.3167,108.17,-35.2975],[1573.66,599.571,16.4667,100.315,-26.7469],[1251.49,699.902,12.9167,92.5769,-6.86213],[1148.46,706.263,11.8,92.6363,-0.0950666]]], + [51,726.358,[[3137.88,-2000.08,36.5667,218.329,-71.506],[3104.27,-1900.73,36.0833,215.563,-71.1048],[3070.4,-1802.89,35.6,212.764,-70.6897],[3033.91,-1700,35.0833,209.737,-70.2301],[2998.3,-1602.12,34.5833,206.772,-69.7687],[2961.21,-1502.76,34.0667,203.675,-69.2737],[2922.61,-1402.11,33.5333,200.441,-68.7424],[2882.48,-1300.4,32.9833,197.071,-68.1715],[2842.02,-1200.82,32.4333,193.665,-67.5757],[2799.99,-1100.5,31.8667,190.121,-66.9341],[2757.61,-1002.52,31.3,186.544,-66.2626],[2712.37,-901.365,30.7,182.723,-65.5168],[2665.48,-800.212,30.0833,178.764,-64.71],[2618.2,-701.956,29.4667,174.775,-63.8595],[2567.94,-601.571,28.8167,170.544,-62.9119],[2515.95,-502.054,28.15,166.182,-61.881],[2460.89,-401.37,27.45,161.585,-60.7287],[2402.7,-300.139,26.7167,156.759,-59.4376],[2342.66,-201.17,25.9667,151.825,-58.0199],[2278.04,-100.765,25.1667,146.579,-56.388],[2208.75,-0.0124965,24.3167,141.045,-54.5044],[2134.7,99.9091,23.4167,135.258,-52.3226],[2054.4,199.372,22.45,129.165,-49.7389],[1964.91,299.533,21.3833,122.651,-46.563],[1863.17,399.996,20.1833,115.682,-42.5304],[1744.55,499.5,18.8,108.29,-37.2022],[1592.55,599.937,17.05,100.297,-29.3145],[1346.65,699.999,14.2667,92.0376,-14.1736],[1139.78,726.356,11.9667,90.6613,-0.101453]]], + [52,746.298,[[3093.27,-2003.38,36.8333,218.612,-71.9476],[3059.26,-1900.23,36.3333,215.742,-71.5424],[3026.13,-1802.05,35.85,212.934,-71.1369],[2991.57,-1702.1,35.35,209.994,-70.7026],[2955.57,-1600.56,34.8333,206.92,-70.237],[2919.28,-1500.83,34.3167,203.811,-69.7534],[2882.7,-1402.92,33.8,200.666,-69.2508],[2843.44,-1300.74,33.25,197.281,-68.6935],[2803.86,-1200.69,32.7,193.86,-68.1118],[2763.95,-1102.81,32.15,190.405,-67.5043],[2721.28,-1001.4,31.5667,186.704,-66.8297],[2678.26,-902.496,30.9833,182.969,-66.1219],[2632.4,-800.715,30.3667,178.986,-65.3349],[2586.15,-701.823,29.75,174.972,-64.505],[2536.99,-600.762,29.1,170.712,-63.5801],[2486.14,-500.545,28.4333,166.317,-62.5736],[2433.58,-401.488,27.75,161.792,-61.4758],[2377.97,-301.644,27.0333,157.033,-60.2458],[2319.27,-201.658,26.2833,152.049,-58.8641],[2256.09,-100.158,25.4833,146.743,-57.2727],[2189.68,-0.169359,24.65,141.247,-55.4719],[2118.63,99.3265,23.7667,135.48,-53.3852],[2041.5,198.762,22.8167,129.385,-50.9119],[1955.42,299.397,21.7667,122.83,-47.8666],[1858.78,399.625,20.6,115.86,-44.0479],[1747.11,498.997,19.2667,108.449,-39.0481],[1607.23,599.193,17.6167,100.413,-31.8116],[1399.19,699.638,15.2,91.8619,-19.0348],[1128.61,746.297,12.1167,88.6736,-0.0242986]]], + [53,766.056,[[3044.55,-2000.74,37.0667,218.73,-72.3686],[3012.41,-1900.7,36.5833,215.948,-71.9861],[2980.01,-1802.17,36.1,213.131,-71.5905],[2946.22,-1701.86,35.6,210.182,-71.1666],[2912.17,-1603.2,35.1,207.197,-70.7271],[2876.7,-1503.02,34.5833,204.077,-70.2557],[2839.78,-1401.52,34.05,200.818,-69.7495],[2802.56,-1302,33.5167,197.523,-69.2222],[2763.87,-1201.47,32.9667,194.087,-68.655],[2723.68,-1100.15,32.4,190.51,-68.0441],[2683.15,-1001.16,31.8333,186.896,-67.4045],[2641.1,-901.729,31.25,183.141,-66.714],[2597.48,-802.109,30.65,179.244,-65.9673],[2552.28,-702.567,30.0333,175.206,-65.1585],[2504.24,-600.812,29.3833,170.918,-64.2568],[2455.79,-502.358,28.7333,166.602,-63.3006],[2403.17,-400.077,28.0333,161.93,-62.2044],[2350.09,-301.739,27.3333,157.241,-61.0329],[2292.73,-200.819,26.5833,152.208,-59.686],[2232.28,-100.394,25.8,146.956,-58.1673],[2168.7,-1.19421,24.9833,141.502,-56.4488],[2099.3,99.6877,24.1,135.653,-54.4167],[2025.29,198.926,23.1667,129.562,-52.0496],[1942.55,299.848,22.1333,122.978,-49.1304],[1850.88,399.557,21,116.029,-45.5182],[1744.61,499.56,19.7,108.545,-40.7714],[1615.02,599.348,18.1333,100.488,-34.0807],[1431.84,699.958,15.95,91.7585,-22.848],[1117.95,766.054,12.2833,86.654,-0.0742736]]], + [54,785.613,[[2995.1,-2002.57,37.3167,218.97,-72.8086],[2963.7,-1902.18,36.8333,216.18,-72.4358],[2932.05,-1803.29,36.35,213.355,-72.0501],[2899.04,-1702.6,35.85,210.397,-71.6369],[2864.66,-1600.29,35.3333,207.302,-71.1939],[2831.12,-1502.99,34.8333,204.271,-70.7488],[2795.06,-1401.08,34.3,201.001,-70.2552],[2758.7,-1301.14,33.7667,197.692,-69.7409],[2720.9,-1200.17,33.2167,194.241,-69.1877],[2682.79,-1101.36,32.6667,190.753,-68.6098],[2643.21,-1001.85,32.1,187.123,-67.9866],[2602.14,-901.869,31.5167,183.349,-67.3137],[2559.53,-801.683,30.9167,179.43,-66.586],[2515.39,-701.552,30.3,175.368,-65.7976],[2469.67,-601.755,29.6667,171.163,-64.9416],[2421.14,-500.085,29,166.705,-63.9857],[2372.19,-401.931,28.3333,162.221,-62.9687],[2319.13,-300.398,27.6167,157.38,-61.8006],[2264.36,-200.837,26.8833,152.413,-60.5174],[2206.6,-101.509,26.1167,147.219,-59.0709],[2144.54,-1.1339,25.3,141.7,-57.3986],[2078.07,99.1671,24.4333,135.882,-55.4585],[2005.83,199.912,23.5,129.694,-53.1542],[1927.68,299.358,22.5,123.198,-50.405],[1839.56,399.858,21.3833,116.183,-46.9433],[1739.88,498.952,20.1333,108.748,-42.5059],[1617.55,599.866,18.6167,100.559,-36.2082],[1454.08,699.999,16.6167,91.757,-26.2038],[1104.86,785.612,12.4333,84.6217,-0.0392776]]], + [55,804.947,[[2942.72,-2001.95,37.55,219.141,-73.2419],[2912.06,-1901.25,37.0667,216.343,-72.8785],[2881.16,-1802.04,36.5833,213.51,-72.5025],[2848.94,-1701.02,36.0833,210.542,-72.0997],[2816.46,-1601.64,35.5833,207.537,-71.6819],[2782.62,-1500.72,35.0667,204.394,-71.2337],[2748.52,-1401.62,34.55,201.214,-70.7677],[2713.03,-1301.25,34.0167,197.892,-70.2668],[2677.26,-1202.87,33.4833,194.533,-69.7446],[2638.94,-1100.57,32.9167,190.924,-69.1647],[2600.3,-1000.59,32.35,187.277,-68.5575],[2560.21,-900.122,31.7667,183.483,-67.9018],[2519.79,-802.188,31.1833,179.653,-67.2126],[2476.7,-701.454,30.5667,175.567,-66.445],[2432.09,-601.031,29.9333,171.335,-65.6114],[2385.91,-501.21,29.2833,166.96,-64.7043],[2338.16,-402.296,28.6167,162.443,-63.7148],[2287.59,-302.269,27.9167,157.677,-62.6054],[2234.16,-201.755,27.1833,152.666,-61.358],[2177.81,-101.419,26.4167,147.419,-59.9511],[2118.5,-1.97401,25.6167,141.952,-58.3582],[2053.67,99.6127,24.75,136.058,-56.4715],[1984.47,199.999,23.8333,129.887,-54.2704],[1909.53,299.493,22.85,123.383,-51.642],[1826.18,399.135,21.7667,116.42,-48.3794],[1730.31,499.654,20.5333,108.862,-44.125],[1616.34,599.958,19.0833,100.689,-38.2731],[1469.11,699.418,17.2333,91.8671,-29.2936],[1173.11,799.933,13.5833,82.6373,-6.82119],[1090.81,804.946,12.5833,82.5672,-0.0267996]]], + [56,824.034,[[2888.51,-2002.4,37.7833,219.339,-73.6813],[2858.61,-1901.37,37.3,216.534,-73.3274],[2828.46,-1801.84,36.8167,213.693,-72.9614],[2797.03,-1700.47,36.3167,210.716,-72.5691],[2765.35,-1600.75,35.8167,207.701,-72.1623],[2733.42,-1502.71,35.3167,204.65,-71.7401],[2700.16,-1403.18,34.8,201.458,-71.2867],[2665.55,-1302.37,34.2667,198.125,-70.7995],[2629.57,-1200.49,33.7167,194.647,-70.2751],[2593.3,-1100.77,33.1667,191.129,-69.7272],[2555.62,-1000.3,32.6,187.465,-69.1362],[2517.64,-902.179,32.0333,183.762,-68.5166],[2477.1,-800.889,31.4333,179.802,-67.827],[2436.22,-702.311,30.8333,175.805,-67.1003],[2392.72,-601.244,30.2,171.548,-66.2897],[2347.7,-500.757,29.55,167.144,-65.4073],[2301.14,-401.152,28.8833,162.595,-64.4445],[2251.83,-300.393,28.1833,157.791,-63.3645],[2200.93,-201.357,27.4667,152.851,-62.1783],[2146,-100.098,26.7,147.555,-60.8096],[2089.39,-1.71761,25.9167,142.143,-59.2927],[2027.41,99.1406,25.0667,136.291,-57.4948],[1961.2,199.142,24.1667,130.144,-55.3967],[1889.43,298.655,23.2,123.638,-52.8893],[1809.47,398.826,22.1333,116.634,-49.7722],[1718.61,499.245,20.9333,109.074,-45.756],[1611.48,599.717,19.5333,100.865,-40.2759],[1475.94,699.626,17.7833,91.9445,-32.0364],[1253.01,799.748,14.95,82.3015,-15.2482],[1075.8,824.033,12.7333,80.4912,-0.0387871]]], + [57,842.852,[[2831.48,-2000.44,38,219.47,-74.1147],[2803.34,-1902.59,37.5333,216.754,-73.7823],[2773.97,-1802.72,37.05,213.905,-73.4263],[2743.34,-1701,36.55,210.919,-73.0448],[2712.47,-1600.92,36.05,207.896,-72.6491],[2681.35,-1502.52,35.55,204.834,-72.2384],[2648.94,-1402.61,35.0333,201.632,-71.7974],[2615.22,-1301.41,34.5,198.286,-71.3234],[2581.22,-1202.19,33.9667,194.901,-70.829],[2545.88,-1101.98,33.4167,191.369,-70.2965],[2509.17,-1001.02,32.85,187.689,-69.7222],[2472.17,-902.397,32.2833,183.969,-69.1199],[2432.67,-800.568,31.6833,179.989,-68.4495],[2392.84,-701.446,31.0833,175.97,-67.7429],[2351.58,-602.436,30.4667,171.802,-66.9758],[2307.72,-501.263,29.8167,167.37,-66.1187],[2262.36,-400.949,29.15,162.79,-65.1832],[2215.48,-301.809,28.4667,158.066,-64.1593],[2165.9,-201.899,27.75,153.085,-63.0078],[2113.57,-101.865,27,147.856,-61.7085],[2057.27,-0.338478,26.2,142.272,-60.2042],[1998.1,99.6492,25.3667,136.467,-58.4914],[1934.82,199.112,24.4833,130.351,-56.492],[1866.14,298.474,23.5333,123.853,-54.101],[1789.53,398.983,22.4833,116.821,-51.1241],[1703.56,499.016,21.3167,109.281,-47.3375],[1603.04,599.23,19.9667,101.077,-42.2176],[1477.51,699.585,18.3,92.0755,-34.6172],[1289.06,799.879,15.8333,82.2144,-20.4893],[1059.83,842.85,12.8833,78.3941,-0.0774559]]], + [58,861.379,[[2773.64,-2003.12,38.2333,219.724,-74.5658],[2745.27,-1901.46,37.75,216.905,-74.2312],[2716.67,-1801.29,37.2667,214.048,-73.885],[2687.84,-1702.64,36.7833,211.153,-73.5266],[2657.79,-1602.19,36.2833,208.121,-73.1423],[2626.48,-1500.15,35.7667,204.947,-72.7298],[2595.95,-1403.12,35.2667,201.838,-72.3149],[2563.12,-1301.51,34.7333,198.48,-71.8544],[2530.02,-1201.88,34.2,195.082,-71.374],[2495.62,-1101.25,33.65,191.536,-70.8566],[2460.94,-1002.79,33.1,187.949,-70.3152],[2423.86,-900.767,32.5167,184.103,-69.713],[2386.48,-801.264,31.9333,180.215,-69.0798],[2347.71,-701.584,31.3333,176.175,-68.3937],[2307.55,-601.993,30.7167,171.983,-67.6488],[2264.86,-500.203,30.0667,167.524,-66.8161],[2221.82,-401.73,29.4167,163.029,-65.9305],[2176.2,-301.837,28.7333,158.271,-64.9369],[2127.95,-201.128,28.0167,153.251,-63.819],[2077.03,-100.251,27.2667,147.975,-62.557],[2024.52,-1.9778,26.5,142.571,-61.1584],[1966.96,99.2011,25.6667,136.7,-59.4985],[1905.4,199.939,24.7833,130.505,-57.5591],[1839.77,298.988,23.85,124.024,-55.2799],[1766.43,399.654,22.8167,116.974,-52.4382],[1685.22,499.027,21.6833,109.475,-48.8725],[1589.91,599.752,20.3667,101.215,-44.0338],[1474.03,699.584,18.7833,92.2256,-37.0412],[1309.64,799.617,16.5667,82.2703,-24.776],[1041.63,861.379,13.0167,76.2833,-0.0227159]]], + [59,879.595,[[2713.02,-2003.44,38.45,219.911,-75.0112],[2685.42,-1901.47,37.9667,217.084,-74.6864],[2657.6,-1801,37.4833,214.22,-74.3502],[2629.57,-1702.03,37,211.318,-74.0021],[2600.34,-1601.26,36.5,208.276,-73.6289],[2570.87,-1502.15,36,205.196,-73.2414],[2540.18,-1401.51,35.4833,201.972,-72.8253],[2509.25,-1302.7,34.9667,198.708,-72.3921],[2477.07,-1202.65,34.4333,195.298,-71.9261],[2443.61,-1101.58,33.8833,191.739,-71.424],[2409.89,-1002.67,33.3333,188.137,-70.8986],[2373.83,-900.174,32.75,184.274,-70.3141],[2337.48,-800.19,32.1667,180.367,-69.6994],[2299.78,-700.01,31.5667,176.306,-69.0332],[2261.78,-602.568,30.9667,172.205,-68.3299],[2220.28,-500.142,30.3167,167.721,-67.5224],[2178.43,-401.027,29.6667,163.197,-66.6632],[2134.07,-300.453,28.9833,158.406,-65.6989],[2088.26,-201.334,28.2833,153.465,-64.6397],[2039.86,-101.802,27.55,148.263,-63.4443],[1987.71,-0.425726,26.7667,142.689,-62.0591],[1932.88,99.7478,25.95,136.875,-60.4812],[1874.17,199.801,25.0833,130.721,-58.6372],[1811.54,298.513,24.1667,124.262,-56.4698],[1741.43,399.311,23.15,117.204,-53.7639],[1663.69,499.339,22.0333,109.652,-50.3632],[1574.64,599.053,20.7667,101.466,-45.8613],[1465.68,699.894,19.2333,92.3643,-39.3147],[1319.39,799.499,17.2,82.3718,-28.4472],[1023.77,879.593,13.1667,74.1444,-0.119205]]], + [60,897.479,[[2649.7,-2001.38,38.65,220.03,-75.4517],[2623.81,-1902.65,38.1833,217.294,-75.1474],[2596.79,-1801.86,37.7,214.422,-74.8214],[2569.55,-1702.56,37.2167,211.513,-74.4839],[2541.15,-1601.46,36.7167,208.463,-74.1219],[2512.52,-1502.01,36.2167,205.373,-73.7462],[2482.71,-1401.01,35.7,202.139,-73.3425],[2452.66,-1301.85,35.1833,198.864,-72.9224],[2421.39,-1201.42,34.65,195.442,-72.4703],[2389.87,-1103,34.1167,191.977,-71.9983],[2356.12,-1000.66,33.55,188.252,-71.4734],[2322.09,-900.652,32.9833,184.483,-70.9227],[2286.78,-800.171,32.4,180.559,-70.327],[2251.18,-702.236,31.8167,176.592,-69.6996],[2213.25,-601.513,31.2,172.355,-68.9992],[2173.97,-501.118,30.5667,167.961,-68.2368],[2133.33,-401.342,29.9167,163.411,-67.4046],[2090.25,-300.067,29.2333,158.587,-66.4704],[2045.75,-200.224,28.5333,153.61,-65.4439],[1999.82,-102.155,27.8167,148.485,-64.3121],[1950.27,-1.96636,27.05,142.981,-63.0005],[1897.03,99.3079,26.2333,137.107,-61.4742],[1841.14,198.655,25.3833,131.001,-59.7252],[1780.33,298.761,24.4667,124.453,-57.6289],[1713.39,399.517,23.4667,117.396,-55.0537],[1640.2,498.566,22.3833,109.917,-51.865],[1554.93,599.594,21.1333,101.618,-47.5715],[1453.83,699.735,19.6667,92.5613,-41.5212],[1321.32,799.44,17.7667,82.5067,-31.7252],[1003.74,897.477,13.3,71.9921,-0.12063]]], + [61,915.007,[[2584.65,-2000.53,38.85,220.178,-75.8984],[2559.52,-1901.54,38.3833,217.435,-75.6034],[2533.29,-1800.46,37.9,214.556,-75.2874],[2506.85,-1700.89,37.4167,211.638,-74.9602],[2480.21,-1602.84,36.9333,208.682,-74.6212],[2452.44,-1503.04,36.4333,205.584,-74.2573],[2423.5,-1401.68,35.9167,202.34,-73.8665],[2394.34,-1302.14,35.4,199.055,-73.4596],[2364,-1201.33,34.8667,195.621,-73.0217],[2333.42,-1102.52,34.3333,192.144,-72.5645],[2301.63,-1002.75,33.7833,188.515,-72.0713],[2268.62,-902.246,33.2167,184.731,-71.5385],[2234.36,-801.254,32.6333,180.79,-70.9621],[2198.84,-700.026,32.0333,176.691,-70.3371],[2163.03,-601.526,31.4333,172.548,-69.677],[2124.92,-500.559,30.8,168.13,-68.9388],[2085.49,-400.19,30.15,163.552,-68.133],[2044.72,-300.726,29.4833,158.815,-67.2508],[2001.55,-200.137,28.7833,153.804,-66.2578],[1956.99,-101.299,28.0667,148.639,-65.1624],[1908.92,-0.277259,27.3,143.087,-63.8924],[1858.34,99.8634,26.5,137.277,-62.445],[1805.2,198.364,25.6667,131.224,-60.7871],[1746.23,299.759,24.75,124.592,-58.76],[1683.49,398.672,23.7833,117.664,-56.3545],[1612.54,499.599,22.7,110.042,-53.2738],[1533.19,598.963,21.5,101.875,-49.2936],[1438.57,699.185,20.0833,92.8054,-43.6616],[1316.99,799.411,18.2833,82.6655,-34.7219],[1103.28,899.854,15.1667,71.2614,-13.8885],[981.654,915.007,13.4167,69.8252,-0.0186862]]], + [62,932.163,[[2517.88,-2000.92,39.05,220.355,-76.351],[2493.52,-1901.65,38.5833,217.607,-76.0656],[2468.1,-1800.28,38.1,214.721,-75.7598],[2442.47,-1700.42,37.6167,211.795,-75.4431],[2416.65,-1602.07,37.1333,208.831,-75.1149],[2389.72,-1501.96,36.6333,205.724,-74.7627],[2361.68,-1400.28,36.1167,202.471,-74.3844],[2333.41,-1300.42,35.6,199.175,-73.9904],[2304.92,-1202.4,35.0833,195.836,-73.58],[2274.36,-1100.12,34.5333,192.238,-73.1237],[2244.48,-1002.99,34,188.705,-72.6609],[2212.49,-902.05,33.4333,184.907,-72.1456],[2179.29,-800.602,32.85,180.949,-71.5879],[2145.82,-701.689,32.2667,176.946,-71.0005],[2111.12,-602.636,31.6667,172.783,-70.3627],[2074.2,-501.078,31.0333,168.343,-69.6493],[2035.99,-400.097,30.3833,163.739,-68.8704],[1997.47,-302.459,29.7333,159.093,-68.0395],[1955.66,-201.104,29.0333,154.048,-67.0806],[1912.49,-101.473,28.3167,148.846,-66.0226],[1866.94,-1.75814,27.5667,143.37,-64.8231],[1817.94,99.3969,26.7667,137.506,-63.4263],[1766.46,198.964,25.9333,131.389,-61.825],[1710.39,299.745,25.0333,124.798,-59.9029],[1650.68,398.404,24.0833,117.89,-57.6217],[1583.03,499.582,23.0167,110.25,-54.6958],[1507.27,599.768,21.8333,102.011,-50.9082],[1418.91,699.445,20.4667,92.9795,-45.6669],[1306.73,799.911,18.75,82.7865,-37.4504],[1131.19,899.969,16.1,71.2456,-20.4865],[959.868,932.161,13.55,67.632,-0.0804496]]], + [63,948.922,[[2449.39,-2002.57,39.25,220.564,-76.8094],[2425.82,-1903.01,38.7833,217.809,-76.5336],[2401.21,-1801.34,38.3,214.917,-76.2381],[2376.4,-1701.18,37.8167,211.985,-75.9322],[2351.4,-1602.53,37.3333,209.013,-75.6151],[2325.34,-1502.1,36.8333,205.898,-75.2747],[2298.2,-1400.08,36.3167,202.635,-74.9091],[2271.72,-1303.08,35.8167,199.437,-74.5409],[2243.26,-1201.52,35.2833,195.98,-74.1317],[2214.57,-1101.95,34.75,192.479,-73.7043],[2184.75,-1001.39,34.2,188.823,-73.2432],[2153.78,-900.064,33.6333,185.009,-72.745],[2122.56,-801.092,33.0667,181.149,-72.2215],[2090.17,-701.704,32.4833,177.129,-71.6542],[2056.59,-602.156,31.8833,172.947,-71.0382],[2020.86,-500.071,31.25,168.483,-70.349],[1984.83,-401.107,30.6167,163.974,-69.6162],[1946.6,-300.356,29.95,159.18,-68.7932],[1907.1,-200.784,29.2667,154.223,-67.8889],[1865.33,-100.437,28.55,148.984,-66.8672],[1822.23,-2.14815,27.8167,143.587,-65.7351],[1774.83,99.9335,27.0167,137.672,-64.3874],[1726.03,198.523,26.2,131.617,-62.8738],[1672.79,298.673,25.3167,125.072,-61.0562],[1615.04,398.742,24.3667,118.07,-58.8581],[1550.63,499.994,23.3167,110.424,-56.0812],[1479.44,599.45,22.1667,102.245,-52.536],[1396.11,699.557,20.8333,93.1721,-47.6149],[1292.96,799.587,19.2,83.0099,-40.1003],[1141.63,899.625,16.8333,71.3839,-25.5998],[936.097,948.922,13.6667,65.4245,-0.0365503]]], + [64,965.267,[[2378.39,-2001.93,39.4333,220.705,-77.2638],[2355.59,-1902.13,38.9667,217.945,-76.9975],[2331.8,-1800.2,38.4833,215.046,-76.7122],[2308.65,-1703.21,38.0167,212.208,-76.4271],[2283.65,-1600.86,37.5167,209.126,-76.1106],[2258.46,-1500.15,37.0167,206.002,-75.7819],[2233.06,-1401.12,36.5167,202.836,-75.4403],[2206.62,-1300.57,36,199.52,-75.0731],[2179.96,-1201.85,35.4833,196.161,-74.6904],[2152.24,-1101.91,34.95,192.649,-74.278],[2123.41,-1000.97,34.4,188.98,-73.8331],[2094.36,-902.202,33.85,185.265,-73.3668],[2064.2,-802.757,33.2833,181.391,-72.8623],[2032,-700.06,32.6833,177.238,-72.2995],[1999.54,-600.078,32.0833,173.037,-71.7047],[1965.91,-500.188,31.4667,168.67,-71.0572],[1931.1,-400.674,30.8333,164.136,-70.3506],[1895.08,-301.829,30.1833,159.437,-69.5772],[1856.91,-201.561,29.5,154.45,-68.7061],[1816.55,-100.476,28.7833,149.175,-67.7217],[1774.92,-1.42498,28.05,143.738,-66.6304],[1730.07,99.4069,27.2667,137.897,-65.3589],[1682.92,198.978,26.45,131.785,-63.9008],[1632.47,298.352,25.5833,125.293,-62.1835],[1576.68,399.724,24.6333,118.2,-60.0663],[1516.45,499.322,23.6167,110.681,-57.4785],[1448.71,599.35,22.4833,102.459,-54.1199],[1370.26,699.588,21.1833,93.3748,-49.508],[1274.77,799.479,19.6167,83.219,-42.5867],[1140.12,899.939,17.4333,71.4885,-29.7661],[911.506,965.266,13.7833,63.1974,-0.0244325]]], + [65,981.177,[[2305.72,-2002.61,39.6167,220.877,-77.7241],[2283.72,-1902.54,39.15,218.111,-77.4674],[2260.76,-1800.34,38.6667,215.206,-77.1925],[2238.41,-1703.09,38.2,212.362,-76.9177],[2214.28,-1600.45,37.7,209.273,-76.6126],[2190.78,-1502.79,37.2167,206.246,-76.3066],[2165.45,-1400.13,36.7,202.966,-75.9666],[2140.75,-1302.5,36.2,199.748,-75.6242],[2114.2,-1200.25,35.6667,196.271,-75.2436],[2088.28,-1103.1,35.15,192.857,-74.8587],[2060.46,-1001.76,34.6,189.177,-74.4302],[2032.43,-902.587,34.05,185.449,-73.9812],[2003.32,-802.723,33.4833,181.56,-73.4953],[1973.11,-702.408,32.9,177.507,-72.9686],[1941.8,-601.898,32.3,173.289,-72.3965],[1909.35,-501.461,31.6833,168.902,-71.7735],[1875.76,-401.379,31.05,164.347,-71.0935],[1841.01,-301.945,30.4,159.622,-70.3491],[1804.19,-201.051,29.7167,154.606,-69.5105],[1766.15,-101.623,29.0167,149.42,-68.5853],[1725.99,-1.7874,28.2833,143.945,-67.5358],[1682.72,99.8911,27.5,138.057,-66.3124],[1638.17,198.36,26.7,132.015,-64.9386],[1589.5,298.814,25.8333,125.456,-63.2872],[1536.64,399.65,24.9,118.403,-61.2871],[1479.51,499.108,23.9,110.899,-58.8416],[1415.15,599.518,22.7833,102.649,-55.663],[1341.46,699.601,21.5167,93.5795,-51.3488],[1252.36,799.818,20,83.385,-44.9199],[1132.57,899.419,17.9833,71.7264,-33.5947],[886.096,981.177,13.9,60.9507,-0.047937]]], + [66,996.634,[[2230.65,-2001.02,39.7833,220.983,-78.1812],[2209.45,-1900.74,39.3167,218.211,-77.9341],[2188.09,-1801.82,38.85,215.4,-77.6786],[2165.78,-1700.83,38.3667,212.448,-77.4047],[2143.31,-1601.35,37.8833,209.454,-77.1209],[2119.88,-1500.05,37.3833,206.315,-76.8161],[2096.26,-1400.42,36.8833,203.131,-76.4994],[2072.46,-1302.49,36.3833,199.906,-76.1701],[2047.68,-1203.09,35.8667,196.528,-75.8156],[2021.9,-1102.43,35.3333,192.994,-75.4336],[1995.1,-1000.74,34.7833,189.301,-75.0213],[1968.08,-901.222,34.2333,185.56,-74.5891],[1940.03,-800.994,33.6667,181.656,-74.1215],[1910.93,-700.301,33.0833,177.587,-73.6145],[1881.6,-602.163,32.5,173.468,-73.0794],[1850.34,-501.24,31.8833,169.062,-72.4805],[1817.98,-400.653,31.25,164.485,-71.8265],[1784.5,-300.697,30.6,159.735,-71.1105],[1749.89,-201.679,29.9333,154.814,-70.324],[1713.26,-101.583,29.2333,149.597,-69.4351],[1674.57,-1.04032,28.5,144.084,-68.4264],[1633.79,99.2743,27.7333,138.277,-67.2761],[1590.88,198.642,26.9333,132.184,-65.9569],[1544.92,298.19,26.0833,125.688,-64.402],[1494.93,398.477,25.1667,118.682,-62.5186],[1439.92,499.387,24.1667,111.074,-60.1733],[1378.88,599.996,23.0667,102.809,-57.1684],[1309.82,699.651,21.8333,93.7793,-53.1403],[1226.9,799.785,20.3667,83.5937,-47.187],[1118.35,899.349,18.4667,71.9245,-36.9902],[859.872,996.632,14.0167,58.6853,-0.111484]]], + [67,1011.62,[[2154.01,-2000.8,39.95,221.121,-78.6442],[2133.61,-1900.28,39.4833,218.343,-78.4068],[2113.06,-1801.13,39.0167,215.526,-78.1614],[2092.35,-1703.36,38.55,212.67,-77.9074],[2069.99,-1600.17,38.05,209.567,-77.6255],[2048.2,-1501.97,37.5667,206.525,-77.3426],[2025.49,-1402.03,37.0667,203.335,-77.0386],[2001.83,-1300.52,36.55,199.993,-76.7117],[1977.99,-1200.85,36.0333,196.604,-76.371],[1953.97,-1103.03,35.5167,193.171,-76.0154],[1928.19,-1000.98,34.9667,189.467,-75.6197],[1902.21,-901.096,34.4167,185.714,-75.2048],[1875.24,-800.488,33.85,181.796,-74.7558],[1848.05,-702.252,33.2833,177.829,-74.2831],[1819.03,-600.863,32.6833,173.576,-73.7548],[1789.79,-502.215,32.0833,169.271,-73.1955],[1758.67,-401.105,31.45,164.673,-72.5681],[1726.48,-300.607,30.8,159.9,-71.8811],[1693.2,-201.028,30.1333,154.951,-71.1263],[1657.97,-100.337,29.4333,149.703,-70.2729],[1621.62,-1.41579,28.7167,144.28,-69.327],[1582.41,99.6692,27.95,138.432,-68.2238],[1541.15,199.848,27.15,132.289,-66.9579],[1497.83,298.357,26.3167,125.861,-65.4956],[1449.78,399.725,25.4,118.779,-63.689],[1398.67,498.566,24.4333,111.331,-61.5169],[1340.9,599.359,23.35,103.061,-58.6865],[1275.43,699.792,22.1333,93.9674,-54.8856],[1198.49,799.454,20.7167,83.8347,-49.3897],[1098.82,899.612,18.9,72.0899,-40.0836],[918.093,999.91,15.65,58.017,-15.0254],[831.892,1011.62,14.1167,56.4051,-0.0543658]]], + [68,1026.12,[[2075.79,-2001.96,40.1167,221.291,-79.1129],[2056.21,-1901.2,39.65,218.508,-78.8854],[2036.48,-1801.8,39.1833,215.686,-78.6501],[2015.89,-1700.31,38.7,212.722,-78.3978],[1995.13,-1600.32,38.2167,209.715,-78.1363],[1974.22,-1501.87,37.7333,206.666,-77.8651],[1952.41,-1401.65,37.2333,203.468,-77.5737],[1930.44,-1303.12,36.7333,200.226,-77.2706],[1907.56,-1203.1,36.2167,196.83,-76.9444],[1883.75,-1101.8,35.6833,193.276,-76.5927],[1859.76,-1002.51,35.15,189.674,-76.2249],[1834.83,-902.24,34.6,185.91,-75.8275],[1808.93,-801.237,34.0333,181.979,-75.3974],[1782.84,-702.601,33.4667,177.998,-74.9447],[1754.99,-600.785,32.8667,173.729,-74.4385],[1726.92,-501.706,32.2667,169.406,-73.9026],[1697.05,-400.137,31.6333,164.788,-73.3013],[1666.95,-301.71,31,160.115,-72.6602],[1635.01,-201.549,30.3333,155.142,-71.9377],[1601.2,-100.242,29.6333,149.865,-71.1206],[1566.31,-0.683417,28.9167,144.408,-70.2146],[1529.51,98.9295,28.1667,138.648,-69.1816],[1489.93,199.946,27.3667,132.458,-67.9704],[1448.35,299.336,26.5333,125.974,-66.5703],[1403.09,399.887,25.6333,118.95,-64.8725],[1354.05,499.912,24.6667,111.412,-62.7931],[1300.34,599.06,23.6167,103.278,-60.1692],[1239.28,698.761,22.4333,94.2634,-56.6426],[1166.37,799.988,21.0333,83.9799,-51.4608],[1075.2,899.8,19.3,72.2696,-42.9912],[927.03,999.997,16.5167,58.1105,-22.7574],[803.181,1026.12,14.2167,54.1065,-0.034808]]], + [69,1040.1,[[1995.35,-2000.91,40.2667,221.395,-79.5792],[1977.26,-1903.52,39.8167,218.708,-79.3693],[1957.69,-1800.34,39.3333,215.779,-79.1362],[1938.64,-1702.11,38.8667,212.911,-78.9032],[1918.76,-1601.86,38.3833,209.899,-78.6532],[1898.72,-1503.13,37.9,206.844,-78.3938],[1877.84,-1402.63,37.4,203.639,-78.1152],[1856.09,-1300.55,36.8833,200.281,-77.8155],[1834.16,-1200.29,36.3667,196.875,-77.503],[1812.07,-1101.88,35.85,193.422,-77.177],[1789.09,-1002.27,35.3167,189.81,-76.8252],[1765.21,-901.674,34.7667,186.034,-76.445],[1740.4,-800.327,34.2,182.091,-76.0336],[1715.4,-701.347,33.6333,178.096,-75.6004],[1689.47,-601.964,33.05,173.93,-75.1299],[1662.59,-502.436,32.45,169.591,-74.6177],[1633.98,-400.388,31.8167,164.954,-74.0431],[1605.15,-301.478,31.1833,160.26,-73.4303],[1574.56,-200.804,30.5167,155.262,-72.7394],[1542.96,-101.332,29.8333,150.083,-71.9773],[1509.55,-1.11343,29.1167,144.595,-71.1122],[1474.31,99.197,28.3667,138.797,-70.1253],[1437.2,198.9,27.5833,132.692,-68.9929],[1397.4,299.2,26.75,126.155,-67.6568],[1354.86,398.926,25.8667,119.195,-66.067],[1308.73,498.494,24.9167,111.703,-64.12],[1257.32,599.135,23.8667,103.457,-61.6194],[1199.7,699.196,22.7,94.4139,-58.3028],[1132.42,799.289,21.35,84.2548,-53.5454],[1048.56,899.276,19.6833,72.5407,-45.8138],[921.353,999.58,17.1833,58.3432,-28.6778],[773.743,1040.1,14.3167,51.7898,-0.0581917]]], + [70,1053.57,[[1913.42,-2001.28,40.4167,221.533,-80.0512],[1895.49,-1900.1,39.95,218.74,-79.8433],[1877.42,-1800.28,39.4833,215.907,-79.6282],[1859.22,-1701.84,39.0167,213.034,-79.4058],[1840.21,-1601.36,38.5333,210.015,-79.1671],[1821.07,-1502.4,38.05,206.954,-78.9195],[1801.1,-1401.66,37.55,203.742,-78.6535],[1780.99,-1302.59,37.05,200.484,-78.3767],[1760.04,-1202.02,36.5333,197.071,-78.0787],[1738.24,-1100.14,36,193.498,-77.7575],[1716.28,-1000.26,35.4667,189.874,-77.4215],[1694.14,-902.416,34.9333,186.202,-77.0697],[1670.44,-800.712,34.3667,182.247,-76.6772],[1646.55,-701.37,33.8,178.239,-76.2639],[1621.77,-601.612,33.2167,174.059,-75.815],[1596.08,-501.694,32.6167,169.704,-75.3263],[1569.47,-401.887,32,165.171,-74.7928],[1541.92,-302.475,31.3667,160.458,-74.2087],[1512.7,-201.267,30.7,155.437,-73.5502],[1482.5,-101.243,30.0167,150.231,-72.8236],[1450.58,-0.439168,29.3,144.713,-71.9985],[1417.66,98.2972,28.5667,139.009,-71.0788],[1382.21,198.762,27.7833,132.862,-70.0001],[1344.19,299.879,26.95,126.274,-68.7265],[1304.32,398.646,26.0833,119.384,-67.2404],[1260.27,499.303,25.1333,111.813,-65.3854],[1211.94,599.621,24.1,103.595,-63.0405],[1157.69,699.859,22.95,94.5366,-59.9268],[1095.04,799.643,21.6333,84.4107,-55.511],[1017.39,899.947,20.0167,72.6581,-48.3797],[905.741,999.759,17.7167,58.5062,-33.4593],[743.579,1053.57,14.4167,49.4556,-0.131115]]], + [71,1066.49,[[1830.02,-2003.12,40.5667,221.704,-80.5285],[1812.93,-1901.71,40.1,218.908,-80.3306],[1795.7,-1801.66,39.6333,216.07,-80.126],[1778.35,-1702.99,39.1667,213.192,-79.9142],[1760.24,-1602.27,38.6833,210.168,-79.6871],[1741.98,-1503.07,38.2,207.101,-79.4514],[1722.95,-1402.07,37.7,203.882,-79.1981],[1703.78,-1302.75,37.2,200.618,-78.9346],[1683.81,-1201.91,36.6833,197.196,-78.651],[1663.68,-1102.91,36.1667,193.727,-78.3549],[1642.75,-1002.69,35.6333,190.096,-78.0355],[1620.99,-901.461,35.0833,186.299,-77.6902],[1599.07,-802.419,34.5333,182.449,-77.3277],[1576.3,-702.7,33.9667,178.43,-76.9347],[1552.68,-602.549,33.3833,174.236,-76.5078],[1528.2,-502.224,32.7833,169.866,-76.0428],[1502.83,-401.994,32.1667,165.316,-75.5353],[1476.58,-302.144,31.5333,160.584,-74.9796],[1448.73,-200.47,30.8667,155.541,-74.3529],[1420.65,-102.37,30.2,150.438,-73.6787],[1390.24,-0.958928,29.4833,144.89,-72.8945],[1358.86,98.4055,28.75,139.154,-72.0201],[1325.08,199.547,27.9667,132.967,-70.994],[1289.58,299.413,27.15,126.463,-69.8075],[1251.59,399.068,26.2833,119.515,-68.3951],[1210.35,498.995,25.35,112.003,-66.6638],[1165.06,598.985,24.3333,103.821,-64.4745],[1114.14,699.395,23.2,94.7598,-61.5651],[1055.22,799.998,21.9,84.5601,-57.4303],[984.332,899.283,20.35,72.9411,-50.9596],[884.237,999.79,18.1833,58.7027,-37.7108],[711.915,1066.49,14.5,47.1069,-0.0625784]]], + [72,1078.85,[[1744.59,-2002.78,40.7,221.81,-81.0041],[1728.34,-1901.19,40.2333,219.009,-80.8162],[1711.97,-1800.95,39.7667,216.167,-80.6218],[1695.47,-1702.09,39.3,213.284,-80.4207],[1678.25,-1601.17,38.8167,210.254,-80.2049],[1660.9,-1501.76,38.3333,207.18,-79.981],[1642.81,-1400.55,37.8333,203.954,-79.7405],[1624.58,-1301.02,37.3333,200.682,-79.4901],[1606.21,-1203.19,36.8333,197.364,-79.2295],[1586.46,-1100.74,36.3,193.774,-78.9393],[1566.56,-1000.28,35.7667,190.132,-78.6357],[1546.5,-901.855,35.2333,186.44,-78.3178],[1525.66,-802.502,34.6833,182.58,-77.9738],[1504.02,-702.46,34.1167,178.549,-77.6007],[1481.57,-601.973,33.5333,174.342,-77.1954],[1458.3,-501.298,32.9333,169.957,-76.7541],[1434.19,-400.707,32.3167,165.39,-76.2721],[1409.24,-300.482,31.6833,160.638,-75.7443],[1383.43,-200.919,31.0333,155.7,-75.1644],[1356.75,-102.328,30.3667,150.574,-74.5249],[1327.85,-0.383849,29.65,144.999,-73.7809],[1298.03,99.5309,28.9167,139.231,-72.951],[1266.61,199.155,28.15,133.138,-71.9985],[1232.88,299.762,27.3333,126.589,-70.8737],[1197.48,398.34,26.4833,119.721,-69.5612],[1158.3,499.266,25.55,112.14,-67.9212],[1115.98,598.772,24.55,104.003,-65.8816],[1068.32,699.178,23.4333,94.9513,-63.1691],[1013.8,799.182,22.1667,84.8286,-59.3631],[947.934,899.201,20.65,73.1439,-53.3884],[858.038,999.687,18.6,58.9228,-41.5886],[679.618,1078.85,14.5833,44.7414,-0.0402033]]], + [73,1090.65,[[1657.23,-2000.29,40.8167,221.852,-81.4788],[1642.38,-1902.16,40.3667,219.146,-81.3072],[1626.87,-1801.72,39.9,216.3,-81.1232],[1611.23,-1702.65,39.4333,213.412,-80.9329],[1594.92,-1601.52,38.95,210.377,-80.7287],[1578.48,-1501.9,38.4667,207.298,-80.5168],[1561.33,-1400.47,37.9667,204.066,-80.289],[1544.06,-1300.71,37.4667,200.787,-80.0521],[1526.65,-1202.65,36.9667,197.462,-79.8054],[1508.53,-1103.14,36.45,193.977,-79.5394],[1489.67,-1002.37,35.9167,190.328,-79.2525],[1470.08,-900.576,35.3667,186.511,-78.9422],[1450.33,-800.964,34.8167,182.64,-78.6164],[1429.82,-700.651,34.25,178.596,-78.2632],[1409.16,-602.728,33.6833,174.497,-77.8906],[1387.11,-501.687,33.0833,170.098,-77.4731],[1364.27,-400.715,32.4667,165.516,-77.0173],[1340.63,-300.096,31.8333,160.747,-76.518],[1316.18,-200.125,31.1833,155.789,-75.9692],[1290.91,-101.111,30.5167,150.64,-75.364],[1264.16,-1.04183,29.8167,145.169,-74.6767],[1235.91,99.4476,29.0833,139.371,-73.8923],[1206.15,199.679,28.3167,133.243,-72.9917],[1174.85,298.928,27.5167,126.786,-71.9504],[1141.33,398.314,26.6667,119.868,-70.7109],[1104.89,498.385,25.75,112.359,-69.1902],[1064.81,599.009,24.75,104.138,-67.2651],[1020.35,699.24,23.65,95.1076,-64.7423],[969.406,799.64,22.4,84.9507,-61.1973],[908.421,899.86,20.9167,73.2447,-55.6823],[827.494,999.871,18.9667,59.0942,-45.1198],[646.694,1090.64,14.6667,42.3593,-0.072207]]], + [74,1101.85,[[1569.09,-2002.96,40.95,222.027,-81.965],[1554.55,-1901.01,40.4833,219.218,-81.7971],[1539.9,-1800.4,40.0167,216.367,-81.6236],[1525.14,-1701.18,39.55,213.474,-81.4439],[1510.26,-1603.34,39.0833,210.539,-81.2579],[1494.2,-1500.08,38.5833,207.348,-81.0511],[1478.55,-1401.83,38.1,204.218,-80.8435],[1462.25,-1301.83,37.6,200.933,-80.6201],[1445.26,-1200.29,37.0833,197.49,-80.3796],[1428.15,-1100.58,36.5667,193.996,-80.1285],[1410.9,-1002.74,36.05,190.453,-79.8662],[1392.4,-900.672,35.5,186.627,-79.5737],[1373.75,-800.784,34.95,182.747,-79.2664],[1354.39,-700.186,34.3833,178.692,-78.9333],[1334.88,-601.974,33.8167,174.581,-78.5818],[1314.07,-500.625,33.2167,170.169,-78.1881],[1293.09,-402.033,32.6167,165.696,-77.77],[1270.78,-301,31.9833,160.911,-77.2996],[1247.69,-200.6,31.3333,155.935,-76.7827],[1223.83,-101.142,30.6667,150.766,-76.2123],[1198.58,-0.602291,29.9667,145.27,-75.5645],[1172.53,98.1392,29.25,139.576,-74.8425],[1144.44,199.003,28.4833,133.416,-73.9949],[1114.9,298.918,27.6833,126.92,-73.0144],[1083.26,399.019,26.8333,119.954,-71.8465],[1048.86,499.867,25.9167,112.384,-70.4127],[1011.66,599.728,24.9333,104.223,-68.6279],[970.35,699.622,23.85,95.2249,-66.2882],[923.564,798.963,22.6333,85.1866,-63.046],[867.328,899.332,21.1833,73.4878,-57.9925],[793.613,999.973,19.3,59.2733,-48.442],[637.107,1099.96,15.35,40.3366,-8.5489],[613.153,1101.85,14.75,39.9614,-0.168639]]], + [75,1112.45,[[1479.14,-2003.5,41.0667,222.139,-82.4501],[1465.47,-1901.38,40.6,219.326,-82.2924],[1451.69,-1800.61,40.1333,216.471,-82.1293],[1437.8,-1701.2,39.6667,213.574,-81.9605],[1423.82,-1603.19,39.2,210.634,-81.7857],[1409.22,-1503.16,38.7167,207.545,-81.598],[1393.99,-1401.3,38.2167,204.302,-81.3963],[1378.66,-1301.11,37.7167,201.012,-81.1864],[1363.2,-1202.61,37.2167,197.673,-80.9678],[1347.11,-1102.64,36.7,194.174,-80.7321],[1330.36,-1001.4,36.1667,190.509,-80.4778],[1313.49,-902.18,35.6333,186.791,-80.2114],[1295.96,-802.002,35.0833,182.902,-79.923],[1277.76,-701.102,34.5167,178.838,-79.6103],[1259.42,-602.585,33.95,174.716,-79.2803],[1239.84,-500.91,33.35,170.291,-78.9106],[1220.12,-401.988,32.75,165.805,-78.518],[1199.13,-300.604,32.1167,161.004,-78.0763],[1177.99,-202.382,31.4833,156.139,-77.6036],[1154.99,-100.007,30.8,150.821,-77.0549],[1131.82,-1.4253,30.1167,145.434,-76.4612],[1107.32,97.8265,29.4,139.715,-75.7838],[1080.92,199.241,28.6333,133.523,-74.9883],[1053.14,299.737,27.8333,126.99,-74.0678],[1023.98,398.545,27,120.117,-72.9935],[992.234,498.422,26.1,112.629,-71.6749],[957.272,599.308,25.1167,104.397,-70.0039],[919.039,698.868,24.05,95.4408,-67.8473],[875.069,799.688,22.8333,85.2619,-64.8099],[823.437,899.709,21.4167,73.6068,-60.1827],[757.249,999.41,19.6167,59.5501,-51.6691],[637.693,1099.95,16.4,40.4833,-22.592],[578.375,1112.45,14.8167,37.5499,-0.0934824]]], + [76,1122.44,[[1387.48,-2001.93,41.1667,222.187,-82.9348],[1375.14,-1903.3,40.7167,219.471,-82.7925],[1362.24,-1802.34,40.25,216.613,-82.64],[1349.24,-1702.75,39.7833,213.712,-82.4822],[1335.68,-1601.07,39.3,210.663,-82.3129],[1322,-1500.9,38.8167,207.568,-82.1372],[1308.23,-1402.26,38.3333,204.428,-81.9548],[1293.87,-1301.86,37.8333,201.132,-81.7585],[1279.41,-1203.16,37.3333,197.788,-81.5541],[1264.34,-1102.97,36.8167,194.282,-81.3338],[1248.67,-1001.5,36.2833,190.61,-81.0959],[1232.88,-902.049,35.75,186.884,-80.8468],[1216.46,-801.633,35.2,182.986,-80.5771],[1199.42,-700.483,34.6333,178.912,-80.2846],[1182.25,-601.715,34.0667,174.78,-79.9759],[1164.44,-502.567,33.4833,170.467,-79.64],[1145.46,-400.58,32.8667,165.843,-79.2628],[1126.34,-301.543,32.25,161.155,-78.8606],[1106.02,-200.396,31.6,156.145,-78.407],[1085.02,-100.164,30.9333,150.937,-77.9063],[1063.33,-1.1719,30.25,145.529,-77.3514],[1040.41,98.5151,29.5333,139.785,-76.7181],[1016.23,198.237,28.7833,133.7,-75.9911],[990.234,299.341,27.9833,127.133,-75.1318],[962.944,398.789,27.15,120.218,-74.1283],[933.237,499.363,26.25,112.679,-72.896],[901.075,599.366,25.2833,104.519,-71.3613],[865.299,699.927,24.2167,95.4744,-69.3465],[825.288,799.288,23.0333,85.4478,-66.5897],[778.126,898.924,21.65,73.8616,-62.3876],[717.368,999.876,19.8833,59.6524,-54.6175],[617.786,1099.89,17.0167,40.6941,-30.9118],[543.076,1122.44,14.8833,35.1234,-0.0786634]]], + [77,1131.8,[[1294.67,-2001.91,41.2667,222.271,-83.4244],[1283.18,-1903.14,40.8167,219.552,-83.292],[1271.16,-1802.04,40.35,216.69,-83.1501],[1259.06,-1702.3,39.8833,213.785,-83.0033],[1246.42,-1600.46,39.4,210.731,-82.8457],[1233.69,-1500.14,38.9167,207.632,-82.6821],[1220.86,-1401.34,38.4333,204.486,-82.5123],[1207.49,-1300.78,37.9333,201.185,-82.3296],[1194.01,-1201.91,37.4333,197.834,-82.1393],[1179.98,-1101.55,36.9167,194.321,-81.9343],[1165.84,-1003.05,36.4,190.757,-81.7199],[1150.68,-900.265,35.85,186.908,-81.4808],[1135.85,-802.676,35.3167,183.12,-81.2374],[1119.99,-701.262,34.75,179.038,-80.9655],[1104,-602.227,34.1833,174.896,-80.6785],[1087.41,-502.8,33.6,170.573,-80.3661],[1069.74,-400.516,32.9833,165.936,-80.0152],[1051.93,-301.18,32.3667,161.234,-79.6412],[1033.5,-202.274,31.7333,156.339,-79.2303],[1013.95,-101.623,31.0667,151.115,-78.7653],[993.754,-2.19701,30.3833,145.688,-78.2498],[972.41,97.9493,29.6667,139.922,-77.6614],[949.899,198.157,28.9167,133.81,-76.9858],[925.698,299.783,28.1167,127.211,-76.1869],[900.29,399.779,27.2833,120.258,-75.2535],[873.146,499.143,26.4,112.811,-74.1292],[843.205,599.937,25.4333,104.59,-72.7031],[810.423,699.874,24.3833,95.6045,-70.8607],[773.706,799.075,23.2167,85.604,-68.3392],[730.342,899.19,21.85,73.9737,-64.489],[675.405,999.957,20.1333,59.8061,-57.496],[589.789,1099.99,17.4833,40.8709,-37.4182],[507.265,1131.8,14.95,32.6826,-0.137622]]], + [78,1140.52,[[1200.73,-2003.48,41.3667,222.391,-83.9187],[1189.69,-1900.92,40.9,219.568,-83.7916],[1178.97,-1803.3,40.45,216.805,-83.665],[1167.77,-1703.4,39.9833,213.897,-83.5293],[1156.07,-1601.4,39.5,210.84,-83.3835],[1144.28,-1500.9,39.0167,207.736,-83.2323],[1132.41,-1401.94,38.5333,204.587,-83.0752],[1120.03,-1301.2,38.0333,201.28,-82.9063],[1107.56,-1202.15,37.5333,197.925,-82.7303],[1094.57,-1101.6,37.0167,194.407,-82.5407],[1081.48,-1002.92,36.5,190.836,-82.3424],[1067.87,-903.023,35.9667,187.097,-82.1281],[1053.72,-802.147,35.4167,183.184,-81.8962],[1039.03,-700.521,34.85,179.093,-81.6446],[1024.23,-601.272,34.2833,174.942,-81.3791],[1008.88,-501.623,33.7,170.608,-81.09],[992.962,-401.835,33.1,166.086,-80.7744],[976.48,-302.18,32.4833,161.372,-80.4288],[958.973,-200.375,31.8333,156.333,-80.0388],[941.33,-101.942,31.1833,151.223,-79.6195],[922.64,-2.15219,30.5,145.779,-79.143],[902.886,98.3786,29.7833,139.991,-78.5991],[882.052,198.992,29.0333,133.855,-77.9743],[860.122,298.984,28.25,127.364,-77.2515],[836.609,399.56,27.4167,120.375,-76.3897],[811.491,499.542,26.5333,112.884,-75.3509],[784.264,599.342,25.5833,104.749,-74.057],[754.416,698.664,24.55,95.8335,-72.386],[720.447,799.062,23.3833,85.7275,-70.0622],[680.819,899.458,22.0333,74.0736,-66.5539],[631.484,999.691,20.3667,60.002,-60.306],[557.302,1099.65,17.8833,41.1464,-43.1782],[470.953,1140.51,15.0167,30.2285,-0.289555]]], + [79,1148.58,[[1105.33,-2002.95,41.45,222.448,-84.4129],[1095.19,-1900.28,40.9833,219.622,-84.2962],[1085.33,-1802.54,40.5333,216.855,-84.1799],[1075.03,-1702.52,40.0667,213.944,-84.0551],[1064.28,-1600.39,39.5833,210.882,-83.9212],[1053.82,-1503.22,39.1167,207.883,-83.7871],[1042.53,-1400.68,38.6167,204.62,-83.6379],[1031.53,-1303.14,38.1333,201.42,-83.488],[1019.68,-1200.63,37.6167,197.948,-83.321],[1008.13,-1103.16,37.1167,194.538,-83.1524],[995.713,-1001.11,36.5833,190.846,-82.9644],[983.199,-901.067,36.05,187.1,-82.7675],[970.195,-800.038,35.5,183.179,-82.5543],[957.092,-701.213,34.95,179.2,-82.3299],[943.488,-601.733,34.3833,175.041,-82.0862],[929.377,-501.845,33.8,170.698,-81.8208],[914.751,-401.809,33.2,166.165,-81.531],[899.604,-301.896,32.5833,161.44,-81.2137],[883.927,-202.392,31.95,156.518,-80.8651],[867.298,-101.107,31.2833,151.263,-80.4704],[850.121,-1.02438,30.6,145.8,-80.0327],[831.966,99.8164,29.8833,139.993,-79.5329],[813.245,198.565,29.15,133.97,-78.972],[793.094,299.013,28.3667,127.452,-78.3088],[771.922,398.115,27.55,120.572,-77.5346],[748.844,498.75,26.6667,113.042,-76.5831],[723.828,599.258,25.7167,104.856,-75.3971],[696.403,699.357,24.6833,95.8727,-73.8641],[665.639,799.281,23.5333,85.8159,-71.7627],[629.684,899.768,22.2,74.1572,-68.5868],[585.729,999.133,20.5833,60.2313,-63.05],[520.356,1099.97,18.2,41.2536,-48.1057],[433.684,1148.58,15.0667,27.7617,-0.222881]]], + [80,1155.98,[[1008.61,-2000.35,41.5167,222.443,-84.9077],[999.691,-1901.24,41.0667,219.714,-84.8051],[990.707,-1803.38,40.6167,216.945,-84.6992],[981.319,-1703.23,40.15,214.031,-84.5856],[971.521,-1600.97,39.6667,210.967,-84.4637],[961.647,-1500.21,39.1833,207.855,-84.3372],[951.698,-1400.98,38.7,204.698,-84.2057],[941.673,-1303.3,38.2167,201.493,-84.0691],[930.875,-1200.63,37.7,198.016,-83.917],[920.346,-1103.01,37.2,194.601,-83.7635],[909.028,-1000.8,36.6667,190.904,-83.5923],[897.623,-900.595,36.1333,187.152,-83.4129],[886.131,-802.432,35.6,183.344,-83.2246],[873.827,-700.403,35.0333,179.238,-83.0142],[861.428,-600.746,34.4667,175.071,-82.7922],[848.567,-500.675,33.8833,170.718,-82.5504],[835.237,-400.448,33.2833,166.176,-82.2863],[821.43,-300.339,32.6667,161.439,-81.9971],[807.142,-200.631,32.0333,156.503,-81.6793],[792.366,-101.623,31.3833,151.366,-81.3288],[776.713,-1.22436,30.7,145.889,-80.9305],[760.169,99.951,29.9833,140.063,-80.4755],[743.11,199.045,29.25,134.019,-79.9649],[724.746,299.865,28.4667,127.476,-79.3608],[705.453,399.358,27.65,120.566,-78.6554],[684.82,498.576,26.7833,113.141,-77.8054],[662.027,599.687,25.8333,104.909,-76.7264],[637.444,698.899,24.8167,96.0101,-75.3548],[609.417,799.741,23.6667,85.867,-73.4444],[577.482,898.966,22.3667,74.3685,-70.6335],[537.858,999.237,20.7667,60.3423,-65.6671],[480.824,1099.91,18.4833,41.435,-52.7469],[396.016,1155.98,15.1167,25.2827,-0.24518]]], + [81,1162.71,[[911.285,-2003.06,41.6,222.575,-85.4104],[902.942,-1900.17,41.1333,219.744,-85.3145],[894.836,-1802.22,40.6833,216.971,-85.219],[886.365,-1701.97,40.2167,214.054,-85.1165],[877.83,-1603.12,39.75,211.092,-85.0103],[868.923,-1502.2,39.2667,207.979,-84.8963],[859.948,-1402.82,38.7833,204.818,-84.7779],[850.592,-1301.64,38.2833,201.499,-84.6505],[841.164,-1202.15,37.7833,198.131,-84.5178],[831.348,-1101.14,37.2667,194.597,-84.3747],[821.456,-1001.99,36.75,191.011,-84.2252],[811.168,-901.607,36.2167,187.253,-84.0635],[800.476,-800.226,35.6667,183.32,-83.8885],[789.702,-701.046,35.1167,179.328,-83.7043],[778.517,-601.196,34.55,175.155,-83.5041],[766.915,-500.923,33.9667,170.795,-83.2862],[754.889,-400.488,33.3667,166.243,-83.0482],[742.435,-300.162,32.75,161.497,-82.7875],[729.545,-200.23,32.1167,156.55,-82.501],[716.216,-100.991,31.4667,151.4,-82.185],[702.095,-0.345814,30.7833,145.908,-81.8258],[687.518,98.779,30.0833,140.202,-81.4254],[672.132,198.244,29.35,134.141,-80.9656],[655.568,299.464,28.5667,127.576,-80.4218],[638.166,399.378,27.75,120.639,-79.7864],[619.556,499.046,26.8833,113.182,-79.0205],[599.359,598.942,25.95,105.053,-78.066],[577.188,698.845,24.9333,96.0998,-76.8319],[552.279,799.089,23.8,86.0273,-75.1388],[523.481,899.415,22.5,74.4114,-72.6105],[488.497,999.182,20.9333,60.466,-68.2382],[438.956,1099.66,18.7333,41.645,-57.1194],[357.959,1162.71,15.1667,22.7922,-0.38517]]], + [82,1168.76,[[812.513,-2000.01,41.65,222.545,-85.9103],[805.344,-1900.71,41.2,219.811,-85.8279],[798.122,-1802.66,40.75,217.037,-85.7428],[790.576,-1702.32,40.2833,214.117,-85.6516],[782.972,-1603.35,39.8167,211.153,-85.557],[775.036,-1502.33,39.3333,208.036,-85.4555],[767.04,-1402.84,38.85,204.873,-85.3501],[758.705,-1301.54,38.35,201.551,-85.2366],[750.306,-1201.93,37.85,198.178,-85.1185],[741.56,-1100.8,37.3333,194.64,-84.9911],[732.747,-1001.52,36.8167,191.049,-84.8579],[723.581,-901.017,36.2833,187.287,-84.7139],[714.345,-802.546,35.75,183.468,-84.5628],[704.456,-700.187,35.1833,179.35,-84.394],[694.491,-600.197,34.6167,175.169,-84.2157],[684.451,-502.614,34.05,170.927,-84.0273],[673.739,-401.952,33.45,166.369,-83.8156],[662.645,-301.39,32.8333,161.615,-83.5837],[651.163,-201.214,32.2,156.66,-83.3289],[639.29,-101.721,31.55,151.5,-83.0478],[626.711,-0.807394,30.8667,145.996,-82.7282],[613.727,98.5953,30.1667,140.275,-82.3719],[600.021,198.354,29.4333,134.197,-81.9628],[585.267,299.89,28.65,127.612,-81.4787],[570.083,398.149,27.85,120.794,-80.9252],[553.508,498.3,26.9833,113.309,-80.2446],[535.52,598.721,26.05,105.143,-79.3962],[515.773,699.201,25.0333,96.1409,-78.2985],[493.915,798.696,23.9167,86.1493,-76.8155],[468.268,899.973,22.6167,74.4291,-74.5678],[437.445,999.945,21.0667,60.4479,-70.7161],[394.673,1099.99,18.9333,41.7042,-61.1424],[319.187,1168.76,15.2,20.2907,-0.226605]]], + [83,1174.11,[[713.227,-2002.3,41.7167,222.653,-86.4168],[706.942,-1902.9,41.2667,219.918,-86.3447],[700.374,-1801.12,40.8,217.04,-86.2674],[693.756,-1700.71,40.3333,214.116,-86.1874],[687.088,-1601.68,39.8667,211.149,-86.1045],[680.129,-1500.59,39.3833,208.029,-86.0154],[673.116,-1401.03,38.9,204.862,-85.9229],[666.051,-1303.01,38.4167,201.647,-85.8268],[658.687,-1203.28,37.9167,198.272,-85.7233],[651.019,-1102.01,37.4,194.732,-85.6117],[643.291,-1002.59,36.8833,191.137,-85.4951],[635.255,-901.943,36.35,187.371,-85.3689],[626.903,-800.28,35.8,183.428,-85.2323],[618.487,-700.815,35.25,179.425,-85.0886],[609.75,-600.669,34.6833,175.24,-84.9325],[600.687,-500.09,34.1,170.866,-84.7624],[591.555,-402.097,33.5167,166.427,-84.582],[581.828,-301.36,32.9,161.665,-84.3788],[571.761,-201.003,32.2667,156.701,-84.1555],[561.351,-101.323,31.6167,151.531,-83.9091],[550.323,-0.210002,30.9333,146.015,-83.629],[538.938,99.3981,30.2333,140.282,-83.3167],[526.921,199.373,29.5,134.188,-82.958],[514.261,299.033,28.7333,127.726,-82.5429],[500.671,399.642,27.9167,120.744,-82.0478],[486.419,498.186,27.0667,113.377,-81.4627],[470.65,599.03,26.1333,105.178,-80.7197],[453.339,699.973,25.1167,96.1327,-79.7576],[434.177,799.981,24,86.0808,-78.4564],[412.272,899.445,22.7333,74.5714,-76.5389],[385.547,999.661,21.2,60.5808,-73.2138],[348.943,1099.84,19.1167,41.8578,-65.079],[280.134,1174.11,15.2333,17.7792,-0.171453]]], + [84,1178.77,[[612.977,-2002.53,41.7667,222.699,-86.9239],[607.579,-1903.06,41.3167,219.963,-86.862],[601.939,-1801.21,40.85,217.082,-86.7956],[596.255,-1700.72,40.3833,214.157,-86.7269],[590.528,-1601.62,39.9167,211.188,-86.6557],[584.552,-1500.44,39.4333,208.065,-86.5793],[578.529,-1400.8,38.95,204.896,-86.4999],[572.461,-1302.7,38.4667,201.678,-86.4174],[566.137,-1202.88,37.9667,198.3,-86.3285],[559.552,-1101.52,37.45,194.756,-86.2327],[552.916,-1002.01,36.9333,191.158,-86.1325],[546.014,-901.271,36.4,187.388,-86.0242],[539.059,-802.561,35.8667,183.561,-85.9106],[531.833,-702.93,35.3167,179.555,-85.7874],[524.331,-602.612,34.75,175.366,-85.6535],[516.549,-501.852,34.1667,170.988,-85.5076],[508.483,-400.911,33.5667,166.416,-85.3484],[500.129,-300.061,32.95,161.647,-85.1739],[491.712,-202.189,32.3333,156.806,-84.9873],[482.773,-102.299,31.6833,151.628,-84.776],[473.304,-0.96529,31,146.104,-84.5357],[463.528,98.8721,30.3,140.36,-84.2679],[453.209,199.09,29.5667,134.253,-83.9602],[442.339,299.005,28.8,127.776,-83.6041],[430.67,399.89,27.9833,120.776,-83.1792],[418.432,498.722,27.1333,113.386,-82.6771],[404.891,599.885,26.2,105.159,-82.0389],[390.271,699.593,25.2,96.2243,-81.2271],[374.066,798.743,24.1,86.2728,-80.1302],[355.261,899.042,22.8333,74.6873,-78.4903],[332.569,999.298,21.3167,60.7136,-75.6778],[301.65,1099.91,19.2667,41.9444,-68.8427],[240.813,1178.77,15.2667,15.2587,-0.270777]]], + [85,1182.73,[[511.912,-2000.73,41.8,222.684,-87.4319],[507.406,-1901.22,41.35,219.945,-87.3802],[502.865,-1802.95,40.9,217.166,-87.3269],[498.121,-1702.37,40.4333,214.24,-87.2695],[493.341,-1603.18,39.9667,211.269,-87.2101],[488.353,-1501.91,39.4833,208.146,-87.1464],[483.326,-1402.17,39,204.975,-87.0802],[478.086,-1300.62,38.5,201.644,-87.0089],[472.805,-1200.76,38,198.262,-86.9347],[467.485,-1102.6,37.5,194.83,-86.8573],[461.946,-1002.99,36.9833,191.229,-86.7737],[456.185,-902.135,36.45,187.456,-86.6834],[450.198,-800.26,35.9,183.506,-86.5856],[444.165,-700.581,35.35,179.495,-86.4826],[437.901,-600.214,34.7833,175.3,-86.3708],[431.591,-502.248,34.2167,171.042,-86.2526],[424.858,-401.179,33.6167,166.465,-86.1197],[417.885,-300.194,33,161.69,-85.9741],[410.859,-202.187,32.3833,156.843,-85.8184],[403.398,-102.155,31.7333,151.658,-85.6421],[395.493,-0.668607,31.05,146.125,-85.4417],[387.333,99.3258,30.35,140.372,-85.2182],[378.72,199.71,29.6167,134.254,-84.9614],[369.646,299.799,28.85,127.763,-84.6641],[360.105,398.866,28.05,120.891,-84.3169],[349.69,499.9,27.1833,113.337,-83.8898],[338.59,599.538,26.2667,105.232,-83.3669],[326.388,699.63,25.2667,96.267,-82.6901],[312.863,799.207,24.1667,86.2725,-81.775],[297.376,898.772,22.9167,74.7754,-80.426],[278.438,999.864,21.4,60.688,-78.081],[253.268,1099.61,19.4,42.0973,-72.5389],[201.236,1182.72,15.3,12.7303,-0.619743]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 395.493; +_maxRange = 2271.7; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg3.sqf new file mode 100644 index 0000000000..66e4e561c4 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg3.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_60mm_m720a1_m734_pd_chg3 +// Ammo: ace_arty_60mm_m720a1_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,756.191,[[3922.95,-2000.24,37,223.335,-67.9582],[3882.28,-1900.9,36.5167,220.754,-67.4946],[3841.28,-1803.06,36.0333,218.147,-67.0161],[3797.09,-1700.14,35.5167,215.331,-66.4874],[3753.97,-1602.21,35.0167,212.578,-65.9579],[3709.04,-1502.77,34.5,209.706,-65.3916],[3662.28,-1402.03,33.9667,206.715,-64.7853],[3613.64,-1300.18,33.4167,203.602,-64.1359],[3564.59,-1200.44,32.8667,200.464,-63.4604],[3515.12,-1102.85,32.3167,197.302,-62.7576],[3462.22,-1001.72,31.7333,193.925,-61.9805],[3407.32,-900.282,31.1333,190.43,-61.1451],[3351.95,-801.511,30.5333,186.917,-60.2709],[3292.99,-700.185,29.9,183.193,-59.3032],[3233.51,-601.915,29.2667,179.458,-58.2864],[3170.34,-501.823,28.6,175.522,-57.1593],[3103.41,-400.48,27.9,171.391,-55.9089],[3034.25,-300.765,27.1833,167.174,-54.5524],[2961.2,-200.858,26.4333,162.785,-53.0437],[2884.18,-101.437,25.65,158.243,-51.3632],[2801.44,-1.27887,24.8167,153.479,-49.4484],[2712.86,98.4809,23.9333,148.53,-47.2643],[2614.91,199.978,22.9667,143.271,-44.6767],[2509.06,299.47,21.9333,137.883,-41.6643],[2389.91,399.08,20.7833,132.245,-37.9899],[2250.03,499.676,19.45,126.309,-33.2793],[2078.03,599.824,17.8333,120.207,-26.9006],[1830.76,699.724,15.55,114.226,-16.7289],[1453.39,756.191,12.15,112.613,-0.00765624]]], + [46,781.71,[[3887.11,-2000.41,37.3167,223.577,-68.406],[3847.18,-1900.65,36.8333,220.987,-67.9518],[3806.93,-1802.37,36.35,218.368,-67.483],[3764.95,-1702.29,35.85,215.631,-66.982],[3721.21,-1600.61,35.3333,212.774,-66.4462],[3677.1,-1500.7,34.8167,209.887,-65.8911],[3632.63,-1402.59,34.3,206.974,-65.3158],[3584.89,-1300.17,33.75,203.844,-64.6799],[3538.21,-1202.86,33.2167,200.783,-64.0389],[3488.19,-1101.67,32.65,197.505,-63.3301],[3437.75,-1002.78,32.0833,194.202,-62.591],[3383.89,-900.618,31.4833,190.682,-61.7735],[3329.55,-801.111,30.8833,187.141,-60.9177],[3273.22,-701.65,30.2667,183.484,-59.9957],[3214.86,-602.507,29.6333,179.715,-59.0011],[3152.88,-501.487,28.9667,175.739,-57.8983],[3088.78,-401.55,28.2833,171.662,-56.7042],[3020.94,-300.722,27.5667,167.393,-55.3773],[2950.88,-201.834,26.8333,163.043,-53.9346],[2875.34,-101.063,26.05,158.432,-52.2909],[2795.82,-1.4278,25.2333,153.681,-50.4553],[2710.6,98.1594,24.3667,148.727,-48.3597],[2616.23,199.938,23.4167,143.435,-45.873],[2515.84,298.602,22.4167,138.067,-43.0231],[2400.78,399.751,21.2833,132.304,-39.4813],[2270.63,499.17,20.0167,126.377,-35.1031],[2110.96,599.943,18.4833,120.13,-29.1829],[1895.77,699.897,16.45,113.864,-20.308],[1452.14,781.707,12.3667,110.521,-0.0834781]]], + [47,807.172,[[3849.01,-2001.51,37.6333,223.846,-68.8595],[3809.84,-1901.31,37.15,221.246,-68.4149],[3770.34,-1802.59,36.6667,218.617,-67.956],[3729.16,-1702.06,36.1667,215.868,-67.4655],[3687.63,-1603.16,35.6667,213.091,-66.9581],[3644.36,-1502.71,35.15,210.191,-66.4152],[3599.32,-1400.9,34.6167,207.169,-65.834],[3553.91,-1301.04,34.0833,204.117,-65.2304],[3506.68,-1200.13,33.5333,200.942,-64.5833],[3459.05,-1101.35,32.9833,197.74,-63.9096],[3409.57,-1001.83,32.4167,194.416,-63.1863],[3358.2,-901.821,31.8333,190.969,-62.4087],[3304.91,-801.564,31.2333,187.401,-61.5718],[3249.66,-701.324,30.6167,183.715,-60.6699],[3192.42,-601.373,29.9833,179.912,-59.6967],[3133.16,-501.999,29.3333,175.998,-58.6449],[3070.3,-401.084,28.65,171.878,-57.4772],[3005.33,-301.541,27.95,167.659,-56.21],[2936.64,-201.481,27.2167,163.253,-54.7997],[2864.16,-101.564,26.45,158.674,-53.2271],[2786.22,-0.484416,25.6333,153.844,-51.4325],[2704.3,98.7676,24.7833,148.893,-49.4224],[2615.07,198.895,23.8667,143.671,-47.0777],[2516.71,299.821,22.8667,138.157,-44.292],[2408.99,399.228,21.7833,132.46,-40.9823],[2284.92,499.628,20.55,126.425,-36.8155],[2137.16,599.986,19.1,120.118,-31.34],[1945.81,699.793,17.25,113.664,-23.4399],[1577.2,799.819,13.7667,108.015,-6.3188],[1445.94,807.171,12.55,108.435,-0.0081094]]], + [48,832.553,[[3807.34,-2000.09,37.9333,224.052,-69.3037],[3770.24,-1902.93,37.4667,221.532,-68.8837],[3730.18,-1800.38,36.9667,218.802,-68.4192],[3691.13,-1702.76,36.4833,216.134,-67.9551],[3649.04,-1600.11,35.9667,213.251,-67.4419],[3607.98,-1502.44,35.4667,210.431,-66.9277],[3563.82,-1400.12,34.9333,207.393,-66.359],[3520.68,-1302.85,34.4167,204.422,-65.7871],[3474.38,-1201.32,33.8667,201.23,-65.1546],[3427.69,-1101.93,33.3167,198.009,-64.496],[3379.17,-1001.77,32.75,194.663,-63.7887],[3328.81,-901.095,32.1667,191.193,-63.0282],[3276.56,-800.147,31.5667,187.599,-62.2095],[3223.87,-701.88,30.9667,183.984,-61.3515],[3167.76,-601.104,30.3333,180.149,-60.4002],[3109.67,-500.876,29.6833,176.198,-59.3718],[3049.57,-401.492,29.0167,172.137,-58.2581],[2985.9,-300.917,28.3167,167.871,-57.0198],[2920.12,-202.017,27.6,163.512,-55.673],[2849.1,-100.842,26.8333,158.869,-54.1365],[2774.29,-0.442213,26.0333,154.064,-52.4187],[2695.62,98.436,25.2,149.122,-50.494],[2609.82,198.587,24.3,143.885,-48.2462],[2516.72,298.364,23.3333,138.417,-45.6185],[2412.89,398.948,22.2667,132.628,-42.4387],[2294.74,499.986,21.0667,126.514,-38.4789],[2158.52,599.172,19.7,120.211,-33.4395],[1985.01,699.374,17.9833,113.589,-26.2807],[1712.1,799.668,15.3333,107.114,-13.5746],[1440.32,832.552,12.75,106.31,-0.0369781]]], + [49,857.823,[[3764.71,-2003.17,38.25,224.375,-69.7685],[3727.06,-1902.11,37.7667,221.756,-69.3433],[3689.1,-1802.54,37.2833,219.107,-68.9042],[3649.51,-1701.11,36.7833,216.335,-68.4348],[3609.6,-1601.3,36.2833,213.533,-67.9492],[3569.36,-1503.15,35.7833,210.702,-67.4465],[3526.08,-1400.29,35.25,207.649,-66.8906],[3483.8,-1302.5,34.7333,204.663,-66.3316],[3438.43,-1200.42,34.1833,201.453,-65.7131],[3392.67,-1100.46,33.6333,198.214,-65.0691],[3346.53,-1002.65,33.0833,194.946,-64.3981],[3297.19,-901.291,32.5,191.454,-63.6551],[3247.43,-802.425,31.9167,187.935,-62.8778],[3194.37,-700.656,31.3,184.191,-62.0164],[3140.85,-601.753,30.6833,180.426,-61.1114],[3083.95,-500.651,30.0333,176.44,-60.1068],[3025.07,-400.364,29.3667,172.339,-59.0187],[2964.19,-301.203,28.6833,168.13,-57.8378],[2899.76,-201.215,27.9667,163.719,-56.5224],[2831.72,-101.039,27.2167,159.117,-55.0545],[2760,-1.35544,26.4333,154.341,-53.4131],[2682.98,99.0598,25.6,149.314,-51.5346],[2600.53,199.066,24.7167,144.072,-49.3804],[2510.98,299.118,23.7667,138.572,-46.8589],[2412.55,398.982,22.7333,132.801,-43.8518],[2301.8,498.968,21.5833,126.717,-40.151],[2171.85,599.946,20.25,120.244,-35.3532],[2013.82,699.576,18.65,113.55,-28.8358],[1786.21,799.727,16.3833,106.716,-18.2216],[1433.42,857.821,12.95,104.161,-0.0867393]]], + [50,882.952,[[3717.26,-2000.27,38.5333,224.545,-70.2102],[3681.65,-1902.32,38.0667,222.007,-69.8087],[3644.47,-1802.33,37.5833,219.349,-69.3796],[3605.69,-1700.46,37.0833,216.566,-68.9208],[3566.59,-1600.21,36.5833,213.752,-68.4461],[3527.17,-1501.61,36.0833,210.908,-67.9547],[3486.11,-1401.47,35.5667,207.937,-67.4285],[3443.37,-1300,35.0333,204.839,-66.8646],[3400.27,-1200.5,34.5,201.71,-66.2784],[3356.82,-1102.97,33.9667,198.552,-65.6687],[3310.28,-1001.56,33.4,195.166,-64.9936],[3263.34,-902.462,32.8333,191.751,-64.2887],[3213.21,-800.086,32.2333,188.107,-63.5077],[3162.66,-700.376,31.6333,184.437,-62.6888],[3110.25,-600.715,31.0167,180.642,-61.8049],[3055.97,-501.38,30.3833,176.725,-60.8493],[2998.34,-400.171,29.7167,172.586,-59.7873],[2938.73,-300.056,29.0333,168.333,-58.6343],[2877.13,-201.358,28.3333,163.975,-57.3802],[2810.54,-100.011,27.5833,159.315,-55.9475],[2741.84,-1.18708,26.8167,154.574,-54.3796],[2667.97,98.6924,26,149.568,-52.5839],[2588.84,198.514,25.1333,144.328,-50.5234],[2502.77,298.799,24.2,138.803,-48.1085],[2408.06,399.391,23.1833,132.971,-45.2235],[2302.9,499.325,22.0667,126.861,-41.7184],[2182.25,599.099,20.8,120.421,-37.276],[2035.94,699.255,19.2833,113.607,-31.2557],[1836.78,799.913,17.25,106.509,-21.9674],[1423.52,882.95,13.1333,102.003,-0.0673266]]], + [51,907.914,[[3668.86,-2001.95,38.8333,224.833,-70.672],[3632.75,-1900.11,38.35,222.195,-70.2657],[3597.6,-1803.17,37.8833,219.619,-69.861],[3559.64,-1700.85,37.3833,216.826,-69.413],[3521.37,-1600.15,36.8833,214.001,-68.9494],[3482.79,-1501.09,36.3833,211.145,-68.4695],[3442.59,-1400.47,35.8667,208.161,-67.9555],[3402.07,-1301.66,35.35,205.145,-67.4222],[3359.89,-1201.59,34.8167,202.001,-66.8503],[3316.04,-1100.46,34.2667,198.726,-66.2363],[3271.81,-1001.47,33.7167,195.42,-65.5964],[3225.88,-901.746,33.15,191.985,-64.9082],[3178.19,-801.532,32.5667,188.419,-64.1674],[3128.72,-701.077,31.9667,184.723,-63.3687],[3077.45,-600.643,31.35,180.899,-62.5063],[3024.33,-500.505,30.7167,176.949,-61.5738],[2969.35,-400.953,30.0667,172.877,-60.5637],[2912.47,-302.286,29.4,168.688,-59.4676],[2850.78,-200.16,28.6833,164.177,-58.2157],[2788.54,-102.178,27.9667,159.67,-56.8814],[2721.35,-2.01753,27.2,154.865,-55.3544],[2649.12,99.3005,26.3833,149.781,-53.6041],[2573.22,198.776,25.5333,144.551,-51.6338],[2490.58,299.117,24.6167,139.011,-49.3219],[2401.03,398.629,23.6333,133.227,-46.6038],[2299.8,499.826,22.5333,127.018,-43.2404],[2186.58,599.111,21.3167,120.572,-39.0826],[2049.99,699.805,19.8667,113.654,-33.4732],[1873.24,799.956,18.0167,106.433,-25.2352],[1538.24,899.817,14.5833,99.6552,-7.19455],[1412.41,907.912,13.3167,99.8209,-0.0680091]]], + [52,932.679,[[3616.96,-2001.22,39.1167,225.058,-71.1258],[3582.86,-1902.49,38.65,222.504,-70.743],[3547.25,-1801.68,38.1667,219.826,-70.3338],[3511.35,-1702.34,37.6833,217.117,-69.9112],[3473.92,-1601.17,37.1833,214.281,-69.459],[3436.18,-1501.64,36.6833,211.413,-68.9907],[3396.86,-1400.53,36.1667,208.417,-68.4893],[3357.22,-1301.23,35.65,205.387,-67.9688],[3315.96,-1200.63,35.1167,202.227,-67.4106],[3274.37,-1102.02,34.5833,199.035,-66.8299],[3231.13,-1002.41,34.0333,195.712,-66.206],[3186.2,-902.058,33.4667,192.256,-65.535],[3139.56,-801.184,32.8833,188.667,-64.8124],[3091.19,-700.042,32.2833,184.946,-64.0333],[3042.4,-601.591,31.6833,181.198,-63.2151],[2990.47,-500.634,31.05,177.217,-62.3063],[2936.71,-400.231,30.4,173.11,-61.3214],[2881.09,-300.684,29.7333,168.881,-60.2523],[2823.59,-202.305,29.05,164.535,-59.0892],[2761.33,-100.908,28.3167,159.87,-57.7591],[2697.08,-1.75101,27.5667,155.108,-56.303],[2627.92,98.8762,26.7667,150.056,-54.633],[2553.75,199.89,25.9167,144.738,-52.7135],[2475.93,298.324,25.0333,139.295,-50.544],[2388.45,399.94,24.05,133.376,-47.897],[2294.07,499.042,23,127.275,-44.7712],[2186.56,598.906,21.8167,120.764,-40.8376],[2059.39,699.511,20.4333,113.801,-35.631],[1899.46,799.76,18.7167,106.459,-28.1931],[1648.23,899.976,16.0667,99.0063,-14.6768],[1400.06,932.676,13.5,97.6155,-0.0905558]]], + [53,957.22,[[3562.84,-2001.63,39.4,225.312,-71.5855],[3529.5,-1902.52,38.9333,222.749,-71.2121],[3494.69,-1801.3,38.45,220.063,-70.813],[3459.6,-1701.57,37.9667,217.344,-70.4007],[3424.22,-1603.33,37.4833,214.593,-69.9744],[3386.1,-1500.01,36.9667,211.618,-69.5026],[3348.91,-1401.7,36.4667,208.705,-69.0293],[3310.16,-1301.89,35.95,205.663,-68.5221],[3269.84,-1200.76,35.4167,202.488,-67.9779],[3229.19,-1101.61,34.8833,199.28,-67.4117],[3186.92,-1001.45,34.3333,195.938,-66.8033],[3143.01,-900.509,33.7667,192.462,-66.1489],[3098.73,-801.895,33.2,188.955,-65.4647],[3051.46,-700.051,32.6,185.21,-64.7055],[3003.78,-600.89,32,181.435,-63.9082],[2954.37,-501.814,31.3833,177.529,-63.0461],[2901.84,-400.543,30.7333,173.388,-62.0871],[2847.5,-300.096,30.0667,169.12,-61.0457],[2791.32,-200.786,29.3833,164.731,-59.9123],[2731.88,-100.66,28.6667,160.122,-58.6458],[2669.11,-0.357147,27.9167,155.302,-57.2274],[2602.97,99.4362,27.1333,150.286,-55.6346],[2531.95,199.944,26.3,144.99,-53.8027],[2457.4,298.194,25.4333,139.551,-51.7317],[2374.89,398.426,24.4833,133.705,-49.246],[2282.76,499.986,23.4333,127.439,-46.2065],[2180.79,599.932,22.2833,120.895,-42.4848],[2062.71,699.644,20.9667,113.951,-37.663],[1917.42,799.315,19.3667,106.567,-30.9246],[1706.81,899.955,17.0833,98.7817,-19.611],[1384.89,957.219,13.6667,95.3982,-0.0384212]]], + [54,981.508,[[3506.49,-2003.23,39.6833,225.595,-72.0508],[3472.75,-1900.19,39.2,222.932,-71.6738],[3439.92,-1802.09,38.7333,220.33,-71.2981],[3405.64,-1701.94,38.25,217.602,-70.8963],[3371.09,-1603.28,37.7667,214.841,-70.4809],[3335.05,-1502.83,37.2667,211.951,-70.0362],[3297.51,-1400.76,36.75,208.93,-69.5598],[3259.67,-1300.48,36.2333,205.874,-69.0653],[3221.51,-1202.02,35.7167,202.784,-68.5517],[3181.81,-1102.31,35.1833,199.561,-68.0003],[3140.53,-1001.58,34.6333,196.202,-67.4078],[3097.64,-900.042,34.0667,192.707,-66.7703],[3054.4,-800.825,33.5,189.179,-66.1037],[3009.52,-701.147,32.9167,185.514,-65.385],[2962.97,-601.261,32.3167,181.715,-64.609],[2914.72,-501.431,31.7,177.78,-63.7696],[2864.75,-401.935,31.0667,173.713,-62.8603],[2811.7,-300.569,30.4,169.408,-61.8472],[2756.84,-200.309,29.7167,164.977,-60.7442],[2700.17,-101.479,29.0167,160.428,-59.5407],[2638.9,-0.0101044,28.2667,155.551,-58.161],[2575.71,98.9184,27.5,150.577,-56.6449],[2507.8,198.885,26.6833,145.309,-54.9002],[2435.05,298.773,25.8167,139.775,-52.8871],[2355.95,399.096,24.8833,133.915,-50.5118],[2268.94,499.692,23.8667,127.696,-47.6514],[2172.38,599.587,22.75,121.138,-44.1416],[2061.64,699.259,21.4833,114.166,-39.6378],[1927.45,799.219,19.9667,106.699,-33.436],[1744.96,899.502,17.9333,98.7579,-23.6583],[1368.54,981.508,13.8333,93.1574,-0.00709141]]], + [55,1005.52,[[3446.76,-2002.47,39.95,225.815,-72.5093],[3414.96,-1902.61,39.4833,223.237,-72.1548],[3381.77,-1800.61,39,220.533,-71.7759],[3348.3,-1700.08,38.5167,217.796,-71.3843],[3314.57,-1601.04,38.0333,215.024,-70.9795],[3279.4,-1500.19,37.5333,212.123,-70.5461],[3243.93,-1400.98,37.0333,209.187,-70.0969],[3207,-1300.23,36.5167,206.119,-69.6155],[3169.76,-1201.28,36,203.015,-69.1153],[3131.01,-1101.07,35.4667,199.777,-68.5784],[3091.94,-1002.86,34.9333,196.504,-68.0191],[3050.09,-900.709,34.3667,192.99,-67.3989],[3007.89,-800.874,33.8,189.442,-66.7503],[2964.09,-700.554,33.2167,185.756,-66.0508],[2918.67,-600,32.6167,181.931,-65.2954],[2872.86,-502.156,32.0167,178.075,-64.5009],[2824.11,-401.86,31.3833,173.977,-63.6165],[2773.65,-302.158,30.7333,169.745,-62.6562],[2720.14,-200.927,30.05,165.274,-61.5844],[2664.86,-101.093,29.35,160.679,-60.4144],[2606.43,-0.76555,28.6167,155.857,-59.1032],[2544.8,99.3914,27.85,150.821,-57.6298],[2479.91,198.669,27.05,145.587,-55.969],[2410.34,298.207,26.2,140.071,-54.0515],[2334.61,398.584,25.2833,134.204,-51.787],[2251.18,499.713,24.2833,127.944,-49.0557],[2159.89,599.258,23.2,121.396,-45.751],[2054.84,699.711,21.9667,114.344,-41.4947],[1929.9,799.997,20.5167,106.801,-35.7363],[1768.35,899.522,18.6667,98.7957,-27.1017],[1447.61,999.867,15.0667,90.8284,-6.58774],[1352.54,1005.51,14.0167,90.883,-0.101463]]], + [56,1029.22,[[3384.83,-2002.97,40.2167,226.065,-72.9736],[3353.82,-1902.74,39.75,223.48,-72.6286],[3321.44,-1800.35,39.2667,220.768,-72.2598],[3289.93,-1702.89,38.8,218.116,-71.8921],[3255.9,-1600.01,38.3,215.24,-71.4847],[3222.74,-1502.09,37.8167,212.426,-71.0771],[3188.16,-1402.42,37.3167,209.479,-70.6403],[3152.14,-1301.17,36.8,206.399,-70.1722],[3115.83,-1201.73,36.2833,203.283,-69.6858],[3078.04,-1101.01,35.75,200.029,-69.1635],[3039.94,-1002.27,35.2167,196.741,-68.6195],[3000.34,-902.552,34.6667,193.314,-68.0343],[2959.2,-802.084,34.1,189.746,-67.404],[2916.5,-701.106,33.5167,186.038,-66.7241],[2873.44,-602.644,32.9333,182.297,-66.0107],[2827.55,-501.334,32.3167,178.308,-65.2172],[2780.02,-400.301,31.6833,174.179,-64.3571],[2732.09,-302.37,31.05,170.023,-63.4475],[2679.93,-200.239,30.3667,165.513,-62.4059],[2627.32,-101.827,29.6833,160.984,-61.2964],[2570.38,-0.414404,28.95,156.111,-60.023],[2511.62,98.738,28.2,151.126,-58.6234],[2448.4,199.336,27.4,145.821,-57.0109],[2381.94,298.37,26.5667,140.33,-55.1855],[2309.5,398.632,25.6667,134.466,-53.0277],[2230.95,498.457,24.7,128.283,-50.468],[2143.41,599.015,23.6333,121.661,-47.3147],[2043.9,699.92,22.4333,114.558,-43.2995],[1927.9,799.928,21.05,106.999,-37.9743],[1782.13,899.337,19.3333,98.918,-30.2124],[1547.62,999.692,16.6167,90.3591,-15.3053],[1332.32,1029.22,14.1667,88.6062,-0.0142881]]], + [57,1052.59,[[3319.62,-2001.13,40.4667,226.253,-73.4318],[3289.39,-1900.57,40,223.66,-73.0961],[3258.93,-1801.36,39.5333,221.034,-72.7498],[3227.13,-1700.04,39.05,218.279,-72.3793],[3195.07,-1600.21,38.5667,215.489,-71.9963],[3162.75,-1501.89,38.0833,212.665,-71.6],[3129.06,-1401.79,37.5833,209.707,-71.1754],[3093.96,-1300.1,37.0667,206.615,-70.7201],[3058.57,-1200.22,36.55,203.485,-70.2471],[3022.91,-1102.16,36.0333,200.32,-69.7553],[2985.79,-1002.88,35.5,197.016,-69.2269],[2947.21,-902.608,34.95,193.572,-68.6583],[2907.13,-801.561,34.3833,189.986,-68.0458],[2866.72,-702.848,33.8167,186.364,-67.4044],[2823.58,-600.91,33.2167,182.492,-66.6916],[2780.08,-501.668,32.6167,178.586,-65.9415],[2735,-402.52,32,174.538,-65.1288],[2687.09,-301.187,31.35,170.239,-64.2225],[2637.53,-200.693,30.6833,165.803,-63.2358],[2586.3,-101.352,30,161.232,-62.1588],[2532.1,-1.21045,29.2833,156.422,-60.9512],[2474.9,99.0859,28.5333,151.381,-59.5935],[2414.62,198.85,27.75,146.12,-58.0619],[2349.92,299.299,26.9167,140.549,-56.2912],[2280.7,399.283,26.0333,134.697,-54.2362],[2205.56,499.242,25.0833,128.499,-51.796],[2123.04,598.925,24.05,121.925,-48.835],[2028.92,699.968,22.8833,114.799,-45.0538],[1921.55,799.119,21.5667,107.28,-40.149],[1786.75,899.822,19.9333,99.0328,-33.0019],[1592.73,999.558,17.6167,90.2775,-20.7157],[1312.44,1052.58,14.3333,86.2965,-0.0568769]]], + [58,1075.59,[[3252.27,-2000.62,40.7167,226.471,-73.8962],[3223.9,-1903.3,40.2667,223.964,-73.5818],[3193.18,-1800.16,39.7833,221.237,-73.2334],[3163.29,-1701.97,39.3167,218.569,-72.886],[3132.08,-1601.72,38.8333,215.771,-72.5141],[3100.62,-1502.98,38.35,212.938,-72.1293],[3067.82,-1402.44,37.85,209.97,-71.7171],[3033.66,-1300.3,37.3333,206.866,-71.275],[3000.33,-1203.16,36.8333,203.826,-70.8307],[2964.49,-1101.42,36.3,200.545,-70.338],[2928.36,-1001.66,35.7667,197.227,-69.8247],[2890.8,-900.88,35.2167,193.766,-69.2723],[2852.93,-802.26,34.6667,190.267,-68.6951],[2812.44,-700.06,34.0833,186.518,-68.0539],[2771.62,-600.365,33.5,182.731,-67.3808],[2729.28,-500.473,32.9,178.8,-66.6525],[2685.41,-400.651,32.2833,174.724,-65.8633],[2639.97,-301.178,31.65,170.505,-65.0063],[2592.96,-202.344,31,166.145,-64.0735],[2543.11,-102.052,30.3167,161.535,-63.0298],[2490.38,-0.903635,29.6,156.678,-61.859],[2435.96,98.2551,28.8667,151.696,-60.5722],[2377.32,199.25,28.0833,146.372,-59.0881],[2315.65,299.046,27.2667,140.837,-57.4065],[2249.6,398.72,26.4,135.004,-55.4541],[2177.82,498.778,25.4667,128.8,-53.1337],[2098.88,599.043,24.45,122.183,-50.3139],[2010,699.922,23.3167,115.058,-46.7592],[1909.63,798.867,22.05,107.537,-42.1961],[1785.38,899.804,20.5,99.2266,-35.6398],[1616.11,999.951,18.4167,90.2879,-24.9631],[1289.97,1075.59,14.4833,83.9736,-0.0173583]]], + [59,1098.21,[[3182.76,-2001.45,40.9667,226.72,-74.3666],[3154.13,-1900.2,40.5,224.113,-74.05],[3125.28,-1800.29,40.0333,221.471,-73.7233],[3096.21,-1701.73,39.5667,218.796,-73.3861],[3065.85,-1601.11,39.0833,215.989,-73.0251],[3035.26,-1502,38.6,213.146,-72.6516],[3003.36,-1401.06,38.1,210.169,-72.2514],[2971.2,-1301.78,37.6,207.154,-71.8363],[2937.7,-1200.96,37.0833,204,-71.3909],[2903.94,-1101.96,36.5667,200.809,-70.9277],[2868.81,-1001.69,36.0333,197.476,-70.4298],[2832.28,-900.392,35.4833,193.999,-69.8939],[2795.46,-801.245,34.9333,190.483,-69.334],[2757.22,-701.383,34.3667,186.822,-68.73],[2717.52,-601.047,33.7833,183.015,-68.0776],[2676.36,-500.489,33.1833,179.06,-67.3717],[2634.86,-402.653,32.5833,175.069,-66.6278],[2590.7,-302.38,31.95,170.821,-65.7978],[2543.82,-200.206,31.2833,166.315,-64.8705],[2496.54,-101.546,30.6167,161.779,-63.883],[2446.48,-1.79244,29.9167,156.992,-62.7754],[2393.59,98.4297,29.1833,151.959,-61.5294],[2337.81,198.453,28.4167,146.689,-60.1232],[2277.87,299.572,27.6,141.082,-58.4955],[2214.93,398.782,26.75,135.275,-56.6419],[2146.44,498.768,25.8333,129.075,-54.4369],[2071.01,599.428,24.8333,122.429,-51.7539],[1987.23,699.854,23.7333,115.329,-48.4179],[1892.34,799.42,22.5,107.745,-44.1228],[1778.24,899.606,21.0333,99.4639,-38.1299],[1628.56,999.47,19.1333,90.459,-28.7414],[1266.39,1098.21,14.6333,81.6279,-0.00357084]]], + [60,1120.41,[[3110.09,-2000.04,41.2,226.907,-74.8318],[3083.27,-1902.08,40.75,224.387,-74.5357],[3055.25,-1801.8,40.2833,221.739,-74.2192],[3027,-1702.88,39.8167,219.057,-73.8923],[2997.51,-1601.87,39.3333,216.242,-73.5425],[2967.79,-1502.36,38.85,213.391,-73.1805],[2936.79,-1401.02,38.35,210.403,-72.7925],[2905.55,-1301.33,37.85,207.378,-72.3901],[2873.01,-1200.08,37.3333,204.212,-71.9583],[2840.21,-1100.64,36.8167,201.008,-71.5091],[2807.14,-1003.04,36.3,197.766,-71.0417],[2771.66,-901.204,35.75,194.274,-70.5228],[2735.9,-801.516,35.2,190.742,-69.9803],[2698.75,-701.09,34.6333,187.063,-69.3952],[2660.19,-600.168,34.05,183.234,-68.7631],[2621.33,-501.775,33.4667,179.367,-68.0985],[2579.9,-400.551,32.85,175.24,-67.3578],[2538.13,-302.239,32.2333,171.075,-66.5749],[2493.74,-201.813,31.5833,166.65,-65.6999],[2447.84,-102.274,30.9167,162.078,-64.7448],[2399.23,-1.58813,30.2167,157.249,-63.673],[2347.87,99.6207,29.4833,152.167,-62.4668],[2294.89,198.54,28.7333,146.956,-61.1355],[2237.89,298.862,27.9333,141.396,-59.5938],[2176.8,399.492,27.0833,135.507,-57.8016],[2111.52,499.245,26.1833,129.32,-55.7079],[2040.77,598.481,25.2167,122.768,-53.2028],[1960.71,699.816,24.1333,115.603,-50.0317],[1871.15,799.687,22.9333,107.986,-45.997],[1765.54,899.502,21.5333,99.7134,-40.4778],[1630.69,999.367,19.7667,90.6473,-32.065],[1403.18,1099.67,16.8333,80.801,-14.3349],[1241.7,1120.41,14.7833,79.2598,-0.0182856]]], + [61,1142.18,[[3035.31,-2000.02,41.4333,227.126,-75.3031],[3009.28,-1901.75,40.9833,224.599,-75.0164],[2982.08,-1801.15,40.5167,221.945,-74.7097],[2954.67,-1701.9,40.05,219.255,-74.393],[2926.04,-1600.54,39.5667,216.431,-74.0541],[2897.2,-1500.68,39.0833,213.571,-73.7033],[2868.12,-1402.34,38.6,210.674,-73.3402],[2837.81,-1302.23,38.1,207.638,-72.9507],[2806.23,-1200.53,37.5833,204.462,-72.5327],[2774.4,-1100.64,37.0667,201.246,-72.0979],[2742.31,-1002.59,36.55,197.99,-71.6454],[2707.89,-900.269,36,194.483,-71.1429],[2673.18,-800.089,35.45,190.935,-70.6177],[2638.19,-702.088,34.9,187.346,-70.068],[2600.79,-600.563,34.3167,183.499,-69.4566],[2563.08,-501.561,33.7333,179.61,-68.8135],[2523.98,-402.402,33.1333,175.571,-68.1167],[2482.37,-300.719,32.5,171.266,-67.339],[2440.41,-202.146,31.8667,166.924,-66.5142],[2395.88,-101.796,31.2,162.318,-65.5907],[2348.73,-0.249955,30.5,157.448,-64.5538],[2300.05,99.5969,29.7833,152.436,-63.4139],[2248.67,199.56,29.0333,147.171,-62.1268],[2194.54,298.947,28.25,141.663,-60.6678],[2136.46,398.964,27.4167,135.813,-58.9711],[2074.35,498.454,26.5333,129.646,-56.9885],[2005.75,599.513,25.5667,122.974,-54.5702],[1930.55,699.887,24.5167,115.873,-51.6031],[1846.17,799.759,23.35,108.251,-47.8204],[1747.52,899.775,22,99.9461,-42.6904],[1624.33,999.867,20.3333,90.8147,-35.0427],[1439.44,1099.74,17.8667,80.7813,-20.7363],[1215.9,1142.18,14.9333,76.8697,-0.0640557]]], + [62,1163.48,[[2958.43,-2001.48,41.6667,227.376,-75.7802],[2933.2,-1902.88,41.2167,224.844,-75.5029],[2906.84,-1801.94,40.75,222.183,-75.2063],[2880.26,-1702.34,40.2833,219.486,-74.9],[2852.52,-1600.63,39.8,216.655,-74.5722],[2824.55,-1500.41,39.3167,213.787,-74.2329],[2796.37,-1401.7,38.8333,210.88,-73.8815],[2766.98,-1301.21,38.3333,207.835,-73.5047],[2737.37,-1202.37,37.8333,204.75,-73.1136],[2706.52,-1102.03,37.3167,201.523,-72.6934],[2674.42,-1000.36,36.7833,198.15,-72.2417],[2642.06,-900.685,36.25,194.735,-71.7704],[2609.45,-803.019,35.7167,191.28,-71.2784],[2574.52,-701.487,35.15,187.566,-70.7312],[2539.32,-602.296,34.5833,183.81,-70.1573],[2502.78,-502.668,34,179.901,-69.5363],[2463.83,-400.126,33.3833,175.725,-68.844],[2424.57,-300.484,32.7667,171.508,-68.1119],[2383.91,-201.211,32.1333,167.137,-67.3148],[2340.77,-100.117,31.4667,162.496,-66.422],[2296.17,-0.172482,30.7833,157.705,-65.4441],[2250.11,98.2914,30.0833,152.766,-64.3696],[2200.34,199.322,29.3333,147.45,-63.1279],[2147.91,299.836,28.55,141.882,-61.7195],[2092.78,399.097,27.7333,136.077,-60.1147],[2033.76,498.168,26.8667,129.939,-58.2387],[1968.49,599.239,25.9167,123.269,-55.9482],[1897.99,698.55,24.9,116.248,-53.1828],[1817.49,799.684,23.75,108.531,-49.595],[1725.56,899.468,22.45,100.239,-44.8419],[1612.38,999.821,20.8667,91.059,-37.8575],[1453.06,1099.99,18.6667,80.8747,-25.6112],[1187.74,1163.48,15.0667,74.465,-0.0188592]]], + [63,1184.29,[[2878.56,-2000.74,41.8833,227.566,-76.2533],[2854.14,-1901.86,41.4333,225.028,-75.9852],[2828.61,-1800.61,40.9667,222.36,-75.6985],[2802.88,-1700.71,40.5,219.656,-75.4024],[2776.95,-1602.18,40.0333,216.915,-75.0966],[2749.88,-1501.58,39.55,214.039,-74.7689],[2722.6,-1402.49,39.0667,211.124,-74.4296],[2694.15,-1301.6,38.5667,208.07,-74.0657],[2665.48,-1202.37,38.0667,204.975,-73.688],[2635.62,-1101.61,37.55,201.736,-73.2821],[2605.52,-1002.67,37.0333,198.457,-72.8597],[2574.21,-902.492,36.5,195.029,-72.405],[2541.65,-801.285,35.95,191.451,-71.915],[2508.84,-702.245,35.4,187.83,-71.4022],[2474.76,-602.505,34.8333,184.056,-70.8483],[2439.4,-502.307,34.25,180.128,-70.2489],[2402.73,-401.907,33.65,176.043,-69.599],[2364.74,-301.57,33.0333,171.801,-68.8931],[2325.4,-201.577,32.4,167.403,-68.1244],[2284.7,-102.222,31.75,162.848,-67.2853],[2241.55,-1.39411,31.0667,158.02,-66.3431],[2196.99,97.9839,30.3667,153.04,-65.3075],[2149.91,197.787,29.6333,147.794,-64.1378],[2099.19,299.454,28.85,142.169,-62.7813],[2045.86,399.929,28.0333,136.295,-61.2345],[1989.88,498.432,27.1833,130.194,-59.4612],[1927.86,599.349,26.25,123.536,-57.2939],[1860.8,698.933,25.25,116.497,-54.6749],[1785.23,799.533,24.1333,108.821,-51.3232],[1698.65,899.895,22.8667,100.476,-46.8698],[1595.05,999.54,21.3667,91.3436,-40.5144],[1455.24,1099.47,19.3667,81.1182,-29.8529],[1158.55,1184.29,15.2,72.0383,-0.00388004]]], + [64,1204.6,[[2796.63,-2001.51,42.1,227.788,-76.7323],[2773.02,-1902.33,41.65,225.245,-76.4737],[2748.33,-1800.77,41.1833,222.571,-76.197],[2723.46,-1700.55,40.7167,219.86,-75.9113],[2698.39,-1601.7,40.25,217.112,-75.6161],[2672.22,-1500.77,39.7667,214.228,-75.3],[2645.85,-1401.34,39.2833,211.305,-74.9725],[2618.35,-1300.1,38.7833,208.24,-74.6213],[2590.63,-1200.51,38.2833,205.135,-74.2567],[2562.7,-1102.61,37.7833,201.99,-73.8778],[2532.67,-1000.07,37.25,198.592,-73.457],[2503.34,-902.61,36.7333,195.259,-73.032],[2471.88,-800.931,36.1833,191.666,-72.5595],[2440.16,-701.414,35.6333,188.029,-72.0649],[2407.22,-601.179,35.0667,184.238,-71.5306],[2373.04,-500.466,34.4833,180.29,-70.9523],[2338.58,-402.297,33.9,176.297,-70.3431],[2301.87,-301.327,33.2833,172.032,-69.6628],[2263.85,-200.678,32.65,167.606,-68.9218],[2224.51,-100.641,32,163.02,-68.1127],[2183.84,-1.52291,31.3333,158.276,-67.2268],[2140.78,98.6969,30.6333,153.257,-66.2292],[2095.29,199.391,29.9,147.964,-65.1019],[2047.33,299.888,29.1333,142.404,-63.8229],[1996.86,399.473,28.3333,136.587,-62.3647],[1942.78,499.281,27.4833,130.407,-60.6582],[1883.95,599.885,26.5667,123.771,-58.6095],[1820.27,699.569,25.5833,116.725,-56.1321],[1749.48,799.367,24.5,109.112,-53.0071],[1668.11,899.996,23.2667,100.744,-48.8441],[1572.57,999.299,21.8333,91.636,-43.0199],[1446.74,1099.72,19.9667,81.319,-33.489],[1195.42,1199.92,16.3,69.8821,-7.79909],[1128.33,1204.59,15.3333,69.5899,-0.022315]]], + [65,1224.36,[[2711.83,-2000.13,42.3,227.95,-77.2079],[2689.03,-1900.69,41.85,225.401,-76.9585],[2666.06,-1802.46,41.4,222.817,-76.7014],[2642.05,-1701.92,40.9333,220.1,-76.4263],[2617.85,-1602.73,40.4667,217.346,-76.142],[2592.59,-1501.46,39.9833,214.454,-75.8375],[2567.14,-1401.68,39.5,211.523,-75.5221],[2540.59,-1300.07,39,208.45,-75.1838],[2513.84,-1200.12,38.5,205.335,-74.8325],[2486.88,-1101.84,38,202.18,-74.4675],[2458.8,-1002.08,37.4833,198.877,-74.075],[2429.58,-901.046,36.95,195.424,-73.6526],[2400.13,-802.007,36.4167,191.926,-73.2114],[2369.53,-701.998,35.8667,188.275,-72.7354],[2337.74,-601.25,35.3,184.467,-72.221],[2304.75,-500.005,34.7167,180.5,-71.6642],[2271.5,-401.298,34.1333,176.488,-71.0777],[2237.03,-302.46,33.5333,172.315,-70.4406],[2200.35,-201.134,32.9,167.864,-69.728],[2162.39,-100.395,32.25,163.249,-68.9496],[2123.14,-0.550392,31.5833,158.472,-68.097],[2082.59,98.0816,30.9,153.535,-67.1603],[2038.7,199.691,30.1667,148.199,-66.0765],[1993.45,299.001,29.4167,142.709,-64.8739],[1944.77,399.717,28.6167,136.831,-63.4729],[1893.63,498.818,27.7833,130.7,-61.8658],[1837.92,599.087,26.8833,124.093,-59.9354],[1777.56,698.844,25.9167,117.05,-57.5997],[1710.36,799.234,24.85,109.398,-54.6493],[1634.04,899.835,23.65,101.037,-50.7667],[1545.19,999.345,22.2667,91.9074,-45.3828],[1431.56,1099.57,20.5167,81.5887,-36.8382],[1245.02,1199.97,17.6833,69.8186,-18.1127],[1097.08,1224.35,15.4667,67.1204,-0.0786137]]], + [66,1243.55,[[2625.05,-2000.33,42.5,228.146,-77.6896],[2603.07,-1900.61,42.05,225.591,-77.4497],[2580.93,-1802.11,41.6,223.001,-77.2024],[2557.79,-1701.27,41.1333,220.278,-76.9376],[2534.47,-1601.79,40.6667,217.517,-76.6641],[2510.13,-1500.21,40.1833,214.618,-76.371],[2485.6,-1400.13,39.7,211.678,-76.0675],[2460.87,-1301.56,39.2167,208.699,-75.753],[2435.09,-1201.22,38.7167,205.576,-75.4153],[2409.11,-1102.56,38.2167,202.411,-75.0644],[2382.05,-1002.4,37.7,199.097,-74.687],[2353.9,-900.943,37.1667,195.632,-74.2809],[2325.53,-801.479,36.6333,192.122,-73.8566],[2296.03,-701.028,36.0833,188.456,-73.3988],[2266.31,-602.763,35.5333,184.744,-72.919],[2234.53,-500.968,34.95,180.76,-72.3842],[2202.49,-401.706,34.3667,176.729,-71.8207],[2169.28,-302.291,33.7667,172.535,-71.2086],[2133.94,-200.349,33.1333,168.058,-70.5237],[2098.32,-101.531,32.5,163.535,-69.7952],[2060.51,-0.937927,31.8333,158.727,-68.9767],[2021.45,98.4688,31.15,153.755,-68.0772],[1980.14,198.638,30.4333,148.499,-67.0605],[1936.55,298.919,29.6833,142.961,-65.9067],[1890.65,398.616,28.9,137.148,-64.591],[1841.4,498.937,28.0667,130.948,-63.05],[1788.76,598.719,27.1833,124.379,-61.2333],[1731.65,698.384,26.2333,117.35,-59.0342],[1667.96,799.18,25.1833,109.674,-56.2527],[1596.55,899.47,24.0167,101.345,-52.6401],[1513.11,999.902,22.6667,92.1315,-47.6129],[1410.07,1099.54,21.0167,81.8596,-39.9135],[1255.14,1199.77,18.5667,69.9968,-24.541],[1063.74,1243.55,15.5833,64.6354,-0.0325472]]], + [67,1262.17,[[2536.3,-2002.13,42.7,228.375,-78.1771],[2515.16,-1902.12,42.25,225.817,-77.9468],[2493.86,-1803.33,41.8,223.222,-77.7093],[2471.6,-1702.2,41.3333,220.493,-77.4552],[2449.17,-1602.41,40.8667,217.726,-77.1926],[2425.75,-1500.51,40.3833,214.82,-76.9112],[2402.15,-1400.1,39.9,211.873,-76.6197],[2378.36,-1301.22,39.4167,208.885,-76.3177],[2353.56,-1200.54,38.9167,205.753,-75.9934],[2328.57,-1101.53,38.4167,202.578,-75.6564],[2302.54,-1001.01,37.9,199.254,-75.294],[2276.31,-902.333,37.3833,195.885,-74.9163],[2249.02,-802.429,36.85,192.363,-74.5093],[2220.65,-701.52,36.3,188.683,-74.0701],[2192.06,-602.793,35.75,184.957,-73.6097],[2161.5,-500.502,35.1667,180.956,-73.0965],[2130.69,-400.739,34.5833,176.906,-72.5556],[2098.74,-300.804,33.9833,172.69,-71.968],[2065.65,-200.966,33.3667,168.309,-71.3281],[2031.39,-101.507,32.7333,163.76,-70.6296],[1995.04,-0.231464,32.0667,158.922,-69.8446],[1957.47,99.8811,31.3833,153.915,-68.9815],[1918.67,198.499,30.6833,148.742,-68.0292],[1876.76,299.673,29.9333,143.159,-66.9232],[1833.57,398.224,29.1667,137.417,-65.6893],[1786.23,499.675,28.3333,131.151,-64.213],[1736.58,598.824,27.4667,124.627,-62.5057],[1681.68,699.942,26.5167,117.496,-60.3986],[1622.42,799.26,25.5,109.934,-57.8197],[1555.76,898.966,24.3667,101.661,-54.4665],[1478.58,998.825,23.0667,92.5136,-49.8508],[1383.64,1099.18,21.4833,82.1752,-42.8163],[1249.15,1199.77,19.2667,70.22,-29.6071],[1029.45,1262.17,15.7,62.1294,-0.0228028]]], + [68,1280.18,[[2444.85,-2001.84,42.8833,228.545,-78.6621],[2424.56,-1901.58,42.4333,225.981,-78.4412],[2404.1,-1802.54,41.9833,223.381,-78.2135],[2382.73,-1701.14,41.5167,220.646,-77.9698],[2361.19,-1601.08,41.05,217.872,-77.718],[2339.48,-1502.4,40.5833,215.06,-77.4576],[2316.82,-1401.66,40.1,212.106,-77.1784],[2293.99,-1302.43,39.6167,209.112,-76.8891],[2270.18,-1201.4,39.1167,205.971,-76.5784],[2246.18,-1102.04,38.6167,202.788,-76.2556],[2221.19,-1001.15,38.1,199.453,-75.9084],[2196.01,-902.089,37.5833,196.074,-75.5465],[2169.81,-801.793,37.05,192.54,-75.1564],[2142.57,-700.476,36.5,188.847,-74.7355],[2115.13,-601.336,35.95,185.106,-74.2942],[2086.62,-501.503,35.3833,181.203,-73.8167],[2057.05,-401.222,34.8,177.135,-73.2989],[2026.39,-300.749,34.2,172.9,-72.7363],[1994.62,-200.352,33.5833,168.496,-72.1235],[1961.74,-100.313,32.95,163.922,-71.4544],[1927.71,-0.925965,32.3,159.177,-70.7217],[1891.66,99.9154,31.6167,154.138,-69.8959],[1854.43,199.287,30.9167,148.928,-68.9844],[1815.1,299.06,30.1833,143.426,-67.9498],[1773.65,398.561,29.4167,137.633,-66.7699],[1729.14,499.062,28.6,131.431,-65.3869],[1681.5,599.429,27.7333,124.833,-63.755],[1630.68,698.435,26.8167,117.86,-61.8139],[1573.84,799.513,25.8,110.174,-59.3532],[1510.85,899.791,24.6833,101.857,-56.1975],[1438.73,999.716,23.4167,92.7024,-51.9024],[1351.54,1099.73,21.9,82.3933,-45.4754],[1233.36,1199.7,19.8667,70.4848,-33.9663],[994.235,1280.17,15.8167,59.6029,-0.0544325]]], + [69,1297.55,[[2351.51,-2003.21,43.0667,228.75,-79.1528],[2332.07,-1902.69,42.6167,226.182,-78.9416],[2312.47,-1803.38,42.1667,223.577,-78.7238],[2291.99,-1701.7,41.7,220.837,-78.4907],[2271.35,-1601.37,41.2333,218.057,-78.2498],[2250.55,-1502.41,40.7667,215.238,-78.0008],[2228.84,-1401.37,40.2833,212.278,-77.7337],[2206.96,-1301.84,39.8,209.276,-77.457],[2184.15,-1200.5,39.3,206.127,-77.1598],[2161.16,-1100.83,38.8,202.934,-76.8509],[2137.99,-1002.84,38.3,199.698,-76.5296],[2113.09,-900.217,37.7667,196.199,-76.1724],[2088.77,-802.69,37.25,192.763,-75.811],[2062.68,-700.948,36.7,189.058,-75.4087],[2036.39,-601.379,36.15,185.303,-74.9869],[2009.08,-501.101,35.5833,181.385,-74.5304],[1980.75,-400.356,35,177.3,-74.0353],[1952.2,-302.169,34.4167,173.164,-73.5127],[1921.77,-201.193,33.8,168.74,-72.9275],[1890.27,-100.554,33.1667,164.142,-72.2884],[1857.69,-0.545134,32.5167,159.37,-71.5884],[1824,98.5254,31.85,154.424,-70.8192],[1788.35,198.675,31.15,149.18,-69.9494],[1750.69,299.271,30.4167,143.637,-68.9618],[1710.99,399.64,29.65,137.796,-67.8349],[1669.24,499.062,28.85,131.664,-66.5414],[1624.5,598.664,28,125.123,-65.0154],[1575.85,699.007,27.0833,118.063,-63.1645],[1522.33,799.974,26.0833,110.39,-60.8561],[1463.83,899.196,25,102.169,-57.9407],[1396.64,999.097,23.7667,93.0317,-53.9656],[1315.98,1099.52,22.3,82.6944,-48.0643],[1210.39,1199.45,20.4,70.7905,-37.8775],[958.089,1297.55,15.9333,57.0563,-0.133633]]], + [70,1314.28,[[2255.62,-2002.52,43.2333,228.895,-79.6418],[2237.03,-1901.78,42.7833,226.322,-79.4401],[2218.3,-1802.24,42.3333,223.712,-79.2322],[2198.72,-1700.32,41.8667,220.966,-79.0096],[2179.69,-1603.32,41.4167,218.28,-78.7879],[2159.1,-1500.54,40.9333,215.355,-78.5417],[2139.06,-1402.71,40.4667,212.49,-78.2956],[2118.15,-1302.88,39.9833,209.481,-78.0315],[2096.35,-1201.21,39.4833,206.325,-77.7481],[2074.37,-1101.21,38.9833,203.123,-77.4534],[2052.23,-1002.89,38.4833,199.878,-77.1468],[2029.17,-903.097,37.9667,196.479,-76.8169],[2005.18,-802.033,37.4333,192.923,-76.4612],[1981,-702.978,36.9,189.318,-76.0891],[1955.87,-602.964,36.35,185.551,-75.6872],[1929.78,-502.222,35.7833,181.619,-75.252],[1902.7,-400.995,35.2,177.518,-74.7801],[1875.41,-302.321,34.6167,173.365,-74.2818],[1846.34,-200.827,34,168.92,-73.7239],[1817.03,-102.271,33.3833,164.422,-73.1309],[1785.9,-1.61876,32.7333,159.626,-72.4643],[1753.71,98.1185,32.0667,154.652,-71.7315],[1719.64,198.975,31.3667,149.374,-70.9027],[1684.48,298.065,30.65,143.919,-69.9836],[1646.56,399.33,29.8833,138.033,-68.9109],[1606.66,499.696,29.0833,131.847,-67.679],[1564.77,598.399,28.25,125.37,-66.2546],[1518.29,699.978,27.3333,118.227,-64.4925],[1468.87,799.04,26.3667,110.707,-62.3703],[1413.87,898.604,25.3,102.472,-59.6452],[1350.58,999.494,24.0833,93.2553,-55.9213],[1276.2,1099.68,22.6667,82.9492,-50.5109],[1180.75,1199.73,20.8667,71.0315,-41.3706],[1012.43,1299.85,17.7333,56.6272,-17.155],[920.117,1314.28,16.0333,54.4938,-0.0955294]]], + [71,1330.34,[[2157.93,-2003.55,43.4,229.077,-80.1366],[2140.21,-1902.56,42.95,226.5,-79.9446],[2122.34,-1802.79,42.5,223.885,-79.7466],[2103.68,-1700.62,42.0333,221.134,-79.5347],[2085.54,-1603.37,41.5833,218.443,-79.3236],[2065.9,-1500.32,41.1,215.511,-79.0892],[2046.79,-1402.24,40.6333,212.64,-78.8549],[2026.85,-1302.13,40.15,209.624,-78.6035],[2006.06,-1200.18,39.65,206.46,-78.3335],[1985.81,-1103.21,39.1667,203.358,-78.0624],[1963.99,-1001.29,38.65,199.996,-77.761],[1942.01,-901.191,38.1333,196.587,-77.4467],[1919.85,-802.952,37.6167,193.131,-77.1187],[1896.08,-700.443,37.0667,189.401,-76.7535],[1872.12,-600.099,36.5167,185.62,-76.3705],[1847.97,-501.954,35.9667,181.789,-75.9684],[1822.16,-400.3,35.3833,177.673,-75.5193],[1796.14,-301.194,34.8,173.503,-75.045],[1769.18,-201.956,34.2,169.159,-74.5287],[1740.49,-100.219,33.5667,164.517,-73.9493],[1711.57,-1.62374,32.9333,159.82,-73.3312],[1680.89,98.7139,32.2667,154.818,-72.6344],[1649.19,197.836,31.5833,149.636,-71.8655],[1614.9,299.954,30.85,144.017,-70.9713],[1579.54,399.765,30.1,138.216,-69.9732],[1542.32,498.938,29.3167,132.109,-68.8275],[1502.39,598.665,28.4833,125.571,-67.475],[1458.92,699.581,27.5833,118.482,-65.8329],[1411.83,799.997,26.6167,110.864,-63.8182],[1360.25,899.569,25.5667,102.631,-61.2702],[1301.62,999.746,24.3833,93.4845,-57.8344],[1233.29,1099.32,23.0167,83.2554,-52.8956],[1146.63,1199.53,21.3,71.3362,-44.6699],[1009.59,1299.77,18.6167,56.8566,-25.3277],[881.313,1330.34,16.1333,51.9117,-0.103707]]], + [72,1345.71,[[2057.84,-2002.55,43.55,229.199,-80.6301],[2040.99,-1901.36,43.1,226.618,-80.4478],[2024,-1801.38,42.65,223.998,-80.2597],[2006.89,-1702.63,42.2,221.341,-80.0657],[1989,-1601.54,41.7333,218.545,-79.8579],[1970.97,-1501.8,41.2667,215.709,-79.643],[1952.81,-1403.45,40.8,212.832,-79.4207],[1933.85,-1303.05,40.3167,209.81,-79.1821],[1914.09,-1200.81,39.8167,206.639,-78.9259],[1894.17,-1100.22,39.3167,203.422,-78.6596],[1874.09,-1001.31,38.8167,200.159,-78.3825],[1853.19,-900.899,38.3,196.741,-78.0841],[1832.12,-802.34,37.7833,193.275,-77.7728],[1810.21,-702.573,37.25,189.648,-77.4368],[1787.43,-601.818,36.7,185.856,-77.0737],[1763.78,-500.305,36.1333,181.896,-76.6805],[1739.95,-401.157,35.5667,177.882,-76.2666],[1715.22,-301.601,34.9833,173.696,-75.8168],[1689.59,-201.895,34.3833,169.335,-75.327],[1663.03,-102.31,33.7667,164.796,-74.7924],[1634.83,-0.56168,33.1167,159.952,-74.1909],[1606.39,97.832,32.4667,155.051,-73.5467],[1575.53,199.985,31.7667,149.711,-72.7996],[1544.42,298.129,31.0667,144.314,-71.9904],[1510.82,398.766,30.3167,138.475,-71.0457],[1475.45,498.811,29.5333,132.321,-69.9607],[1437.51,599.474,28.7,125.725,-68.6792],[1396.97,699.587,27.8167,118.697,-67.1524],[1353.01,799.57,26.8667,111.121,-65.2791],[1304.79,899.142,25.8333,102.9,-62.9088],[1249.88,999.889,24.6667,93.7137,-59.7077],[1186.57,1099.63,23.3333,83.4785,-55.1559],[1107.48,1199.98,21.6833,71.5524,-47.6966],[991.204,1299.59,19.2833,57.1489,-31.5105],[841.689,1345.71,16.2333,49.3105,-0.16605]]], + [73,1360.36,[[1956.07,-2003.32,43.7,229.359,-81.1295],[1940.1,-1901.91,43.25,226.773,-80.9569],[1924,-1801.72,42.8,224.15,-80.7789],[1907.77,-1702.75,42.35,221.488,-80.5953],[1890.82,-1601.42,41.8833,218.687,-80.3985],[1873.74,-1501.46,41.4167,215.845,-80.1951],[1856.52,-1402.87,40.95,212.963,-79.9846],[1838.55,-1302.23,40.4667,209.934,-79.7588],[1820.44,-1203.12,39.9833,206.862,-79.5244],[1801.57,-1102.22,39.4833,203.639,-79.2726],[1782.54,-1002.99,38.9833,200.369,-79.0106],[1762.73,-902.251,38.4667,196.943,-78.7285],[1742.13,-800.2,37.9333,193.355,-78.4244],[1721.35,-700.148,37.4,189.717,-78.1061],[1700.42,-602.126,36.8667,186.028,-77.7728],[1678.01,-500.236,36.3,182.055,-77.4009],[1655.42,-400.708,35.7333,178.028,-77.0093],[1631.99,-300.756,35.15,173.827,-76.5838],[1607.7,-200.64,34.55,169.448,-76.1203],[1582.54,-100.628,33.9333,164.889,-75.6142],[1556.49,-1.00603,33.3,160.148,-75.06],[1529.55,97.9311,32.65,155.222,-74.451],[1501.01,198.275,31.9667,149.983,-73.762],[1470.83,299.415,31.25,144.425,-72.9792],[1439.71,398.497,30.5167,138.678,-72.1059],[1406.2,499.332,29.7333,132.48,-71.0809],[1370.98,598.873,28.9167,125.964,-69.8949],[1333.31,698.176,28.05,119.003,-68.4825],[1291.67,799.424,27.1,111.343,-66.7164],[1246.74,898.834,26.0833,103.147,-64.5176],[1195.48,999.965,24.9333,93.938,-61.5442],[1137.04,1099.6,23.6333,83.7284,-57.3656],[1065.21,1199.57,22.05,71.8704,-50.644],[963.619,1299.44,19.8333,57.4508,-36.6863],[800.476,1360.36,16.3167,46.6934,-0.0918809]]], + [74,1374.29,[[1852.06,-2002.09,43.8333,229.46,-81.6283],[1836.97,-1900.5,43.3833,226.87,-81.4654],[1821.77,-1800.13,42.9333,224.242,-81.2974],[1806.44,-1700.97,42.4833,221.575,-81.1241],[1791,-1603.06,42.0333,218.87,-80.9452],[1774.87,-1502.85,41.5667,216.023,-80.7533],[1758.03,-1400.51,41.0833,213.032,-80.5477],[1741.64,-1303.12,40.6167,210.102,-80.342],[1723.95,-1200.35,40.1167,206.917,-80.1132],[1706.71,-1102.57,39.6333,203.794,-79.8836],[1688.75,-1003.07,39.1333,200.517,-79.6365],[1670.04,-902.048,38.6167,197.082,-79.3705],[1651.19,-802.867,38.1,193.598,-79.0928],[1631.58,-702.451,37.5667,189.951,-78.7931],[1611.2,-601.021,37.0167,186.137,-78.4691],[1590.65,-501.778,36.4667,182.27,-78.1289],[1569.33,-401.851,35.9,178.23,-77.76],[1547.2,-301.485,35.3167,174.015,-77.359],[1524.26,-200.938,34.7167,169.62,-76.9224],[1500.51,-100.48,34.1,165.044,-76.4454],[1475.91,-0.394273,33.4667,160.282,-75.923],[1450.48,99.0225,32.8167,155.334,-75.3489],[1423.53,199.876,32.1333,150.067,-74.6992],[1395.7,299.237,31.4333,144.609,-73.9786],[1366.32,398.977,30.7,138.827,-73.1561],[1335.36,498.415,29.9333,132.719,-72.2118],[1302.11,598.818,29.1167,126.154,-71.096],[1266.55,699.045,28.25,119.132,-69.7662],[1227.94,799.591,27.3167,111.53,-68.1331],[1186.23,898.682,26.3167,103.368,-66.0998],[1139.27,998.614,25.2,94.2873,-63.3914],[1084.83,1099.28,23.9167,83.9978,-59.527],[1019.22,1199.36,22.3833,72.1523,-53.4328],[929.191,1299.54,20.3,57.7134,-41.1962],[758.546,1374.29,16.4,44.0577,-0.0694983]]], + [75,1387.47,[[1746.48,-2002.66,43.9667,229.598,-82.1328],[1732.28,-1900.89,43.5167,227.005,-81.9797],[1717.98,-1800.32,43.0667,224.373,-81.8219],[1703.56,-1700.97,42.6167,221.702,-81.659],[1689.04,-1602.86,42.1667,218.993,-81.4909],[1673.86,-1502.44,41.7,216.141,-81.3107],[1658.56,-1403.4,41.2333,213.249,-81.1242],[1642.6,-1302.29,40.75,210.209,-80.924],[1626.51,-1202.7,40.2667,207.124,-80.7164],[1609.74,-1101.29,39.7667,203.887,-80.4932],[1592.84,-1001.56,39.2667,200.602,-80.261],[1575.25,-900.294,38.75,197.159,-80.0109],[1557.51,-800.869,38.2333,193.666,-79.7499],[1539.06,-700.2,37.7,190.008,-79.4681],[1520.47,-601.555,37.1667,186.299,-79.173],[1501.15,-501.979,36.6167,182.421,-78.8536],[1481.09,-401.705,36.05,178.369,-78.5071],[1460.28,-300.979,35.4667,174.14,-78.1306],[1438.71,-200.059,34.8667,169.73,-77.7204],[1416.97,-101.9,34.2667,165.261,-77.2849],[1393.84,-1.32975,33.6333,160.481,-76.7949],[1369.92,98.5892,32.9833,155.512,-76.2563],[1344.58,199.975,32.3,150.221,-75.6466],[1318.41,299.888,31.6,144.734,-74.9703],[1291.41,397.98,30.8833,139.052,-74.2163],[1262.3,498.141,30.1167,132.906,-73.3312],[1231.04,599.321,29.3,126.294,-72.2847],[1198.25,698.499,28.45,119.352,-71.0621],[1162.6,798.341,27.5333,111.815,-69.5609],[1123.39,898.708,26.5333,103.561,-67.6581],[1079.91,998.65,25.4333,94.4901,-65.1605],[1029.42,1099.95,24.1667,84.1458,-61.59],[969.766,1199.52,22.6833,72.3728,-56.0785],[889.939,1299.36,20.7167,58.0144,-45.3359],[715.909,1387.47,16.4833,41.4043,-0.109657]]], + [76,1399.89,[[1638.85,-2001.28,44.0833,229.68,-82.6372],[1626.05,-1903.1,43.65,227.179,-82.4994],[1612.66,-1802.32,43.2,224.544,-82.3518],[1599.16,-1702.77,42.75,221.87,-82.1995],[1585.06,-1600.83,42.2833,219.056,-82.0364],[1570.84,-1500.24,41.8167,216.199,-81.8677],[1556.51,-1401.03,41.35,213.301,-81.6931],[1542.08,-1303.21,40.8833,210.36,-81.5124],[1527.02,-1203.38,40.4,207.27,-81.3182],[1511.32,-1101.74,39.9,204.027,-81.1095],[1495.49,-1001.76,39.4,200.736,-80.8924],[1479.01,-900.237,38.8833,197.285,-80.6586],[1462.41,-800.554,38.3667,193.784,-80.4144],[1445.67,-702.739,37.85,190.233,-80.1593],[1427.72,-600.697,37.3,186.399,-79.8749],[1409.63,-500.838,36.75,182.51,-79.576],[1390.85,-400.27,36.1833,178.446,-79.2519],[1371.92,-302.089,35.6167,174.325,-78.91],[1351.73,-200.775,35.0167,169.901,-78.5268],[1331.37,-102.219,34.4167,165.417,-78.1198],[1309.72,-1.22534,33.7833,160.62,-77.6619],[1287.33,99.1323,33.1333,155.63,-77.1585],[1264.18,198.545,32.4667,150.446,-76.6029],[1239.69,299.034,31.7667,144.933,-75.9716],[1213.82,399.967,31.0333,139.088,-75.2507],[1187.16,498.526,30.2833,133.04,-74.4411],[1158.51,598.377,29.4833,126.521,-73.4843],[1127.81,698.406,28.6333,119.527,-72.3437],[1094.45,799.172,27.7167,111.924,-70.9422],[1058.37,898.942,26.7333,103.724,-69.1955],[1018.29,998.73,25.65,94.6756,-66.902],[972.292,1099.21,24.4167,84.4337,-63.667],[917.746,1199.19,22.9667,72.6431,-58.6644],[846.255,1299.32,21.0833,58.2805,-49.135],[672.576,1399.89,16.5667,38.7339,-0.226107]]], + [77,1411.53,[[1529.78,-2001.74,44.2,229.799,-83.1471],[1517.85,-1903.4,43.7667,227.296,-83.0188],[1505.38,-1802.46,43.3167,224.658,-82.8815],[1492.8,-1702.73,42.8667,221.98,-82.7397],[1479.66,-1600.61,42.4,219.161,-82.5879],[1466.89,-1503.42,41.95,216.403,-82.4366],[1453.07,-1400.45,41.4667,213.397,-82.2685],[1439.63,-1302.44,41,210.451,-82.1002],[1425.59,-1202.43,40.5167,207.356,-81.9195],[1410.97,-1100.58,40.0167,204.106,-81.7252],[1396.22,-1000.4,39.5167,200.808,-81.5231],[1381.37,-901.915,39.0167,197.462,-81.3126],[1365.9,-801.957,38.5,193.954,-81.0856],[1349.81,-700.732,37.9667,190.28,-80.8406],[1333.6,-601.526,37.4333,186.553,-80.5839],[1316.75,-501.367,36.8833,182.655,-80.306],[1299.25,-400.486,36.3167,178.58,-80.0046],[1281.62,-301.99,35.75,174.448,-79.6866],[1262.81,-200.338,35.15,170.011,-79.3301],[1243.86,-101.441,34.55,165.511,-78.9516],[1223.69,-0.0853095,33.9167,160.697,-78.5255],[1203.37,98.1069,33.2833,155.817,-78.0694],[1181.81,197.997,32.6167,150.612,-77.5533],[1159,298.994,31.9167,145.076,-76.9666],[1135.47,398.206,31.2,139.336,-76.3123],[1110.09,499.575,30.4333,133.121,-75.5435],[1083.96,597.984,29.65,126.698,-74.6728],[1055.38,698.773,28.8,119.656,-73.6135],[1024.88,798.586,27.9,112.132,-72.336],[991.285,899.399,26.9167,103.853,-70.7149],[954.552,998.874,25.85,94.8407,-68.6189],[912.309,1099.59,24.6333,84.5847,-65.659],[862.707,1199.48,23.2167,72.8185,-61.1299],[798.539,1299.78,21.4,58.4501,-52.6298],[682.517,1399.97,18.15,38.8852,-22.6148],[627.959,1411.53,16.6333,36.0484,-0.176987]]], + [78,1422.37,[[1418.85,-2000.26,44.3,229.862,-83.6574],[1407.81,-1901.8,43.8667,227.355,-83.5387],[1396.26,-1800.72,43.4167,224.713,-83.4116],[1384.61,-1700.85,42.9667,222.031,-83.2803],[1372.88,-1602.22,42.5167,219.31,-83.145],[1360.62,-1501.26,42.05,216.445,-82.9998],[1348.26,-1401.67,41.5833,213.538,-82.8495],[1335.81,-1303.47,41.1167,210.588,-82.694],[1322.82,-1203.24,40.6333,207.488,-82.5268],[1309.28,-1101.18,40.1333,204.233,-82.3472],[1295.63,-1000.78,39.6333,200.929,-82.1603],[1281.87,-902.078,39.1333,197.577,-81.9656],[1267.55,-801.891,38.6167,194.063,-81.7557],[1252.65,-700.428,38.0833,190.381,-81.5291],[1237.64,-600.981,37.55,186.646,-81.2917],[1222.04,-500.57,37,182.738,-81.0346],[1206.32,-402.369,36.45,178.773,-80.7642],[1189.52,-300.669,35.8667,174.508,-80.4616],[1172.59,-201.531,35.2833,170.183,-80.1412],[1155.04,-102.273,34.6833,165.67,-79.7914],[1136.37,-0.533066,34.05,160.841,-79.3977],[1117.56,98.0471,33.4167,155.944,-78.9762],[1097.6,198.35,32.75,150.719,-78.4992],[1076.49,299.783,32.05,145.16,-77.9568],[1054.7,399.446,31.3333,139.393,-77.3517],[1031.72,499.14,30.5833,133.283,-76.6566],[1007.53,598.163,29.8,126.825,-75.8525],[981.079,699.623,28.95,119.738,-74.8737],[953.372,798.357,28.0667,112.299,-73.7157],[922.813,898.454,27.1,104.09,-72.2466],[888.821,999.116,26.0333,94.9824,-70.3144],[850.268,1099.89,24.8333,84.7295,-67.6218],[805.457,1199.43,23.45,73.0212,-63.5493],[748.282,1299.44,21.7,58.7341,-56.039],[653.699,1399.67,18.8333,39.2355,-32.3209],[582.758,1422.37,16.7,33.3468,-0.203374]]], + [79,1432.4,[[1306.62,-2000.68,44.4,229.964,-84.1729],[1296.47,-1902.07,43.9667,227.454,-84.0639],[1285.84,-1800.84,43.5167,224.809,-83.9471],[1275.13,-1700.83,43.0667,222.124,-83.8266],[1264.35,-1602.05,42.6167,219.399,-83.7022],[1253.07,-1500.93,42.15,216.531,-83.5688],[1241.71,-1401.19,41.6833,213.62,-83.4308],[1230.27,-1302.82,41.2167,210.666,-83.2878],[1218.32,-1202.43,40.7333,207.56,-83.1343],[1205.87,-1100.19,40.2333,204.3,-82.9693],[1193.74,-1002.95,39.75,201.101,-82.8033],[1180.67,-900.741,39.2333,197.631,-82.6186],[1167.5,-800.369,38.7167,194.11,-82.4257],[1154.24,-701.86,38.2,190.536,-82.2241],[1140.44,-602.156,37.6667,186.794,-82.0062],[1126.1,-501.477,37.1167,182.878,-81.7703],[1111.21,-400.056,36.55,178.784,-81.5143],[1096.2,-301.015,35.9833,174.63,-81.2442],[1080.64,-201.584,35.4,170.293,-80.9501],[1064.5,-102.023,34.8,165.769,-80.629],[1047.8,-2.60496,34.1833,161.053,-80.2773],[1030.05,98.9475,33.5333,156.011,-79.8804],[1011.71,199.597,32.8667,150.768,-79.4421],[992.758,299.02,32.1833,145.32,-78.9561],[972.731,399.161,31.4667,139.53,-78.4012],[951.61,499.361,30.7167,133.392,-77.7635],[929.379,598.915,29.9333,126.9,-77.0255],[905.544,699.018,29.1,119.912,-76.1453],[880.082,798.493,28.2167,112.424,-75.0839],[851.998,899.407,27.25,104.151,-73.736],[821.248,999.471,26.2,95.099,-71.9914],[786.81,1098.81,25.0333,85.0092,-69.5972],[746.139,1199.08,23.6667,73.246,-65.925],[695.122,1299.2,21.9667,58.9838,-59.2765],[614.85,1399.93,19.3167,39.4444,-39.5122],[536.478,1432.4,16.75,30.6309,-0.0209221]]], + [80,1441.61,[[1193.11,-2002.99,44.5,230.105,-84.693],[1183.5,-1900.46,44.05,227.497,-84.5898],[1174.17,-1802.85,43.6167,224.947,-84.4874],[1164.41,-1702.68,43.1667,222.26,-84.3777],[1154.21,-1600.1,42.7,219.431,-84.2601],[1144.3,-1502.46,42.25,216.661,-84.143],[1133.94,-1402.54,41.7833,213.747,-84.0173],[1123.13,-1300.51,41.3,210.683,-83.8824],[1112.62,-1203.43,40.8333,207.681,-83.7474],[1101.26,-1101.01,40.3333,204.416,-83.5971],[1089.82,-1000.25,39.8333,201.101,-83.4407],[1078.3,-901.174,39.3333,197.738,-83.2777],[1066.29,-800.604,38.8167,194.21,-83.1021],[1054.2,-701.893,38.3,190.63,-82.9185],[1041.62,-601.978,37.7667,186.881,-82.72],[1028.54,-501.081,37.2167,182.957,-82.5051],[1015.37,-402.389,36.6667,178.976,-82.2791],[1001.29,-300.162,36.0833,174.691,-82.026],[987.1,-200.493,35.5,170.343,-81.758],[972.394,-100.685,34.9,165.806,-81.4655],[957.163,-1.01031,34.2833,161.076,-81.145],[941.401,98.2453,33.65,156.15,-80.7928],[924.68,199.265,32.9833,150.89,-80.3941],[907.41,299.072,32.3,145.424,-79.9517],[889.156,399.62,31.5833,139.612,-79.4465],[870.334,498.063,30.85,133.585,-78.8794],[850.074,598.181,30.0667,127.064,-78.2087],[828.353,698.888,29.2333,120.039,-77.4084],[805.148,799.009,28.35,112.506,-76.4429],[779.996,898.957,27.4,104.318,-75.2386],[751.976,999.962,26.35,95.1884,-73.6529],[721.044,1099.01,25.2,85.1344,-71.5078],[684.441,1199.61,23.85,73.3423,-68.2124],[639.333,1299.2,22.2,59.1738,-62.3635],[570.835,1399.89,19.7167,39.7096,-45.7618],[490.196,1441.61,16.8167,27.8994,-0.240374]]], + [81,1449.99,[[1078.05,-2003.41,44.5833,230.191,-85.2138],[1069.37,-1900.76,44.1333,227.58,-85.1207],[1060.96,-1803.03,43.7,225.028,-85.0284],[1052.15,-1702.74,43.25,222.338,-84.9294],[1042.94,-1600.03,42.7833,219.506,-84.8234],[1034,-1502.25,42.3333,216.734,-84.7177],[1024.65,-1402.2,41.8667,213.816,-84.6044],[1014.9,-1300.04,41.3833,210.748,-84.4827],[1005.41,-1202.82,40.9167,207.742,-84.3609],[995.163,-1100.25,40.4167,204.472,-84.2254],[985.183,-1002.68,39.9333,201.264,-84.0891],[974.434,-900.123,39.4167,197.783,-83.9373],[963.952,-802.617,38.9167,194.365,-83.7841],[952.685,-700.53,38.3833,190.664,-83.6132],[941.331,-600.452,37.85,186.907,-83.4342],[929.892,-502.416,37.3167,183.095,-83.2463],[917.644,-400.523,36.75,178.985,-83.0363],[905.301,-301.004,36.1833,174.814,-82.8147],[892.499,-201.078,35.6,170.457,-82.5732],[879.229,-101.002,35,165.91,-82.3095],[865.486,-1.05024,34.3833,161.169,-82.0207],[851.264,98.493,33.75,156.229,-81.7033],[836.178,199.819,33.0833,150.954,-81.3438],[820.594,299.941,32.4,145.47,-80.945],[804.508,398.525,31.7,139.774,-80.5005],[787.141,499.611,30.95,133.587,-79.9778],[769.251,598.016,30.1833,127.178,-79.3861],[749.654,699.242,29.35,120.12,-78.6653],[728.719,799.917,28.4667,112.544,-77.7951],[706.427,898.771,27.5333,104.449,-76.7294],[681.555,999.065,26.5,95.3957,-75.3267],[653.656,1099.21,25.35,85.2448,-73.3987],[621.05,1199.94,24.0167,73.4461,-70.4715],[581.193,1299.59,22.4,59.2828,-65.3222],[522.756,1399.81,20.05,39.9639,-51.3315],[442.951,1449.99,16.8667,25.1548,-0.249195]]], + [82,1457.51,[[961.591,-2001.96,44.65,230.222,-85.7356],[954.146,-1903,44.2167,227.705,-85.6559],[946.356,-1801.4,43.7667,225.053,-85.5704],[938.505,-1701.01,43.3167,222.36,-85.4822],[930.595,-1601.86,42.8667,219.626,-85.3912],[922.328,-1500.35,42.4,216.748,-85.2936],[913.998,-1400.2,41.9333,213.827,-85.1926],[905.605,-1301.44,41.4667,210.861,-85.0881],[896.846,-1200.63,40.9833,207.744,-84.9756],[888.02,-1101.34,40.5,204.579,-84.8589],[878.82,-1000.27,40,201.256,-84.7334],[869.549,-900.891,39.5,197.883,-84.6025],[860.209,-803.22,39,194.46,-84.4661],[850.169,-700.954,38.4667,190.754,-84.314],[840.052,-600.698,37.9333,186.991,-84.1547],[829.858,-502.48,37.4,183.174,-83.9874],[818.945,-400.393,36.8333,179.056,-83.8004],[807.946,-300.679,36.2667,174.878,-83.603],[796.538,-200.549,35.6833,170.512,-83.388],[784.714,-100.262,35.0833,165.955,-83.1532],[772.468,-0.0908992,34.4667,161.203,-82.896],[759.794,99.6791,33.8333,156.25,-82.6132],[746.688,198.75,33.1833,151.094,-82.3012],[732.804,299.214,32.5,145.595,-81.9466],[718.473,398.151,31.8,139.882,-81.5512],[702.999,499.618,31.05,133.675,-81.0861],[687.06,598.417,30.2833,127.241,-80.5596],[669.951,698.1,29.4667,120.295,-79.9314],[651.302,799.367,28.5833,112.684,-79.1583],[631.444,898.851,27.65,104.543,-78.2111],[609.286,999.85,26.6167,95.4283,-76.9631],[584.794,1099.4,25.4833,85.3391,-75.273],[556.48,1198.92,24.1833,73.704,-72.743],[521.351,1299.55,22.5833,59.4413,-68.234],[471.535,1399.61,20.3333,40.2204,-56.4487],[395.269,1457.51,16.9167,22.3975,-0.390915]]], + [83,1464.17,[[844.146,-2002.43,44.7167,230.292,-86.2618],[837.616,-1903.38,44.2833,227.775,-86.1919],[830.783,-1801.68,43.8333,225.12,-86.1169],[823.897,-1701.2,43.3833,222.425,-86.0397],[816.959,-1601.94,42.9333,219.689,-85.9598],[809.709,-1500.32,42.4667,216.809,-85.8743],[802.403,-1400.07,42,213.884,-85.7857],[795.041,-1301.2,41.5333,210.916,-85.6941],[787.359,-1200.27,41.05,207.795,-85.5955],[779.618,-1100.88,40.5667,204.627,-85.4932],[771.818,-1003.03,40.0833,201.411,-85.3868],[763.417,-900.181,39.5667,197.922,-85.2684],[755.224,-802.389,39.0667,194.494,-85.1489],[746.695,-703.162,38.55,190.9,-85.0197],[737.823,-602.71,38.0167,187.134,-84.8802],[728.604,-501.253,37.4667,183.191,-84.7291],[719.314,-401.996,36.9167,179.189,-84.57],[709.67,-302.068,36.35,175.004,-84.3972],[699.666,-201.715,35.7667,170.632,-84.2089],[689.297,-101.197,35.1667,166.068,-84.0033],[678.558,-0.786387,34.55,161.306,-83.778],[667.444,99.2325,33.9167,156.344,-83.5303],[655.951,198.561,33.2667,151.176,-83.2571],[643.776,299.299,32.5833,145.664,-82.9464],[631.208,398.518,31.8833,139.936,-82.6],[617.942,498.081,31.15,133.848,-82.2019],[603.661,599.406,30.3667,127.253,-81.7308],[588.658,699.427,29.55,120.281,-81.18],[572.613,799.208,28.6833,112.781,-80.5154],[555.201,899.223,27.75,104.599,-79.686],[536.088,999.253,26.7333,95.5788,-78.6117],[514.615,1099.64,25.6,85.4149,-77.1337],[490.111,1198.93,24.3167,73.8158,-74.9496],[459.959,1299.12,22.75,59.6428,-71.0993],[417.593,1399.6,20.5667,40.4056,-61.1765],[346.839,1464.17,16.95,19.6279,-0.243611]]], + [84,1469.97,[[725.557,-2001.04,44.7667,230.308,-86.7892],[719.947,-1901.92,44.3333,227.788,-86.7291],[714.077,-1800.16,43.8833,225.131,-86.6647],[708.381,-1703.31,43.45,222.534,-86.6009],[702.2,-1600.28,42.9833,219.695,-86.5299],[696.195,-1502.2,42.5333,216.915,-86.459],[689.92,-1401.83,42.0667,213.989,-86.383],[683.598,-1302.84,41.6,211.019,-86.3044],[676.999,-1201.79,41.1167,207.896,-86.2198],[670.35,-1102.26,40.6333,204.726,-86.132],[663.419,-1000.94,40.1333,201.396,-86.0375],[656.435,-901.299,39.6333,198.016,-85.9391],[649.163,-800.137,39.1167,194.47,-85.833],[641.835,-700.828,38.6,190.87,-85.722],[634.213,-600.291,38.0667,187.098,-85.6021],[626.534,-501.791,37.5333,183.269,-85.4762],[618.554,-402.379,36.9833,179.262,-85.3398],[610.27,-302.288,36.4167,175.072,-85.1914],[601.677,-201.767,35.8333,170.693,-85.0298],[592.771,-101.074,35.2333,166.121,-84.8533],[583.547,-0.481867,34.6167,161.352,-84.66],[574.001,99.7249,33.9833,156.38,-84.4473],[564.129,199.248,33.3333,151.202,-84.2127],[553.927,297.775,32.6667,145.813,-83.9527],[542.876,399.624,31.95,139.934,-83.6484],[531.481,499.412,31.2167,133.83,-83.3065],[519.476,598.871,30.45,127.357,-82.9106],[506.591,699.264,29.6333,120.362,-82.4383],[492.812,799.443,28.7667,112.835,-81.8682],[477.858,899.89,27.8333,104.618,-81.1564],[461.713,998.823,26.8333,95.6998,-80.2502],[443.275,1099.91,25.7,85.4715,-78.9836],[422.506,1198.81,24.4333,73.9269,-77.1366],[396.893,1299.29,22.8833,59.73,-73.8763],[361.633,1399.4,20.7667,40.6091,-65.6842],[298.095,1469.97,16.9833,16.8475,-0.22329]]], + [85,1474.9,[[606.171,-2001.61,44.8167,230.365,-87.3202],[601.486,-1902.42,44.3833,227.844,-87.2701],[596.585,-1800.58,43.9333,225.186,-87.2163],[591.829,-1703.66,43.5,222.588,-87.163],[586.668,-1600.55,43.0333,219.747,-87.1038],[581.654,-1502.4,42.5833,216.965,-87.0447],[576.414,-1401.94,42.1167,214.037,-86.9812],[571.135,-1302.86,41.65,211.065,-86.9156],[565.626,-1201.73,41.1667,207.94,-86.845],[560.074,-1102.11,40.6833,204.767,-86.7718],[554.287,-1000.7,40.1833,201.434,-86.6929],[548.455,-900.968,39.6833,198.051,-86.6107],[542.58,-802.947,39.1833,194.616,-86.5251],[536.264,-700.303,38.65,190.898,-86.4295],[530.1,-602.779,38.1333,187.24,-86.3326],[523.488,-501.063,37.5833,183.288,-86.2244],[516.825,-401.544,37.0333,179.276,-86.1104],[509.908,-301.344,36.4667,175.08,-85.9866],[502.734,-200.708,35.8833,170.695,-85.8516],[495.504,-102.66,35.3,166.245,-85.7085],[487.804,-1.86477,34.6833,161.469,-85.5473],[479.835,98.5523,34.05,156.491,-85.3701],[471.594,198.293,33.4,151.305,-85.1745],[462.863,299.469,32.7167,145.771,-84.952],[453.851,399.141,32.0167,140.017,-84.704],[444.338,499.182,31.2833,133.9,-84.4188],[434.317,598.909,30.5167,127.411,-84.0887],[423.56,699.589,29.7,120.397,-83.6947],[412.279,798.205,28.85,112.992,-83.2287],[399.797,899.125,27.9167,104.747,-82.6361],[386.321,998.568,26.9167,95.7908,-81.8814],[371.156,1098.83,25.8,85.6602,-80.843],[353.593,1199.8,24.5167,73.8818,-79.2836],[332.674,1299.15,23,59.8468,-76.6249],[303.712,1399.79,20.9167,40.6494,-69.9231],[249.054,1474.89,17.0167,14.0571,-0.406152]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 487.804; +_maxRange = 2801.44; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg4.sqf new file mode 100644 index 0000000000..0b75f70886 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_HA_chg4.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_60mm_m720a1_m734_pd_chg4 +// Ammo: ace_arty_60mm_m720a1_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,965.991,[[4646.78,-2001.97,39.5667,230.931,-67.0685],[4604.63,-1903.36,39.1,228.59,-66.6197],[4560.61,-1802.65,38.6167,226.141,-66.1411],[4516.22,-1703.4,38.1333,223.667,-65.6478],[4469.92,-1602.28,37.6333,221.083,-65.1216],[4423.22,-1502.78,37.1333,218.475,-64.5783],[4374.57,-1401.68,36.6167,215.755,-63.9982],[4325.5,-1302.35,36.1,213.012,-63.3981],[4274.41,-1201.7,35.5667,210.158,-62.7568],[4222.89,-1103,35.0333,207.283,-62.0922],[4167.68,-1000.28,34.4667,204.206,-61.3591],[4113.62,-902.75,33.9167,201.202,-60.6197],[4055.8,-801.663,33.3333,197.998,-59.8038],[3995.78,-700.257,32.7333,194.688,-58.9289],[3935.24,-601.496,32.1333,191.366,-58.0156],[3870.75,-500.158,31.5,187.853,-57.0075],[3805.69,-401.855,30.8667,184.337,-55.9515],[3736.57,-301.702,30.2,180.639,-54.7849],[3663.31,-200.267,29.5,176.769,-53.4956],[3587.6,-100.429,28.7833,172.83,-52.1028],[3507.6,-0.35831,28.0333,168.745,-50.5611],[3423.22,99.2707,27.25,164.533,-48.8529],[3332.54,199.693,26.4167,160.134,-46.9185],[3235.42,299.779,25.5333,155.588,-44.7274],[3131.7,398.31,24.6,150.948,-42.2447],[3015.56,498.609,23.5667,146.056,-39.2832],[2884.74,599.201,22.4167,140.982,-35.7109],[2732.98,699.865,21.1,135.763,-31.2508],[2549.71,799.111,19.5333,130.564,-25.431],[2289.53,899.466,17.35,125.593,-16.4792],[1838.17,965.989,13.6667,124.687,-0.0584693]]], + [46,998.294,[[4606.86,-2002.32,39.9333,231.246,-67.5522],[4565.49,-1903.22,39.4667,228.895,-67.113],[4522.29,-1802,38.9833,226.434,-66.6446],[4478.73,-1702.23,38.5,223.948,-66.1618],[4433.29,-1600.58,38,221.35,-65.6466],[4387.46,-1500.53,37.5,218.727,-65.1147],[4341.26,-1402.11,37,216.08,-64.5652],[4293.12,-1302.15,36.4833,213.32,-63.9782],[4243,-1200.84,35.95,210.447,-63.3508],[4192.45,-1101.47,35.4167,207.551,-62.7004],[4139.87,-1001.05,34.8667,204.543,-62.0044],[4086.85,-902.745,34.3167,201.514,-61.2814],[4030.12,-800.836,33.7333,198.283,-60.4835],[3972.89,-701.381,33.15,195.035,-59.6519],[3913.51,-601.682,32.55,191.68,-58.7592],[3851.94,-502,31.9333,188.222,-57.8001],[3786.45,-400.032,31.2833,184.57,-56.7407],[3720.37,-301.295,30.6333,180.919,-55.6284],[3650.26,-201.03,29.95,177.088,-54.3985],[3577.76,-102.131,29.25,173.179,-53.0701],[3499.35,-0.513288,28.5,169.022,-51.5645],[3418.41,98.647,27.7333,164.818,-49.9316],[3331.34,198.951,26.9167,160.408,-48.0804],[3237.98,299.301,26.05,155.83,-45.9812],[3138.2,398.504,25.1333,151.131,-43.5994],[3028.14,498.468,24.1333,146.217,-40.7995],[2903.79,599.752,23.0167,141.052,-37.4095],[2762.83,699.971,21.7667,135.771,-33.2696],[2595.1,799.538,20.3,130.408,-27.9389],[2372.23,899.768,18.3833,125.086,-20.2386],[1832.91,998.294,13.8833,122.37,-0.0245169]]], + [47,1030.52,[[4562.76,-2000.21,40.2833,231.506,-68.026],[4522.17,-1900.66,39.8167,229.144,-67.596],[4481.26,-1802.45,39.35,226.758,-67.1535],[4438.53,-1702.15,38.8667,224.26,-66.6813],[4395.46,-1603.33,38.3833,221.736,-66.1944],[4350.53,-1502.67,37.8833,219.1,-65.6747],[4303.7,-1400.36,37.3667,216.349,-65.1195],[4258.01,-1303.02,36.8667,213.663,-64.564],[4208.86,-1201.04,36.3333,210.772,-63.9507],[4159.29,-1100.99,35.8,207.856,-63.3148],[4109.31,-1002.89,35.2667,204.918,-62.6552],[4055.74,-900.839,34.7,201.774,-61.9271],[4001.71,-801.062,34.1333,198.609,-61.1694],[3945.6,-700.761,33.55,195.332,-60.3566],[3887.39,-600.183,32.95,191.945,-59.484],[3828.66,-502.27,32.35,188.545,-58.572],[3766.12,-401.85,31.7167,184.948,-57.5641],[3701.36,-301.964,31.0667,181.252,-56.4783],[3632.65,-200.479,30.3833,177.368,-55.2772],[3561.6,-100.318,29.6833,173.402,-53.979],[3488.18,-1.81382,28.9667,169.364,-52.574],[3408.89,98.9667,28.2,165.081,-50.9801],[3325.34,198.988,27.4,160.67,-49.2096],[3235.67,299.422,26.55,156.07,-47.1996],[3139.74,399.106,25.65,151.324,-44.9164],[3035.59,498.429,24.6833,146.409,-42.2738],[2919.37,598.574,23.6167,141.257,-39.1142],[2787.02,699.191,22.4167,135.888,-35.2369],[2632.42,799.089,21.0333,130.393,-30.3278],[2435.7,899.5,19.3,124.819,-23.5201],[2122.79,999.861,16.6,119.822,-11.6809],[1826.12,1030.52,14.1,120.029,-0.00792255]]], + [48,1062.64,[[4517.37,-2002.83,40.65,231.879,-68.5201],[4477.59,-1902.77,40.1833,229.509,-68.1],[4436.05,-1800.54,39.7,227.026,-67.6519],[4395.61,-1703.2,39.2333,224.604,-67.2062],[4351.92,-1600.44,38.7333,221.981,-66.7137],[4309.34,-1502.61,38.25,219.419,-66.2224],[4264.93,-1403,37.75,216.743,-65.6976],[4218.65,-1301.79,37.2333,213.951,-65.1367],[4171.99,-1202.36,36.7167,211.133,-64.5561],[4123.41,-1101.61,36.1833,208.199,-63.9351],[4074.42,-1002.81,35.65,205.241,-63.2908],[4021.92,-900.007,35.0833,202.073,-62.5794],[3970.53,-802.393,34.5333,198.977,-61.8611],[3915.56,-701.231,33.95,195.673,-61.0676],[3860.11,-602.542,33.3667,192.35,-60.2396],[3800.97,-500.941,32.75,188.821,-59.3246],[3741.32,-402.186,32.1333,185.281,-58.3662],[3677.87,-301.218,31.4833,181.542,-57.3062],[3612.21,-201.042,30.8167,177.705,-56.1623],[3544.29,-101.968,30.1333,173.778,-54.9262],[3472.39,-2.04256,29.4167,169.676,-53.5559],[3396.44,98.1023,28.6667,165.413,-52.035],[3314.64,199.856,27.8667,160.914,-50.3077],[3230.3,298.252,27.05,156.393,-48.424],[3138.16,398.357,26.1667,151.609,-46.2396],[3038.01,498.57,25.2167,146.623,-43.7072],[2927.87,598.676,24.1833,141.436,-40.7213],[2803.86,699.009,23.0333,136.026,-37.0967],[2660.06,799.321,21.7167,130.418,-32.5369],[2482.78,899.935,20.1167,124.659,-26.398],[2232.72,999.978,17.9,119.104,-16.8913],[1817.77,1062.64,14.3167,117.663,-0.00978154]]], + [49,1094.61,[[4467.82,-2003.07,41,232.198,-69.0045],[4428.84,-1902.53,40.5333,229.819,-68.594],[4389.54,-1803.32,40.0667,227.413,-68.1714],[4348.51,-1701.99,39.5833,224.893,-67.7205],[4307.13,-1602.11,39.1,222.346,-67.2554],[4263.98,-1500.36,38.6,219.683,-66.7589],[4220.46,-1400.21,38.1,216.992,-66.2458],[4176.58,-1301.7,37.6,214.275,-65.7155],[4130.87,-1201.65,37.0833,211.441,-65.1484],[4083.28,-1100.26,36.55,208.488,-64.5417],[4035.28,-1000.81,36.0167,205.51,-63.9122],[3985.37,-900.312,35.4667,202.414,-63.2379],[3935.04,-801.946,34.9167,199.294,-62.5367],[3882.74,-702.857,34.35,196.058,-61.7844],[3826.88,-600.474,33.75,192.61,-60.9531],[3770.54,-500.736,33.15,189.145,-60.0839],[3712.11,-401.024,32.5333,185.568,-59.1485],[3651.58,-301.612,31.9,181.884,-58.1406],[3587.3,-200.296,31.2333,178,-57.0247],[3520.8,-100.041,30.55,174.021,-55.8181],[3452.05,-1.16895,29.85,169.955,-54.5118],[3379.37,98.1933,29.1167,165.718,-53.0614],[3300.98,199.492,28.3333,161.231,-51.4125],[3218.46,299.7,27.5167,156.613,-49.5756],[3130,399.92,26.65,151.805,-47.4843],[3035.48,498.957,25.7333,146.854,-45.101],[2931.26,598.707,24.7333,141.654,-42.2845],[2813.55,699.708,23.6167,136.161,-38.853],[2680.17,799.56,22.3667,130.506,-34.6314],[2519.74,899.644,20.8833,124.648,-29.0812],[2307.25,999.545,18.95,118.772,-20.9896],[1807.86,1094.61,14.5333,115.273,-0.0314493]]], + [50,1126.4,[[4414.17,-2000.91,41.3333,232.463,-69.4798],[4377.37,-1903.52,40.8833,230.159,-69.0932],[4337.51,-1800.29,40.4,227.657,-68.6656],[4298.71,-1701.98,39.9333,225.214,-68.2403],[4258.19,-1601.59,39.45,222.655,-67.7862],[4217.35,-1502.67,38.9667,220.069,-67.3177],[4174.74,-1401.93,38.4667,217.366,-66.8172],[4131.79,-1302.81,37.9667,214.635,-66.2998],[4087.03,-1202.13,37.45,211.785,-65.7465],[4040.44,-1100.08,36.9167,208.815,-65.1544],[3994.93,-1003.06,36.4,205.912,-64.5595],[3946.08,-901.806,35.85,202.795,-63.9021],[3896.81,-802.673,35.3,199.653,-63.2182],[3845.62,-702.786,34.7333,196.392,-62.4845],[3792.47,-602.38,34.15,193.013,-61.6965],[3737.33,-501.705,33.55,189.516,-60.8493],[3680.16,-401.021,32.9333,185.904,-59.9373],[3620.92,-300.6,32.3,182.181,-58.9544],[3559.59,-200.727,31.65,178.351,-57.8935],[3496.11,-101.702,30.9833,174.419,-56.7468],[3428.87,-1.49403,30.2833,170.296,-55.4744],[3357.76,99.2827,29.55,165.993,-54.0607],[3282.72,199.973,28.7833,161.524,-52.4876],[3203.65,299.878,27.9833,156.91,-50.7344],[3120.5,398.254,27.15,152.18,-48.7769],[3028.09,499.658,26.2333,147.093,-46.4566],[2929.62,598.747,25.2667,141.902,-43.8046],[2819.77,698.593,24.2,136.436,-40.6146],[2694.74,798.826,23,130.705,-36.6715],[2546.98,899.311,21.6,124.726,-31.5716],[2359.51,999.56,19.85,118.614,-24.433],[2055.24,1099.73,17.0667,112.943,-11.5641],[1796.37,1126.4,14.75,112.859,-0.0743676]]], + [51,1157.97,[[4357.83,-2000.02,41.6667,232.757,-69.9607],[4321.81,-1902.21,41.2167,230.445,-69.5832],[4284.14,-1802.06,40.75,228.02,-69.1804],[4246.18,-1703.24,40.2833,225.567,-68.7656],[4206.53,-1602.33,39.8,222.998,-68.3226],[4166.56,-1502.88,39.3167,220.401,-67.8656],[4124.87,-1401.58,38.8167,217.685,-67.3772],[4082.84,-1301.9,38.3167,214.94,-66.8723],[4039.04,-1200.63,37.8,212.075,-66.3324],[3994.88,-1101.14,37.2833,209.181,-65.7729],[3948.91,-1000.34,36.75,206.166,-65.1739],[3902.56,-901.499,36.2167,203.123,-64.5518],[3854.36,-801.65,35.6667,199.959,-63.8849],[3804.27,-701.017,35.1,196.674,-63.1691],[3753.76,-602.693,34.5333,193.364,-62.4227],[3699.82,-501.138,33.9333,189.837,-61.5969],[3645.42,-402.249,33.3333,186.291,-60.7323],[3587.49,-300.801,32.7,182.53,-59.7749],[3529.04,-202.41,32.0667,178.757,-58.7683],[3466.98,-102.194,31.4,174.779,-57.6519],[3401.23,-0.7221,30.7,170.601,-56.4125],[3333.28,99.1199,29.9833,166.333,-55.067],[3261.52,199.157,29.2333,161.889,-53.5692],[3185.86,298.71,28.45,157.286,-51.8992],[3104.59,399.004,27.6167,152.453,-49.9942],[3017.59,498.902,26.7333,147.428,-47.8184],[2923.06,598.861,25.7833,142.172,-45.2831],[2819.13,698.651,24.75,136.68,-42.2764],[2700.45,799.948,23.5833,130.84,-38.5445],[2564.85,899.55,22.2667,124.836,-33.8745],[2397.79,999.219,20.6667,118.609,-27.5217],[2156.99,1099.51,18.4,112.383,-17.3177],[1781.45,1157.96,14.95,110.437,-0.0554195]]], + [52,1189.28,[[4298.76,-2000.46,42,233.082,-70.4472],[4263.52,-1902.2,41.55,230.762,-70.079],[4226.69,-1801.59,41.0833,228.328,-69.6861],[4189.55,-1702.31,40.6167,225.866,-69.2814],[4150.78,-1600.9,40.1333,223.286,-68.8493],[4111.68,-1500.96,39.65,220.677,-68.4034],[4072.27,-1402.51,39.1667,218.039,-67.9431],[4031.17,-1302.26,38.6667,215.281,-67.4509],[3988.34,-1200.38,38.15,212.401,-66.9246],[3945.16,-1100.29,37.6333,209.492,-66.3792],[3901.61,-1002,37.1167,206.554,-65.8137],[3856.3,-902.454,36.5833,203.493,-65.2077],[3809.17,-801.874,36.0333,200.308,-64.558],[3760.21,-700.48,35.4667,196.999,-63.8606],[3710.83,-601.387,34.9,193.664,-63.1332],[3659.56,-501.818,34.3167,190.207,-62.3511],[3606.38,-402.023,33.7167,186.629,-61.5091],[3551.25,-302.265,33.1,182.932,-60.6016],[3492.63,-200.243,32.45,179.019,-59.5956],[3433.48,-101.478,31.8,175.096,-58.5352],[3370.75,-1.21361,31.1167,170.966,-57.3576],[3304.37,99.9574,30.4,166.639,-56.0479],[3235.81,199.195,29.6667,162.226,-54.6227],[3163.47,298.24,28.9,157.642,-53.0329],[3085.69,398.376,28.0833,152.81,-51.218],[3002.33,498.493,27.2167,147.764,-49.143],[2911.65,599.124,26.2833,142.456,-46.7215],[2813.48,698.543,25.2833,136.962,-43.8929],[2702.64,799.131,24.1667,131.128,-40.4228],[2575.42,899.696,22.9,125.008,-36.0574],[2422.78,999.869,21.4,118.637,-30.2643],[2219.52,1099.56,19.4333,112.153,-21.6484],[1765.02,1189.28,15.15,107.991,-0.0573617]]], + [53,1220.31,[[4236.98,-2002.27,42.3333,233.437,-70.9389],[4202.54,-1903.56,41.8833,231.111,-70.5801],[4166.54,-1802.48,41.4167,228.669,-70.1973],[4130.24,-1702.72,40.95,226.197,-69.8029],[4092.35,-1600.81,40.4667,223.608,-69.3818],[4054.14,-1500.36,39.9833,220.988,-68.9473],[4015.62,-1401.4,39.5,218.338,-68.4986],[3975.45,-1300.61,39,215.567,-68.0189],[3934.94,-1201.46,38.5,212.766,-67.5226],[3892.75,-1100.74,37.9833,209.841,-66.9914],[3850.2,-1001.83,37.4667,206.887,-66.4407],[3805.92,-901.63,36.9333,203.808,-65.8505],[3759.87,-800.368,36.3833,200.602,-65.2175],[3713.44,-701.235,35.8333,197.368,-64.5584],[3665.19,-601.357,35.2667,194.009,-63.8503],[3615.11,-500.972,34.6833,190.525,-63.0888],[3563.15,-400.329,34.0833,186.917,-62.2689],[3510.75,-302.373,33.4833,183.287,-61.4093],[3454.96,-201.932,32.85,179.437,-60.456],[3397.21,-102.053,32.2,175.47,-59.4251],[3335.95,-0.604354,31.5167,171.291,-58.2797],[3272.63,99.4864,30.8167,167.009,-57.0357],[3207.21,197.882,30.1,162.633,-55.6822],[3136.6,298.507,29.3333,157.973,-54.1374],[3062.21,398.321,28.5333,153.151,-52.4094],[2982.42,498.484,27.6833,148.094,-50.4321],[2895.52,599.596,26.7667,142.749,-48.1213],[2801.33,699.974,25.7833,137.18,-45.4174],[2698.06,799.243,24.7167,131.393,-42.1963],[2580.57,898.773,23.5167,125.292,-38.1826],[2440.13,999.447,22.1,118.808,-32.874],[2260.8,1099.82,20.3167,112.089,-25.285],[1959.88,1199.68,17.3833,105.717,-10.8659],[1747.07,1220.31,15.35,105.52,-0.0817579]]], + [54,1251.02,[[4171.2,-2001.82,42.65,233.738,-71.4227],[4137.56,-1902.7,42.2,231.404,-71.0732],[4102.4,-1801.18,41.7333,228.954,-70.7001],[4066.95,-1700.97,41.2667,226.473,-70.3159],[4031.21,-1602.11,40.8,223.963,-69.9199],[3993.9,-1501.15,40.3167,221.333,-69.4969],[3956.28,-1401.67,39.8333,218.673,-69.0601],[3917.05,-1300.33,39.3333,215.889,-68.5931],[3877.5,-1200.62,38.8333,213.075,-68.1098],[3837.62,-1102.57,38.3333,210.23,-67.6096],[3796.08,-1003.01,37.8167,207.261,-67.0738],[3752.85,-902.148,37.2833,204.164,-66.4996],[3707.89,-800.19,36.7333,200.939,-65.8836],[3662.55,-700.353,36.1833,197.684,-65.2422],[3616.83,-602.669,35.6333,194.401,-64.5737],[3567.94,-501.451,35.05,190.891,-63.8333],[3518.64,-402.727,34.4667,187.355,-63.0585],[3466.07,-301.113,33.85,183.592,-62.1996],[3413.05,-202.369,33.2333,179.808,-61.2969],[3356.67,-101.439,32.5833,175.8,-60.2947],[3298.35,-1.3333,31.9167,171.677,-59.2086],[3238.03,97.6371,31.2333,167.445,-58.0295],[3172.72,199.691,30.5,162.905,-56.6839],[3105.31,299.543,29.75,158.276,-55.2145],[3034.26,398.881,28.9667,153.472,-53.5705],[2957.95,498.919,28.1333,148.414,-51.6876],[2876.28,598.516,27.25,143.141,-49.5268],[2786.01,699.793,26.2833,137.51,-46.9487],[2688.5,799.002,25.25,131.706,-43.9218],[2577.2,899.59,24.0833,125.504,-40.1353],[2448.47,999.477,22.75,119.008,-35.2867],[2288.67,1099.56,21.1167,112.177,-28.5452],[2054.84,1199.7,18.7667,105.249,-17.3467],[1725.87,1251.02,15.5333,103.039,-0.0396783]]], + [55,1281.37,[[4102.73,-2002.82,42.9667,234.071,-71.912],[4069.9,-1903.27,42.5167,231.73,-71.5719],[4035.58,-1801.3,42.05,229.271,-71.2088],[4000.98,-1700.65,41.5833,226.783,-70.8349],[3966.1,-1601.33,41.1167,224.264,-70.4495],[3930.95,-1503.36,40.65,221.715,-70.0521],[3894.24,-1403.35,40.1667,219.044,-69.6274],[3855.96,-1301.45,39.6667,216.249,-69.1732],[3817.37,-1201.18,39.1667,213.422,-68.7032],[3778.46,-1102.56,38.6667,210.564,-68.2166],[3737.93,-1002.4,38.15,207.579,-67.6954],[3695.74,-900.916,37.6167,204.465,-67.1368],[3653.2,-801.389,37.0833,201.32,-66.556],[3608.97,-700.834,36.5333,198.045,-65.9326],[3564.37,-602.423,35.9833,194.74,-65.2827],[3516.67,-500.428,35.4,191.205,-64.5628],[3468.57,-400.918,34.8167,187.641,-63.8093],[3418.67,-301.196,34.2167,183.949,-62.9969],[3366.95,-201.526,33.6,180.13,-62.1197],[3313.38,-102.183,32.9667,176.188,-61.1711],[3256.5,-0.968931,32.3,172.02,-60.1163],[3197.68,99.1492,31.6167,167.738,-58.9707],[3136.89,197.846,30.9167,163.347,-57.7239],[3071.18,299.189,30.1667,158.651,-56.2988],[3003.39,398.005,29.4,153.871,-54.7381],[2929.01,499.851,28.5667,148.719,-52.9113],[2850.91,599.531,27.7,143.432,-50.8534],[2765.98,699.655,26.7667,137.854,-48.439],[2674.07,798.49,25.7667,132.057,-45.6005],[2568.77,899.783,24.6333,125.785,-42.0363],[2449.74,999.301,23.3667,119.267,-37.5734],[2305.42,1099.13,21.85,112.362,-31.5108],[2107.37,1199.99,19.8,105.107,-22.046],[1703.22,1281.37,15.7167,100.534,-0.0195782]]], + [56,1311.33,[[4030.35,-2001.62,43.2667,234.349,-72.3945],[3998.33,-1901.67,42.8167,232.001,-72.0635],[3966.06,-1802.93,42.3667,229.623,-71.723],[3932.32,-1701.81,41.9,227.127,-71.3595],[3898.32,-1602.02,41.4333,224.599,-70.9848],[3862.81,-1500.09,40.95,221.949,-70.5844],[3828.24,-1403.07,40.4833,219.36,-70.1855],[3790.92,-1300.66,39.9833,216.553,-69.7439],[3754.54,-1203.2,39.5,213.809,-69.3023],[3715.34,-1100.71,38.9833,210.842,-68.8136],[3675.81,-1000,38.4667,207.841,-68.3067],[3635.96,-901.103,37.95,204.809,-67.7806],[3594.49,-800.933,37.4167,201.646,-67.2162],[3552.68,-702.745,36.8833,198.451,-66.629],[3507.89,-600.622,36.3167,195.025,-65.9786],[3462.72,-500.802,35.75,191.567,-65.2991],[3415.83,-400.489,35.1667,187.977,-64.5674],[3368.55,-302.689,34.5833,184.359,-63.8007],[3318.15,-202.075,33.9667,180.508,-62.9495],[3265.94,-101.752,33.3333,176.528,-62.0287],[3211.89,-2.00997,32.6833,172.424,-61.0308],[3154.58,99.2774,32,168.094,-59.9195],[3095.35,199.184,31.3,163.649,-58.7095],[3032.74,299.606,30.5667,158.994,-57.3572],[2966.7,399.88,29.8,154.141,-55.8427],[2897.15,499.302,29,149.107,-54.1419],[2822.56,599.017,28.15,143.816,-52.1868],[2741.34,699.613,27.2333,138.206,-49.8901],[2653.34,799.396,26.25,132.34,-47.1856],[2555.39,899.434,25.1667,126.125,-43.8861],[2444.17,999.227,23.95,119.556,-39.7379],[2311.56,1099.47,22.5167,112.556,-34.1922],[2139.58,1199.9,20.6833,105.161,-26.0005],[1826.91,1299.91,17.4167,98.0361,-8.70084],[1679.11,1311.33,15.9,98.004,-0.023312]]], + [57,1340.87,[[3955.31,-2001.93,43.5667,234.659,-72.8827],[3924.11,-1901.58,43.1167,232.304,-72.561],[3892.66,-1802.43,42.6667,229.919,-72.2301],[3859.79,-1700.89,42.2,227.414,-71.8768],[3826.65,-1600.67,41.7333,224.878,-71.5126],[3793.24,-1501.79,41.2667,222.311,-71.137],[3758.37,-1400.82,40.7833,219.619,-70.7356],[3723.21,-1301.33,40.3,216.895,-70.3208],[3686.55,-1200,39.8,214.043,-69.8769],[3649.58,-1100.31,39.3,211.159,-69.4173],[3612.32,-1002.28,38.8,208.242,-68.9411],[3573.51,-902.746,38.2833,205.195,-68.4306],[3533.12,-801.919,37.75,202.015,-67.883],[3491.11,-700.01,37.2,198.702,-67.2949],[3448.76,-600.232,36.65,195.355,-66.6817],[3406.06,-502.617,36.1,191.977,-66.0419],[3360.4,-401.483,35.5167,188.362,-65.3323],[3313.04,-300.075,34.9167,184.613,-64.5668],[3265.27,-201.356,34.3167,180.835,-63.7628],[3214.43,-100.115,33.6833,176.82,-62.8692],[3163.15,-1.96204,33.05,172.782,-61.9259],[3108.71,97.9723,32.3833,168.513,-60.8752],[3051.05,199.111,31.6833,164.017,-59.7027],[2991.49,298.574,30.9667,159.408,-58.4226],[2928.61,398.171,30.2167,154.591,-56.9885],[2860.93,499.268,29.4167,149.475,-55.3423],[2789.77,598.851,28.5833,144.189,-53.4866],[2712.18,699.736,27.6833,138.558,-51.3038],[2629.49,798.606,26.7333,132.739,-48.7764],[2537.17,898.637,25.6833,126.514,-45.6858],[2432.01,999.552,24.5,119.847,-41.7855],[2310.65,1099.14,23.15,112.844,-36.7368],[2157.36,1199.73,21.4667,105.327,-29.4706],[1925.89,1299.9,18.9667,97.5946,-16.7147],[1653.54,1340.87,16.0833,95.45,-0.0529619]]], + [58,1369.95,[[3876.48,-2000.07,43.85,234.914,-73.3648],[3847.23,-1903.06,43.4167,232.64,-73.064],[3816.62,-1803.49,42.9667,230.249,-72.7429],[3784.62,-1701.51,42.5,227.737,-72.3999],[3752.36,-1600.85,42.0333,225.193,-72.0463],[3719.84,-1501.52,41.5667,222.617,-71.6818],[3685.89,-1400.09,41.0833,219.915,-71.2921],[3651.66,-1300.13,40.6,217.181,-70.8893],[3617.16,-1201.67,40.1167,214.413,-70.473],[3581.19,-1101.42,39.6167,211.517,-70.0272],[3544.92,-1002.83,39.1167,208.587,-69.5652],[3507.15,-902.713,38.6,205.525,-69.07],[3467.83,-801.276,38.0667,202.329,-68.5387],[3428.2,-701.807,37.5333,199.099,-67.9857],[3386.99,-601.322,36.9833,195.733,-67.3914],[3344.17,-500.046,36.4167,192.231,-66.752],[3301.01,-401.093,35.85,188.695,-66.0831],[3256.2,-301.691,35.2667,185.024,-65.3619],[3209.73,-202.093,34.6667,181.217,-64.5831],[3161.57,-102.565,34.05,177.275,-63.7406],[3110.37,-0.814289,33.4,173.093,-62.8029],[3058.74,97.6464,32.75,168.889,-61.8103],[3002.65,199.947,32.05,164.343,-60.6746],[2946.07,298.317,31.35,159.787,-59.4637],[2884.91,399.286,30.6,154.904,-58.0751],[2820.46,499.78,29.8167,149.817,-56.5143],[2752.65,599.069,29,144.546,-54.7544],[2680.02,698.226,28.1333,139.011,-52.7228],[2599.65,799.458,27.1833,133.05,-50.2801],[2512.77,899.019,26.1667,126.843,-47.3864],[2414.93,999.146,25.0333,120.21,-43.7782],[2301.45,1099.68,23.7333,113.107,-39.0832],[2164.49,1199.21,22.1833,105.593,-32.6262],[1973.19,1299.41,20.05,97.5956,-22.1389],[1624.96,1369.95,16.25,92.8833,-0.0102857]]], + [59,1398.54,[[3796.1,-2003.6,44.15,235.289,-73.8641],[3766.56,-1902.46,43.7,232.922,-73.5612],[3736.78,-1802.5,43.25,230.524,-73.2495],[3705.66,-1700.12,42.7833,228.004,-72.9167],[3675.4,-1602.63,42.3333,225.543,-72.586],[3643.78,-1502.85,41.8667,222.959,-72.2327],[3610.77,-1400.93,41.3833,220.249,-71.8548],[3577.49,-1300.49,40.9,217.505,-71.4644],[3543.94,-1201.54,40.4167,214.727,-71.0607],[3508.96,-1100.78,39.9167,211.818,-70.6284],[3473.69,-1001.67,39.4167,208.875,-70.1805],[3436.96,-901.009,38.9,205.799,-69.7002],[3399.92,-802.166,38.3833,202.687,-69.2013],[3361.39,-702.066,37.85,199.441,-68.6655],[3321.32,-600.922,37.3,196.056,-68.0896],[3280.92,-501.927,36.75,192.637,-67.4885],[3238.96,-402.213,36.1833,189.079,-66.8411],[3195.41,-302.019,35.6,185.383,-66.1428],[3150.24,-201.599,35,181.548,-65.3886],[3103.42,-101.217,34.3833,177.574,-64.5724],[3054.93,-1.14857,33.75,173.464,-63.6878],[3004.75,98.3153,33.1,169.22,-62.727],[2951.54,199.291,32.4167,164.736,-61.6543],[2896.55,298.857,31.7167,160.127,-60.4828],[2838.45,398.899,30.9833,155.291,-59.1696],[2777.17,498.752,30.2167,150.241,-57.6935],[2711.29,599.71,29.4,144.882,-55.9926],[2642.1,698.776,28.55,139.351,-54.0665],[2566.79,798.633,27.6333,133.47,-51.7904],[2483.83,899.185,26.6333,127.196,-49.0433],[2391.64,999.53,25.5333,120.537,-45.6627],[2287.17,1099.05,24.3,113.482,-41.3674],[2161.5,1199.25,22.8333,105.867,-35.4794],[1995.03,1299.96,20.9167,97.6755,-26.3967],[1596.5,1398.54,16.4333,90.2819,-0.09686]]], + [60,1426.61,[[3710.92,-2001.25,44.4167,235.523,-74.3468],[3683.28,-1903.49,43.9833,233.237,-74.064],[3654.35,-1803.14,43.5333,230.833,-73.762],[3624.11,-1700.34,43.0667,228.307,-73.4396],[3594.71,-1602.46,42.6167,225.839,-73.1192],[3563.99,-1502.25,42.15,223.246,-72.7767],[3533.03,-1403.4,41.6833,220.621,-72.4234],[3500.7,-1302.45,41.2,217.868,-72.0454],[3468.12,-1203,40.7167,215.08,-71.6546],[3434.13,-1101.71,40.2167,212.161,-71.2361],[3399.88,-1002.07,39.7167,209.206,-70.8023],[3364.2,-900.858,39.2,206.116,-70.3373],[3328.22,-801.454,38.6833,202.99,-69.8541],[3290.79,-700.769,38.15,199.726,-69.3352],[3253.05,-602.067,37.6167,196.427,-68.7946],[3213.82,-502.391,37.0667,192.988,-68.213],[3173.07,-401.968,36.5,189.409,-67.5864],[3130.77,-301.038,35.9167,185.689,-66.9106],[3088.12,-202.626,35.3333,181.934,-66.2011],[3042.66,-101.37,34.7167,177.93,-65.4119],[2995.58,-0.395964,34.0833,173.786,-64.5562],[2948.1,97.474,33.45,169.613,-63.651],[2896.44,199.537,32.7667,165.085,-62.6142],[2844.33,297.878,32.0833,160.537,-61.5093],[2787.93,399.211,31.35,155.643,-60.2407],[2729.74,498.278,30.6,150.635,-58.8459],[2667.12,598.781,29.8,145.305,-57.238],[2599.98,699.631,28.95,139.676,-55.3786],[2528.23,799.648,28.05,133.782,-53.2204],[2450.43,899.203,27.0833,127.567,-50.6579],[2363.74,999.453,26.0167,120.907,-47.4978],[2266.57,1098.69,24.8333,113.858,-43.5284],[2150.32,1199.59,23.4333,106.156,-38.1162],[2004.58,1299.27,21.7,97.9535,-30.2163],[1766.63,1399.84,18.9167,89.2605,-14.7405],[1563.64,1426.61,16.5833,87.6766,-0.00383935]]], + [61,1454.12,[[3623.15,-2000.58,44.6833,235.789,-74.8356],[3596.32,-1902.48,44.25,233.498,-74.5617],[3568.25,-1801.77,43.8,231.088,-74.2693],[3539.95,-1702.25,43.35,228.645,-73.9683],[3510.36,-1600.33,42.8833,226.078,-73.6466],[3481.61,-1503.31,42.4333,223.571,-73.3269],[3450.49,-1400.5,41.95,220.843,-72.9726],[3420.19,-1302.61,41.4833,218.175,-72.6193],[3388.57,-1202.7,41,215.378,-72.2411],[3355.6,-1100.93,40.5,212.447,-71.8361],[3322.35,-1000.79,40,209.48,-71.4163],[3288.85,-902.321,39.5,206.477,-70.9809],[3253.95,-802.342,38.9833,203.337,-70.5137],[3217.63,-701.056,38.45,200.058,-70.012],[3181.01,-601.748,37.9167,196.742,-69.4892],[3142.95,-501.44,37.3667,193.285,-68.9267],[3103.41,-400.36,36.8,189.684,-68.3206],[3063.55,-301.614,36.2333,186.047,-67.6858],[3022.18,-202.439,35.65,182.267,-67.0001],[2978.08,-100.369,35.0333,178.234,-66.2373],[2933.61,-1.1894,34.4167,174.167,-65.4323],[2887.56,97.6163,33.7833,169.959,-64.558],[2838.68,198.229,33.1167,165.5,-63.5815],[2788.16,297.691,32.4333,160.906,-62.5152],[2734.71,397.958,31.7167,156.069,-61.3192],[2678.3,498.385,30.9667,150.997,-59.9737],[2618.85,598.285,30.1833,145.703,-58.4552],[2555.05,698.877,29.35,140.093,-56.6983],[2486.79,799.011,28.4667,134.197,-54.6578],[2412.7,899.129,27.5167,127.948,-52.2323],[2331.33,998.982,26.4833,121.312,-49.2852],[2239.87,1098.85,25.3333,114.211,-45.5731],[2132.67,1199.57,24,106.499,-40.6151],[2001.15,1299.62,22.3833,98.2053,-33.5316],[1811.32,1399.53,20.0833,89.2917,-21.276],[1530.91,1454.12,16.75,85.0376,-0.0455138]]], + [62,1481.04,[[3532.82,-2001.64,44.95,236.09,-75.3302],[3506.81,-1903.19,44.5167,233.794,-75.0654],[3479.59,-1802.1,44.0667,231.377,-74.7826],[3452.16,-1702.21,43.6167,228.928,-74.4916],[3424.51,-1603.53,43.1667,226.447,-74.1918],[3395.61,-1502.49,42.7,223.84,-73.8714],[3366.48,-1402.8,42.2333,221.198,-73.5408],[3336.07,-1300.97,41.75,218.426,-73.187],[3305.42,-1200.63,41.2667,215.618,-72.8212],[3274.52,-1101.8,40.7833,212.775,-72.4428],[3242.3,-1001.16,40.2833,209.797,-72.0371],[3209.83,-902.177,39.7833,206.782,-71.6165],[3176,-801.666,39.2667,203.629,-71.165],[3141.91,-702.978,38.75,200.438,-70.6955],[3106.43,-603.048,38.2167,197.106,-70.1908],[3069.55,-502.092,37.6667,193.631,-69.6477],[3031.23,-400.336,37.1,190.011,-69.0625],[2992.6,-300.909,36.5333,186.352,-68.4494],[2952.51,-201.025,35.95,182.547,-67.7871],[2910.94,-100.939,35.35,178.596,-67.0705],[2867.86,-0.917068,34.7333,174.499,-66.2936],[2823.24,98.7632,34.1,170.256,-65.4497],[2777.08,197.81,33.45,165.87,-64.531],[2728.13,298.326,32.7667,161.231,-63.5025],[2676.36,399.709,32.05,156.342,-62.3483],[2622.93,499.108,31.3167,151.324,-61.079],[2566.58,598.26,30.55,146.073,-59.6465],[2506.03,698.439,29.7333,140.491,-57.9883],[2441.2,798.522,28.8667,134.602,-56.0614],[2370.74,899.02,27.9333,128.332,-53.7685],[2293.25,999.766,26.9167,121.637,-50.9782],[2207.31,1099.77,25.8,114.517,-47.509],[2108.81,1199.51,24.5333,106.865,-42.9817],[1989.53,1299.47,23.0167,98.5418,-36.6046],[1827.5,1399.61,20.9833,89.4648,-26.2224],[1495.42,1481.04,16.9,82.3834,-0.00773982]]], + [63,1507.36,[[3438.92,-2000.66,45.2,236.336,-75.8207],[3413.74,-1901.88,44.7667,234.035,-75.5648],[3387.38,-1800.46,44.3167,231.612,-75.2916],[3360.82,-1700.23,43.8667,229.157,-75.0103],[3334.05,-1601.2,43.4167,226.668,-74.7206],[3307.07,-1503.4,42.9667,224.147,-74.4222],[3278.87,-1403.29,42.5,221.498,-74.103],[3249.43,-1301.03,42.0167,218.717,-73.7615],[3219.76,-1200.25,41.5333,215.9,-73.4083],[3189.84,-1100.97,41.05,213.047,-73.0428],[3159.7,-1003.21,40.5667,210.157,-72.6645],[3127.22,-900.423,40.05,207.03,-72.2449],[3095.53,-802.654,39.55,203.966,-71.8232],[3061.46,-700.243,39.0167,200.657,-71.3553],[3028.19,-602.909,38.5,197.414,-70.8833],[2992.49,-501.353,37.95,193.921,-70.3593],[2956.5,-401.952,37.4,190.389,-69.8115],[2919.12,-301.825,36.8333,186.71,-69.2205],[2880.33,-201.214,36.25,182.882,-68.582],[2840.1,-100.373,35.65,178.905,-67.891],[2799.54,-2.25217,35.05,174.89,-67.1625],[2756.37,98.3235,34.4167,170.616,-66.3496],[2711.71,198.299,33.7667,166.193,-65.4643],[2664.35,299.8,33.0833,161.511,-64.4728],[2615.43,399.893,32.3833,156.687,-63.3864],[2564.92,498.235,31.6667,151.728,-62.1924],[2510.42,598.738,30.9,146.411,-60.8137],[2453.06,698.354,30.1,140.864,-59.2505],[2391.57,798.225,29.25,134.993,-57.4331],[2324.66,898.927,28.3333,128.715,-55.2687],[2252.21,998.755,27.35,122.086,-52.6773],[2171.63,1098.76,26.2667,114.972,-49.4498],[2078.97,1199.68,25.0333,107.225,-45.2224],[1970.11,1299.39,23.6,98.8997,-39.4447],[1827.87,1399.71,21.75,89.7264,-30.402],[1556.57,1499.81,18.2833,80.0259,-8.66095],[1458.64,1507.36,17.05,79.7052,-0.000272333]]], + [64,1533.02,[[3342.51,-2001.5,45.45,236.617,-76.3172],[3318.17,-1902.39,45.0167,234.311,-76.0704],[3292.69,-1800.62,44.5667,231.883,-75.8068],[3267.01,-1700.03,44.1167,229.422,-75.5355],[3241.12,-1600.65,43.6667,226.927,-75.2561],[3215.04,-1502.48,43.2167,224.398,-74.9682],[3187.77,-1401.99,42.75,221.741,-74.6603],[3160.29,-1302.85,42.2833,219.049,-74.3424],[3131.61,-1201.62,41.8,216.224,-74.002],[3102.7,-1101.89,41.3167,213.361,-73.6498],[3072.55,-1000.31,40.8167,210.361,-73.2723],[3042.16,-900.382,40.3167,207.323,-72.8807],[3011.53,-802.126,39.8167,204.246,-72.4742],[2979.63,-702.379,39.3,201.028,-72.0375],[2946.43,-601.344,38.7667,197.666,-71.5681],[2912.97,-502.3,38.2333,194.263,-71.0783],[2878.19,-402.276,37.6833,190.713,-70.5507],[2842.06,-301.501,37.1167,187.013,-69.9815],[2804.57,-200.216,36.5333,183.163,-69.3663],[2766.77,-101.458,35.95,179.273,-68.7194],[2727.58,-2.55459,35.35,175.231,-68.0183],[2685.87,98.8561,34.7167,170.925,-67.2357],[2642.7,199.697,34.0667,166.467,-66.3832],[2598.06,299.664,33.4,161.86,-65.4521],[2551.92,398.439,32.7167,157.106,-64.4325],[2503.13,497.96,32,152.094,-63.2849],[2450.48,599.737,31.2333,146.714,-61.9591],[2396.23,698.647,30.45,141.21,-60.4873],[2338.01,798.149,29.6167,135.366,-58.7755],[2274.57,898.886,28.7167,129.092,-56.7351],[2205.81,999.189,27.75,122.435,-54.2896],[2130.42,1098.73,26.7,115.355,-51.2888],[2044.62,1198.98,25.5167,107.661,-47.4041],[1943.27,1299.91,24.1333,99.2234,-42.0657],[1817.28,1399.53,22.4333,90.0663,-34.1191],[1619.24,1499.73,19.8,79.9529,-18.4766],[1420.56,1533.01,17.2,77.0033,-0.0269127]]], + [65,1558,[[3242.68,-2000.34,45.6833,236.845,-76.8103],[3219.17,-1900.93,45.25,234.533,-76.5725],[3195.48,-1802.6,44.8167,232.19,-76.328],[3170.69,-1701.65,44.3667,229.724,-76.0668],[3145.71,-1601.89,43.9167,227.223,-75.7978],[3120.53,-1503.36,43.4667,224.689,-75.5206],[3094.21,-1402.48,43,222.025,-75.2242],[3067.68,-1302.94,42.5333,219.325,-74.918],[3039.99,-1201.3,42.05,216.491,-74.5903],[3012.08,-1101.15,41.5667,213.619,-74.2511],[2983.95,-1002.51,41.0833,210.71,-73.8999],[2954.62,-902.085,40.5833,207.661,-73.5232],[2924.07,-800.066,40.0667,204.47,-73.1188],[2894.28,-703.059,39.5667,201.343,-72.7121],[2862.24,-601.479,39.0333,197.966,-72.2603],[2829.94,-501.883,38.5,194.548,-71.7891],[2796.37,-401.285,37.95,190.98,-71.2813],[2762.53,-302.862,37.4,187.371,-70.7499],[2726.36,-200.885,36.8167,183.5,-70.1586],[2689.88,-101.427,36.2333,179.587,-69.5366],[2652.06,-1.79704,35.6333,175.519,-68.8623],[2612.87,97.7389,35.0167,171.298,-68.1298],[2571.23,199.467,34.3667,166.807,-67.3108],[2529.24,297.875,33.7167,162.278,-66.439],[2484.73,397.694,33.0333,157.482,-65.4604],[2437.67,498.32,32.3167,152.42,-64.3584],[2387.99,599.106,31.5667,147.099,-63.1133],[2335.66,699.359,30.7833,141.526,-61.7006],[2280.63,798.344,29.9667,135.717,-60.0905],[2220.59,898.953,29.0833,129.456,-58.1698],[2155.44,999.552,28.1333,122.785,-55.8659],[2083.91,1099.89,27.1,115.65,-53.0343],[2004.72,1198.89,25.9667,108.051,-49.471],[1911.78,1299.17,24.65,99.6686,-44.6166],[1797.61,1399.35,23.05,90.439,-37.4817],[1633.73,1499.89,20.7833,80.1385,-24.6726],[1381.19,1558,17.35,74.2781,-0.0916735]]], + [66,1582.27,[[3140.37,-2001.07,45.9167,237.107,-77.3096],[3117.72,-1901.34,45.4833,234.792,-77.0809],[3094.89,-1802.7,45.05,232.444,-76.8458],[3070.99,-1701.41,44.6,229.972,-76.5945],[3046.91,-1601.32,44.15,227.465,-76.3358],[3022.64,-1502.45,43.7,224.924,-76.0692],[2997.27,-1401.21,43.2333,222.253,-75.784],[2971.7,-1301.32,42.7667,219.545,-75.4895],[2945.94,-1202.8,42.3,216.801,-75.1853],[2919.04,-1102.22,41.8167,213.921,-74.8594],[2891.93,-1003.14,41.3333,211.003,-74.5219],[2863.67,-902.263,40.8333,207.944,-74.1599],[2835.18,-803.047,40.3333,204.845,-73.784],[2805.51,-702.298,39.8167,201.602,-73.3802],[2774.64,-600.218,39.2833,198.211,-72.946],[2743.52,-500.118,38.75,194.777,-72.493],[2712.15,-402.027,38.2167,191.301,-72.0199],[2678.56,-300.04,37.65,187.564,-71.4937],[2644.69,-200.389,37.0833,183.783,-70.9416],[2609.55,-100.286,36.5,179.847,-70.344],[2574.12,-2.7336,35.9167,175.869,-69.7146],[2536.37,97.5778,35.3,171.62,-69.0117],[2497.28,197.543,34.6667,167.213,-68.2463],[2455.8,299.373,34,162.532,-67.3885],[2413.97,397.666,33.3333,157.813,-66.4722],[2368.64,499.327,32.6167,152.704,-65.4149],[2321.86,598.993,31.8833,147.447,-64.2473],[2272.54,698.402,31.1167,141.929,-62.9229],[2219.55,798.833,30.3,136.042,-61.3806],[2162.83,899.155,29.4333,129.805,-59.5755],[2101.21,999.88,28.5,123.131,-57.4084],[2034.59,1099.25,27.5,116.073,-54.7881],[1959.5,1199.61,26.3833,108.376,-51.432],[1873.48,1299.69,25.1167,100.007,-46.9684],[1769.41,1399.98,23.6,90.7524,-40.5118],[1629.34,1499.79,21.5833,80.4498,-29.6696],[1339.35,1582.27,17.4833,71.5363,-0.0683788]]], + [67,1605.81,[[3035.64,-2003.72,46.15,237.406,-77.8147],[3013.84,-1903.68,45.7167,235.086,-77.5952],[2991.03,-1800.92,45.2667,232.643,-77.3607],[2968.89,-1703.07,44.8333,230.258,-77.1285],[2945.72,-1602.64,44.3833,227.746,-76.8801],[2922.37,-1503.41,43.9333,225.2,-76.6243],[2897.97,-1401.81,43.4667,222.522,-76.3506],[2873.37,-1301.55,43,219.807,-76.0679],[2848.58,-1202.65,42.5333,217.056,-75.7759],[2822.7,-1101.68,42.05,214.167,-75.4631],[2796.62,-1002.21,41.5667,211.239,-75.1391],[2769.42,-900.915,41.0667,208.17,-74.7916],[2742.02,-801.281,40.5667,205.06,-74.4307],[2713.47,-700.096,40.05,201.804,-74.043],[2684.7,-600.736,39.5333,198.505,-73.6394],[2654.76,-500.114,39,195.058,-73.2048],[2624.58,-401.497,38.4667,191.567,-72.7511],[2593.22,-301.927,37.9167,187.923,-72.2615],[2560.65,-201.637,37.35,184.124,-71.7324],[2526.85,-100.869,36.7667,180.167,-71.1598],[2492.78,-2.64446,36.1833,176.165,-70.5566],[2456.48,98.3844,35.5667,171.89,-69.8828],[2418.88,199.094,34.9333,167.453,-69.1489],[2379.99,299.192,34.2833,162.855,-68.3473],[2339.77,398.373,33.6167,158.098,-67.4695],[2297.19,498.658,32.9167,153.064,-66.4807],[2252.21,599.42,32.1833,147.755,-65.3631],[2204.79,699.988,31.4167,142.177,-64.0946],[2154.89,799.646,30.6167,136.338,-62.6478],[2101.42,899.531,29.7667,130.134,-60.954],[2044.31,998.452,28.8667,123.59,-58.9583],[1980.29,1099.99,27.8667,116.388,-56.4567],[1910.3,1199.88,26.7833,108.733,-53.3474],[1830.95,1299.34,25.5667,100.423,-49.2605],[1736.52,1398.98,24.1333,91.234,-43.4597],[1612.14,1499.84,22.2667,80.7944,-33.9363],[1370.61,1599.87,18.7,69.2144,-8.88786],[1296.32,1605.81,17.6167,68.7711,-0.0832618]]], + [68,1628.58,[[2926.84,-2000.6,46.35,237.563,-78.3092],[2905.91,-1900.3,45.9167,235.238,-78.0986],[2884.81,-1801.08,45.4833,232.881,-77.8822],[2863.54,-1702.94,45.05,230.49,-77.6595],[2841.29,-1602.19,44.6,227.973,-77.4215],[2818.87,-1502.64,44.15,225.421,-77.1763],[2795.43,-1400.71,43.6833,222.736,-76.914],[2771.81,-1300.12,43.2167,220.014,-76.643],[2748,-1200.88,42.75,217.255,-76.3631],[2724.01,-1103.02,42.2833,214.458,-76.0737],[2698.97,-1003.14,41.8,211.522,-75.7635],[2672.85,-901.417,41.3,208.443,-75.4307],[2646.54,-801.351,40.8,205.323,-75.0851],[2620.02,-702.964,40.3,202.161,-74.726],[2592.4,-603.089,39.7833,198.852,-74.3398],[2563.66,-501.93,39.25,195.391,-73.9242],[2534.69,-402.769,38.7167,191.887,-73.49],[2504.58,-302.634,38.1667,188.227,-73.0215],[2473.31,-201.754,37.6,184.41,-72.5153],[2440.87,-100.373,37.0167,180.433,-71.9673],[2408.16,-1.52972,36.4333,176.409,-71.3898],[2374.25,97.4496,35.8333,172.224,-70.7626],[2338.17,198.926,35.2,167.76,-70.0608],[2300.83,299.819,34.55,163.13,-69.2941],[2262.23,399.823,33.8833,158.336,-68.4541],[2222.33,498.619,33.2,153.381,-67.5311],[2180.15,598.141,32.4833,148.145,-66.4879],[2134.65,699.895,31.7167,142.509,-65.2767],[2087.77,798.758,30.9333,136.726,-63.9246],[2037.48,898.18,30.1,130.563,-62.3413],[1982.7,998.798,29.2,123.917,-60.4383],[1923.34,1098.93,28.2333,116.827,-58.1337],[1857.25,1199.74,27.1667,109.114,-55.2192],[1783.25,1299.5,25.9833,100.789,-51.4356],[1695.9,1399.77,24.6,91.5441,-46.1083],[1586.33,1499.3,22.8833,81.2296,-37.8007],[1409.5,1599.86,20.15,69.3089,-19.8673],[1252.1,1628.58,17.75,65.9831,-0.141622]]], + [69,1650.56,[[2816.52,-2003.33,46.5667,237.845,-78.8179],[2796.46,-1902.73,46.1333,235.517,-78.6166],[2776.24,-1803.2,45.7,233.156,-78.4097],[2755.08,-1700.98,45.25,230.669,-78.1885],[2734.54,-1603.68,44.8167,228.24,-77.9694],[2712.26,-1500.13,44.35,225.587,-77.7261],[2690.6,-1401.53,43.9,222.992,-77.4841],[2667.96,-1300.59,43.4333,220.264,-77.2251],[2645.14,-1201,42.9667,217.497,-76.9574],[2622.15,-1102.78,42.5,214.693,-76.6807],[2598.16,-1002.53,42.0167,211.748,-76.3841],[2573.14,-900.423,41.5167,208.66,-76.0658],[2548.76,-803.287,41.0333,205.634,-75.7466],[2522.5,-701.183,40.5167,202.357,-75.3919],[2496.03,-600.895,40,199.035,-75.0226],[2469.36,-502.45,39.4833,195.669,-74.6376],[2441.6,-402.793,38.95,192.151,-74.2228],[2412.76,-302.14,38.4,188.475,-73.7751],[2382.8,-200.722,37.8333,184.64,-73.2914],[2352.6,-101.658,37.2667,180.758,-72.7829],[2321.27,-2.17706,36.6833,176.714,-72.2317],[2288.79,97.4653,36.0833,172.506,-71.6329],[2254.23,199.649,35.45,168.014,-70.9627],[2219.38,298.71,34.8167,163.474,-70.2498],[2182.41,399.562,34.15,158.647,-69.4486],[2144.2,499.235,33.4667,153.652,-68.5678],[2103.8,599.685,32.75,148.371,-67.5719],[2062.12,698.078,32.0167,142.929,-66.4675],[2017.24,798.196,31.2333,137.083,-65.18],[1969.08,898.968,30.4,130.844,-63.6713],[1917.6,999.231,29.5167,124.228,-61.8913],[1861.76,1099.42,28.5667,117.141,-59.7345],[1800.48,1199.26,27.5333,109.514,-57.0494],[1731.67,1299.02,26.3833,101.204,-53.5585],[1651.12,1399.47,25.05,91.9577,-48.6897],[1551.43,1499.91,23.4167,81.5491,-41.1998],[1406.25,1600,21.0667,69.5926,-26.6746],[1205.65,1650.56,17.8667,63.1774,-0.101369]]], + [70,1671.72,[[2702.37,-2000.3,46.75,237.986,-79.3175],[2683.92,-1903.33,46.3333,235.744,-79.1327],[2664.59,-1803.52,45.9,233.379,-78.9352],[2644.35,-1701.02,45.45,230.887,-78.7242],[2624.72,-1603.43,45.0167,228.453,-78.515],[2604.17,-1503.26,44.5667,225.89,-78.2912],[2582.7,-1400.68,44.1,223.194,-78.0518],[2561.83,-1303.01,43.65,220.557,-77.8136],[2540.02,-1203.06,43.1833,217.784,-77.5584],[2517.25,-1100.98,42.7,214.872,-77.285],[2494.31,-1000.4,42.2167,211.919,-77.0018],[2471.19,-901.333,41.7333,208.925,-76.7083],[2447.08,-800.468,41.2333,205.785,-76.3932],[2422.78,-701.276,40.7333,202.602,-76.0657],[2397.48,-600.56,40.2167,199.269,-75.7134],[2371.97,-501.682,39.7,195.892,-75.3463],[2345.44,-401.573,39.1667,192.359,-74.9506],[2317.87,-300.451,38.6167,188.668,-74.5236],[2290.07,-201.508,38.0667,184.93,-74.0759],[2261.21,-101.882,37.5,181.03,-73.5914],[2231.26,-1.81515,36.9167,176.966,-73.0661],[2200.22,98.4351,36.3167,172.736,-72.4953],[2168.05,198.6,35.7,168.337,-71.8737],[2134.75,298.399,35.0667,163.769,-71.1949],[2100.3,397.535,34.4167,159.031,-70.4516],[2063.8,498.111,33.7333,154.001,-69.6139],[2025.2,599.518,33.0167,148.677,-68.6665],[1985.37,698.899,32.2833,143.186,-67.6153],[1943.4,797.984,31.5167,137.407,-66.4164],[1898.32,898.038,30.7,131.222,-65.0112],[1849.14,999.782,29.8167,124.519,-63.3199],[1796.74,1099.86,28.8833,117.447,-61.3059],[1740.11,1198.49,27.8833,109.925,-58.8403],[1675.35,1299.36,26.75,101.538,-55.5787],[1601.34,1399.36,25.4667,92.3457,-51.1395],[1511.07,1499.7,23.9167,81.9609,-44.4232],[1387.39,1599.38,21.8167,70.0347,-32.2271],[1158.13,1671.72,17.9833,60.3489,-0.104257]]], + [71,1692.04,[[2586.7,-2003.23,46.95,238.254,-79.8306],[2568.4,-1902.11,46.5167,235.918,-79.6476],[2549.96,-1802.06,46.0833,233.548,-79.4595],[2531.38,-1703.08,45.65,231.145,-79.2661],[2511.93,-1601.46,45.2,228.612,-79.0592],[2492.33,-1501.04,44.75,226.043,-78.8461],[2472.58,-1401.83,44.3,223.438,-78.6264],[2451.94,-1300.25,43.8333,220.697,-78.3911],[2431.14,-1200.01,43.3667,217.917,-78.148],[2410.17,-1101.15,42.9,215.098,-77.8967],[2388.29,-1000.22,42.4167,212.137,-77.6272],[2366.24,-900.803,41.9333,209.135,-77.3478],[2344.02,-802.92,41.45,206.091,-77.058],[2320.08,-700.011,40.9333,202.793,-76.7361],[2296.73,-602.142,40.4333,199.557,-76.4119],[2272.41,-502.816,39.9167,196.168,-76.0628],[2247.12,-402.239,39.3833,192.623,-75.6866],[2220.82,-300.629,38.8333,188.918,-75.2805],[2194.32,-201.194,38.2833,185.165,-74.8548],[2166.8,-101.054,37.7167,181.248,-74.394],[2138.25,-0.455134,37.1333,177.164,-73.8942],[2109.47,97.5852,36.55,173.031,-73.3667],[2078.81,198.403,35.9333,168.608,-72.7761],[2047.07,298.879,35.3,164.014,-72.131],[2014.23,398.718,34.65,159.246,-71.4244],[1980.28,497.612,33.9833,154.304,-70.6479],[1943.48,599.905,33.2667,148.94,-69.7483],[1906.39,697.972,32.55,143.528,-68.7732],[1866.39,798.132,31.7833,137.695,-67.6358],[1823.43,899.341,30.9667,131.444,-66.3017],[1778.34,998.583,30.1167,124.915,-64.7584],[1729.3,1098.53,29.2,117.869,-62.8867],[1675.35,1199.06,28.2,110.216,-60.5525],[1615.49,1299.25,27.1,101.899,-57.556],[1546.84,1399.65,25.85,92.6848,-53.4684],[1464.59,1499.97,24.3667,82.3154,-47.4004],[1356.26,1599.55,22.4333,70.3985,-36.8387],[1109.54,1692.04,18.1,57.4981,-0.1576]]], + [72,1711.48,[[2467.44,-2000.42,47.1167,238.381,-80.3358],[2450.71,-1902.97,46.7,236.131,-80.1687],[2433.17,-1802.66,46.2667,233.758,-79.9902],[2415.5,-1703.43,45.8333,231.35,-79.8066],[2397.01,-1601.53,45.3833,228.814,-79.6102],[2378.37,-1500.83,44.9333,226.24,-79.4078],[2359.58,-1401.35,44.4833,223.629,-79.1992],[2340.66,-1303.09,44.0333,220.981,-78.9839],[2320.88,-1202.52,43.5667,218.195,-78.7534],[2300.95,-1103.31,43.1,215.371,-78.515],[2280.14,-1002.02,42.6167,212.403,-78.2594],[2259.17,-902.241,42.1333,209.394,-77.9944],[2237.31,-800.63,41.6333,206.236,-77.71],[2215.28,-700.684,41.1333,203.035,-77.4142],[2193.08,-602.426,40.6333,199.789,-77.1066],[2169.96,-502.695,40.1167,196.389,-76.7755],[2145.9,-401.696,39.5833,192.832,-76.4185],[2121.66,-302.706,39.05,189.227,-76.0452],[2096.47,-202.76,38.5,185.46,-75.6417],[2070.31,-102.09,37.9333,181.527,-75.205],[2043.16,-0.9377,37.35,177.426,-74.7314],[2015.8,97.6609,36.7667,173.273,-74.2313],[1986.65,199.075,36.15,168.828,-73.6713],[1957.27,297.549,35.5333,164.33,-73.0761],[1926.05,398.113,34.8833,159.534,-72.407],[1893.78,497.76,34.2167,154.561,-71.6715],[1859.62,598.519,33.5167,149.284,-70.8396],[1823.55,699.761,32.7833,143.703,-69.8946],[1786.35,798.666,32.0333,137.946,-68.8402],[1746.36,898.917,31.2333,131.762,-67.6035],[1703.51,999.409,30.3833,125.158,-66.1433],[1657.76,1098.94,29.4833,118.15,-64.4047],[1607.36,1199.49,28.5,110.505,-62.2349],[1552.21,1298.73,27.4333,102.28,-59.4923],[1488.75,1399.25,26.2167,93.0782,-55.7443],[1414.17,1499,24.8,82.7971,-50.2992],[1317.57,1599.26,22.9833,70.8267,-41.0045],[1141.57,1699.96,19.7167,56.2969,-15.3682],[1058.98,1711.48,18.2,54.6291,-0.0983375]]], + [73,1730.03,[[2346.71,-2003.65,47.3,238.635,-80.8538],[2330.21,-1902.06,46.8667,236.293,-80.6893],[2313.59,-1801.52,46.4333,233.915,-80.5202],[2296.83,-1702.06,46,231.503,-80.3463],[2279.95,-1603.69,45.5667,229.056,-80.1674],[2262.28,-1502.71,45.1167,226.478,-79.976],[2244.47,-1402.93,44.6667,223.863,-79.7786],[2225.86,-1300.76,44.2,221.111,-79.5673],[2207.78,-1203.51,43.75,218.42,-79.3569],[2188.21,-1100.47,43.2667,215.487,-79.1232],[2169.16,-1002.38,42.8,212.615,-78.8896],[2149.29,-902.275,42.3167,209.598,-78.6389],[2128.56,-800.324,41.8167,206.432,-78.3698],[2107.68,-700.034,41.3167,203.222,-78.0899],[2086.63,-601.43,40.8167,199.966,-77.7988],[2064.71,-501.336,40.3,196.556,-77.4855],[2042.62,-403.097,39.7833,193.098,-77.1584],[2018.93,-300.589,39.2333,189.367,-76.7943],[1995.04,-200.246,38.6833,185.585,-76.4123],[1970.97,-102.103,38.1333,181.753,-76.0113],[1945.25,-0.450202,37.55,177.635,-75.5635],[1919.32,98.6538,36.9667,173.463,-75.0905],[1892.43,197.89,36.3667,169.117,-74.5756],[1863.84,299.625,35.7333,164.474,-73.9978],[1835.01,398.218,35.1,159.774,-73.3814],[1804.43,498.553,34.4333,154.77,-72.6864],[1772.83,597.672,33.75,149.585,-71.9194],[1738.65,699.786,33.0167,143.963,-71.0275],[1703.41,799.592,32.2667,138.159,-70.0318],[1666.3,898.761,31.4833,132.048,-68.8888],[1626.51,998.483,30.65,125.506,-67.5394],[1583.18,1099.39,29.75,118.411,-65.9007],[1536.24,1199.8,28.7833,110.787,-63.8899],[1484.83,1299.36,27.7333,102.547,-61.3463],[1426.39,1399.53,26.55,93.3903,-57.9153],[1358.28,1499.09,25.1833,83.1483,-52.9814],[1271.9,1599.29,23.4667,71.2099,-44.7575],[1134.46,1699.89,20.7667,56.6318,-25.2402],[1007.47,1730.03,18.3,51.7383,-0.089489]]], + [74,1747.66,[[2222.65,-2001.15,47.45,238.749,-81.3653],[2207.66,-1903.26,47.0333,236.493,-81.216],[2191.95,-1802.5,46.6,234.113,-81.0566],[2176.12,-1702.8,46.1667,231.697,-80.8926],[2159.56,-1600.42,45.7167,229.151,-80.7172],[2143.48,-1502.95,45.2833,226.664,-80.5433],[2126.66,-1402.92,44.8333,224.044,-80.3571],[2109.08,-1300.48,44.3667,221.287,-80.1578],[2092,-1202.97,43.9167,218.59,-79.9594],[2074.14,-1103.19,43.45,215.753,-79.7466],[2055.51,-1001.29,42.9667,212.772,-79.5185],[2036.73,-900.895,42.4833,209.747,-79.282],[2017.81,-802.026,42,206.68,-79.0367],[1998.08,-701.378,41.5,203.461,-78.7731],[1978.2,-602.411,41,200.198,-78.4988],[1957.5,-501.939,40.4833,196.777,-78.2035],[1935.96,-400.168,39.95,193.197,-77.8851],[1914.26,-300.399,39.4167,189.567,-77.552],[1892.38,-202.663,38.8833,185.887,-77.2032],[1868.96,-101.079,38.3167,181.924,-76.8139],[1845.36,-1.86018,37.75,177.908,-76.4041],[1820.87,97.7698,37.1667,173.719,-75.9588],[1795.48,197.553,36.5667,169.355,-75.4739],[1768.47,299.87,35.9333,164.689,-74.9298],[1741.25,399.051,35.3,159.964,-74.3491],[1713.09,497.53,34.65,155.058,-73.7111],[1682.53,599.776,33.95,149.712,-72.9712],[1651.72,698.013,33.25,144.309,-72.1699],[1618.45,798.751,32.5,138.462,-71.2342],[1583.42,898.902,31.7167,132.299,-70.1595],[1545.85,999.68,30.8833,125.693,-68.8898],[1505.7,1099.91,30,118.652,-67.3769],[1462.93,1198.34,29.0667,111.193,-65.5549],[1414.41,1299.74,28.0167,102.818,-63.1695],[1360.81,1399.3,26.8667,93.7349,-60.0432],[1298.12,1499.44,25.5333,83.4561,-55.536],[1220.61,1599.38,23.9,71.5724,-48.2258],[1106.29,1699.59,21.5167,57.065,-32.3001],[955.014,1747.66,18.4,48.8263,-0.140422]]], + [75,1764.34,[[2096.59,-2000.84,47.6,238.903,-81.883],[2082.49,-1902.75,47.1833,236.643,-81.7428],[2067.7,-1801.78,46.75,234.259,-81.5929],[2052.81,-1701.87,46.3167,231.84,-81.4388],[2037.8,-1603.05,45.8833,229.385,-81.2802],[2022.09,-1501.6,45.4333,226.798,-81.1105],[2006.26,-1401.35,44.9833,224.173,-80.9355],[1990.31,-1302.32,44.5333,221.509,-80.755],[1973.64,-1200.94,44.0667,218.707,-80.5616],[1956.84,-1100.92,43.6,215.863,-80.3616],[1939.91,-1002.27,43.1333,212.979,-80.1547],[1922.24,-901.576,42.65,209.948,-79.9326],[1904.44,-802.402,42.1667,206.873,-79.7022],[1885.88,-701.435,41.6667,203.647,-79.4546],[1867.17,-602.147,41.1667,200.375,-79.197],[1847.7,-501.34,40.65,196.945,-78.9196],[1828.07,-402.38,40.1333,193.467,-78.6301],[1807.65,-302.196,39.6,189.827,-78.3177],[1786.43,-201.005,39.05,186.02,-77.9799],[1765.04,-102.005,38.5,182.16,-77.6253],[1742.84,-2.33017,37.9333,178.13,-77.2407],[1719.8,97.7734,37.35,173.924,-76.8229],[1695.92,198.048,36.75,169.541,-76.3678],[1671.18,298.223,36.1333,164.978,-75.8708],[1645.58,398.016,35.5,160.231,-75.3265],[1618.42,499.627,34.8333,155.171,-74.7125],[1591.04,597.662,34.1667,150.051,-74.0518],[1561.37,699.001,33.45,144.484,-73.2829],[1530.78,798.288,32.7167,138.726,-72.4251],[1497.83,899.344,31.9333,132.515,-71.418],[1463.21,999.117,31.1167,125.983,-70.2526],[1426.17,1098.67,30.25,119.003,-68.8642],[1385.96,1198.48,29.3167,111.454,-67.1603],[1341.07,1299.9,28.2833,103.091,-64.9645],[1291.42,1399.99,27.15,93.9729,-62.0835],[1234.71,1499.02,25.8667,83.8289,-58.0356],[1164.11,1599.96,24.2833,71.8569,-51.4365],[1066.53,1699.44,22.1167,57.4839,-38.0448],[900.87,1764.34,18.4833,45.896,-0.0596212]]], + [76,1780.06,[[1968.59,-2002.71,47.75,239.096,-82.4066],[1954.85,-1900.51,47.3167,236.743,-82.2702],[1941.53,-1803.24,46.9,234.447,-82.1354],[1927.58,-1703.11,46.4667,232.025,-81.9912],[1912.98,-1600.29,46.0167,229.471,-81.837],[1898.81,-1502.39,45.5833,226.976,-81.6842],[1883.98,-1401.9,45.1333,224.347,-81.5205],[1869.04,-1302.64,44.6833,221.679,-81.3517],[1853.42,-1201.02,44.2167,218.872,-81.1708],[1837.69,-1100.74,43.75,216.023,-80.9838],[1821.83,-1001.84,43.2833,213.132,-80.7902],[1805.28,-900.885,42.8,210.095,-80.5825],[1788.61,-801.445,42.3167,207.013,-80.367],[1771.22,-700.2,41.8167,203.779,-80.1354],[1753.7,-600.631,41.3167,200.498,-79.8944],[1736.04,-502.764,40.8167,197.171,-79.6434],[1717.07,-400.277,40.2833,193.57,-79.364],[1698.54,-302.894,39.7667,190.033,-79.081],[1678.67,-201.318,39.2167,186.215,-78.7653],[1658.64,-101.928,38.6667,182.343,-78.4339],[1637.84,-1.84762,38.1,178.298,-78.0744],[1616.27,98.6773,37.5167,174.077,-77.6838],[1593.9,199.389,36.9167,169.676,-77.2583],[1571.37,297.338,36.3167,165.217,-76.8065],[1547.39,397.684,35.6833,160.449,-76.2982],[1521.96,499.882,35.0167,155.364,-75.7249],[1496.32,598.511,34.35,150.216,-75.1076],[1469.19,698.17,33.65,144.746,-74.4064],[1440.55,798.224,32.9167,138.951,-73.6061],[1410.36,897.994,32.15,132.828,-72.6871],[1377.95,998.755,31.3333,126.242,-71.6009],[1343.28,1099.36,30.4667,119.197,-70.3061],[1306.31,1198.59,29.55,111.7,-68.7457],[1264.97,1299.87,28.5333,103.362,-66.7335],[1219.88,1398.89,27.4333,94.3628,-64.1346],[1167.51,1499.12,26.1667,84.1253,-60.4254],[1104.25,1599.41,24.65,72.268,-54.5694],[1018.62,1699.58,22.6167,57.845,-42.985],[845.909,1780.06,18.5667,42.9454,-0.0383483]]], + [77,1794.8,[[1838.18,-2002.86,47.8833,239.239,-82.9307],[1825.37,-1900.48,47.45,236.883,-82.8037],[1812.96,-1803.02,47.0333,234.584,-82.6782],[1799.96,-1702.71,46.6,232.159,-82.544],[1786.86,-1603.48,46.1667,229.697,-82.4059],[1773.14,-1501.6,45.7167,227.102,-82.2582],[1759.33,-1400.92,45.2667,224.469,-82.1059],[1745.4,-1301.45,44.8167,221.796,-81.9487],[1731.37,-1203.23,44.3667,219.085,-81.7864],[1716.71,-1102.69,43.9,216.231,-81.6125],[1701.41,-1000.01,43.4167,213.232,-81.426],[1686.52,-902.293,42.95,210.294,-81.2394],[1670.98,-802.573,42.4667,207.206,-81.0389],[1654.78,-701.035,41.9667,203.966,-80.8235],[1638.46,-601.17,41.4667,200.677,-80.5994],[1622.01,-503.004,40.9667,197.342,-80.366],[1604.33,-400.195,40.4333,193.733,-80.1061],[1587.07,-302.497,39.9167,190.186,-79.8428],[1568.55,-200.582,39.3667,186.356,-79.5492],[1549.89,-100.851,38.8167,182.472,-79.2408],[1530.51,-0.415376,38.25,178.414,-78.9063],[1510.99,97.6315,37.6833,174.299,-78.5535],[1490.15,198.803,37.0833,169.883,-78.1581],[1468.57,299.909,36.4667,165.281,-77.7262],[1446.82,398.055,35.85,160.617,-77.2658],[1423.72,498.254,35.2,155.638,-76.7465],[1399.24,599.937,34.5167,150.335,-76.1586],[1374.58,697.819,33.8333,144.966,-75.5225],[1347.9,798.568,33.1,139.135,-74.7792],[1319.78,899.072,32.3333,132.971,-73.9253],[1290.21,998.606,31.5333,126.47,-72.9372],[1258.55,1098.3,30.6833,119.5,-71.7597],[1224.12,1198.69,29.7667,111.928,-70.3133],[1186.26,1299.67,28.7667,103.627,-68.4789],[1144.91,1398.85,27.6833,94.6311,-66.1089],[1096.8,1499.89,26.4333,84.3283,-62.7196],[1039.86,1599.84,24.9667,72.5303,-57.4821],[964.766,1699.72,23.05,58.1899,-47.4359],[790.145,1794.8,18.65,39.975,-0.0907766]]], + [78,1808.53,[[1705.51,-2001.31,48,239.332,-83.4558],[1694.11,-1902.7,47.5833,237.065,-83.3428],[1682.15,-1801.17,47.15,234.672,-83.2221],[1670.11,-1700.7,46.7167,232.242,-83.0979],[1657.97,-1601.32,46.2833,229.776,-82.97],[1645.74,-1503.02,45.85,227.274,-82.8384],[1632.94,-1402.13,45.4,224.637,-82.6975],[1620.04,-1302.45,44.95,221.961,-82.5522],[1606.57,-1200.39,44.4833,219.144,-82.3965],[1593.47,-1103.25,44.0333,216.388,-82.2412],[1579.3,-1000.33,43.55,213.384,-82.0687],[1565.51,-902.378,43.0833,210.44,-81.8962],[1551.11,-802.416,42.6,207.347,-81.7108],[1536.11,-700.626,42.1,204.099,-81.5116],[1520.99,-600.506,41.6,200.804,-81.3042],[1505.76,-502.082,41.1,197.461,-81.0883],[1489.89,-402.186,40.5833,193.956,-80.8555],[1473.39,-301.026,40.05,190.286,-80.6042],[1456.76,-201.885,39.5167,186.562,-80.341],[1439.48,-101.792,38.9667,182.668,-80.056],[1421.54,-0.981316,38.4,178.598,-79.747],[1403.46,97.4447,37.8333,174.47,-79.4209],[1384.16,199.021,37.2333,170.039,-79.0554],[1364.72,297.843,36.6333,165.545,-78.6673],[1344.04,399.119,36,160.737,-78.2305],[1322.65,499.769,35.35,155.736,-77.7503],[1300.53,599.484,34.6833,150.538,-77.2202],[1277.69,697.942,34,145.142,-76.6328],[1252.99,799.316,33.2667,139.279,-75.9461],[1227.53,898.332,32.5167,133.211,-75.1749],[1200.15,998.674,31.7167,126.666,-74.2632],[1170.84,1099.23,30.8667,119.64,-73.1761],[1139.55,1198.79,29.9667,112.137,-71.8656],[1105.09,1299.33,28.9833,103.885,-70.2032],[1066.82,1399.97,27.9,94.7674,-68.0184],[1024.08,1498.88,26.7,84.7021,-65.0253],[972.596,1599.43,25.2667,72.8778,-60.3345],[906.158,1699.69,23.4333,58.5391,-51.5521],[781.588,1799.95,20.0333,39.0338,-19.2623],[733.596,1808.53,18.7333,36.9859,-0.236132]]], + [79,1821.25,[[1571.14,-2002.02,48.1167,239.467,-83.9867],[1560.65,-1903.25,47.7,237.197,-83.8829],[1549.66,-1801.55,47.2667,234.802,-83.7719],[1538.58,-1700.92,46.8333,232.369,-83.6578],[1527.42,-1601.36,46.4,229.9,-83.5404],[1516.17,-1502.9,45.9667,227.395,-83.4195],[1504.4,-1401.82,45.5167,224.755,-83.29],[1492.54,-1301.97,45.0667,222.075,-83.1564],[1480.59,-1203.34,44.6167,219.355,-83.0186],[1468.1,-1102.39,44.15,216.493,-82.8708],[1455.51,-1002.8,43.6833,213.587,-82.7178],[1442.38,-901.123,43.2,210.534,-82.5536],[1429.14,-800.958,42.7167,207.434,-82.3833],[1415.81,-702.327,42.2333,204.289,-82.2064],[1401.9,-601.937,41.7333,200.988,-82.0162],[1387.89,-503.24,41.2333,197.639,-81.8179],[1373.31,-403.058,40.7167,194.127,-81.6043],[1358.13,-301.6,40.1833,190.448,-81.3736],[1342.84,-202.159,39.65,186.716,-81.132],[1326.95,-101.753,39.1,182.812,-80.8703],[1310.45,-0.61657,38.5333,178.73,-80.5866],[1293.83,98.1381,37.9667,174.59,-80.2871],[1276.58,197.272,37.3833,170.269,-79.9611],[1258.21,299.242,36.7667,165.635,-79.595],[1239.69,398.26,36.15,160.936,-79.2047],[1220.02,499.388,35.5,155.916,-78.7642],[1199.69,599.597,34.8333,150.696,-78.278],[1178.69,698.566,34.15,145.275,-77.7389],[1156.5,798.226,33.4333,139.516,-77.1236],[1133.09,897.919,32.6833,133.414,-76.4169],[1107.93,998.989,31.8833,126.828,-75.5812],[1081.51,1098.4,31.05,119.891,-74.6048],[1052.75,1198.93,30.15,112.325,-73.4047],[1021.61,1298.88,29.1833,104.133,-71.9089],[986.983,1399.39,28.1167,95.047,-69.9425],[947.704,1499.99,26.9167,84.8246,-67.2042],[902.049,1599.32,25.5333,73.1624,-63.0675],[843.239,1699.87,23.7667,58.8283,-55.3687],[745.738,1799.9,20.8667,39.4397,-31.0482],[675.707,1821.24,18.8,33.9797,-0.223872]]], + [80,1832.91,[[1434.77,-2001.05,48.2167,239.553,-84.5188],[1425.2,-1902.15,47.8,237.281,-84.4242],[1415.18,-1800.32,47.3667,234.882,-84.3231],[1405.46,-1703.41,46.95,232.541,-84.2231],[1395.28,-1603.67,46.5167,230.07,-84.1162],[1384.63,-1501.25,46.0667,227.466,-84.0018],[1373.89,-1400.03,45.6167,224.821,-83.8838],[1363.07,-1300.03,45.1667,222.137,-83.7621],[1352.17,-1201.25,44.7167,219.413,-83.6364],[1340.78,-1100.14,44.25,216.545,-83.5016],[1329.3,-1000.4,43.7833,213.635,-83.3622],[1317.74,-902.046,43.3167,210.681,-83.2177],[1305.67,-801.662,42.8333,207.577,-83.0627],[1293.5,-702.812,42.35,204.427,-82.9016],[1280.82,-602.191,41.85,201.12,-82.7283],[1268.05,-503.261,41.35,197.764,-82.5478],[1254.75,-402.838,40.8333,194.245,-82.3531],[1240.91,-301.127,40.3,190.559,-82.1431],[1226.97,-201.43,39.7667,186.818,-81.923],[1212.47,-100.759,39.2167,182.904,-81.6846],[1197.87,-2.29549,38.6667,178.932,-81.4339],[1182.27,99.6867,38.0833,174.659,-81.1533],[1166.54,199.11,37.5,170.324,-80.8562],[1150.24,298.662,36.9,165.802,-80.5318],[1133.35,398.072,36.2833,161.088,-80.1766],[1115.42,499.616,35.6333,156.049,-79.7757],[1097.35,597.784,34.9833,150.941,-79.3446],[1077.74,699.671,34.2833,145.364,-78.8423],[1057.5,799.803,33.5667,139.577,-78.2818],[1036.16,899.993,32.8167,133.443,-77.6379],[1013.7,999.538,32.0333,126.956,-76.8928],[989.611,1099.63,31.2,119.973,-76.0042],[963.881,1199.1,30.3167,112.491,-74.9329],[935.502,1300,29.35,104.226,-73.5727],[904.925,1398.54,28.3167,95.3291,-71.8432],[869.629,1499.38,27.1333,85.1094,-69.3982],[828.53,1599.64,25.7667,73.3668,-65.6978],[776.975,1699.74,24.0667,59.1401,-59.0078],[696.88,1799.61,21.45,39.8928,-39.5728],[616.651,1832.91,18.85,30.957,-0.00989196]]], + [81,1843.52,[[1296.88,-2002.4,48.3167,239.681,-85.0562],[1288.24,-1903.36,47.9,237.407,-84.9709],[1279.19,-1801.39,47.4667,235.006,-84.8797],[1270.07,-1700.47,47.0333,232.569,-84.7859],[1260.87,-1600.63,46.6,230.095,-84.6894],[1251.61,-1501.87,46.1667,227.583,-84.59],[1241.92,-1400.49,45.7167,224.936,-84.4836],[1232.15,-1300.33,45.2667,222.249,-84.3738],[1222.31,-1201.39,44.8167,219.521,-84.2604],[1212.03,-1100.12,44.35,216.65,-84.1389],[1201.67,-1000.2,43.8833,213.735,-84.0132],[1191.23,-901.676,43.4167,210.778,-83.8829],[1180.33,-801.112,42.9333,207.669,-83.743],[1169.35,-702.08,42.45,204.513,-83.5977],[1157.91,-601.27,41.95,201.2,-83.4414],[1146.37,-502.149,41.45,197.838,-83.2786],[1134.37,-401.526,40.9333,194.312,-83.103],[1122.27,-302.762,40.4167,190.734,-82.9196],[1109.68,-202.792,39.8833,186.986,-82.7213],[1096.6,-101.836,39.3333,183.064,-82.5065],[1083.02,-0.127699,38.7667,178.963,-82.2736],[1069.34,99.2046,38.2,174.801,-82.0278],[1055.14,198.938,37.6167,170.455,-81.76],[1040.43,298.814,37.0167,165.92,-81.4677],[1025.19,398.559,36.4,161.192,-81.1476],[1009.42,497.888,35.7667,156.267,-80.7957],[992.695,598.986,35.1,151.009,-80.3975],[975.416,698.874,34.4167,145.544,-79.9557],[957.155,799.509,33.7,139.734,-79.451],[938.325,898.042,32.9667,133.709,-78.8847],[918.055,998.258,32.1833,127.19,-78.215],[896.324,1099.07,31.35,120.167,-77.416],[873.108,1199.31,30.4667,112.635,-76.4521],[847.944,1299.38,29.5167,104.449,-75.2501],[820.357,1399,28.4833,95.4661,-73.6954],[788.963,1499.73,27.3167,85.2678,-71.528],[752.795,1599.37,25.9833,73.621,-68.2893],[707.667,1699.46,24.3333,59.4456,-62.4867],[640.059,1799.93,21.8833,40.1703,-46.3757],[557.523,1843.52,18.9167,27.9166,-0.200276]]], + [82,1853.06,[[1157.23,-2002.1,48.4,239.761,-85.5952],[1149.53,-1902.95,47.9833,237.485,-85.5192],[1141.46,-1800.86,47.55,235.082,-85.4379],[1133.64,-1703.69,47.1333,232.737,-85.3576],[1125.44,-1603.68,46.7,230.261,-85.2717],[1116.87,-1500.99,46.25,227.651,-85.1798],[1108.55,-1403.22,45.8167,225.1,-85.0885],[1099.85,-1302.89,45.3667,222.411,-84.9908],[1090.75,-1200.13,44.9,219.579,-84.8861],[1081.91,-1102.32,44.45,216.807,-84.7818],[1072.67,-1002.22,43.9833,213.89,-84.6699],[1063.03,-900.008,43.5,210.823,-84.5498],[1053.66,-802.75,43.0333,207.817,-84.4294],[1043.53,-700.127,42.5333,204.548,-84.2956],[1033.67,-602.506,42.05,201.341,-84.161],[1023.39,-503.177,41.55,197.974,-84.0161],[1012.69,-402.338,41.0333,194.442,-83.8598],[1001.55,-300.194,40.5,190.742,-83.6911],[990.332,-200.06,39.9667,186.986,-83.5143],[979.027,-101.965,39.4333,183.174,-83.3288],[966.922,-0.0100608,38.8667,179.064,-83.1214],[954.725,99.5713,38.3,174.893,-82.9025],[942.072,199.564,37.7167,170.537,-82.6641],[928.958,299.708,37.1167,165.99,-82.4038],[915.377,399.731,36.5,161.248,-82.1187],[901.321,499.348,35.8667,156.308,-81.8053],[886.785,598.261,35.2167,151.165,-81.4596],[871.387,698.559,34.5333,145.682,-81.0667],[855.112,799.626,33.8167,139.851,-80.6178],[838.331,898.608,33.0833,133.801,-80.1138],[820.267,999.306,32.3,127.251,-79.5176],[801.288,1098.67,31.4833,120.332,-78.8212],[780.601,1199.59,30.6,112.756,-77.9644],[758.572,1298.7,29.6667,104.657,-76.9154],[733.993,1399.29,28.6333,95.5987,-75.5349],[706.422,1499.75,27.4833,85.4391,-73.638],[674.605,1599.71,26.1667,73.7725,-70.8007],[635.627,1699.19,24.5667,59.7199,-65.8244],[578.704,1799.79,22.25,40.5247,-52.4954],[497.362,1853.06,18.9667,24.861,-0.191053]]], + [83,1861.51,[[1015.99,-2000.15,48.4667,239.793,-86.136],[1009.23,-1900.92,48.05,237.515,-86.0694],[1002.43,-1802.66,47.6333,235.203,-86.0009],[995.292,-1701.49,47.2,232.761,-85.9277],[988.103,-1601.4,46.7667,230.283,-85.8522],[980.859,-1502.4,46.3333,227.767,-85.7746],[973.279,-1400.76,45.8833,225.115,-85.6916],[965.64,-1300.33,45.4333,222.422,-85.6058],[957.944,-1201.13,44.9833,219.689,-85.5173],[950.189,-1103.18,44.5333,216.914,-85.4258],[942.087,-1002.93,44.0667,213.994,-85.3277],[933.63,-900.565,43.5833,210.924,-85.2224],[925.402,-803.156,43.1167,207.915,-85.1171],[916.52,-700.371,42.6167,204.642,-84.9997],[907.868,-602.59,42.1333,201.43,-84.8817],[898.85,-503.096,41.6333,198.058,-84.7547],[889.46,-402.084,41.1167,194.522,-84.6177],[879.998,-302.926,40.6,190.932,-84.4745],[870.156,-202.546,40.0667,187.171,-84.3198],[859.929,-101.164,39.5167,183.234,-84.1522],[849.623,-1.98208,38.9667,179.238,-83.9759],[838.924,97.8686,38.4,175.06,-83.7843],[827.826,198.141,37.8167,170.695,-83.5756],[816.324,298.576,37.2167,166.139,-83.3476],[804.41,398.901,36.6,161.387,-83.0979],[792.082,498.832,35.9667,156.435,-82.8235],[779.331,598.07,35.3167,151.278,-82.5208],[765.824,698.712,34.6333,145.779,-82.1766],[751.882,797.834,33.9333,140.064,-81.7929],[736.829,899.502,33.1833,133.855,-81.3417],[721.322,998.508,32.4167,127.418,-80.8308],[704.677,1098.42,31.6,120.469,-80.2214],[686.533,1199.93,30.7167,112.852,-79.4715],[667.213,1299.67,29.7833,104.704,-78.5527],[646.005,1399.41,28.7667,95.7258,-77.3637],[622.179,1499.46,27.6333,85.6215,-75.7301],[594.633,1599.57,26.3333,73.9607,-73.2856],[560.815,1699.99,24.75,59.7948,-68.9857],[513.433,1799.71,22.55,40.8229,-58.0174],[436.705,1861.5,19.0167,21.7909,-0.330502]]], + [84,1868.86,[[873.597,-2000.56,48.5333,239.868,-86.6815],[867.791,-1901.24,48.1167,237.589,-86.6242],[861.94,-1802.88,47.7,235.275,-86.5654],[855.81,-1701.62,47.2667,232.832,-86.5025],[849.632,-1601.43,46.8333,230.352,-86.4377],[843.408,-1502.33,46.4,227.834,-86.3711],[836.894,-1400.59,45.95,225.18,-86.2997],[830.331,-1300.05,45.5,222.484,-86.2261],[823.717,-1200.75,45.05,219.748,-86.1501],[817.054,-1102.69,44.6,216.971,-86.0716],[810.091,-1002.33,44.1333,214.048,-85.9873],[803.076,-903.355,43.6667,211.081,-85.9],[795.754,-802.324,43.1833,207.962,-85.8063],[788.377,-702.819,42.7,204.795,-85.709],[780.687,-601.515,42.2,201.469,-85.6042],[772.937,-501.895,41.7,198.092,-85.4952],[764.869,-400.752,41.1833,194.55,-85.3775],[756.738,-301.463,40.6667,190.955,-85.2545],[748.281,-200.946,40.1333,187.188,-85.1215],[739.76,-102.466,39.6,183.364,-84.9819],[730.636,-0.0964174,39.0333,179.241,-84.826],[721.442,99.9032,38.4667,175.054,-84.6613],[712.179,197.497,37.9,170.806,-84.4872],[702.297,298.168,37.3,166.241,-84.2916],[692.062,398.739,36.6833,161.48,-84.0774],[681.47,498.925,36.05,156.516,-83.8419],[670.516,598.426,35.4,151.347,-83.582],[658.911,699.348,34.7167,145.833,-83.2866],[646.933,798.759,34.0167,140.102,-82.9572],[634.288,898.525,33.2833,134.011,-82.5787],[620.968,997.962,32.5167,127.553,-82.1408],[606.67,1098.33,31.7,120.576,-81.6184],[591.379,1198.49,30.8333,113.071,-80.9882],[574.785,1298.91,29.9,104.88,-80.2019],[556.569,1399.39,28.8833,95.8465,-79.1836],[536.407,1498.89,27.7667,85.813,-77.8062],[513.054,1598.96,26.4833,74.1822,-75.7446],[484.626,1699.17,24.9333,60.0975,-72.16],[445.178,1799.54,22.8,41.1046,-63.1545],[375.261,1868.86,19.05,18.7072,-0.191539]]], + [85,1875.1,[[730.118,-2003.35,48.6,239.987,-87.2307],[725.269,-1903.93,48.1833,237.707,-87.1829],[720.187,-1801.55,47.75,235.3,-87.1319],[715.066,-1700.23,47.3167,232.855,-87.0793],[710.105,-1603.81,46.9,230.469,-87.0273],[704.707,-1500.8,46.45,227.852,-86.9696],[699.468,-1402.74,46.0167,225.295,-86.9122],[693.987,-1302.09,45.5667,222.598,-86.8508],[688.464,-1202.66,45.1167,219.861,-86.7874],[682.693,-1100.87,44.65,216.979,-86.7194],[676.877,-1000.44,44.1833,214.053,-86.649],[671.016,-901.388,43.7167,211.082,-86.5762],[664.901,-800.277,43.2333,207.959,-86.4979],[658.738,-700.692,42.75,204.788,-86.4165],[652.529,-602.657,42.2667,201.569,-86.332],[646.058,-502.896,41.7667,198.19,-86.2409],[639.319,-401.606,41.25,194.645,-86.1427],[632.529,-302.169,40.7333,191.046,-86.0402],[625.467,-201.497,40.2,187.274,-85.9293],[618.351,-102.86,39.6667,183.446,-85.8129],[610.732,-0.32286,39.1,179.317,-85.6826],[603.054,99.8461,38.5333,175.124,-85.5453],[595.318,197.611,37.9667,170.87,-85.4],[587.065,298.465,37.3667,166.297,-85.2368],[578.518,399.226,36.75,161.527,-85.058],[569.672,499.607,36.1167,156.554,-84.8614],[560.523,599.312,35.4667,151.373,-84.6445],[551.07,698.028,34.8,145.982,-84.404],[541.068,797.758,34.1,140.238,-84.1295],[530.51,897.861,33.3667,134.132,-83.8141],[519.144,999.768,32.5833,127.513,-83.4407],[507.448,1098.41,31.7833,120.655,-83.0135],[494.68,1198.97,30.9167,113.121,-82.4879],[480.824,1299.84,29.9833,104.894,-81.8317],[465.864,1399.23,28.9833,95.9606,-80.9966],[449.03,1499.44,27.8667,85.8612,-79.8485],[429.787,1599.13,26.6,74.282,-78.1531],[406.31,1699.62,25.0667,60.1711,-75.2011],[374.414,1799.52,23,41.3098,-67.9748],[313.464,1875.1,19.0833,15.6111,-0.213053]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 610.732; +_maxRange = 3507.6; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg0.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg0.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg1.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg1.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg2.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg2.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg3.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg3.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg4.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/60mm/tables/ace_arty_60mm_genericBtab_LA_chg4.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/81mm/CfgAmmo.hpp new file mode 100644 index 0000000000..0c040219ed --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/CfgAmmo.hpp @@ -0,0 +1,96 @@ +class ace_arty_howitzer_81mm_base : ace_arty_howitzer_base { + whistleDist = 1500; +}; + +class ace_arty_81mm_m821a2_m734_pd: ace_arty_howitzer_81mm_base { + hit = 160; + indirectHit = 30; + indirectHitRange = 15; // ~34m lethal diameter + typicalSpeed = 800; + timeToLive = 500; + explosive = 1; + cost = 200; + //model = "\x\ace\addons\sys_arty_ammunition\81mm\ace_arty_m821a2_shell.p3d"; + model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + airFriction = -0.0000758; + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; + muzzleEffect = "BIS_Effects_HeavyCaliber"; + caliber = 6; +}; + +class ace_arty_81mm_m821a2_m734_prox: ace_arty_81mm_m821a2_m734_pd { + CraterEffects = ""; + ExplosionEffects = ""; + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_prox.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_81mm_m821a2_explosion"; +}; +class ace_arty_81mm_m821a2_m734_nsb: ace_arty_81mm_m821a2_m734_prox { + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_nsb.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_81mm_m821a2_explosion"; +}; + +class ace_arty_81mm_m821a2_m734_delay: ace_arty_81mm_m821a2_m734_prox { + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m734\fuze_delay.sqf"; + soundHit[] = {"",0,1,0}; + ACE_FRAG_SKIP = 1; +}; +class ace_arty_81mm_m821a2_explosion : ace_arty_howitzer_81mm_base { + hit = 160; + indirectHit = 30; + indirectHitRange = 15; // Lethal bursting area ~17m radius (Arma=radius) + + explosionTime = 0.0001; + //model = "\x\ace\addons\sys_arty_ammunition\60mm\ace_arty_m821a2_shell.p3d"; // Add model or : No shape for ammo type ace_arty_105mm_m1_explosion + model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; +}; + +class ace_arty_81mm_m821a2_delay_action: ace_arty_81mm_m821a2_m734_pd { + explosionTime = 0.05; + deflecting=65; +}; +class ace_arty_81mm_m853a1_m772_time: ace_arty_howitzer_81mm_base { + hit = 5; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + //model = "\x\ace\addons\sys_arty_ammunition\81mm\ace_arty_m853a1_shell.p3d"; + model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "GrenadeExplosion"; + caliber = 6; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 500; + ACE_ARTY_BASEEJECT_COMPENSATE = 0; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.25; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\m772\fuze_time.sqf"; + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\81mm\eject_illum.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; +class ace_arty_81mm_m375a3_m524_pd : ace_arty_howitzer_81mm_base { + hit = 110; + indirecthit = 25; + indirecthitrange = 7; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + //model = "\x\ace\addons\sys_arty_ammunition\81mm\ace_arty_m375a3_shell.p3d"; + model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "ace_arty_WPExplosion"; + caliber = 6; +}; + +class ace_arty_81mm_m853a1_m772_flare :FlareBase { + model="\ca\Weapons\granat"; + lightColor[] = {0.8, 0.8, 0.8, 0}; + deflecting=65; +}; diff --git a/TO_MERGE/ace/arty_ammunition/81mm/CfgMagazines.hpp b/TO_MERGE/ace/arty_ammunition/81mm/CfgMagazines.hpp new file mode 100644 index 0000000000..cae7107596 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/CfgMagazines.hpp @@ -0,0 +1,135 @@ +class ace_arty_81mm_default : ace_arty_howitzer_default { + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\81mm\tables\ace_arty_81mm_genericBtab_%1_chg%2.sqf"; // 1 = angle (LA/HA) 2 = chg# + ACE_ARTY_BTABS_KEY = "ace_arty_81mm_genericBtab_%1_chg%2"; + scope = 2; + ACE_Weight = 4.5; +}; + +class ace_arty_81mm_m821a2: ace_arty_81mm_default { + scope = 1; + type = 0; + displayName = "81mm M821A2 HE"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_81mm_m821a2_m734_%1_chg%2"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\81mm\data\images\m821a2_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\81mm\data\images\m821a2.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m821a2_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd", "prox", "nsb","delay"}; + ACE_ARTY_FUZE_DESC[] = {"Impact Burst", "Proximity Burst", "Near-Surface Burst", "Delay"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_81mm_m821a2_m734_pd", "ace_arty_81mm_m821a2_m734_prox", "ace_arty_81mm_m821a2_m734_nsb" ,"ace_arty_81mm_m821a2_m734_delay"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "HE"; + ACE_Weight = 4.5; +}; +//IMP +class ace_arty_81mm_m821a2_m734_pd_chg0: ace_arty_howitzer_mag { + displayName = "81mm M821A2 IMP 0"; + ammo = "ace_arty_81mm_m821a2_m734_pd"; + initSpeed = 65.532; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_81mm_m821a2"; + ACE_Weight = 4.5; +}; +class ace_arty_81mm_m821a2_m734_pd_chg1: ace_arty_81mm_m821a2_m734_pd_chg0 { initSpeed = 133.5; displayName = "81mm M821A2 IMP +1"; }; +class ace_arty_81mm_m821a2_m734_pd_chg2: ace_arty_81mm_m821a2_m734_pd_chg0 { initSpeed = 185.3184; displayName = "81mm M821A2 IMP +2"; }; +class ace_arty_81mm_m821a2_m734_pd_chg3: ace_arty_81mm_m821a2_m734_pd_chg0 { initSpeed = 228.6; displayName = "81mm M821A2 IMP +3"; }; +class ace_arty_81mm_m821a2_m734_pd_chg4: ace_arty_81mm_m821a2_m734_pd_chg0 { initSpeed = 267.9192; displayName = "81mm M821A2 IMP +4"; }; +//PRX +class ace_arty_81mm_m821a2_m734_prox_chg0 : ace_arty_howitzer_mag { + displayName = "81mm M821A2 PRX 0"; + ammo = "ace_arty_81mm_m821a2_m734_prox"; + initSpeed = 65.532; + ACE_Weight = 4.5; +}; +class ace_arty_81mm_m821a2_m734_prox_chg1 : ace_arty_81mm_m821a2_m734_prox_chg0 { initSpeed = 133.5; displayName = "81mm M821A2 PRX +1"; }; +class ace_arty_81mm_m821a2_m734_prox_chg2 : ace_arty_81mm_m821a2_m734_prox_chg0 { initSpeed = 185.3184; displayName = "81mm M821A2 PRX +2"; }; +class ace_arty_81mm_m821a2_m734_prox_chg3 : ace_arty_81mm_m821a2_m734_prox_chg0 { initSpeed = 228.6; displayName = "81mm M821A2 PRX +3"; }; +class ace_arty_81mm_m821a2_m734_prox_chg4 : ace_arty_81mm_m821a2_m734_prox_chg0 { initSpeed = 267.9192; displayName = "81mm M821A2 PRX +4"; }; +//DLY +class ace_arty_81mm_m821a2_m734_delay_chg0 : ace_arty_howitzer_mag { + displayName = "81mm M821A2 DLY 0"; + ammo = "ace_arty_81mm_m821a2_m734_delay"; + initSpeed = 65.532; + ACE_Weight = 4.5; +}; +class ace_arty_81mm_m821a2_m734_delay_chg1 : ace_arty_81mm_m821a2_m734_delay_chg0 { initSpeed = 133.5; displayName = "81mm M821A2 DLY +1"; }; +class ace_arty_81mm_m821a2_m734_delay_chg2 : ace_arty_81mm_m821a2_m734_delay_chg0 { initSpeed = 185.3184; displayName = "81mm M821A2 DLY +2"; }; +class ace_arty_81mm_m821a2_m734_delay_chg3 : ace_arty_81mm_m821a2_m734_delay_chg0 { initSpeed = 228.6; displayName = "81mm M821A2 DLY +3"; }; +class ace_arty_81mm_m821a2_m734_delay_chg4 : ace_arty_81mm_m821a2_m734_delay_chg0 { initSpeed = 267.9192; displayName = "81mm M821A2 DLY +4"; }; +//NSB +class ace_arty_81mm_m821a2_m734_nsb_chg0 : ace_arty_howitzer_mag { + displayName = "81mm M821A2 NSB 0"; + ammo = "ace_arty_81mm_m821a2_m734_prox"; + initSpeed = 65.532; + ACE_Weight = 4.5; +}; +class ace_arty_81mm_m821a2_m734_nsb_chg1 : ace_arty_81mm_m821a2_m734_nsb_chg0 { initSpeed = 133.5; displayName = "81mm M821A2 NSB +1"; }; +class ace_arty_81mm_m821a2_m734_nsb_chg2 : ace_arty_81mm_m821a2_m734_nsb_chg0 { initSpeed = 185.3184; displayName = "81mm M821A2 NSB +2"; }; +class ace_arty_81mm_m821a2_m734_nsb_chg3 : ace_arty_81mm_m821a2_m734_nsb_chg0 { initSpeed = 228.6; displayName = "81mm M821A2 NSB +3"; }; +class ace_arty_81mm_m821a2_m734_nsb_chg4 : ace_arty_81mm_m821a2_m734_nsb_chg0 { initSpeed = 267.9192; displayName = "81mm M821A2 NSB +4"; }; + + +// ILLUM +class ace_arty_81mm_m853a1: ace_arty_81mm_default { + scope = 1; + type = 0; + displayName = "81mm M853A1 Illumination"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_81mm_m853a1_m772_%1_chg%2"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\81mm\data\images\m821a2_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\81mm\data\images\m821a2.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m853a1_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_81mm_m853a1_m772_time"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "ILLUM"; + ACE_Weight = 4.1; +}; + +class ace_arty_81mm_m853a1_m772_time_chg0 : ace_arty_howitzer_mag { + displayName = "81mm M853A1 M772 TIME Chg. 0"; + ammo = "ace_arty_81mm_m853a1_m772_time"; + initSpeed = 65.532; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_81mm_m853a1"; + ACE_Weight = 4.1; +}; +class ace_arty_81mm_m853a1_m772_time_chg1 : ace_arty_81mm_m853a1_m772_time_chg0 { initSpeed = 133.5; displayName = "81mm M853A1 M772 TIME Chg. 1"; }; +class ace_arty_81mm_m853a1_m772_time_chg2 : ace_arty_81mm_m853a1_m772_time_chg0 { initSpeed = 185.3184; displayName = "81mm M853A1 M772 TIME Chg. 2"; }; +class ace_arty_81mm_m853a1_m772_time_chg3 : ace_arty_81mm_m853a1_m772_time_chg0 { initSpeed = 228.6; displayName = "81mm M853A1 M772 TIME Chg. 3"; }; +class ace_arty_81mm_m853a1_m772_time_chg4 : ace_arty_81mm_m853a1_m772_time_chg0 { initSpeed = 267.9192; displayName = "81mm M853A1 M772 TIME Chg. 4"; }; + +// WP +class ace_arty_81mm_m375a3 : ace_arty_81mm_default { + scope = 1; + type = 0; + displayName = "81mm M375A3 WP"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_81mm_m375a3_m524_%1_chg%2"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\81mm\data\images\m821a2_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\81mm\data\images\m821a2.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_m375a3_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd"}; + ACE_ARTY_FUZE_DESC[] = {"Point Detonate"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_81mm_m375a3_m524_pd"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 4; + ACE_ARTY_INEFFECT = "WP"; + ACE_Weight = 4.24; +}; + +class ace_arty_81mm_m375a3_m524_pd_chg0 : ace_arty_howitzer_mag { + displayName = "81mm M375A3 M524 PD Chg. 0"; + ammo = "ace_arty_81mm_m375a3_m524_pd"; + initSpeed = 65.532; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_81mm_m375a3"; + ACE_Weight = 4.24; +}; +class ace_arty_81mm_m375a3_m524_pd_chg1 : ace_arty_81mm_m375a3_m524_pd_chg0 { initSpeed = 133.5; displayName = "81mm M375A3 M524 PD Chg. 1"; }; +class ace_arty_81mm_m375a3_m524_pd_chg2 : ace_arty_81mm_m375a3_m524_pd_chg0 { initSpeed = 185.3184; displayName = "81mm M375A3 M524 PD Chg. 2"; }; +class ace_arty_81mm_m375a3_m524_pd_chg3 : ace_arty_81mm_m375a3_m524_pd_chg0 { initSpeed = 228.6; displayName = "81mm M375A3 M524 PD Chg. 3"; }; +class ace_arty_81mm_m375a3_m524_pd_chg4 : ace_arty_81mm_m375a3_m524_pd_chg0 { initSpeed = 254; displayName = "81mm M375A3 M524 PD Chg. 4"; }; diff --git a/TO_MERGE/ace/arty_ammunition/81mm/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/81mm/CfgVehicles.hpp new file mode 100644 index 0000000000..c676f43504 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/CfgVehicles.hpp @@ -0,0 +1,77 @@ +/* +"81mm M821A2 HE"; 4.5kg; M734A1 multioption ; MC: 0 - MC: 4; Range: 5790 +"81mm M853A1 ILLUM"; 4.1kg; M772 MTSQ fuze ; MinCharge: 1 - MaxCharge: 4; Range 4900 +"81mm M375A3 WP"; 4.24kg; M524-series PD fuze; 4 Inc (215,438,608,750,879); Range: 4595 +"81mm M819 RP"; M772 PD MTSQ fuze; MC: 0 - MC: 4; Range 4950 + +multioption type (PRX/NSB/IMP/DLY) +PRX PROXIMITY BURST +NSB NEAR SURFACE BURST +IMP IMPACT BURST +DLY DELAY BURST (1/2 sec) + +*/ + +class ace_arty_m821a2_cartridge: ACE_Arty_ShellHolder { // HE + scope = 1; + icon = "iconThing"; + mapSize = 0; // iconsize on map... small object such as a tree is 0.7 + displayName = "M821A2 HE Cartridge"; + vehicleClass = "Objects"; + nameSound = "obj_object"; + picture = "pictureThing"; + class Library {libTextDesc = "";}; + descriptionShort = ""; + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + type = 1; + model = "\x\ace\addons\sys_arty_ammunition\81mm\ace_arty_m821a2_cartridge.p3d"; + animated = 0; + reversed = 0; + class EventHandlers { + killed = "_this call ace_sys_arty_ammunition_fnc_onShellDestroyed"; + }; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_81mm_m821a2"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_81mm_m821a2_m734_pd_chg0",{0},"fnord",0,"pd"}; + ACE_Weight = 4.5; + class AnimationSources { + class hide_inc1 { + source = "user"; + initPhase = 1; + animPeriod = 0.1; + }; + class hide_inc2: hide_inc1 {}; + class hide_inc3: hide_inc1 {}; + class hide_inc4: hide_inc1 {}; + class hide_inc5: hide_inc1 {}; + class hide_inc6: hide_inc1 {}; + class hide_inc7: hide_inc1 {}; + class hide_inc8: hide_inc1 {}; + class hide_inc9: hide_inc1 {}; + class hide_inc10: hide_inc1 {}; + }; +}; + +class ace_arty_m853a1_cartridge : ace_arty_m821a2_cartridge { // ILLUM + displayName = "M853A1 Illum Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\81mm\ace_arty_m853a1_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_81mm_m853a1"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_81mm_m853a1_m772_time_chg1",{10},"fnord",1,"time"}; + ACE_Weight = 4.1; +}; + +class ace_arty_m375a3_cartridge : ace_arty_m821a2_cartridge { // SMOKE (WP) + displayName = "M375A3 WP Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\81mm\ace_arty_m375a3_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_81mm_m375a3"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_81mm_m375a3_m524_pd_chg0",{0},"fnord",0,"pd"}; + ACE_Weight = 4.24; +}; + +class ace_arty_81mm_m853a1_m772_parachute : ACE_HuntIR { + class EventHandlers { + EXTENDED_EVENTHANDLERS + }; + SLX_XEH_DISABLED = 0; +}; diff --git a/TO_MERGE/ace/arty_ammunition/81mm/XEH_illum_init.sqf b/TO_MERGE/ace/arty_ammunition/81mm/XEH_illum_init.sqf new file mode 100644 index 0000000000..554891c526 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/XEH_illum_init.sqf @@ -0,0 +1,71 @@ +//XEH_illum_init.sqf +#define MAX_ILL 1.5 + +private["_flareChute", "_pos", "_light", "_sm", "_sp"]; + +_flareChute = _this select 0; +_pos = getPos (_flareChute); + +_light = "#lightpoint" createVehicleLocal _pos; +_light setPos _pos; +_light setLightBrightness MAX_ILL; +_light setLightAmbient[238/255, 233/255, 183/255]; +_light setLightColor[241/255, 226/255, 62/255]; +_light lightAttachObject [_flareChute, [0,0,-0.8]]; + +_sm = "#particlesource" createVehicleLocal getPos (_flareChute); +_sm setParticleRandom [0.5, [0, 0, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0, 360]; +_sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 30, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.3,4], + [[0.9,0.9,0.9,0.6], [1,1,1,0.3], [1,1,1,0]],[1],0.1,0.1,"","",_light]; +_sm setDropInterval 0.02; + +_sp = "#particlesource" createVehicleLocal getPos (_flareChute); +_sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +_sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +_sp setDropInterval 0.001; + +// _sp2 = "#particlesource" createVehicleLocal getPos (_flareChute); +// _sp2 setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +// _sp2 setParticleParams ["\ca\Data\Flare12", + // "", "Billboard", 1, 0.1, [0, 0, 0], + // [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + // [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +// _sp2 setDropInterval 0.001; + + +//_flareChute setVectorDir _chuteVel; + +[_flareChute, _light, _sp, _sm] spawn { + private["_shell", "_light", "_sp", "_sm", "_start", "_b", "_s"]; + _shell = _this select 0; + _light = _this select 1; + _sp = _this select 2; + _sm = _this select 3; + + + _start = time; + _b = MAX_ILL; + _s = 0; + waitUntil { + if((_start + 50) < time) then { + _b = (_b - random (0.1)) max 0; + _light setLightBrightness _b; + }; + if((_start + 60) < time) then { + deleteVehicle _light; + deleteVehicle _sp; +// deleteVehicle _sp2; + deleteVehicle _sm; + }; + sleep 0.1; + (!alive _shell && (_start + 60) < time); + }; + deleteVehicle _light; + deleteVehicle _sp; + deleteVehicle _sm; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m375a3_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m375a3_cartridge.p3d new file mode 100644 index 0000000000..0d8bcd2e30 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m375a3_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m375a3_shell.p3d b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m375a3_shell.p3d new file mode 100644 index 0000000000..e749814721 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m375a3_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m821a2_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m821a2_cartridge.p3d new file mode 100644 index 0000000000..b9ec85d51c Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m821a2_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m821a2_shell.p3d b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m821a2_shell.p3d new file mode 100644 index 0000000000..17feaf2874 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m821a2_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m853a1_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m853a1_cartridge.p3d new file mode 100644 index 0000000000..8c3243353e Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m853a1_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m853a1_shell.p3d b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m853a1_shell.p3d new file mode 100644 index 0000000000..9a798aa9c5 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/ace_arty_m853a1_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm.rvmat b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm.rvmat new file mode 100644 index 0000000000..4ee96e4b55 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm.rvmat @@ -0,0 +1,91 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +//specular[]={1,1,1,1.000000}; +specular[] = {0.273158,0.3,0.27,1}; +//specularPower=40.000000; +specularPower = 100; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\81mm\data\ace_81mm_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={8.0000,0.000000,0.000000}; + up[]={0.000000,8.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\81mm\data\ace_81mm_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture="#(ai,16,2,2)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_co.paa b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_co.paa new file mode 100644 index 0000000000..2936ce2b35 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_nohq.paa b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_nohq.paa new file mode 100644 index 0000000000..659d44a260 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_smdi.paa b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_smdi.paa new file mode 100644 index 0000000000..995e47a986 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/81mm/data/ace_81mm_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/81mm/eject_illum.sqf b/TO_MERGE/ace/arty_ammunition/81mm/eject_illum.sqf new file mode 100644 index 0000000000..b94e621e95 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/eject_illum.sqf @@ -0,0 +1,15 @@ +//eject_illum.sqf +private["_shell", "_velocity", "_pos", "_flareChute", "_chuteVel"]; + +_shell = _this select 6; + +_velocity = velocity _shell; + +_pos = getPos _shell; + +_flareChute = "ace_arty_81mm_m853a1_m772_parachute" createVehicle _pos; +_flareChute setPos _pos; +_chuteVel = [_velocity,0.25] call ACE_fnc_vectorMultiply; +_flareChute setVelocity _chuteVel; + +false diff --git a/TO_MERGE/ace/arty_ammunition/81mm/model.cfg b/TO_MERGE/ace/arty_ammunition/81mm/model.cfg new file mode 100644 index 0000000000..85f1ad435e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/model.cfg @@ -0,0 +1,58 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + + class ace_mortar_shell: Default { + isDiscrete = 1; + skeletonInherit = "Default"; + skeletonBones[] = { + "inc1","", + "inc2","", + "inc3","", + "inc4","", + "inc5","", + "inc6","", + "inc7","", + "inc8","", + "inc9","", + "inc10","" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + skeletonName = ""; + }; + class ace_arty_m821a2_cartridge: Default { + skeletonName="ace_mortar_shell"; + sections[]= {}; + class animations { + #define HIDE_INC(x) class hide_inc##x { \ + type = "hide"; \ + source = "user"; \ + selection = inc##x; \ + minValue = 0; \ + maxValue = 1; \ + hideValue = 1; \ + }; + HIDE_INC(1); + HIDE_INC(2); + HIDE_INC(3); + HIDE_INC(4); + HIDE_INC(5); + HIDE_INC(6); + HIDE_INC(7); + HIDE_INC(8); + HIDE_INC(9); + HIDE_INC(10); + }; + }; + class ace_arty_m853a1_cartridge: ace_arty_m821a2_cartridge {}; + class ace_arty_m375a3_cartridge: ace_arty_m821a2_cartridge {}; +}; diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg0.sqf new file mode 100644 index 0000000000..dcd15d37f2 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg0.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_m821a2_m734_prox_chg0 +// Ammo: ace_arty_81mm_m821a2_m734_prox +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,107.69,[[1122.43,-2002.69,26.0167,191.378,-78.5564],[1101.47,-1900.57,25.4667,187.591,-78.2282],[1080.34,-1800.62,24.9167,183.75,-77.8837],[1059.05,-1702.89,24.3667,179.858,-77.5217],[1036.29,-1601.68,23.7833,175.674,-77.1169],[1012.7,-1500.25,23.1833,171.311,-76.6764],[988.924,-1401.58,22.5833,166.891,-76.2091],[963.63,-1300.45,21.95,162.165,-75.6839],[938.139,-1202.48,21.3167,157.38,-75.1226],[910.418,-1100.37,20.6333,152.153,-74.472],[882.478,-1002.05,19.95,146.865,-73.7694],[852.257,-900.821,19.2167,141.126,-72.95],[821.102,-801.94,18.4667,135.196,-72.0325],[787.606,-701.731,17.6667,128.813,-70.9516],[751.729,-601.304,16.8167,121.976,-69.6683],[712.721,-500.087,15.9,114.561,-68.0995],[671.247,-401.437,14.9333,106.72,-66.193],[624.383,-300.899,13.85,97.9541,-63.6733],[571.301,-200.801,12.6333,88.2183,-60.2198],[508.213,-100.541,11.2,77.0786,-54.9999],[426.754,-0.591001,9.36667,63.8831,-45.6654],[271.582,99.8721,5.91667,46.9174,-15.1771],[214.859,107.689,4.66667,45.4785,-0.0648368]]], + [46,111.432,[[1107.21,-2002.97,26.1167,191.416,-78.7612],[1086.61,-1900.76,25.5667,187.625,-78.4389],[1065.85,-1800.72,25.0167,183.781,-78.1006],[1044.93,-1702.89,24.4667,179.885,-77.745],[1022.57,-1601.58,23.8833,175.696,-77.3474],[999.393,-1500.04,23.2833,171.329,-76.9147],[976.032,-1401.26,22.6833,166.903,-76.4556],[951.18,-1300.02,22.05,162.17,-75.9396],[926.134,-1201.93,21.4167,157.378,-75.3881],[899.564,-1102.14,20.75,152.271,-74.7651],[871.445,-1001.25,20.05,146.845,-74.0584],[842.429,-902.134,19.3333,141.227,-73.2722],[811.141,-800.857,18.5667,135.154,-72.351],[778.23,-700.497,17.7667,128.755,-71.2882],[743.674,-601.82,16.9333,122.035,-70.0523],[705.354,-500.292,16.0167,114.598,-68.5124],[664.611,-401.312,15.05,106.731,-66.6403],[618.573,-300.4,13.9667,97.9282,-64.1646],[567.144,-201.164,12.7667,88.2741,-60.82],[505.175,-100.179,11.3333,77.0507,-55.6944],[425.892,-0.0656848,9.51667,63.816,-46.5984],[282.382,99.9266,6.26667,46.8746,-18.5527],[214.808,111.431,4.75,44.6711,-0.102593]]], + [47,115.17,[[1090.88,-2000.41,26.2,191.349,-78.9606],[1071.26,-1901.23,25.6667,187.67,-78.6536],[1050.88,-1801.08,25.1167,183.823,-78.3216],[1029.71,-1700.22,24.55,179.804,-77.9617],[1008.38,-1601.73,23.9833,175.729,-77.5824],[985.624,-1500.08,23.3833,171.357,-77.1576],[962.685,-1401.18,22.7833,166.926,-76.7069],[938.927,-1302.44,22.1667,162.313,-76.2142],[913.689,-1201.61,21.5167,157.388,-75.659],[887.6,-1101.69,20.85,152.273,-75.0473],[859.99,-1000.66,20.15,146.838,-74.3533],[831.499,-901.402,19.4333,141.209,-73.5812],[801.447,-802.124,18.6833,135.256,-72.697],[769.137,-701.487,17.8833,128.844,-71.6551],[734.53,-600.602,17.0333,121.973,-70.4176],[697.589,-500.67,16.1333,114.65,-68.933],[657.59,-401.347,15.1667,106.755,-67.0964],[612.392,-300.047,14.0833,97.9163,-64.6661],[561.9,-200.378,12.8833,88.2118,-61.3798],[502.483,-101.014,11.4833,77.1673,-56.4697],[425.379,-0.447451,9.68333,63.8833,-47.6486],[291.068,99.824,6.58333,46.8733,-21.5702],[214.557,115.168,4.83333,43.8509,-0.160282]]], + [48,118.898,[[1074.67,-2001.26,26.3,191.408,-79.1734],[1055.43,-1901.98,25.7667,187.725,-78.8723],[1035.42,-1801.73,25.2167,183.875,-78.5467],[1014.66,-1700.75,24.65,179.852,-78.1938],[993.725,-1602.15,24.0833,175.774,-77.8217],[971.391,-1500.38,23.4833,171.396,-77.4051],[948.883,-1401.36,22.8833,166.96,-76.9631],[925.57,-1302.49,22.2667,162.341,-76.4798],[900.805,-1201.53,21.6167,157.409,-75.9352],[875.204,-1101.47,20.95,152.287,-75.335],[848.111,-1000.29,20.25,146.843,-74.6542],[820.153,-900.882,19.5333,141.204,-73.8965],[790.664,-801.444,18.7833,135.238,-73.0287],[758.959,-700.636,17.9833,128.811,-72.0059],[725.669,-601.488,17.15,122.058,-70.816],[689.426,-501.229,16.25,114.715,-69.3614],[650.182,-401.55,15.2833,106.794,-67.5611],[606.521,-301.332,14.2167,98.0549,-65.2177],[556.989,-201.03,13.0167,88.2984,-62.0017],[498.699,-100.919,11.6167,77.173,-57.1901],[423.763,-0.182748,9.83333,63.8568,-48.6158],[297.715,99.7814,6.86667,46.8676,-24.2356],[213.386,118.897,4.9,43.0199,-0.0216365]]], + [49,122.612,[[1057.98,-2002.42,26.4,191.477,-79.3899],[1039.1,-1903.02,25.8667,187.792,-79.095],[1019.49,-1802.66,25.3167,183.938,-78.7759],[999.124,-1701.56,24.75,179.912,-78.43],[978.6,-1602.84,24.1833,175.83,-78.0654],[956.699,-1500.95,23.5833,171.448,-77.6572],[934.627,-1401.8,22.9833,167.006,-77.224],[911.146,-1300.17,22.35,162.256,-76.737],[887.482,-1201.69,21.7167,157.443,-76.2165],[862.378,-1101.49,21.05,152.313,-75.6282],[835.81,-1000.15,20.35,146.86,-74.9608],[808.394,-900.584,19.6333,141.211,-74.2179],[779.478,-800.977,18.8833,135.234,-73.367],[749.038,-702.036,18.1,128.928,-72.3859],[715.743,-600.649,17.25,122.023,-71.1965],[680.203,-500.182,16.35,114.658,-69.769],[641.72,-400.279,15.3833,106.71,-68.0014],[599.579,-301.302,14.3333,98.0732,-65.7382],[551.014,-200.534,13.1333,88.2669,-62.5845],[494.546,-100.966,11.75,77.1962,-57.9234],[421.771,-0.0556027,9.98333,63.8515,-49.6],[302.399,99.9862,7.11667,46.818,-26.5595],[212.742,122.611,4.98333,42.1743,-0.119306]]], + [50,126.308,[[1040.21,-2000.74,26.4833,191.443,-79.6014],[1021.71,-1901.29,25.95,187.754,-79.3122],[1002.49,-1800.88,25.4,183.895,-78.9993],[983.118,-1702.67,24.85,179.983,-78.6704],[962.413,-1600.95,24.2667,175.776,-78.3026],[941.546,-1501.79,23.6833,171.511,-77.9136],[919.918,-1402.51,23.0833,167.065,-77.4894],[896.909,-1300.73,22.45,162.309,-77.0126],[873.72,-1202.11,21.8167,157.49,-76.5028],[849.121,-1101.75,21.15,152.353,-75.9267],[823.087,-1000.26,20.45,146.891,-75.2729],[796.222,-900.516,19.7333,141.232,-74.5453],[767.886,-800.73,18.9833,135.243,-73.7116],[738.058,-701.6,18.2,128.923,-72.7503],[705.432,-600.008,17.35,122.001,-71.5846],[671.253,-501.121,16.4667,114.752,-70.2126],[633.549,-400.836,15.5,106.779,-68.4833],[592.26,-301.441,14.45,98.1072,-66.2681],[544.677,-200.191,13.25,88.2514,-63.1787],[489.351,-100.063,11.8667,77.1059,-58.6059],[419.4,-0.0741862,10.1333,63.8686,-50.6004],[306.567,99.8436,7.36667,46.8425,-28.9058],[211.202,126.307,5.05,41.3185,-0.0147897]]], + [51,129.981,[[1022.54,-2002.51,26.5833,191.535,-79.8254],[1004.43,-1902.94,26.05,187.843,-79.5425],[985.609,-1802.41,25.5,183.982,-79.2364],[966.065,-1701.12,24.9333,179.947,-78.9046],[946.368,-1602.22,24.3667,175.856,-78.5549],[925.35,-1500.12,23.7667,171.464,-78.1632],[904.168,-1400.78,23.1667,167.012,-77.7474],[882.228,-1301.57,22.55,162.374,-77.2928],[858.922,-1200.24,21.9,157.422,-76.7805],[835.435,-1102.28,21.25,152.405,-76.2303],[809.943,-1000.6,20.55,146.935,-75.5906],[783.637,-900.686,19.8333,141.266,-74.8785],[755.891,-800.712,19.0833,135.266,-74.0625],[726.683,-701.384,18.3,128.932,-73.1214],[695.365,-601.511,17.4667,122.13,-72.0037],[661.269,-500.46,16.5667,114.725,-70.6362],[624.989,-401.588,15.6167,106.863,-68.9731],[583.92,-300.256,14.55,98.0197,-66.7696],[537.978,-200.011,13.3667,88.2529,-63.7842],[484.466,-100.409,12,77.166,-59.3651],[416.648,-0.247988,10.2833,63.9093,-51.6162],[309.542,99.7467,7.6,46.8616,-31.0963],[210.158,129.979,5.13333,40.4487,-0.158599]]], + [52,133.626,[[1003.84,-2001.47,26.6667,191.523,-80.0444],[986.115,-1901.84,26.1333,187.828,-79.7676],[967.695,-1801.24,25.5833,183.963,-79.468],[949.132,-1702.84,25.0333,180.043,-79.153],[929.292,-1600.91,24.45,175.827,-78.8008],[909.296,-1501.55,23.8667,171.553,-78.4283],[888.571,-1402.05,23.2667,167.096,-78.022],[866.523,-1300.05,22.6333,162.327,-77.5652],[844.302,-1201.19,22,157.495,-77.0768],[820.73,-1100.59,21.3333,152.342,-76.5247],[796.379,-1001.21,20.65,146.994,-75.9136],[770.641,-901.104,19.9333,141.316,-75.2174],[743.493,-800.932,19.1833,135.304,-74.4195],[714.915,-701.395,18.4,128.957,-73.4991],[684.272,-601.298,17.5667,122.139,-72.4058],[650.912,-500.003,16.6667,114.713,-71.0677],[615.414,-400.871,15.7167,106.826,-69.4398],[575.86,-300.755,14.6667,98.087,-67.3183],[530.915,-200.001,13.4833,88.2722,-64.4004],[479.204,-100.922,12.1333,77.2465,-60.1357],[413.51,-0.586019,10.4333,63.9749,-52.6465],[311.362,99.7615,7.81667,46.8614,-33.1366],[208.244,133.625,5.2,39.5688,-0.094157]]], + [53,137.24,[[984.677,-2000.75,26.75,191.524,-80.2673],[967.345,-1901.06,26.2167,187.825,-79.9966],[949.333,-1800.38,25.6667,183.956,-79.7036],[931.181,-1701.91,25.1167,180.032,-79.3956],[912.337,-1602.79,24.55,175.933,-79.0612],[892.228,-1500.47,23.95,171.531,-78.6868],[871.963,-1400.89,23.35,167.069,-78.2894],[850.973,-1301.45,22.7333,162.42,-77.8547],[829.249,-1202.43,22.1,157.582,-77.3777],[806.204,-1101.65,21.4333,152.423,-76.8386],[782.398,-1002.08,20.75,147.066,-76.2418],[757.235,-901.777,20.0333,141.379,-75.5617],[730.694,-801.396,19.2833,135.357,-74.7824],[702.755,-701.64,18.5,128.997,-73.8832],[672.796,-601.307,17.6667,122.162,-72.8148],[640.787,-501.572,16.7833,114.855,-71.5328],[605.476,-400.352,15.8167,106.805,-69.9151],[567.423,-301.448,14.7833,98.172,-67.8755],[523.487,-200.167,13.6,88.31,-65.0269],[472.938,-100.483,12.25,77.2129,-60.8582],[409.353,-0.236437,10.5667,63.94,-53.6035],[312.067,99.9472,8.01667,46.8292,-35.033],[206.15,137.239,5.26667,38.6774,-0.0495533]]], + [54,140.817,[[965.055,-2000.38,26.8333,191.536,-80.4939],[948.121,-1900.61,26.3,187.834,-80.2294],[931.058,-1802.87,25.7667,184.079,-79.9521],[912.789,-1701.3,25.2,180.033,-79.6423],[894.378,-1602.1,24.6333,175.929,-79.3157],[875.28,-1502.5,24.05,171.646,-78.9602],[854.932,-1400.03,23.4333,167.055,-78.5615],[834.425,-1300.5,22.8167,162.4,-78.1367],[813.202,-1201.38,22.1833,157.555,-77.6705],[790.686,-1100.5,21.5167,152.387,-77.1436],[767.428,-1000.83,20.8333,147.022,-76.5602],[742.844,-900.425,20.1167,141.325,-75.8953],[717.492,-802.114,19.3833,135.425,-75.151],[689.617,-700.058,18.5833,128.916,-74.2537],[660.936,-601.549,17.7667,122.203,-73.2306],[629.669,-501.55,16.8833,114.876,-71.979],[595.176,-400.039,15.9167,106.801,-70.399],[558.005,-300.821,14.8833,98.1358,-68.4059],[515.694,-200.521,13.7167,88.3671,-65.6634],[466.322,-100.211,12.3667,77.1995,-61.5939],[404.834,-0.0453694,10.7,63.929,-54.5773],[312.319,99.887,8.21667,46.8489,-36.9524],[203.872,140.817,5.33333,37.7745,-0.0264962]]], + [55,144.354,[[944.98,-2000.34,26.9167,191.561,-80.7241],[928.451,-1900.49,26.3833,187.855,-80.466],[911.795,-1802.68,25.85,184.097,-80.1953],[893.962,-1701.02,25.2833,180.047,-79.893],[875.99,-1601.73,24.7167,175.939,-79.5742],[857.348,-1502.04,24.1333,171.651,-79.2273],[838.025,-1402.21,23.5333,167.179,-78.8488],[818.012,-1302.5,22.9167,162.52,-78.4349],[796.751,-1200.63,22.2667,157.542,-77.9683],[775.325,-1102.12,21.6167,152.497,-77.4671],[752.626,-1002.25,20.9333,147.124,-76.8986],[728.633,-901.626,20.2167,141.418,-76.2506],[703.326,-800.905,19.4667,135.374,-75.5077],[676.686,-700.79,18.6833,128.988,-74.6504],[648.121,-600.073,17.85,122.121,-73.6314],[618.179,-501.754,16.9833,114.914,-72.4323],[585.097,-401.622,16.0333,106.955,-70.9197],[548.236,-300.391,14.9833,98.1177,-68.9457],[507.534,-201.067,13.8333,88.4442,-66.3094],[459.354,-100.111,12.4833,77.207,-62.3421],[399.953,-0.020817,10.8333,63.9428,-55.567],[312.115,99.57,8.41667,46.9227,-38.8904],[201.411,144.354,5.4,36.8605,-0.0268517]]], + [56,147.847,[[924.455,-2000.67,27,191.598,-80.9577],[908.335,-1900.73,26.4667,187.89,-80.7061],[892.092,-1802.83,25.9333,184.129,-80.4422],[874.702,-1701.08,25.3667,180.075,-80.1475],[857.176,-1601.7,24.8,175.963,-79.8366],[838.995,-1501.91,24.2167,171.67,-79.4984],[820.151,-1401.97,23.6167,167.193,-79.1295],[800.634,-1302.15,23,162.528,-78.7259],[779.9,-1200.17,22.35,157.543,-78.2708],[759.005,-1101.56,21.7,152.491,-77.7821],[736.868,-1001.56,21.0167,147.11,-77.2276],[713.47,-900.813,20.3,141.395,-76.5954],[689.341,-802.149,19.5667,135.474,-75.8876],[663.365,-701.783,18.7833,129.076,-75.0528],[635.512,-600.796,17.95,122.195,-74.0605],[605.753,-500.362,17.0667,114.83,-72.8686],[573.492,-400.058,16.1167,106.846,-71.391],[538.118,-300.168,15.0833,98.1183,-69.4947],[498.431,-200.458,13.9333,88.4017,-66.923],[452.034,-100.194,12.6,77.2365,-63.1024],[394.708,-0.1716,10.9667,63.9828,-56.5715],[310.856,99.4977,8.6,46.9485,-40.6913],[198.766,147.847,5.46667,35.9356,-0.0526829]]], + [57,151.291,[[903.485,-2001.35,27.0833,191.649,-81.1948],[887.78,-1901.32,26.55,187.937,-80.9498],[871.459,-1800.3,26,184.055,-80.6846],[855.012,-1701.48,25.45,180.116,-80.4058],[837.938,-1602,24.8833,176,-80.1031],[820.225,-1502.1,24.3,171.704,-79.7737],[801.866,-1402.06,23.7,167.222,-79.4144],[782.851,-1302.13,23.0833,162.551,-79.0213],[762.651,-1200.02,22.4333,157.56,-78.5781],[742.294,-1101.29,21.7833,152.501,-78.102],[720.727,-1001.17,21.1,147.112,-77.5618],[697.931,-900.279,20.3833,141.387,-76.9459],[674.423,-801.475,19.65,135.456,-76.2561],[649.116,-700.958,18.8667,129.045,-75.4426],[622.525,-601.774,18.05,122.286,-74.4956],[593.536,-501.038,17.1667,114.904,-73.3363],[562.109,-400.407,16.2167,106.897,-71.8985],[527.651,-300.158,15.1833,98.1384,-70.0525],[488.991,-200.044,14.0333,88.3792,-67.5473],[444.363,-100.466,12.7167,77.2887,-63.874],[389.098,-0.50611,11.1,64.05,-57.5898],[308.587,99.7171,8.76667,46.9164,-42.3637],[195.936,151.29,5.53333,35,-0.106404]]], + [58,154.682,[[882.072,-2002.41,27.1667,191.712,-81.4351],[866.788,-1902.28,26.6333,187.998,-81.1968],[850.904,-1801.16,26.0833,184.113,-80.9389],[834.897,-1702.23,25.5333,180.171,-80.6677],[818.279,-1602.64,24.9667,176.052,-80.3733],[801.041,-1502.63,24.3833,171.751,-80.0529],[783.173,-1402.47,23.7833,167.265,-79.7034],[764.666,-1302.42,23.1667,162.589,-79.321],[745.007,-1200.19,22.5167,157.592,-78.8898],[725.194,-1101.32,21.8667,152.526,-78.4266],[704.204,-1001.06,21.1833,147.13,-77.901],[682.017,-900.03,20.4667,141.396,-77.3017],[659.138,-801.076,19.7333,135.454,-76.6304],[634.508,-700.398,18.95,129.03,-75.8385],[608.628,-601.044,18.1333,122.257,-74.9166],[580.415,-500.124,17.25,114.856,-73.7875],[550.368,-400.992,16.3167,106.967,-72.4131],[516.836,-300.368,15.2833,98.1785,-70.6187],[479.762,-201.204,14.15,88.5195,-68.2212],[436.338,-100.936,12.8333,77.3646,-64.6563],[382.564,-0.119966,11.2167,64.0113,-58.5446],[305.911,99.7252,8.93333,46.9283,-44.0592],[192.921,154.68,5.6,34.0542,-0.190591]]], + [59,158.015,[[859.759,-2000.68,27.2333,191.673,-81.6715],[844.896,-1900.51,26.7,187.956,-81.4397],[829.92,-1802.38,26.1667,184.184,-81.1965],[813.886,-1700.37,25.6,180.119,-80.9249],[797.727,-1600.74,25.0333,175.995,-80.6385],[780.964,-1500.69,24.45,171.689,-80.3267],[763.59,-1400.47,23.85,167.197,-79.9866],[745.594,-1300.38,23.2333,162.515,-79.6144],[726.969,-1200.67,22.6,157.639,-79.2059],[707.708,-1101.67,21.95,152.567,-78.7558],[687.301,-1001.26,21.2667,147.163,-78.2451],[665.732,-900.076,20.55,141.421,-77.6627],[643.489,-800.961,19.8167,135.469,-77.0103],[619.544,-700.111,19.0333,129.033,-76.2405],[594.384,-600.575,18.2167,122.246,-75.3442],[567.475,-501.302,17.35,114.967,-74.2682],[537.744,-400.115,16.4,106.915,-72.909],[505.673,-300.807,15.3833,98.2392,-71.193],[469.635,-201.211,14.25,88.5401,-68.8644],[427.423,-100.436,12.9333,77.3238,-65.3982],[376.234,-0.835548,11.35,64.1348,-59.5894],[302.828,99.5117,9.1,46.9861,-45.7746],[189.168,158.015,5.65,33.0993,-0.0253942]]], + [60,161.288,[[837.488,-2002.5,27.3167,191.763,-81.9183],[823.056,-1902.22,26.7833,188.044,-81.6933],[808.058,-1800.94,26.2333,184.152,-81.4499],[792.944,-1701.85,25.6833,180.203,-81.194],[777.253,-1602.09,25.1167,176.076,-80.9161],[760.976,-1501.91,24.5333,171.766,-80.6136],[744.104,-1401.57,23.9333,167.27,-80.2837],[726.629,-1301.33,23.3167,162.584,-79.9226],[708.544,-1201.49,22.6833,157.703,-79.5262],[689.84,-1102.34,22.0333,152.625,-79.0895],[670.024,-1001.78,21.35,147.214,-78.5939],[649.079,-900.424,20.6333,141.463,-78.0287],[627.479,-801.139,19.9,135.502,-77.3955],[604.227,-700.104,19.1167,129.054,-76.6483],[579.794,-600.375,18.3,122.253,-75.7781],[553.664,-500.895,17.4333,114.956,-74.7332],[525.302,-401.19,16.5,107.025,-73.4378],[494.162,-301.482,15.4833,98.3214,-71.7748],[458.655,-200.053,14.3333,88.4399,-69.4798],[418.186,-100.135,13.0333,77.3066,-66.1524],[369.009,-0.82659,11.4667,64.1516,-60.5729],[298.803,99.6455,9.25,46.974,-47.3713],[185.797,161.286,5.71667,32.1334,-0.171598]]], + [61,164.495,[[814.354,-2001.55,27.3833,191.752,-82.1613],[800.354,-1901.21,26.85,188.029,-81.943],[786.247,-1802.91,26.3167,184.252,-81.7142],[771.143,-1700.73,25.75,180.18,-81.4585],[755.922,-1600.91,25.1833,176.049,-81.1889],[740.132,-1500.67,24.6,171.735,-80.8954],[723.766,-1400.26,24,167.233,-80.5751],[707.274,-1302.64,23.4,162.668,-80.2345],[689.27,-1200.05,22.75,157.653,-79.84],[671.126,-1100.83,22.1,152.568,-79.4161],[651.904,-1000.2,21.4167,147.149,-78.9349],[632.061,-901.08,20.7167,141.523,-78.3994],[611.112,-801.614,19.9833,135.552,-77.7858],[588.56,-700.384,19.2,129.094,-77.0616],[564.864,-600.45,18.3833,122.279,-76.2181],[539.52,-500.75,17.5167,114.966,-75.2049],[512.012,-400.806,16.5833,107.013,-73.9485],[481.81,-300.837,15.5667,98.2818,-72.3348],[447.874,-200.497,14.4333,88.5051,-70.1421],[408.629,-100.038,13.1333,77.3137,-66.9181],[360.938,-0.0725246,11.5667,64.0586,-61.5004],[294.398,99.5708,9.4,47.0047,-48.9894],[181.72,164.494,5.76667,31.159,-0.0574469]]], + [62,167.633,[[790.823,-2000.99,27.45,191.754,-82.4075],[777.26,-1900.59,26.9167,188.028,-82.1961],[763.594,-1802.23,26.3833,184.248,-81.9744],[749.393,-1702.95,25.8333,180.293,-81.7342],[734.215,-1600.1,25.25,176.037,-81.4654],[719.356,-1502.62,24.6833,171.842,-81.1894],[703.504,-1402.07,24.0833,167.338,-80.8796],[687.086,-1301.62,23.4667,162.642,-80.5406],[670.093,-1201.55,22.8333,157.75,-80.1684],[652.518,-1102.16,22.1833,152.659,-79.7583],[633.9,-1001.35,21.5,147.234,-79.2928],[614.679,-902.052,20.8,141.601,-78.7747],[593.925,-800.182,20.05,135.485,-78.1669],[572.544,-700.958,19.2833,129.152,-77.4802],[549.592,-600.807,18.4667,122.324,-76.6638],[525.043,-500.874,17.6,114.995,-75.6831],[498.399,-400.678,16.6667,107.022,-74.4665],[469.145,-300.431,15.65,98.2637,-72.9033],[436.759,-201.174,14.5333,88.5941,-70.8126],[398.75,-100.153,13.2333,77.346,-67.6946],[353.054,-0.452742,11.6833,64.1325,-62.5124],[289.112,99.8855,9.53333,46.9566,-50.4989],[177.992,167.631,5.83333,30.1743,-0.278624]]], + [63,170.699,[[766.901,-2000.83,27.5167,191.77,-82.6568],[753.78,-1900.37,26.9833,188.042,-82.4523],[740.559,-1801.94,26.45,184.258,-82.2379],[726.821,-1702.59,25.9,180.3,-82.0055],[712.558,-1602.57,25.3333,176.163,-81.7531],[697.762,-1502.11,24.75,171.842,-81.4785],[682.427,-1401.48,24.15,167.332,-81.1788],[666.543,-1300.95,23.5333,162.631,-80.8508],[650.103,-1200.8,22.9,157.733,-80.4907],[633.101,-1101.32,22.25,152.636,-80.0938],[615.089,-1000.42,21.5667,147.203,-79.6433],[596.495,-901.029,20.8667,141.561,-79.1419],[576.865,-801.272,20.1333,135.572,-78.5672],[556.184,-701.835,19.3667,129.23,-77.9038],[533.983,-601.454,18.55,122.39,-77.115],[510.238,-501.275,17.6833,115.045,-76.1674],[484.465,-400.812,16.75,107.052,-74.9914],[456.169,-300.271,15.7333,98.2679,-73.4799],[424.842,-200.69,14.6167,88.5624,-71.457],[388.551,-100.488,13.3333,77.4043,-68.4812],[344.355,-0.0859586,11.7833,64.096,-63.4704],[283.957,99.3822,9.68333,47.0752,-52.154],[173.59,170.697,5.88333,29.1813,-0.227765]]], + [64,173.687,[[742.593,-2001.09,27.5833,191.801,-82.9091],[729.918,-1900.55,27.05,188.07,-82.7116],[717.147,-1802.04,26.5167,184.284,-82.5046],[703.876,-1702.62,25.9667,180.323,-82.2801],[690.099,-1602.52,25.4,176.182,-82.0364],[675.807,-1501.98,24.8167,171.857,-81.7712],[660.993,-1401.26,24.2167,167.343,-81.4817],[645.649,-1300.64,23.6,162.637,-81.1649],[629.769,-1200.4,22.9667,157.734,-80.817],[613.346,-1100.83,22.3167,152.631,-80.4337],[596.372,-1002.24,21.65,147.324,-80.0095],[577.985,-900.327,20.9333,141.54,-79.514],[559.022,-800.46,20.2,135.542,-78.9586],[539.045,-700.907,19.4333,129.188,-78.3174],[517.599,-600.403,18.6167,122.335,-77.5549],[494.662,-500.092,17.75,114.974,-76.6385],[470.213,-401.214,16.8333,107.104,-75.5228],[442.884,-300.364,15.8167,98.2946,-74.064],[412.627,-200.44,14.7,88.5544,-72.1106],[378.032,-101.049,13.4333,77.4893,-69.2769],[335.812,-0.885959,11.9,64.231,-64.5059],[277.487,99.9117,9.8,46.9835,-53.5846],[169.036,173.686,5.93333,28.1794,-0.208704]]], + [65,176.596,[[717.908,-2001.76,27.65,191.847,-83.1642],[705.685,-1901.14,27.1167,188.113,-82.9739],[693.368,-1802.56,26.5833,184.325,-82.7742],[680.18,-1700.07,26.0167,180.24,-82.5512],[667.281,-1602.86,25.4667,176.217,-82.3229],[653.498,-1502.23,24.8833,171.888,-82.0672],[639.211,-1401.42,24.2833,167.371,-81.7882],[624.413,-1300.7,23.6667,162.66,-81.4827],[609.097,-1200.35,23.0333,157.752,-81.1473],[593.258,-1100.68,22.3833,152.643,-80.7777],[576.888,-1001.99,21.7167,147.329,-80.3686],[559.568,-902.281,21.0167,141.674,-79.9024],[541.284,-802.191,20.2833,135.668,-79.3678],[521.6,-700.289,19.5,129.166,-78.7366],[501.34,-601.644,18.7,122.441,-78.0167],[479.223,-501.061,17.8333,115.066,-77.1345],[455.216,-400.159,16.9,107.034,-76.0392],[429.293,-300.716,15.9,98.3448,-74.6552],[400.116,-200.431,14.7833,88.571,-72.7729],[366.756,-100.627,13.5167,77.4558,-70.0398],[326.488,-0.935404,12,64.2551,-65.4895],[271.146,99.6067,9.93333,47.0619,-55.1545],[164.329,176.595,5.98333,27.169,-0.22531]]], + [66,179.421,[[692.849,-2002.86,27.7167,191.907,-83.422],[681.081,-1902.15,27.1833,188.172,-83.2389],[668.85,-1800.43,26.6333,184.262,-83.0407],[656.526,-1700.9,26.0833,180.293,-82.8322],[643.73,-1600.69,25.5167,176.145,-82.6058],[630.457,-1500.03,24.9333,171.811,-82.3593],[617.082,-1401.96,24.35,167.415,-82.098],[602.835,-1301.13,23.7333,162.7,-81.8041],[588.09,-1200.68,23.1,157.787,-81.4813],[572.84,-1100.89,22.45,152.673,-81.1256],[557.08,-1002.08,21.7833,147.353,-80.732],[540.405,-902.25,21.0833,141.69,-80.2831],[522.801,-802.028,20.35,135.676,-79.7686],[504.254,-702.101,19.5833,129.304,-79.1745],[484.345,-601.194,18.7667,122.427,-78.4677],[463.05,-500.452,17.9,115.037,-77.6181],[440.352,-401.113,16.9833,107.131,-76.5831],[415.397,-301.335,15.9833,98.4187,-75.2531],[387.31,-200.671,14.8667,88.6126,-73.4433],[355.196,-100.433,13.6,77.449,-70.8133],[316.432,-0.217607,12.0833,64.1658,-66.4269],[264.021,99.7354,10.05,47.0516,-56.6287],[159.469,179.419,6.03333,26.1504,-0.282061]]], + [67,182.159,[[667.072,-2001.2,27.7667,191.866,-83.6771],[655.76,-1900.47,27.2333,188.128,-83.501],[644.362,-1801.77,26.7,184.333,-83.3163],[632.518,-1702.15,26.15,180.363,-83.1161],[620.222,-1601.83,25.5833,176.212,-82.8987],[607.467,-1501.07,25,171.876,-82.662],[594.245,-1400.12,24.4,167.35,-82.4037],[580.923,-1301.95,23.8,162.758,-82.1288],[566.753,-1201.37,23.1667,157.841,-81.8189],[552.099,-1101.46,22.5167,152.721,-81.4772],[536.573,-1000.1,21.8333,147.262,-81.0893],[520.546,-900.23,21.1333,141.591,-80.6574],[504.012,-802.197,20.4167,135.704,-80.1738],[486.189,-702.12,19.65,129.323,-79.6032],[467.056,-601.051,18.8333,122.434,-78.9241],[446.592,-500.137,17.9667,115.03,-78.1076],[424.78,-400.615,17.05,107.106,-77.1127],[400.798,-300.634,16.05,98.3708,-75.8337],[374.212,-201.164,14.95,88.68,-74.1211],[343.355,-100.471,13.6833,77.4697,-71.5967],[306.518,-0.695795,12.1833,64.2521,-67.4354],[256.576,99.6578,10.1667,47.083,-58.122],[154.04,182.159,6.06667,25.1241,-0.0114754]]], + [68,184.806,[[641.302,-2003.17,27.8333,191.957,-83.9401],[630.453,-1902.34,27.3,188.217,-83.7714],[619.179,-1800.48,26.75,184.301,-83.5888],[607.818,-1700.82,26.2,180.328,-83.3966],[596.024,-1600.46,25.6333,176.173,-83.188],[584.139,-1502.51,25.0667,171.957,-82.9675],[571.46,-1401.44,24.4667,167.428,-82.7201],[558.327,-1300.46,23.85,162.704,-82.4491],[545.094,-1202.45,23.2333,157.912,-82.1597],[531.04,-1102.41,22.5833,152.788,-81.8323],[516.15,-1000.9,21.9,147.324,-81.4607],[500.779,-900.886,21.2,141.646,-81.0468],[484.552,-800.472,20.4667,135.615,-80.5721],[467.456,-700.341,19.7,129.222,-80.0239],[449.479,-601.222,18.9,122.463,-79.3855],[429.854,-500.121,18.0333,115.046,-78.6027],[408.934,-400.401,17.1167,107.105,-77.6487],[385.934,-300.202,16.1167,98.347,-76.4218],[360.437,-200.491,15.0167,88.6259,-74.7779],[331.234,-100.75,13.7667,77.5185,-72.3889],[295.909,-0.405226,12.2667,64.2246,-68.3996],[248.812,99.3658,10.2833,47.1578,-59.6312],[148.895,184.805,6.11667,24.0897,-0.149294]]], + [69,187.36,[[614.854,-2002.39,27.8833,191.946,-84.2005],[604.471,-1901.51,27.35,188.204,-84.039],[594.009,-1802.67,26.8167,184.405,-83.8696],[583.137,-1702.9,26.2667,180.43,-83.686],[571.851,-1602.42,25.7,176.273,-83.4865],[560.142,-1501.5,25.1167,171.931,-83.2694],[548.007,-1400.39,24.5167,167.397,-83.0325],[535.778,-1302.04,23.9167,162.797,-82.7803],[522.771,-1201.29,23.2833,157.871,-82.4959],[509.32,-1101.2,22.6333,152.742,-82.1824],[495.418,-1002.07,21.9667,147.405,-81.8355],[480.708,-901.896,21.2667,141.722,-81.4398],[465.18,-801.317,20.5333,135.684,-80.986],[448.82,-701.014,19.7667,129.283,-80.462],[431.617,-601.712,18.9667,122.513,-79.8516],[412.836,-500.412,18.1,115.083,-79.1031],[392.817,-400.479,17.1833,107.127,-78.1906],[370.807,-300.046,16.1833,98.3478,-77.0167],[346.407,-200.075,15.0833,88.5976,-75.4431],[318.461,-100.036,13.8333,77.4474,-73.1543],[285.034,-0.334129,12.35,64.2289,-69.3763],[240.349,99.5426,10.3833,47.1367,-61.057],[143.6,187.357,6.16667,23.048,-0.344587]]], + [70,189.817,[[588.09,-2002.06,27.9333,191.952,-84.4635],[578.176,-1901.13,27.4,188.206,-84.3092],[568.186,-1802.24,26.8667,184.405,-84.1475],[557.806,-1702.41,26.3167,180.427,-83.9721],[547.029,-1601.89,25.75,176.268,-83.7817],[535.849,-1500.91,25.1667,171.922,-83.5744],[524.585,-1402.51,24.5833,167.511,-83.3547],[512.586,-1301.34,23.9667,162.78,-83.1074],[500.167,-1200.52,23.3333,157.849,-82.8357],[487.322,-1100.36,22.6833,152.714,-82.5363],[474.048,-1001.17,22.0167,147.372,-82.2049],[460.004,-900.927,21.3167,141.681,-81.8269],[445.177,-800.275,20.5833,135.635,-81.3933],[429.897,-702.024,19.8333,129.365,-80.904],[413.131,-600.514,19.0167,122.444,-80.3092],[395.544,-501.014,18.1667,115.144,-79.6083],[376.433,-400.853,17.25,107.173,-78.738],[355.421,-300.169,16.25,98.3737,-77.6181],[332.481,-201.356,15.1667,88.7447,-76.1415],[305.804,-100.805,13.9167,77.5541,-73.9633],[273.895,-0.489305,12.4333,64.2658,-70.3642],[231.602,99.5116,10.4833,47.1573,-62.5011],[137.79,189.816,6.2,21.9992,-0.180423]]], + [71,192.174,[[561.017,-2002.17,27.9833,191.972,-84.7288],[551.576,-1901.19,27.45,188.225,-84.582],[542.063,-1802.24,26.9167,184.422,-84.428],[532.177,-1702.36,26.3667,180.442,-84.2611],[521.914,-1601.77,25.8,176.279,-84.0797],[511.268,-1500.73,25.2167,171.93,-83.8823],[500.541,-1402.27,24.6333,167.516,-83.673],[489.114,-1301.03,24.0167,162.781,-83.4375],[477.287,-1200.14,23.3833,157.846,-83.1788],[465.37,-1102.43,22.75,152.839,-82.9013],[452.414,-1000.64,22.0667,147.358,-82.578],[439.039,-900.318,21.3667,141.661,-82.218],[425.241,-801.822,20.65,135.745,-81.8148],[410.368,-701.246,19.8833,129.328,-81.3387],[394.728,-601.657,19.0833,122.539,-80.7842],[377.654,-500.042,18.2167,115.085,-80.1038],[359.786,-401.53,17.3167,107.243,-79.2903],[339.779,-300.579,16.3167,98.4252,-78.2252],[317.598,-200.033,15.2167,88.6213,-76.7963],[292.535,-100.583,13.9833,77.5408,-74.7466],[262.494,-0.876127,12.5167,64.3361,-71.3616],[222.227,99.9739,10.5667,47.0769,-63.8728],[131.867,192.173,6.23333,20.9436,-0.0500532]]], + [72,194.428,[[533.645,-2002.75,28.0333,192.009,-84.9965],[524.68,-1901.7,27.5,188.26,-84.8571],[515.647,-1802.69,26.9667,184.455,-84.7109],[506.26,-1702.74,26.4167,180.473,-84.5524],[496.515,-1602.08,25.85,176.308,-84.3803],[486.406,-1500.97,25.2667,171.956,-84.193],[476.22,-1402.44,24.6833,167.539,-83.9943],[465.369,-1301.12,24.0667,162.801,-83.7707],[454.139,-1200.15,23.4333,157.861,-83.5251],[442.823,-1102.37,22.8,152.85,-83.2616],[430.52,-1000.49,22.1167,147.364,-82.9547],[417.82,-900.075,21.4167,141.661,-82.6128],[404.719,-801.486,20.7,135.739,-82.2299],[390.595,-700.809,19.9333,129.314,-81.7778],[375.745,-601.116,19.1333,122.515,-81.2511],[359.845,-501.281,18.2833,115.193,-80.618],[342.565,-400.755,17.3667,107.192,-79.8316],[323.885,-301.281,16.3833,98.5028,-78.8375],[302.827,-200.42,15.2833,88.6742,-77.4827],[279.031,-100.613,14.05,77.5571,-75.5383],[250.509,-0.478312,12.5833,64.2903,-72.3231],[212.935,99.5176,10.6667,47.183,-65.3483],[126.163,194.425,6.28333,19.8816,-0.430343]]], + [73,196.577,[[505.715,-2000.59,28.0667,191.945,-85.2621],[497.494,-1902.67,27.55,188.311,-85.1343],[488.676,-1800.52,27,184.385,-84.9916],[479.79,-1700.56,26.45,180.399,-84.8414],[470.837,-1602.83,25.9,176.354,-84.6833],[461.269,-1501.64,25.3167,171.999,-84.506],[451.351,-1400.25,24.7167,167.453,-84.3125],[441.358,-1301.62,24.1167,162.839,-84.1066],[430.728,-1200.57,23.4833,157.896,-83.8743],[419.735,-1100.16,22.8333,152.748,-83.6181],[408.374,-1000.71,22.1667,147.39,-83.3346],[396.353,-900.202,21.4667,141.682,-83.0111],[383.952,-801.509,20.75,135.754,-82.6488],[370.585,-700.721,19.9833,129.321,-82.2209],[356.529,-600.909,19.1833,122.513,-81.7224],[341.479,-500.948,18.3333,115.18,-81.1231],[325.124,-400.286,17.4167,107.165,-80.3785],[307.444,-300.664,16.4333,98.4585,-79.437],[287.815,-201.085,15.35,88.7553,-78.1748],[265.294,-100.899,14.1167,77.6036,-76.3374],[238.302,-0.311217,12.65,64.2777,-73.296],[203.052,99.5595,10.75,47.1869,-66.7539],[120,196.575,6.31667,18.8131,-0.412878]]], + [74,198.617,[[477.779,-2002.09,28.1167,192.014,-85.5341],[469.776,-1900.96,27.5833,188.261,-85.4096],[461.71,-1801.87,27.05,184.451,-85.2791],[453.33,-1701.83,26.5,180.464,-85.1376],[444.629,-1601.08,25.9333,176.294,-84.9839],[435.863,-1502.74,25.3667,172.061,-84.8215],[426.51,-1401.25,24.7667,167.513,-84.6392],[417.085,-1302.54,24.1667,162.896,-84.445],[407.06,-1201.39,23.5333,157.95,-84.2261],[396.693,-1100.88,22.8833,152.799,-83.9847],[385.978,-1001.33,22.2167,147.437,-83.7175],[374.642,-900.705,21.5167,141.724,-83.4126],[362.946,-801.897,20.8,135.79,-83.0711],[350.34,-700.985,20.0333,129.351,-82.6678],[337.083,-601.043,19.2333,122.535,-82.1978],[322.89,-500.942,18.3833,115.192,-81.6328],[307.466,-400.128,17.4667,107.164,-80.9306],[290.791,-300.342,16.4833,98.4404,-80.0424],[272.279,-200.58,15.4,88.7144,-78.8513],[251.04,-100.186,14.1667,77.5291,-77.1161],[225.874,-0.38059,12.7167,64.2992,-74.2788],[192.926,99.3861,10.8333,47.2339,-68.1738],[113.728,198.615,6.35,17.7388,-0.453843]]], + [75,200.547,[[449.335,-2000.86,28.15,191.983,-85.8041],[442.051,-1902.85,27.6333,188.346,-85.6909],[434.239,-1800.6,27.0833,184.415,-85.5645],[426.365,-1700.55,26.5333,180.425,-85.4316],[418.433,-1602.71,25.9833,176.375,-85.2915],[409.955,-1501.41,25.4,172.016,-85.1345],[401.413,-1402.69,24.8167,167.591,-84.9679],[392.314,-1301.17,24.2,162.843,-84.7806],[383.145,-1202.61,23.5833,158.024,-84.5804],[373.407,-1102,22.9333,152.87,-84.3539],[363.343,-1002.33,22.2667,147.505,-84.103],[352.695,-901.587,21.5667,141.788,-83.8169],[341.453,-800.404,20.8333,135.71,-83.4886],[329.868,-701.606,20.0833,129.403,-83.1179],[317.416,-601.521,19.2833,122.58,-82.6768],[304.084,-501.267,18.4333,115.228,-82.1464],[289.596,-400.286,17.5167,107.188,-81.4873],[273.934,-300.319,16.5333,98.4491,-80.6533],[256.546,-200.357,15.45,88.7019,-79.5344],[236.867,-100.998,14.2333,77.6372,-77.9287],[213.23,-0.691848,12.7833,64.3555,-75.27],[182.285,99.7305,10.9,47.1748,-69.5352],[112.623,199.975,6.7,16.9694,-11.1076],[107.072,200.547,6.36667,16.6585,-0.00335856]]], + [76,202.364,[[420.654,-2000.11,28.1833,191.968,-86.0763],[413.842,-1902.07,27.6667,188.329,-85.9704],[406.758,-1802.87,27.1333,184.516,-85.8559],[399.397,-1702.72,26.5833,180.525,-85.7317],[391.755,-1601.85,26.0167,176.351,-85.5968],[383.827,-1500.52,25.4333,171.989,-85.4499],[375.839,-1401.77,24.85,167.561,-85.2941],[367.33,-1300.22,24.2333,162.81,-85.1188],[358.755,-1201.63,23.6167,157.987,-84.9315],[349.649,-1100.98,22.9667,152.828,-84.7196],[340.237,-1001.28,22.3,147.458,-84.4849],[330.279,-900.502,21.6,141.736,-84.2172],[320.007,-801.532,20.8833,135.791,-83.9172],[308.933,-700.444,20.1167,129.338,-83.5629],[297.289,-600.318,19.3167,122.506,-83.15],[284.822,-500.021,18.4667,115.143,-82.6533],[271.521,-400.763,17.5667,107.238,-82.048],[256.876,-300.599,16.5833,98.4851,-81.2688],[240.618,-200.417,15.5,88.7181,-80.2233],[222.218,-100.809,14.2833,77.6244,-78.7219],[200.118,-0.205456,12.8333,64.2937,-76.2334],[171.441,99.8636,10.9667,47.1579,-70.9131],[111.242,199.989,7.08333,16.9581,-23.4272],[100.605,202.364,6.4,15.5731,-0.161236]]], + [77,204.066,[[391.95,-2003.03,28.2333,192.086,-86.3535],[385.41,-1901.76,27.7,188.329,-86.2518],[378.819,-1802.52,27.1667,184.514,-86.1453],[371.972,-1702.34,26.6167,180.522,-86.0297],[364.862,-1601.44,26.05,176.345,-85.9042],[357.488,-1500.07,25.4667,171.98,-85.7676],[350.056,-1401.28,24.8833,167.55,-85.6227],[342.355,-1302.39,24.2833,162.925,-85.4642],[334.164,-1201.06,23.65,157.969,-85.2853],[325.693,-1100.37,23,152.807,-85.0881],[316.938,-1000.62,22.3333,147.432,-84.8697],[307.896,-902.152,21.65,141.842,-84.6267],[298.118,-800.781,20.9167,135.755,-84.3414],[288.042,-701.788,20.1667,129.437,-84.0192],[277.211,-601.493,19.3667,122.599,-83.6356],[265.616,-501.015,18.5167,115.229,-83.1744],[253.244,-401.563,17.6167,107.314,-82.6122],[239.623,-301.185,16.6333,98.5483,-81.8885],[224.501,-200.765,15.55,88.7634,-80.9172],[207.387,-100.888,14.3333,77.6429,-79.5218],[187.068,-1.00689,12.9,64.4208,-77.239],[160.396,99.7804,11.0333,47.1843,-72.3043],[107.062,199.926,7.33333,16.9999,-31.6761],[94.0341,204.065,6.43333,14.4829,-0.41818]]], + [78,205.651,[[362.62,-2000.04,28.25,191.988,-86.6262],[356.762,-1901.93,27.7333,188.346,-86.5351],[350.668,-1802.65,27.2,184.53,-86.4366],[344.337,-1702.42,26.65,180.535,-86.3297],[337.763,-1601.48,26.0833,176.357,-86.2137],[330.944,-1500.06,25.5,171.991,-86.0874],[324.073,-1401.23,24.9167,167.558,-85.9534],[316.953,-1302.3,24.3167,162.93,-85.8068],[309.379,-1200.91,23.6833,157.972,-85.6415],[301.546,-1100.17,23.0333,152.806,-85.4591],[293.451,-1000.37,22.3667,147.428,-85.2572],[285.091,-901.84,21.6833,141.834,-85.0325],[276.05,-800.409,20.95,135.741,-84.7687],[266.733,-701.353,20.2,129.417,-84.4706],[256.719,-600.992,19.4,122.573,-84.1159],[245.998,-500.442,18.55,115.194,-83.6892],[234.559,-400.915,17.65,107.269,-83.1691],[221.965,-300.454,16.6667,98.4897,-82.4992],[208.199,-201.407,15.6,88.8383,-81.6152],[192.376,-101.238,14.3833,77.6933,-80.3271],[173.591,-1.01095,12.95,64.4296,-78.2184],[149.154,99.4752,11.1,47.2551,-73.7054],[101.41,199.961,7.51667,16.9876,-38.0806],[87.1379,205.65,6.45,13.3875,-0.0999958]]], + [79,207.116,[[333.287,-2000.73,28.2833,192.023,-86.9034],[327.908,-1902.57,27.7667,188.38,-86.8199],[322.139,-1800.17,27.2167,184.443,-86.7265],[316.502,-1702.96,26.6833,180.567,-86.6315],[310.467,-1601.97,26.1167,176.388,-86.525],[304.207,-1500.5,25.5333,172.019,-86.409],[297.899,-1401.61,24.95,167.585,-86.2861],[291.361,-1302.63,24.35,162.955,-86.1515],[284.408,-1201.18,23.7167,157.995,-85.9997],[277.217,-1100.38,23.0667,152.826,-85.8324],[269.785,-1000.51,22.4,147.445,-85.647],[262.11,-901.918,21.7167,141.847,-85.4409],[253.81,-800.415,20.9833,135.75,-85.1987],[245.256,-701.285,20.2333,129.421,-84.925],[236.063,-600.844,19.4333,122.571,-84.5994],[226.22,-500.21,18.5833,115.185,-84.2076],[215.718,-400.592,17.6833,107.251,-83.7299],[204.156,-300.031,16.7,98.4587,-83.1147],[191.518,-200.876,15.6333,88.791,-82.3024],[176.992,-100.583,14.4167,77.6221,-81.1182],[159.746,-0.208033,12.9833,64.319,-79.1773],[137.515,99.7075,11.15,47.2157,-75.0618],[95.1192,199.81,7.68333,17.083,-44.0785],[80.3827,207.114,6.48333,12.2885,-0.576696]]], + [80,208.46,[[303.756,-2001.9,28.3167,192.075,-87.1822],[298.701,-1900.56,27.7833,188.313,-87.1036],[293.608,-1801.24,27.25,184.494,-87.0211],[288.315,-1700.97,26.7,180.495,-86.9318],[282.982,-1602.92,26.15,176.437,-86.8378],[277.283,-1501.4,25.5667,172.067,-86.7322],[271.541,-1402.45,24.9833,167.632,-86.6204],[265.424,-1300.68,24.3667,162.871,-86.4945],[259.26,-1201.88,23.75,158.038,-86.3599],[252.714,-1101,23.1,152.867,-86.2076],[245.948,-1001.06,22.4333,147.484,-86.039],[238.79,-900.035,21.7333,141.745,-85.8466],[231.405,-800.807,21.0167,135.782,-85.6309],[223.618,-701.592,20.2667,129.449,-85.3821],[215.249,-601.058,19.4667,122.593,-85.0857],[206.288,-500.324,18.6167,115.201,-84.7292],[196.728,-400.6,17.7167,107.259,-84.2944],[186.381,-301.557,16.75,98.6061,-83.7447],[174.697,-200.64,15.6667,88.7736,-82.9947],[161.473,-100.201,14.45,77.5829,-81.9159],[145.957,-0.710131,13.0333,64.3997,-80.1709],[125.72,99.7203,11.2,47.2202,-76.4303],[87.8731,199.965,7.8,17.0032,-48.9347],[73.3424,208.458,6.5,11.1846,-0.409877]]], + [81,209.681,[[273.896,-2000.37,28.3333,192.027,-87.4597],[269.483,-1902.16,27.8167,188.382,-87.3912],[264.893,-1802.78,27.2833,184.562,-87.317],[260.124,-1702.45,26.7333,180.563,-87.2366],[255.173,-1601.4,26.1667,176.381,-87.1493],[250.183,-1502.74,25.6,172.134,-87.0568],[244.86,-1400.93,25,167.57,-86.9532],[239.497,-1301.88,24.4,162.936,-86.8428],[233.792,-1200.37,23.7667,157.97,-86.7182],[228.043,-1102.05,23.1333,152.93,-86.5845],[221.947,-1002.02,22.4667,147.544,-86.4327],[215.496,-900.905,21.7667,141.803,-86.2595],[208.842,-801.584,21.05,135.838,-86.0653],[201.668,-700.119,20.2833,129.359,-85.8359],[194.283,-601.633,19.5,122.641,-85.5744],[186.209,-500.786,18.65,115.243,-85.2533],[177.593,-400.941,17.75,107.293,-84.8618],[168.108,-300.13,16.7667,98.4814,-84.3574],[157.741,-200.701,15.7,88.7861,-83.6912],[145.824,-100.093,14.4833,77.5761,-82.7191],[131.842,-0.405503,13.0667,64.361,-81.1456],[113.773,99.5114,11.25,47.2691,-77.8075],[80.3412,199.881,7.91667,17.0594,-53.8496],[66.2421,209.68,6.51667,10.0771,-0.316841]]], + [82,210.777,[[244.017,-2002.53,28.3667,192.113,-87.7408],[239.963,-1901.12,27.8333,188.349,-87.6779],[235.878,-1801.73,27.3,184.528,-87.6118],[231.633,-1701.4,26.75,180.528,-87.5401],[227.226,-1600.34,26.1833,176.343,-87.4624],[222.786,-1501.68,25.6167,172.095,-87.3802],[218.18,-1402.65,25.0333,167.656,-87.2904],[213.274,-1300.81,24.4167,162.892,-87.1896],[208.331,-1201.93,23.8,158.055,-87.0816],[203.081,-1100.96,23.15,152.88,-86.9596],[197.654,-1000.94,22.4833,147.491,-86.8242],[192.051,-902.176,21.8,141.884,-86.6739],[185.991,-800.491,21.0667,135.776,-86.497],[179.746,-701.174,20.3167,129.435,-86.2974],[173.033,-600.532,19.5167,122.569,-86.0597],[165.988,-501.598,18.6833,115.311,-85.7796],[158.322,-401.617,17.7833,107.356,-85.4316],[149.881,-300.656,16.8,98.5354,-84.9832],[140.655,-201.062,15.7333,88.829,-84.3909],[130.051,-100.264,14.5167,77.6021,-83.5266],[117.608,-0.353681,13.1,64.3587,-82.1268],[101.529,99.8513,11.2833,47.2054,-79.1525],[72.3759,199.796,8.01667,17.1156,-58.4559],[59.084,210.777,6.53333,8.96635,-0.325719]]], + [83,211.748,[[213.862,-2001.98,28.3833,192.1,-88.021],[210.311,-1900.56,27.85,188.335,-87.9659],[206.732,-1801.16,27.3167,184.512,-87.9079],[203.014,-1700.82,26.7667,180.511,-87.8452],[199.268,-1602.69,26.2167,176.448,-87.7791],[195.264,-1501.07,25.6333,172.074,-87.7049],[191.229,-1402.03,25.05,167.634,-87.6264],[186.932,-1300.18,24.4333,162.868,-87.538],[182.602,-1201.28,23.8167,158.029,-87.4433],[178.002,-1100.31,23.1667,152.851,-87.3363],[173.249,-1000.27,22.5,147.459,-87.2179],[168.34,-901.489,21.8167,141.85,-87.0859],[163.153,-802.049,21.1,135.878,-86.9348],[157.561,-700.455,20.3333,129.393,-86.756],[151.805,-601.837,19.55,122.667,-86.5522],[145.51,-500.845,18.7,115.259,-86.3021],[138.795,-400.845,17.8,107.297,-85.997],[131.527,-301.503,16.8333,98.6183,-85.611],[123.319,-200.249,15.75,88.7497,-85.0841],[114.158,-100.716,14.55,77.6613,-84.3373],[103.26,-0.556879,13.1333,64.3933,-83.1129],[89.1762,99.9704,11.3167,47.186,-80.5084],[63.9038,199.998,8.08333,17.0073,-62.542],[51.8704,211.747,6.55,7.85267,-0.480276]]], + [84,212.593,[[183.584,-2001.93,28.4,192.103,-88.3022],[180.537,-1900.49,27.8667,188.337,-88.2548],[177.466,-1801.07,27.3333,184.514,-88.2051],[174.276,-1700.71,26.7833,180.512,-88.1514],[171.062,-1602.56,26.2333,176.448,-88.0947],[167.627,-1500.92,25.65,172.073,-88.0311],[164.165,-1401.86,25.0667,167.631,-87.9637],[160.578,-1302.7,24.4667,162.993,-87.8897],[156.763,-1201.07,23.8333,158.023,-87.8065],[152.817,-1100.07,23.1833,152.844,-87.7148],[148.739,-1000,22.5167,147.45,-87.6131],[144.527,-901.202,21.8333,141.838,-87.5],[140.077,-801.736,21.1167,135.864,-87.3701],[135.279,-700.114,20.35,129.375,-87.2167],[130.34,-601.467,19.5667,122.645,-87.0419],[124.94,-500.443,18.7167,115.232,-86.8272],[119.178,-400.41,17.8167,107.265,-86.5653],[112.942,-301.032,16.85,98.5793,-86.2339],[106.009,-201.215,15.7833,88.8539,-85.7891],[98.0408,-100.16,14.5667,77.5984,-85.1398],[88.8011,-1.01695,13.1667,64.465,-84.1021],[76.7189,99.8666,11.35,47.2113,-81.8716],[55.3745,199.753,8.16667,17.153,-66.91],[44.6031,212.591,6.56667,6.7366,-0.852757]]], + [85,213.308,[[153.194,-2002.37,28.4167,192.124,-88.5842],[150.653,-1900.91,27.8833,188.358,-88.5448],[148.092,-1801.47,27.35,184.534,-88.5033],[145.432,-1701.07,26.8,180.531,-88.4585],[142.751,-1602.9,26.25,176.467,-88.4112],[139.886,-1501.24,25.6667,172.091,-88.3583],[136.999,-1402.15,25.0833,167.649,-88.3019],[133.924,-1300.24,24.4667,162.88,-88.2385],[130.825,-1201.29,23.85,158.039,-88.1709],[127.534,-1100.26,23.2,152.858,-88.0944],[124.133,-1000.16,22.5333,147.463,-88.0097],[120.621,-901.322,21.85,141.849,-87.9154],[116.909,-801.819,21.1333,135.873,-87.807],[112.908,-700.156,20.3667,129.382,-87.6792],[108.788,-601.467,19.5833,122.649,-87.5334],[104.285,-500.397,18.7333,115.233,-87.3543],[99.4792,-400.315,17.8333,107.261,-87.1358],[94.2786,-300.884,16.8667,98.5693,-86.8594],[88.4964,-201.008,15.8,88.836,-86.4884],[81.9419,-101.179,14.6,77.7243,-85.955],[74.1445,-0.665638,13.1833,64.4166,-85.08],[64.1607,99.5362,11.3833,47.282,-83.2385],[46.4541,199.844,8.21667,17.1058,-70.8557],[37.2845,213.306,6.58333,5.61907,-1.57541]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 74.1445; +_maxRange = 426.754; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg1.sqf new file mode 100644 index 0000000000..3005604ca0 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg1.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_m821a2_m734_prox_chg1 +// Ammo: ace_arty_81mm_m821a2_m734_prox +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,429.312,[[2677.73,-2002.32,32.3833,209.302,-70.8082],[2642.04,-1901.06,31.8667,206.214,-70.3435],[2606.06,-1801.6,31.35,203.089,-69.8607],[2568.62,-1700.86,30.8167,199.827,-69.3422],[2530.88,-1602.1,30.2833,196.529,-68.802],[2491.64,-1502.37,29.7333,193.092,-68.2209],[2450.88,-1401.89,29.1667,189.514,-67.5949],[2408.57,-1300.89,28.5833,185.795,-66.9197],[2365.92,-1202.42,28,182.041,-66.2109],[2320.45,-1101.09,27.3833,178.039,-65.4225],[2273.35,-1000.04,26.75,173.896,-64.5677],[2225.87,-902.102,26.1167,169.725,-63.6635],[2175.46,-802.406,25.45,165.309,-62.6539],[2122.08,-701.536,24.75,160.651,-61.5242],[2065.66,-600.114,24.0167,155.758,-60.2572],[2007.46,-500.954,23.2667,150.751,-58.8641],[1944.82,-400.351,22.4667,145.422,-57.2584],[1878.99,-301.313,21.6333,139.903,-55.4396],[1807.23,-201.051,20.7333,134.008,-53.2883],[1729.42,-101.227,19.7667,127.789,-50.7343],[1642.72,-0.675674,18.7,121.124,-47.585],[1545.54,98.9058,17.5167,114.066,-43.6294],[1430.66,199.105,16.1333,106.436,-38.3052],[1284.91,299.578,14.4,98.1893,-30.4448],[1052.7,399.862,11.6833,89.5211,-15.4327],[841.006,429.309,9.25,87.707,-0.100513]]], + [46,444.01,[[2648.98,-2000.73,32.6,209.384,-71.1665],[2615.06,-1902.46,32.1,206.387,-70.7253],[2579.72,-1802.68,31.5833,203.253,-70.2519],[2542.95,-1701.6,31.05,199.981,-69.7435],[2505.88,-1602.5,30.5167,196.673,-69.2138],[2467.34,-1502.42,29.9667,193.224,-68.6438],[2427.3,-1401.56,29.4,189.632,-68.0298],[2385.75,-1300.19,28.8167,185.898,-67.3674],[2343.85,-1201.32,28.2333,182.128,-66.672],[2300.41,-1102.3,27.6333,178.216,-65.9197],[2254.16,-1000.74,27,174.053,-65.0819],[2207.53,-902.289,26.3667,169.86,-64.1955],[2158.03,-802.047,25.7,165.418,-63.2055],[2105.61,-700.6,25,160.731,-62.0975],[2051.48,-600.837,24.2833,155.916,-60.8835],[1994.33,-500.943,23.5333,150.87,-59.5183],[1934.13,-401.606,22.75,145.606,-57.9779],[1869.5,-301.618,21.9167,140.032,-56.1964],[1799.06,-200.319,21.0167,134.069,-54.0876],[1724,-101.042,20.0667,127.876,-51.6267],[1640.24,-0.595736,19.0167,121.206,-48.5885],[1546.22,99.4058,17.85,114.102,-44.7655],[1436.23,199.634,16.5,106.44,-39.6704],[1300.18,299.198,14.85,98.2165,-32.3382],[1095.08,399.645,12.4,89.349,-19.0904],[839.252,444.009,9.4,86.121,-0.0621527]]], + [47,458.683,[[2619.93,-2003.08,32.8333,209.585,-71.5453],[2585.51,-1901.22,32.3167,206.48,-71.0984],[2550.82,-1801.17,31.8,203.337,-70.634],[2515.85,-1702.95,31.2833,200.157,-70.1511],[2478.32,-1600.43,30.7333,196.734,-69.6155],[2440.48,-1500.04,30.1833,193.272,-69.0562],[2402.34,-1401.82,29.6333,189.773,-68.4718],[2361.55,-1300.05,29.05,186.024,-67.8225],[2320.42,-1200.79,28.4667,182.238,-67.1407],[2277.78,-1101.35,27.8667,178.308,-66.4032],[2233.58,-1002,27.25,174.235,-65.6038],[2186.61,-900.454,26.6,169.909,-64.7121],[2139.24,-802.216,25.95,165.554,-63.7657],[2087.8,-700.176,25.25,160.837,-62.6799],[2035.91,-602.086,24.55,156.102,-61.5186],[1979.84,-501.441,23.8,151.018,-60.1819],[1920.76,-401.312,23.0167,145.71,-58.673],[1857.35,-300.473,22.1833,140.083,-56.9269],[1789.51,-200.075,21.3,134.166,-54.8983],[1717.18,-101.364,20.3667,128.001,-52.5307],[1636.32,-1.04397,19.3333,121.333,-49.604],[1545.43,99.3532,18.1833,114.187,-45.9152],[1440.26,199.52,16.8667,106.508,-41.0501],[1310.94,299.658,15.2667,98.1927,-34.0855],[1126.48,399.704,13.0167,89.2267,-22.1722],[836.77,458.682,9.55,84.5131,-0.0408989]]], + [48,473.313,[[2588.33,-2002.77,33.05,209.707,-71.9159],[2554.56,-1900.64,32.5333,206.593,-71.4779],[2520.52,-1800.3,32.0167,203.441,-71.0227],[2486.21,-1701.79,31.5,200.251,-70.5494],[2450.51,-1602.05,30.9667,196.921,-70.0405],[2413.39,-1501.28,30.4167,193.448,-69.493],[2375.97,-1402.68,29.8667,189.937,-68.9206],[2335.96,-1300.51,29.2833,186.174,-68.2847],[2295.62,-1200.84,28.7,182.372,-67.617],[2253.78,-1100.97,28.1,178.425,-66.8945],[2210.43,-1001.18,27.4833,174.333,-66.1112],[2165.54,-901.74,26.85,170.096,-65.2604],[2117.88,-800.452,26.1833,165.604,-64.3097],[2068.62,-700.292,25.5,160.972,-63.2713],[2017.73,-601.587,24.8,156.205,-62.1339],[1962.74,-500.277,24.05,151.084,-60.8243],[1906.03,-401.539,23.2833,145.846,-59.378],[1845.1,-301.805,22.4667,140.28,-57.7041],[1778.59,-200.349,21.5833,134.299,-55.7199],[1707.66,-100.508,20.65,128.057,-53.4019],[1629.67,-0.487324,19.6333,121.397,-50.5816],[1543.17,98.7146,18.5167,114.325,-47.0771],[1441.4,199.929,17.2167,106.546,-42.3775],[1319.99,299.253,15.6833,98.2624,-35.8478],[1151.47,399.45,13.5833,89.1847,-24.979],[833.553,473.312,9.7,82.8835,-0.0379805]]], + [49,487.884,[[2555.3,-2003.14,33.2667,209.85,-72.2926],[2522.19,-1900.72,32.75,206.727,-71.8637],[2488.81,-1800.09,32.2333,203.566,-71.4179],[2455.17,-1701.28,31.7167,200.367,-70.9544],[2420.16,-1601.23,31.1833,197.026,-70.456],[2383.77,-1500.15,30.6333,193.541,-69.9196],[2347.08,-1401.22,30.0833,190.017,-69.3589],[2308.97,-1301.59,29.5167,186.347,-68.7542],[2269.42,-1201.5,28.9333,182.531,-68.1008],[2228.41,-1101.2,28.3333,178.567,-67.3936],[2185.91,-1000.95,27.7167,174.456,-66.627],[2141.9,-901.036,27.0833,170.198,-65.794],[2096.36,-801.749,26.4333,165.794,-64.8869],[2048.07,-700.979,25.75,161.135,-63.8713],[1998.19,-601.644,25.05,156.338,-62.7586],[1945.49,-501.867,24.3167,151.295,-61.5065],[1888.71,-400.208,23.5333,145.9,-60.0607],[1830.21,-301.712,22.7333,140.398,-58.4556],[1766.27,-201.173,21.8667,134.469,-56.552],[1696.77,-100.179,20.9333,128.151,-54.2853],[1621.61,-0.476254,19.9333,121.504,-51.5719],[1538.13,98.8784,18.8333,114.411,-48.1956],[1441.02,199.688,17.5667,106.647,-43.7188],[1324.72,299.941,16.0667,98.2529,-37.4706],[1170.28,399.43,14.1,89.1593,-27.5157],[829.594,487.883,9.85,81.2327,-0.0546917]]], + [50,502.378,[[2519.81,-2000.88,33.4667,209.913,-72.6618],[2488.41,-1901.5,32.9667,206.883,-72.2555],[2455.7,-1800.56,32.45,203.713,-71.8194],[2422.74,-1701.45,31.9333,200.505,-71.3658],[2388.43,-1601.08,31.4,197.154,-70.8782],[2353.86,-1502.71,30.8667,193.764,-70.3695],[2316.82,-1400.4,30.3,190.121,-69.8045],[2279.48,-1300.43,29.7333,186.437,-69.2125],[2241.84,-1202.81,29.1667,182.716,-68.5915],[2201.67,-1102.05,28.5667,178.736,-67.9002],[2160.03,-1001.33,27.95,174.606,-67.1504],[2116.91,-900.935,27.3167,170.327,-66.3357],[2072.3,-801.144,26.6667,165.9,-65.4483],[2026.15,-702.266,26,161.329,-64.4795],[1977.3,-602.283,25.3,156.501,-63.3921],[1925.68,-501.822,24.5667,151.423,-62.1679],[1871.24,-401.55,23.8,146.102,-60.7852],[1812.75,-300.168,22.9833,140.437,-59.183],[1751.33,-200.685,22.1333,134.563,-57.3563],[1684.49,-100.406,21.2167,128.285,-55.18],[1612.13,-1.04149,20.2333,121.657,-52.5737],[1530.4,99.8915,19.1333,114.441,-49.2733],[1439.09,198.764,17.9167,106.812,-45.0723],[1327.82,299.845,16.45,98.3265,-39.1089],[1184.45,399.39,14.5833,89.1668,-29.8816],[879.142,499.946,10.6833,79.5268,-4.91647],[824.889,502.376,10,79.5613,-0.0925216]]], + [51,516.779,[[2483.94,-2002.69,33.6833,210.099,-73.0505],[2453.19,-1903,33.1833,207.062,-72.6533],[2421.17,-1801.76,32.6667,203.884,-72.227],[2388.89,-1702.33,32.15,200.667,-71.7836],[2355.3,-1601.63,31.6167,197.306,-71.3069],[2321.45,-1502.92,31.0833,193.905,-70.8096],[2285.19,-1400.26,30.5167,190.25,-70.2572],[2249.7,-1302.84,29.9667,186.662,-69.6956],[2211.77,-1201.93,29.3833,182.816,-69.0709],[2172.43,-1100.79,28.7833,178.819,-68.3946],[2132.77,-1002.36,28.1833,174.783,-67.6815],[2090.56,-901.466,27.55,170.484,-66.8855],[2046.88,-801.156,26.9,166.035,-66.0183],[2001.71,-701.741,26.2333,161.438,-65.0712],[1953.88,-601.19,25.5333,156.581,-64.0079],[1903.34,-500.128,24.8,151.468,-62.8105],[1851.22,-401.363,24.05,146.223,-61.4878],[1795.14,-301.212,23.25,140.626,-59.9551],[1735.03,-200.77,22.4,134.696,-58.1715],[1670.81,-101.224,21.5,128.462,-56.0856],[1600.01,-0.583815,20.5167,121.744,-53.5407],[1522.47,98.8484,19.45,114.629,-50.4171],[1433.15,199.701,18.2333,106.836,-46.3154],[1328.03,299.995,16.8167,98.3908,-40.6878],[1194.13,399.604,15.0333,89.1742,-32.0813],[961.415,499.824,11.9833,79.1232,-13.2151],[818.134,516.778,10.1333,77.8768,-0.0329149]]], + [52,531.069,[[2445.63,-2001.89,33.8833,210.206,-73.4319],[2415.55,-1901.95,33.3833,207.161,-73.0436],[2384.21,-1800.44,32.8667,203.974,-72.6268],[2352.62,-1700.75,32.35,200.747,-72.1933],[2320.78,-1602.89,31.8333,197.482,-71.7419],[2286.62,-1500.78,31.2833,193.963,-71.2407],[2252.18,-1400.81,30.7333,190.403,-70.7166],[2216.41,-1300.1,30.1667,186.694,-70.1511],[2180.34,-1201.74,29.6,182.943,-69.5577],[2141.85,-1100.19,29,178.93,-68.8969],[2103.04,-1001.36,28.4,174.876,-68.1999],[2061.75,-900.028,27.7667,170.557,-67.4218],[2020.11,-801.813,27.1333,166.199,-66.5963],[1975.92,-701.846,26.4667,161.577,-65.6716],[1929.13,-600.71,25.7667,156.691,-64.633],[1880.83,-501.29,25.05,151.661,-63.4906],[1829.84,-401.782,24.3,146.379,-62.2001],[1774.99,-300.831,23.5,140.736,-60.7037],[1717.36,-201.458,22.6667,134.867,-58.9971],[1654.56,-100.865,21.7667,128.565,-56.9615],[1586.49,-0.721935,20.8,121.877,-54.5197],[1511.87,98.6384,19.75,114.762,-51.5203],[1426.95,198.684,18.5667,107.025,-47.6323],[1326.64,299.358,17.1833,98.5357,-42.2801],[1200.71,399.489,15.4667,89.2342,-34.2074],[1000.98,499.983,12.7833,78.9562,-18.0697],[811.948,531.066,10.2833,76.1645,-0.115462]]], + [53,545.233,[[2405.94,-2001.87,34.0833,210.335,-73.8194],[2376.52,-1901.67,33.5833,207.283,-73.4401],[2346.87,-1803.14,33.0833,204.191,-73.0464],[2315.99,-1703.1,32.5667,200.957,-72.6235],[2283.85,-1601.77,32.0333,197.576,-72.1686],[2251.46,-1502.43,31.5,194.154,-71.6941],[2217.79,-1402.09,30.95,190.583,-71.1827],[2182.81,-1301,30.3833,186.861,-70.6308],[2147.56,-1202.25,29.8167,183.097,-70.0517],[2109.93,-1100.28,29.2167,179.068,-69.4067],[2071.99,-1001.03,28.6167,174.997,-68.7263],[2032.68,-901.893,28,170.773,-67.9872],[1990.9,-800.587,27.35,166.279,-67.1604],[1947.7,-700.141,26.6833,161.632,-66.257],[1903.05,-600.871,26,156.834,-65.2672],[1855.83,-500.829,25.2833,151.772,-64.1523],[1806,-400.664,24.5333,146.452,-62.8924],[1753.5,-301.068,23.75,140.882,-61.4625],[1697.17,-200.832,22.9167,134.96,-59.7975],[1636.94,-101.115,22.0333,128.711,-57.8486],[1571.58,-1.48737,21.0833,122.056,-55.51],[1498.67,99.3034,20.0333,114.833,-52.5857],[1416.87,199.634,18.8667,107.061,-48.8445],[1322.43,299.035,17.5333,98.6624,-43.8148],[1204.27,399.143,15.8833,89.3343,-36.2607],[1027.61,499.741,13.45,78.9208,-22.0391],[803.757,545.231,10.4167,74.4393,-0.0986445]]], + [54,559.252,[[2364.83,-2002.65,34.2833,210.488,-74.2127],[2336.08,-1902.17,33.7833,207.428,-73.8427],[2306.14,-1800.1,33.2667,204.225,-73.4455],[2276.94,-1703.05,32.7667,201.086,-73.0459],[2245.54,-1601.41,32.2333,197.696,-72.602],[2213.9,-1501.77,31.7,194.263,-72.1389],[2181,-1401.11,31.15,190.681,-71.6398],[2147.84,-1302.64,30.6,187.056,-71.1173],[2112.39,-1200.61,30.0167,183.167,-70.5358],[2076.65,-1101.1,29.4333,179.235,-69.924],[2039.58,-1001.41,28.8333,175.148,-69.2605],[2001.19,-901.823,28.2167,170.904,-68.5396],[1960.38,-800.04,27.5667,166.389,-67.7331],[1919.23,-701.579,26.9167,161.835,-66.8745],[1875.62,-601.705,26.2333,157.01,-65.91],[1829.51,-501.023,25.5167,151.917,-64.8234],[1780.83,-400.183,24.7667,146.56,-63.5949],[1730.66,-301.955,24,141.067,-62.231],[1675.65,-200.836,23.1667,135.093,-60.6088],[1616.83,-100.172,22.2833,128.781,-58.7085],[1554.13,-1.21549,21.35,122.166,-56.4684],[1484.07,99.3334,20.3167,114.956,-53.6642],[1405.36,199.931,19.1667,107.155,-50.0714],[1315.5,299.089,17.8667,98.7635,-45.2949],[1203.7,399.577,16.2667,89.3718,-38.16],[1044.43,499.966,14.0167,78.8875,-25.3637],[794.859,559.25,10.55,72.6941,-0.10453]]], + [55,573.114,[[2321.41,-2000.87,34.4667,210.563,-74.5998],[2293.34,-1900.16,33.9667,207.495,-74.2388],[2265.06,-1801.13,33.4667,204.387,-73.864],[2235.59,-1700.57,32.95,201.135,-73.4612],[2205.9,-1601.84,32.4333,197.841,-73.0418],[2175,-1501.87,31.9,194.398,-72.5904],[2142.89,-1400.9,31.35,190.805,-72.1038],[2110.51,-1302.09,30.8,187.168,-71.5944],[2076.9,-1202.59,30.2333,183.377,-71.0439],[2042.01,-1102.65,29.65,179.431,-70.4481],[2005.84,-1002.52,29.05,175.328,-69.802],[1968.36,-902.471,28.4333,171.067,-69.0998],[1928.53,-800.194,27.7833,166.531,-68.3141],[1888.38,-701.235,27.1333,161.953,-67.4773],[1845.81,-600.832,26.45,157.102,-66.5372],[1801.85,-501.898,25.75,152.097,-65.5033],[1754.35,-400.363,25,146.705,-64.307],[1705.39,-301.419,24.2333,141.171,-62.9784],[1652.79,-201.493,23.4167,135.267,-61.4303],[1596.48,-101.716,22.55,129.014,-59.6169],[1535.31,-1.58942,21.6167,122.322,-57.4383],[1468.07,98.7007,20.6,115.131,-54.7545],[1392.42,199.546,19.4667,107.308,-51.3114],[1305.9,299.582,18.1833,98.8328,-46.723],[1201.44,399.076,16.65,89.5137,-40.0741],[1055.46,499.995,14.5333,78.9116,-28.3833],[784.065,573.114,10.6667,70.9356,-0.00298628]]], + [56,586.797,[[2277.53,-2003.32,34.6667,210.763,-75.0045],[2250.16,-1902.32,34.1667,207.689,-74.6531],[2222.57,-1802.99,33.6667,204.574,-74.2882],[2193.84,-1702.12,33.15,201.314,-73.8961],[2164.88,-1603.08,32.6333,198.012,-73.4878],[2134.74,-1502.79,32.1,194.56,-73.0483],[2103.42,-1401.47,31.55,190.956,-72.5745],[2071.85,-1302.32,31,187.307,-72.0784],[2039.06,-1202.47,30.4333,183.504,-71.5423],[2005.04,-1102.16,29.85,179.543,-70.962],[1969.76,-1001.65,29.25,175.424,-70.3325],[1933.21,-901.194,28.6333,171.145,-69.6483],[1895.36,-801.085,28,166.705,-68.9028],[1856.2,-701.612,27.35,162.105,-68.0885],[1814.7,-600.664,26.6667,157.228,-67.1734],[1771.83,-501.166,25.9667,152.194,-66.1666],[1726.54,-401.241,25.2333,146.887,-65.0283],[1678.8,-301.56,24.4667,141.313,-63.7358],[1627.52,-200.843,23.65,135.362,-62.229],[1572.62,-100.218,22.7833,129.05,-60.4628],[1514.05,-0.906974,21.8667,122.407,-58.3788],[1449.58,98.958,20.8667,115.241,-55.81],[1376.93,199.863,19.75,107.409,-52.51],[1294.82,299.332,18.5,98.9733,-48.1657],[1195.26,399.594,17,89.5646,-41.8429],[1062.08,499.647,15.0167,79.0041,-31.2078],[773.769,586.796,10.8,69.1514,-0.0569679]]], + [57,600.289,[[2231.37,-2003.24,34.85,210.886,-75.4033],[2204.69,-1902,34.35,207.805,-75.0612],[2177.8,-1802.42,33.85,204.683,-74.706],[2149.8,-1701.28,33.3333,201.414,-74.3242],[2121.58,-1601.98,32.8167,198.103,-73.9267],[2092.21,-1501.42,32.2833,194.641,-73.4987],[2062.62,-1402.86,31.75,191.135,-73.0516],[2030.92,-1300.38,31.1833,187.364,-72.5542],[1998.96,-1200.23,30.6167,183.547,-72.032],[1966.75,-1102.44,30.05,179.686,-71.4832],[1932.38,-1001.53,29.45,175.55,-70.8708],[1896.76,-900.666,28.8333,171.253,-70.205],[1859.89,-800.129,28.2,166.794,-69.4795],[1821.73,-700.213,27.55,162.172,-68.6868],[1782.28,-601.223,26.8833,157.389,-67.8182],[1740.52,-501.144,26.1833,152.326,-66.8393],[1696.4,-400.604,25.45,146.986,-65.732],[1649.89,-300.276,24.6833,141.374,-64.4742],[1600.95,-200.874,23.8833,135.498,-63.0384],[1548.51,-101.269,23.0333,129.252,-61.3556],[1491.47,-0.894107,22.1167,122.539,-59.3314],[1429.74,98.5317,21.1333,115.404,-56.8777],[1360.05,199.481,20.0333,107.568,-53.7217],[1281.17,299.567,18.8,99.075,-49.5593],[1187.5,399.247,17.35,89.7091,-43.6271],[1063.36,499.957,15.45,79.0431,-33.743],[778.46,599.962,11.1667,67.3128,-2.08701],[761.633,600.289,10.9167,67.3541,-0.000967134]]], + [58,613.574,[[2182.99,-2000.65,35.0167,210.931,-75.7969],[2157.88,-1902.56,34.5333,207.946,-75.4752],[2131.71,-1802.72,34.0333,204.817,-75.1298],[2104.44,-1701.31,33.5167,201.54,-74.7586],[2076.96,-1601.73,33,198.22,-74.372],[2048.38,-1500.88,32.4667,194.748,-73.9558],[2019.56,-1402.04,31.9333,191.233,-73.521],[1989.61,-1302.24,31.3833,187.562,-73.0518],[1958.51,-1201.7,30.8167,183.733,-72.5445],[1926.23,-1100.69,30.2333,179.744,-71.9953],[1893.7,-1002.21,29.65,175.709,-71.4164],[1859.03,-900.918,29.0333,171.395,-70.7695],[1824.08,-802.555,28.4167,167.035,-70.0835],[1786.95,-702.093,27.7667,162.392,-69.3142],[1747.59,-600.096,27.0833,157.465,-68.4492],[1707.91,-501.862,26.4,152.496,-67.5206],[1664.98,-400.689,25.6667,147.124,-66.4452],[1620.7,-301.835,24.9167,141.596,-65.2509],[1573.08,-201.616,24.1167,135.676,-63.8578],[1522.05,-101.134,23.2667,129.377,-62.224],[1467.56,-1.58116,22.3667,122.72,-60.295],[1407.5,99.0238,21.3833,115.5,-57.9132],[1340.73,199.837,20.3,107.67,-54.8949],[1266.07,299.051,19.1,99.2472,-50.9664],[1177.07,399.067,17.6833,89.8439,-45.3495],[1061.69,499.768,15.8667,79.154,-36.1955],[857.61,599.913,12.7,66.9928,-14.0308],[749.929,613.572,11.05,65.5324,-0.111994]]], + [59,626.634,[[2134.15,-2002.37,35.2,211.104,-76.207],[2108.89,-1900.66,34.7,208.009,-75.8837],[2083.42,-1800.6,34.2,204.872,-75.5479],[2057.76,-1702.22,33.7,201.693,-75.1989],[2031.04,-1602.36,33.1833,198.365,-74.8236],[2003.24,-1501.21,32.65,194.884,-74.4194],[1975.21,-1402.07,32.1167,191.359,-73.9971],[1946.09,-1301.95,31.5667,187.677,-73.5413],[1915.84,-1201.09,31,183.836,-73.0486],[1885.35,-1102.6,30.4333,179.948,-72.5306],[1852.81,-1000.92,29.8333,175.783,-71.9525],[1820.01,-901.975,29.2333,171.569,-71.3413],[1785.11,-800.536,28.6,167.072,-70.6571],[1749.92,-702.229,27.9667,162.528,-69.9289],[1712.59,-602.183,27.3,157.699,-69.1104],[1673.07,-500.984,26.6,152.582,-68.1874],[1632.27,-401.522,25.8833,147.301,-67.1674],[1589.23,-301.995,25.1333,141.738,-66.0088],[1542.94,-201.051,24.3333,135.775,-64.6568],[1494.3,-101.717,23.5,129.547,-63.103],[1441.33,-1.20239,22.6,122.827,-61.232],[1383.94,98.812,21.6333,115.649,-58.9612],[1320.05,199.476,20.5667,107.83,-56.081],[1248.52,299.063,19.3833,99.3748,-52.3273],[1164.08,399.114,18,89.9609,-47.0132],[1057.16,499.178,16.2667,79.3227,-38.565],[883.177,599.943,13.4833,66.9484,-19.8307],[736.444,626.632,11.1667,63.6978,-0.110691]]], + [60,639.456,[[2083.14,-2001.61,35.3667,211.199,-76.6123],[2059.41,-1903.05,34.8833,208.202,-76.309],[2034.68,-1802.71,34.3833,205.059,-75.9835],[2008.92,-1700.79,33.8667,201.766,-75.6336],[1982.96,-1600.68,33.35,198.43,-75.2691],[1956.79,-1502.43,32.8333,195.049,-74.8891],[1929.57,-1402.97,32.3,191.514,-74.4796],[1901.27,-1302.53,31.75,187.822,-74.0376],[1871.89,-1201.34,31.1833,183.969,-73.5597],[1842.27,-1102.5,30.6167,180.069,-73.0572],[1810.66,-1000.46,30.0167,175.889,-72.4964],[1778.8,-901.144,29.4167,171.659,-71.9033],[1745.79,-801.953,28.8,167.263,-71.2573],[1710.72,-700.61,28.15,162.58,-70.5324],[1674.45,-600.144,27.4833,157.726,-69.7377],[1636.98,-500.875,26.8,152.705,-68.8634],[1597.36,-400.855,26.0833,147.394,-67.8741],[1555.55,-300.74,25.3333,141.796,-66.75],[1511.53,-201.223,24.55,135.916,-65.4663],[1464.3,-101.104,23.7167,129.639,-63.96],[1413.82,-1.54683,22.8333,122.983,-62.1805],[1358.1,99.5374,21.8667,115.727,-59.9799],[1297.03,199.881,20.8167,107.929,-57.2318],[1228.57,299.647,19.65,99.4527,-53.6455],[1148.59,399.449,18.3,90.0528,-48.6218],[1048.84,499.147,16.6333,79.437,-40.7631],[896.344,599.615,14.1167,67.0194,-24.4538],[722.297,639.454,11.2833,61.8449,-0.138757]]], + [61,652.023,[[2030.83,-2001.8,35.5333,211.321,-77.0231],[2007.81,-1903.01,35.05,208.318,-76.7292],[1983.81,-1802.43,34.55,205.168,-76.4136],[1958.81,-1700.27,34.0333,201.868,-76.0744],[1934.43,-1603.13,33.5333,198.631,-75.7327],[1908.22,-1501.42,33,195.133,-75.3526],[1881.81,-1401.7,32.4667,191.589,-74.9555],[1854.35,-1300.99,31.9167,187.885,-74.5269],[1826.68,-1202.46,31.3667,184.135,-74.0774],[1797.09,-1100.39,30.7833,180.107,-73.5761],[1767.27,-1000.85,30.2,176.029,-73.0475],[1736.36,-901.152,29.6,171.784,-72.473],[1704.33,-801.563,28.9833,167.371,-71.847],[1671.18,-702.367,28.35,162.788,-71.1632],[1636,-601.375,27.6833,157.914,-70.3941],[1599.65,-501.561,27,152.868,-69.5479],[1561.21,-400.966,26.2833,147.528,-68.5902],[1520.66,-300.242,25.5333,141.896,-67.5015],[1477.95,-200.084,24.75,135.976,-66.2576],[1433.06,-101.234,23.9333,129.778,-64.8279],[1384.1,-0.812037,23.05,123.063,-63.1048],[1330.98,99.5379,22.1,115.858,-61.0112],[1272.71,199.55,21.0667,108.087,-58.3954],[1207.27,299.485,19.9167,99.5981,-54.9781],[1131.66,398.97,18.6,90.2286,-50.2449],[1036.91,499.877,16.9667,79.4715,-42.8005],[900.938,599.551,14.65,67.0925,-28.3221],[706.489,652.022,11.3833,59.9788,-0.043247]]], + [62,664.32,[[1977.24,-2002.97,35.7,211.47,-77.4393],[1954.16,-1900.55,35.2,208.356,-77.1449],[1931.67,-1803.12,34.7167,205.304,-76.8494],[1907.44,-1700.69,34.2,201.997,-76.5211],[1883.02,-1600.09,33.6833,198.645,-76.1791],[1858.41,-1501.32,33.1667,195.247,-75.8225],[1832.81,-1401.33,32.6333,191.693,-75.4381],[1806.2,-1300.34,32.0833,187.979,-75.0231],[1779.38,-1201.52,31.5333,184.217,-74.5879],[1751.53,-1102.03,30.9667,180.293,-74.1167],[1722.64,-1002.12,30.3833,176.202,-73.6055],[1692.68,-902.02,29.7833,171.943,-73.0499],[1661.65,-802.02,29.1667,167.513,-72.4444],[1629.53,-702.397,28.5333,162.912,-71.7829],[1595.44,-600.952,27.8667,158.016,-71.0387],[1560.21,-500.669,27.1833,152.946,-70.2197],[1523.84,-401.88,26.4833,147.703,-69.3149],[1484.55,-300.527,25.7333,142.039,-68.2625],[1444.06,-201.798,24.9667,136.208,-67.0863],[1399.68,-100.16,24.1333,129.836,-65.6761],[1353.14,-0.823273,23.2667,123.192,-64.0408],[1302.6,98.7834,22.3333,116.044,-62.0538],[1247.07,198.453,21.3167,108.307,-59.5705],[1183.7,299.927,20.1667,99.6893,-56.2709],[1112.33,398.825,18.8833,90.3722,-51.8154],[1023.42,499.673,17.3,79.6175,-44.8557],[899.431,599.75,15.1167,67.153,-31.7137],[691.05,664.318,11.5,58.0906,-0.134875]]], + [63,676.336,[[1921.61,-2001.68,35.85,211.542,-77.8514],[1900.02,-1902.46,35.3667,208.526,-77.5762],[1877.5,-1801.44,34.8667,205.363,-77.2808],[1854.81,-1702.09,34.3667,202.156,-76.9736],[1831.17,-1601.21,33.85,198.796,-76.6431],[1807.36,-1502.17,33.3333,195.391,-76.2985],[1782.58,-1401.9,32.8,191.828,-75.927],[1756.83,-1300.61,32.25,188.105,-75.5259],[1730.87,-1201.5,31.7,184.332,-75.1052],[1703.92,-1101.7,31.1333,180.396,-74.6497],[1675.95,-1001.45,30.55,176.292,-74.1556],[1646.96,-901.023,29.95,172.018,-73.6183],[1616.93,-800.675,29.3333,167.571,-73.0328],[1585.84,-700.692,28.7,162.952,-72.393],[1553.67,-601.367,28.05,158.157,-71.6916],[1519.59,-500.597,27.3667,153.063,-70.9004],[1484.39,-401.305,26.6667,147.794,-70.0261],[1447.22,-301.621,25.9333,142.225,-69.0324],[1407.19,-200.117,25.15,136.23,-67.8714],[1365.98,-101.839,24.35,130.07,-66.5641],[1320.96,-1.60608,23.4833,123.373,-64.9874],[1272.07,98.9755,22.55,116.158,-63.07],[1218.35,199.718,21.5333,108.333,-60.6707],[1158.83,299.608,20.4167,99.8476,-57.5776],[1090.71,399.069,19.15,90.4777,-53.337],[1007.46,499.471,17.6167,79.7666,-46.8422],[894.037,599.578,15.55,67.2796,-34.8832],[674.014,676.334,11.6,56.1894,-0.0994391]]], + [64,688.051,[[1864.75,-2001.41,36,211.641,-78.2692],[1843.88,-1901.99,35.5167,208.62,-78.0035],[1822.11,-1800.76,35.0167,205.45,-77.7181],[1800.18,-1701.19,34.5167,202.236,-77.4214],[1777.34,-1600.09,34,198.868,-77.1022],[1754.32,-1500.83,33.4833,195.454,-76.7694],[1730.37,-1400.32,32.95,191.883,-76.4105],[1706.23,-1301.83,32.4167,188.263,-76.035],[1681.15,-1202.41,31.8667,184.481,-75.6292],[1655.1,-1102.29,31.3,180.533,-75.1897],[1628.08,-1001.71,30.7167,176.416,-74.7129],[1600.06,-900.927,30.1167,172.128,-74.1944],[1571.04,-800.216,29.5,167.666,-73.6292],[1541.79,-702.457,28.8833,163.152,-73.0283],[1509.91,-600.141,28.2167,158.214,-72.3344],[1477.78,-501.381,27.55,153.223,-71.5895],[1443.77,-401.566,26.85,147.928,-70.7464],[1407.86,-301.33,26.1167,142.328,-69.7878],[1370.01,-201.349,25.35,136.426,-68.6923],[1329.36,-100.339,24.5333,130.096,-67.4052],[1286.7,-1.31403,23.6833,123.477,-65.9128],[1240.31,98.3886,22.7667,116.327,-64.0978],[1189.28,198.638,21.7667,108.548,-61.8263],[1131.8,299.92,20.65,99.948,-58.8479],[1066.87,399.741,19.4,90.5396,-54.8135],[989.11,499.332,17.9167,79.9101,-48.7635],[884.05,599.991,15.9333,67.3362,-37.7272],[656.38,688.049,11.7,54.271,-0.0966951]]], + [65,699.455,[[1806.67,-2002.16,36.15,211.768,-78.6922],[1786.52,-1902.53,35.6667,208.741,-78.4361],[1765.52,-1801.07,35.1667,205.565,-78.161],[1744.36,-1701.29,34.6667,202.345,-77.875],[1723.03,-1603.19,34.1667,199.08,-77.5775],[1700.1,-1500.46,33.6333,195.549,-77.2465],[1677.71,-1402.82,33.1167,192.081,-76.9115],[1653.69,-1300.96,32.5667,188.339,-76.5385],[1629.49,-1201.28,32.0167,184.547,-76.1471],[1604.35,-1100.89,31.45,180.587,-75.7232],[1578.28,-1000.03,30.8667,176.458,-75.2633],[1551.99,-901.737,30.2833,172.275,-74.7775],[1523.99,-800.648,29.6667,167.798,-74.2331],[1495.77,-702.507,29.05,163.267,-73.6542],[1465.78,-602.301,28.4,158.435,-73.0028],[1434.01,-500.595,27.7167,153.297,-72.2676],[1401.2,-400.335,27.0167,147.977,-71.4548],[1367.34,-301.867,26.3,142.476,-70.5523],[1330.82,-201.282,25.5333,136.541,-69.4975],[1292.41,-101.641,24.7333,130.3,-68.2842],[1251.27,-1.81168,23.8833,123.632,-66.8488],[1206.53,98.7669,22.9667,116.421,-65.1018],[1157.3,199.981,21.9667,108.563,-62.9129],[1103.52,299.457,20.8833,100.115,-60.1314],[1041.75,399.632,19.65,90.6786,-56.3057],[968.464,499.323,18.2,80.0395,-50.6231],[871.462,599.905,16.3,67.4684,-40.4794],[638.151,699.453,11.8,52.3362,-0.13011]]], + [66,710.533,[[1746.7,-2000.5,36.2833,211.819,-79.1119],[1727.29,-1900.7,35.8,208.786,-78.8653],[1707.73,-1802.43,35.3167,205.711,-78.6093],[1687.34,-1702.41,34.8167,202.484,-78.3342],[1666.11,-1600.83,34.3,199.103,-78.0382],[1644.71,-1501.08,33.7833,195.675,-77.7295],[1622.44,-1400.07,33.25,192.086,-77.3966],[1600,-1301.08,32.7167,188.449,-77.0483],[1576.69,-1201.13,32.1667,184.646,-76.6717],[1552.47,-1100.45,31.6,180.676,-76.2638],[1528.07,-1002.16,31.0333,176.654,-75.8342],[1502.03,-900.711,30.4333,172.339,-75.3535],[1475.79,-802.01,29.8333,167.969,-74.844],[1447.86,-700.849,29.2,163.299,-74.2719],[1418.98,-600.306,28.55,158.447,-73.6446],[1389.12,-500.687,27.8833,153.413,-72.9543],[1358.27,-402.314,27.2,148.197,-72.1918],[1324.9,-301.016,26.4667,142.541,-71.3041],[1290.5,-202.058,25.7167,136.702,-70.312],[1253.51,-101.758,24.9167,130.424,-69.146],[1213.88,-1.22291,24.0667,123.709,-67.7658],[1171.58,98.3475,23.1667,116.572,-66.1173],[1124.98,198.926,22.1833,108.77,-64.0516],[1073.2,299.653,21.1,100.221,-61.3816],[1014.53,399.986,19.8833,90.7691,-57.7559],[945.61,499.494,18.4667,80.1478,-52.4253],[856.362,599.402,16.65,67.6618,-43.1394],[692.182,699.861,13.35,52.1208,-15.9917],[618.489,710.533,11.8833,50.3882,-0.0188724]]], + [67,721.272,[[1686.22,-2003.38,36.4333,212.003,-79.5452],[1667.56,-1903.35,35.95,208.966,-79.3084],[1648.1,-1801.48,35.45,205.779,-79.0541],[1628.49,-1701.27,34.95,202.546,-78.7897],[1608.73,-1602.75,34.45,199.268,-78.5145],[1588.15,-1502.74,33.9333,195.833,-78.2182],[1566.74,-1401.46,33.4,192.238,-77.8986],[1545.17,-1302.19,32.8667,188.592,-77.5642],[1522.75,-1201.96,32.3167,184.781,-77.2026],[1499.46,-1100.99,31.75,180.801,-76.811],[1476,-1002.4,31.1833,176.767,-76.3984],[1450.96,-900.634,30.5833,172.44,-75.9368],[1425.73,-801.612,29.9833,168.056,-75.4474],[1398.88,-700.109,29.35,163.37,-74.8979],[1371.82,-601.757,28.7167,158.625,-74.3111],[1343.11,-501.682,28.05,153.572,-73.6488],[1312.73,-400.475,27.35,148.205,-72.8987],[1281.37,-301.028,26.6333,142.651,-72.0652],[1248.3,-201.543,25.8833,136.782,-71.1127],[1212.73,-100.676,25.0833,130.466,-69.9928],[1175.39,-1.45512,24.25,123.839,-68.6938],[1134.73,98.8966,23.35,116.646,-67.1118],[1090.69,198.689,22.3833,108.907,-65.1636],[1041.69,299.051,21.3167,100.395,-62.6447],[986.09,399.537,20.1167,90.937,-59.2208],[920.641,499.893,18.7167,80.228,-54.1741],[838.051,599.376,16.9667,67.7915,-45.6115],[698.793,699.982,14.05,52.1585,-22.9039],[599.109,721.27,11.9833,48.4213,-0.132577]]], + [68,731.658,[[1623.31,-2000.4,36.55,212.007,-79.9675],[1605.39,-1900.23,36.0667,208.964,-79.7402],[1587.34,-1801.59,35.5833,205.877,-79.5043],[1568.52,-1701.18,35.0833,202.639,-79.2508],[1549.55,-1602.46,34.5833,199.354,-78.9869],[1529.8,-1502.24,34.0667,195.912,-78.7028],[1509.25,-1400.75,33.5333,192.309,-78.3963],[1488.54,-1301.25,33,188.655,-78.0755],[1467.02,-1200.79,32.45,184.834,-77.7287],[1445.34,-1102.53,31.9,180.961,-77.3643],[1422.16,-1000.75,31.3167,176.798,-76.9571],[1398.79,-901.523,30.7333,172.579,-76.5268],[1374.58,-802.164,30.1333,168.182,-76.058],[1348.81,-700.304,29.5,163.481,-75.5314],[1322.85,-601.59,28.8667,158.72,-74.969],[1295.3,-501.131,28.2,153.647,-74.3342],[1266.84,-401.889,27.5167,148.387,-73.6327],[1236.75,-301.924,26.8,142.809,-72.835],[1205.02,-201.89,26.05,136.91,-71.9229],[1170.9,-100.432,25.25,130.558,-70.8501],[1135.07,-0.590791,24.4167,123.889,-69.6051],[1096.78,98.6309,23.5333,116.778,-68.1178],[1054.53,199.299,22.5667,108.971,-66.2521],[1008.26,299.132,21.5167,100.505,-63.8775],[955.67,399.586,20.3333,91.052,-60.6468],[894.398,499.461,18.9667,80.4012,-55.9391],[817.473,599.169,17.2667,67.9464,-48.0032],[695.481,699.88,14.6,52.2724,-28.3284],[578.366,731.657,12.0667,46.4417,-0.0966186]]], + [69,741.681,[[1559.91,-2001.99,36.6833,212.145,-80.4028],[1542.76,-1901.62,36.2,209.097,-80.1854],[1525.46,-1802.78,35.7167,206.006,-79.9598],[1507.44,-1702.16,35.2167,202.762,-79.7172],[1489.28,-1603.23,34.7167,199.472,-79.4648],[1470.36,-1502.79,34.2,196.024,-79.193],[1450.68,-1401.06,33.6667,192.413,-78.8998],[1430.85,-1301.34,33.1333,188.752,-78.593],[1410.24,-1200.63,32.5833,184.922,-78.2611],[1389.47,-1102.12,32.0333,181.04,-77.9125],[1367.27,-1000.08,31.45,176.866,-77.5229],[1344.9,-900.59,30.8667,172.635,-77.1111],[1321.71,-800.957,30.2667,168.224,-76.6623],[1297.68,-701.452,29.65,163.633,-76.1719],[1272.82,-602.36,29.0167,158.856,-75.6344],[1246.44,-501.499,28.35,153.766,-75.0275],[1219.19,-401.842,27.6667,148.485,-74.3568],[1190.38,-301.437,26.95,142.882,-73.5938],[1160,-200.939,26.2,136.955,-72.7212],[1128.01,-101.049,25.4167,130.702,-71.717],[1093.7,-0.562983,24.5833,123.993,-70.5274],[1057.05,99.3487,23.7,116.832,-69.1053],[1017.3,199.1,22.75,109.097,-67.3529],[973.007,299.926,21.7,100.547,-65.0834],[924.089,398.823,20.55,91.2443,-62.0861],[866.166,499.302,19.2,80.5401,-57.6533],[794.002,599.722,17.5333,67.9959,-50.2298],[686.084,699.642,15.0667,52.4282,-32.9674],[557.105,741.68,12.15,44.447,-0.10227]]], + [70,751.324,[[1494.83,-2001.23,36.8,212.208,-80.8356],[1478.43,-1900.7,36.3167,209.156,-80.6279],[1461.91,-1801.7,35.8333,206.059,-80.4125],[1444.68,-1700.91,35.3333,202.809,-80.1809],[1427.33,-1601.81,34.8333,199.513,-79.9398],[1409.25,-1501.2,34.3167,196.057,-79.6801],[1391.04,-1402.45,33.8,192.553,-79.4089],[1372.09,-1302.48,33.2667,188.884,-79.1162],[1352.4,-1201.51,32.7167,185.047,-78.7996],[1332.56,-1102.75,32.1667,181.156,-78.467],[1311.35,-1000.43,31.5833,176.972,-78.0952],[1289.97,-900.661,31,172.73,-77.7022],[1267.82,-800.738,30.4,168.307,-77.2739],[1244.87,-700.932,29.7833,163.701,-76.8058],[1221.11,-601.528,29.15,158.909,-76.2926],[1195.91,-500.336,28.4833,153.801,-75.7132],[1169.87,-400.337,27.8,148.499,-75.0726],[1143,-301.865,27.1,143.003,-74.3614],[1113.97,-200.881,26.35,137.049,-73.5291],[1083.41,-100.479,25.5667,130.765,-72.5709],[1051.3,-1.40486,24.75,124.152,-71.4594],[1016.29,99.2236,23.8667,116.944,-70.1042],[978.328,199.753,22.9167,109.15,-68.4328],[936.698,299.91,21.8833,100.656,-66.3033],[889.981,399.941,20.7333,91.2446,-63.4441],[836.038,499.453,19.4167,80.6394,-59.3215],[769.213,599.373,17.8,68.1663,-52.4756],[671.798,699.615,15.4667,52.5539,-37.0156],[535.327,751.322,12.2333,42.4376,-0.156095]]], + [71,760.579,[[1428.69,-2001.59,36.9167,212.301,-81.2733],[1413.06,-1900.9,36.4333,209.244,-81.0756],[1397.31,-1801.73,35.95,206.143,-80.8704],[1380.9,-1700.77,35.45,202.888,-80.6498],[1364.36,-1601.49,34.95,199.586,-80.4202],[1347.13,-1500.69,34.4333,196.124,-80.1729],[1329.77,-1401.75,33.9167,192.612,-79.9147],[1311.72,-1301.59,33.3833,188.936,-79.6359],[1292.95,-1200.42,32.8333,185.09,-79.3343],[1274.04,-1101.45,32.2833,181.191,-79.0174],[1254.4,-1001.81,31.7167,177.116,-78.6736],[1234.04,-901.743,31.1333,172.864,-78.2997],[1212.92,-801.514,30.5333,168.431,-77.8922],[1191.05,-701.392,29.9167,163.812,-77.4468],[1168.42,-601.659,29.2833,159.006,-76.9585],[1144.41,-500.119,28.6167,153.88,-76.407],[1120.21,-402.161,27.95,148.689,-75.8126],[1093.99,-300.914,27.2333,143.041,-75.1198],[1066.94,-201.729,26.5,137.194,-74.3455],[1037.83,-100.792,25.7167,130.88,-73.4344],[1007.24,-1.15458,24.9,124.231,-72.377],[974.513,98.2415,24.0333,117.115,-71.113],[938.352,199.578,23.0833,109.264,-69.5249],[899.337,299.068,22.0667,100.834,-67.5348],[855.488,398.89,20.9333,91.4564,-64.8622],[804.113,499.958,19.6167,80.6939,-60.9479],[741.787,599.957,18.0333,68.2055,-54.573],[653.688,699.807,15.8167,52.6434,-40.655],[512.366,760.579,12.3,40.4157,-0.0336949]]], + [72,769.436,[[1361.51,-2003.11,37.0333,212.424,-81.7156],[1346.66,-1902.23,36.55,209.364,-81.5279],[1331.7,-1802.89,36.0667,206.259,-81.3332],[1316.1,-1701.74,35.5667,202.999,-81.1238],[1300.38,-1602.27,35.0667,199.692,-80.9059],[1284.01,-1501.28,34.55,196.225,-80.6711],[1267.52,-1402.14,34.0333,192.707,-80.426],[1250.36,-1301.76,33.5,189.024,-80.1613],[1232.53,-1200.38,32.95,185.171,-79.875],[1214.55,-1101.19,32.4,181.263,-79.5741],[1195.9,-1001.33,31.8333,177.179,-79.2476],[1176.54,-901.027,31.25,172.917,-78.8925],[1156.48,-800.555,30.65,168.471,-78.5055],[1135.7,-700.179,30.0333,163.84,-78.0825],[1114.19,-600.185,29.4,159.018,-77.6185],[1091.94,-500.869,28.75,154.005,-77.108],[1068.37,-400.129,28.0667,148.666,-76.5295],[1044.04,-300.892,27.3667,143.128,-75.8869],[1018.35,-201.292,26.6333,137.257,-75.152],[991.276,-102.01,25.8667,131.049,-74.3063],[962.214,-1.78568,25.05,124.366,-73.3042],[931.127,98.2396,24.1833,117.209,-72.1057],[897.379,198.552,23.25,109.443,-70.6273],[860.321,298.945,22.2333,100.944,-68.7422],[818.671,399.784,21.1,91.4699,-66.2068],[771.112,499.654,19.8167,80.8364,-62.5906],[713.175,599.694,18.2667,68.357,-56.6898],[632.685,699.967,16.1333,52.739,-44.0467],[489.605,769.434,12.3833,38.3784,-0.19544]]], + [73,777.878,[[1292.83,-2002.29,37.1333,212.474,-82.1562],[1278.76,-1901.28,36.65,209.409,-81.9785],[1264.58,-1801.8,36.1667,206.299,-81.7941],[1249.81,-1700.51,35.6667,203.034,-81.5958],[1234.91,-1600.9,35.1667,199.721,-81.3894],[1219.91,-1502.99,34.6667,196.36,-81.1743],[1203.78,-1400.46,34.1333,192.723,-80.9348],[1188.03,-1303.04,33.6167,189.149,-80.6921],[1171.14,-1201.43,33.0667,185.289,-80.4212],[1154.12,-1102.01,32.5167,181.373,-80.1366],[1136.45,-1001.91,31.95,177.282,-79.8278],[1118.11,-901.357,31.3667,173.01,-79.4919],[1099.11,-800.624,30.7667,168.554,-79.1256],[1079.96,-702.661,30.1667,164.036,-78.7364],[1059.59,-602.304,29.5333,159.203,-78.2981],[1037.98,-500.101,28.8667,154.046,-77.8029],[1016.2,-401.474,28.2,148.821,-77.2691],[993.158,-301.825,27.5,143.264,-76.6617],[968.827,-201.789,26.7667,137.371,-75.9669],[943.191,-102.047,26,131.136,-75.1673],[915.668,-1.32814,25.1833,124.421,-74.2193],[886.227,99.2264,24.3167,117.224,-73.085],[854.84,198.38,23.4,109.547,-71.7114],[819.749,299.557,22.3833,100.983,-69.9288],[780.891,399.866,21.2667,91.5585,-67.5667],[736.45,499.726,20,80.9302,-64.195],[682.784,599.526,18.4833,68.4898,-58.7476],[609.586,699.638,16.4333,52.9193,-47.3283],[465.737,777.876,12.45,36.3291,-0.17473]]], + [74,785.899,[[1223.19,-2002.65,37.2333,212.555,-82.6013],[1209.91,-1901.5,36.75,209.486,-82.4337],[1196.53,-1801.87,36.2667,206.372,-82.2597],[1182.58,-1700.43,35.7667,203.102,-82.0727],[1168.52,-1600.66,35.2667,199.784,-81.878],[1154.36,-1502.6,34.7667,196.418,-81.6752],[1139.61,-1403.08,34.25,192.89,-81.4564],[1124.27,-1302.32,33.7167,189.194,-81.2201],[1108.33,-1200.53,33.1667,185.327,-80.9646],[1092.26,-1100.93,32.6167,181.403,-80.696],[1075.58,-1000.64,32.05,177.303,-80.4046],[1058.77,-902.745,31.4833,173.144,-80.0969],[1040.83,-801.738,30.8833,168.679,-79.7518],[1022.26,-700.808,30.2667,164.024,-79.3745],[1003.03,-600.238,29.6333,159.177,-78.9606],[983.142,-500.327,28.9833,154.134,-78.5051],[962.588,-401.383,28.3167,148.893,-78.0018],[940.839,-301.397,27.6167,143.318,-77.4291],[917.876,-201.006,26.8833,137.402,-76.7738],[893.682,-100.89,26.1167,131.142,-76.0193],[868.238,-1.77464,25.3167,124.533,-75.1438],[840.456,99.336,24.45,117.299,-74.075],[810.839,199.083,23.5333,109.575,-72.7801],[778.271,299.329,22.5333,101.091,-71.1278],[742.157,399.116,21.4333,91.7244,-68.9389],[700.785,498.974,20.1833,81.1125,-65.813],[650.719,599.502,18.6833,68.5975,-60.7514],[583.93,699.585,16.7,53.0463,-50.3851],[441.44,785.897,12.5167,34.267,-0.212242]]], + [75,793.49,[[1152.2,-2000.69,37.3167,212.562,-83.0453],[1140.14,-1902.9,36.85,209.595,-82.8933],[1127.56,-1803.11,36.3667,206.477,-82.7299],[1114.45,-1701.51,35.8667,203.204,-82.5543],[1101.23,-1601.57,35.3667,199.882,-82.3714],[1087.47,-1500.1,34.85,196.398,-82.1744],[1073.6,-1400.47,34.3333,192.863,-81.9686],[1059.63,-1302.71,33.8167,189.277,-81.7536],[1044.64,-1200.74,33.2667,185.403,-81.5135],[1029.54,-1100.95,32.7167,181.472,-81.2612],[1013.86,-1000.46,32.15,177.364,-80.9874],[998.053,-902.357,31.5833,173.197,-80.6983],[981.193,-801.136,30.9833,168.722,-80.3741],[964.202,-702.679,30.3833,164.183,-80.0295],[946.13,-601.797,29.75,159.325,-79.6412],[927.438,-501.561,29.1,154.27,-79.2139],[908.118,-402.281,28.4333,149.014,-78.7416],[887.676,-301.939,27.7333,143.422,-78.2041],[866.092,-201.172,27,137.486,-77.589],[843.35,-100.659,26.2333,131.202,-76.8806],[819.435,-1.12552,25.4333,124.565,-76.0582],[793.826,98.5506,24.5833,117.435,-75.0744],[765.991,198.919,23.6667,109.668,-73.8599],[735.383,299.851,22.6667,101.126,-72.3089],[701.959,398.957,21.5833,91.8259,-70.2861],[663.08,499.878,20.3333,81.1001,-67.3516],[617.083,599.661,18.8667,68.6745,-62.7067],[555.921,699.97,16.9333,53.0896,-53.2406],[416.185,793.489,12.5667,32.1934,-0.0289032]]], + [76,800.636,[[1080.75,-2003.46,37.4167,212.706,-83.4989],[1069.06,-1902.04,36.9333,209.63,-83.3517],[1057.29,-1802.14,36.45,206.508,-83.1988],[1045.01,-1700.41,35.95,203.231,-83.0345],[1032.64,-1600.36,35.45,199.904,-82.8634],[1020.18,-1502.01,34.95,196.528,-82.6851],[1007.21,-1402.19,34.4333,192.988,-82.4928],[993.707,-1301.11,33.9,189.28,-82.2851],[980.105,-1202.06,33.3667,185.518,-82.0675],[965.971,-1102.07,32.8167,181.582,-81.8317],[951.296,-1001.37,32.25,177.466,-81.5758],[936.073,-900.199,31.6667,173.168,-81.2974],[920.732,-801.603,31.0833,168.808,-81.0025],[904.39,-700.212,30.4667,164.132,-80.671],[887.922,-601.785,29.85,159.391,-80.3173],[870.43,-501.293,29.2,154.323,-79.9176],[852.352,-401.749,28.5333,149.052,-79.476],[833.222,-301.127,27.8333,143.443,-78.9732],[813.025,-200.063,27.1,137.488,-78.3978],[792.208,-101.377,26.35,131.318,-77.7498],[769.832,-1.40161,25.55,124.655,-76.9817],[745.872,98.7488,24.7,117.492,-76.0623],[719.828,199.634,23.7833,109.685,-74.9267],[691.67,299.515,22.8,101.233,-73.5016],[660.402,399.405,21.7167,91.8611,-71.612],[624.517,499.976,20.4833,81.1734,-68.9071],[582.472,598.996,19.05,68.8574,-64.6772],[526.754,699.456,17.1667,53.2877,-56.1157],[401.617,799.968,12.9833,30.2897,-6.70571],[391.084,800.634,12.6333,30.1068,-0.201704]]], + [77,807.332,[[1007.66,-2000.39,37.4833,212.671,-83.9467],[997.155,-1902.38,37.0167,209.698,-83.8143],[986.194,-1802.35,36.5333,206.573,-83.6721],[974.767,-1700.49,36.0333,203.291,-83.5192],[963.251,-1600.31,35.5333,199.96,-83.36],[951.648,-1501.82,35.0333,196.58,-83.1941],[939.567,-1401.87,34.5167,193.035,-83.0151],[927,-1300.65,33.9833,189.322,-82.8219],[914.337,-1201.46,33.45,185.554,-82.6193],[901.178,-1101.31,32.9,181.611,-82.3999],[887.516,-1000.45,32.3333,177.488,-82.1617],[873.749,-901.98,31.7667,173.305,-81.9102],[859.06,-800.36,31.1667,168.812,-81.628],[844.258,-701.501,30.5667,164.254,-81.328],[828.513,-600.191,29.9333,159.373,-80.9901],[812.648,-502.051,29.3,154.423,-80.6278],[795.82,-402.224,28.6333,149.14,-80.2172],[778.013,-301.302,27.9333,143.516,-79.7497],[759.642,-202.175,27.2167,137.679,-79.2272],[739.836,-100.908,26.45,131.352,-78.6118],[719.007,-0.580008,25.65,124.664,-77.897],[696.704,99.9474,24.8,117.47,-77.0412],[672.904,199.467,23.9,109.767,-76.004],[646.697,299.937,22.9167,101.266,-74.6791],[618.044,399.017,21.85,91.9734,-72.9502],[585.102,499.253,20.6333,81.3342,-70.4753],[545.978,599.601,19.2,68.8603,-66.5477],[495.514,699.547,17.3667,53.3707,-58.8111],[399.141,799.896,13.9,30.3976,-23.2202],[365.107,807.331,12.6833,28.0096,-0.141835]]], + [78,813.57,[[934.165,-2002.08,37.5667,212.774,-84.4031],[924.097,-1900.46,37.0833,209.692,-84.2764],[913.952,-1800.35,36.6,206.563,-84.1447],[903.73,-1701.78,36.1167,203.387,-84.0079],[893.074,-1601.45,35.6167,200.052,-83.8608],[882.338,-1502.82,35.1167,196.669,-83.7074],[871.159,-1402.72,34.6,193.12,-83.542],[859.531,-1301.34,34.0667,189.402,-83.3634],[847.814,-1201.99,33.5333,185.629,-83.1761],[835.637,-1101.68,32.9833,181.68,-82.9732],[822.995,-1000.65,32.4167,177.552,-82.7529],[810.257,-902.006,31.85,173.362,-82.5204],[796.665,-800.202,31.25,168.861,-82.2595],[782.968,-701.157,30.65,164.294,-81.982],[768.784,-602.279,30.0333,159.533,-81.6779],[753.718,-501.309,29.3833,154.442,-81.3343],[738.147,-401.27,28.7167,149.146,-80.9544],[721.67,-300.123,28.0167,143.506,-80.5218],[704.67,-200.765,27.3,137.652,-80.0383],[686.743,-101.402,26.55,131.443,-79.4815],[667.473,-0.698024,25.75,124.732,-78.821],[647.245,98.3146,24.9167,117.653,-78.0464],[625.229,198.397,24.0167,109.916,-77.0897],[600.985,299.49,23.0333,101.371,-75.8671],[574.479,399.251,21.9667,92.0181,-74.2703],[544.425,498.978,20.7667,81.4376,-72.0163],[508.659,599.411,19.35,68.9651,-68.4362],[462.837,699.575,17.55,53.4579,-61.4372],[381.463,799.984,14.3833,30.4873,-32.1485],[338.797,813.568,12.7333,25.9016,-0.155417]]], + [79,819.34,[[859.567,-2001.49,37.6333,212.805,-84.859],[850.636,-1903.25,37.1667,209.826,-84.7466],[841.316,-1803,36.6833,206.695,-84.6258],[831.6,-1700.9,36.1833,203.407,-84.496],[821.809,-1600.48,35.6833,200.069,-84.3607],[811.943,-1501.75,35.1833,196.681,-84.2199],[801.671,-1401.55,34.6667,193.128,-84.0679],[790.986,-1300.06,34.1333,189.405,-83.9037],[780.218,-1200.6,33.6,185.626,-83.7316],[769.029,-1100.18,33.05,181.671,-83.5451],[757.755,-1001.98,32.5,177.657,-83.3488],[745.707,-900.275,31.9167,173.338,-83.129],[733.565,-801.141,31.3333,168.954,-82.896],[720.982,-701.894,30.7333,164.38,-82.6414],[707.597,-600.17,30.1,159.481,-82.3545],[694.109,-501.613,29.4667,154.51,-82.0469],[679.804,-401.343,28.8,149.203,-81.6982],[665.028,-302.319,28.1167,143.685,-81.3109],[649.047,-200.342,27.3833,137.68,-80.8569],[632.577,-100.712,26.6333,131.453,-80.3456],[615.243,-1.76919,25.85,124.861,-79.7521],[596.288,99.5919,25,117.614,-79.0268],[576.438,198.208,24.1167,109.989,-78.1645],[554.167,299.807,23.1333,101.402,-77.0425],[530.201,398.634,22.0833,92.1411,-75.601],[502.596,499.176,20.8833,81.4809,-73.5348],[470.133,599.494,19.4833,69.0261,-70.2902],[428.831,699.581,17.7167,53.5413,-64],[359.242,799.698,14.7667,30.6949,-39.486],[312.161,819.339,12.7833,23.7833,-0.261939]]], + [80,824.633,[[784.267,-2002.14,37.7,212.868,-85.3185],[775.838,-1900.32,37.2167,209.78,-85.2124],[767.344,-1800.02,36.7333,206.645,-85.1023],[758.786,-1701.25,36.25,203.463,-84.9879],[749.865,-1600.72,35.75,200.122,-84.8648],[740.876,-1501.88,35.25,196.73,-84.7365],[731.517,-1401.56,34.7333,193.173,-84.5981],[722.087,-1303.11,34.2167,189.563,-84.4533],[711.971,-1200.38,33.6667,185.662,-84.2919],[702.087,-1102.85,33.1333,181.823,-84.1272],[691.505,-1001.5,32.5667,177.683,-83.9432],[680.842,-902.541,32,173.482,-83.7488],[669.465,-800.397,31.4,168.967,-83.5307],[657.999,-701.009,30.8,164.385,-83.2988],[646.126,-601.776,30.1833,159.606,-83.0445],[633.515,-500.428,29.5333,154.496,-82.7571],[620.808,-402.464,28.8833,149.311,-82.4475],[607.017,-300.809,28.1833,143.647,-82.0862],[592.79,-200.924,27.4667,137.764,-81.6822],[577.786,-101.006,26.7167,131.521,-81.2169],[561.996,-1.75795,25.9333,124.91,-80.6768],[544.729,99.9367,25.0833,117.639,-80.0164],[526.645,198.902,24.2,109.985,-79.231],[506.703,299.237,23.2333,101.506,-78.2273],[484.873,398.645,22.1833,92.1958,-76.9165],[459.729,499.856,20.9833,81.4627,-75.0351],[430.512,599.867,19.6,69.0402,-72.1154],[393.609,699.598,17.8667,53.6146,-66.5061],[333.115,799.979,15.05,30.7172,-45.4092],[284.847,824.633,12.8167,21.6556,-0.0582101]]], + [81,829.445,[[708.033,-2000.52,37.75,212.86,-85.7778],[700.694,-1902.13,37.2833,209.876,-85.6855],[693.034,-1801.71,36.8,206.739,-85.5863],[685.316,-1702.83,36.3167,203.555,-85.4833],[677.271,-1602.18,35.8167,200.211,-85.3723],[669.165,-1503.22,35.3167,196.817,-85.2567],[660.725,-1402.77,34.8,193.257,-85.132],[651.945,-1301.04,34.2667,189.527,-84.9973],[643.098,-1201.33,33.7333,185.74,-84.8561],[633.905,-1100.64,33.1833,181.776,-84.703],[624.641,-1002.17,32.6333,177.753,-84.5419],[614.741,-900.187,32.05,173.422,-84.3615],[604.765,-800.766,31.4667,169.025,-84.1702],[594.426,-701.221,30.8667,164.437,-83.9611],[583.718,-601.826,30.25,159.651,-83.732],[572.345,-500.305,29.6,154.532,-83.4729],[560.885,-402.167,28.95,149.337,-83.1938],[548.449,-300.322,28.25,143.662,-82.8681],[535.619,-200.242,27.5333,137.766,-82.5038],[522.088,-100.117,26.7833,131.507,-82.0841],[507.847,-0.652985,26,124.878,-81.5969],[492.582,99.3405,25.1667,117.729,-81.0134],[476.276,198.684,24.2833,110.049,-80.3062],[458.294,299.436,23.3167,101.536,-79.4019],[438.61,399.301,22.2667,92.1807,-78.2201],[416.254,499.716,21.0833,81.5316,-76.5486],[390.231,599.446,19.7167,69.1558,-73.9548],[357.282,699.662,18,53.6719,-68.9619],[305.017,799.92,15.3,30.8374,-50.9358],[257.618,829.443,12.8667,19.5188,-0.402107]]], + [82,833.767,[[631.215,-2000.16,37.8,212.885,-86.2406],[624.678,-1901.7,37.3333,209.898,-86.1583],[617.856,-1801.22,36.85,206.759,-86.07],[610.981,-1702.26,36.3667,203.572,-85.9782],[603.815,-1601.54,35.8667,200.225,-85.8795],[596.595,-1502.51,35.3667,196.828,-85.7765],[589.078,-1401.98,34.85,193.265,-85.6655],[581.258,-1300.17,34.3167,189.531,-85.5454],[573.378,-1200.37,33.7833,185.739,-85.4197],[565.439,-1102.63,33.25,181.892,-85.2877],[556.939,-1001.05,32.6833,177.742,-85.1399],[548.374,-901.851,32.1167,173.53,-84.9838],[539.491,-802.264,31.5333,169.13,-84.8137],[530.283,-702.546,30.9333,164.536,-84.6278],[520.49,-600.322,30.3,159.614,-84.4183],[510.621,-501.26,29.6667,154.618,-84.1935],[500.153,-400.453,29,149.282,-83.9387],[489.341,-300.874,28.3167,143.731,-83.6555],[477.916,-200.578,27.6,137.825,-83.3314],[465.866,-100.225,26.85,131.553,-82.958],[453.185,-0.519108,26.0667,124.908,-82.5243],[439.591,99.733,25.2333,117.739,-82.0049],[425.071,199.352,24.35,110.036,-81.3751],[409.335,298.738,23.4,101.64,-80.5844],[391.808,399.096,22.35,92.2451,-79.5341],[372.183,498.739,21.1833,81.6895,-78.0707],[349.014,599.333,19.8167,69.2223,-75.7682],[319.965,699.797,18.1167,53.7082,-71.3747],[275.166,799.696,15.5167,30.9986,-56.085],[229.797,833.765,12.9,17.3736,-0.419179]]], + [83,837.598,[[553.843,-2001.08,37.85,212.943,-86.7062],[548.112,-1902.54,37.3833,209.956,-86.6342],[542.132,-1801.97,36.9,206.814,-86.5568],[536.107,-1702.94,36.4167,203.626,-86.4764],[529.826,-1602.13,35.9167,200.277,-86.3898],[523.498,-1503.01,35.4167,196.878,-86.2996],[516.908,-1402.4,34.9,193.312,-86.2023],[510.054,-1300.49,34.3667,189.575,-86.0973],[503.147,-1200.6,33.8333,185.78,-85.987],[496.188,-1102.76,33.3,181.929,-85.8714],[488.737,-1001.07,32.7333,177.776,-85.7418],[481.23,-901.775,32.1667,173.56,-85.6052],[473.443,-802.081,31.5833,169.154,-85.4561],[465.372,-702.252,30.9833,164.555,-85.2931],[457.014,-602.562,30.3667,159.757,-85.1144],[448.137,-500.727,29.7167,154.624,-84.9125],[439.192,-402.273,29.0667,149.414,-84.695],[429.485,-300.084,28.3667,143.719,-84.4409],[419.703,-201.936,27.6667,137.94,-84.1637],[409.143,-101.331,26.9167,131.658,-83.8369],[398.029,-1.36094,26.1333,125.001,-83.4574],[386.115,99.176,25.3,117.816,-83.0028],[373.389,199.1,24.4167,110.092,-82.4515],[359.598,298.816,23.4667,101.67,-81.7592],[344.237,399.542,22.4167,92.2392,-80.8388],[327.037,499.598,21.25,81.6327,-79.5553],[306.98,599.552,19.9,69.2374,-77.5612],[282.025,699.173,18.2333,53.8723,-73.8002],[243.529,799.915,15.6833,31.0108,-60.7491],[201.755,837.595,12.9333,15.221,-0.586775]]], + [84,840.927,[[475.953,-2003.29,37.9,213.036,-87.1742],[470.858,-1901.17,37.4167,209.94,-87.1102],[465.723,-1800.56,36.9333,206.797,-87.0438],[460.549,-1701.49,36.45,203.605,-86.9746],[455.156,-1600.63,35.95,200.254,-86.9003],[449.722,-1501.48,35.45,196.851,-86.8229],[444.064,-1400.82,34.9333,193.282,-86.7393],[438.364,-1302.02,34.4167,189.659,-86.6519],[432.434,-1202.03,33.8833,185.863,-86.5574],[426.273,-1101.05,33.3333,181.888,-86.455],[420.065,-1002.28,32.7833,177.853,-86.3471],[413.62,-902.859,32.2167,173.634,-86.2298],[406.743,-800.228,31.6167,169.098,-86.0983],[399.814,-700.349,31.0167,164.493,-85.9582],[392.638,-600.607,30.4,159.689,-85.8046],[385.211,-501.288,29.7667,154.681,-85.6357],[377.335,-400.208,29.1,149.33,-85.4441],[369.199,-300.348,28.4167,143.763,-85.2312],[360.802,-202.044,27.7167,137.976,-84.9933],[351.737,-101.271,26.9667,131.683,-84.713],[342.196,-1.12264,26.1833,125.014,-84.3872],[331.968,99.6048,25.35,117.814,-83.997],[321.043,199.732,24.4667,110.071,-83.5237],[309.204,299.669,23.5167,101.626,-82.9289],[296.227,399.116,22.4833,92.3142,-82.1517],[281.464,499.625,21.3167,81.6643,-81.0513],[264.461,598.972,19.9833,69.3544,-79.3645],[243.042,699.514,18.3167,53.8565,-76.1415],[210.868,799.81,15.8333,31.1122,-65.2952],[173.281,840.926,12.95,13.0605,-0.265009]]], + [85,843.751,[[397.436,-2003.24,37.9333,213.057,-87.6422],[393.183,-1901.07,37.45,209.96,-87.5889],[388.898,-1800.41,36.9667,206.815,-87.5334],[384.58,-1701.29,36.4833,203.622,-87.4757],[380.079,-1600.39,35.9833,200.269,-87.4137],[375.545,-1501.18,35.4833,196.864,-87.3491],[370.823,-1400.46,34.9667,193.293,-87.2794],[366.065,-1301.62,34.45,189.667,-87.2064],[361.117,-1201.56,33.9167,185.868,-87.1275],[355.974,-1100.52,33.3667,181.891,-87.042],[350.793,-1001.69,32.8167,177.853,-86.952],[345.415,-902.212,32.25,173.63,-86.8541],[339.836,-802.331,31.6667,169.217,-86.7474],[334.054,-702.308,31.0667,164.609,-86.6308],[328.066,-602.417,30.45,159.802,-86.5028],[321.706,-500.369,29.8,154.657,-86.3583],[315.297,-401.699,29.15,149.435,-86.2025],[308.509,-301.668,28.4667,143.863,-86.025],[301.335,-200.893,27.75,137.93,-85.8218],[293.77,-100.033,27,131.628,-85.5877],[285.978,-1.87301,26.2333,125.09,-85.3217],[277.443,99.0712,25.4,117.879,-84.9965],[268.327,199.431,24.5167,110.121,-84.6019],[258.448,299.619,23.5667,101.657,-84.106],[247.62,399.342,22.5333,92.319,-83.4577],[235.478,498.814,21.3833,81.7854,-82.5541],[221.114,599.874,20.0333,69.2634,-81.1294],[203.421,699.992,18.3833,53.8091,-78.4616],[177.119,799.915,15.95,31.1371,-69.6118],[144.675,843.75,12.9667,10.8942,-0.0219361]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 285.978; +_maxRange = 1642.72; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg2.sqf new file mode 100644 index 0000000000..d782979c3b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg2.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_m821a2_m734_prox_chg2 +// Ammo: ace_arty_81mm_m821a2_m734_prox +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,789.969,[[4042.98,-2001.17,37.4333,224.642,-67.7834],[4001.76,-1901.36,36.95,222.089,-67.3191],[3960.21,-1803.04,36.4667,219.509,-66.8401],[3916.87,-1702.91,35.9667,216.813,-66.3283],[3871.71,-1601.17,35.45,213.998,-65.7812],[3826.17,-1501.19,34.9333,211.157,-65.2149],[3780.25,-1403.02,34.4167,208.29,-64.6281],[3730.96,-1300.52,33.8667,205.211,-63.98],[3681.24,-1200.11,33.3167,202.107,-63.3063],[3631.1,-1101.84,32.7667,198.979,-62.6056],[3579.01,-1002.85,32.2,195.735,-61.8539],[3523.37,-900.57,31.6,192.278,-61.0231],[3467.24,-800.939,31,188.803,-60.1542],[3409.05,-701.34,30.3833,185.216,-59.219],[3348.76,-602.047,29.75,181.522,-58.2112],[3284.73,-500.859,29.0833,177.627,-57.0951],[3218.5,-400.738,28.4,173.637,-55.8882],[3150.03,-302.007,27.7,169.559,-54.5812],[3075.98,-200.592,26.95,165.213,-53.0957],[2999.57,-101.663,26.1833,160.808,-51.4792],[2917.38,-1.63169,25.3667,156.176,-49.6398],[2829.29,98.3962,24.5,151.353,-47.5451],[2733.44,198.955,23.5667,146.297,-45.1118],[2627.9,299.907,22.55,141,-42.2354],[2512.4,398.894,21.45,135.579,-38.8384],[2377.79,499.48,20.1833,129.842,-34.5373],[2216.19,599.733,18.6833,123.929,-28.8853],[2000.85,699.615,16.7167,118.016,-20.5835],[1516.74,789.967,12.4167,114.708,-0.0544003]]], + [46,816.588,[[4007.14,-2003.08,37.7667,224.94,-68.2452],[3966.68,-1902.81,37.2833,222.377,-67.7907],[3924.48,-1800.64,36.7833,219.696,-67.3052],[3881.93,-1700.08,36.2833,216.987,-66.8036],[3839.03,-1601.15,35.7833,214.251,-66.2849],[3794.33,-1500.66,35.2667,211.395,-65.7302],[3749.25,-1401.97,34.75,208.512,-65.1555],[3702.34,-1301.99,34.2167,205.51,-64.5403],[3653.55,-1200.96,33.6667,202.387,-63.881],[3604.34,-1102.05,33.1167,199.239,-63.1952],[3553.22,-1002.39,32.55,195.972,-62.4594],[3500.14,-902.23,31.9667,192.586,-61.669],[3445.07,-801.809,31.3667,189.083,-60.8191],[3387.98,-701.389,30.75,185.466,-59.9041],[3328.82,-601.244,30.1167,181.737,-58.9178],[3267.57,-501.66,29.4667,177.901,-57.8531],[3202.6,-400.513,28.7833,173.866,-56.6725],[3135.43,-300.719,28.0833,169.738,-55.3934],[3064.41,-200.383,27.35,165.43,-53.972],[2989.46,-100.161,26.5833,160.958,-52.3901],[2910.51,-0.753311,25.7833,156.342,-50.6266],[2825.79,98.9934,24.9333,151.517,-48.6164],[2733.5,199.678,24.0167,146.434,-46.2783],[2633.45,299.618,23.0333,141.164,-43.5574],[2522,399.906,21.95,135.635,-40.2846],[2397.09,498.787,20.75,129.941,-36.2989],[2245.95,599.804,19.3167,123.891,-31.016],[2053.25,699.836,17.5167,117.769,-23.574],[1717.78,799.945,14.45,112.285,-9.16942],[1512.97,816.587,12.6167,112.592,-0.0270467]]], + [47,843.149,[[3967.57,-2002.47,38.0833,225.176,-68.6971],[3927.88,-1901.78,37.6,222.603,-68.2521],[3887.85,-1802.56,37.1167,220.001,-67.7928],[3846.11,-1701.5,36.6167,217.281,-67.302],[3804.02,-1602.06,36.1167,214.532,-66.7946],[3760.17,-1501.04,35.6,211.663,-66.2518],[3715.95,-1401.81,35.0833,208.765,-65.6894],[3669.93,-1301.28,34.55,205.746,-65.0872],[3623.52,-1202.72,34.0167,202.7,-64.4618],[3573.79,-1100.17,33.45,199.436,-63.7705],[3525.12,-1002.82,32.9,196.244,-63.0716],[3473.06,-901.958,32.3167,192.834,-62.2985],[3419.04,-800.805,31.7167,189.304,-61.4669],[3364.56,-702.323,31.1167,185.755,-60.5962],[3306.55,-601.31,30.4833,181.993,-59.6318],[3246.49,-500.826,29.8333,178.119,-58.5905],[3184.33,-401.17,29.1667,174.14,-57.4643],[3118.48,-300.294,28.4667,169.963,-56.2139],[3050.44,-201.072,27.75,165.698,-54.8561],[2978.58,-101.693,27,161.258,-53.3446],[2901.2,-0.789115,26.2,156.565,-51.6219],[2819.8,98.6351,25.3667,151.744,-49.6963],[2731.02,199.4,24.4667,146.643,-47.4536],[2634.67,299.862,23.5,141.323,-44.84],[2528.87,399.729,22.45,135.787,-41.7404],[2409.97,499.21,21.2833,130.013,-37.9531],[2270.67,598.992,19.9333,123.963,-33.0908],[2094.5,699.972,18.25,117.632,-26.2861],[1833.33,799.527,15.8,111.546,-15.0309],[1507.91,843.149,12.8167,110.452,-0.0172469]]], + [48,869.624,[[3925.68,-2002.86,38.4,225.44,-69.155],[3886.76,-1901.73,37.9167,222.857,-68.7195],[3847.51,-1802.07,37.4333,220.245,-68.2701],[3806.57,-1700.55,36.9333,217.513,-67.7899],[3765.3,-1600.65,36.4333,214.751,-67.2933],[3723.69,-1502.4,35.9333,211.961,-66.7795],[3680.34,-1402.62,35.4167,209.05,-66.2297],[3635.21,-1301.53,34.8833,206.015,-65.6409],[3589.71,-1202.39,34.35,202.951,-65.0293],[3542.4,-1102.23,33.8,199.765,-64.3734],[3493.24,-1001.27,33.2333,196.454,-63.6694],[3443.66,-902.621,32.6667,193.119,-62.935],[3390.71,-800.721,32.0667,189.563,-62.1221],[3337.31,-701.484,31.4667,185.985,-61.2708],[3281.95,-602.307,30.85,182.29,-60.3532],[3223.08,-500.906,30.2,178.38,-59.3358],[3162.16,-400.298,29.5333,174.36,-58.2351],[3099.17,-300.795,28.85,170.236,-57.0423],[3032.5,-200.434,28.1333,165.917,-55.7157],[2963.65,-102.036,27.4,161.516,-54.2719],[2889.43,-1.80206,26.6167,156.848,-52.6252],[2809.7,99.2205,25.7833,151.94,-50.7449],[2724.35,199.895,24.9,146.828,-48.5945],[2633.26,298.991,23.9667,141.563,-46.131],[2531.34,399.849,22.9333,135.948,-43.1536],[2418.3,499.599,21.8,130.12,-39.5604],[2287.07,599.792,20.5,123.982,-34.9848],[2126.79,699.996,18.9333,117.584,-28.7949],[1904.91,799.667,16.8,111.155,-19.2123],[1501.55,869.623,13.0167,108.288,-0.0262506]]], + [49,895.98,[[3880.15,-2000.76,38.7,225.642,-69.6039],[3843.31,-1902.71,38.2333,223.139,-69.1927],[3804.85,-1802.61,37.75,220.517,-68.7534],[3764.74,-1700.61,37.25,217.774,-68.2839],[3724.29,-1600.24,36.75,215,-67.7984],[3683.5,-1501.51,36.25,212.197,-67.296],[3641.02,-1401.23,35.7333,209.271,-66.7583],[3598.18,-1302.76,35.2167,206.316,-66.2007],[3553.6,-1203.03,34.6833,203.236,-65.6032],[3507.24,-1102.26,34.1333,200.031,-64.9623],[3459.07,-1000.66,33.5667,196.7,-64.2743],[3410.49,-901.37,33,193.342,-63.5564],[3360.06,-801.595,32.4167,189.86,-62.7843],[3307.74,-701.588,31.8167,186.255,-61.9528],[3253.51,-601.612,31.2,182.528,-61.0563],[3197.32,-501.94,30.5667,178.684,-60.0882],[3137.66,-400.365,29.9,174.624,-59.0136],[3077.47,-302.266,29.2333,170.557,-57.8779],[3012.18,-200.747,28.5167,166.187,-56.5834],[2944.77,-101.151,27.7833,161.727,-55.1737],[2873.63,-1.73239,27.0167,157.09,-53.6001],[2797.14,98.8021,26.2,152.198,-51.8019],[2715.18,199.343,25.3333,147.084,-49.7439],[2627.62,298.691,24.4167,141.792,-47.384],[2531.11,398.743,23.4167,136.201,-44.5747],[2423.8,498.61,22.3167,130.338,-41.1758],[2300.43,598.929,21.0667,124.146,-36.8876],[2152.14,699.5,19.5833,117.637,-31.1727],[1955.91,799.941,17.65,110.936,-22.6932],[1493.87,895.979,13.2167,106.1,-0.0553719]]], + [50,922.19,[[3833.59,-2003.25,39.0167,225.961,-70.073],[3796.22,-1901.27,38.5333,223.359,-69.6569],[3758.54,-1800.76,38.05,220.727,-69.2274],[3720.56,-1701.73,37.5667,218.065,-68.7839],[3680.95,-1600.87,37.0667,215.28,-68.3096],[3641.01,-1501.65,36.5667,212.465,-67.8189],[3599.4,-1400.86,36.05,209.525,-67.2935],[3557.44,-1301.87,35.5333,206.555,-66.7488],[3513.78,-1201.6,35,203.458,-66.1649],[3468.37,-1100.27,34.45,200.234,-65.5385],[3422.59,-1001.06,33.9,196.982,-64.8861],[3375.02,-901.107,33.3333,193.602,-64.1851],[3325.64,-800.647,32.75,190.096,-63.431],[3275.84,-702.69,32.1667,186.565,-62.6419],[3222.74,-601.898,31.55,182.809,-61.767],[3167.74,-501.38,30.9167,178.931,-60.822],[3110.79,-401.423,30.2667,174.935,-59.7996],[3051.88,-302.328,29.6,170.826,-58.6916],[2989.47,-202.065,28.9,166.509,-57.4585],[2923.49,-101.251,28.1667,161.992,-56.0838],[2853.87,-0.545314,27.4,157.289,-54.5483],[2780.55,99.3501,26.6,152.42,-52.8294],[2701.9,199.594,25.75,147.311,-50.8605],[2617.81,299.016,24.85,142.002,-48.6008],[2524.99,399.621,23.8667,136.361,-45.9062],[2423.24,499.134,22.8,130.491,-42.6911],[2307.47,598.932,21.6,124.29,-38.6772],[2169.12,699.916,20.1833,117.683,-33.3545],[1994.13,799.866,18.4167,110.859,-25.7959],[1702.93,899.763,15.5333,104.265,-11.4938],[1483.14,922.19,13.4,103.902,-0.0159432]]], + [51,948.222,[[3783.43,-2003.33,39.3167,226.219,-70.5336],[3746.84,-1900.94,38.8333,223.609,-70.1271],[3709.96,-1800.01,38.35,220.967,-69.7076],[3672.77,-1700.55,37.8667,218.294,-69.2744],[3635.29,-1602.6,37.3833,215.591,-68.8267],[3596.2,-1502.87,36.8833,212.764,-68.3478],[3555.48,-1401.56,36.3667,209.811,-67.8351],[3514.42,-1302.04,35.85,206.827,-67.3034],[3471.69,-1201.22,35.3167,203.715,-66.7334],[3428.6,-1102.36,34.7833,200.572,-66.1407],[3383.8,-1002.51,34.2333,197.301,-65.5045],[3337.25,-901.885,33.6667,193.9,-64.8207],[3288.93,-800.725,33.0833,190.371,-64.085],[3240.2,-702.06,32.5,186.814,-63.315],[3188.24,-600.512,31.8833,183.029,-62.461],[3135.84,-501.837,31.2667,179.222,-61.5633],[3080.13,-400.985,30.6167,175.19,-60.5661],[3022.49,-300.961,29.95,171.04,-59.485],[2962.89,-202.079,29.2667,166.779,-58.3108],[2898.35,-100.125,28.5333,162.207,-56.9701],[2831.74,-0.379169,27.7833,157.545,-55.5053],[2761.54,98.8411,27,152.704,-53.8651],[2686.14,198.749,26.1667,147.606,-51.9851],[2605.46,298.201,25.2833,142.288,-49.8258],[2516.28,399.311,24.3167,136.606,-47.2466],[2418.39,499.852,23.2667,130.654,-44.1633],[2310.01,598.699,22.1167,124.479,-40.4159],[2181.27,699.461,20.7667,117.831,-35.478],[2021.81,799.833,19.1167,110.865,-28.6028],[1787.56,899.726,16.7333,103.819,-17.0911],[1472.84,948.219,13.6,101.668,-0.0880724]]], + [52,974.052,[[3729.7,-2000.98,39.6,226.415,-70.9864],[3695.14,-1901.73,39.1333,223.886,-70.6033],[3659.06,-1800.37,38.65,221.235,-70.1939],[3622.69,-1700.48,38.1667,218.553,-69.7711],[3586.02,-1602.09,37.6833,215.839,-69.3343],[3547.79,-1501.9,37.1833,213.001,-68.8668],[3507.95,-1400.11,36.6667,210.034,-68.3664],[3467.78,-1300.1,36.15,207.036,-67.8473],[3427.29,-1201.91,35.6333,204.006,-67.3085],[3385.15,-1102.49,35.1,200.846,-66.7305],[3341.33,-1002.04,34.55,197.557,-66.1099],[3295.81,-900.794,33.9833,194.136,-65.4428],[3249.9,-801.863,33.4167,190.685,-64.7459],[3202.25,-702.476,32.8333,187.105,-63.9954],[3151.45,-600.156,32.2167,183.291,-63.1629],[3100.21,-500.701,31.6,179.453,-62.2874],[3047.14,-401.585,30.9667,175.49,-61.3403],[2990.79,-300.615,30.3,171.301,-60.2868],[2932.52,-200.753,29.6167,166.996,-59.1421],[2870.86,-100.029,28.9,162.476,-57.865],[2807.2,-1.27637,28.1667,157.859,-56.4702],[2738.59,99.3184,27.3833,152.947,-54.873],[2666.39,198.733,26.5667,147.869,-53.0787],[2587.55,299.894,25.6833,142.449,-50.9748],[2503.42,399.477,24.75,136.839,-48.5489],[2410.85,499.283,23.7333,130.914,-45.644],[2306.56,599.72,22.6,124.613,-42.0492],[2187.11,699.459,21.3167,117.987,-37.4792],[2041,799.78,19.7667,110.937,-31.1946],[1840,899.907,17.6667,103.62,-21.3218],[1459.54,974.049,13.7833,99.4226,-0.0908523]]], + [53,999.647,[[3674.89,-2003.38,39.9,226.731,-71.4585],[3639.91,-1900.18,39.4167,224.103,-71.0715],[3605.85,-1801.91,38.95,221.535,-70.686],[3570.3,-1701.57,38.4667,218.843,-70.2738],[3534.46,-1602.73,37.9833,216.12,-69.848],[3497.08,-1502.07,37.4833,213.27,-69.3922],[3459.41,-1403.06,36.9833,210.388,-68.9203],[3420.15,-1302.5,36.4667,207.376,-68.4147],[3379.3,-1200.59,35.9333,204.234,-67.8726],[3338.11,-1100.64,35.4,201.058,-67.3088],[3296.58,-1002.68,34.8667,197.851,-66.7221],[3252.09,-900.799,34.3,194.41,-66.0721],[3207.23,-801.228,33.7333,190.938,-65.3929],[3160.66,-701.174,33.15,187.333,-64.6612],[3112.36,-600.89,32.55,183.597,-63.872],[3062.29,-500.638,31.9333,179.729,-63.0193],[3010.44,-400.695,31.3,175.733,-62.0966],[2956.76,-301.35,30.65,171.611,-61.0963],[2899.83,-200.488,29.9667,167.263,-59.9817],[2841,-101.025,29.2667,162.8,-58.7676],[2778.83,-1.07688,28.5333,158.126,-57.4103],[2713.24,98.6927,27.7667,153.253,-55.8892],[2642.73,199.58,26.95,148.095,-54.1431],[2568.65,298.593,26.1,142.785,-52.174],[2488,398.417,25.1833,137.156,-49.8591],[2399.13,498.959,24.1833,131.176,-47.0824],[2300.35,599.327,23.0833,124.859,-43.6915],[2188.37,698.919,21.85,118.21,-39.4244],[2053.59,799.253,20.3833,111.096,-33.6479],[1876.5,899.484,18.4833,103.606,-24.9707],[1443.36,999.647,13.95,97.166,-0.0199557]]], + [54,1024.98,[[3616.56,-2003.44,40.1833,226.985,-71.923],[3583.57,-1903.38,39.7167,224.441,-71.559],[3549.12,-1801.17,39.2333,221.773,-71.17],[3514.39,-1700.43,38.75,219.071,-70.7682],[3479.37,-1601.18,38.2667,216.337,-70.353],[3442.86,-1500.09,37.7667,213.476,-69.9087],[3406.05,-1400.65,37.2667,210.581,-69.4485],[3368.95,-1302.87,36.7667,207.654,-68.9716],[3329.05,-1200.43,36.2333,204.497,-68.4436],[3290.08,-1103.05,35.7167,201.406,-67.9118],[3248.25,-1001.43,35.1667,198.081,-67.3226],[3206.08,-901.952,34.6167,194.723,-66.7082],[3162.27,-801.724,34.05,191.231,-66.0471],[3116.8,-700.988,33.4667,187.603,-65.3347],[3070.95,-602.763,32.8833,183.946,-64.588],[3022.07,-501.698,32.2667,180.05,-63.7586],[2971.44,-400.911,31.6333,176.022,-62.8608],[2919.03,-300.69,30.9833,171.864,-61.8872],[2864.81,-201.337,30.3167,167.581,-60.8293],[2807.39,-100.818,29.6167,163.072,-59.6483],[2748.08,-2.0017,28.9,158.45,-58.3584],[2684.07,99.0529,28.1333,153.514,-56.8794],[2616.66,199.293,27.3333,148.386,-55.2163],[2544.37,299.88,26.4833,142.986,-53.3013],[2467.1,399.638,25.5833,137.351,-51.0899],[2383.3,498.94,24.6167,131.433,-48.4804],[2289.89,598.939,23.55,125.124,-45.2869],[2183.66,699.241,22.35,118.4,-41.2546],[2058.29,799.676,20.95,111.227,-35.8974],[1899.48,899.677,19.2,103.637,-28.1331],[1639.29,999.851,16.3833,95.9064,-13.2602],[1427.55,1024.97,14.1333,94.8738,-0.067645]]], + [55,1050.01,[[3554.79,-2001.14,40.45,227.179,-72.3807],[3522.57,-1900.74,39.9833,224.626,-72.0259],[3490.1,-1801.68,39.5167,222.041,-71.66],[3456.2,-1700.52,39.0333,219.331,-71.2688],[3422.03,-1600.84,38.55,216.588,-70.8645],[3387.58,-1502.67,38.0667,213.811,-70.4465],[3351.66,-1402.73,37.5667,210.906,-69.9988],[3314.24,-1301.19,37.05,207.869,-69.5191],[3276.51,-1201.46,36.5333,204.797,-69.0211],[3237.25,-1100.42,36,201.59,-68.4866],[3197.67,-1001.36,35.4667,198.35,-67.9303],[3156.52,-901.297,34.9167,194.974,-67.3323],[3113.76,-800.466,34.35,191.461,-66.6886],[3070.66,-701.964,33.7833,187.916,-66.0153],[3024.64,-600.245,33.1833,184.129,-65.2678],[2978.23,-501.215,32.5833,180.311,-64.4823],[2930.13,-402.28,31.9667,176.359,-63.6323],[2879.01,-301.165,31.3167,172.167,-62.686],[2826.12,-200.885,30.65,167.845,-61.6574],[2771.44,-101.755,29.9667,163.398,-60.537],[2713.59,-1.82519,29.25,158.726,-59.2835],[2652.52,98.2609,28.5,153.836,-57.8779],[2586.78,199.88,27.7,148.637,-56.2621],[2519.06,298.061,26.8833,143.365,-54.476],[2443.74,399.662,25.9833,137.624,-52.3301],[2363.46,499.287,25.0333,131.678,-49.8399],[2275.26,598.628,24,125.398,-46.8373],[2174.65,699.311,22.8333,118.628,-43.0338],[2058.36,799.238,21.5,111.455,-38.0856],[1914.12,899.275,19.8667,103.78,-31.0613],[1701.82,999.709,17.5,95.6911,-18.9615],[1408.92,1050.01,14.3,92.5698,-0.0407245]]], + [56,1074.73,[[3490.76,-2000.12,40.7167,227.402,-72.8447],[3460.47,-1902.93,40.2667,224.933,-72.5118],[3428.8,-1803.46,39.8,222.341,-72.156],[3395.74,-1701.88,39.3167,219.623,-71.7755],[3362.42,-1601.77,38.8333,216.87,-71.3822],[3328.82,-1503.16,38.35,214.085,-70.9756],[3293.79,-1402.76,37.85,211.168,-70.5401],[3257.3,-1300.74,37.3333,208.118,-70.0735],[3220.51,-1200.53,36.8167,205.033,-69.5889],[3183.42,-1102.13,36.3,201.913,-69.0855],[3144.83,-1002.5,35.7667,198.657,-68.5447],[3104.7,-901.841,35.2167,195.264,-67.9634],[3063.02,-800.392,34.65,191.732,-67.3377],[3020.99,-701.265,34.0833,188.166,-66.683],[2977.37,-601.686,33.5,184.461,-65.9767],[2932.13,-501.907,32.9,180.617,-65.2136],[2885.24,-402.193,32.2833,176.636,-64.3877],[2835.4,-300.249,31.6333,172.41,-63.468],[2785.14,-201.596,30.9833,168.16,-62.4936],[2731.84,-101.487,30.3,163.671,-61.4054],[2675.46,-0.519196,29.5833,158.949,-60.1874],[2617.26,98.4657,28.85,154.112,-58.8522],[2554.54,199.288,28.0667,148.953,-57.3167],[2488.56,298.918,27.25,143.602,-55.583],[2417.89,398.433,26.3833,137.976,-53.5784],[2341.07,498.339,25.45,132.012,-51.2077],[2256.57,598.461,24.4333,125.675,-48.3445],[2161.41,699.21,23.3,118.886,-44.7632],[2052.47,799.249,22.0167,111.676,-40.1478],[1919.32,899.861,20.4667,103.894,-33.6859],[1737.78,999.641,18.3833,95.6661,-23.3687],[1389.08,1074.73,14.4667,90.2423,-0.0373026]]], + [57,1099.1,[[3424.47,-2000.41,40.9833,227.655,-73.3146],[3394.95,-1902.87,40.5333,225.18,-72.9909],[3364.09,-1803.03,40.0667,222.58,-72.6449],[3331.87,-1701.05,39.5833,219.853,-72.2749],[3299.4,-1600.55,39.1,217.091,-71.8925],[3266.66,-1501.55,38.6167,214.295,-71.497],[3232.52,-1400.73,38.1167,211.367,-71.0734],[3198.11,-1301.56,37.6167,208.404,-70.6344],[3162.27,-1200.85,37.1,205.306,-70.1636],[3126.13,-1101.95,36.5833,202.172,-69.6743],[3088.53,-1001.8,36.05,198.901,-69.1488],[3049.43,-900.598,35.5,195.491,-68.5838],[3010.02,-801.55,34.95,192.045,-67.9938],[2969.08,-701.783,34.3833,188.458,-67.3581],[2926.59,-601.538,33.8,184.731,-66.6721],[2882.52,-501.068,33.2,180.862,-65.9309],[2836.84,-400.636,32.5833,176.852,-65.1284],[2789.54,-300.52,31.95,172.703,-64.258],[2740.59,-201.011,31.3,168.417,-63.3121],[2689.95,-102.411,30.6333,163.998,-62.2819],[2635.05,-0.384005,29.9167,159.228,-61.1003],[2578.38,99.6963,29.1833,154.338,-59.8043],[2518.6,199.584,28.4167,149.226,-58.3458],[2455.68,298.568,27.6167,143.909,-56.6989],[2386.89,399.664,26.75,138.19,-54.7547],[2313.45,499.541,25.8333,132.221,-52.4954],[2233.91,598.501,24.85,125.949,-49.8107],[2144.05,699.013,23.75,119.165,-46.4444],[2040.85,799.966,22.5,111.865,-42.0901],[1919.76,899.107,21.05,104.154,-36.2406],[1759,999.314,19.15,95.7704,-27.1472],[1368.02,1099.1,14.6333,87.8919,-0.0595731]]], + [58,1123.1,[[3355.91,-2002.09,41.25,227.939,-73.7902],[3326.1,-1900.58,40.7833,225.365,-73.4641],[3296.05,-1800.41,40.3167,222.757,-73.1277],[3265.77,-1701.58,39.85,220.116,-72.7806],[3234.15,-1600.68,39.3667,217.345,-72.4091],[3202.28,-1501.26,38.8833,214.54,-72.025],[3169.05,-1400.02,38.3833,211.601,-71.6136],[3135.55,-1300.42,37.8833,208.627,-71.1871],[3101.78,-1202.49,37.3833,205.617,-70.7447],[3066.61,-1103.07,36.8667,202.47,-70.27],[3030.01,-1002.38,36.3333,199.185,-69.76],[2991.96,-900.625,35.7833,195.759,-69.2115],[2953.6,-801.013,35.2333,192.295,-68.6388],[2913.75,-700.659,34.6667,188.688,-68.0216],[2873.57,-602.65,34.1,185.046,-67.375],[2830.69,-501.47,33.5,181.153,-66.656],[2786.24,-400.302,32.8833,177.117,-65.8775],[2741.42,-302.038,32.2667,173.047,-65.0557],[2693.79,-201.653,31.6167,168.727,-64.1389],[2644.52,-102.145,30.95,164.27,-63.14],[2592.35,-1.48096,30.25,159.566,-62.0214],[2537.22,99.7179,29.5167,154.624,-60.7656],[2480.34,198.641,28.7667,149.563,-59.3834],[2419.13,298.983,27.9667,144.175,-57.7881],[2353.51,399.652,27.1167,138.48,-55.9409],[2283.4,499.468,26.2167,132.512,-53.7931],[2207.37,598.796,25.25,126.213,-51.238],[2122.67,698.781,24.1833,119.456,-48.0794],[2026.39,799.015,22.9833,112.197,-44.0398],[1912.83,899.303,21.5833,104.366,-38.5821],[1767.72,999.838,19.8167,95.8698,-30.4062],[1529.72,1099.65,16.9667,86.9611,-14.152],[1344.31,1123.1,14.7833,85.528,-0.000671256]]], + [59,1146.68,[[3284.05,-2001.51,41.5,228.163,-74.2602],[3256.09,-1903.28,41.05,225.675,-73.955],[3226.87,-1802.71,40.5833,223.06,-73.6288],[3197.42,-1703.49,40.1167,220.412,-73.2922],[3166.68,-1602.16,39.6333,217.634,-72.9319],[3135.68,-1502.33,39.15,214.819,-72.5594],[3103.37,-1400.64,38.65,211.871,-72.1603],[3070.79,-1300.6,38.15,208.886,-71.7466],[3037.95,-1202.22,37.65,205.864,-71.3174],[3003.74,-1102.34,37.1333,202.705,-70.8568],[2968.15,-1001.16,36.6,199.405,-70.3619],[2932.27,-901.959,36.0667,196.067,-69.8462],[2894.97,-801.768,35.5167,192.587,-69.291],[2856.22,-700.81,34.95,188.962,-68.6926],[2817.16,-602.192,34.3833,185.299,-68.0657],[2775.46,-500.361,33.7833,181.382,-67.3684],[2733.42,-401.232,33.1833,177.429,-66.6343],[2689.85,-302.206,32.5667,173.332,-65.8381],[2643.54,-201.01,31.9167,168.979,-64.9496],[2595.65,-100.663,31.25,164.484,-63.9812],[2546.14,-1.47996,30.5667,159.851,-62.923],[2493.77,98.4858,29.85,154.971,-61.7351],[2438.5,198.589,29.1,149.854,-60.3975],[2380.26,298.139,28.3167,144.511,-58.8861],[2317.76,398.349,27.4833,138.846,-57.1353],[2249.63,499.883,26.5833,132.776,-55.0583],[2177.06,599.4,25.6333,126.462,-52.6287],[2097.36,698.582,24.6,119.754,-49.6702],[2006.47,799.034,23.4333,112.468,-45.8757],[1900.18,899.772,22.0833,104.578,-40.7911],[1768.71,999.943,20.4333,96.0536,-33.4175],[1574.68,1099.77,18.0333,86.8771,-20.2388],[1320.85,1146.68,14.95,83.1321,-0.0790145]]], + [60,1169.84,[[3209.97,-2002.36,41.75,228.418,-74.7361],[3181.8,-1900.16,41.2833,225.831,-74.4291],[3154.42,-1802.86,40.8333,223.303,-74.124],[3125.81,-1703.28,40.3667,220.647,-73.7976],[3095.93,-1601.58,39.8833,217.86,-73.4483],[3065.82,-1501.36,39.4,215.037,-73.0871],[3035.47,-1402.66,38.9167,212.178,-72.7132],[3003.82,-1302.16,38.4167,209.182,-72.3125],[2970.86,-1200.05,37.9,206.049,-71.8827],[2938.7,-1102.95,37.4,202.979,-71.4506],[2904.12,-1001.27,36.8667,199.665,-70.9711],[2869.27,-901.563,36.3333,196.312,-70.4714],[2833.03,-800.842,35.7833,192.815,-69.9334],[2796.5,-702.287,35.2333,189.279,-69.3709],[2757.45,-600.16,34.65,185.488,-68.7457],[2718.07,-500.543,34.0667,181.658,-68.089],[2677.23,-400.738,33.4667,177.681,-67.378],[2634.92,-301.011,32.85,173.555,-66.6068],[2591.1,-201.641,32.2167,169.283,-65.7687],[2544.59,-100.433,31.55,164.752,-64.8315],[2496.51,-0.359604,30.8667,160.079,-63.8071],[2446.85,98.2506,30.1667,155.267,-62.6841],[2393.18,199.454,29.4167,150.095,-61.39],[2337.84,298.076,28.65,144.803,-59.9591],[2277.17,399.651,27.8167,139.06,-58.2655],[2213.5,498.983,26.95,133.123,-56.3324],[2144.3,598.655,26.0167,126.802,-54.0283],[2068.22,698.479,25,120.05,-51.2188],[1982.58,798.844,23.8667,112.765,-47.6616],[1883.31,899.576,22.5667,104.861,-42.9395],[1763.62,999.257,21.0167,96.3429,-36.2676],[1596.66,1099.5,18.8833,86.9856,-25.003],[1294.82,1169.84,15.1,80.7226,-0.0751407]]], + [61,1192.54,[[3132.69,-2001,41.9833,228.613,-75.2072],[3106.33,-1902.12,41.5333,226.112,-74.9206],[3078.77,-1800.88,41.0667,223.484,-74.6141],[3050.99,-1700.97,40.6,220.82,-74.2977],[3023,-1602.43,40.1333,218.121,-73.9711],[2993.78,-1501.82,39.65,215.29,-73.6214],[2964.32,-1402.72,39.1667,212.421,-73.2594],[2933.61,-1301.8,38.6667,209.416,-72.8714],[2902.65,-1202.54,38.1667,206.373,-72.4689],[2870.41,-1101.74,37.65,203.189,-72.0367],[2837.91,-1002.76,37.1333,199.966,-71.5872],[2804.09,-902.536,36.6,196.6,-71.1038],[2768.94,-801.271,36.05,193.087,-70.5833],[2733.49,-702.166,35.5,189.534,-70.039],[2696.68,-602.35,34.9333,185.833,-69.4517],[2658.48,-502.067,34.35,181.982,-68.8169],[2618.87,-401.568,33.75,177.981,-68.1296],[2577.82,-301.121,33.1333,173.83,-67.384],[2535.32,-201.005,32.5,169.528,-66.5734],[2491.33,-101.51,31.85,165.077,-65.69],[2444.7,-0.524242,31.1667,160.365,-64.7001],[2396.53,99.0301,30.4667,155.509,-63.6146],[2345.64,199.034,29.7333,150.401,-62.3918],[2291.98,298.817,28.9667,145.048,-61.0094],[2234.31,399.668,28.15,139.348,-59.4061],[2173.77,498.586,27.3,133.439,-57.576],[2106.69,599.986,26.3667,127.007,-55.3512],[2035.36,698.522,25.3833,120.339,-52.7277],[1953.57,799.94,24.2667,112.971,-49.3456],[1862.34,898.8,23.0333,105.204,-45.028],[1751.42,999.121,21.55,96.6084,-38.8844],[1603.77,1099.62,19.6,87.1386,-28.9815],[1267.65,1192.54,15.25,78.2906,-0.101407]]], + [62,1214.76,[[3053.26,-2001.15,42.2167,228.841,-75.6844],[3027.71,-1901.95,41.7667,226.334,-75.407],[3000.99,-1800.37,41.3,223.699,-75.1105],[2974.07,-1700.13,40.8333,221.028,-74.8044],[2946.93,-1601.25,40.3667,218.321,-74.4884],[2918.6,-1500.29,39.8833,215.481,-74.1499],[2890.04,-1400.83,39.4,212.603,-73.7997],[2861.27,-1302.89,38.9167,209.688,-73.4369],[2831.27,-1203.2,38.4167,206.635,-73.0477],[2800.01,-1101.95,37.9,203.44,-72.63],[2768.51,-1002.51,37.3833,200.204,-72.1953],[2735.74,-901.81,36.85,196.824,-71.7278],[2701.66,-800.049,36.3,193.295,-71.2245],[2667.31,-700.445,35.75,189.725,-70.6981],[2631.63,-600.11,35.1833,186.005,-70.13],[2595.67,-502.131,34.6167,182.244,-69.5337],[2557.28,-400.997,34.0167,178.22,-68.8695],[2518.58,-302.585,33.4167,174.156,-68.1689],[2477.4,-201.702,32.7833,169.826,-67.3863],[2434.78,-101.413,32.1333,165.343,-66.5334],[2390.71,-2.02259,31.4667,160.71,-65.6013],[2344.05,98.4987,30.7667,155.813,-64.5541],[2294.75,199.525,30.0333,150.655,-63.3739],[2243.9,298.249,29.2833,145.363,-62.069],[2189.2,398.35,28.4833,139.711,-60.5552],[2130.56,498.732,27.6333,133.719,-58.7913],[2066.76,599.983,26.7167,127.298,-56.6847],[1998.87,698.763,25.75,120.615,-54.1992],[1922.07,799.563,24.6667,113.292,-51.0394],[1836.16,898.815,23.4667,105.49,-46.997],[1733.68,998.942,22.05,96.8957,-41.3545],[1600.7,1099.89,20.2333,87.3278,-32.4899],[1368.87,1199.84,17.1167,76.9815,-12.7301],[1238.07,1214.75,15.3833,75.8438,-0.0377235]]], + [63,1236.46,[[2971.66,-2002.82,42.45,229.101,-76.1674],[2946.92,-1903.3,42,226.589,-75.8996],[2921.06,-1801.38,41.5333,223.948,-75.6132],[2895,-1700.79,41.0667,221.27,-75.3175],[2868.73,-1601.56,40.6,218.557,-75.0122],[2841.3,-1500.23,40.1167,215.708,-74.6853],[2813.66,-1400.4,39.6333,212.822,-74.3469],[2785.8,-1302.09,39.15,209.898,-73.9964],[2756.76,-1202.01,38.65,206.834,-73.6204],[2726.5,-1100.35,38.1333,203.627,-73.2168],[2696.01,-1000.51,37.6167,200.379,-72.7967],[2665.27,-902.507,37.1,197.091,-72.3593],[2632.29,-800.237,36.55,193.548,-71.8735],[2599.04,-700.116,36,189.962,-71.3653],[2565.53,-602.178,35.45,186.334,-70.8332],[2529.7,-500.725,34.8667,182.443,-70.2409],[2493.58,-401.8,34.2833,178.509,-69.6176],[2455.08,-300.014,33.6667,174.307,-68.9224],[2416.28,-201.14,33.05,170.064,-68.1867],[2375.03,-100.121,32.4,165.55,-67.3635],[2333.45,-2.43562,31.75,160.998,-66.4868],[2288.31,98.9811,31.05,156.061,-65.4769],[2241.69,198.687,30.3333,150.975,-64.3652],[2192.5,298.492,29.5833,145.628,-63.1079],[2139.58,399.759,28.7833,139.912,-61.6482],[2083.97,499.459,27.95,133.96,-59.9808],[2024.52,598.598,27.0667,127.679,-58.027],[1958.87,699.254,26.1,120.873,-55.6359],[1886.9,799.169,25.05,113.616,-52.6898],[1805,899.837,23.8667,105.699,-48.8552],[1710.63,998.995,22.5167,97.1746,-43.6855],[1590.45,1099.69,20.8167,87.5966,-35.7278],[1406.45,1199.78,18.25,76.9934,-20.2133],[1207.43,1236.46,15.5167,73.3741,-0.00284051]]], + [64,1257.63,[[2887.01,-2002.35,42.6667,229.302,-76.6466],[2863.09,-1902.54,42.2167,226.784,-76.3881],[2838.09,-1800.31,41.75,224.136,-76.1117],[2813.79,-1703,41.3,221.548,-75.8366],[2788.4,-1603.41,40.8333,218.828,-75.5423],[2761.89,-1501.7,40.35,215.973,-75.2271],[2735.17,-1401.49,39.8667,213.079,-74.9008],[2708.24,-1302.79,39.3833,210.146,-74.5628],[2680.16,-1202.31,38.8833,207.073,-74.2002],[2650.92,-1100.23,38.3667,203.855,-73.8109],[2622.4,-1003.17,37.8667,200.701,-73.419],[2591.73,-901.532,37.3333,197.294,-72.9838],[2560.82,-801.883,36.8,193.845,-72.5296],[2528.69,-701.231,36.25,190.244,-72.0399],[2496.3,-602.757,35.7,186.6,-71.5272],[2461.67,-500.728,35.1167,182.69,-70.9564],[2426.76,-401.223,34.5333,178.736,-70.3556],[2390.57,-301.548,33.9333,174.625,-69.7039],[2353.07,-201.968,33.3167,170.356,-68.9955],[2313.22,-100.199,32.6667,165.813,-68.2026],[2273.04,-1.75509,32.0167,161.228,-67.358],[2230.45,98.0976,31.3333,156.371,-66.4088],[2185.42,198.753,30.6167,151.241,-65.3387],[2137.89,299.562,29.8667,145.843,-64.1278],[2087.83,399.833,29.0833,140.185,-62.7517],[2035.19,498.828,28.2667,134.28,-61.1802],[1977.77,599.439,27.3833,127.909,-59.301],[1916.55,698.332,26.45,121.226,-57.0821],[1848.16,798.803,25.4167,113.936,-54.2988],[1771.34,899.304,24.2667,106.037,-50.7233],[1682.5,999.509,22.95,97.4187,-45.8855],[1573.39,1099.58,21.35,87.8788,-38.7058],[1416.82,1199.91,19.0833,77.1346,-25.6173],[1175.73,1257.63,15.65,70.8826,-0.000141299]]], + [65,1278.24,[[2800.26,-2003.48,42.8833,229.536,-77.1317],[2777.17,-1903.36,42.4333,227.013,-76.8827],[2753.04,-1800.82,41.9667,224.36,-76.6164],[2729.58,-1703.2,41.5167,221.766,-76.3514],[2705.07,-1603.28,41.05,219.039,-76.0678],[2679.49,-1501.24,40.5667,216.176,-75.7641],[2653.69,-1400.69,40.0833,213.274,-75.4497],[2627.7,-1301.64,39.6,210.332,-75.1241],[2600.6,-1200.8,39.1,207.249,-74.7746],[2573.28,-1101.62,38.6,204.125,-74.4117],[2544.83,-1000.91,38.0833,200.854,-74.0218],[2516.16,-902.039,37.5667,197.542,-73.6156],[2486.32,-801.927,37.0333,194.079,-73.1783],[2455.31,-700.794,36.4833,190.463,-72.7068],[2424.05,-601.834,35.9333,186.803,-72.2131],[2391.59,-502.18,35.3667,182.987,-71.6794],[2357.9,-402.077,34.7833,179.014,-71.1015],[2322.98,-301.779,34.1833,174.881,-70.4746],[2286.79,-201.555,33.5667,170.587,-69.7929],[2249.33,-101.684,32.9333,166.133,-69.05],[2210.56,-2.46119,32.2833,161.518,-68.2381],[2169.48,98.2189,31.6,156.624,-67.3255],[2126.03,199.751,30.8833,151.452,-66.2961],[2081.2,299.276,30.15,146.126,-65.1577],[2033.94,398.53,29.3833,140.532,-63.8644],[1983.17,498.785,28.5667,134.559,-62.3556],[1928.83,598.91,27.7,128.225,-60.5855],[1869.8,699.408,26.7667,121.437,-58.4546],[1805.98,798.524,25.7667,114.247,-55.8691],[1732.99,899.984,24.6333,106.275,-52.4891],[1650.62,999.501,23.3667,97.7141,-48.0277],[1550.97,1099.08,21.85,88.2144,-41.5188],[1413.57,1199.86,19.7833,77.3638,-30.1336],[1142.97,1278.24,15.7833,68.3694,-0.0334902]]], + [66,1298.26,[[2710.62,-2002.51,43.0833,229.712,-77.6138],[2688.36,-1902.12,42.6333,227.183,-77.3741],[2665.93,-1802.95,42.1833,224.619,-77.127],[2642.49,-1701.4,41.7167,221.923,-76.8627],[2618.86,-1601.2,41.25,219.189,-76.5897],[2595.05,-1502.36,40.7833,216.418,-76.3076],[2570.19,-1401.45,40.3,213.508,-76.0053],[2545.14,-1302.05,39.8167,210.558,-75.6922],[2519.02,-1200.83,39.3167,207.466,-75.3562],[2492.7,-1101.28,38.8167,204.332,-75.0072],[2465.28,-1000.18,38.3,201.05,-74.6321],[2437.65,-900.905,37.7833,197.726,-74.2415],[2408.9,-800.378,37.25,194.249,-73.8208],[2379.92,-701.859,36.7167,190.729,-73.3813],[2349.81,-602.396,36.1667,187.054,-72.9069],[2318.53,-502.219,35.6,183.222,-72.394],[2286.08,-401.572,35.0167,179.229,-71.8386],[2252.43,-300.71,34.4167,175.075,-71.236],[2218.51,-202.586,33.8167,170.874,-70.5988],[2182.41,-102.026,33.1833,166.394,-69.8854],[2145.07,-2.08826,32.5333,161.749,-69.1057],[2105.49,99.3506,31.85,156.82,-68.2288],[2064.61,199.354,31.15,151.729,-67.2634],[2021.43,299.81,30.4167,146.357,-66.1706],[1976.91,397.92,29.6667,140.832,-64.9566],[1928.02,499.348,28.85,134.794,-63.5092],[1876.69,598.84,28,128.504,-61.844],[1820.87,699.087,27.0833,121.739,-59.8384],[1759.43,799.977,26.0833,114.423,-57.3593],[1692.27,899.148,25,106.634,-54.2648],[1615.09,999.034,23.7667,98.0509,-50.1136],[1522.39,1099.49,22.3,88.4652,-44.098],[1400.95,1199.55,20.4,77.6593,-34.1169],[1109.17,1298.26,15.9167,65.835,-0.107699]]], + [67,1317.68,[[2618.92,-2003.18,43.2833,229.921,-78.1019],[2597.51,-1902.51,42.8333,227.388,-77.8717],[2575.93,-1803.06,42.3833,224.818,-77.6344],[2553.38,-1701.22,41.9167,222.116,-77.3806],[2530.65,-1600.72,41.45,219.376,-77.1184],[2507.74,-1501.58,40.9833,216.597,-76.8475],[2483.83,-1400.35,40.5,213.68,-76.5571],[2459.73,-1300.63,40.0167,210.722,-76.2563],[2435.44,-1202.44,39.5333,207.724,-75.9445],[2410.12,-1102.5,39.0333,204.581,-75.6096],[2383.75,-1000.99,38.5167,201.29,-75.2498],[2357.17,-901.301,38,197.954,-74.8749],[2329.52,-800.343,37.4667,194.466,-74.4712],[2301.64,-701.39,36.9333,190.932,-74.0493],[2272.67,-601.474,36.3833,187.242,-73.5939],[2242.59,-500.827,35.8167,183.393,-73.1015],[2212.27,-402.546,35.25,179.496,-72.5839],[2179.9,-301.1,34.65,175.322,-72.006],[2147.28,-202.387,34.05,171.099,-71.3949],[2112.57,-101.199,33.4167,166.593,-70.7105],[2076.66,-0.610923,32.7667,161.919,-69.9623],[2039.53,99.0719,32.1,157.078,-69.1419],[2000.22,199.883,31.4,151.949,-68.2164],[1959.64,298.942,30.6833,146.657,-67.1932],[1916.84,398.04,29.9333,141.082,-66.0306],[1870.79,498.518,29.1333,135.107,-64.6731],[1821.46,599.274,28.2833,128.743,-63.0791],[1768.78,699.116,27.3833,122.011,-61.1941],[1711.7,798.394,26.4167,114.822,-58.9042],[1647.17,899.711,25.3333,106.874,-55.9479],[1575.02,999.482,24.1333,98.303,-52.0864],[1490.03,1099.07,22.7333,88.8031,-46.608],[1380.61,1199.3,20.95,77.9698,-37.6941],[1192.94,1299.71,17.9333,65.4151,-16.551],[1073.26,1317.67,16.0333,63.2846,-0.0797387]]], + [68,1336.46,[[2524.47,-2001.78,43.4667,230.072,-78.5876],[2503.9,-1900.87,43.0167,227.533,-78.3669],[2483.18,-1801.17,42.5667,224.958,-78.1393],[2462.3,-1702.7,42.1167,222.347,-77.9046],[2440.47,-1601.88,41.65,219.601,-77.6534],[2418.48,-1502.43,41.1833,216.817,-77.3938],[2395.52,-1400.88,40.7,213.892,-77.1156],[2372.38,-1300.83,40.2167,210.927,-76.8274],[2349.06,-1202.31,39.7333,207.921,-76.5285],[2324.75,-1102.01,39.2333,204.769,-76.2076],[2299.43,-1000.14,38.7167,201.467,-75.8627],[2273.91,-900.083,38.2,198.12,-75.5034],[2248.19,-801.879,37.6833,194.729,-75.1287],[2221.43,-702.475,37.15,191.184,-74.7249],[2193.62,-602.09,36.6,187.48,-74.2888],[2164.74,-500.955,36.0333,183.615,-73.8174],[2135.64,-402.181,35.4667,179.702,-73.3216],[2104.57,-300.208,34.8667,175.507,-72.7681],[2073.25,-200.963,34.2667,171.263,-72.1825],[2040.81,-101.846,33.65,166.851,-71.5446],[2006.34,-0.585437,33,162.15,-70.8286],[1970.7,99.7939,32.3333,157.278,-70.0433],[1933.88,198.972,31.65,152.237,-69.1789],[1894.94,298.892,30.9333,146.904,-68.2006],[1853.86,398.9,30.1833,141.281,-67.0882],[1810.6,498.3,29.4,135.374,-65.8171],[1764.19,598.29,28.5667,129.066,-64.3245],[1713.65,699.517,27.6667,122.248,-62.5241],[1659.84,798.63,26.7167,115.076,-60.3743],[1599.85,898.793,25.6667,107.23,-57.6414],[1531.62,999.682,24.4833,98.5729,-54.0121],[1453.05,1099.02,23.1333,89.103,-48.9793],[1353.09,1199.85,21.4333,78.1992,-40.8926],[1200.28,1299.94,18.8667,65.5635,-23.9036],[1036.39,1336.46,16.15,60.7132,-0.0917505]]], + [69,1354.58,[[2428.07,-2002.11,43.65,230.259,-79.0794],[2408.36,-1900.94,43.2,227.715,-78.8682],[2388.51,-1800.98,42.75,225.135,-78.6505],[2368.49,-1702.24,42.3,222.518,-78.426],[2347.58,-1601.16,41.8333,219.766,-78.1857],[2326.51,-1501.43,41.3667,216.975,-77.9373],[2305.27,-1403.08,40.9,214.145,-77.6804],[2283.1,-1302.69,40.4167,211.173,-77.4049],[2259.99,-1200.43,39.9167,208.055,-77.1093],[2237.47,-1103.15,39.4333,205,-76.8126],[2213.21,-1000.9,38.9167,201.689,-76.4829],[2188.76,-900.465,38.4,198.332,-76.1394],[2164.12,-801.874,37.8833,194.93,-75.7812],[2138.49,-702.068,37.35,191.372,-75.3951],[2111.85,-601.264,36.8,187.655,-74.9781],[2085,-502.647,36.25,183.889,-74.5409],[2056.29,-400.478,35.6667,179.844,-74.053],[2027.36,-300.844,35.0833,175.748,-73.5386],[1997.36,-201.047,34.4833,171.483,-72.9793],[1966.29,-101.358,33.8667,167.049,-72.3697],[1934.12,-2.05886,33.2333,162.443,-71.7035],[1899.99,99.0395,32.5667,157.542,-70.954],[1864.72,198.962,31.8833,152.468,-70.1289],[1827.43,299.67,31.1667,147.096,-69.1945],[1788.96,398.321,30.4333,141.554,-68.1563],[1747.54,498.709,29.65,135.593,-66.9435],[1703.1,599.761,28.8167,129.22,-65.5182],[1656.5,698.479,27.95,122.577,-63.8647],[1604.99,799.106,27,115.304,-61.8163],[1548.47,899.418,25.9667,107.45,-59.2521],[1485.01,999.683,24.8167,98.8538,-55.8932],[1411.68,1099.54,23.5,89.341,-51.223],[1321.69,1199.09,21.9,78.5829,-44.0028],[1190.85,1299.6,19.6,65.8628,-29.6527],[998.563,1354.58,16.2667,58.1214,-0.149598]]], + [70,1372.03,[[2329.04,-2000.39,43.8167,230.387,-79.5697],[2310.9,-1902.74,43.3833,227.933,-79.3755],[2291.92,-1802.51,42.9333,225.349,-79.1679],[2272.79,-1703.5,42.4833,222.728,-78.9537],[2252.8,-1602.13,42.0167,219.97,-78.7244],[2232.65,-1502.12,41.55,217.174,-78.4874],[2212.35,-1403.47,41.0833,214.337,-78.2422],[2191.16,-1302.77,40.6,211.358,-77.9793],[2169.07,-1200.2,40.1,208.233,-77.6972],[2147.54,-1102.61,39.6167,205.169,-77.4141],[2124.36,-1000.03,39.1,201.848,-77.0994],[2101.74,-902.475,38.6,198.591,-76.7823],[2077.43,-800.321,38.0667,195.068,-76.4297],[2052.92,-700.159,37.5333,191.498,-76.061],[2028.23,-602.018,37,187.88,-75.6753],[2002.57,-502.96,36.45,184.101,-75.2583],[1975.13,-400.32,35.8667,180.039,-74.7932],[1947.48,-300.21,35.2833,175.926,-74.3025],[1919.61,-202.667,34.7,171.761,-73.7842],[1889.91,-102.386,34.0833,167.306,-73.2035],[1859.18,-2.47224,33.45,162.676,-72.5689],[1826.56,99.2793,32.7833,157.748,-71.8546],[1792.86,199.878,32.1,152.641,-71.068],[1758.05,298.991,31.4,147.358,-70.1985],[1721.3,398.483,30.6667,141.774,-69.2099],[1681.72,499.778,29.8833,135.763,-68.0544],[1640.12,599.822,29.0667,129.457,-66.724],[1595.6,699.687,28.2,122.739,-65.1495],[1547.26,799.865,27.2667,115.501,-63.2329],[1495.02,898.59,26.2667,107.781,-60.8744],[1435.3,999.546,25.1333,99.1389,-57.7325],[1367.06,1099.63,23.85,89.6166,-53.413],[1284.75,1199.07,22.3167,78.8804,-46.857],[1169.9,1299.74,20.2,66.1268,-34.3901],[958.868,1372.03,16.3667,55.513,-0.0911291]]], + [71,1388.78,[[2228.16,-2000.45,43.9833,230.551,-80.066],[2210.86,-1902.57,43.55,228.093,-79.8811],[2192.76,-1802.11,43.1,225.504,-79.6834],[2174.52,-1702.86,42.65,222.878,-79.4794],[2155.46,-1601.24,42.1833,220.115,-79.261],[2136.25,-1500.98,41.7167,217.312,-79.0353],[2116.89,-1402.08,41.25,214.469,-78.8018],[2096.68,-1301.12,40.7667,211.483,-78.5515],[2076.32,-1201.67,40.2833,208.454,-78.2919],[2055.08,-1100.41,39.7833,205.276,-78.013],[2033.69,-1000.82,39.2833,202.054,-77.7231],[2012.13,-902.927,38.7833,198.788,-77.4214],[1988.95,-800.405,38.25,195.255,-77.0858],[1966.32,-702.982,37.7333,191.786,-76.7462],[1942.04,-601.355,37.1833,188.043,-76.3679],[1917.57,-501.907,36.6333,184.25,-75.971],[1892.17,-401.758,36.0667,180.29,-75.5412],[1865.81,-301.153,35.4833,176.16,-75.0748],[1838.48,-200.348,34.8833,171.858,-74.5675],[1810.94,-102.296,34.2833,167.503,-74.0298],[1781.63,-1.82873,33.65,162.85,-73.4262],[1751.32,97.9954,33,158.018,-72.7643],[1719.2,199.294,32.3167,152.882,-72.0171],[1686.03,299.131,31.6167,147.565,-71.1908],[1651,399.389,30.8833,141.941,-70.251],[1614.09,499.391,30.1167,136.01,-69.1764],[1575.25,598.416,29.3167,129.778,-67.94],[1532.83,699.463,28.45,122.991,-66.4465],[1487.6,799.182,27.5333,115.796,-64.6613],[1437.83,899.444,26.5333,107.963,-62.4239],[1382.62,999.307,25.4333,99.4231,-59.5324],[1319.32,1099.33,24.1833,89.9222,-55.5511],[1243.5,1199.15,22.7,79.1607,-49.5563],[1141.95,1299.41,20.7333,66.4667,-38.6483],[918.32,1388.78,16.4667,52.8845,-0.0771837]]], + [72,1404.81,[[2125.45,-2002.29,44.15,230.752,-80.568],[2108.37,-1900.43,43.7,228.195,-80.3857],[2091.8,-1803.47,43.2667,225.698,-80.2049],[2073.81,-1700.32,42.8,222.969,-80.004],[2056.33,-1602.1,42.35,220.299,-79.804],[2038.06,-1501.57,41.8833,217.491,-79.5897],[2019.65,-1402.41,41.4167,214.643,-79.3681],[2000.44,-1301.17,40.9333,211.65,-79.1304],[1981.08,-1201.44,40.45,208.614,-78.884],[1961.57,-1103.24,39.9667,205.536,-78.6282],[1940.55,-1000,39.45,202.198,-78.344],[1920.05,-901.81,38.95,198.922,-78.0576],[1898.7,-802.15,38.4333,195.491,-77.7491],[1876.49,-701.229,37.9,191.899,-77.4164],[1854.11,-602.322,37.3667,188.258,-77.0682],[1830.85,-502.466,36.8167,184.452,-76.6918],[1806.7,-401.893,36.25,180.478,-76.2841],[1781.64,-300.846,35.6667,176.333,-75.8416],[1756.38,-202.359,35.0833,172.134,-75.374],[1729.48,-101.07,34.4667,167.638,-74.85],[1701.62,-0.110442,33.8333,162.962,-74.277],[1673.55,97.6927,33.2,158.23,-73.6651],[1643.02,199.624,32.5167,153.065,-72.9567],[1612.24,297.769,31.8333,147.844,-72.1926],[1578.96,398.819,31.1,142.182,-71.3027],[1543.87,499.658,30.3333,136.207,-70.2846],[1506.97,599.565,29.5333,129.922,-69.1126],[1467.43,699.675,28.6833,123.201,-67.7246],[1425.23,798.789,27.7833,116.058,-66.0659],[1378.74,898.86,26.8,108.252,-63.9862],[1327.09,999.019,25.7167,99.7011,-61.296],[1267.77,1099.97,24.4833,90.1224,-57.5839],[1198.2,1199.54,23.05,79.3966,-52.1132],[1107.52,1299.38,21.2,66.7674,-42.4588],[926.233,1399.89,17.55,50.9839,-10.9972],[876.928,1404.81,16.5667,50.2363,-0.114923]]], + [73,1420.09,[[2020.34,-2002.18,44.3,230.896,-81.069],[2004.15,-1900.11,43.85,228.335,-80.8965],[1988.44,-1802.95,43.4167,225.833,-80.7252],[1972,-1703.24,42.9667,223.198,-80.5419],[1954.81,-1601.14,42.5,220.425,-80.3457],[1937.5,-1500.38,42.0333,217.611,-80.1428],[1920.05,-1400.99,41.5667,214.756,-79.9329],[1902.47,-1302.98,41.1,211.861,-79.7158],[1884.12,-1202.96,40.6167,208.819,-79.4827],[1864.99,-1101.1,40.1167,205.627,-79.2323],[1845.71,-1000.91,39.6167,202.389,-78.9719],[1826.28,-902.404,39.1167,199.105,-78.7009],[1806.04,-802.418,38.6,195.665,-78.4091],[1785,-701.156,38.0667,192.063,-78.0943],[1763.79,-601.905,37.5333,188.411,-77.7649],[1741.74,-501.691,36.9833,184.593,-77.4087],[1718.85,-400.745,36.4167,180.605,-77.0229],[1695.78,-302.175,35.85,176.564,-76.6164],[1671.17,-200.434,35.25,172.227,-76.1615],[1646.36,-101.438,34.65,167.835,-75.6791],[1620.66,-2.59525,34.0333,163.262,-75.1521],[1593.36,98.357,33.3833,158.383,-74.5588],[1565.14,198.398,32.7167,153.318,-73.9057],[1535.27,299.568,32.0167,147.938,-73.1657],[1504.44,398.975,31.3,142.37,-72.3433],[1471.93,498.416,30.55,136.485,-71.403],[1436.97,599.236,29.75,130.15,-70.297],[1400.26,698.403,28.9167,123.503,-69.0135],[1360.29,798.695,28.0167,116.285,-67.4494],[1317,898.42,27.05,108.516,-65.5215],[1268.84,998.704,25.9833,99.9687,-63.0261],[1214.19,1099.1,24.7833,90.4633,-59.6287],[1149.86,1199.34,23.3833,79.6901,-54.6091],[1067.92,1299.48,21.6167,67.0456,-45.9602],[930.277,1399.68,18.6833,51.2301,-22.8326],[833.908,1420.09,16.65,47.5719,-0.0171674]]], + [74,1434.62,[[1912.93,-2000.1,44.4333,230.983,-81.5698],[1898.2,-1901.62,44,228.513,-81.413],[1882.79,-1800.51,43.55,225.911,-81.2452],[1867.26,-1700.63,43.1,223.27,-81.0721],[1851.61,-1601.97,42.65,220.592,-80.8935],[1835.25,-1500.97,42.1833,217.773,-80.7022],[1818.77,-1401.34,41.7167,214.913,-80.5043],[1802.17,-1303.09,41.25,212.012,-80.2995],[1784.84,-1202.82,40.7667,208.964,-80.0797],[1766.77,-1100.69,40.2667,205.765,-79.8435],[1748.56,-1000.23,39.7667,202.519,-79.5979],[1730.21,-901.453,39.2667,199.227,-79.3423],[1711.1,-801.184,38.75,195.777,-79.067],[1691.84,-702.771,38.2333,192.279,-78.7795],[1671.19,-600.08,37.6833,188.502,-78.4592],[1651,-502.571,37.15,184.788,-78.1336],[1629.38,-401.235,36.5833,180.788,-77.7699],[1607.6,-302.27,36.0167,176.733,-77.3868],[1584.35,-200.108,35.4167,172.381,-76.958],[1560.93,-100.687,34.8167,167.97,-76.5033],[1536.66,-1.40252,34.2,163.379,-76.0064],[1511.54,97.4603,33.5667,158.603,-75.4617],[1484.9,198.076,32.9,153.513,-74.8467],[1456.7,299.856,32.2,148.105,-74.1497],[1427.59,399.893,31.4833,142.503,-73.3748],[1396.9,499.999,30.7333,136.578,-72.4885],[1364.58,599.475,29.95,130.33,-71.4682],[1329.92,699.515,29.1167,123.627,-70.2595],[1292.89,798.947,28.2333,116.474,-68.8142],[1252.03,899.845,27.2667,108.617,-66.9992],[1207.28,999.927,26.2167,100.086,-64.6856],[1157.14,1099.33,25.05,90.6803,-61.58],[1097.9,1199.74,23.6833,79.9025,-56.9811],[1024.26,1299.26,22,67.3585,-49.271],[909.294,1399.71,19.4,51.5072,-30.3173],[790.898,1434.62,16.75,44.886,-0.17686]]], + [75,1448.38,[[1804.41,-2003.69,44.5833,231.202,-82.082],[1790.03,-1901.21,44.1333,228.634,-81.929],[1776.07,-1803.65,43.7,226.125,-81.7773],[1761.46,-1703.53,43.25,223.482,-81.6148],[1746.19,-1600.99,42.7833,220.7,-81.4409],[1731.36,-1503.39,42.3333,217.977,-81.2676],[1715.86,-1403.5,41.8667,215.113,-81.0818],[1699.68,-1301.51,41.3833,212.103,-80.8825],[1683.37,-1201.02,40.9,209.049,-80.6758],[1666.94,-1102.05,40.4167,205.95,-80.4613],[1649.81,-1001.31,39.9167,202.697,-80.2308],[1632.55,-902.245,39.4167,199.398,-79.9908],[1614.58,-801.679,38.9,195.94,-79.7322],[1596.47,-702.965,38.3833,192.433,-79.4623],[1577.63,-603.041,37.85,188.762,-79.1708],[1558.05,-502.126,37.3,184.922,-78.8556],[1537.72,-400.451,36.7333,180.909,-78.514],[1517.23,-301.144,36.1667,176.841,-78.1541],[1495.97,-201.427,35.5833,172.595,-77.7627],[1473.94,-101.56,34.9833,168.169,-77.3361],[1451.12,-1.81318,34.3667,163.56,-76.8699],[1427.49,97.5293,33.7333,158.764,-76.3587],[1402.43,198.655,33.0667,153.651,-75.7815],[1376.55,298.585,32.3833,148.344,-75.1432],[1349.18,399.278,31.6667,142.713,-74.4168],[1320.96,497.89,30.9333,136.885,-73.605],[1290.57,598.208,30.15,130.595,-72.6499],[1257.99,699.153,29.3167,123.84,-71.5177],[1223.17,799.554,28.4333,116.624,-70.1629],[1185.42,899.835,27.4833,108.821,-68.4913],[1144.03,999.715,26.45,100.318,-66.3601],[1097.57,1099.43,25.3,90.8966,-63.4965],[1043.25,1199.73,23.9667,80.1478,-59.3036],[976.116,1299.84,22.3333,67.5487,-52.3194],[877.856,1399.69,19.9667,51.809,-36.3434],[746.368,1448.37,16.8333,42.1844,-0.200551]]], + [76,1461.33,[[1693.24,-2001.56,44.7,231.27,-82.5884],[1680.26,-1902.7,44.2667,228.795,-82.4506],[1666.69,-1801.21,43.8167,226.185,-82.3032],[1653,-1700.93,43.3667,223.537,-82.1511],[1639.22,-1601.88,42.9167,220.85,-81.9941],[1624.81,-1500.47,42.45,218.022,-81.826],[1610.29,-1400.42,41.9833,215.152,-81.652],[1595.66,-1301.74,41.5167,212.24,-81.472],[1580.39,-1201.02,41.0333,209.179,-81.2787],[1565,-1101.83,40.55,206.074,-81.0781],[1548.96,-1000.84,40.05,202.815,-80.8624],[1532.8,-901.541,39.55,199.509,-80.6379],[1515.97,-800.721,39.0333,196.043,-80.396],[1499,-701.752,38.5167,192.527,-80.1435],[1481.36,-601.561,37.9833,188.845,-79.8708],[1463.03,-500.369,37.4333,184.994,-79.5759],[1444.55,-401.371,36.8833,181.088,-79.2659],[1425.36,-301.703,36.3167,177.008,-78.9296],[1405.46,-201.612,35.7333,172.749,-78.5638],[1384.83,-101.355,35.1333,168.308,-78.1651],[1363.46,-1.20411,34.5167,163.681,-77.7292],[1341.35,98.557,33.8833,158.866,-77.2512],[1318.47,197.631,33.2333,153.859,-76.7254],[1294.24,298.114,32.55,148.529,-76.1295],[1268.62,399.392,31.8333,142.868,-75.4511],[1242.2,498.608,31.1,137.007,-74.6926],[1213.76,599.577,30.3167,130.677,-73.7998],[1183.87,699.247,29.5,124.009,-72.7632],[1151.9,798.676,28.6333,116.871,-71.5236],[1117.19,898.339,27.7,109.132,-69.9943],[1078.45,999.573,26.6667,100.53,-68.0099],[1035.61,1099.43,25.5333,91.1081,-65.381],[986.062,1199.36,24.2333,80.4192,-61.5785],[925.183,1299.65,22.65,67.8285,-55.296],[839.135,1399.91,20.4333,52.0611,-41.4757],[700.466,1461.33,16.9,39.4668,-0.0610085]]], + [77,1473.47,[[1580.55,-2001.32,44.8167,231.378,-83.1006],[1568.47,-1902.31,44.3833,228.899,-82.9723],[1555.82,-1800.65,43.9333,226.286,-82.8351],[1543.07,-1700.2,43.4833,223.634,-82.6935],[1530.22,-1600.98,43.0333,220.942,-82.5474],[1517.28,-1503,42.5833,218.211,-82.3965],[1503.76,-1402.72,42.1167,215.338,-82.2347],[1489.64,-1300.31,41.6333,212.317,-82.0613],[1475.91,-1202.85,41.1667,209.357,-81.8876],[1461.08,-1100.01,40.6667,206.139,-81.6945],[1446.63,-1002.18,40.1833,202.983,-81.5005],[1431.58,-902.615,39.6833,199.67,-81.2917],[1415.9,-801.526,39.1667,196.197,-81.0668],[1400.1,-702.286,38.65,192.674,-80.8319],[1383.66,-601.813,38.1167,188.984,-80.5783],[1366.58,-500.326,37.5667,185.123,-80.304],[1349.37,-401.031,37.0167,181.207,-80.0156],[1331.5,-301.055,36.45,177.115,-79.7027],[1312.96,-200.643,35.8667,172.843,-79.3624],[1293.75,-100.053,35.2667,168.387,-78.9913],[1274.38,-2.2337,34.6667,163.869,-78.597],[1253.79,97.9684,34.0333,159.037,-78.1528],[1232.48,197.499,33.3833,154.01,-77.6641],[1209.91,298.467,32.7,148.656,-77.1101],[1186.61,397.939,32,143.102,-76.4945],[1162.01,497.787,31.2667,137.211,-75.7905],[1135.52,599.438,30.4833,130.844,-74.9614],[1107.69,699.825,29.6667,124.132,-73.9984],[1078.49,798.158,28.8167,117.079,-72.8694],[1046.17,898.793,27.8833,109.271,-71.4499],[1010.69,999.54,26.8667,100.718,-69.6379],[971.396,1099.37,25.75,91.3109,-67.2365],[925.863,1199.89,24.4667,80.5721,-63.7572],[870.995,1299.75,22.9333,68.0541,-58.1265],[795.76,1399.56,20.85,52.4052,-46.1912],[654.562,1473.47,16.9833,36.7304,-0.232472]]], + [78,1484.78,[[1466.4,-2003.01,44.9333,231.524,-83.6179],[1454.77,-1900.04,44.4833,228.947,-83.4946],[1443.49,-1802,44.05,226.427,-83.3724],[1431.69,-1701.37,43.6,223.772,-83.2414],[1419.79,-1601.96,43.15,221.078,-83.1063],[1407.36,-1500.19,42.6833,218.241,-82.9615],[1395.29,-1403.33,42.2333,215.466,-82.8172],[1382.22,-1300.72,41.75,212.44,-82.6567],[1369.5,-1203.07,41.2833,209.476,-82.4961],[1355.77,-1100.02,40.7833,206.253,-82.3175],[1342.4,-1001.98,40.3,203.09,-82.138],[1328.45,-902.201,39.8,199.772,-81.9449],[1313.94,-800.889,39.2833,196.291,-81.7368],[1299.31,-701.422,38.7667,192.76,-81.5196],[1284.09,-600.713,38.2333,189.062,-81.2849],[1268.75,-502.032,37.7,185.309,-81.0389],[1252.82,-402.422,37.15,181.384,-80.7725],[1236.28,-302.118,36.5833,177.282,-80.4834],[1219.11,-201.366,36,172.999,-80.169],[1201.32,-100.423,35.4,168.53,-79.826],[1183.4,-2.24683,34.8,163.999,-79.4615],[1164.33,98.3354,34.1667,159.149,-79.051],[1144.6,198.26,33.5167,154.104,-78.5991],[1123.71,299.645,32.8333,148.728,-78.0867],[1102.13,399.55,32.1333,143.148,-77.5173],[1079.36,499.853,31.4,137.227,-76.8657],[1055.36,599.876,30.6333,130.961,-76.1153],[1030.12,698.892,29.8333,124.346,-75.2444],[1002.57,799.894,28.9667,117.104,-74.181],[973.188,899.522,28.05,109.373,-72.8921],[940.886,999.638,27.05,100.879,-71.2468],[905.067,1099.28,25.95,91.5016,-69.066],[864.032,1198.96,24.7,80.8753,-65.949],[814.378,1299.28,23.2,68.34,-60.8952],[747.58,1399.76,21.2,52.6344,-50.4059],[607.4,1484.78,17.05,33.979,-0.239597]]], + [79,1495.25,[[1350.42,-2002.83,45.0333,231.616,-84.1358],[1340.12,-1903.51,44.6,229.131,-84.0268],[1329.35,-1801.54,44.15,226.513,-83.9102],[1318.5,-1700.76,43.7,223.854,-83.7899],[1307.56,-1601.21,43.25,221.156,-83.6657],[1296.54,-1502.9,42.8,218.418,-83.5375],[1285.03,-1402.27,42.3333,215.536,-83.4],[1273.43,-1303.02,41.8667,212.611,-83.2577],[1261.32,-1201.7,41.3833,209.536,-83.1049],[1249.11,-1101.89,40.9,206.416,-82.9464],[1236.39,-1000.27,40.4,203.139,-82.7759],[1223.57,-900.318,39.9,199.814,-82.5984],[1210.65,-802.07,39.4,196.439,-82.4134],[1197.2,-702.361,38.8833,192.902,-82.214],[1183.21,-601.4,38.35,189.196,-81.9986],[1169.12,-502.464,37.8167,185.436,-81.7727],[1154.47,-402.589,37.2667,181.502,-81.5281],[1139.26,-302.009,36.7,177.39,-81.2627],[1123.48,-200.97,36.1167,173.096,-80.9739],[1107.58,-102.504,35.5333,168.74,-80.668],[1090.64,-1.25297,34.9167,164.069,-80.3242],[1073.11,99.649,34.2833,159.204,-79.947],[1054.98,199.905,33.6333,154.14,-79.5318],[1036.24,299.205,32.9667,148.875,-79.0729],[1016.41,399.567,32.2667,143.273,-78.5505],[995.951,498.115,31.55,137.461,-77.9667],[973.895,598.757,30.7833,131.166,-77.2793],[950.7,698.426,29.9833,124.515,-76.4813],[925.864,798.247,29.1333,117.368,-75.5262],[898.868,898.773,28.2167,109.581,-74.3467],[869.183,999.876,27.2167,101.013,-72.8397],[836.768,1099.17,26.1333,91.6779,-70.8726],[799.567,1199.05,24.9,81.0452,-68.0584],[754.964,1299.32,23.4333,68.5379,-63.5425],[696.169,1399.55,21.5167,52.9169,-54.3978],[559.131,1495.25,17.1,31.2126,-0.0404664]]], + [80,1504.85,[[1232.76,-2000.77,45.1167,231.652,-84.6547],[1223.37,-1901.34,44.6833,229.165,-84.5553],[1213.91,-1803.02,44.25,226.64,-84.453],[1204.02,-1702.09,43.8,223.979,-84.3434],[1194.05,-1602.38,43.35,221.278,-84.2303],[1183.63,-1500.29,42.8833,218.435,-84.1092],[1173.5,-1403.12,42.4333,215.652,-83.9884],[1162.55,-1300.17,41.95,212.618,-83.8541],[1151.89,-1202.2,41.4833,209.645,-83.7197],[1140.76,-1102.21,41,206.52,-83.5753],[1129.16,-1000.4,40.5,203.238,-83.42],[1117.47,-900.266,40,199.908,-83.2583],[1105.7,-801.828,39.5,196.528,-83.0898],[1093.44,-701.923,38.9833,192.984,-82.9081],[1080.68,-600.756,38.45,189.271,-82.7119],[1067.83,-501.612,37.9167,185.503,-82.5062],[1054.47,-401.521,37.3667,181.56,-82.2834],[1040.6,-300.717,36.8,177.439,-82.0415],[1026.63,-202.303,36.2333,173.257,-81.7861],[1011.72,-100.744,35.6333,168.765,-81.4995],[996.7,-1.94677,35.0333,164.208,-81.1949],[980.72,99.2974,34.4,159.329,-80.8516],[964.192,199.908,33.75,154.25,-80.4737],[947.109,299.574,33.0833,148.967,-80.0559],[929.465,397.973,32.4,143.478,-79.592],[910.383,499.275,31.6667,137.508,-79.0486],[890.717,598.206,30.9167,131.321,-78.4366],[869.577,698.445,30.1167,124.637,-77.7108],[846.941,798.877,29.2667,117.449,-76.8418],[822.786,898.294,28.3667,109.753,-75.7888],[796.186,998.653,27.3833,101.262,-74.4439],[766.649,1099.07,26.3,91.8369,-72.659],[733.212,1198.98,25.0833,81.2162,-70.1394],[693.036,1299.98,23.6333,68.6305,-66.0866],[641.342,1399.89,21.7833,53.0801,-58.0897],[538.782,1499.92,18.15,29.997,-18.9645],[510.857,1504.85,17.1667,28.4303,-0.233402]]], + [81,1513.59,[[1113.89,-2000.69,45.2,231.729,-85.1785],[1105.42,-1901.15,44.7667,229.239,-85.0889],[1096.89,-1802.71,44.3333,226.712,-84.9966],[1087.95,-1701.66,43.8833,224.048,-84.8978],[1078.96,-1601.83,43.4333,221.344,-84.7958],[1069.89,-1503.23,42.9833,218.6,-84.6905],[1060.41,-1402.31,42.5167,215.711,-84.5775],[1050.87,-1302.76,42.05,212.779,-84.4606],[1040.9,-1201.12,41.5667,209.696,-84.3351],[1030.86,-1101,41.0833,206.566,-84.2049],[1020.74,-1002.42,40.6,203.39,-84.0695],[1010.19,-902.078,40.1,200.055,-83.9239],[999.213,-800.178,39.5833,196.557,-83.7669],[988.146,-700.12,39.0667,193.006,-83.603],[976.995,-601.929,38.55,189.403,-83.4315],[965.397,-502.561,38.0167,185.629,-83.2462],[953.345,-402.237,37.4667,181.68,-83.0453],[940.832,-301.189,36.9,177.55,-82.8274],[928.224,-202.53,36.3333,173.36,-82.5972],[914.771,-100.709,35.7333,168.857,-82.3389],[901.214,-1.64671,35.1333,164.289,-82.0643],[886.794,99.8794,34.5,159.397,-81.7549],[872.263,198.237,33.8667,154.435,-81.4231],[856.851,298.295,33.2,149.137,-81.0471],[840.542,399.462,32.5,143.495,-80.6189],[823.716,498.84,31.7833,137.639,-80.1402],[805.973,598.225,31.0333,131.427,-79.589],[786.9,698.952,30.2333,124.713,-78.9351],[766.477,799.907,29.3833,117.487,-78.1518],[744.683,899.884,28.4833,109.744,-77.202],[721.092,999.219,27.5167,101.337,-76.01],[694.858,1099.01,26.45,91.9772,-74.4283],[665.111,1198.77,25.25,81.3859,-72.195],[629.711,1299.25,23.8333,68.8968,-68.6459],[584.359,1399.46,22.0333,53.3579,-61.699],[503.821,1499.96,18.8667,30.2774,-32.46],[461.595,1513.59,17.2167,25.6343,-0.218087]]], + [82,1521.44,[[993.868,-2002.62,45.2833,231.847,-85.7068],[986.319,-1902.96,44.85,229.356,-85.627],[978.42,-1800.62,44.4,226.729,-85.5416],[970.755,-1703.2,43.9667,224.161,-85.4569],[962.736,-1603.24,43.5167,221.455,-85.3661],[954.355,-1500.87,43.05,218.606,-85.2688],[946.212,-1403.44,42.6,215.818,-85.1718],[937.398,-1300.21,42.1167,212.777,-85.0639],[928.824,-1201.96,41.65,209.796,-84.956],[919.875,-1101.69,41.1667,206.663,-84.84],[910.859,-1002.95,40.6833,203.483,-84.7195],[901.461,-902.451,40.1833,200.144,-84.5898],[891.674,-800.385,39.6667,196.642,-84.4501],[881.811,-700.157,39.15,193.086,-84.304],[871.874,-601.797,38.6333,189.477,-84.1515],[861.539,-502.251,38.1,185.697,-83.9863],[850.799,-401.742,37.55,181.74,-83.8075],[839.648,-300.503,36.9833,177.603,-83.6134],[828.412,-201.65,36.4167,173.404,-83.4083],[816.757,-102.42,35.8333,169.018,-83.1849],[804.342,-0.352353,35.2167,164.313,-82.9336],[791.83,98.7582,34.6,159.538,-82.6654],[778.542,199.976,33.95,154.432,-82.3623],[765.151,297.808,33.3,149.252,-82.0359],[750.62,399.321,32.6,143.594,-81.6549],[735.629,499.057,31.8833,137.718,-81.2289],[719.82,598.82,31.1333,131.483,-80.7383],[702.825,699.954,30.3333,124.741,-80.156],[684.986,799.417,29.5,117.625,-79.4728],[665.57,899.991,28.6,109.841,-78.6283],[644.553,999.974,27.6333,101.381,-77.5678],[621.548,1098.99,26.5833,92.0969,-76.1832],[595.05,1199.76,25.3833,81.4025,-74.1969],[564.26,1299.25,24,69.0422,-71.1176],[524.619,1399.95,22.2333,53.4492,-65.0722],[459.343,1499.74,19.35,30.6229,-42.0686],[411.883,1521.44,17.2667,22.825,-0.328666]]], + [83,1528.4,[[872.496,-2002.7,45.35,231.91,-86.2361],[865.875,-1902.94,44.9167,229.417,-86.1661],[858.946,-1800.5,44.4667,226.789,-86.0912],[852.223,-1702.99,44.0333,224.219,-86.0169],[845.188,-1602.93,43.5833,221.511,-85.9373],[837.837,-1500.46,43.1167,218.659,-85.852],[830.694,-1402.93,42.6667,215.867,-85.767],[823.231,-1303.13,42.2,212.929,-85.6757],[815.442,-1201.23,41.7167,209.839,-85.5778],[807.593,-1100.84,41.2333,206.703,-85.4761],[799.684,-1001.99,40.75,203.519,-85.3704],[791.44,-901.376,40.25,200.175,-85.2567],[783.133,-802.455,39.75,196.782,-85.1382],[774.484,-702.043,39.2333,193.222,-85.0104],[765.488,-600.35,38.7,189.492,-84.8722],[756.422,-500.674,38.1667,185.706,-84.7274],[747.001,-400.03,37.6167,181.742,-84.5706],[737.508,-301.599,37.0667,177.72,-84.4054],[727.654,-202.533,36.5,173.514,-84.2259],[717.14,-100.279,35.9,168.994,-84.0244],[706.545,-0.77967,35.3,164.407,-83.8101],[695.572,98.5686,34.6833,159.622,-83.5751],[684.218,197.48,34.05,154.637,-83.3166],[672.175,298.126,33.3833,149.312,-83.0236],[659.431,399.916,32.6833,143.638,-82.6897],[646.283,499.939,31.9667,137.745,-82.3162],[632.727,597.832,31.2333,131.63,-81.8961],[617.826,699.405,30.4333,124.864,-81.3866],[602.183,799.33,29.6,117.719,-80.7886],[585.474,898.6,28.7167,110.045,-80.0638],[567.047,999.272,27.75,101.54,-79.1372],[546.877,1099.05,26.7,92.1947,-77.9264],[523.968,1199.36,25.5167,81.5599,-76.2144],[497.301,1298.98,24.15,69.2066,-73.5592],[463.209,1399.88,22.4167,53.6174,-68.3912],[409.315,1499.87,19.7,30.8302,-49.7591],[361.404,1528.4,17.3,20.0032,-0.151067]]], + [84,1534.45,[[749.94,-2000.95,45.4,231.921,-86.7667],[744.251,-1901.13,44.9667,229.425,-86.7066],[738.519,-1802.4,44.5333,226.892,-86.6447],[732.521,-1701.06,44.0833,224.222,-86.5785],[726.477,-1600.93,43.6333,221.511,-86.5101],[720.387,-1502.03,43.1833,218.758,-86.4395],[714.024,-1400.79,42.7167,215.861,-86.3637],[707.611,-1300.92,42.25,212.919,-86.2853],[701.15,-1202.44,41.7833,209.933,-86.2041],[694.408,-1101.93,41.3,206.794,-86.1168],[687.615,-1002.95,40.8167,203.608,-86.0262],[680.533,-902.205,40.3167,200.261,-85.9285],[673.398,-803.15,39.8167,196.864,-85.8268],[665.969,-702.6,39.3,193.301,-85.7171],[658.241,-600.761,38.7667,189.567,-85.5986],[650.453,-500.938,38.2333,185.776,-85.4743],[642.361,-400.142,37.6833,181.807,-85.3397],[634.207,-301.556,37.1333,177.779,-85.1979],[625.742,-202.33,36.5667,173.567,-85.0438],[616.962,-102.712,35.9833,169.167,-84.8757],[607.609,-0.231573,35.3667,164.444,-84.6868],[598.184,99.296,34.75,159.651,-84.485],[588.431,198.393,34.1167,154.655,-84.263],[578.085,299.237,33.45,149.318,-84.0113],[567.4,398.854,32.7667,143.767,-83.7316],[556.108,499.191,32.05,137.86,-83.4114],[544.2,599.588,31.3,131.588,-83.0426],[531.667,699.339,30.5167,124.942,-82.6142],[518.231,799.64,29.6833,117.772,-82.1011],[503.881,899.312,28.8,110.066,-81.4791],[488.328,998.755,27.85,101.669,-80.6981],[471.007,1099.18,26.8,92.27,-79.6606],[451.611,1198.89,25.6333,81.7096,-78.215],[428.713,1299.57,24.2667,69.2345,-75.9403],[400.286,1399.29,22.5833,53.8559,-71.6537],[356.012,1499.77,19.9833,31.0743,-56.6278],[310.603,1534.45,17.3333,17.1701,-0.0906963]]], + [85,1539.58,[[626.549,-2001.23,45.45,231.972,-87.3011],[621.799,-1901.34,45.0167,229.476,-87.2511],[617.012,-1802.54,44.5833,226.941,-87.1994],[612.004,-1701.12,44.1333,224.269,-87.144],[606.957,-1600.91,43.6833,221.556,-87.087],[601.872,-1501.94,43.2333,218.802,-87.028],[596.558,-1400.62,42.7667,215.903,-86.9649],[591.204,-1300.67,42.3,212.959,-86.8994],[585.809,-1202.11,41.8333,209.97,-86.8316],[580.179,-1101.51,41.35,206.829,-86.7588],[574.506,-1002.45,40.8667,203.639,-86.6831],[568.593,-901.606,40.3667,200.29,-86.6015],[562.635,-802.46,39.8667,196.889,-86.5166],[556.431,-701.814,39.35,193.322,-86.4251],[550.181,-603.031,38.8333,189.702,-86.3293],[543.679,-503.046,38.3,185.908,-86.2257],[536.923,-402.079,37.75,181.936,-86.1134],[529.909,-300.363,37.1833,177.781,-85.9916],[522.841,-201.029,36.6167,173.563,-85.8628],[515.51,-101.299,36.0333,169.156,-85.7225],[507.911,-1.43252,35.4333,164.554,-85.5692],[500.043,98.2962,34.8167,159.754,-85.4009],[491.9,197.602,34.1833,154.751,-85.2159],[483.263,298.667,33.5167,149.405,-85.0059],[474.342,398.513,32.8333,143.843,-84.7727],[464.915,499.093,32.1167,137.924,-84.5057],[454.973,599.747,31.3667,131.637,-84.198],[444.51,699.768,30.5833,124.973,-83.8405],[433.518,798.407,29.7667,117.926,-83.4214],[421.538,898.518,28.8833,110.196,-82.9034],[408.556,998.439,27.9333,101.766,-82.2529],[394.097,1099.39,26.8833,92.3222,-81.3881],[377.906,1199.71,25.7167,81.6974,-80.1819],[359.025,1299.96,24.3667,69.2727,-78.3073],[335.532,1399.95,22.7,53.85,-74.7673],[300.007,1499.89,20.2,31.218,-62.8149],[259.494,1539.58,17.3667,14.3265,-0.218654]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 507.911; +_maxRange = 2917.38; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg3.sqf new file mode 100644 index 0000000000..b9d3f56d9e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg3.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_m821a2_m734_prox_chg3 +// Ammo: ace_arty_81mm_m821a2_m734_prox +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1147.79,[[5240.41,-2002.97,41.6167,236.785,-66.6158],[5196.38,-1902.17,41.15,234.555,-66.1702],[5151.97,-1802.67,40.6833,232.303,-65.7123],[5105.6,-1701.02,40.2,229.948,-65.2244],[5058.84,-1600.81,39.7167,227.57,-64.7221],[5011.68,-1502.06,39.2333,225.17,-64.2049],[4962.49,-1401.46,38.7333,222.665,-63.6535],[4912.88,-1302.47,38.2333,220.14,-63.0847],[4861.18,-1201.9,37.7167,217.509,-62.4778],[4809.03,-1103.1,37.2,214.858,-61.8508],[4754.74,-1003,36.6667,212.103,-61.1813],[4698.27,-901.792,36.1167,209.243,-60.4661],[4641.3,-802.682,35.5667,206.367,-59.7247],[4582.09,-702.789,35,203.39,-58.9319],[4520.6,-602.347,34.4167,200.313,-58.0836],[4456.78,-501.599,33.8167,197.139,-57.1753],[4390.58,-400.804,33.2,193.871,-56.202],[4321.97,-300.229,32.5667,190.514,-55.158],[4250.9,-200.156,31.9167,187.074,-54.0373],[4177.33,-100.879,31.25,183.557,-52.8331],[4099.33,-0.35614,30.55,179.887,-51.5056],[4018.71,98.5565,29.8333,176.162,-50.0757],[3931.6,199.818,29.0667,172.227,-48.462],[3841.69,298.35,28.2833,168.275,-46.7184],[3743.11,399.542,27.4333,164.085,-44.7115],[3639.55,498.293,26.55,159.865,-42.4925],[3524.95,598.758,25.5833,155.44,-39.8999],[3398.98,698.742,24.5333,150.91,-36.8807],[3255.2,799.826,23.35,146.221,-33.2165],[3088.84,899.886,22,141.523,-28.6943],[2882.22,999.688,20.35,136.92,-22.6915],[2575.31,1099.74,17.95,132.953,-13.1744],[2163.27,1147.79,14.8167,133.599,-0.0224256]]], + [46,1185.89,[[5196.61,-2002.2,42.0167,237.131,-67.1189],[5153.41,-1900.87,41.55,234.891,-66.683],[5109.85,-1800.83,41.0833,232.628,-66.2349],[5065.93,-1702.12,40.6167,230.342,-65.7742],[5020.06,-1601.29,40.1333,227.952,-65.2833],[4973.81,-1501.91,39.65,225.538,-64.7776],[4925.55,-1400.66,39.15,223.018,-64.2385],[4876.89,-1301.01,38.65,220.475,-63.6823],[4827.82,-1202.99,38.15,217.912,-63.1082],[4775.03,-1100.25,37.6167,215.155,-62.4754],[4723.45,-1002.54,37.1,212.465,-61.8413],[4668.07,-900.515,36.55,209.581,-61.1423],[4612.2,-800.575,36,206.679,-60.4174],[4555.85,-702.75,35.45,203.761,-59.6654],[4495.55,-601.341,34.8667,200.652,-58.8366],[4434.72,-502.379,34.2833,197.531,-57.9741],[4369.84,-400.464,33.6667,194.224,-57.0236],[4304.36,-301.365,33.05,190.912,-56.0312],[4234.71,-200.005,32.4,187.422,-54.9371],[4164.41,-101.866,31.75,183.939,-53.7911],[4089.81,-2.22078,31.0667,180.293,-52.527],[4010.83,98.3464,30.35,176.496,-51.1319],[3927.36,199.208,29.6,172.563,-49.5916],[3839.29,299.694,28.8167,168.514,-47.8895],[3746.54,399.092,28,164.375,-46.0074],[3647.08,498.495,27.1333,160.098,-43.8828],[3538.78,598.436,26.2,155.656,-41.44],[3419.45,698.781,25.1833,151.055,-38.5869],[3286.78,798.595,24.0667,146.348,-35.2123],[3132.26,899.637,22.7833,141.482,-31.015],[2946.89,999.871,21.2667,136.64,-25.6188],[2697.96,1099.66,19.2667,132.094,-17.8453],[2158.76,1185.88,15.0667,131.075,-0.0610342]]], + [47,1223.88,[[5149.71,-2002.69,42.4167,237.509,-67.6265],[5107.35,-1900.81,41.95,235.259,-67.2004],[5064.64,-1800.23,41.4833,232.986,-66.7625],[5021.57,-1700.96,41.0167,230.688,-66.3121],[4978.15,-1603.02,40.55,228.368,-65.8489],[4932.81,-1503.01,40.0667,225.942,-65.355],[4885.5,-1401.09,39.5667,223.407,-64.8283],[4837.8,-1300.77,39.0667,220.849,-64.2849],[4789.69,-1202.07,38.5667,218.268,-63.7241],[4739.56,-1101.8,38.05,215.579,-63.1253],[4687.37,-1000.17,37.5167,212.781,-62.4859],[4634.73,-900.455,36.9833,209.962,-61.8236],[4581.63,-802.695,36.45,207.124,-61.1375],[4524.74,-700.994,35.8833,204.09,-60.381],[4467.33,-601.561,35.3167,201.04,-59.5948],[4407.73,-501.606,34.7333,197.886,-58.7527],[4345.87,-401.377,34.1333,194.631,-57.8501],[4281.72,-301.13,33.5167,191.278,-56.8816],[4215.23,-201.136,32.8833,187.831,-55.8417],[4146.37,-101.679,32.2333,184.297,-54.7237],[4073.3,-0.631385,31.55,180.591,-53.4899],[3997.74,99.0944,30.85,176.815,-52.16],[3917.82,199.398,30.1167,172.891,-50.6906],[3833.44,299.63,29.35,168.838,-49.0659],[3744.5,399.096,28.55,164.677,-47.2679],[3649.02,498.959,27.7,160.355,-45.2357],[3544.95,599.832,26.7833,155.838,-42.8946],[3433.97,698.419,25.8167,151.273,-40.2482],[3308.13,799.254,24.7333,146.453,-37.0546],[3166.96,898.85,23.5333,141.561,-33.2253],[2997.95,999.781,22.1167,136.523,-28.3052],[2783.69,1099.92,20.35,131.607,-21.589],[2430.01,1199.91,17.5,127.653,-9.67426],[2150.22,1223.88,15.3,128.548,-0.0470188]]], + [48,1261.74,[[5098.21,-2000.82,42.8,237.838,-68.1239],[5058.17,-1902.07,42.35,235.66,-67.7224],[5016.31,-1800.93,41.8833,233.376,-67.2947],[4974.11,-1701.1,41.4167,231.068,-66.8548],[4931.56,-1602.58,40.95,228.737,-66.4023],[4887.12,-1501.97,40.4667,226.297,-65.9199],[4842.32,-1402.82,39.9833,223.834,-65.4228],[4795.58,-1301.82,39.4833,221.261,-64.8923],[4748.44,-1202.42,38.9833,218.664,-64.3448],[4699.33,-1101.43,38.4667,215.957,-63.7603],[4649.79,-1002.21,37.95,213.227,-63.1558],[4598.23,-901.681,37.4167,210.387,-62.5097],[4544.59,-800.04,36.8667,207.436,-61.819],[4490.48,-700.496,36.3167,204.466,-61.1021],[4434.25,-600.161,35.75,201.387,-60.3346],[4377.54,-502.117,35.1833,198.292,-59.5364],[4316.95,-400.839,34.5833,195.002,-58.6558],[4255.83,-302.205,33.9833,191.701,-57.7369],[4190.73,-201.002,33.35,188.21,-56.7229],[4123.3,-100.29,32.7,184.626,-55.6324],[4053.51,-0.363739,32.0333,180.955,-54.4582],[3981.3,98.4688,31.35,177.206,-53.1927],[3904.86,198.158,30.6333,173.298,-51.7938],[3824.08,298.074,29.8833,169.247,-50.246],[3737.07,399.604,29.0833,164.985,-48.4944],[3645.49,499.742,28.25,160.63,-46.5522],[3547.4,599.527,27.3667,156.134,-44.3538],[3440.76,699.426,26.4167,151.471,-41.819],[3323.44,799.224,25.3833,146.65,-38.8496],[3191.28,899.256,24.2333,141.66,-35.2723],[3037.94,999.278,22.9167,136.544,-30.8134],[2848.79,1099.61,21.3167,131.38,-24.8777],[2579.68,1199.94,19.0833,126.563,-15.7453],[2139.88,1261.73,15.5333,125.998,-0.0516463]]], + [49,1299.41,[[5043.61,-2000.29,43.1833,238.198,-68.6261],[5004.39,-1901.05,42.7333,236.012,-68.234],[4964.85,-1802.99,42.2833,233.801,-67.8314],[4923.52,-1702.58,41.8167,231.483,-67.4021],[4881.85,-1603.48,41.35,229.141,-66.9606],[4838.33,-1502.26,40.8667,226.689,-66.4897],[4794.45,-1402.5,40.3833,224.213,-66.0045],[4748.67,-1300.85,39.8833,221.625,-65.4867],[4702.51,-1200.8,39.3833,219.012,-64.9522],[4655.96,-1102.39,38.8833,216.376,-64.4002],[4607.46,-1002.43,38.3667,213.628,-63.8105],[4556.96,-901.116,37.8333,210.767,-63.1802],[4506.04,-801.74,37.3,207.884,-62.527],[4453.07,-701.315,36.75,204.889,-61.8281],[4398.02,-600.062,36.1833,201.782,-61.0798],[4342.49,-501.091,35.6167,198.658,-60.3013],[4284.83,-401.626,35.0333,195.426,-59.4667],[4225.01,-301.917,34.4333,192.088,-58.571],[4162.97,-202.221,33.8167,188.648,-57.6088],[4096.99,-100.236,33.1667,185.016,-56.5464],[4030.4,-1.47905,32.5167,181.385,-55.4313],[3959.75,98.8094,31.8333,177.576,-54.1986],[3886.7,197.734,31.1333,173.691,-52.8675],[3807.69,299.383,30.3833,169.56,-51.3597],[3726.13,398.579,29.6167,165.384,-49.7249],[3638.38,498.925,28.8,161.005,-47.8727],[3544.29,599.322,27.9333,156.46,-45.7735],[3443.73,698.581,27.0167,151.799,-43.3933],[3332.8,798.613,26.0167,146.925,-40.5973],[3207.47,899.978,24.9,141.808,-37.215],[3067.28,999.053,23.6667,136.646,-33.1463],[2896.3,1099.99,22.1833,131.279,-27.7824],[2673.57,1199.68,20.2833,126.068,-20.1983],[2125.67,1299.41,15.75,123.444,-0.000218818]]], + [50,1336.87,[[4985.88,-2001.18,43.5667,238.591,-69.1331],[4947.48,-1901.42,43.1167,236.396,-68.7505],[4908.78,-1802.85,42.6667,234.176,-68.3576],[4868.31,-1701.9,42.2,231.849,-67.9387],[4827.52,-1602.26,41.7333,229.496,-67.5078],[4784.91,-1500.47,41.25,227.032,-67.0482],[4741.95,-1400.12,40.7667,224.542,-66.5746],[4698.63,-1301.25,40.2833,222.027,-66.0862],[4653.45,-1200.55,39.7833,219.4,-65.5649],[4607.89,-1101.46,39.2833,216.747,-65.0265],[4560.41,-1000.8,38.7667,213.981,-64.4512],[4512.54,-901.919,38.25,211.19,-63.8559],[4462.7,-801.745,37.7167,208.286,-63.2191],[4410.87,-700.489,37.1667,205.267,-62.5378],[4358.59,-601.341,36.6167,202.227,-61.83],[4304.26,-501.427,36.05,199.074,-61.0716],[4247.85,-400.983,35.4667,195.81,-60.2583],[4189.31,-300.254,34.8667,192.437,-59.3853],[4130.26,-202.186,34.2667,189.051,-58.4731],[4067.38,-101.598,33.6333,185.469,-57.4651],[4002.26,-1.53653,32.9833,181.788,-56.3796],[3934.86,97.7018,32.3167,178.016,-55.2091],[3863.43,198.154,31.6167,174.066,-53.9136],[3787.89,299.211,30.8833,169.952,-52.4785],[3709.89,398.075,30.1333,165.781,-50.9226],[3625.88,498.452,29.3333,161.389,-49.1577],[3535.71,599.27,28.4833,156.808,-47.155],[3439.24,699.371,27.5833,152.082,-44.8812],[3334.51,799.154,26.6167,147.187,-42.251],[3217.62,899.817,25.55,142.056,-39.1079],[3086.37,999.713,24.3667,136.777,-35.3092],[2932.77,1099.42,23,131.35,-30.4994],[2738.77,1199.57,21.3,125.847,-23.8902],[2439.88,1299.61,18.7333,120.844,-12.7775],[2111.71,1336.87,15.9833,120.845,-0.0445363]]], + [51,1374.07,[[4925,-2003.53,43.95,239.015,-69.6446],[4887.44,-1903.25,43.5,236.813,-69.2716],[4848.17,-1800.51,43.0333,234.503,-68.8742],[4809.99,-1702.65,42.5833,232.249,-68.4802],[4770.08,-1602.46,42.1167,229.886,-68.06],[4728.39,-1500.09,41.6333,227.411,-67.6119],[4687.82,-1402.61,41.1667,224.996,-67.1662],[4645.45,-1303.1,40.6833,222.469,-66.6905],[4601.25,-1201.71,40.1833,219.827,-66.1826],[4556.69,-1101.94,39.6833,217.16,-65.658],[4510.25,-1000.57,39.1667,214.376,-65.0974],[4463.42,-900.97,38.65,211.567,-64.5171],[4414.68,-800.045,38.1167,208.642,-63.8965],[4365.52,-701.067,37.5833,205.693,-63.2527],[4314.39,-601.064,37.0333,202.628,-62.5633],[4261.26,-500.26,36.4667,199.448,-61.8245],[4207.67,-401.752,35.9,196.248,-61.0551],[4152.04,-302.778,35.3167,192.936,-60.2293],[4092.7,-200.872,34.7,189.418,-59.3168],[4032.84,-101.805,34.0833,185.889,-58.3614],[3969.18,-0.503006,33.4333,182.161,-57.3048],[3904.94,97.5503,32.7833,178.431,-56.194],[3835.13,199.459,32.0833,174.42,-54.9334],[3762.98,299.774,31.3667,170.329,-53.5685],[3688.46,398.148,30.6333,166.171,-52.0888],[3608.1,498.384,29.85,161.775,-50.4086],[3521.75,599.44,29.0167,157.17,-48.4999],[3431.04,698.347,28.15,152.483,-46.3724],[3330.56,799.399,27.2,147.5,-43.8609],[3221.84,898.879,26.1833,142.392,-40.9507],[3099.22,999.048,25.05,137.043,-37.4176],[2956.79,1099.8,23.75,131.464,-32.9707],[2784.55,1199.82,22.2,125.787,-27.1076],[2547.1,1299.77,20.1,120.227,-18.2502],[2093.94,1374.06,16.2,118.241,-0.0325201]]], + [52,1410.96,[[4859.61,-2003.66,44.3167,239.391,-70.147],[4822.89,-1902.9,43.8667,237.181,-69.7835],[4785.86,-1803.31,43.4167,234.946,-69.41],[4747.15,-1701.3,42.95,232.6,-69.0119],[4708.11,-1600.58,42.4833,230.227,-68.6023],[4668.76,-1501.19,42.0167,227.827,-68.1806],[4629.09,-1403.14,41.55,225.401,-67.7464],[4587.67,-1303.02,41.0667,222.861,-67.283],[4544.46,-1201,40.5667,220.206,-66.7882],[4500.89,-1100.59,40.0667,217.523,-66.277],[4456.96,-1001.81,39.5667,214.814,-65.7486],[4411.19,-901.475,39.05,211.988,-65.1837],[4365.03,-802.934,38.5333,209.135,-64.5987],[4315.49,-700.034,37.9833,206.073,-63.9525],[4267.03,-602.249,37.45,203.078,-63.3018],[4215.11,-500.538,36.8833,199.872,-62.5829],[4162.74,-401.114,36.3167,196.644,-61.8341],[4108.36,-301.188,35.7333,193.3,-61.0302],[4051.95,-201.009,35.1333,189.842,-60.1662],[3993.46,-100.837,34.5167,186.273,-59.2366],[3932.86,-0.945821,33.8833,182.597,-58.2352],[3870.1,98.3804,33.2333,178.817,-57.1551],[3803.53,199.26,32.55,174.844,-55.9585],[3734.71,298.781,31.85,170.783,-54.6632],[3661.94,398.835,31.1167,166.55,-53.2253],[3585.13,498.765,30.35,162.16,-51.627],[3502.52,599.882,29.5333,157.541,-49.8095],[3415.68,699.196,28.6833,152.819,-47.782],[3321.06,799.419,27.7667,147.855,-45.4281],[3218.48,898.869,26.7833,142.719,-42.6952],[3104.19,998.623,25.7,137.348,-39.4172],[2972.51,1099.47,24.4667,131.693,-35.3227],[2817.42,1199.37,23.0333,125.894,-30.059],[2615.94,1299.54,21.2,120.008,-22.5443],[2244.77,1399.97,17.9,115.047,-7.25903],[2074.4,1410.96,16.4167,115.612,-0.0416175]]], + [53,1447.51,[[4789.77,-2001.58,44.6667,239.717,-70.6413],[4753.87,-1900.36,44.2167,237.5,-70.2869],[4717.68,-1800.32,43.7667,235.256,-69.9229],[4681.2,-1701.46,43.3167,232.985,-69.5488],[4643.06,-1600.22,42.85,230.603,-69.1498],[4604.61,-1500.29,42.3833,228.193,-68.7391],[4565.84,-1401.69,41.9167,225.756,-68.3162],[4525.36,-1301,41.4333,223.204,-67.8648],[4484.56,-1201.79,40.95,220.625,-67.399],[4441.99,-1100.72,40.45,217.928,-66.9015],[4399.07,-1001.28,39.95,215.203,-66.3872],[4354.35,-900.259,39.4333,212.36,-65.8372],[4309.26,-801.021,38.9167,209.489,-65.2676],[4262.33,-700.482,38.3833,206.499,-64.6578],[4215,-601.901,37.85,203.483,-64.0248],[4165.78,-502.32,37.3,200.347,-63.3463],[4114.64,-401.964,36.7333,197.092,-62.6184],[4061.54,-301.07,36.15,193.718,-61.8368],[4007.98,-202.659,35.5667,190.324,-61.0205],[3950.87,-101.364,34.95,186.717,-60.1173],[3891.7,-0.30709,34.3167,182.998,-59.144],[3832,97.6907,33.6833,179.27,-58.1214],[3767.02,199.943,33,175.242,-56.9588],[3701.44,298.528,32.3167,171.218,-55.7305],[3632.03,397.922,31.6,167.01,-54.3664],[3557.08,499.651,30.8333,162.536,-52.8146],[3479.77,598.607,30.05,158.009,-51.1227],[3396.72,698.263,29.2167,153.262,-49.1951],[3306.12,799.293,28.3167,148.244,-46.9537],[3209.49,898.385,27.3667,143.105,-44.3933],[3101.53,998.747,26.3167,137.667,-41.3122],[2980.17,1098.8,25.15,132.002,-37.5569],[2837.97,1199.28,23.8,126.076,-32.7499],[2661.66,1299.4,22.15,119.994,-26.1872],[2400.47,1399.6,19.75,114.086,-15.4035],[2053.08,1447.51,16.6333,112.96,-0.0735028]]], + [54,1483.68,[[4716.86,-2001.09,45.0167,240.076,-71.1407],[4683.1,-1903.16,44.5833,237.935,-70.8086],[4647.77,-1802.6,44.1333,235.684,-70.4545],[4612.15,-1703.23,43.6833,233.406,-70.0905],[4574.91,-1601.44,43.2167,231.015,-69.7024],[4537.36,-1500.96,42.75,228.596,-69.3028],[4499.51,-1401.81,42.2833,226.149,-68.8913],[4459.99,-1300.54,41.8,223.586,-68.4521],[4420.14,-1200.74,41.3167,220.994,-67.9988],[4379.97,-1102.43,40.8333,218.374,-67.531],[4338.07,-1002.31,40.3333,215.635,-67.031],[4294.42,-900.587,39.8167,212.776,-66.4963],[4250.4,-800.638,39.3,209.888,-65.9423],[4206.02,-702.493,38.7833,206.973,-65.3681],[4158.38,-600.027,38.2333,203.841,-64.7335],[4111.79,-502.676,37.7,200.777,-64.0938],[4061.87,-401.44,37.1333,197.497,-63.3863],[4011.53,-302.505,36.5667,194.191,-62.6487],[3957.77,-200.294,35.9667,190.668,-61.8326],[3903.54,-100.739,35.3667,187.124,-60.9784],[3847.32,-1.22731,34.75,183.463,-60.0581],[3789.08,97.9674,34.1167,179.691,-59.0652],[3727.23,199.043,33.45,175.71,-57.9643],[3663.25,299.036,32.7667,171.628,-56.7721],[3595.55,399.924,32.05,167.354,-55.4474],[3525.63,498.874,31.3167,162.998,-54.0068],[3450.24,599.712,30.5333,158.38,-52.3655],[3370.88,699.417,29.7167,153.622,-50.5323],[3285.84,799.078,28.85,148.659,-48.4391],[3193.32,899.219,27.9167,143.448,-46.0004],[3091.46,999.689,26.9,137.976,-43.1073],[2978.34,1099.53,25.7833,132.28,-39.6223],[2848.48,1199.25,24.5167,126.328,-35.2512],[2690.9,1299.41,23,120.107,-29.4057],[2478,1399.51,20.9833,113.808,-20.6198],[2028.14,1483.68,16.8333,110.298,-0.0451503]]], + [55,1519.42,[[4640.84,-2002.25,45.3667,240.467,-71.6451],[4606.63,-1900.09,44.9167,238.237,-71.3095],[4573.43,-1802.82,44.4833,236.062,-70.9777],[4538.67,-1702.97,44.0333,233.777,-70.6237],[4502.33,-1600.67,43.5667,231.377,-70.2461],[4467.01,-1503.27,43.1167,229.036,-69.8715],[4428.76,-1400.02,42.6333,226.492,-69.4571],[4391.52,-1301.69,42.1667,224.006,-69.0447],[4352.65,-1201.29,41.6833,221.403,-68.6041],[4313.46,-1102.37,41.2,218.771,-68.1494],[4272.58,-1001.63,40.7,216.018,-67.6633],[4231.37,-902.518,40.2,213.236,-67.1605],[4188.44,-801.844,39.6833,210.332,-66.6225],[4145.14,-702.966,39.1667,207.399,-66.0648],[4100.09,-602.811,38.6333,204.343,-65.4673],[4053.23,-501.59,38.0833,201.162,-64.8267],[4005.98,-402.495,37.5333,197.954,-64.1598],[3956.88,-302.654,36.9667,194.622,-63.4436],[3905.91,-202.305,36.3833,191.167,-62.6737],[3853.04,-101.697,35.7833,187.589,-61.8451],[3798.22,-1.09095,35.1667,183.892,-60.952],[3741.43,99.2393,34.5333,180.077,-59.9882],[3682.63,199.007,33.8833,176.149,-58.9465],[3621.8,297.913,33.2167,172.113,-57.8188],[3557.34,397.982,32.5167,167.876,-56.5651],[3489.21,498.599,31.7833,163.447,-55.1695],[3417.3,599.105,31.0167,158.843,-53.613],[3341.57,698.8,30.2167,154.081,-51.8738],[3260.32,798.84,29.3667,149.093,-49.8858],[3171.81,899.827,28.45,143.825,-47.5659],[3077.52,998.447,27.4833,138.436,-44.9037],[2970.71,1099.21,26.4,132.659,-41.6336],[2849.36,1199.89,25.1833,126.597,-37.5699],[2707.96,1299.13,23.7833,120.338,-32.3473],[2525.22,1399.33,22,113.802,-24.828],[2213.2,1499.93,19.0167,107.645,-10.3652],[2001.5,1519.42,17.0333,107.611,-0.0393024]]], + [56,1554.71,[[4560.47,-2001.29,45.7,240.81,-72.1424],[4528.35,-1902.48,45.2667,238.656,-71.8283],[4494.73,-1801,44.8167,236.391,-71.4934],[4460.83,-1700.69,44.3667,234.097,-71.1491],[4426.66,-1601.57,43.9167,231.776,-70.7952],[4390.94,-1500.06,43.45,229.339,-70.4175],[4356.22,-1403.42,43,226.961,-70.0426],[4318.63,-1301,42.5167,224.377,-69.6277],[4280.73,-1200.04,42.0333,221.762,-69.1997],[4242.51,-1100.56,41.55,219.118,-68.7577],[4203.99,-1002.57,41.0667,216.444,-68.3012],[4163.82,-902.811,40.5667,213.648,-67.813],[4121.97,-801.457,40.05,210.728,-67.2906],[4079.77,-701.892,39.5333,207.777,-66.7489],[4035.85,-601.019,39,204.701,-66.1685],[3991.56,-502.109,38.4667,201.596,-65.5654],[3945.51,-402.194,37.9167,198.365,-64.9182],[3897.66,-301.499,37.35,195.007,-64.2231],[3847.99,-200.262,36.7667,191.523,-63.4756],[3797.89,-101.515,36.1833,188.014,-62.6938],[3745.92,-2.58324,35.5833,184.382,-61.8513],[3690.6,98.9017,34.95,180.527,-60.9172],[3633.31,199.867,34.3,176.554,-59.9072],[3575.53,297.554,33.65,172.569,-58.8413],[3512.75,399.033,32.95,168.273,-57.6263],[3447.89,498.869,32.2333,163.879,-56.3045],[3379.4,598.887,31.4833,159.296,-54.8299],[3307.19,698.404,30.7,154.541,-53.1814],[3229.65,798.642,29.8667,149.539,-51.2954],[3146.65,898.46,28.9833,144.326,-49.1338],[3054.89,999.991,28.0167,138.763,-46.5584],[2955.78,1099.48,26.9833,133.035,-43.5398],[2844.25,1199.05,25.8333,127.004,-39.8281],[2713.39,1299.54,24.5,120.598,-35.0216],[2552.57,1399.49,22.8833,113.93,-28.4305],[2319.9,1499.54,20.5833,107.187,-17.6623],[1973.14,1554.71,17.2333,104.9,-0.0579321]]], + [57,1589.49,[[4477.04,-2002.07,46.0333,241.185,-72.6449],[4445.74,-1902.82,45.6,239.025,-72.3398],[4412.98,-1800.89,45.15,236.754,-72.0145],[4379.96,-1700.12,44.7,234.453,-71.6801],[4346.67,-1600.54,44.25,232.124,-71.3364],[4313.11,-1502.16,43.8,229.767,-70.9828],[4278.04,-1401.42,43.3333,227.292,-70.6053],[4242.68,-1302.01,42.8667,224.787,-70.2163],[4205.76,-1200.48,42.3833,222.162,-69.8009],[4168.54,-1100.42,41.9,219.506,-69.3719],[4131.01,-1001.85,41.4167,216.82,-68.9288],[4091.88,-901.479,40.9167,214.01,-68.4549],[4052.43,-802.75,40.4167,211.169,-67.9643],[4011.34,-702.482,39.9,208.203,-67.4389],[3968.56,-600.877,39.3667,205.108,-66.876],[3925.43,-501.226,38.8333,201.983,-66.2909],[3880.58,-400.54,38.2833,198.73,-65.6629],[3835.35,-301.995,37.7333,195.447,-65.0086],[3788.37,-202.736,37.1667,192.037,-64.3051],[3738.2,-100.189,36.5667,188.397,-63.5258],[3687.6,-0.306258,35.9667,184.731,-62.7087],[3635.15,99.5347,35.35,180.94,-61.8268],[3580.82,199.058,34.7167,177.027,-60.8736],[3524.57,297.976,34.0667,172.995,-59.8414],[3464.92,398.391,33.3833,168.746,-58.6931],[3401.8,499.71,32.6667,164.288,-57.4136],[3336.63,599.088,31.9333,159.734,-56.0178],[3267.87,698.265,31.1667,154.996,-54.457],[3193.95,798.527,30.35,149.99,-52.6698],[3114.74,898.762,29.4833,144.751,-50.6192],[3028.6,999.498,28.55,139.223,-48.2164],[2935.35,1099.01,27.55,133.48,-45.3958],[2830.11,1199.67,26.4333,127.356,-41.9148],[2710.96,1299.05,25.1833,120.973,-37.5646],[2566.16,1399.46,23.6833,114.176,-31.6636],[2373.45,1499.4,21.7167,107.149,-22.7777],[1941.37,1589.49,17.4167,102.177,-0.0116222]]], + [58,1623.74,[[4389.34,-2000.8,46.35,241.511,-73.1412],[4358.88,-1901.14,45.9167,239.345,-72.845],[4328.17,-1802.56,45.4833,237.152,-72.5409],[4296.03,-1701.32,45.0333,234.845,-72.2166],[4263.63,-1601.26,44.5833,232.509,-71.883],[4230.97,-1502.39,44.1333,230.144,-71.54],[4196.82,-1401.15,43.6667,227.661,-71.1738],[4162.41,-1301.24,43.2,225.147,-70.7965],[4127.72,-1202.67,42.7333,222.602,-70.4074],[4091.5,-1102.01,42.25,219.936,-69.9917],[4054.98,-1002.85,41.7667,217.238,-69.5621],[4016.9,-901.851,41.2667,214.416,-69.1027],[3978.51,-802.491,40.7667,211.561,-68.6271],[3938.52,-701.565,40.25,208.578,-68.1177],[3898.2,-602.44,39.7333,205.564,-67.5892],[3856.23,-502.034,39.2,202.421,-67.0224],[3812.59,-400.56,38.65,199.146,-66.414],[3768.59,-301.219,38.1,195.841,-65.78],[3722.88,-201.132,37.5333,192.404,-65.0982],[3675.43,-100.536,36.95,188.837,-64.3642],[3627.57,-2.44892,36.3667,185.243,-63.5954],[3576.56,98.4766,35.75,181.417,-62.7423],[3523.72,199.126,35.1167,177.464,-61.8199],[3469.01,299.211,34.4667,173.387,-60.8208],[3412.42,398.431,33.8,169.191,-59.7365],[3352.47,498.818,33.1,164.777,-58.5281],[3289.1,599.752,32.3667,160.155,-57.1787],[3223.71,698.435,31.6167,155.44,-55.7024],[3153.32,798.553,30.8167,150.442,-54.0105],[3077.82,899.023,29.9667,145.187,-52.0677],[2997.11,998.671,29.0667,139.715,-49.8312],[2908.04,1099.51,28.0833,133.886,-47.1546],[2810.41,1199.26,27.0167,127.799,-43.9467],[2699.37,1299.3,25.8167,121.34,-39.9198],[2568.27,1399.46,24.4167,114.492,-34.6097],[2400.55,1499.97,22.65,107.255,-26.9126],[2124.9,1600,19.8,100.104,-12.332],[1909.63,1623.73,17.6167,99.4159,-0.0835619]]], + [59,1657.4,[[4298.63,-2001.36,46.6667,241.87,-73.6429],[4269,-1901.3,46.2333,239.7,-73.3557],[4239.13,-1802.29,45.8,237.501,-73.0609],[4207.87,-1700.61,45.35,235.188,-72.7464],[4176.36,-1600.11,44.9,232.844,-72.423],[4144.6,-1500.8,44.45,230.471,-72.0903],[4112.58,-1402.7,44,228.069,-71.748],[4079.12,-1302.26,43.5333,225.547,-71.3824],[4045.39,-1203.16,43.0667,222.993,-71.0055],[4010.17,-1101.96,42.5833,220.316,-70.6026],[3974.67,-1002.23,42.1,217.607,-70.1864],[3937.64,-900.653,41.6,214.771,-69.7411],[3900.31,-800.703,41.1,211.903,-69.2802],[3862.68,-702.408,40.6,209.002,-68.8027],[3823.48,-602.602,40.0833,205.972,-68.2909],[3782.68,-501.487,39.55,202.81,-67.742],[3741.55,-402.339,39.0167,199.615,-67.171],[3698.78,-302.186,38.4667,196.289,-66.5576],[3654.35,-201.253,37.9,192.828,-65.8979],[3609.55,-102.643,37.3333,189.337,-65.2083],[3561.72,-0.801204,36.7333,185.61,-64.4434],[3513.48,98.3582,36.1333,181.854,-63.6402],[3463.48,197.436,35.5167,177.968,-62.772],[3410.33,298.71,34.8667,173.849,-61.8065],[3355.34,399.162,34.2,169.605,-60.7585],[3298.48,498.481,33.5167,165.241,-59.6183],[3238.33,598.619,32.8,160.66,-58.3449],[3174.81,698.937,32.05,155.871,-56.9195],[3107.87,798.75,31.2667,150.889,-55.3197],[3035.99,899.283,30.4333,145.631,-53.4813],[2959.08,999.39,29.55,140.13,-51.3628],[2875.55,1099.52,28.6,134.335,-48.8686],[2783.77,1199.44,27.5667,128.226,-45.8732],[2680.54,1299.45,26.4167,121.746,-42.155],[2561.01,1399.24,25.1,114.878,-37.3469],[2412.35,1499.93,23.4833,107.52,-30.5689],[2200.63,1599.84,21.2167,99.9255,-19.4272],[1874.56,1657.39,17.8,96.6428,-0.0907094]]], + [60,1690.45,[[4204.85,-2003.79,46.9833,242.263,-74.1498],[4176.07,-1903.3,46.55,240.088,-73.8717],[4145.94,-1800.06,46.1,237.799,-73.5751],[4116.69,-1701.74,45.6667,235.566,-73.2817],[4086.08,-1600.78,45.2167,233.216,-72.9685],[4055.22,-1501.01,44.7667,230.836,-72.6464],[4024.12,-1402.45,44.3167,228.426,-72.3149],[3991.61,-1301.52,43.85,225.895,-71.9608],[3958.84,-1201.93,43.3833,223.332,-71.5957],[3924.63,-1100.22,42.9,220.645,-71.2055],[3891.33,-1003.41,42.4333,218.019,-70.8165],[3855.37,-901.227,41.9333,215.171,-70.3857],[3819.11,-800.674,41.4333,212.29,-69.9396],[3782.56,-701.77,40.9333,209.375,-69.4774],[3744.49,-601.328,40.4167,206.329,-68.9821],[3706.1,-502.699,39.9,203.249,-68.4678],[3666.16,-402.819,39.3667,200.036,-67.9156],[3624.63,-301.902,38.8167,196.689,-67.3224],[3581.48,-200.174,38.25,193.205,-66.6843],[3537.97,-100.761,37.6833,189.689,-66.0172],[3492.82,-0.877139,37.1,186.036,-65.298],[3445.98,99.225,36.5,182.249,-64.5217],[3397.43,199.281,35.8833,178.328,-63.6822],[3347.15,299.015,35.25,174.274,-62.773],[3295.11,398.137,34.6,170.091,-61.7864],[3239.93,498.755,33.9167,165.676,-60.6859],[3182.91,597.956,33.2167,161.142,-59.4856],[3121.27,699.832,32.4667,156.282,-58.1101],[3057.69,799.184,31.7,151.325,-56.5992],[2989.35,899.611,30.8833,146.074,-54.8616],[2916.15,999.997,30.0167,140.557,-52.8576],[2837.98,1099.13,29.1,134.818,-50.539],[2751.88,1198.9,28.1,128.714,-47.7495],[2654.73,1299.81,26.9833,122.162,-44.2755],[2544.78,1399.42,25.7333,115.275,-39.8841],[2412.74,1499.04,24.25,107.929,-33.9103],[2235.21,1599.48,22.2833,100.077,-24.6352],[1836.29,1690.45,17.9667,93.8556,-0.0271267]]], + [61,1722.85,[[4105.87,-2000.38,47.2667,242.525,-74.6413],[4079.01,-1903.4,46.85,240.428,-74.3824],[4050.85,-1803.57,46.4167,238.219,-74.1061],[4021.38,-1701.02,45.9667,235.894,-73.8114],[3992.78,-1603.38,45.5333,233.626,-73.5197],[3962.84,-1503.14,45.0833,231.24,-73.2082],[3931.54,-1400.45,44.6167,228.733,-72.8756],[3901.12,-1302.67,44.1667,226.285,-72.5453],[3869.32,-1202.58,43.7,223.714,-72.1923],[3836.13,-1100.33,43.2167,221.017,-71.815],[3803.82,-1003.01,42.75,218.38,-71.4387],[3768.92,-900.273,42.25,215.521,-71.022],[3734.91,-802.5,41.7667,212.724,-70.6052],[3699.46,-702.972,41.2667,209.796,-70.1587],[3662.52,-601.878,40.75,206.735,-69.6801],[3625.28,-502.59,40.2333,203.64,-69.183],[3586.53,-402.024,39.7,200.409,-68.6494],[3546.24,-300.391,39.15,197.042,-68.076],[3505.62,-200.899,38.6,193.639,-67.4776],[3463.42,-100.664,38.0333,190.098,-66.8333],[3420.87,-2.76917,37.4667,186.525,-66.159],[3375.45,98.2954,36.8667,182.708,-65.41],[3328.37,199.351,36.25,178.753,-64.5999],[3280.9,297.51,35.6333,174.769,-63.7459],[3230.43,397.792,34.9833,170.544,-62.7944],[3176.93,499.642,34.3,166.08,-61.7328],[3122.96,597.773,33.6167,161.599,-60.6026],[3064.53,698.885,32.8833,156.781,-59.3067],[3002.91,799.874,32.1167,151.747,-57.8509],[2939.38,898.003,31.3333,146.621,-56.2462],[2869.81,998.613,30.4833,141.1,-54.3563],[2795.47,1098.38,29.5833,135.328,-52.1677],[2713.45,1199.32,28.6,129.15,-49.5297],[2623.58,1299.14,27.5333,122.662,-46.3404],[2521.41,1399.22,26.3333,115.727,-42.2928],[2400.85,1499.36,24.9333,108.299,-36.8798],[2246.73,1599.76,23.1667,100.325,-28.8841],[1992.25,1699.81,20.3,92.1317,-13.223],[1797.99,1722.85,18.15,91.0319,-0.0926429]]], + [62,1754.56,[[4005.01,-2002.83,47.5667,242.903,-75.1487],[3977.93,-1901.59,47.1333,240.718,-74.8884],[3950.63,-1801.39,46.7,238.504,-74.6212],[3923.12,-1702.25,46.2667,236.26,-74.3468],[3894.32,-1600.44,45.8167,233.898,-74.0539],[3866.37,-1503.51,45.3833,231.594,-73.7639],[3836.03,-1400.37,44.9167,229.08,-73.4426],[3806.55,-1302.14,44.4667,226.624,-73.1233],[3775.73,-1201.58,44,224.044,-72.7822],[3744.66,-1102.37,43.5333,221.431,-72.4303],[3712.22,-1001.04,43.05,218.691,-72.0538],[3679.53,-901.206,42.5667,215.916,-71.6647],[3646.58,-802.876,42.0833,213.107,-71.2622],[3612.21,-702.765,41.5833,210.167,-70.831],[3576.42,-601.062,41.0667,207.092,-70.3688],[3540.33,-501.159,40.55,203.981,-69.8887],[3503.95,-403.084,40.0333,200.834,-69.3896],[3464.91,-300.718,39.4833,197.448,-68.8364],[3425.55,-200.486,38.9333,194.025,-68.2589],[3385.87,-102.418,38.3833,190.566,-67.6558],[3343.43,-0.806843,37.8,186.862,-66.9861],[3300.65,98.2962,37.2167,183.123,-66.2834],[3256.28,197.576,36.6167,179.244,-65.5238],[3209.05,299.405,35.9833,175.117,-64.6781],[3161.42,398.145,35.35,170.961,-63.7841],[3110.86,498.692,34.6833,166.559,-62.7863],[3058.59,598.092,34,162.026,-61.6978],[3003.3,698.299,33.2833,157.258,-60.4784],[2944.93,798.67,32.5333,152.262,-59.1084],[2883.43,898.518,31.75,147.052,-57.5646],[2817.41,999.063,30.9167,141.538,-55.7817],[2746.78,1099.16,30.0333,135.749,-53.7155],[2670.1,1199.24,29.0833,129.624,-51.266],[2585.88,1299.07,28.05,123.133,-48.2996],[2491.19,1398.94,26.9,116.204,-44.5784],[2380.2,1499.66,25.5667,108.706,-39.6353],[2243.98,1599.75,23.95,100.682,-32.625],[2047.3,1699.76,21.65,92.1333,-20.6252],[1756.6,1754.56,18.3167,88.1938,-0.0876778]]], + [63,1785.54,[[3900.14,-2003.38,47.85,243.234,-75.6517],[3873.92,-1901.77,47.4167,241.045,-75.4003],[3847.49,-1801.19,46.9833,238.825,-75.1423],[3820.85,-1701.67,46.55,236.576,-74.8773],[3794,-1603.22,46.1167,234.296,-74.6052],[3765.91,-1502.14,45.6667,231.897,-74.3145],[3737.59,-1402.25,45.2167,229.466,-74.0154],[3709.04,-1303.56,44.7667,227.004,-73.7074],[3679.21,-1202.52,44.3,224.416,-73.3783],[3649.14,-1102.82,43.8333,221.795,-73.0388],[3617.74,-1000.99,43.35,219.045,-72.6756],[3586.09,-900.639,42.8667,216.26,-72.3001],[3554.19,-801.79,42.3833,213.44,-71.9117],[3520.93,-701.136,41.8833,210.487,-71.4956],[3487.4,-602.138,41.3833,207.498,-71.0641],[3452.47,-501.605,40.8667,204.373,-70.6013],[3417.27,-402.892,40.35,201.211,-70.1201],[3380.63,-302.933,39.8167,197.91,-69.6031],[3342.54,-201.943,39.2667,194.467,-69.0469],[3302.98,-100.149,38.7,190.882,-68.4479],[3263.08,-0.678612,38.1333,187.26,-67.8207],[3221.68,99.2534,37.55,183.494,-67.1436],[3178.75,199.394,36.95,179.585,-66.4113],[3134.25,299.478,36.3333,175.533,-65.6181],[3088.17,399.226,35.7,171.339,-64.757],[3040.48,498.349,35.05,167.005,-63.8204],[2989.92,598.951,34.3667,162.423,-62.773],[2937.69,698.12,33.6667,157.709,-61.627],[2881.23,799.941,32.9167,152.646,-60.3091],[2823.02,899.214,32.15,147.47,-58.8557],[2760.45,999.533,31.3333,141.972,-57.1762],[2693.46,1099.78,30.4667,136.178,-55.2285],[2621.94,1198.73,29.55,130.126,-52.96],[2541.86,1299.84,28.5333,123.554,-50.1601],[2454.35,1398.85,27.4333,116.679,-46.7473],[2352.53,1499.29,26.1667,109.19,-42.252],[2230.57,1599.12,24.6667,101.146,-36.0351],[2065.78,1699.46,22.6667,92.4063,-26.0791],[1712.24,1785.54,18.4667,85.3394,-0.00541811]]], + [64,1815.75,[[3791.33,-2002.07,48.1167,243.515,-76.151],[3765.98,-1900.11,47.6833,241.321,-75.9085],[3741.41,-1803.04,47.2667,239.183,-75.6693],[3715.65,-1703.13,46.8333,236.929,-75.4139],[3688.7,-1600.51,46.3833,234.556,-75.1413],[3662.54,-1502.79,45.95,232.24,-74.8714],[3635.16,-1402.48,45.5,229.803,-74.5831],[3607.57,-1303.37,45.05,227.333,-74.2862],[3578.72,-1201.88,44.5833,224.738,-73.9689],[3549.65,-1101.73,44.1167,222.109,-73.6416],[3520.35,-1002.93,43.65,219.445,-73.3037],[3489.76,-902.055,43.1667,216.651,-72.9421],[3458.92,-802.673,42.6833,213.821,-72.568],[3426.77,-701.462,42.1833,210.856,-72.1672],[3394.36,-601.901,41.6833,207.854,-71.7516],[3360.6,-500.78,41.1667,204.714,-71.3057],[3326.57,-401.473,40.65,201.537,-70.8421],[3291.15,-300.895,40.1167,198.218,-70.344],[3255.45,-202.308,39.5833,194.862,-69.8246],[3218.35,-102.757,39.0333,191.363,-69.2653],[3179.8,-2.47152,38.4667,187.718,-68.6623],[3139.8,98.3089,37.8833,183.928,-68.0112],[3098.31,199.331,37.2833,179.991,-67.3069],[3056.48,297.639,36.6833,176.018,-66.5649],[3011.96,398.419,36.05,171.788,-65.7376],[2965.89,498.612,35.4,167.414,-64.8373],[2918.24,597.914,34.7333,162.899,-63.8554],[2867.79,698.353,34.0333,158.132,-62.7546],[2814.47,799.305,33.3,153.12,-61.5172],[2759.47,897.966,32.55,147.985,-60.1531],[2700.3,998.016,31.75,142.512,-58.5761],[2636.86,1098.36,30.9,136.724,-56.7463],[2567.82,1199.59,29.9833,130.54,-54.572],[2494.33,1298.38,29.0167,124.125,-52.0226],[2411.18,1399.21,27.9333,117.128,-48.807],[2316.83,1499.82,26.7167,109.618,-44.6746],[2205.78,1599.86,25.3,101.53,-39.0588],[2062.92,1699.98,23.5,92.7178,-30.5009],[1814.04,1799.9,20.4167,83.3885,-12.1038],[1667.82,1815.75,18.6333,82.4504,-0.0655422]]], + [65,1845.18,[[3679.64,-2002.82,48.3833,243.832,-76.6563],[3655.17,-1900.5,47.95,241.634,-76.4228],[3631.44,-1803.1,47.5333,239.492,-76.1924],[3606.58,-1702.82,47.1,237.233,-75.9464],[3581.52,-1603.61,46.6667,234.943,-75.6938],[3555.3,-1501.73,46.2167,232.533,-75.424],[3528.86,-1401.03,45.7667,230.089,-75.1463],[3502.22,-1301.53,45.3167,227.612,-74.8604],[3475.37,-1203.25,44.8667,225.103,-74.5659],[3447.31,-1102.64,44.4,222.466,-74.2509],[3419.02,-1003.37,43.9333,219.794,-73.9258],[3389.49,-902.003,43.45,216.99,-73.5778],[3359.73,-802.127,42.9667,214.15,-73.2179],[3328.69,-700.399,42.4667,211.174,-72.8322],[3297.41,-600.316,41.9667,208.159,-72.4322],[3265.87,-501.901,41.4667,205.108,-72.0171],[3233.03,-401.985,40.95,201.916,-71.5714],[3198.85,-300.771,40.4167,198.582,-71.0924],[3164.4,-201.542,39.8833,195.208,-70.5929],[3128.58,-101.322,39.3333,191.688,-70.055],[3091.38,-0.339254,38.7667,188.022,-69.475],[3053.88,98.3001,38.2,184.316,-68.8668],[3014.96,197.357,37.6167,180.463,-68.2093],[2973.48,299.293,37,176.349,-67.4768],[2931.66,398.328,36.3833,172.197,-66.7028],[2887.21,499.528,35.7333,167.785,-65.8382],[2841.24,599.874,35.0667,163.226,-64.8949],[2793.73,699.049,34.3833,158.523,-63.8629],[2743.47,798.999,33.6667,153.567,-62.7027],[2690.43,899.077,32.9167,148.365,-61.3943],[2634.55,998.592,32.1333,142.928,-59.9133],[2574.57,1098.76,31.3,137.156,-58.194],[2510.44,1198.41,30.4167,131.078,-56.1888],[2439.6,1299.66,29.45,124.509,-53.7491],[2363.16,1398.74,28.4167,117.638,-50.8154],[2276.01,1499.05,27.25,110.155,-47.0336],[2174.1,1599.61,25.9,102.02,-41.9317],[2048.1,1699.52,24.25,93.1825,-34.4638],[1859.62,1799.9,21.8167,83.4834,-20.7207],[1620.55,1845.18,18.7833,79.5446,-0.047987]]], + [66,1873.77,[[3564.17,-2001.77,48.6333,244.101,-77.1587],[3541.48,-1903.06,48.2167,241.984,-76.9428],[3517.7,-1801.41,47.7833,239.752,-76.7124],[3493.73,-1700.8,47.35,237.488,-76.4758],[3469.58,-1601.26,46.9167,235.193,-76.2328],[3445.23,-1502.79,46.4833,232.866,-75.983],[3419.75,-1401.69,46.0333,230.417,-75.7161],[3394.08,-1301.79,45.5833,227.934,-75.4413],[3368.2,-1203.1,45.1333,225.417,-75.1582],[3341.15,-1102.05,44.6667,222.772,-74.8555],[3313.88,-1002.36,44.2,220.092,-74.543],[3285.42,-900.536,43.7167,217.279,-74.2085],[3256.73,-800.203,43.2333,214.428,-73.8624],[3227.82,-701.378,42.75,211.541,-73.5042],[3197.67,-600.757,42.25,208.515,-73.1201],[3167.28,-501.799,41.75,205.452,-72.7214],[3135.63,-401.316,41.2333,202.246,-72.2933],[3103.73,-302.662,40.7167,199.001,-71.8479],[3070.53,-202.773,40.1833,195.611,-71.3687],[3036.03,-101.866,39.6333,192.074,-70.8525],[3000.18,-0.167962,39.0667,188.387,-70.2958],[2964.05,99.1945,38.5,184.659,-69.7121],[2926.55,199.003,37.9167,180.779,-69.0808],[2887.68,299.003,37.3167,176.749,-68.397],[2847.39,398.928,36.7,172.566,-67.6547],[2805.67,498.498,36.0667,168.231,-66.8471],[2761.39,599.913,35.4,163.631,-65.9431],[2716.74,697.794,34.7333,158.998,-64.9788],[2668.35,799.014,34.0167,153.988,-63.8679],[2618.4,898.232,33.2833,148.84,-62.6433],[2564.6,999.274,32.5,143.327,-61.2258],[2508.01,1099.1,31.6833,137.582,-59.6131],[2447.43,1198.79,30.8167,131.509,-57.7313],[2381.61,1298.83,29.8833,125.029,-55.4811],[2309.24,1399.05,28.8667,118.088,-52.7258],[2227.79,1499.84,27.7333,110.573,-49.2184],[2134.62,1599.85,26.45,102.478,-44.5935],[2022.08,1699.36,24.9167,93.6551,-37.9908],[1865.97,1799.73,22.8167,83.8266,-26.7477],[1571.84,1873.77,18.9333,76.6136,-0.0672271]]], + [67,1901.5,[[3445.89,-2002.89,48.8833,244.406,-77.6671],[3424.06,-1903.85,48.4667,242.286,-77.4599],[3401.18,-1801.86,48.0333,240.049,-77.2387],[3378.11,-1700.92,47.6,237.781,-77.0117],[3354.87,-1601.02,47.1667,235.481,-76.7783],[3331.44,-1502.21,46.7333,233.149,-76.5385],[3306.93,-1400.74,46.2833,230.694,-76.2823],[3282.21,-1300.47,45.8333,228.204,-76.0185],[3257.31,-1201.4,45.3833,225.681,-75.7468],[3232.21,-1103.57,44.9333,223.124,-75.4667],[3205.99,-1003.42,44.4667,220.436,-75.167],[3178.6,-901.137,43.9833,217.615,-74.8462],[3151,-800.332,43.5,214.755,-74.5143],[3123.18,-701.032,43.0167,211.857,-74.1706],[3095.15,-603.258,42.5333,208.923,-73.8147],[3064.94,-500.454,42.0167,205.744,-73.4197],[3035.47,-402.676,41.5167,202.629,-73.0225],[3003.79,-300.263,40.9833,199.265,-72.5816],[2972.86,-202.93,40.4667,195.965,-72.1364],[2939.67,-101.383,39.9167,192.41,-71.6416],[2906.21,-1.99609,39.3667,188.813,-71.124],[2871.46,98.1085,38.8,185.064,-70.5651],[2835.39,198.689,38.2167,181.162,-69.9607],[2798,299.491,37.6167,177.104,-69.3057],[2760.3,397.564,37.0167,173.006,-68.6143],[2720.19,498.08,36.3833,168.638,-67.8416],[2678.68,597.983,35.7333,164.115,-66.9987],[2634.67,699.398,35.05,159.323,-66.053],[2589.22,799.389,34.35,154.379,-65.0145],[2541.2,899.847,33.6167,149.172,-63.8427],[2491.68,997.977,32.8667,143.826,-62.5456],[2437.29,1099.44,32.05,137.997,-61.0056],[2380.19,1199,31.2,131.942,-59.243],[2318.07,1299.34,30.2833,125.451,-57.1333],[2250.82,1398.74,29.3,118.576,-54.5922],[2174.88,1499.7,28.2,111.06,-51.3505],[2088.91,1599.83,26.9667,102.962,-47.122],[1986.77,1699.6,25.5167,94.1097,-41.1888],[1852.53,1799.76,23.6333,84.242,-31.6318],[1560.94,1899.97,19.6167,73.6359,-4.19492],[1520.49,1901.5,19.0667,73.6644,-0.000630313]]], + [68,1928.32,[[3323.96,-2002.24,49.1167,244.664,-78.1734],[3302.98,-1902.91,48.7,242.539,-77.9748],[3281,-1800.61,48.2667,240.299,-77.7628],[3259.7,-1703.23,47.85,238.114,-77.5536],[3237.38,-1602.98,47.4167,235.81,-77.3302],[3214.02,-1500.01,46.9667,233.383,-77.0916],[3191.34,-1401.95,46.5333,231.013,-76.8552],[3167.61,-1301.3,46.0833,228.519,-76.6026],[3143.7,-1201.85,45.6333,225.989,-76.3423],[3118.7,-1100,45.1667,223.33,-76.0639],[3094.41,-1003.07,44.7167,220.73,-75.787],[3068.11,-900.351,44.2333,217.9,-75.4797],[3042.52,-802.579,43.7667,215.131,-75.1729],[3015.81,-702.789,43.2833,212.224,-74.8441],[2987.96,-601.159,42.7833,209.178,-74.4916],[2959.89,-501.181,42.2833,206.09,-74.1256],[2931.6,-402.88,41.7833,202.963,-73.7455],[2902.14,-303.091,41.2667,199.691,-73.3369],[2871.48,-202.019,40.7333,196.27,-72.8973],[2840.57,-102.942,40.2,192.807,-72.4384],[2808.45,-2.88961,39.65,189.192,-71.9436],[2775.09,97.9074,39.0833,185.423,-71.4092],[2740.47,199.208,38.5,181.498,-70.831],[2705.57,297.975,37.9167,177.529,-70.2223],[2668.38,399.588,37.3,173.288,-69.5429],[2630.89,498.283,36.6833,169.004,-68.8235],[2591.04,599.106,36.0333,164.445,-68.0178],[2549.84,699.044,35.3667,159.729,-67.1363],[2507.26,797.78,34.6833,154.857,-66.1689],[2461.19,899.508,33.95,149.595,-65.0512],[2413.67,998.949,33.2,144.185,-63.8131],[2362.55,1099.81,32.4,138.399,-62.3734],[2308.84,1199.08,31.5667,132.37,-60.7258],[2250.33,1299.55,30.6667,125.882,-58.7523],[2186.93,1399.53,29.7,118.977,-56.3727],[2117.43,1498.69,28.65,111.607,-53.4305],[2037.24,1599.79,27.45,103.445,-49.525],[1943.87,1699.91,26.0667,94.5661,-44.1542],[1826.71,1799.29,24.35,84.7538,-35.9132],[1637.52,1899.7,21.6167,73.6237,-18.6212],[1468.98,1928.32,19.2167,70.6835,-0.102862]]], + [69,1954.22,[[3199.27,-2003.86,49.35,244.958,-78.6859],[3178.36,-1900.26,48.9167,242.745,-78.4883],[3158.1,-1801.61,48.5,240.587,-78.2933],[3136.87,-1700.02,48.0667,238.31,-78.0852],[3116.29,-1603.33,47.65,236.09,-77.8797],[3093.9,-1500.02,47.2,233.658,-77.6515],[3072.17,-1401.63,46.7667,231.284,-77.4255],[3049.43,-1300.62,46.3167,228.783,-77.1839],[3026.51,-1200.82,45.8667,226.247,-76.935],[3003.41,-1102.23,45.4167,223.677,-76.6785],[2979.27,-1001.3,44.95,220.974,-76.404],[2954.94,-901.725,44.4833,218.234,-76.1204],[2929.53,-800.04,44,215.357,-75.8167],[2904.82,-703.279,43.5333,212.541,-75.5132],[2878.13,-601.176,43.0333,209.485,-75.1763],[2851.23,-500.72,42.5333,206.386,-74.8267],[2824.12,-401.937,42.0333,203.247,-74.4635],[2795.88,-301.644,41.5167,199.962,-74.073],[2766.51,-200.046,40.9833,196.526,-73.6529],[2736.89,-100.439,40.45,193.046,-73.2142],[2707.05,-2.85127,39.9167,189.523,-72.7557],[2675.08,98.589,39.35,185.735,-72.2455],[2642.86,197.68,38.7833,181.901,-71.7096],[2609.43,297.195,38.2,177.91,-71.129],[2573.81,399.607,37.5833,173.642,-70.4809],[2537.89,499.109,36.9667,169.328,-69.7944],[2500.7,598.227,36.3333,164.853,-69.0458],[2461.24,699.144,35.6667,160.098,-68.2056],[2420.46,798.892,34.9833,155.183,-67.2831],[2377.34,899.431,34.2667,149.989,-66.2419],[2332.85,997.924,33.5333,144.642,-65.0894],[2284.92,1098.16,32.75,138.905,-63.749],[2233.51,1199.07,31.9167,132.79,-62.1824],[2178.53,1299.49,31.0333,126.317,-60.3404],[2118.89,1399.87,30.0833,119.397,-58.1176],[2053.43,1499.94,29.05,111.968,-55.3652],[1979.91,1599.97,27.9,103.902,-51.8117],[1894.9,1699.61,26.5833,95.0782,-46.9715],[1789.43,1799.87,24.9667,85.1767,-39.6343],[1637.5,1899.85,22.6667,73.9721,-25.9585],[1414.94,1954.21,19.35,67.684,-0.120237]]], + [70,1979.15,[[3071.11,-2003.77,49.5667,245.205,-79.1969],[3051.89,-1903.86,49.15,243.075,-79.0156],[3031.74,-1800.95,48.7167,240.827,-78.8222],[3012.22,-1702.97,48.3,238.634,-78.6313],[2991.76,-1602.09,47.8667,236.322,-78.4273],[2971.14,-1502.28,47.4333,233.976,-78.2178],[2950.36,-1403.55,47,231.597,-78.0022],[2928.61,-1302.18,46.55,229.092,-77.7719],[2906.7,-1202.01,46.1,226.551,-77.5346],[2884.61,-1103.05,45.65,223.974,-77.2899],[2861.53,-1001.74,45.1833,221.265,-77.0281],[2838.26,-901.767,44.7167,218.517,-76.7577],[2814.81,-803.167,44.25,215.732,-76.4782],[2790.34,-702.51,43.7667,212.808,-76.1786],[2765.68,-603.364,43.2833,209.844,-75.8682],[2739.96,-502.415,42.7833,206.736,-75.5351],[2714.04,-403.134,42.2833,203.587,-75.189],[2687.05,-302.321,41.7667,200.289,-74.817],[2658.97,-200.18,41.2333,196.84,-74.4166],[2630.65,-100.024,40.7,193.345,-73.9986],[2602.12,-1.88304,40.1667,189.806,-73.5617],[2572.47,97.1838,39.6167,186.112,-73.0899],[2540.76,199.843,39.0333,182.145,-72.5643],[2508.8,299.982,38.45,178.13,-72.0107],[2476.59,397.562,37.8667,174.068,-71.4269],[2442.27,497.895,37.25,169.727,-70.774],[2406.73,597.874,36.6167,165.222,-70.0618],[2369.02,699.707,35.95,160.431,-69.2623],[2331,797.993,35.2833,155.595,-68.4064],[2289.79,899.634,34.5667,150.353,-67.4165],[2247.28,999.266,33.8333,144.951,-66.3203],[2202.46,1098.63,33.0667,139.271,-65.0727],[2154.33,1198.99,32.25,133.2,-63.6144],[2102.81,1299.22,31.3833,126.751,-61.8994],[2046.84,1399.82,30.45,119.83,-59.8285],[1986.35,1499.03,29.45,112.482,-57.306],[1918.2,1599.18,28.3333,104.43,-54.0439],[1840.15,1698.98,27.0667,95.6148,-49.648],[1744.72,1799.86,25.5333,85.6675,-43.0879],[1616.71,1899.41,23.5,74.4784,-31.743],[1358.53,1979.15,19.4667,64.665,-0.0415014]]], + [71,2003.08,[[2939.57,-2001.99,49.7667,245.405,-79.7071],[2921.23,-1901.82,49.35,243.271,-79.5345],[2902.75,-1802.6,48.9333,241.106,-79.3574],[2883.38,-1700.41,48.5,238.822,-79.1684],[2864.61,-1603.14,48.0833,236.594,-78.9817],[2844.94,-1503.02,47.65,234.245,-78.7823],[2824.36,-1400.19,47.2,231.769,-78.5691],[2804.38,-1302.27,46.7667,229.351,-78.3579],[2783.48,-1201.77,46.3167,226.804,-78.1321],[2762.41,-1102.47,45.8667,224.222,-77.8992],[2740.39,-1000.8,45.4,221.506,-77.6501],[2718.2,-900.478,44.9333,218.751,-77.3927],[2695.83,-801.517,44.4667,215.958,-77.1266],[2672.49,-700.482,43.9833,213.025,-76.8415],[2648.96,-600.956,43.5,210.051,-76.546],[2625.25,-502.96,43.0167,207.037,-76.2396],[2600.54,-403.22,42.5167,203.877,-75.9105],[2574.79,-301.93,42,200.567,-75.5567],[2548.85,-202.468,41.4833,197.213,-75.1881],[2521.86,-101.746,40.95,193.706,-74.791],[2494.65,-3.03267,40.4167,190.152,-74.3759],[2465.52,99.6159,39.85,186.328,-73.9138],[2436.15,199.928,39.2833,182.455,-73.4283],[2406.55,297.867,38.7167,178.534,-72.9177],[2374.96,398.943,38.1167,174.334,-72.3473],[2342.23,499.972,37.5,169.966,-71.7266],[2309.24,598.062,36.8833,165.549,-71.0677],[2274.19,698.225,36.2333,160.845,-70.3279],[2237.04,799.898,35.55,155.849,-69.4951],[2199.59,897.798,34.8667,150.808,-68.5997],[2159.07,998.599,34.1333,145.355,-67.561],[2116.36,1099.19,33.3667,139.614,-66.3783],[2071.43,1198.86,32.5667,133.594,-65.0243],[2023.28,1298.75,31.7167,127.182,-63.4317],[1970.91,1399.41,30.8,120.272,-61.5077],[1914.25,1499.13,29.8167,112.903,-59.1623],[1851.27,1598.93,28.7333,104.897,-56.1729],[1778.91,1699.53,27.5,96.0297,-52.1334],[1693.01,1799.78,26.05,86.1609,-46.2901],[1581.23,1899.72,24.1833,74.9268,-36.5155],[1350.12,1999.88,20.3833,61.8892,-7.27397]]], + [72,2026,[[2805.48,-2002.57,49.9667,245.644,-80.2237],[2788.03,-1902.15,49.55,243.507,-80.0599],[2770.45,-1802.66,49.1333,241.339,-79.8918],[2752.03,-1700.2,48.7,239.051,-79.7123],[2734.17,-1602.66,48.2833,236.82,-79.535],[2715.47,-1502.26,47.85,234.465,-79.3456],[2696.61,-1402.93,47.4167,232.077,-79.1509],[2676.88,-1300.93,46.9667,229.562,-78.9428],[2656.99,-1200.12,46.5167,227.009,-78.7283],[2636.95,-1100.52,46.0667,224.42,-78.5072],[2616.76,-1002.15,45.6167,221.795,-78.2792],[2595.65,-901.454,45.15,219.034,-78.035],[2574.38,-802.118,44.6833,216.234,-77.7826],[2552.18,-700.691,44.2,213.293,-77.5121],[2529.8,-600.768,43.7167,210.311,-77.2318],[2507.25,-502.372,43.2333,207.288,-76.9411],[2483.75,-402.215,42.7333,204.117,-76.6289],[2459.26,-300.487,42.2167,200.796,-76.2932],[2434.59,-200.585,41.7,197.429,-75.9433],[2409.72,-102.535,41.1833,194.018,-75.5785],[2383.04,-0.225853,40.6333,190.338,-75.1725],[2356.15,99.9199,40.0833,186.61,-74.747],[2329.04,197.87,39.5333,182.834,-74.3006],[2300.07,299.32,38.95,178.778,-73.8024],[2270.87,398.225,38.3667,174.672,-73.2769],[2239.75,499.972,37.75,170.28,-72.689],[2208.39,598.788,37.1333,165.836,-72.0648],[2175.06,699.725,36.4833,161.099,-71.3638],[2140.61,799.763,35.8167,156.19,-70.5943],[2105.01,898.584,35.1333,151.108,-69.7467],[2067.37,998.119,34.4167,145.731,-68.7862],[2026.78,1099.87,33.65,139.934,-67.6676],[1984.96,1198.72,32.8667,133.973,-66.414],[1940.1,1298.11,32.0333,127.605,-64.9394],[1891.25,1398.67,31.1333,120.719,-63.1572],[1838.34,1498.72,30.1667,113.345,-60.9835],[1779.43,1599.41,29.1,105.286,-58.2089],[1713.5,1699,27.9167,96.5297,-54.5612],[1635.7,1799.02,26.5333,86.7159,-49.3318],[1536.26,1899.82,24.7833,75.408,-40.7571],[1376.1,1999.92,22,62.146,-21.1826]]], + [73,2047.85,[[2668.18,-2001.54,50.15,245.837,-80.7403],[2651.64,-1900.88,49.7333,243.697,-80.5851],[2634.96,-1801.16,49.3167,241.525,-80.4259],[2618.17,-1702.38,48.9,239.322,-80.2625],[2600.56,-1600.67,48.4667,236.997,-80.0881],[2582.81,-1500.01,48.0333,234.639,-79.9088],[2564.93,-1400.43,47.6,232.245,-79.7243],[2546.92,-1301.93,47.1667,229.818,-79.5346],[2528.06,-1200.8,46.7167,227.261,-79.3317],[2509.06,-1100.89,46.2667,224.667,-79.1226],[2489.91,-1002.2,45.8167,222.036,-78.9068],[2469.9,-901.164,45.35,219.269,-78.6758],[2449.73,-801.489,44.8833,216.462,-78.437],[2429.41,-703.191,44.4167,213.615,-78.19],[2408.2,-602.857,43.9333,210.626,-77.9251],[2386.08,-500.666,43.4333,207.489,-77.6407],[2363.79,-400.13,42.9333,204.309,-77.3452],[2341.33,-301.273,42.4333,201.084,-77.0379],[2317.93,-200.912,41.9167,197.706,-76.7072],[2294.36,-102.4,41.4,194.283,-76.3623],[2269.84,-2.67676,40.8667,190.701,-75.9903],[2244.35,98.0377,40.3167,186.959,-75.5886],[2217.88,199.513,39.75,183.051,-75.1539],[2191.2,298.628,39.1833,179.093,-74.6966],[2163.52,398.155,38.6,174.967,-74.2002],[2134.83,497.837,38,170.671,-73.6602],[2105.1,597.403,37.3833,166.202,-73.0713],[2073.52,699.139,36.7333,161.436,-72.4099],[2041.69,797.527,36.0833,156.617,-71.7023],[2007.13,899.682,35.3833,151.373,-70.8832],[1972.29,997.837,34.6833,146.077,-69.9979],[1934.67,1098.5,33.9333,140.354,-68.9666],[1895.05,1198.58,33.15,134.332,-67.7857],[1852.55,1299.29,32.3167,127.889,-66.3955],[1807.13,1399.47,31.4333,121.038,-64.7464],[1757.87,1499.54,30.4833,113.672,-62.734],[1703.83,1599.23,29.45,105.709,-60.2061],[1643.16,1698.79,28.3,96.9795,-56.8789],[1572.17,1798.96,26.9667,87.1795,-52.1562],[1483.46,1899.88,25.3167,75.8878,-44.6015],[1353.86,1999.92,22.9333,62.606,-29.0901]]], + [74,2068.63,[[2528.45,-2002.92,50.3333,246.068,-81.2631],[2512.81,-1902.02,49.9167,243.926,-81.1167],[2497.06,-1802.05,49.5,241.751,-80.9665],[2481.19,-1703.02,49.0833,239.546,-80.8125],[2464.55,-1601.05,48.65,237.218,-80.6479],[2447.78,-1500.13,48.2167,234.855,-80.4788],[2430.89,-1400.28,47.7833,232.458,-80.3049],[2413.86,-1301.51,47.35,230.026,-80.1259],[2396.04,-1200.11,46.9,227.464,-79.9345],[2378.76,-1103.59,46.4667,224.962,-79.7447],[2359.99,-1000.93,46,222.228,-79.5337],[2341.76,-903.188,45.55,219.553,-79.3237],[2322.71,-803.16,45.0833,216.741,-79.0987],[2302.82,-701.007,44.6,213.785,-78.8575],[2282.78,-600.352,44.1167,210.787,-78.6076],[2262.58,-501.216,43.6333,207.747,-78.3483],[2241.52,-400.285,43.1333,204.557,-78.0698],[2220.3,-301.03,42.6333,201.323,-77.7802],[2198.2,-200.253,42.1167,197.934,-77.4685],[2175.93,-101.32,41.6,194.498,-77.1434],[2152.76,-1.15907,41.0667,190.903,-76.7927],[2129.41,96.9775,40.5333,187.26,-76.4257],[2104.41,198.996,39.9667,183.337,-76.0164],[2079.21,298.66,39.4,179.362,-75.5858],[2053.06,398.757,38.8167,175.217,-75.1182],[2025.96,499.031,38.2167,170.898,-74.6096],[1997.88,599.213,37.6,166.404,-74.0548],[1968.82,699.019,36.9667,161.733,-73.4479],[1938.75,798.153,36.3167,156.884,-72.782],[1906.89,898.716,35.6333,151.729,-72.0299],[1874,997.786,34.9333,146.393,-71.1977],[1838.47,1099.44,34.1833,140.62,-70.2278],[1801.85,1198.46,33.4167,134.67,-69.1413],[1762.54,1298.44,32.6,128.287,-67.8623],[1720.47,1398.22,31.7333,121.481,-66.3453],[1674.79,1498.3,30.8,114.137,-64.4937],[1624.61,1598.47,29.7833,106.161,-62.1661],[1568.19,1699.11,28.65,97.3602,-59.0973],[1503.72,1798.81,27.3667,87.6331,-54.8485],[1424.29,1899.67,25.8,76.3858,-48.1665],[1314.98,1999.57,23.6667,63.1532,-35.3304]]], + [75,2088.31,[[2385.71,-2002.72,50.5,246.255,-81.7862],[2371,-1901.61,50.0833,244.109,-81.6486],[2356.17,-1801.42,49.6667,241.932,-81.5075],[2341.23,-1702.18,49.25,239.723,-81.3627],[2326.17,-1603.89,48.8333,237.482,-81.2141],[2310.4,-1502.69,48.4,235.116,-81.0553],[2294.5,-1402.56,47.9667,232.716,-80.892],[2278.48,-1303.51,47.5333,230.281,-80.724],[2261.71,-1201.81,47.0833,227.715,-80.5443],[2244.81,-1101.31,46.6333,225.111,-80.359],[2227.78,-1002.03,46.1833,222.47,-80.1679],[2209.99,-900.384,45.7167,219.691,-79.9633],[2192.05,-800.085,45.25,216.87,-79.7518],[2173.98,-701.158,44.7833,214.01,-79.5329],[2155.12,-600.166,44.3,211.005,-79.2982],[2136.11,-500.69,43.8167,207.956,-79.0547],[2116.96,-402.753,43.3333,204.865,-78.802],[2096.99,-303.083,42.8333,201.622,-78.5304],[2076.2,-201.873,42.3167,198.224,-78.238],[2055.24,-102.502,41.8,194.778,-77.933],[2033.44,-1.88414,41.2667,191.172,-77.604],[2010.78,99.7621,40.7167,187.4,-77.2485],[1987.95,199.227,40.1667,183.578,-76.8755],[1964.24,299.391,39.6,179.586,-76.4714],[1940.34,397.169,39.0333,175.541,-76.0454],[1914.84,498.059,38.4333,171.203,-75.5686],[1888.43,598.88,37.8167,166.687,-75.0485],[1861.09,699.349,37.1833,161.991,-74.4794],[1832.81,799.171,36.5333,157.112,-73.8549],[1803.57,898.037,35.8667,152.05,-73.1672],[1772.63,997.957,35.1667,146.676,-72.3875],[1739.95,1098.3,34.4333,140.988,-71.4996],[1705.52,1198.38,33.6667,134.985,-70.4828],[1668.54,1299.49,32.85,128.539,-69.2852],[1629.74,1398.61,32,121.786,-67.8922],[1587.55,1498.41,31.0833,114.477,-66.1917],[1541.15,1598.75,30.0833,106.503,-64.0525],[1489.67,1698.68,28.9833,97.7874,-61.2741],[1430.66,1798.76,27.7333,88.0535,-57.4207],[1359.2,1899.65,26.2333,76.842,-51.4766],[1264.57,1999.64,24.2667,63.6378,-40.5398]]], + [76,2106.84,[[2240.13,-2000.97,50.65,246.396,-82.3104],[2226.89,-1903.7,50.25,244.334,-82.1868],[2213,-1803.28,49.8333,242.155,-82.0548],[2199,-1703.81,49.4167,239.943,-81.9194],[2184.33,-1601.36,48.9833,237.609,-81.7748],[2170.12,-1503.84,48.5667,235.331,-81.6319],[2155.22,-1403.46,48.1333,232.928,-81.4792],[2139.63,-1300.37,47.6833,230.395,-81.316],[2124.5,-1202.2,47.25,227.919,-81.154],[2108.67,-1101.44,46.8,225.311,-80.9808],[2092.72,-1001.89,46.35,222.664,-80.8021],[2076.64,-903.577,45.9,219.98,-80.6176],[2059.84,-802.947,45.4333,217.155,-80.42],[2042.31,-700.164,44.95,214.186,-80.2081],[2025.25,-602.34,44.4833,211.278,-79.9963],[2007.44,-502.509,44,208.224,-79.7688],[1988.88,-400.851,43.5,205.018,-79.5244],[1970.17,-300.861,43,201.765,-79.2703],[1951.32,-202.565,42.5,198.467,-79.0057],[1931.69,-102.798,41.9833,195.011,-78.7207],[1911.27,-1.76803,41.45,191.393,-78.4132],[1890.69,97.2467,40.9167,187.724,-78.0913],[1869.31,197.213,40.3667,183.889,-77.7432],[1847.1,297.897,39.8,179.883,-77.3659],[1824.06,399.057,39.2167,175.702,-76.9563],[1800.84,497.655,38.6333,171.466,-76.5231],[1776.11,599.06,38.0167,166.929,-76.0375],[1751.17,697.516,37.4,162.333,-75.5204],[1724.69,798.052,36.75,157.428,-74.938],[1697.31,897.658,36.0833,152.336,-74.2965],[1668.34,998.362,35.3833,146.927,-73.5691],[1637.74,1099.53,34.65,141.197,-72.7402],[1606.2,1198.35,33.9,135.277,-71.8123],[1572.28,1298.49,33.1,128.904,-70.7193],[1535.96,1398.85,32.25,122.081,-69.4222],[1496.46,1499.99,31.3333,114.682,-67.8368],[1454.47,1598.55,30.3667,106.861,-65.9112],[1407.02,1699,29.2833,98.1207,-63.3676],[1353.28,1799,28.0667,88.4197,-59.8848],[1289.4,1899.14,26.6333,77.3305,-54.6287],[1206.17,1999.7,24.7833,64.1082,-45.154]]], + [77,2124.22,[[2092.34,-2001.74,50.8,246.578,-82.8407],[2079.49,-1900.24,50.3833,244.427,-82.7208],[2067.06,-1803.66,49.9833,242.332,-82.6029],[2053.48,-1700.02,49.55,240.029,-82.4718],[2040.33,-1601.33,49.1333,237.781,-82.3423],[2027.08,-1503.6,48.7167,235.5,-82.2093],[2013.2,-1403,48.2833,233.093,-82.0671],[1999.21,-1303.48,47.85,230.65,-81.9209],[1984.57,-1201.29,47.4,228.076,-81.7645],[1969.81,-1100.29,46.95,225.463,-81.6032],[1954.94,-1000.51,46.5,222.811,-81.4368],[1939.95,-901.96,46.05,220.121,-81.2651],[1924.3,-801.081,45.5833,217.29,-81.0811],[1908.52,-701.566,45.1167,214.418,-80.8908],[1892.62,-603.438,44.65,211.504,-80.6938],[1876.02,-503.289,44.1667,208.443,-80.4822],[1858.73,-401.299,43.6667,205.23,-80.255],[1841.29,-300.974,43.1667,201.969,-80.0186],[1823.72,-202.339,42.6667,198.662,-79.7726],[1805.43,-102.219,42.15,195.196,-79.5075],[1786.4,-0.819584,41.6167,191.567,-79.2214],[1767.22,98.5674,41.0833,187.887,-78.922],[1747.29,198.921,40.5333,184.037,-78.5981],[1727.21,297.069,39.9833,180.135,-78.2576],[1705.74,398.72,39.4,175.939,-77.877],[1684.1,497.814,38.8167,171.686,-77.4745],[1661.05,599.749,38.2,167.128,-77.023],[1637.82,698.74,37.5833,162.51,-76.5424],[1613.14,799.844,36.9333,157.579,-76.0008],[1588.27,897.578,36.2833,152.587,-75.4195],[1561.28,999.002,35.5833,147.145,-74.7439],[1533.42,1098.67,34.8667,141.507,-73.9922],[1504.04,1198.37,34.1167,135.543,-73.1314],[1472.45,1299.47,33.3167,129.117,-72.117],[1439.28,1398.93,32.4833,122.363,-70.9371],[1403.17,1499.53,31.5833,115.018,-69.4951],[1364.06,1599.57,30.6167,107.094,-67.711],[1321.24,1698.71,29.5667,98.4841,-65.429],[1271.89,1799.67,28.3667,88.7138,-62.2535],[1214.5,1899.46,26.9833,77.6917,-57.5705],[1141.24,1999.85,25.2333,64.5398,-49.3342]]], + [78,2140.41,[[1941.93,-2001,50.9333,246.715,-83.3724],[1930.5,-1903.38,50.5333,244.649,-83.266],[1918.5,-1802.59,50.1167,242.465,-83.1523],[1906.41,-1702.73,49.7,240.248,-83.0357],[1894.23,-1603.83,49.2833,237.998,-82.916],[1881.46,-1501.98,48.85,235.623,-82.788],[1868.6,-1401.2,48.4167,233.212,-82.6564],[1855.63,-1301.49,47.9833,230.765,-82.521],[1842.57,-1202.87,47.55,228.282,-82.3817],[1828.9,-1101.62,47.1,225.666,-82.2325],[1815.12,-1001.59,46.65,223.01,-82.0787],[1801.24,-902.791,46.2,220.316,-81.9199],[1786.74,-801.648,45.7333,217.48,-81.7498],[1772.12,-701.868,45.2667,214.603,-81.5738],[1757.39,-603.472,44.8,211.683,-81.3916],[1742.02,-503.042,44.3167,208.615,-81.196],[1725.99,-400.759,43.8167,205.395,-80.9857],[1709.84,-300.137,43.3167,202.126,-80.7671],[1693.57,-201.203,42.8167,198.811,-80.5395],[1676.62,-100.771,42.3,195.335,-80.2943],[1659.54,-2.19561,41.7833,191.81,-80.0381],[1641.78,97.5828,41.25,188.119,-79.7615],[1623.32,198.344,40.7,184.258,-79.4622],[1604.15,299.856,40.1333,180.224,-79.1378],[1584.83,398.996,39.5667,176.133,-78.7958],[1564.79,498.536,38.9833,171.863,-78.4238],[1544.02,598.217,38.3833,167.411,-78.0181],[1522.51,697.767,37.7667,162.774,-77.5744],[1499.66,799.468,37.1167,157.82,-77.0745],[1476.62,897.804,36.4667,152.802,-76.5378],[1451.62,999.882,35.7667,147.329,-75.9138],[1426.43,1097.94,35.0667,141.789,-75.236],[1399.22,1198.47,34.3167,135.784,-74.442],[1370.58,1298.38,33.5333,129.444,-73.5263],[1339.87,1398.88,32.7,122.632,-72.4391],[1307.06,1498.8,31.8167,115.35,-71.1355],[1271.49,1598.56,30.8667,107.47,-69.5229],[1231.85,1699.37,29.8167,98.7349,-67.4234],[1187.44,1799.58,28.65,89.0587,-64.5847],[1135.62,1899.79,27.3,78.0229,-60.3908],[1071.07,1999.84,25.6333,64.9648,-53.2183]]], + [79,2155.4,[[1789.49,-2002.84,51.0667,246.895,-83.91],[1778.53,-1900.99,50.65,244.74,-83.8082],[1767.49,-1800.05,50.2333,242.553,-83.7037],[1756.37,-1700.05,49.8167,240.332,-83.5964],[1745.16,-1600.99,49.4,238.079,-83.4863],[1733.87,-1502.9,48.9833,235.792,-83.3732],[1722.03,-1401.91,48.55,233.379,-83.2524],[1710.11,-1302,48.1167,230.929,-83.128],[1698.09,-1203.18,47.6833,228.443,-82.9999],[1685.51,-1101.72,47.2333,225.823,-82.863],[1672.84,-1001.47,46.7833,223.163,-82.7216],[1660.07,-902.451,46.3333,220.464,-82.5758],[1646.73,-801.08,45.8667,217.624,-82.4195],[1633.28,-701.069,45.4,214.741,-82.2578],[1619.73,-602.44,44.9333,211.815,-82.0903],[1605.59,-501.766,44.45,208.741,-81.9106],[1591.34,-402.62,43.9667,205.622,-81.724],[1576.49,-301.685,43.4667,202.347,-81.5234],[1561.52,-202.435,42.9667,199.024,-81.3145],[1545.93,-101.673,42.45,195.541,-81.0894],[1530.22,-2.76438,41.9333,192.007,-80.8543],[1513.89,97.3615,41.4,188.306,-80.6004],[1496.91,198.485,40.85,184.435,-80.3257],[1479.8,297.41,40.3,180.508,-80.0368],[1461.51,399.893,39.7167,176.283,-79.7139],[1443.08,499.828,39.1333,171.998,-79.3722],[1423.97,599.919,38.5333,167.528,-78.9997],[1404.19,699.894,37.9167,162.871,-78.5921],[1383.71,799.47,37.2833,158.023,-78.145],[1362.53,898.349,36.6333,152.981,-77.6526],[1340.09,998.619,35.95,147.611,-77.0942],[1316.37,1099.67,35.2333,141.907,-76.4579],[1291.91,1198.64,34.5,135.999,-75.7457],[1265.57,1299.35,33.7167,129.614,-74.9062],[1237.9,1398.73,32.9,122.885,-73.9299],[1207.74,1499.69,32.0167,115.537,-72.7359],[1175.61,1598.86,31.0833,107.712,-71.2851],[1139.75,1699.54,30.05,99.0041,-69.3954],[1100.1,1798.77,28.9167,89.4491,-66.8791],[1053.66,1899.13,27.6,78.442,-63.1577],[996.736,1999.15,26,65.4562,-56.9171]]], + [80,2169.16,[[1634.68,-2003.2,51.1833,247.03,-84.4492],[1624.69,-1901.19,50.7667,244.874,-84.3564],[1614.62,-1800.1,50.35,242.685,-84.2611],[1604.88,-1703.93,49.95,240.551,-84.1674],[1594.24,-1600.72,49.5167,238.206,-84.0631],[1583.94,-1502.46,49.1,235.917,-83.96],[1573.14,-1401.31,48.6667,233.5,-83.8499],[1562.26,-1301.23,48.2333,231.047,-83.7365],[1551.3,-1202.23,47.8,228.558,-83.6199],[1539.83,-1100.59,47.35,225.933,-83.495],[1528.26,-1000.16,46.9,223.27,-83.3662],[1516.61,-900.954,46.45,220.566,-83.2333],[1504.88,-802.992,46,217.823,-83.0959],[1492.61,-702.737,45.5333,214.936,-82.9487],[1479.81,-600.355,45.05,211.901,-82.7907],[1467.36,-502.928,44.5833,208.927,-82.6327],[1453.91,-400.119,44.0833,205.694,-82.4569],[1440.81,-302.312,43.6,202.521,-82.2801],[1427.16,-202.786,43.1,199.192,-82.0899],[1412.94,-101.736,42.5833,195.701,-81.885],[1398.62,-2.53642,42.0667,192.159,-81.6709],[1383.72,97.8926,41.5333,188.449,-81.4396],[1368.23,199.331,40.9833,184.566,-81.1894],[1352.62,298.576,40.4333,180.628,-80.9263],[1336.42,398.497,39.8667,176.512,-80.6407],[1319.61,498.849,39.2833,172.213,-80.33],[1302.19,599.374,38.6833,167.729,-79.9911],[1284.15,699.799,38.0667,163.055,-79.6203],[1265.47,799.842,37.4333,158.188,-79.2134],[1246.15,899.204,36.7833,153.124,-78.7653],[1225.69,999.988,36.1,147.729,-78.2569],[1204.56,1099.27,35.4,142.129,-77.6915],[1182.26,1198.9,34.6667,136.187,-77.044],[1158.76,1298.22,33.9,129.899,-76.2976],[1133.54,1398.47,33.0833,123.123,-75.4112],[1106.55,1498.52,32.2167,115.855,-74.3483],[1077.27,1598.84,31.2833,107.955,-73.0324],[1045.11,1699.24,30.2667,99.289,-71.3464],[1009.5,1798.67,29.15,89.7378,-69.1005],[967.714,1899.91,27.85,78.6585,-65.7723],[917.465,1999.89,26.3,65.7074,-60.3022]]], + [81,2181.68,[[1477.67,-2002.11,51.2833,247.123,-84.9905],[1469.01,-1904.04,50.8833,245.051,-84.9101],[1459.92,-1802.78,50.4667,242.861,-84.8242],[1450.76,-1702.44,50.05,240.637,-84.736],[1441.52,-1603.06,49.6333,238.38,-84.6456],[1431.85,-1500.71,49.2,235.997,-84.549],[1422.47,-1403.29,48.7833,233.671,-84.4534],[1412.65,-1303.03,48.35,231.216,-84.3512],[1402.37,-1200.05,47.9,228.627,-84.2419],[1392.4,-1102.01,47.4667,226.097,-84.1334],[1381.96,-1001.38,47.0167,223.43,-84.0174],[1371.44,-901.979,46.5667,220.723,-83.8975],[1360.45,-800.206,46.1,217.874,-83.769],[1349.77,-703.352,45.65,215.086,-83.641],[1338.21,-600.75,45.1667,212.046,-83.4985],[1326.97,-503.11,44.7,209.068,-83.356],[1314.83,-400.069,44.2,205.828,-83.1974],[1303,-302.036,43.7167,202.65,-83.0381],[1290.67,-202.274,43.2167,199.314,-82.8666],[1277.84,-100.977,42.7,195.816,-82.6817],[1264.9,-1.52872,42.1833,192.266,-82.4887],[1251.45,99.1596,41.65,188.547,-82.2801],[1237.89,197.818,41.1167,184.773,-82.0614],[1223.8,297.402,40.5667,180.825,-81.8245],[1209.17,397.676,40,176.699,-81.5672],[1194,498.396,39.4167,172.388,-81.2873],[1178.27,599.302,38.8167,167.891,-80.9819],[1162.43,697.437,38.2167,163.329,-80.6571],[1145.57,797.973,37.5833,158.446,-80.2911],[1128.14,897.847,36.9333,153.363,-79.8879],[1109.67,999.174,36.25,147.946,-79.4305],[1090.6,1099.01,35.55,142.321,-78.9216],[1070.47,1199.24,34.8167,136.349,-78.3386],[1049.26,1299.19,34.05,130.025,-77.6663],[1026.95,1398.11,33.25,123.345,-76.8848],[1002.6,1499.01,32.3833,116.024,-75.9286],[976.643,1598.51,31.4667,108.199,-74.7667],[948.102,1698.49,30.4667,99.5878,-73.2782],[915.977,1799.38,29.35,89.9151,-71.2619],[879.24,1899.89,28.0833,78.9373,-68.3526],[835.377,1999.47,26.5833,66.087,-63.6236]]], + [82,2192.93,[[1318.98,-2003.67,51.3833,247.259,-85.537],[1310.93,-1901.4,50.9667,245.099,-85.4624],[1302.82,-1800.03,50.55,242.906,-85.3859],[1294.98,-1703.6,50.15,240.769,-85.3104],[1286.42,-1600.11,49.7167,238.419,-85.2266],[1278.12,-1501.57,49.3,236.125,-85.1438],[1269.43,-1400.13,48.8667,233.703,-85.0553],[1261,-1303.59,48.45,231.34,-84.9677],[1251.84,-1200.45,48,228.749,-84.8703],[1242.94,-1102.26,47.5667,226.216,-84.7737],[1233.64,-1001.46,47.1167,223.546,-84.6703],[1224.26,-901.895,46.6667,220.836,-84.5636],[1214.81,-803.566,46.2167,218.085,-84.4533],[1204.93,-702.926,45.75,215.19,-84.335],[1194.63,-600.141,45.2667,212.146,-84.2082],[1184.6,-502.321,44.8,209.163,-84.0812],[1174.14,-402.503,44.3167,206.027,-83.9447],[1163.23,-300.866,43.8167,202.735,-83.798],[1152.24,-200.907,43.3167,199.392,-83.6452],[1141.16,-102.651,42.8167,196.001,-83.4859],[1129.63,-2.93536,42.3,192.444,-83.3141],[1117.64,98.0315,41.7667,188.718,-83.1285],[1105.55,196.971,41.2333,184.937,-82.9339],[1092.61,299.84,40.6667,180.86,-82.7165],[1079.95,397.427,40.1167,176.844,-82.4941],[1066.43,498.464,39.5333,172.523,-82.2449],[1052.41,599.699,38.9333,168.013,-81.9731],[1038.28,698.166,38.3333,163.437,-81.684],[1023.25,799.056,37.7,158.538,-81.358],[1007.71,899.297,37.05,153.437,-80.999],[991.645,998.576,36.3833,148.132,-80.6018],[974.648,1098.91,35.6833,142.483,-80.1493],[956.704,1199.67,34.95,136.484,-79.6308],[938.21,1298.04,34.2,130.267,-79.0463],[917.917,1399.68,33.3833,123.409,-78.337],[896.63,1499.32,32.5333,116.182,-77.5026],[873.495,1599.64,31.6167,108.297,-76.4694],[848.483,1698.91,30.6333,99.7534,-75.1684],[820.283,1799.54,29.5333,90.1191,-73.4055],[788.413,1899.11,28.3,79.274,-70.8983],[749.772,1999.99,26.8167,66.2963,-66.7641]]], + [83,2202.9,[[1158.39,-2003.81,51.4667,247.352,-86.0856],[1151.33,-1901.42,51.05,245.191,-86.0202],[1144.5,-1803.98,50.65,243.084,-85.9558],[1137.33,-1703.4,50.2333,240.857,-85.887],[1130.1,-1603.75,49.8167,238.597,-85.8163],[1122.53,-1501.13,49.3833,236.209,-85.7408],[1115.2,-1403.45,48.9667,233.879,-85.6662],[1107.51,-1302.91,48.5333,231.419,-85.5864],[1099.77,-1203.45,48.1,228.922,-85.5042],[1091.66,-1101.32,47.65,226.29,-85.4162],[1083.49,-1000.4,47.2,223.617,-85.3255],[1075.26,-900.699,46.75,220.903,-85.2319],[1066.97,-802.236,46.3,218.149,-85.1352],[1058.3,-701.456,45.8333,215.25,-85.0315],[1049.57,-602.049,45.3667,212.307,-84.9241],[1040.46,-500.562,44.8833,209.213,-84.8088],[1031.28,-400.594,44.4,206.073,-84.6891],[1022.02,-302.168,43.9167,202.885,-84.5647],[1012.38,-201.996,43.4167,199.538,-84.4308],[1002.34,-100.271,42.9,196.027,-84.2866],[992.216,-0.390565,42.3833,192.463,-84.1358],[982.019,97.618,41.8667,188.847,-83.9781],[971.081,199.861,41.3167,184.94,-83.8021],[960.059,299.918,40.7667,180.973,-83.6171],[948.953,397.754,40.2167,176.949,-83.4222],[937.084,499.057,39.6333,172.617,-83.2038],[925.125,597.786,39.05,168.222,-82.9724],[912.384,699.316,38.4333,163.507,-82.712],[899.546,797.881,37.8167,158.723,-82.4341],[885.911,898.516,37.1667,153.608,-82.1198],[871.818,998.204,36.5,148.285,-81.7721],[856.907,1098.97,35.8,142.617,-81.3759],[841.523,1197.94,35.0833,136.732,-80.9326],[824.94,1299.03,34.3167,130.348,-80.4097],[807.501,1399.16,33.5167,123.597,-79.8015],[788.828,1499.47,32.6667,116.328,-79.0717],[768.904,1598.75,31.7667,108.537,-78.1849],[746.966,1698.95,30.7833,99.9272,-77.0483],[722.608,1799.18,29.7,90.3479,-75.5322],[695.037,1898.86,28.4833,79.5161,-73.3754],[661.915,1999.58,27.0333,66.6027,-69.8596]]], + [84,2211.58,[[996.12,-2002.51,51.5333,247.403,-86.6366],[990.049,-1900.04,51.1167,245.24,-86.5803],[984.177,-1802.52,50.7167,243.132,-86.525],[978.014,-1701.85,50.3,240.903,-86.4658],[971.804,-1602.12,49.8833,238.64,-86.4052],[965.547,-1503.34,49.4667,236.343,-86.3428],[958.99,-1401.64,49.0333,233.918,-86.2762],[952.382,-1301,48.6,231.456,-86.2076],[945.724,-1201.45,48.1667,228.956,-86.1369],[939.016,-1102.99,47.7333,226.418,-86.0642],[931.996,-1001.92,47.2833,223.744,-85.9863],[924.923,-902.076,46.8333,221.028,-85.906],[917.796,-803.466,46.3833,218.272,-85.8229],[910.349,-702.531,45.9167,215.37,-85.734],[902.845,-602.969,45.45,212.425,-85.6418],[895.014,-501.319,44.9667,209.327,-85.5427],[887.122,-401.186,44.4833,206.183,-85.44],[879.17,-302.594,44,202.991,-85.3332],[870.882,-202.248,43.5,199.64,-85.2183],[862.251,-100.342,42.9833,196.124,-85.0944],[853.554,-0.278015,42.4667,192.555,-84.965],[844.791,97.9154,41.95,188.933,-84.8296],[835.677,197.285,41.4167,185.138,-84.6832],[826.206,297.608,40.8667,181.167,-84.5245],[816.373,398.653,40.3,177.013,-84.3522],[806.466,497.307,39.7333,172.797,-84.1702],[795.894,599.12,39.1333,168.266,-83.9659],[785.242,698.171,38.5333,163.668,-83.7485],[773.911,799.682,37.9,158.743,-83.5035],[762.494,898.022,37.2667,153.745,-83.2406],[750.385,998.057,36.6,148.408,-82.9423],[737.573,1099.2,35.9,142.721,-82.6024],[724.354,1198.54,35.1833,136.815,-82.222],[710.415,1297.89,34.4333,130.548,-81.7835],[695.432,1398.57,33.6333,123.768,-81.2624],[679.39,1499.47,32.7833,116.465,-80.637],[662.272,1599.37,31.8833,108.629,-79.8767],[643.745,1698.63,30.9167,100.108,-78.9194],[622.82,1799.79,29.8333,90.4509,-77.6208],[599.46,1899.24,28.6333,79.6545,-75.7988],[571.665,1999.33,27.2167,66.8502,-72.8651]]], + [85,2218.94,[[832.572,-2003.94,51.6,247.499,-87.192],[827.501,-1901.37,51.1833,245.335,-87.1451],[822.596,-1803.76,50.7833,243.226,-87.0988],[817.447,-1702.99,50.3667,240.996,-87.0495],[812.26,-1603.16,49.95,238.733,-86.9989],[806.823,-1500.35,49.5167,236.342,-86.9447],[801.556,-1402.48,49.1,234.008,-86.8912],[796.036,-1301.74,48.6667,231.544,-86.8339],[790.474,-1202.08,48.2333,229.043,-86.7749],[784.87,-1103.52,47.8,226.504,-86.7143],[779.006,-1002.34,47.35,223.827,-86.6492],[773.098,-902.378,46.9,221.109,-86.5821],[766.922,-800.023,46.4333,218.248,-86.5102],[760.922,-702.601,45.9833,215.447,-86.4385],[754.654,-602.918,45.5167,212.498,-86.3616],[748.112,-501.142,45.0333,209.398,-86.2789],[741.519,-400.882,44.55,206.25,-86.1932],[734.876,-302.162,44.0667,203.055,-86.104],[727.952,-201.681,43.5667,199.699,-86.0081],[720.976,-102.899,43.0667,196.294,-85.908],[713.712,-2.63396,42.55,192.721,-85.8001],[706.156,98.9053,42.0167,188.977,-85.6835],[698.542,198.423,41.4833,185.177,-85.5613],[690.631,298.901,40.9333,181.198,-85.4288],[682.659,397.163,40.3833,177.16,-85.2892],[674.14,498.922,39.8,172.813,-85.1328],[665.555,598.112,39.2167,168.4,-84.9671],[656.658,697.414,38.6167,163.794,-84.7858],[647.195,799.193,37.9833,158.859,-84.5815],[637.659,897.803,37.35,153.85,-84.3622],[627.545,998.127,36.6833,148.499,-84.1134],[616.844,1099.57,35.9833,142.798,-83.8298],[605.803,1199.23,35.2667,136.874,-83.5124],[594.16,1298.91,34.5167,130.585,-83.1464],[581.646,1399.95,33.7167,123.78,-82.7113],[568.511,1499.3,32.8833,116.59,-82.1998],[554.215,1599.75,31.9833,108.717,-81.5661],[538.742,1699.59,31.0167,100.148,-80.7676],[521.537,1799.93,29.95,90.574,-79.7018],[502.303,1899.01,28.7667,79.8345,-78.2071],[479.369,1999.33,27.3667,67.0265,-75.7986]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 713.712; +_maxRange = 4099.33; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg4.sqf new file mode 100644 index 0000000000..1fbc8ed5d7 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_HA_chg4.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_m821a2_m734_prox_chg4 +// Ammo: ace_arty_81mm_m821a2_m734_prox +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1505.02,[[6334.74,-2000.85,45.2833,246.697,-66.2433],[6291.5,-1903.52,44.85,244.797,-65.841],[6246.24,-1803.56,44.4,242.804,-65.413],[6198.9,-1701.13,43.9333,240.717,-64.9577],[6152.86,-1603.56,43.4833,238.686,-64.5074],[6103,-1500.1,43,236.484,-64.011],[6054.45,-1401.53,42.5333,234.339,-63.5186],[6003.73,-1300.84,42.05,232.098,-62.9945],[5952.58,-1201.59,41.5667,229.839,-62.4556],[5899.22,-1100.46,41.0667,227.484,-61.882],[5845.39,-1000.91,40.5667,225.112,-61.2912],[5791.1,-902.973,40.0667,222.724,-60.6827],[5732.68,-800.305,39.5333,220.161,-60.0131],[5675.59,-702.641,39.0167,217.663,-59.3436],[5614.29,-600.648,38.4667,214.992,-58.6073],[5552.42,-500.717,37.9167,212.309,-57.8456],[5490.01,-402.876,37.3667,209.617,-57.0574],[5423.22,-301.424,36.7833,206.756,-56.1913],[5355.81,-202.393,36.2,203.891,-55.2926],[5283.89,-100.374,35.5833,200.863,-54.3056],[5211.29,-1.13857,34.9667,197.841,-53.2789],[5136.02,97.8379,34.3333,194.747,-52.181],[5056.03,198.758,33.6667,191.509,-50.9756],[4973.23,298.673,32.9833,188.217,-49.6847],[4885.53,399.569,32.2667,184.804,-48.2675],[4794.86,498.625,31.5333,181.363,-46.7472],[4697,599.687,30.75,177.761,-45.0411],[4593.88,699.748,29.9333,174.101,-43.1681],[4483.21,799.927,29.0667,170.348,-41.0707],[4364.81,899.05,28.15,166.551,-38.7247],[4234.07,999.044,27.15,162.651,-36.0115],[4088.38,1099.07,26.05,158.701,-32.8382],[3920.47,1199.84,24.8,154.726,-28.9926],[3722.59,1299.24,23.35,150.916,-24.2249],[3460.63,1399.75,21.4667,147.488,-17.5966],[2936.99,1499.91,17.8167,146.733,-3.86825],[2789.78,1505.02,16.8167,148.043,-0.0570988]]], + [46,1554.24,[[6286.08,-2003.69,45.7667,247.22,-66.7958],[6242.07,-1901.99,45.3167,245.238,-66.3878],[6197.69,-1801.42,44.8667,243.235,-65.9696],[6152.94,-1702.01,44.4167,241.213,-65.5409],[6106.14,-1600.16,43.95,239.094,-65.0849],[6060.63,-1503.16,43.5,237.032,-64.6336],[6011.35,-1400.31,43.0167,234.796,-64.1359],[5963.36,-1302.35,42.55,232.619,-63.6421],[5913.23,-1202.31,42.0667,230.344,-63.1164],[5860.94,-1100.34,41.5667,227.971,-62.5566],[5809.95,-1003.27,41.0833,225.66,-61.9996],[5754.98,-901.153,40.5667,223.171,-61.3862],[5699.52,-800.773,40.05,220.664,-60.7533],[5643.59,-702.152,39.5333,218.142,-60.1002],[5585.35,-602.219,39,215.524,-59.404],[5524.75,-501.182,38.45,212.811,-58.6615],[5463.62,-402.225,37.9,210.087,-57.893],[5400.06,-302.476,37.3333,207.271,-57.0728],[5334.05,-202.165,36.75,204.366,-56.1969],[5265.52,-101.536,36.15,201.374,-55.2611],[5194.43,-0.843296,35.5333,198.301,-54.2606],[5120.73,99.6467,34.9,195.151,-53.1904],[5044.37,199.655,34.25,191.931,-52.0446],[4965.3,298.889,33.5833,188.648,-50.8173],[4881.47,399.394,32.8833,185.232,-49.4689],[4794.78,498.317,32.1667,181.777,-48.0219],[4701.08,599.624,31.4,178.14,-46.3957],[4604.35,698.236,30.6167,174.504,-44.6466],[4498.24,799.557,29.7667,170.668,-42.644],[4386.73,898.488,28.8833,166.828,-40.4424],[4263.26,999.204,27.9167,162.83,-37.8873],[4127.47,1099.52,26.8667,158.772,-34.9343],[3974.56,1199.71,25.7,154.679,-31.4334],[3797.24,1299.44,24.3667,150.63,-27.1525],[3576.31,1399.73,22.7333,146.756,-21.5274],[3256,1499.73,20.4167,143.699,-12.9603],[2780.67,1554.24,17.0833,145.222,-0.0501093]]], + [47,1603.33,[[6230.35,-2000.51,46.2167,247.632,-67.3216],[6188.82,-1902,45.7833,245.715,-66.9379],[6145.33,-1800.81,45.3333,243.703,-66.5297],[6101.48,-1700.77,44.8833,241.67,-66.1113],[6057.26,-1601.9,44.4333,239.617,-65.6821],[6011.03,-1500.62,43.9667,237.466,-65.2255],[5964.4,-1400.63,43.5,235.295,-64.7565],[5917.38,-1301.94,43.0333,233.104,-64.2747],[5868.28,-1201.13,42.55,230.813,-63.7618],[5818.76,-1101.77,42.0667,228.503,-63.2341],[5767.09,-1000.52,41.5667,226.094,-62.672],[5714.97,-900.863,41.0667,223.665,-62.0928],[5662.42,-802.82,40.5667,221.219,-61.4958],[5605.87,-700.044,40.0333,218.592,-60.8386],[5550.61,-602.282,39.5167,216.03,-60.181],[5491.26,-500.19,38.9667,213.288,-59.4572],[5431.38,-400.166,38.4167,210.533,-58.7078],[5370.99,-302.239,37.8667,207.766,-57.9318],[5306.36,-200.704,37.2833,204.822,-57.0782],[5241.14,-101.596,36.7,201.872,-56.1917],[5173.44,-2.22761,36.1,198.835,-55.2439],[5101.32,99.7925,35.4667,195.632,-54.2018],[5028.51,198.823,34.8333,192.436,-53.115],[4951.15,299.789,34.1667,189.086,-51.92],[4871.08,399.739,33.4833,185.675,-50.6383],[4788.25,498.357,32.7833,182.215,-49.2624],[4698.62,599.722,32.0333,178.556,-47.714],[4606.04,698.678,31.2667,174.882,-46.0478],[4506.4,798.825,30.45,171.058,-44.1755],[4399.49,899.076,29.5833,167.125,-42.0734],[4283.03,999.99,28.65,163.062,-39.6712],[4156.76,1099.87,27.65,158.946,-36.9323],[4016.09,1199.74,26.55,154.756,-33.717],[3856.21,1299.05,25.3167,150.559,-29.8578],[3663.12,1399.41,23.85,146.384,-24.9286],[3410.53,1499.45,21.9667,142.574,-18.1117],[2885.02,1599.87,18.1667,141.368,-3.29521],[2769.26,1603.32,17.35,142.379,-0.0614913]]], + [48,1652.21,[[6172.4,-2002.74,46.6833,248.152,-67.8653],[6131.73,-1903.63,46.25,246.227,-67.4911],[6089.14,-1801.81,45.8,244.207,-67.0931],[6046.19,-1701.14,45.35,242.165,-66.6849],[6002.88,-1601.62,44.9,240.102,-66.2663],[5959.22,-1503.28,44.45,238.017,-65.837],[5913.56,-1402.56,43.9833,235.835,-65.3799],[5867.52,-1303.14,43.5167,233.631,-64.9104],[5819.45,-1201.56,43.0333,231.327,-64.4104],[5770.96,-1101.42,42.55,229.001,-63.8959],[5722.07,-1002.73,42.0667,226.656,-63.3665],[5671.05,-902.196,41.5667,224.209,-62.8023],[5619.6,-803.265,41.0667,221.743,-62.2207],[5565.98,-702.747,40.55,219.176,-61.6006],[5510.15,-600.835,40.0167,216.508,-60.9393],[5453.82,-500.829,39.4833,213.822,-60.2556],[5397.01,-402.756,38.95,211.122,-59.5482],[5336.11,-300.703,38.3833,208.238,-58.7697],[5274.66,-200.897,37.8167,205.343,-57.9621],[5210.84,-100.535,37.2333,202.354,-57.0989],[5146.44,-2.62413,36.65,199.358,-56.2018],[5077.75,98.1794,36.0333,196.19,-55.2146],[5006.54,198.774,35.4,192.938,-54.1574],[4932.76,298.879,34.75,189.61,-53.024],[4856.38,398.203,34.0833,186.213,-51.8081],[4775.39,498.789,33.3833,182.671,-50.4701],[4691.67,597.782,32.6667,179.084,-49.0316],[4601.19,699.148,31.9,175.3,-47.4119],[4505.8,799.85,31.1,171.429,-45.6276],[4405.37,899.156,30.2667,167.499,-43.6617],[4295.7,999.901,29.3667,163.397,-41.4093],[4178.61,1098.8,28.4167,159.263,-38.8799],[4047.62,1199.07,27.3667,154.972,-35.8962],[3900.18,1299.18,26.2,150.615,-32.344],[3727.09,1399.92,24.85,146.216,-27.923],[3514.19,1499.73,23.2167,141.998,-22.1512],[3203.5,1599.48,20.8833,138.494,-13.2377],[2753.2,1652.21,17.6,139.539,-0.0255106]]], + [49,1700.85,[[6109.03,-2002.8,47.1333,248.632,-68.3978],[6069.21,-1903.12,46.7,246.7,-68.033],[6027.51,-1800.71,46.25,244.671,-67.6447],[5987.03,-1703.16,45.8167,242.697,-67.2616],[5944.65,-1602.99,45.3667,240.624,-66.8537],[5900.33,-1500.35,44.9,238.453,-66.4196],[5857.24,-1402.58,44.45,236.337,-65.9898],[5812.18,-1302.46,43.9833,234.12,-65.5321],[5765.12,-1200.14,43.5,231.802,-65.0447],[5719.3,-1102.72,43.0333,229.543,-64.5608],[5671.45,-1003.23,42.55,227.182,-64.0451],[5621.53,-901.859,42.05,224.718,-63.4955],[5571.18,-802.084,41.55,222.233,-62.9289],[5518.7,-700.683,41.0333,219.645,-62.3247],[5465.78,-601.036,40.5167,217.037,-61.7007],[5410.67,-500.039,39.9833,214.327,-61.0349],[5355.08,-400.966,39.45,211.599,-60.3461],[5297.25,-300.839,38.9,208.77,-59.6104],[5238.92,-202.817,38.35,205.928,-58.8479],[5176.5,-101.186,37.7667,202.901,-58.0083],[5113.53,-1.99239,37.1833,199.865,-57.1355],[5048.16,97.4571,36.5833,196.737,-56.2013],[4978.53,199.553,35.95,193.433,-55.173],[4908.25,298.65,35.3167,190.133,-54.0991],[4833.58,399.674,34.65,186.67,-52.9166],[4756.3,499.672,33.9667,183.14,-51.6462],[4676.38,598.326,33.2667,179.552,-50.2802],[4589.9,699.715,32.5167,175.751,-48.7399],[4500.59,798.679,31.75,171.927,-47.0789],[4404.48,898.816,30.9333,167.938,-45.2078],[4301.39,999.036,30.0667,163.823,-43.1015],[4189.12,1099.89,29.1333,159.559,-40.6871],[4067.41,1199.69,28.1333,155.222,-37.9245],[3931.87,1299.43,27.0333,150.784,-34.6684],[3775.77,1399.8,25.7833,146.251,-30.6873],[3589.83,1499.66,24.3167,141.759,-25.6411],[3344.56,1599.72,22.4167,137.541,-18.5545],[2791.73,1699.95,18.2667,136.148,-1.72393],[2734.91,1700.85,17.85,136.674,-0.00764654]]], + [50,1749.19,[[6040.32,-2000.73,47.5667,249.072,-68.9202],[6001.35,-1900.51,47.1333,247.133,-68.5644],[5962.06,-1801.33,46.7,245.172,-68.1999],[5922.45,-1703.19,46.2667,243.19,-67.8266],[5880.98,-1602.4,45.8167,241.109,-67.4291],[5839.18,-1502.77,45.3667,239.005,-67.0213],[5795.46,-1400.7,44.9,236.8,-66.5872],[5752.95,-1303.49,44.45,234.652,-66.1573],[5706.91,-1200.44,43.9667,232.321,-65.6827],[5662.09,-1102.28,43.5,230.049,-65.2113],[5615.28,-1002.04,43.0167,227.673,-64.709],[5568.08,-903.249,42.5333,225.275,-64.1918],[5518.84,-802.617,42.0333,222.773,-63.6404],[5467.52,-700.321,41.5167,220.165,-63.0523],[5417.44,-602.984,41.0167,217.621,-62.4648],[5363.55,-500.984,40.4833,214.887,-61.8172],[5309.2,-400.895,39.95,212.134,-61.1471],[5254.37,-302.746,39.4167,209.363,-60.4534],[5195.61,-200.619,38.85,206.403,-59.6892],[5136.33,-100.745,38.2833,203.428,-58.8957],[5074.76,-0.322317,37.7,200.353,-58.0467],[5012.64,97.6419,37.1167,197.27,-57.1634],[4946.38,198.492,36.5,194.005,-56.1904],[4877.71,299.125,35.8667,190.652,-55.1469],[4806.56,399.258,35.2167,187.214,-54.0267],[4732.91,498.598,34.55,183.701,-52.8231],[4654.84,599.189,33.85,180.034,-51.4964],[4574.13,698.172,33.1333,176.313,-50.0674],[4486.93,799.511,32.3667,172.382,-48.4549],[4396.93,898.123,31.5833,168.433,-46.7127],[4298.25,999.405,30.7333,164.248,-44.7076],[4194.58,1098.25,29.85,160.032,-42.4907],[4079.85,1198.82,28.8833,155.611,-39.9009],[3953.75,1298.92,27.8333,151.084,-36.8853],[3811.84,1398.81,26.6667,146.462,-33.2791],[3645.33,1499.23,25.3167,141.757,-28.7676],[3438.51,1599.48,23.6667,137.141,-22.7787],[3133.45,1699.7,21.2833,133.162,-13.3499],[2714.37,1749.19,18.1,133.785,-0.00934679]]], + [51,1797.18,[[5967.81,-2000.43,48,249.546,-69.4463],[5931.17,-1903.52,47.5833,247.676,-69.1131],[5892.75,-1803.74,47.15,245.709,-68.7583],[5852.53,-1701.23,46.7,243.643,-68.3807],[5813.48,-1603.59,46.2667,241.631,-68.008],[5772.6,-1503.33,45.8167,239.518,-67.611],[5729.85,-1400.59,45.35,237.304,-67.1883],[5688.29,-1302.73,44.9,235.145,-66.7697],[5644.84,-1202.52,44.4333,232.883,-66.3237],[5599.45,-1100.12,43.95,230.517,-65.8485],[5555.26,-1002.61,43.4833,228.209,-65.3764],[5509.12,-903.042,43,225.796,-64.8732],[5460.98,-801.593,42.5,223.277,-64.3365],[5412.43,-701.745,42,220.735,-63.783],[5361.84,-600.273,41.4833,218.086,-63.1923],[5310.81,-500.561,40.9667,215.415,-62.5819],[5259.35,-402.632,40.45,212.725,-61.9508],[5204.1,-300.375,39.9,209.841,-61.2551],[5148.36,-200.199,39.35,206.938,-60.5337],[5092.14,-102.135,38.8,204.019,-59.7853],[5031.99,-0.467766,38.2167,200.909,-58.9606],[4971.3,98.7544,37.6333,197.786,-58.1022],[4908.32,198.224,37.0333,194.565,-57.1825],[4843.01,297.682,36.4167,191.25,-56.196],[4773.53,399.426,35.7667,187.756,-55.1086],[4703.4,497.954,35.1167,184.268,-53.9695],[4628.99,598.015,34.4333,180.615,-52.713],[4550.2,699.023,33.7167,176.81,-51.3263],[4468.79,798.15,32.9833,172.953,-49.8301],[4380.96,899.238,32.2,168.891,-48.1401],[4288.45,999.273,31.3833,164.735,-46.2712],[4189.24,1099.36,30.5167,160.437,-44.1613],[4083.17,1198.32,29.6,156.047,-41.7795],[3964.17,1299.63,28.5833,151.409,-38.9479],[3833.84,1399.11,27.4833,146.721,-35.6493],[3683.79,1499.13,26.2333,141.901,-31.5961],[3503.1,1599.55,24.75,137.03,-26.3671],[3265.47,1699.37,22.8333,132.402,-18.9872],[2691.56,1797.18,18.35,130.874,-0.0320111]]], + [52,1844.77,[[5891.44,-2001.96,48.4333,250.054,-69.976],[5854.2,-1900.64,48,248.103,-69.6385],[5816.64,-1800.34,47.5667,246.129,-69.2929],[5778.78,-1701.07,47.1333,244.132,-68.9388],[5740.62,-1602.85,46.7,242.112,-68.5759],[5700.66,-1501.99,46.25,239.991,-68.1894],[5660.38,-1402.28,45.8,237.847,-67.7928],[5618.26,-1300.14,45.3333,235.598,-67.3703],[5577.31,-1202.86,44.8833,233.406,-66.9518],[5534.49,-1103.27,44.4167,231.11,-66.5057],[5489.78,-1001.52,43.9333,228.707,-66.0303],[5444.69,-901.208,43.45,226.279,-65.5406],[5399.23,-802.365,42.9667,223.829,-65.0361],[5351.8,-701.68,42.4667,221.27,-64.4979],[5303.97,-602.608,41.9667,218.688,-63.9425],[5254.14,-501.954,41.45,215.997,-63.3495],[5203.87,-403.074,40.9333,213.285,-62.7364],[5151.55,-302.893,40.4,210.464,-62.0812],[5097.12,-201.618,39.85,207.534,-61.3809],[5042.22,-102.443,39.3,204.585,-60.6542],[4985.16,-2.49084,38.7333,201.53,-59.8764],[4925.91,98.005,38.15,198.371,-59.0434],[4864.42,198.799,37.55,195.108,-58.1506],[4800.64,299.633,36.9333,191.746,-57.1926],[4736.3,397.628,36.3167,188.38,-56.1914],[4667.86,497.803,35.6667,184.833,-55.0868],[4595.24,599.615,34.9833,181.112,-53.8675],[4521.93,697.786,34.3,177.408,-52.5853],[4442.5,799.028,33.5667,173.462,-51.1347],[4360.48,898.105,32.8167,169.469,-49.5665],[4272.11,998.733,32.0167,165.274,-47.7932],[4177.24,1099.85,31.1667,160.911,-45.7881],[4077.6,1198.49,30.2833,156.505,-43.5642],[3967.37,1298.82,29.3167,151.869,-40.9569],[3846.23,1398.62,28.2667,147.104,-37.9084],[3708,1499.47,27.0833,142.146,-34.191],[3548.14,1599.2,25.7333,137.142,-29.5779],[3347.66,1699.43,24.0667,132.135,-23.3491],[3046.84,1799.82,21.6167,127.683,-13.2786],[2664.35,1844.77,18.5833,127.959,-0.00400963]]], + [53,1891.91,[[5809.82,-2001.48,48.85,250.522,-70.4964],[5774.84,-1903.53,48.4333,248.641,-70.1808],[5738.16,-1802.66,48,246.661,-69.8447],[5701.19,-1702.81,47.5667,244.658,-69.5004],[5662.48,-1600.23,47.1167,242.554,-69.1338],[5624.9,-1502.53,46.6833,240.503,-68.7717],[5585.56,-1402.21,46.2333,238.35,-68.386],[5545.89,-1303.06,45.7833,236.173,-67.99],[5504.42,-1201.5,45.3167,233.89,-67.568],[5462.61,-1101.24,44.85,231.582,-67.1342],[5420.45,-1002.3,44.3833,229.249,-66.6879],[5376.42,-901.243,43.9,226.809,-66.212],[5332.03,-801.639,43.4167,224.344,-65.7216],[5285.71,-700.156,42.9167,221.768,-65.1985],[5239.01,-600.279,42.4167,219.169,-64.6585],[5191.92,-502.031,41.9167,216.546,-64.1008],[5142.85,-402.243,41.4,213.812,-63.5052],[5091.77,-301.115,40.8667,210.968,-62.8687],[5040.25,-201.922,40.3333,208.101,-62.2092],[4986.66,-101.685,39.7833,205.124,-61.5037],[4930.96,-0.627611,39.2167,202.038,-60.7484],[4874.78,98.1482,38.65,198.934,-59.9629],[4816.45,197.411,38.0667,195.724,-59.1209],[4754.23,299.639,37.45,192.318,-58.1919],[4691.45,399.043,36.8333,188.903,-57.2207],[4626.39,498.153,36.2,185.393,-56.1767],[4557.28,599.167,35.5333,181.7,-55.0237],[4485.78,699.128,34.85,177.925,-53.7807],[4411.85,797.716,34.15,174.078,-52.4392],[4331.88,899.004,33.4,169.989,-50.9203],[4247.52,999.923,32.6167,165.769,-49.2378],[4158.69,1099.76,31.8,161.445,-47.3721],[4063.44,1199.62,30.9333,156.962,-45.2594],[3961.62,1298.3,30.0167,152.37,-42.8663],[3847.43,1399.28,29,147.501,-40.0099],[3720.51,1499.77,27.8833,142.488,-36.6142],[3576.6,1599.11,26.6333,137.386,-32.4797],[3401.42,1699.66,25.1333,132.138,-27.0494],[3169.73,1799.36,23.1833,127.079,-19.2726],[2637.04,1891.91,18.8333,125,-0.0718918]]], + [54,1938.55,[[5724.36,-2002.95,49.2667,251.023,-71.0208],[5688.84,-1900.57,48.8333,249.062,-70.7015],[5654.41,-1803.07,48.4167,247.153,-70.3872],[5618.32,-1702.68,47.9833,245.144,-70.0524],[5581.94,-1603.32,47.55,243.111,-69.7093],[5543.85,-1501.26,47.1,240.974,-69.3439],[5505.45,-1400.35,46.65,238.813,-68.9688],[5466.73,-1300.61,46.2,236.626,-68.5837],[5427.7,-1202.06,45.75,234.415,-68.1883],[5386.89,-1101.12,45.2833,232.097,-67.7667],[5345.74,-1001.5,44.8167,229.753,-67.3331],[5304.26,-903.205,44.35,227.384,-66.8868],[5260.95,-802.827,43.8667,224.906,-66.4108],[5215.76,-700.535,43.3667,222.316,-65.9029],[5171.72,-603.17,42.8833,219.787,-65.3963],[5124.24,-500.765,42.3667,217.059,-64.837],[5076.36,-400.113,41.85,214.305,-64.2586],[5028.08,-301.243,41.3333,211.527,-63.66],[4977.82,-201.078,40.8,208.637,-63.0199],[4927.13,-102.866,40.2667,205.725,-62.3562],[4872.81,-0.687103,39.7,202.608,-61.6238],[4818.01,99.2221,39.1333,199.472,-60.8618],[4761.11,199.664,38.55,196.226,-60.0448],[4703.72,297.63,37.9667,192.964,-59.193],[4642.51,398.461,37.35,189.504,-58.2522],[4579.08,499.052,36.7167,185.943,-57.2406],[4513.39,599.119,36.0667,182.285,-56.1514],[4445.4,698.366,35.4,178.537,-54.9772],[4373.34,798.83,34.7,174.614,-53.6783],[4297.14,899.902,33.9667,170.528,-52.2399],[4218.45,998.785,33.2167,166.387,-50.6813],[4133.7,1099.19,32.4167,162.029,-48.9143],[4044.52,1198.12,31.5833,157.573,-46.951],[3947.2,1298.38,30.6833,152.886,-44.6804],[3841.54,1398.35,29.7167,148.033,-42.0559],[3723.62,1499.22,28.65,142.948,-38.9228],[3591.19,1599.37,27.4667,137.721,-35.1401],[3436.2,1699.37,26.1,132.352,-30.3565],[3240.42,1799.92,24.4,126.915,-23.7931],[2942.7,1899.68,21.8667,122.021,-12.9259],[2603.36,1938.55,19.05,122.055,-0.0125099]]], + [55,1984.63,[[5633.71,-2002.48,49.6667,251.484,-71.5369],[5600.4,-1903.53,49.25,249.593,-71.2386],[5565.47,-1801.61,48.8167,247.603,-70.921],[5530.26,-1700.7,48.3833,245.588,-70.5956],[5494.77,-1600.82,47.95,243.548,-70.2621],[5458.99,-1501.99,47.5167,241.484,-69.9202],[5421.53,-1400.48,47.0667,239.315,-69.5559],[5383.77,-1300.13,46.6167,237.12,-69.1819],[5345.7,-1200.97,46.1667,234.9,-68.7978],[5307.32,-1103,45.7167,232.655,-68.4031],[5267.2,-1002.68,45.25,230.301,-67.9823],[5225.3,-900.173,44.7667,227.836,-67.5335],[5184.51,-802.57,44.3,225.43,-67.0872],[5141.92,-702.919,43.8167,222.912,-66.6108],[5097.5,-601.393,43.3167,220.281,-66.1024],[5052.7,-501.477,42.8167,217.624,-65.5772],[5007.53,-403.196,42.3167,214.941,-65.0345],[4958.94,-300.19,41.7833,212.053,-64.4353],[4911.48,-202.229,41.2667,209.231,-63.8341],[4862.07,-103.02,40.7333,206.294,-63.1908],[4810.68,-2.77528,40.1833,203.243,-62.502],[4757.28,98.2835,39.6167,200.076,-61.7639],[4701.82,199.922,39.0333,196.796,-60.9724],[4645.89,299.097,38.45,193.497,-60.1469],[4587.85,398.497,37.85,190.089,-59.2601],[4527.67,497.863,37.2333,186.574,-58.3065],[4463.68,599.487,36.5833,182.862,-57.2523],[4399.1,697.868,35.9333,179.148,-56.1445],[4330.59,797.747,35.25,175.249,-54.9181],[4258.07,898.533,34.5333,171.175,-53.5595],[4181.45,999.596,33.7833,166.939,-52.0526],[4102.38,1098.17,33.0167,162.654,-50.4158],[4015.58,1199.81,32.1833,158.066,-48.5182],[3924.38,1299.33,31.3167,153.395,-46.404],[3825.13,1399.36,30.3833,148.512,-43.955],[3715.83,1499.74,29.3667,143.414,-41.07],[3594.38,1599.52,28.25,138.144,-37.6231],[3454.89,1699.24,26.9833,132.688,-33.3428],[3285.51,1799.47,25.4667,127.064,-27.6887],[3056.44,1899.77,23.45,121.513,-19.3229],[2569.56,1984.63,19.2833,119.066,-0.0526983]]], + [56,2030.12,[[5537.95,-2000.08,50.05,251.903,-72.0456],[5505.48,-1900.67,49.6333,250.007,-71.7557],[5472.74,-1802.18,49.2167,248.089,-71.4591],[5438.42,-1700.74,48.7833,246.068,-71.1431],[5403.82,-1600.33,48.35,244.022,-70.8193],[5368.95,-1500.96,47.9167,241.952,-70.4873],[5333.79,-1402.65,47.4833,239.856,-70.1469],[5296.99,-1301.69,47.0333,237.654,-69.784],[5259.89,-1201.9,46.5833,235.426,-69.4114],[5222.49,-1103.3,46.1333,233.172,-69.0285],[5183.39,-1002.32,45.6667,230.808,-68.6202],[5143.97,-902.662,45.2,228.417,-68.1999],[5102.81,-800.85,44.7167,225.914,-67.7516],[5061.3,-700.494,44.2333,223.382,-67.2893],[5019.45,-601.613,43.75,220.824,-66.8125],[4975.8,-500.897,43.25,218.151,-66.3033],[4931.79,-401.808,42.75,215.451,-65.7771],[4885.93,-301.149,42.2333,212.635,-65.2145],[4839.69,-202.277,41.7167,209.792,-64.6319],[4791.56,-102.118,41.1833,206.832,-64.0085],[4741.5,-0.881374,40.6333,203.754,-63.3409],[4691.01,98.2391,40.0833,200.653,-62.6469],[4638.55,198.118,39.5167,197.435,-61.9026],[4584.08,298.519,38.9333,194.101,-61.1038],[4527.56,399.195,38.3333,190.654,-60.2455],[4468.96,499.886,37.7167,187.095,-59.3223],[4409.84,597.715,37.1,183.524,-58.3547],[4346.98,697.69,36.45,179.754,-57.2838],[4280.29,799.262,35.7667,175.79,-56.0977],[4211.35,899.505,35.0667,171.737,-54.8142],[4140.1,998.083,34.35,167.605,-53.4232],[4063.17,1098.93,33.5833,163.219,-51.8426],[3982.11,1199.02,32.7833,158.695,-50.0836],[3895.12,1299.51,31.9333,153.969,-48.0826],[3802.08,1399.24,31.0333,149.084,-45.8041],[3701.08,1498.59,30.0667,144.013,-43.1596],[3588.39,1598.75,29,138.683,-39.9873],[3460.09,1699.36,27.8,133.107,-36.0789],[3310.26,1799.22,26.4167,127.371,-31.1067],[3119.68,1899.55,24.6833,121.503,-24.1703],[2816.72,1999.7,21.9833,116.113,-12.0138]]], + [57,2074.95,[[5439.67,-2003.8,50.45,252.431,-72.5699],[5408.05,-1903.89,50.0333,250.533,-72.2888],[5374.89,-1800.95,49.6,248.533,-71.9895],[5342.75,-1702.92,49.1833,246.585,-71.6948],[5309.06,-1601.96,48.75,244.535,-71.3808],[5275.1,-1502.04,48.3167,242.458,-71.0589],[5240.86,-1403.17,47.8833,240.357,-70.7287],[5205.02,-1301.63,47.4333,238.148,-70.3768],[5168.89,-1201.25,46.9833,235.912,-70.0154],[5132.47,-1102.06,46.5333,233.649,-69.644],[5094.39,-1000.46,46.0667,231.275,-69.248],[5056,-900.164,45.6,228.873,-68.8403],[5017.29,-801.202,45.1333,226.444,-68.4206],[4976.88,-700.127,44.65,223.901,-67.9726],[4936.13,-600.52,44.1667,221.329,-67.5105],[4895.05,-502.403,43.6833,218.73,-67.0336],[4852.21,-402.492,43.1833,216.015,-66.524],[4807.57,-300.974,42.6667,213.18,-65.9792],[4762.55,-201.235,42.15,210.318,-65.4149],[4715.69,-100.17,41.6167,207.335,-64.811],[4668.44,-1.05574,41.0833,204.327,-64.1841],[4619.3,99.0828,40.5333,201.199,-63.5123],[4569.74,197.086,39.9833,198.047,-62.8134],[4516.73,298.66,39.4,194.68,-62.0408],[4463.27,397.761,38.8167,191.293,-61.2339],[4406.25,499.796,38.2,187.692,-60.3415],[4348.74,598.984,37.5833,184.076,-59.4059],[4289.15,697.846,36.95,180.351,-58.3972],[4225.86,798.571,36.2833,176.424,-57.2794],[4160.41,898.207,35.6,172.399,-56.0699],[4091.13,998.72,34.8833,168.189,-54.7271],[4017.95,1099.48,34.1333,163.805,-53.2342],[3940.78,1199.8,33.35,159.267,-51.5718],[3859.55,1298.97,32.5333,154.597,-49.7176],[3770.82,1399.9,31.65,149.643,-47.5615],[3676.08,1499.3,30.7167,144.551,-45.0997],[3571.78,1598.96,29.7,139.218,-42.186],[3454.19,1699.3,28.5667,133.607,-38.6312],[3319.4,1799.02,27.2833,127.792,-34.1906],[3154.35,1899.44,25.7333,121.733,-28.2182],[2926.96,1999.87,23.6333,115.68,-19.1068]]], + [58,2119.09,[[5335.08,-2001.67,50.8167,252.843,-73.0763],[5304.3,-1901.32,50.4,250.94,-72.8036],[5273.27,-1801.87,49.9833,249.013,-72.5245],[5241.99,-1703.35,49.5667,247.061,-72.2388],[5209.21,-1601.88,49.1333,245.005,-71.9344],[5176.16,-1501.45,48.7,242.923,-71.6223],[5142.84,-1402.05,48.2667,240.815,-71.3023],[5109.26,-1303.72,47.8333,238.681,-70.9739],[5074.11,-1202.74,47.3833,236.439,-70.6238],[5038.67,-1102.94,46.9333,234.168,-70.2641],[5001.62,-1000.7,46.4667,231.785,-69.8805],[4965.61,-903.349,46.0167,229.46,-69.4999],[4926.61,-800.154,45.5333,226.934,-69.079],[4888.65,-701.883,45.0667,224.467,-68.6602],[4849.01,-601.537,44.5833,221.883,-68.2129],[4809.05,-502.673,44.1,219.271,-67.7513],[4767.38,-401.981,43.6,216.54,-67.258],[4725.35,-302.922,43.1,213.78,-66.7478],[4681.57,-202.3,42.5833,210.9,-66.2021],[4636,-100.314,42.05,207.897,-65.618],[4590.04,-0.269568,41.5167,204.866,-65.0115],[4543.7,97.8062,40.9833,201.809,-64.3816],[4494.05,199.822,40.4167,198.533,-63.6851],[4443.97,299.549,39.85,195.232,-62.959],[4391.98,399.783,39.2667,191.81,-62.1787],[4339.54,497.52,38.6833,188.367,-61.3631],[4283.63,598.086,38.0667,184.708,-60.4601],[4225.71,698.378,37.4333,180.934,-59.486],[4165.74,798.111,36.7833,177.051,-58.4339],[4102.12,899.413,36.1,172.963,-57.2664],[4036.36,999.361,35.4,168.778,-56.0004],[3966.83,1099.85,34.6667,164.407,-54.5922],[3895.07,1198.11,33.9167,159.965,-53.0586],[3816.18,1299.81,33.1,155.175,-51.2722],[3733.26,1399.72,32.25,150.265,-49.2734],[3644.58,1498.81,31.35,145.179,-46.9885],[3546.69,1599.07,30.3667,139.796,-44.277],[3437.65,1699.7,29.2833,134.135,-41.0076],[3315.46,1798.95,28.0833,128.288,-37.0143],[3169.37,1899.33,26.6667,122.115,-31.7669],[2982.72,1999.37,24.8833,115.784,-24.3288]]], + [59,2162.48,[[5226.73,-2001.77,51.1833,253.288,-73.5875],[5196.8,-1900.97,50.7667,251.382,-73.3232],[5166.63,-1801.07,50.35,249.451,-73.0528],[5136.21,-1702.09,49.9333,247.494,-72.776],[5104.33,-1600.14,49.5,245.434,-72.481],[5073.44,-1503.07,49.0833,243.427,-72.1903],[5041.05,-1403.14,48.65,241.313,-71.8804],[5007.14,-1300.49,48.2,239.091,-71.5502],[4974.23,-1202.72,47.7667,236.924,-71.2236],[4939.78,-1102.35,47.3167,234.646,-70.8754],[4905.05,-1003.16,46.8667,232.34,-70.5173],[4868.75,-901.57,46.4,229.92,-70.1354],[4832.15,-801.295,45.9333,227.471,-69.7421],[4795.25,-702.355,45.4667,224.993,-69.3369],[4756.72,-601.308,44.9833,222.397,-68.9042],[4717.88,-501.736,44.5,219.772,-68.4575],[4677.37,-400.303,44,217.026,-67.9802],[4636.52,-300.494,43.5,214.25,-67.4865],[4595.34,-202.334,43,211.445,-66.9757],[4552.44,-102.658,42.4833,208.518,-66.4288],[4507.79,-1.66687,41.95,205.466,-65.8431],[4462.77,97.3654,41.4167,202.386,-65.2346],[4415.95,197.411,40.8667,199.182,-64.5819],[4367.3,298.244,40.3,195.852,-63.8811],[4316.79,399.629,39.7167,192.398,-63.1278],[4265.86,498.529,39.1333,188.92,-62.3402],[4213.02,597.624,38.5333,185.321,-61.492],[4156.76,699.287,37.9,181.502,-60.552],[4100,797.889,37.2667,177.667,-59.563],[4039.74,898.324,36.6,173.621,-58.465],[3977.42,997.645,35.9167,169.469,-57.2746],[3911.47,1097.81,35.2,165.12,-55.95],[3841.81,1198.18,34.45,160.587,-54.4737],[3768.38,1298.08,33.6667,155.885,-52.8249],[3689.5,1398.73,32.8333,150.941,-50.9409],[3605.08,1499.01,31.95,145.79,-48.7844],[3513.35,1599.36,31,140.39,-46.2653],[3412.53,1699.57,29.9667,134.733,-43.2685],[3299.06,1799.96,28.8167,128.779,-39.5912],[3169.25,1899.1,27.5167,122.606,-34.9665],[3007.33,1999.86,25.9167,116.059,-28.5591]]], + [60,2205.07,[[5113.47,-2000.07,51.5333,253.692,-74.093],[5085.55,-1902.88,51.1333,251.859,-73.8475],[5056.25,-1802.51,50.7167,249.924,-73.5858],[5026.71,-1703.06,50.3,247.965,-73.3179],[4995.74,-1600.62,49.8667,245.899,-73.0325],[4965.73,-1503.08,49.45,243.888,-72.7513],[4934.27,-1402.64,49.0167,241.769,-72.4514],[4902.57,-1303.26,48.5833,239.623,-72.1438],[4869.37,-1201.18,48.1333,237.366,-71.8158],[4835.91,-1100.26,47.6833,235.081,-71.4788],[4802.17,-1000.53,47.2333,232.767,-71.1323],[4768.17,-901.989,46.7833,230.424,-70.776],[4732.63,-801.088,46.3167,227.966,-70.3957],[4696.79,-701.514,45.85,225.478,-70.0039],[4660.67,-603.287,45.3833,222.961,-69.6001],[4622.96,-502.992,44.9,220.324,-69.1687],[4583.63,-400.805,44.4,217.564,-68.7075],[4543.97,-300.233,43.9,214.773,-68.2305],[4503.98,-201.302,43.4,211.953,-67.7369],[4462.33,-100.82,42.8833,209.007,-67.2084],[4420.33,-2.14179,42.3667,206.031,-66.6603],[4376.62,97.8011,41.8333,202.929,-66.0728],[4331.17,198.796,41.2833,199.7,-65.4425],[4285.34,297.655,40.7333,196.442,-64.7859],[4237.72,397.245,40.1667,193.058,-64.0803],[4188.29,497.327,39.5833,189.547,-63.3212],[4137.02,597.651,38.9833,185.911,-62.5034],[4083.86,697.954,38.3667,182.15,-61.6213],[4028.8,797.962,37.7333,178.269,-60.6683],[3970.33,899.893,37.0667,174.168,-59.6099],[3911.34,998.348,36.4,170.057,-58.4906],[3848.85,1097.93,35.7,165.739,-57.2447],[3782.79,1198.02,34.9667,161.223,-55.8554],[3713.1,1297.95,34.2,156.524,-54.3032],[3638.16,1399.04,33.3833,151.56,-52.5278],[3559.42,1498.28,32.5333,146.463,-50.5338],[3473.66,1598.38,31.6167,141.075,-48.2008],[3379.14,1699.26,30.6167,135.37,-45.4185],[3275.64,1798.59,29.5333,129.458,-42.0981],[3156.47,1898.87,28.3,123.17,-37.8948],[3014.61,1999.06,26.85,116.558,-32.3335]]], + [61,2246.82,[[4996.48,-2000.71,51.8833,254.131,-74.6036],[4969.39,-1903.1,51.4833,252.295,-74.3661],[4940.95,-1802.3,51.0667,250.357,-74.1131],[4912.29,-1702.41,50.65,248.393,-73.854],[4883.4,-1603.44,50.2333,246.403,-73.5887],[4853.11,-1501.5,49.8,244.307,-73.306],[4822.59,-1400.6,49.3667,242.182,-73.016],[4791.81,-1300.73,48.9333,240.03,-72.7185],[4760.8,-1201.92,48.5,237.851,-72.4132],[4728.33,-1100.45,48.05,235.559,-72.0875],[4695.6,-1000.16,47.6,233.237,-71.7527],[4662.61,-901.059,47.15,230.887,-71.4084],[4629.36,-803.167,46.7,228.508,-71.0542],[4594.6,-702.947,46.2333,226.01,-70.676],[4558.31,-600.56,45.75,223.392,-70.272],[4522.99,-503.089,45.2833,220.835,-69.8696],[4484.83,-400.186,44.7833,218.062,-69.4243],[4447.65,-302.242,44.3,215.351,-68.9793],[4408.87,-202.524,43.8,212.516,-68.5031],[4368.48,-101.222,43.2833,209.553,-67.9933],[4327.75,-1.71392,42.7667,206.559,-67.4645],[4285.35,99.0947,42.2333,203.437,-66.8975],[4242.61,197.935,41.7,200.283,-66.308],[4198.17,297.771,41.15,197.001,-65.675],[4152,398.378,40.5833,193.588,-64.9946],[4104.07,499.519,40,190.046,-64.2624],[4055.73,598.161,39.4167,186.476,-63.4959],[4004.19,699.684,38.8,182.676,-62.6457],[3952.22,798.332,38.1833,178.853,-61.7516],[3896.96,899.155,37.5333,174.804,-60.7584],[3839.79,999.145,36.8667,170.637,-59.6812],[3780.68,1097.99,36.1833,166.357,-58.5109],[3716.67,1199.9,35.45,161.764,-57.1741],[3650.61,1299.6,34.7,157.078,-55.713],[3580.98,1398.77,33.9167,152.213,-54.0762],[3506.21,1498.62,33.0833,147.087,-52.1992],[3424.67,1599.82,32.1833,141.638,-49.9994],[3337.75,1699.04,31.2333,136.021,-47.4632],[3240.69,1799.49,30.1833,130.029,-44.3779],[3131.66,1899.58,29.0167,123.722,-40.5666],[3005.58,1998.87,27.6833,117.107,-35.6711]]], + [62,2287.69,[[4875.74,-2003.77,52.2333,254.604,-75.1189],[4848.39,-1901.67,51.8167,252.689,-74.8799],[4820.82,-1800.46,51.4,250.747,-74.6354],[4793.03,-1700.15,50.9833,248.779,-74.385],[4765.02,-1600.76,50.5667,246.785,-74.1286],[4736.8,-1502.3,50.15,244.765,-73.866],[4707.21,-1400.91,49.7167,242.636,-73.586],[4677.38,-1300.55,49.2833,240.479,-73.2987],[4647.32,-1201.25,48.85,238.293,-73.0039],[4617.03,-1103.02,48.4167,236.08,-72.7012],[4585.31,-1002.15,47.9667,233.752,-72.3783],[4553.35,-902.472,47.5167,231.395,-72.0461],[4519.93,-800.373,47.05,228.919,-71.6916],[4487.45,-703.166,46.6,226.502,-71.3395],[4452.28,-600.139,46.1167,223.874,-70.9497],[4418.05,-502.042,45.65,221.305,-70.5614],[4382.31,-401.89,45.1667,218.613,-70.1463],[4346.29,-303.232,44.6833,215.89,-69.7173],[4308.72,-202.769,44.1833,213.04,-69.2583],[4269.58,-100.688,43.6667,210.062,-68.7668],[4230.12,-0.391808,43.15,207.05,-68.2569],[4190.34,98.0919,42.6333,204.006,-67.7275],[4148.94,197.824,42.1,200.832,-67.1596],[4105.89,298.59,41.55,197.526,-66.5498],[4062.48,397.211,41,194.188,-65.9138],[4016.06,499.429,40.4167,190.616,-65.209],[3969.24,599.161,39.8333,187.014,-64.471],[3920.69,699.111,39.2333,183.281,-63.6748],[3870.36,799.014,38.6167,179.418,-62.8147],[3818.23,898.594,37.9833,175.427,-61.8839],[3764.27,997.562,37.3333,171.311,-60.8748],[3707.04,1098.02,36.65,166.971,-59.7505],[3646.5,1199.38,35.9333,162.411,-58.4957],[3583.99,1298.79,35.2,157.749,-57.1245],[3518.04,1397.98,34.4333,152.89,-55.5879],[3447.16,1498.25,33.6167,147.751,-53.8242],[3371.22,1598.48,32.75,142.361,-51.7949],[3288.64,1699.19,31.8167,136.662,-49.409],[3199.27,1798.65,30.8167,130.726,-46.5969],[3098.43,1899.23,29.7,124.375,-43.1095],[2982.74,1999.73,28.4333,117.643,-38.6626]]], + [63,2327.62,[[4749.13,-2001.07,52.55,254.96,-75.6204],[4723.71,-1902.66,52.15,253.118,-75.399],[4697.02,-1801.03,51.7333,251.174,-75.163],[4670.12,-1700.3,51.3167,249.203,-74.9215],[4643.01,-1600.48,50.9,247.205,-74.6741],[4615.68,-1501.59,50.4833,245.181,-74.4207],[4588.14,-1403.64,50.0667,243.129,-74.1611],[4559.28,-1302.78,49.6333,240.968,-73.8842],[4530.18,-1202.97,49.2,238.778,-73.6],[4499.73,-1100.45,48.75,236.473,-73.2968],[4470.16,-1002.82,48.3167,234.225,-72.9969],[4439.22,-902.597,47.8667,231.861,-72.6767],[4408.04,-803.572,47.4167,229.466,-72.3473],[4375.44,-702.164,46.95,226.951,-71.9955],[4342.58,-602.083,46.4833,224.405,-71.6328],[4309.45,-503.348,46.0167,221.826,-71.2588],[4274.87,-402.528,45.5333,219.124,-70.859],[4240.01,-303.195,45.05,216.388,-70.4458],[4203.65,-202.026,44.55,213.525,-70.0036],[4167,-102.497,44.05,210.628,-69.5456],[4128.82,-1.39772,43.5333,207.6,-69.0548],[4090.33,97.8979,43.0167,204.539,-68.5454],[4050.27,198.477,42.4833,201.344,-67.9987],[4009.88,297.077,41.95,198.117,-67.4297],[3966.61,399.639,41.3833,194.653,-66.7992],[3922.98,499.9,40.8167,191.156,-66.1402],[3878.99,597.825,40.25,187.628,-65.4509],[3832.03,698.927,39.65,183.86,-64.6858],[3784.67,797.333,39.05,180.064,-63.8819],[3734.25,898.238,38.4167,176.03,-62.988],[3682.07,998.58,37.7667,171.866,-62.0186],[3628.08,1098.06,37.1,167.576,-60.9652],[3570.91,1198.71,36.4,163.058,-59.7893],[3510.47,1299.91,35.6667,158.319,-58.4737],[3448.12,1398.86,34.9167,153.48,-57.0314],[3381,1499.26,34.1167,148.339,-55.3745],[3310.44,1598.1,33.2833,143.03,-53.5053],[3232.08,1699.95,32.3667,137.272,-51.2622],[3148.64,1799.44,31.4,131.333,-48.6605],[3055.63,1899.65,30.3333,124.999,-45.4752],[2951.35,1998.89,29.15,118.334,-41.5104]]], + [64,2366.57,[[4618.92,-2000.85,52.8667,255.351,-76.1275],[4594.33,-1902.07,52.4667,253.507,-75.9141],[4568.53,-1800.04,52.05,251.559,-75.6866],[4543.56,-1702.94,51.65,249.664,-75.4632],[4517.35,-1602.68,51.2333,247.664,-75.225],[4490.94,-1503.35,50.8167,245.636,-74.981],[4463.25,-1401.03,50.3833,243.498,-74.7208],[4436.41,-1303.62,49.9667,241.415,-74.4642],[4408.28,-1203.33,49.5333,239.22,-74.1905],[4378.84,-1100.3,49.0833,236.91,-73.8985],[4350.26,-1002.19,48.65,234.656,-73.6096],[4320.35,-901.454,48.2,232.284,-73.3012],[4290.2,-801.912,47.75,229.882,-72.9839],[4259.81,-703.579,47.3,227.449,-72.6572],[4228.05,-602.902,46.8333,224.894,-72.3083],[4194.88,-500.041,46.35,222.213,-71.9353],[4162.61,-402.113,45.8833,219.593,-71.5635],[4128.91,-302.143,45.4,216.845,-71.1658],[4093.77,-200.307,44.9,213.968,-70.7402],[4058.34,-100.103,44.4,211.057,-70.2993],[4022.63,-1.55642,43.9,208.111,-69.8424],[3985.43,98.5088,43.3833,205.033,-69.3524],[3946.72,199.891,42.85,201.82,-68.8266],[3907.69,299.302,42.3167,198.571,-68.2793],[3867.11,399.726,41.7667,195.186,-67.6909],[3826.19,497.991,41.2167,191.768,-67.0766],[3782.44,599.819,40.6333,188.107,-66.395],[3738.33,699.146,40.05,184.413,-65.6803],[3692.58,798.663,39.45,180.581,-64.9082],[3645.16,898.105,38.8333,176.614,-64.0727],[3594.75,999.76,38.1833,172.403,-63.1424],[3543.92,1098.12,37.5333,168.17,-62.157],[3490.02,1197.92,36.85,163.7,-61.0568],[3433,1298.56,36.1333,159,-59.8256],[3372.8,1399.4,35.3833,154.078,-58.4446],[3309.36,1499.75,34.6,148.949,-56.891],[3242.61,1598.89,33.7833,143.632,-55.1376],[3169.75,1699.71,32.9,137.94,-53.0705],[3092.03,1798.91,31.9667,132.027,-50.6717],[3005.14,1899.8,30.9333,125.652,-47.727],[2908.84,1999.49,29.8,118.949,-44.1044]]], + [65,2404.49,[[4485.04,-2003.18,53.1833,255.777,-76.6399],[4461.31,-1904.02,52.7833,253.931,-76.4346],[4436.4,-1801.59,52.3667,251.982,-76.2158],[4411.28,-1700.05,51.95,250.004,-75.9917],[4386.99,-1603.42,51.55,248.08,-75.7716],[4361.49,-1503.67,51.1333,246.049,-75.5368],[4334.75,-1400.91,50.7,243.907,-75.2864],[4308.85,-1303.07,50.2833,241.82,-75.0396],[4281.69,-1202.34,49.85,239.62,-74.7762],[4254.32,-1102.66,49.4167,237.39,-74.5058],[4225.67,-1000.27,48.9667,235.043,-74.2172],[4197.87,-902.782,48.5333,232.753,-73.9316],[4168.77,-802.709,48.0833,230.344,-73.6265],[4138.35,-700.202,47.6167,227.813,-73.3007],[4108.78,-602.602,47.1667,225.34,-72.977],[4077.87,-502.697,46.7,222.744,-72.631],[4045.61,-400.651,46.2167,220.02,-72.2609],[4013.08,-300.08,45.7333,217.261,-71.8785],[3980.3,-201.006,45.25,214.468,-71.4831],[3946.11,-100.113,44.75,211.543,-71.0596],[3911.64,-0.869257,44.25,208.583,-70.6206],[3875.74,99.9236,43.7333,205.489,-70.1499],[3839.55,198.902,43.2167,202.358,-69.6608],[3801.89,299.143,42.6833,199.091,-69.1354],[3763.93,397.393,42.15,195.788,-68.5881],[3723.26,499.569,41.5833,192.242,-67.9808],[3682.25,599.431,41.0167,188.659,-67.3454],[3639.69,699.775,40.4333,184.935,-66.6599],[3596.78,797.593,39.85,181.178,-65.9402],[3551.05,898.211,39.2333,177.173,-65.1395],[3503.68,998.522,38.6,173.029,-64.2711],[3454.65,1098.24,37.95,168.748,-63.3275],[3402.67,1199.47,37.2667,164.223,-62.2734],[3348.96,1299.31,36.5667,159.568,-61.1215],[3292.2,1399.63,35.8333,154.682,-59.8293],[3232.34,1499.77,35.0667,149.575,-58.3752],[3169.33,1599.03,34.2667,144.261,-56.7338],[3101.76,1698.53,33.4167,138.656,-54.8353],[3028.22,1798.87,32.5,132.687,-52.5884],[2947.21,1899.93,31.5,126.309,-49.8714],[2858.58,1999.4,30.4167,119.624,-46.5733]]], + [66,2441.35,[[4346.58,-2003.97,53.4833,256.163,-77.1493],[4322.75,-1900.33,53.0667,254.238,-76.9436],[4299.69,-1801.65,52.6667,252.363,-76.7416],[4276.46,-1703.79,52.2667,250.462,-76.535],[4252.06,-1602.73,51.85,248.456,-76.3147],[4227.48,-1502.59,51.4333,246.421,-76.089],[4202.7,-1403.37,51.0167,244.358,-75.8578],[4176.73,-1301.18,50.5833,242.183,-75.6111],[4150.55,-1200.03,50.15,239.977,-75.358],[4125.19,-1103.75,49.7333,237.828,-75.1082],[4097.57,-1000.88,49.2833,235.476,-74.8311],[4070.77,-902.917,48.85,233.181,-74.5568],[4042.72,-802.346,48.4,230.765,-74.2638],[4014.46,-702.974,47.95,228.317,-73.9623],[3984.9,-601.207,47.4833,225.745,-73.6401],[3955.12,-500.768,47.0167,223.139,-73.3077],[3925.09,-401.678,46.55,220.5,-72.9648],[3893.75,-300.491,46.0667,217.731,-72.5979],[3862.16,-200.794,45.5833,214.927,-72.2184],[3830.31,-102.61,45.1,212.088,-71.8258],[3797.11,-2.65344,44.6,209.115,-71.4051],[3762.52,98.8839,44.0833,206.006,-70.9538],[3727.65,198.615,43.5667,202.86,-70.4849],[3691.36,299.641,43.0333,199.574,-69.9812],[3654.78,398.684,42.5,196.251,-69.4564],[3616.76,498.715,41.95,192.786,-68.8915],[3577.26,599.506,41.3833,189.179,-68.2828],[3537.43,697.957,40.8167,185.535,-67.6452],[3494.92,799.612,40.2167,181.639,-66.9363],[3452.06,898.564,39.6167,177.708,-66.19],[3407.64,997.408,39,173.635,-65.381],[3360.43,1098.41,38.35,169.309,-64.4785],[3311.59,1198.56,37.6833,164.843,-63.4952],[3259.88,1299.91,36.9833,160.13,-62.3942],[3206.48,1399.57,36.2667,155.287,-61.1873],[3150.1,1499.35,35.5167,150.21,-59.8291],[3090.71,1598.56,34.7333,144.913,-58.2957],[3026.97,1698.41,33.9,139.302,-56.5208],[2957.49,1799.55,33,133.296,-54.4178],[2883.46,1898.65,32.05,127.055,-51.9608],[2800.85,1998.9,31,120.33,-48.9232]]], + [67,2477.09,[[4203.62,-2003.26,53.7667,256.509,-77.6563],[4181.6,-1903.41,53.3667,254.658,-77.4669],[4158.49,-1800.25,52.95,252.703,-77.265],[4136.12,-1702.05,52.55,250.8,-77.0667],[4112.64,-1600.63,52.1333,248.789,-76.8552],[4088.98,-1500.13,51.7167,246.75,-76.6386],[4065.13,-1400.54,51.3,244.683,-76.4166],[4041.1,-1301.89,50.8833,242.588,-76.189],[4015.91,-1200.31,50.45,240.378,-75.9462],[3991.5,-1103.61,50.0333,238.225,-75.7066],[3964.93,-1000.28,49.5833,235.867,-75.4409],[3939.14,-901.877,49.15,233.565,-75.1778],[3912.15,-800.84,48.7,231.143,-74.8968],[3884.95,-700.996,48.25,228.688,-74.6076],[3857.53,-602.364,47.8,226.201,-74.3097],[3828.87,-501.378,47.3333,223.587,-73.9912],[3799.98,-401.735,46.8667,220.938,-73.6626],[3770.87,-303.453,46.4,218.256,-73.3233],[3740.48,-203.12,45.9167,215.442,-72.9601],[3708.79,-100.91,45.4167,212.493,-72.5711],[3676.85,-0.335829,44.9167,209.507,-72.1678],[3644.65,98.5788,44.4167,206.484,-71.7494],[3611.1,199.021,43.9,203.322,-71.3005],[3577.3,297.638,43.3833,200.122,-70.8335],[3542.12,397.492,42.85,196.781,-70.3315],[3505.54,498.369,42.3,193.296,-69.7911],[3468.68,597.084,41.75,189.773,-69.2263],[3429.25,699.383,41.1667,185.996,-68.5986],[3389.51,799.175,40.5833,182.179,-67.9394],[3348.29,899.166,39.9833,178.216,-67.2259],[3305.57,999.087,39.3667,174.106,-66.4523],[3261.34,1098.66,38.7333,169.85,-65.6118],[3215.57,1197.59,38.0833,165.45,-64.6964],[3167.04,1297.99,37.4,160.795,-63.6714],[3115.72,1399.24,36.6833,155.888,-62.5207],[3062.75,1498.5,35.95,150.852,-61.2548],[3005.67,1599.6,35.1667,145.467,-59.793],[2945.64,1699.51,34.35,139.863,-58.1347],[2881.37,1799.29,33.4833,133.951,-56.2063],[2811.51,1899.46,32.55,127.656,-53.9101],[2734.7,1999.83,31.5333,120.932,-51.113]]], + [68,2511.68,[[4056.28,-2001.06,54.0333,256.813,-78.1616],[4035.12,-1900.9,53.6333,254.96,-77.98],[4013.81,-1801.54,53.2333,253.081,-77.7943],[3992.32,-1702.98,52.8333,251.176,-77.6044],[3969.77,-1601.2,52.4167,249.162,-77.4019],[3947.04,-1500.31,52,247.121,-77.1945],[3924.14,-1400.35,51.5833,245.05,-76.9818],[3901.05,-1301.32,51.1667,242.951,-76.7639],[3877.79,-1203.24,50.75,240.822,-76.5404],[3853.41,-1102.25,50.3167,238.579,-76.3019],[3828.83,-1002.32,49.8833,236.303,-76.057],[3804.07,-903.452,49.45,233.997,-75.8052],[3778.15,-801.935,49,231.569,-75.5364],[3752.02,-701.607,48.55,229.108,-75.2596],[3725.69,-602.485,48.1,226.614,-74.9746],[3698.17,-500.986,47.6333,223.992,-74.6699],[3670.43,-400.824,47.1667,221.335,-74.3554],[3642.47,-302.018,46.7,218.643,-74.0307],[3613.28,-201.135,46.2167,215.818,-73.6831],[3583.86,-101.752,45.7333,212.957,-73.3234],[3553.19,-0.543328,45.2333,209.959,-72.9378],[3522.27,99.0126,44.7333,206.922,-72.5378],[3491.1,196.891,44.2333,203.849,-72.1226],[3457.6,299.418,43.7,200.53,-71.662],[3423.82,399.978,43.1667,197.17,-71.1818],[3389.77,498.543,42.6333,193.771,-70.6809],[3354.37,598.066,42.0833,190.225,-70.1413],[3317.61,698.318,41.5167,186.532,-69.5591],[3279.46,799.059,40.9333,182.689,-68.9299],[3240.99,897.265,40.35,178.807,-68.2682],[3200,998.288,39.7333,174.663,-67.5306],[3157.55,1099,39.1,170.369,-66.7289],[3113.62,1199.12,38.45,165.925,-65.8556],[3068.19,1298.34,37.7833,161.334,-64.9018],[3020.09,1398.68,37.0833,156.484,-63.8311],[2969.27,1499.53,36.35,151.379,-62.6254],[2916.85,1598.06,35.6,146.145,-61.2938],[2859.27,1699.99,34.7833,140.444,-59.7172],[2800,1798.15,33.95,134.644,-57.9555],[2734.21,1899.18,33.0333,128.314,-55.8154],[2662.99,1999.36,32.05,121.621,-53.25]]], + [69,2545.07,[[3905.49,-2001.62,54.3,257.155,-78.673],[3885.21,-1901.13,53.9,255.3,-78.4994],[3864.77,-1801.45,53.5,253.419,-78.3219],[3844.18,-1702.57,53.1,251.511,-78.1403],[3822.56,-1600.44,52.6833,249.495,-77.9467],[3801.64,-1503.24,52.2833,247.532,-77.7564],[3779.69,-1402.89,51.8667,245.459,-77.5533],[3757.56,-1303.46,51.45,243.357,-77.3451],[3734.37,-1201.06,51.0167,241.139,-77.123],[3711.9,-1103.58,50.6,238.978,-76.9038],[3688.35,-1003.22,50.1667,236.698,-76.6698],[3663.69,-900.131,49.7167,234.297,-76.42],[3639.76,-801.964,49.2833,231.954,-76.1725],[3614.72,-701.182,48.8333,229.486,-75.9081],[3589.48,-601.603,48.3833,226.985,-75.6358],[3564.05,-503.243,47.9333,224.45,-75.3553],[3537.47,-402.548,47.4667,221.786,-75.0551],[3510.68,-303.204,47,219.086,-74.7452],[3482.71,-201.757,46.5167,216.252,-74.4135],[3454.51,-101.804,46.0333,213.38,-74.0701],[3426.1,-3.36584,45.55,210.471,-73.7146],[3396.48,96.8477,45.05,207.423,-73.3332],[3365.62,198.647,44.5333,204.233,-72.9239],[3334.52,298.634,44.0167,201.003,-72.498],[3302.15,399.919,43.4833,197.626,-72.0401],[3269.52,499.216,42.95,194.209,-71.5624],[3235.61,599.502,42.4,190.643,-71.0476],[3201.42,697.61,41.85,187.036,-70.5088],[3164.88,799.248,41.2667,183.168,-69.9093],[3128.03,898.362,40.6833,179.257,-69.2786],[3089.83,997.635,40.0833,175.194,-68.595],[3049.17,1099.44,39.45,170.864,-67.8316],[3008.17,1198.13,38.8167,166.494,-67.0218],[2964.67,1298.6,38.15,161.857,-66.1145],[2919.7,1397.91,37.4667,157.07,-65.1206],[2872.15,1497.98,36.75,152.02,-64.0014],[2821.96,1598.18,36,146.712,-62.7367],[2767.96,1699.88,35.2,141.039,-61.2702],[2712.36,1798.1,34.3833,135.252,-59.6321],[2650.55,1899.68,33.4833,128.904,-57.6393],[2584.71,1999.23,32.5333,122.271,-55.2913]]], + [70,2577.23,[[3750.47,-2000.74,54.55,257.457,-79.1836],[3731.88,-1904.15,54.1667,255.678,-79.0248],[3712.34,-1804.13,53.7667,253.795,-78.8556],[3691.82,-1700.79,53.35,251.805,-78.6751],[3671.97,-1602.43,52.95,249.868,-78.4978],[3651.13,-1500.84,52.5333,247.82,-78.3087],[3630.12,-1400.16,52.1167,245.743,-78.1149],[3608.96,-1300.41,51.7,243.637,-77.9161],[3587.63,-1201.6,51.2833,241.501,-77.7124],[3566.14,-1103.74,50.8667,239.335,-77.5034],[3543.61,-1002.99,50.4333,237.051,-77.2803],[3520.91,-903.298,50,234.735,-77.051],[3497.15,-800.916,49.55,232.296,-76.8061],[3474.09,-703.44,49.1167,229.914,-76.5634],[3449.95,-603.39,48.6667,227.408,-76.304],[3424.73,-500.917,48.2,224.772,-76.0267],[3400.22,-403.36,47.75,222.195,-75.7508],[3374.6,-303.511,47.2833,219.487,-75.4556],[3347.85,-201.536,46.8,216.644,-75.1395],[3320.89,-101.049,46.3167,213.762,-74.8124],[3293.72,-2.0721,45.8333,210.842,-74.4736],[3265.4,98.7052,45.3333,207.782,-74.1102],[3236.84,197.818,44.8333,204.682,-73.7329],[3207.11,298.459,44.3167,201.437,-73.3275],[3177.14,397.269,43.8,198.152,-72.9055],[3145.95,497.317,43.2667,194.718,-72.4513],[3113.53,598.386,42.7167,191.134,-71.9618],[3080.86,697.286,42.1667,187.506,-71.4494],[3045.92,799.772,41.5833,183.614,-70.8791],[3010.7,899.743,41,179.677,-70.2791],[2974.18,999.906,40.4,175.584,-69.6286],[2936.34,1099.99,39.7833,171.334,-68.9216],[2897.15,1199.73,39.15,166.926,-68.1518],[2856.61,1298.81,38.5,162.362,-67.3112],[2813.65,1399.35,37.8167,157.525,-66.367],[2769.26,1498.43,37.1167,152.536,-65.329],[2722.38,1597.91,36.3833,147.28,-64.1563],[2671.88,1699.23,35.6,141.645,-62.7957],[2618.77,1799.33,34.7833,135.762,-61.2436],[2561.92,1899.31,33.9167,129.531,-59.4267],[2500.15,1999.65,32.9833,122.865,-57.2453]]], + [71,2608.1,[[3592.09,-2002.75,54.8,257.797,-79.7002],[3573.58,-1901.67,54.4,255.938,-79.5426],[3554.93,-1801.37,54,254.053,-79.3813],[3536.14,-1701.88,53.6,252.14,-79.2164],[3517.2,-1603.19,53.2,250.2,-79.0477],[3497.31,-1501.27,52.7833,248.15,-78.8677],[3477.28,-1400.26,52.3667,246.071,-78.6833],[3457.08,-1300.17,51.95,243.961,-78.4942],[3436.73,-1201.01,51.5333,241.821,-78.3004],[3416.22,-1102.81,51.1167,239.651,-78.1015],[3394.73,-1001.69,50.6833,237.363,-77.8891],[3373.07,-901.635,50.25,235.042,-77.6709],[3351.24,-802.651,49.8167,232.688,-77.4466],[3328.4,-701.013,49.3667,230.209,-77.2069],[3305.37,-600.567,48.9167,227.695,-76.9601],[3282.17,-501.332,48.4667,225.147,-76.7057],[3258.79,-403.326,48.0167,222.563,-76.4434],[3234.35,-303.007,47.55,219.847,-76.1627],[3208.84,-200.539,47.0667,216.995,-75.8622],[3184.02,-103.012,46.6,214.204,-75.562],[3157.21,-0.0742691,46.1,211.173,-75.2289],[3131.09,97.8786,45.6167,208.204,-74.8951],[3103.86,197.578,45.1167,205.092,-74.5367],[3075.5,298.832,44.6,201.834,-74.1516],[3046.91,398.262,44.0833,198.533,-73.7507],[3017.17,498.956,43.55,195.083,-73.3191],[2987.19,597.646,43.0167,191.589,-72.8683],[2956.03,697.291,42.4667,187.942,-72.382],[2923.67,797.66,41.9,184.14,-71.8565],[2890.09,898.511,41.3167,180.179,-71.2878],[2855.27,999.589,40.7167,176.059,-70.6709],[2820.17,1097.94,40.1167,171.894,-70.0191],[2782.82,1198.74,39.4833,167.452,-69.2899],[2744.17,1298.93,38.8333,162.848,-68.4935],[2704.21,1398.21,38.1667,158.084,-67.6212],[2661.91,1498.6,37.4667,153.043,-66.6386],[2617.22,1599.47,36.7333,147.725,-65.5279],[2571.14,1698.01,35.9833,142.258,-64.2955],[2520.54,1799.93,35.1667,136.286,-62.8287],[2467.41,1899.94,34.3167,130.068,-61.1443],[2410.68,1999,33.4167,123.508,-59.1593]]], + [72,2637.66,[[3429.67,-2003.41,55.0333,258.097,-80.2165],[3412.06,-1902.05,54.6333,256.237,-80.0668],[3394.31,-1801.47,54.2333,254.35,-79.9138],[3376.43,-1701.68,53.8333,252.435,-79.7573],[3358.41,-1602.71,53.4333,250.493,-79.5971],[3339.49,-1500.48,53.0167,248.44,-79.4262],[3321.19,-1403.19,52.6167,246.441,-79.2582],[3301.98,-1302.75,52.2,244.329,-79.0789],[3282.62,-1203.24,51.7833,242.187,-78.8951],[3262.33,-1100.75,51.35,239.927,-78.6988],[3242.67,-1003.18,50.9333,237.722,-78.505],[3222.06,-902.743,50.5,235.397,-78.2981],[3201.29,-803.375,50.0667,233.039,-78.0853],[3179.56,-701.333,49.6167,230.555,-77.858],[3157.66,-600.479,49.1667,228.036,-77.6238],[3135.58,-500.832,48.7167,225.481,-77.3826],[3113.33,-402.408,48.2667,222.89,-77.1338],[3090.08,-301.652,47.8,220.166,-76.8675],[3066.65,-202.252,47.3333,217.405,-76.5924],[3042.19,-100.754,46.85,214.505,-76.2977],[3017.54,-0.754358,46.3667,211.565,-75.9924],[2992.7,97.723,45.8833,208.586,-75.676],[2966.8,197.971,45.3833,205.462,-75.3363],[2939.82,299.797,44.8667,202.191,-74.9714],[2912.63,399.805,44.35,198.877,-74.5914],[2885.22,497.967,43.8333,195.519,-74.1953],[2856.72,597.329,43.3,192.009,-73.7685],[2827.08,697.675,42.75,188.344,-73.308],[2796.31,798.773,42.1833,184.52,-72.8104],[2765.29,897.514,41.6167,180.65,-72.2874],[2732.18,999.455,41.0167,176.504,-71.7039],[2698.8,1098.67,40.4167,172.31,-71.0872],[2664.23,1197.77,39.8,167.953,-70.4158],[2627.49,1299.01,39.15,163.313,-69.6631],[2589.5,1399.37,38.4833,158.507,-68.8384],[2550.24,1498.55,37.8,153.537,-67.9319],[2508.74,1598.46,37.0833,148.284,-66.9074],[2464.94,1698.48,36.3333,142.751,-65.7446],[2417.83,1799.95,35.5333,136.821,-64.389],[2368.34,1899.85,34.7,130.628,-62.8328],[2315.43,1999.18,33.8167,124.07,-60.998]]], + [73,2665.87,[[3263.3,-2002.77,55.25,258.359,-80.733],[3246.59,-1901.15,54.85,256.497,-80.5913],[3229.76,-1800.3,54.45,254.608,-80.4464],[3212.79,-1700.25,54.05,252.691,-80.2983],[3195.7,-1601.01,53.65,250.746,-80.1466],[3178.47,-1502.59,53.25,248.773,-79.9914],[3160.39,-1400.94,52.8333,246.688,-79.8258],[3142.16,-1300.21,52.4167,244.572,-79.656],[3123.8,-1200.41,52,242.426,-79.4819],[3105.29,-1101.55,51.5833,240.249,-79.3033],[3086.64,-1003.65,51.1667,238.041,-79.1201],[3067.1,-902.861,50.7333,235.712,-78.9243],[3047.41,-803.137,50.3,233.349,-78.7231],[3026.79,-700.722,49.85,230.86,-78.508],[3006.79,-603.219,49.4167,228.429,-78.2949],[2985.86,-503.145,48.9667,225.869,-78.0668],[2963.98,-400.653,48.5,223.176,-77.8229],[2942.72,-303.083,48.05,220.543,-77.5802],[2920.5,-203.226,47.5833,217.774,-77.3202],[2897.31,-101.25,47.1,214.866,-77.0416],[2873.93,-0.767592,46.6167,211.918,-76.7531],[2850.37,98.1978,46.1333,208.928,-76.454],[2825.81,198.956,45.6333,205.794,-76.133],[2801.06,298.041,45.1333,202.617,-75.7994],[2775.28,398.646,44.6167,199.29,-75.4406],[2749.3,497.411,44.1,195.918,-75.0666],[2722.27,597.403,43.5667,192.393,-74.6636],[2694.17,698.404,43.0167,188.71,-74.2287],[2665.85,797.225,42.4667,184.98,-73.7729],[2635.58,899.616,41.8833,180.974,-73.2647],[2605.06,999.479,41.3,176.919,-72.729],[2573.43,1099.52,40.7,172.699,-72.1471],[2540.65,1199.46,40.0833,168.311,-71.5134],[2506.72,1299.03,39.45,163.755,-70.8216],[2471.61,1397.94,38.8,159.032,-70.0641],[2434.41,1498.26,38.1167,154.017,-69.2106],[2395.08,1599.41,37.4,148.712,-68.2455],[2354.49,1698.52,36.6667,143.242,-67.1749],[2310.79,1799.41,35.8833,137.362,-65.9266],[2264.84,1899.04,35.0667,131.206,-64.4938],[2215.67,1998.47,34.2,124.664,-62.8044]]], + [74,2692.69,[[3093.11,-2000.85,55.45,258.583,-81.2504],[3077.98,-1903.22,55.0667,256.797,-81.1223],[3062.07,-1802.1,54.6667,254.906,-80.9857],[3046.04,-1701.78,54.2667,252.988,-80.846],[3029.88,-1602.26,53.8667,251.041,-80.703],[3013.6,-1503.56,53.4667,249.066,-80.5566],[2996.5,-1401.62,53.05,246.979,-80.4005],[2979.28,-1300.59,52.6333,244.861,-80.2404],[2961.92,-1200.49,52.2167,242.711,-80.0762],[2944.43,-1101.32,51.8,240.531,-79.9078],[2926.8,-1003.11,51.3833,238.319,-79.735],[2908.33,-902.001,50.95,235.986,-79.5504],[2889.71,-801.95,50.5167,233.618,-79.3606],[2870.95,-702.976,50.0833,231.217,-79.1654],[2851.32,-601.355,49.6333,228.687,-78.9568],[2831.54,-500.931,49.1833,226.121,-78.7417],[2811.6,-401.723,48.7333,223.518,-78.52],[2790.76,-300.144,48.2667,220.78,-78.2827],[2770.51,-203.47,47.8167,218.103,-78.0464],[2748.59,-101.051,47.3333,215.188,-77.7839],[2726.5,-0.121441,46.85,212.23,-77.5121],[2704.24,99.2958,46.3667,209.231,-77.2303],[2681.8,197.178,45.8833,206.191,-76.938],[2658.41,296.797,45.3833,203.004,-76.624],[2634.06,397.958,44.8667,199.665,-76.2863],[2609.51,497.286,44.35,196.281,-75.9343],[2583.97,597.864,43.8167,192.741,-75.5549],[2557.42,699.477,43.2667,189.041,-75.1454],[2530.66,798.915,42.7167,185.293,-74.7162],[2502.88,899.058,42.15,181.381,-74.2516],[2474.05,999.661,41.5667,177.304,-73.7478],[2445,1097.71,40.9833,173.177,-73.2161],[2414.04,1198.53,40.3667,168.762,-72.6208],[2381.99,1299.01,39.7333,164.175,-71.9707],[2348.83,1398.86,39.0833,159.415,-71.2587],[2314.55,1497.76,38.4167,154.482,-70.4765],[2278.27,1597.74,37.7167,149.253,-69.5922],[2239.95,1698.15,36.9833,143.728,-68.5884],[2199.56,1798.32,36.2167,137.908,-67.4433],[2156.18,1899.55,35.4,131.671,-66.1007],[2110.65,1998.81,34.55,125.158,-64.5481]]], + [75,2718.08,[[2919.9,-2001.96,55.65,258.846,-81.7744],[2905.66,-1904.09,55.2667,257.059,-81.654],[2890.68,-1802.73,54.8667,255.167,-81.5257],[2875.58,-1702.16,54.4667,253.247,-81.3943],[2860.37,-1602.39,54.0667,251.298,-81.26],[2845.04,-1503.43,53.6667,249.321,-81.1225],[2828.94,-1401.22,53.25,247.231,-80.9758],[2813.38,-1303.95,52.85,245.195,-80.8314],[2797.04,-1203.54,52.4333,243.044,-80.6773],[2779.91,-1100.1,52,240.773,-80.5128],[2763.31,-1001.61,51.5833,238.558,-80.3505],[2745.92,-900.2,51.15,236.22,-80.177],[2729.07,-803.69,50.7333,233.94,-80.0056],[2710.73,-700.575,50.2833,231.441,-79.8152],[2692.93,-602.391,49.85,229.001,-79.6265],[2674.31,-501.603,49.4,226.429,-79.4246],[2655.54,-402.028,48.95,223.821,-79.2165],[2635.92,-300.064,48.4833,221.077,-78.9937],[2616.86,-203.013,48.0333,218.393,-78.7718],[2596.22,-100.187,47.55,215.47,-78.5254],[2576.15,-2.31504,47.0833,212.607,-78.2791],[2555.19,97.5708,46.6,209.6,-78.0148],[2533.35,199.291,46.1,206.446,-77.7311],[2511.33,299.348,45.6,203.247,-77.4362],[2489.14,397.719,45.1,200.004,-77.1294],[2466.04,497.568,44.5833,196.607,-76.7992],[2442,598.692,44.05,193.053,-76.4433],[2417.77,697.807,43.5167,189.451,-76.0711],[2392.6,797.884,42.9667,185.686,-75.6689],[2366.45,898.693,42.4,181.757,-75.2335],[2339.32,999.988,41.8167,177.659,-74.7614],[2311.98,1098.73,41.2333,173.508,-74.2629],[2283.64,1197.6,40.6333,169.187,-73.7203],[2253.48,1298.94,40,164.571,-73.1117],[2222.28,1399.67,39.35,159.778,-72.4449],[2190.03,1499.5,38.6833,154.807,-71.7122],[2156.71,1598.09,38,149.659,-70.9039],[2120.66,1699.63,37.2667,144.081,-69.9644],[2083.49,1798.85,36.5167,138.327,-68.9164],[2043.52,1899.44,35.7167,132.145,-67.6875],[2001.54,1998.38,34.8833,125.672,-66.267]]], + [76,2742.01,[[2743.1,-2001.88,55.8333,259.072,-82.2996],[2729.75,-1903.8,55.45,257.283,-82.1871],[2715.7,-1802.22,55.05,255.389,-82.0669],[2701.55,-1701.42,54.65,253.467,-81.9441],[2687.29,-1601.42,54.25,251.516,-81.8183],[2672.92,-1502.22,53.85,249.537,-81.6896],[2658.44,-1403.85,53.45,247.528,-81.5579],[2643.25,-1302.27,53.0333,245.405,-81.4173],[2627.93,-1201.61,52.6167,243.251,-81.2731],[2612.49,-1101.88,52.2,241.064,-81.1252],[2596.94,-1003.09,51.7833,238.846,-80.9733],[2580.64,-901.375,51.35,236.505,-80.8112],[2564.22,-800.715,50.9167,234.13,-80.6444],[2547.66,-701.126,50.4833,231.719,-80.473],[2530.98,-602.625,50.05,229.274,-80.2965],[2513.53,-501.504,49.6,226.698,-80.1078],[2495.94,-401.591,49.15,224.084,-79.9132],[2478.21,-302.906,48.7,221.433,-79.7124],[2459.69,-201.881,48.2333,218.644,-79.4974],[2441.02,-102.215,47.7667,215.814,-79.275],[2421.53,-0.445871,47.2833,212.841,-79.0366],[2401.9,99.8204,46.8,209.826,-78.7895],[2382.11,198.561,46.3167,206.767,-78.5332],[2361.48,299.075,45.8167,203.559,-78.2577],[2340.69,397.908,45.3167,200.306,-77.9712],[2319.04,498.239,44.8,196.897,-77.6627],[2296.51,599.866,44.2667,193.33,-77.3301],[2273.81,699.489,43.7333,189.713,-76.9823],[2250.94,797.079,43.2,186.047,-76.6181],[2226.44,898.507,42.6333,182.1,-76.2118],[2201.76,997.57,42.0667,178.101,-75.784],[2175.41,1099.84,41.4667,173.811,-75.3058],[2148.86,1199.38,40.8667,169.465,-74.7991],[2121.35,1298.8,40.25,164.943,-74.2461],[2092.88,1397.8,39.6167,160.243,-73.6408],[2062.67,1498.58,38.95,155.238,-72.9584],[2031.46,1598.15,38.2667,150.05,-72.2055],[1998.47,1698.48,37.55,144.552,-71.3507],[1963.66,1798.91,36.8,138.744,-70.3755],[1927.02,1898.73,36.0167,132.626,-69.2562],[1887.71,1999.16,35.1833,126.073,-67.9352]]], + [77,2764.45,[[2562.88,-2000.6,56,259.26,-82.8267],[2550.42,-1902.33,55.6167,257.47,-82.7218],[2537.33,-1800.54,55.2167,255.574,-82.61],[2524.68,-1703.73,54.8333,253.731,-82.5004],[2511.39,-1603.49,54.4333,251.779,-82.3834],[2497.99,-1504.06,54.0333,249.798,-82.2637],[2483.93,-1401.35,53.6167,247.703,-82.136],[2470.32,-1303.6,53.2167,245.663,-82.0103],[2456.04,-1202.68,52.8,243.506,-81.8761],[2441.65,-1102.68,52.3833,241.317,-81.7385],[2427.15,-1003.64,51.9667,239.096,-81.5973],[2411.95,-901.64,51.5333,236.752,-81.4464],[2396.63,-800.698,51.1,234.372,-81.2912],[2381.2,-700.824,50.6667,231.958,-81.1317],[2365.65,-602.034,50.2333,229.508,-80.9675],[2349.37,-500.611,49.7833,226.927,-80.7918],[2332.97,-400.393,49.3333,224.308,-80.6108],[2316.44,-301.399,48.8833,221.651,-80.4239],[2299.17,-200.051,48.4167,218.855,-80.2238],[2281.76,-100.059,47.95,216.018,-80.0169],[2264.22,-1.44371,47.4833,213.141,-79.8028],[2245.92,99.2197,47,210.118,-79.5731],[2227.47,198.361,46.5167,207.052,-79.3348],[2208.24,299.295,46.0167,203.834,-79.0787],[2188.86,398.551,45.5167,200.571,-78.8123],[2168.67,499.325,45,197.151,-78.5254],[2148.33,598.252,44.4833,193.683,-78.2261],[2127.18,698.404,43.95,190.054,-77.9031],[2105.19,799.562,43.4,186.259,-77.554],[2083.03,898.529,42.85,182.412,-77.1874],[2060.02,998.171,42.2833,178.394,-76.79],[2036.15,1098.24,41.7,174.204,-76.3584],[2011.4,1198.48,41.1,169.837,-75.8884],[1985.77,1298.63,40.4833,165.291,-75.3752],[1959.23,1398.39,39.85,160.562,-74.8134],[1931.08,1499.97,39.1833,155.524,-74.1799],[1902.71,1597.97,38.5167,150.427,-73.4984],[1871.97,1699.28,37.8,144.886,-72.7057],[1840.26,1798.54,37.0667,139.156,-71.8219],[1806.12,1899.56,36.2833,132.978,-70.7851],[1770.23,1999.31,35.4667,126.484,-69.5862]]], + [78,2785.37,[[2379.9,-2002.46,56.1667,259.49,-83.3603],[2368.35,-1903.99,55.7833,257.698,-83.2632],[2356.22,-1801.99,55.3833,255.802,-83.1598],[2343.98,-1700.78,54.9833,253.876,-83.0539],[2331.66,-1600.36,54.5833,251.921,-82.9456],[2319.24,-1500.74,54.1833,249.938,-82.8347],[2306.72,-1401.94,53.7833,247.924,-82.7212],[2294.11,-1303.97,53.3833,245.882,-82.6049],[2280.88,-1202.81,52.9667,243.723,-82.4808],[2267.54,-1102.58,52.55,241.531,-82.3534],[2254.1,-1003.29,52.1333,239.307,-82.2228],[2240.01,-901.042,51.7,236.959,-82.0832],[2226.36,-803.718,51.2833,234.669,-81.9452],[2212.06,-703.546,50.85,232.252,-81.7978],[2197.1,-600.667,50.4,229.704,-81.6401],[2182.57,-502.717,49.9667,227.215,-81.4837],[2167.37,-402.179,49.5167,224.591,-81.3163],[2152.06,-302.862,49.0667,221.93,-81.1436],[2136.05,-201.176,48.6,219.129,-80.9587],[2119.92,-100.842,48.1333,216.286,-80.7674],[2103.67,-1.88122,47.6667,213.403,-80.5695],[2086.71,99.1438,47.1833,210.373,-80.3571],[2069.61,198.651,46.7,207.299,-80.1368],[2051.79,299.967,46.2,204.073,-79.9],[2033.83,399.608,45.7,200.8,-79.6537],[2015.73,497.55,45.2,197.481,-79.3973],[1996.89,596.943,44.6833,194.002,-79.1208],[1977.28,697.582,44.15,190.361,-78.8225],[1956.91,799.246,43.6,186.553,-78.5001],[1936.38,898.726,43.05,182.691,-78.1616],[1915.06,998.9,42.4833,178.658,-77.7945],[1892.94,1099.53,41.9,174.448,-77.3957],[1870.65,1197.58,41.3167,170.183,-76.9738],[1846.91,1298.4,40.7,165.614,-76.5003],[1822.33,1398.86,40.0667,160.86,-75.9819],[1796.9,1498.67,39.4167,155.918,-75.4122],[1769.96,1599.94,38.7333,150.659,-74.7678],[1742.15,1699.74,38.0333,145.208,-74.0533],[1712.78,1799.95,37.3,139.432,-73.2381],[1681.83,1899.88,36.5333,133.332,-72.3026],[1649.28,1998.81,35.7333,126.906,-71.2215]]], + [79,2804.74,[[2193.76,-2003.21,56.3167,259.683,-83.8958],[2182.67,-1900.29,55.9167,257.812,-83.8027],[2171.96,-1802.38,55.5333,255.993,-83.7116],[2160.7,-1700.98,55.1333,254.066,-83.6143],[2149.36,-1600.36,54.7333,252.109,-83.5147],[2137.93,-1500.55,54.3333,250.124,-83.4128],[2126.41,-1401.55,53.9333,248.109,-83.3085],[2114.8,-1303.38,53.5333,246.064,-83.2017],[2102.62,-1202.02,53.1167,243.902,-83.0876],[2090.35,-1101.58,52.7,241.708,-82.9706],[2077.98,-1002.08,52.2833,239.481,-82.8505],[2065.51,-903.529,51.8667,237.221,-82.7272],[2052.45,-802.066,51.4333,234.835,-82.5954],[2039.29,-701.666,51,232.414,-82.4598],[2026.02,-602.346,50.5667,229.957,-82.3203],[2012.14,-500.365,50.1167,227.367,-82.1711],[1998.67,-403.295,49.6833,224.837,-82.0231],[1984.06,-300.021,49.2167,222.072,-81.8585],[1969.85,-201.695,48.7667,219.365,-81.6947],[1955.01,-101.052,48.3,216.517,-81.5191],[1940.05,-1.77947,47.8333,213.628,-81.3373],[1924.44,99.572,47.35,210.591,-81.1423],[1908.71,199.409,46.8667,207.51,-80.94],[1892.86,297.707,46.3833,204.384,-80.73],[1876.34,397.753,45.8833,201.103,-80.504],[1859.13,499.352,45.3667,197.664,-80.2608],[1841.79,599.112,44.85,194.175,-80.0069],[1824.32,697.006,44.3333,190.636,-79.7416],[1805.57,799.134,43.7833,186.816,-79.4459],[1786.68,899.082,43.2333,182.94,-79.1352],[1767.07,999.744,42.6667,178.891,-78.7984],[1747.3,1098.02,42.1,174.786,-78.4432],[1726.21,1199.44,41.5,170.379,-78.0452],[1704.96,1298.1,40.9,165.913,-77.6227],[1682.35,1399.22,40.2667,161.135,-77.1474],[1658.96,1499.7,39.6167,156.167,-76.6251],[1634.78,1599.24,38.95,151.005,-76.049],[1609.2,1699.87,38.25,145.518,-75.3948],[1582.8,1798.71,37.5333,139.834,-74.6658],[1554.34,1899.68,36.7667,133.684,-73.8102],[1524.4,1999.7,35.9667,127.2,-72.8209]]], + [80,2822.52,[[2004.63,-2002.87,56.45,259.841,-84.4338],[1994.94,-1904.07,56.0667,258.047,-84.3525],[1984.74,-1801.72,55.6667,256.148,-84.2659],[1974.47,-1700.15,55.2667,254.219,-84.1772],[1964.55,-1603.55,54.8833,252.343,-84.0903],[1954.12,-1503.54,54.4833,250.357,-83.9975],[1943.17,-1400.22,54.0667,248.256,-83.8985],[1932.57,-1301.88,53.6667,246.209,-83.8011],[1921.45,-1200.33,53.25,244.044,-83.6971],[1910.7,-1103.71,52.85,241.935,-83.5947],[1898.96,-1000.02,52.4167,239.617,-83.4809],[1887.58,-901.28,52,237.353,-83.3684],[1876.12,-803.51,51.5833,235.057,-83.253],[1864.11,-702.871,51.15,232.633,-83.1295],[1852.01,-603.307,50.7167,230.173,-83.0025],[1839.34,-501.072,50.2667,227.58,-82.8666],[1826.57,-400.033,49.8167,224.947,-82.7265],[1813.71,-300.209,49.3667,222.276,-82.5819],[1800.75,-201.62,48.9167,219.564,-82.4327],[1787.21,-100.701,48.45,216.711,-82.2726],[1773.56,-1.15036,47.9833,213.816,-82.1071],[1759.81,97.0125,47.5167,210.878,-81.9357],[1745.45,197.196,47.0333,207.791,-81.7517],[1730.49,299.219,46.5333,204.551,-81.5538],[1715.41,399.575,46.0333,201.262,-81.348],[1700.22,498.238,45.5333,197.925,-81.1336],[1684.4,598.385,45.0167,194.427,-80.9026],[1667.94,699.808,44.4833,190.763,-80.6532],[1651.36,799.217,43.95,187.046,-80.392],[1634.12,899.589,43.4,183.158,-80.1093],[1616.76,997.753,42.85,179.215,-79.812],[1598.19,1099.42,42.2667,174.974,-79.4793],[1579.49,1198.52,41.6833,170.673,-79.1273],[1560.1,1297.74,41.0833,166.188,-78.7432],[1539.47,1399.45,40.45,161.389,-78.311],[1518.69,1497.99,39.8167,156.524,-77.8486],[1496.64,1598.26,39.15,151.336,-77.3255],[1473.31,1699.67,38.45,145.817,-76.7314],[1449.23,1799.3,37.7333,140.096,-76.0691],[1423.84,1898.97,36.9833,134.037,-75.3092],[1397.11,1997.97,36.2,127.636,-74.4312]]], + [81,2838.7,[[1812.73,-2001.45,56.5667,259.964,-84.9747],[1803.97,-1902.51,56.1833,258.168,-84.9014],[1794.76,-1800.02,55.7833,256.267,-84.8231],[1785.86,-1702.53,55.4,254.417,-84.7464],[1776.51,-1601.57,55,252.459,-84.6646],[1767.09,-1501.41,54.6,250.47,-84.5808],[1757.59,-1402.06,54.2,248.452,-84.495],[1748.02,-1303.53,53.8,246.403,-84.4072],[1737.98,-1201.79,53.3833,244.237,-84.3134],[1727.86,-1100.97,52.9667,242.038,-84.2172],[1717.66,-1001.08,52.55,239.806,-84.1184],[1707.38,-902.15,52.1333,237.54,-84.017],[1696.61,-800.28,51.7,235.149,-83.9087],[1686.18,-703.327,51.2833,232.815,-83.8016],[1675.25,-603.55,50.85,230.352,-83.687],[1663.81,-501.09,50.4,227.755,-83.5645],[1652.71,-403.553,49.9667,225.217,-83.4428],[1641.09,-303.455,49.5167,222.543,-83.3126],[1628.95,-200.95,49.05,219.727,-83.173],[1617.16,-103.379,48.6,216.972,-83.034],[1604.83,-3.53371,48.1333,214.073,-82.8848],[1591.97,98.417,47.65,211.025,-82.7248],[1579,198.859,47.1667,207.931,-82.5587],[1565.94,297.769,46.6833,204.792,-82.3863],[1552.32,398.454,46.1833,201.496,-82.2009],[1538.6,497.45,45.6833,198.152,-82.0078],[1524.31,597.943,45.1667,194.646,-81.7996],[1509.45,699.729,44.6333,190.973,-81.5748],[1494.47,799.502,44.1,187.246,-81.3395],[1479.38,897.234,43.5667,183.466,-81.0926],[1463.22,998.803,43,179.391,-80.8167],[1446.93,1098,42.4333,175.257,-80.5256],[1430.04,1197.59,41.85,170.942,-80.2087],[1412.53,1297.32,41.25,166.44,-79.8629],[1393.91,1399.56,40.6167,161.621,-79.4739],[1375.14,1498.66,39.9833,156.735,-79.0575],[1355.23,1599.51,39.3167,151.521,-78.5863],[1334.66,1699.15,38.6333,146.105,-78.0643],[1312.92,1799.52,37.9167,140.35,-77.4686],[1290,1899.97,37.1667,134.251,-76.7848],[1265.86,1999.79,36.3833,127.803,-75.9944]]], + [82,2853.25,[[1618.6,-2003.29,56.6833,260.129,-85.5215],[1610.79,-1904.21,56.3,258.333,-85.4562],[1602.57,-1801.57,55.9,256.431,-85.3864],[1594.64,-1703.93,55.5167,254.581,-85.3181],[1586.29,-1602.81,55.1167,252.621,-85.2452],[1577.89,-1502.5,54.7167,250.631,-85.1706],[1569.42,-1402.99,54.3167,248.611,-85.0942],[1560.52,-1300.21,53.9,246.475,-85.0126],[1551.92,-1202.4,53.5,244.394,-84.9324],[1542.9,-1101.41,53.0833,242.193,-84.8466],[1533.8,-1001.35,52.6667,239.959,-84.7587],[1524.63,-902.247,52.25,237.691,-84.6684],[1515.02,-800.197,51.8167,235.297,-84.5718],[1505.72,-703.067,51.4,232.96,-84.4764],[1495.96,-603.105,50.9667,230.494,-84.3743],[1485.76,-500.451,50.5167,227.894,-84.2651],[1475.85,-402.725,50.0833,225.353,-84.1568],[1465.49,-302.429,49.6333,222.674,-84.0407],[1455.05,-203.362,49.1833,219.956,-83.9208],[1444.14,-101.943,48.7167,217.094,-83.7925],[1433.14,-1.88683,48.25,214.19,-83.6596],[1422.07,96.7868,47.7833,211.242,-83.522],[1410.5,197.505,47.3,208.143,-83.3742],[1398.85,296.693,46.8167,204.999,-83.2207],[1386.71,397.669,46.3167,201.697,-83.0557],[1374.47,496.959,45.8167,198.347,-82.8838],[1361.73,597.759,45.3,194.833,-82.6984],[1348.47,699.865,44.7667,191.151,-82.4984],[1335.11,799.962,44.2333,187.415,-82.2888],[1321.65,898.02,43.7,183.624,-82.069],[1307.24,999.939,43.1333,179.538,-81.8233],[1292.72,1099.49,42.5667,175.391,-81.5641],[1277.65,1199.44,41.9833,171.061,-81.282],[1262.03,1299.56,41.3833,166.543,-80.974],[1245.86,1399.55,40.7667,161.832,-80.6367],[1229.12,1499.13,40.1333,156.926,-80.2664],[1211.81,1598.02,39.4833,151.821,-79.8581],[1193.48,1698.29,38.8,146.381,-79.3944],[1174.1,1799.34,38.0833,140.597,-78.8652],[1154.11,1898.3,37.35,134.6,-78.2718],[1132.59,1998.98,36.5667,128.112,-77.5706]]], + [83,2866.14,[[1422.04,-2004.11,56.7833,260.26,-86.0711],[1414.88,-1900.61,56.3833,258.385,-86.0113],[1407.97,-1802.14,56,256.56,-85.9527],[1400.69,-1700.14,55.6,254.628,-85.89],[1393.67,-1603.13,55.2167,252.748,-85.8287],[1386.29,-1502.69,54.8167,250.757,-85.7633],[1378.86,-1403.05,54.4167,248.736,-85.6963],[1371.05,-1300.13,54,246.599,-85.6247],[1363.5,-1202.18,53.6,244.515,-85.5543],[1355.57,-1101.05,53.1833,242.313,-85.4791],[1347.58,-1000.85,52.7667,240.076,-85.402],[1339.54,-901.592,52.35,237.806,-85.3227],[1331.43,-803.3,51.9333,235.502,-85.2414],[1322.93,-702.11,51.5,233.07,-85.1544],[1314.37,-601.992,51.0667,230.601,-85.0648],[1305.74,-502.961,50.6333,228.095,-84.9727],[1296.71,-401.289,50.1833,225.453,-84.874],[1287.61,-300.826,49.7333,222.771,-84.7722],[1278.44,-201.59,49.2833,220.048,-84.6671],[1269.21,-103.6,48.8333,217.285,-84.5585],[1259.56,-3.31601,48.3667,214.377,-84.442],[1249.48,99.0937,47.8833,211.319,-84.3171],[1239.33,199.999,47.4,208.215,-84.1875],[1229.1,299.378,46.9167,205.064,-84.0528],[1218.8,397.206,46.4333,201.866,-83.9129],[1208.05,496.752,45.9333,198.509,-83.7622],[1196.87,597.82,45.4167,194.989,-83.5998],[1185.6,697.035,44.9,191.416,-83.4301],[1173.87,797.477,44.3667,187.673,-83.2467],[1161.69,898.926,43.8167,183.755,-83.0482],[1149.41,998.177,43.2667,179.779,-82.8393],[1136.66,1098.1,42.7,175.622,-82.6124],[1123.44,1198.45,42.1167,171.281,-82.3654],[1109.74,1298.97,41.5167,166.749,-82.0958],[1095.54,1399.39,40.9,162.024,-81.8005],[1080.85,1499.42,40.2667,157.101,-81.4762],[1065.66,1598.76,39.6167,151.976,-81.1187],[1049.57,1699.51,38.9333,146.512,-80.7125],[1032.95,1798.76,38.2333,140.836,-80.26],[1015.41,1898.35,37.5,134.81,-79.7409],[996.534,1999.71,36.7167,128.285,-79.1275]]], + [84,2877.36,[[1223.28,-2003.92,56.8667,260.357,-86.6235],[1217.12,-1900.31,56.4667,258.481,-86.5721],[1211.17,-1801.74,56.0833,256.655,-86.5217],[1205.18,-1703.88,55.7,254.803,-86.4702],[1198.88,-1602.53,55.3,252.841,-86.4153],[1192.54,-1501.98,54.9,250.848,-86.3591],[1186.14,-1402.23,54.5,248.826,-86.3015],[1179.7,-1303.3,54.1,246.773,-86.2425],[1172.94,-1201.13,53.6833,244.602,-86.1795],[1166.39,-1103.92,53.2833,242.486,-86.1175],[1159.53,-1003.56,52.8667,240.249,-86.0513],[1152.33,-900.196,52.4333,237.886,-85.9805],[1145.36,-801.784,52.0167,235.58,-85.9106],[1138.05,-700.468,51.5833,233.145,-85.8358],[1130.69,-600.222,51.15,230.673,-85.7589],[1123.27,-501.062,50.7167,228.164,-85.6796],[1115.79,-403.005,50.2833,225.617,-85.598],[1107.97,-302.361,49.8333,222.932,-85.5106],[1100.09,-202.942,49.3833,220.207,-85.4204],[1091.85,-101.155,48.9167,217.338,-85.3237],[1083.55,-0.726958,48.45,214.426,-85.2236],[1075.19,98.3223,47.9833,211.469,-85.12],[1066.46,199.433,47.5,208.36,-85.0087],[1057.67,299.018,47.0167,205.205,-84.893],[1048.81,397.056,46.5333,202.003,-84.7729],[1039.57,496.82,46.0333,198.64,-84.6436],[1029.96,598.116,45.5167,195.114,-84.5041],[1020.27,697.561,45,191.534,-84.3584],[1010.19,798.243,44.4667,187.784,-84.2009],[999.713,899.942,43.9167,183.857,-84.0304],[989.157,999.445,43.3667,179.872,-83.8511],[978.198,1099.63,42.8,175.705,-83.6562],[967.157,1197.42,42.2333,171.477,-83.4502],[955.377,1298.3,41.6333,166.934,-83.219],[943.176,1399.09,41.0167,162.196,-82.9658],[930.549,1499.5,40.3833,157.258,-82.6876],[917.49,1599.24,39.7333,152.116,-82.3808],[903.994,1698,39.0667,146.767,-82.0411],[889.715,1797.78,38.3667,141.07,-81.6536],[874.641,1897.94,37.6333,135.017,-81.2089],[858.415,1999.91,36.85,128.461,-80.6831]]], + [85,2886.89,[[1022.57,-2002.71,56.9333,260.42,-87.179],[1017.63,-1903.34,56.55,258.622,-87.1377],[1012.45,-1800.38,56.15,256.716,-87.0939],[1007.44,-1702.44,55.7667,254.863,-87.0509],[1002.18,-1601.01,55.3667,252.899,-87.005],[996.874,-1500.37,54.9667,250.905,-86.958],[991.528,-1400.54,54.5667,248.881,-86.91],[986.143,-1301.53,54.1667,246.827,-86.8606],[980.716,-1203.34,53.7667,244.741,-86.8101],[975.021,-1101.97,53.35,242.536,-86.7562],[969.281,-1001.52,52.9333,240.297,-86.7009],[963.499,-902.02,52.5167,238.023,-86.6441],[957.672,-803.476,52.1,235.716,-86.5857],[951.566,-702.022,51.6667,233.28,-86.5233],[945.413,-601.636,51.2333,230.806,-86.4591],[939.214,-502.335,50.8,228.295,-86.3929],[932.726,-400.38,50.35,225.648,-86.3222],[926.432,-303.341,49.9167,223.06,-86.2519],[919.601,-200.107,49.45,220.231,-86.1738],[912.964,-101.825,49,217.461,-86.0958],[906.029,-1.23658,48.5333,214.546,-86.0123],[899.041,97.9747,48.0667,211.586,-85.9258],[891.748,199.255,47.5833,208.474,-85.8329],[884.399,299.011,47.1,205.315,-85.7364],[876.994,397.222,46.6167,202.108,-85.6361],[869.277,497.167,46.1167,198.741,-85.5282],[861.241,598.651,45.6,195.209,-85.4117],[853.143,698.287,45.0833,191.624,-85.2901],[844.72,799.167,44.55,187.866,-85.1586],[836.232,898.016,44.0167,184.053,-85.0206],[827.414,997.794,43.4667,180.061,-84.8711],[818.258,1098.27,42.9,175.887,-84.7086],[808.761,1199.19,42.3167,171.525,-84.5317],[799.191,1297.53,41.7333,167.099,-84.3441],[788.997,1398.64,41.1167,162.35,-84.1329],[778.447,1499.39,40.4833,157.399,-83.9009],[767.536,1599.48,39.8333,152.243,-83.645],[756.26,1698.59,39.1667,146.877,-83.3617],[744.33,1798.75,38.4667,141.161,-83.0384],[731.736,1899.31,37.7333,135.085,-82.6672],[718.468,1999.59,36.9667,128.642,-82.2382]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 906.029; +_maxRange = 5211.29; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg0.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg0.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg1.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg1.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg2.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg2.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg3.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg3.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg4.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/81mm/tables/ace_arty_81mm_genericBtab_LA_chg4.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/82mm/CfgAmmo.hpp new file mode 100644 index 0000000000..9c85cd0061 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/CfgAmmo.hpp @@ -0,0 +1,77 @@ +class ace_arty_howitzer_82mm_base : ace_arty_howitzer_base { + whistleDist = 1500; +}; + +class ace_arty_82mm_he_pd: ace_arty_howitzer_82mm_base { + hit = 110; + indirecthit = 31; + indirecthitrange = 15; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_he_shell.p3d"; + //model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + airFriction = -0.0000758; + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; + muzzleEffect = "BIS_Effects_HeavyCaliber"; + caliber = 6; +}; + +class ace_arty_82mm_he_explosion: ace_arty_howitzer_82mm_base { + hit = 110; + indirecthit = 31; + indirecthitrange = 15; + explosionTime = 0.0001; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_he_shell.p3d"; // Add model or : No shape for ammo type ace_arty_105mm_m1_explosion + //model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + CraterEffects = "ArtyShellCrater"; + ExplosionEffects = "ArtyShellExplosion"; + muzzleEffect = "BIS_Effects_HeavyCaliber"; +}; + +class ace_arty_82mm_illum_time: ace_arty_howitzer_82mm_base { + hit = 0; + indirecthit = 0; + indirecthitrange = 0; + typicalSpeed = 300; + timeToLive = 500; + explosive = 0.01; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_illum_shell.p3d"; + //model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "GrenadeExplosion"; + caliber = 6; + ACE_ARTY_ISBASEEJECTING = 1; + ACE_ARTY_BASEEJECT_HOB = 500; + ACE_ARTY_BASEEJECT_COMPENSATE = 0; // calculate the trajectory for this round's submunitions 1 true, 0 false + ACE_ARTY_BASEEJECT_POWER = 0.25; // the percent speed at which the base ejection charges will enter the airstream. + ACE_ARTY_FIRE_HANDLER = "\x\ace\addons\sys_arty_ammunition\fuzes\time\fuze_time.sqf"; + ACE_ARTY_BASE_EJECT_HANDLER = "\x\ace\addons\sys_arty_ammunition\82mm\eject_illum.sqf"; + ACE_ARTY_EXPLOSION = "ace_arty_baseEject"; +}; + +class ace_arty_82mm_wp_pd : ace_arty_howitzer_82mm_base { + hit = 110; + indirecthit = 25; + indirecthitrange = 7; + typicalSpeed = 300; + timeToLive = 500; + explosive = 1; + cost = 300; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_smoke_shell.p3d"; + //model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_shell"; + airFriction = -0.0000758; + CraterEffects = ""; + ExplosionEffects = "ace_arty_WPExplosion"; + caliber = 6; +}; + +class ace_arty_82mm_illum_flare :FlareBase { + model="\ca\Weapons\granat"; + lightColor[] = {0.8, 0.8, 0.8, 0}; + deflecting=65; +}; diff --git a/TO_MERGE/ace/arty_ammunition/82mm/CfgMagazines.hpp b/TO_MERGE/ace/arty_ammunition/82mm/CfgMagazines.hpp new file mode 100644 index 0000000000..34715bc068 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/CfgMagazines.hpp @@ -0,0 +1,103 @@ +class ace_arty_82mm_default: ace_arty_howitzer_default { + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\82mm\tables\ace_arty_82mm_genericBtab_%1_chg%2.sqf"; // 1 = angle (LA/HA) 2 = chg# + ACE_ARTY_BTABS_KEY = "ace_arty_82mm_genericBtab_%1_chg%2"; + scope = 2; + ACE_Weight = 4.5; +}; + +class ace_arty_82mm_he: ace_arty_82mm_default { + scope = 1; + type = 0; + displayName = "82mm HE"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_82mm_he_%1_chg%2"; + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\82mm\tables\ace_arty_82mm_heBtab_%1_chg%2.sqf"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\82mm\data\images\m720_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\82mm\data\images\m720.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_82mm_he_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd"}; + ACE_ARTY_FUZE_DESC[] = {"Point Detonate"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_82mm_he_pd"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 6; + ACE_ARTY_INEFFECT = "HE"; + ACE_Weight = 4.5; +}; + +class ace_arty_82mm_he_pd_chg0: ace_arty_howitzer_mag { + displayName = "82mm HE PD Chg. 0"; + ammo = "ace_arty_82mm_he_pd"; + initSpeed = 70; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_82mm_he"; + ACE_Weight = 4.5; +}; +class ace_arty_82mm_he_pd_chg1: ace_arty_82mm_he_pd_chg0 { initSpeed = 121; displayName = "82mm HE PD Chg. 1"; }; +class ace_arty_82mm_he_pd_chg2: ace_arty_82mm_he_pd_chg0 { initSpeed = 164; displayName = "82mm HE PD Chg. 2"; }; +class ace_arty_82mm_he_pd_chg3: ace_arty_82mm_he_pd_chg0 { initSpeed = 200; displayName = "82mm HE PD Chg. 3"; }; +class ace_arty_82mm_he_pd_chg4: ace_arty_82mm_he_pd_chg0 { initSpeed = 230; displayName = "82mm HE PD Chg. 4"; }; +class ace_arty_82mm_he_pd_chg5: ace_arty_82mm_he_pd_chg0 { initSpeed = 259; displayName = "82mm HE PD Chg. 5"; }; +class ace_arty_82mm_he_pd_chg6: ace_arty_82mm_he_pd_chg0 { initSpeed = 284; displayName = "82mm HE PD Chg. 6"; }; + +// ILLUM +class ace_arty_82mm_illum: ace_arty_82mm_default { + scope = 1; + type = 0; + displayName = "82mm Illumination"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_82mm_illum_%1_chg%2"; + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\82mm\tables\ace_arty_82mm_illumBtab_%1_chg%2.sqf"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\82mm\data\images\m14_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\82mm\data\images\M721.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_82mm_illum_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"time"}; + ACE_ARTY_FUZE_DESC[] = {"Time"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_82mm_illum_time"}; + ACE_ARTY_MINCHARGE = 1; + ACE_ARTY_MAXCHARGE = 3; + ACE_ARTY_INEFFECT = "ILLUM"; +}; + +class ace_arty_82mm_illum_time_chg0: ace_arty_howitzer_mag { + displayName = "82mm ILLUM TIME Chg. 0"; + ammo = "ace_arty_82mm_illum_time"; + initSpeed = 64; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_82mm_illum"; + ACE_Weight = 4.5; +}; +class ace_arty_82mm_illum_time_chg1: ace_arty_82mm_illum_time_chg0 { initSpeed = 125; displayName = "82mm ILLUM TIME Chg. 1"; }; +class ace_arty_82mm_illum_time_chg2: ace_arty_82mm_illum_time_chg0 { initSpeed = 165; displayName = "82mm ILLUM TIME Chg. 2"; }; +class ace_arty_82mm_illum_time_chg3: ace_arty_82mm_illum_time_chg0 { initSpeed = 199; displayName = "82mm ILLUM TIME Chg. 3"; }; + +// WP +class ace_arty_82mm_wp: ace_arty_82mm_default { + scope = 1; + type = 0; + displayName = "82mm WP"; + ACE_ARTY_MAGAZINE_FORMAT = "ace_arty_82mm_wp_%1_chg%2"; + ACE_ARTY_BTABS = "\x\ace\addons\sys_arty_ammunition\82mm\tables\ace_arty_82mm_wpBtab_%1_chg%2.sqf"; + //ACE_ARTY_CHARGE_IMAGE_FORMAT = "\x\ace\Addons\sys_arty_ammunition\82mm\data\images\m14_chg%1.paa"; + //ACE_ARTY_SHELL_IMAGE = "\x\ace\Addons\sys_arty_ammunition\82mm\data\images\M722A1.paa"; + ACE_ARTY_CHARGE_IMAGE_FORMAT = ""; + ACE_ARTY_SHELL_IMAGE = ""; + ACE_ARTY_SHELL_VEHICLE = "ace_arty_82mm_smoke_cartridge"; + ACE_ARTY_FUZE_TYPES[] = {"pd"}; + ACE_ARTY_FUZE_DESC[] = {"Point Detonate"}; + ACE_ARTY_AMMO_CLASSES[] = {"ace_arty_82mm_wp_pd"}; + ACE_ARTY_MINCHARGE = 0; + ACE_ARTY_MAXCHARGE = 3; + ACE_ARTY_INEFFECT = "WP"; + ACE_Weight = 4.5; +}; + +class ace_arty_82mm_wp_pd_chg0: ace_arty_howitzer_mag { + displayName = "82mm WP PD Chg. 0"; + ammo = "ace_arty_82mm_wp_pd"; + initSpeed = 70; + ACE_ARTY_DEFAULT_CLASS = "ace_arty_82mm_wp"; + ACE_Weight = 4.5; +}; +class ace_arty_82mm_wp_pd_chg1: ace_arty_82mm_wp_pd_chg0 { initSpeed = 127; displayName = "82mm WP PD Chg. 1"; }; +class ace_arty_82mm_wp_pd_chg2: ace_arty_82mm_wp_pd_chg0 { initSpeed = 170; displayName = "82mm WP PD Chg. 2"; }; +class ace_arty_82mm_wp_pd_chg3: ace_arty_82mm_wp_pd_chg0 { initSpeed = 206; displayName = "82mm WP PD Chg. 3"; }; diff --git a/TO_MERGE/ace/arty_ammunition/82mm/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/82mm/CfgVehicles.hpp new file mode 100644 index 0000000000..ff9eea92fc --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/CfgVehicles.hpp @@ -0,0 +1,79 @@ +/* + No info found about russian mortar shells. + Names seem to be no existant + + Bulgarian and Romanian manufacturer page have various images for numerous 82mm shells. + Most useful information from bulgarian manufacturer with muzzlevelocities + + M74 - 82mm HE 4.15kg; MC: 0 - MC: 6; (70, 121, 164, 200, 230, 259, 284); Range: 6200m; Fuze: AF66, AF62 (L:0.490 ) + //82mm HE FRAG 3.1kg; MC: 0 - MC: 3; (75,132,175,211); Range: 3130m / Long Distance Charge: 255 (4200m); Fuze: AF67,A61 (L: 345) + 82mm WP -> 82mm HE FRAG model + 82mm ILLUM: 3.5 kg; MC: 1 - MC:3 ; (125,165,199); Range: 2670m, Burst height: 350m, Fuze: FTSQ or T-1 (L: 0.495 ) + + ALL Fuzes are PD or TIME +*/ + +class ace_arty_82mm_he_cartridge : ACE_Arty_ShellHolder { + scope = 1; + icon = "iconThing"; + mapSize = 0; // iconsize on map... small object such as a tree is 0.7 + displayName = "82mm HE Cartridge"; + vehicleClass = "Objects"; + nameSound = "obj_object"; + picture = "pictureThing"; + class Library {libTextDesc = "";}; + descriptionShort = ""; + destrType = "DestructTree"; + weight = 1000; + simulation = "house"; + type = 1; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_he_cartridge.p3d"; + animated = 1; + reversed = 0; + class EventHandlers { + killed = "_this call ace_sys_arty_ammunition_fnc_onShellDestroyed"; + }; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_82mm_he"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_82mm_he_pd_chg0",{0},"fnord",0,"pd"}; + ACE_Weight = 4.15; + class AnimationSources { + class hide_inc1 { + source = "user"; + initPhase = 1; + animPeriod = 0.1; + }; + class hide_inc2: hide_inc1 {}; + class hide_inc3: hide_inc1 {}; + class hide_inc4: hide_inc1 {}; + class hide_inc5: hide_inc1 {}; + class hide_inc6: hide_inc1 {}; + class hide_inc7: hide_inc1 {}; + class hide_inc8: hide_inc1 {}; + class hide_inc9: hide_inc1 {}; + class hide_inc10: hide_inc1 {}; + }; +}; + +class ace_arty_82mm_illum_cartridge : ace_arty_82mm_he_cartridge { + displayName = "82mm Illum Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_illum_cartridge.p3d"; + //model = "\x\ace\addons\sys_arty_ammunition\60mm\default_60mm_crtg"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_82mm_illum"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_82mm_illum_time_chg1",{10},"fnord",1,"time"}; + ACE_Weight = 3.5; +}; + +class ace_arty_82mm_smoke_cartridge : ace_arty_82mm_he_cartridge { + displayName = "82mm WP Cartridge"; + model = "\x\ace\addons\sys_arty_ammunition\82mm\ace_arty_82mm_smoke_cartridge.p3d"; + ACE_ARTY_MAGAZINE_CLASS = "ace_arty_82mm_wp"; + ACE_ARTY_SHELL_PREP[] = {"ace_arty_82mm_wp_pd_chg0",{0},"fnord",0,"pd"}; + ACE_Weight = 4.15; +}; + +class ace_arty_82mm_illum_ftsq_parachute : ace_arty_60mm_m721_m766_parachute { + //class EventHandlers { + // EXTENDED_EVENTHANDLERS + //}; + //SLX_XEH_DISABLED = 0; +}; diff --git a/TO_MERGE/ace/arty_ammunition/82mm/XEH_illum_init.sqf b/TO_MERGE/ace/arty_ammunition/82mm/XEH_illum_init.sqf new file mode 100644 index 0000000000..554891c526 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/XEH_illum_init.sqf @@ -0,0 +1,71 @@ +//XEH_illum_init.sqf +#define MAX_ILL 1.5 + +private["_flareChute", "_pos", "_light", "_sm", "_sp"]; + +_flareChute = _this select 0; +_pos = getPos (_flareChute); + +_light = "#lightpoint" createVehicleLocal _pos; +_light setPos _pos; +_light setLightBrightness MAX_ILL; +_light setLightAmbient[238/255, 233/255, 183/255]; +_light setLightColor[241/255, 226/255, 62/255]; +_light lightAttachObject [_flareChute, [0,0,-0.8]]; + +_sm = "#particlesource" createVehicleLocal getPos (_flareChute); +_sm setParticleRandom [0.5, [0, 0, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0, 360]; +_sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 30, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.3,4], + [[0.9,0.9,0.9,0.6], [1,1,1,0.3], [1,1,1,0]],[1],0.1,0.1,"","",_light]; +_sm setDropInterval 0.02; + +_sp = "#particlesource" createVehicleLocal getPos (_flareChute); +_sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +_sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +_sp setDropInterval 0.001; + +// _sp2 = "#particlesource" createVehicleLocal getPos (_flareChute); +// _sp2 setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; +// _sp2 setParticleParams ["\ca\Data\Flare12", + // "", "Billboard", 1, 0.1, [0, 0, 0], + // [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + // [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_light,360]; +// _sp2 setDropInterval 0.001; + + +//_flareChute setVectorDir _chuteVel; + +[_flareChute, _light, _sp, _sm] spawn { + private["_shell", "_light", "_sp", "_sm", "_start", "_b", "_s"]; + _shell = _this select 0; + _light = _this select 1; + _sp = _this select 2; + _sm = _this select 3; + + + _start = time; + _b = MAX_ILL; + _s = 0; + waitUntil { + if((_start + 50) < time) then { + _b = (_b - random (0.1)) max 0; + _light setLightBrightness _b; + }; + if((_start + 60) < time) then { + deleteVehicle _light; + deleteVehicle _sp; +// deleteVehicle _sp2; + deleteVehicle _sm; + }; + sleep 0.1; + (!alive _shell && (_start + 60) < time); + }; + deleteVehicle _light; + deleteVehicle _sp; + deleteVehicle _sm; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_he_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_he_cartridge.p3d new file mode 100644 index 0000000000..0373482d2d Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_he_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_he_shell.p3d b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_he_shell.p3d new file mode 100644 index 0000000000..c3a34d565b Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_he_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_illum_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_illum_cartridge.p3d new file mode 100644 index 0000000000..f991961b2a Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_illum_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_illum_shell.p3d b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_illum_shell.p3d new file mode 100644 index 0000000000..5ccd181fc6 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_illum_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_smoke_cartridge.p3d b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_smoke_cartridge.p3d new file mode 100644 index 0000000000..578031d126 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_smoke_cartridge.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_smoke_shell.p3d b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_smoke_shell.p3d new file mode 100644 index 0000000000..e15d679cce Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/ace_arty_82mm_smoke_shell.p3d differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he.rvmat b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he.rvmat new file mode 100644 index 0000000000..412681cfe2 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he.rvmat @@ -0,0 +1,89 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +specular[]={1,1,1,1.000000}; +specularPower=40.000000; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\82mm\data\ace_82mm_he_smoke_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={8.0000,0.000000,0.000000}; + up[]={0.000000,8.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\82mm\data\ace_82mm_he_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture="#(ai,16,2,2)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class StageTI +{ + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_co.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_co.paa new file mode 100644 index 0000000000..b88ea9b3e8 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_smdi.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_smdi.paa new file mode 100644 index 0000000000..ca9e95dca4 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_smoke_nohq.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_smoke_nohq.paa new file mode 100644 index 0000000000..d646d432c9 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_he_smoke_nohq.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum.rvmat b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum.rvmat new file mode 100644 index 0000000000..3d0c0ba64a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum.rvmat @@ -0,0 +1,85 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +specular[]={1,1,1,1.000000}; +specularPower=40.000000; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\82mm\data\ace_82mm_he_smoke_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={8.0000,0.000000,0.000000}; + up[]={0.000000,8.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\82mm\data\ace_82mm_illum_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture="#(ai,16,2,2)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum_co.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum_co.paa new file mode 100644 index 0000000000..8a6f177971 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum_smdi.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum_smdi.paa new file mode 100644 index 0000000000..602e4c7bcd Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_illum_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke.rvmat b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke.rvmat new file mode 100644 index 0000000000..6e886a2015 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke.rvmat @@ -0,0 +1,85 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +specular[]={1,1,1,1.000000}; +specularPower=40.000000; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 { + texture="x\ace\addons\sys_arty_ammunition\82mm\data\ace_82mm_he_smoke_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 { + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform { + aside[]={8.0000,0.000000,0.000000}; + up[]={0.000000,8.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_ammunition\82mm\data\ace_82mm_smoke_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture="#(ai,16,2,2)fresnel(0.45,0.35)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke_co.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke_co.paa new file mode 100644 index 0000000000..24c54e4890 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke_co.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke_smdi.paa b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke_smdi.paa new file mode 100644 index 0000000000..ca9e95dca4 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/82mm/data/ace_82mm_smoke_smdi.paa differ diff --git a/TO_MERGE/ace/arty_ammunition/82mm/eject_illum.sqf b/TO_MERGE/ace/arty_ammunition/82mm/eject_illum.sqf new file mode 100644 index 0000000000..ed77c55c11 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/eject_illum.sqf @@ -0,0 +1,15 @@ +//eject_illum.sqf +private["_shell", "_velocity", "_pos", "_flareChute", "_chuteVel"]; + +_shell = _this select 6; + +_velocity = velocity _shell; + +_pos = getPos _shell; + +_flareChute = "ace_arty_60mm_m721_m766_parachute" createVehicle _pos; +_flareChute setPos _pos; +_chuteVel = [_velocity,0.25] call ACE_fnc_vectorMultiply; +_flareChute setVelocity _chuteVel; + +false diff --git a/TO_MERGE/ace/arty_ammunition/82mm/model.cfg b/TO_MERGE/ace/arty_ammunition/82mm/model.cfg new file mode 100644 index 0000000000..e7efc07db6 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/model.cfg @@ -0,0 +1,59 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + + class ace_mortar_shell: Default { + isDiscrete = 1; + skeletonInherit = "Default"; + skeletonBones[] = { + "inc1","", + "inc2","", + "inc3","", + "inc4","", + "inc5","", + "inc6","", + "inc7","", + "inc8","", + "inc9","", + "inc10","" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + skeletonName = ""; + }; + class ace_arty_82mm_cartridge: Default { + skeletonName="ace_mortar_shell"; + sections[]= {}; + class animations { + #define HIDE_INC(x) class hide_inc##x { \ + type = "hide"; \ + source = "user"; \ + selection = inc##x; \ + minValue = 0; \ + maxValue = 1; \ + hideValue = 1; \ + }; + HIDE_INC(1); + HIDE_INC(2); + HIDE_INC(3); + HIDE_INC(4); + HIDE_INC(5); + HIDE_INC(6); + HIDE_INC(7); + HIDE_INC(8); + HIDE_INC(9); + HIDE_INC(10); + }; + }; + class ace_arty_82mm_he_cartridge: ace_arty_82mm_cartridge {}; + class ace_arty_82mm_illum_cartridge: ace_arty_82mm_cartridge {}; + class ace_arty_82mm_smoke_cartridge:ace_arty_82mm_cartridge {}; +}; diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg0.sqf new file mode 100644 index 0000000000..82806daee6 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg0.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg0 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,122.653,[[1213.62,-2002.91,26.4167,192.344,-77.9004],[1191.36,-1900.52,25.8667,188.586,-77.5555],[1168.93,-1800.29,25.3167,184.775,-77.1937],[1146.32,-1702.26,24.7667,180.913,-76.8136],[1122.15,-1600.74,24.1833,176.761,-76.3889],[1097.79,-1501.77,23.6,172.555,-75.9401],[1072.55,-1402.68,23,168.173,-75.4512],[1045.69,-1301.11,22.3667,163.488,-74.9022],[1017.9,-1200.13,21.7167,158.62,-74.3001],[989.173,-1100.07,21.05,153.567,-73.6374],[959.496,-1001.23,20.3667,148.329,-72.9053],[928.127,-901.695,19.65,142.777,-72.0729],[895.037,-802.115,18.9,136.909,-71.1216],[859.456,-701.145,18.1,130.595,-70.0033],[822.091,-601.816,17.2667,123.969,-68.7063],[781.409,-501.346,16.3667,116.778,-67.127],[737.35,-401.424,15.4,109.039,-65.1824],[688.325,-300.916,14.3333,100.529,-62.6685],[632.695,-200.263,13.1333,91.0697,-59.2523],[567.994,-100.799,11.75,80.4827,-54.2865],[485.365,-0.789177,10,68.0246,-45.7767],[348.442,99.6637,7.13333,52.4873,-23.697],[244.687,122.652,4.98333,48.4532,-0.11457]]], + [46,126.913,[[1197.15,-2001.74,26.5167,192.333,-78.1129],[1175.94,-1902.34,25.9833,188.685,-77.7845],[1153.9,-1801.97,25.4333,184.871,-77.4294],[1131.01,-1700.86,24.8667,180.887,-77.0447],[1107.94,-1602.12,24.3,176.85,-76.6395],[1083.33,-1500.2,23.7,172.517,-76.1861],[1058.52,-1401.03,23.1,168.128,-75.7055],[1032.82,-1301.99,22.4833,163.56,-75.1804],[1005.52,-1200.84,21.8333,158.685,-74.5893],[977.304,-1100.59,21.1667,153.624,-73.9387],[948.149,-1001.56,20.4833,148.376,-73.22],[917.33,-901.822,19.7667,142.813,-72.4027],[884.821,-802.028,19.0167,136.932,-71.4685],[849.865,-700.827,18.2167,130.602,-70.37],[813.156,-601.255,17.3833,123.957,-69.0958],[773.188,-500.52,16.4833,116.742,-67.5436],[729.904,-400.313,15.5167,108.975,-65.6314],[682.495,-300.984,14.4667,100.558,-63.1998],[628.612,-201.102,13.2833,91.1749,-59.8958],[565.063,-100.792,11.9,80.5005,-55.0254],[484.682,-0.525895,10.1667,68.0012,-46.7476],[354.93,99.9309,7.4,52.425,-25.8462],[244.357,126.911,5.06667,47.5929,-0.088572]]], + [47,131.166,[[1180.14,-2000.86,26.6167,192.333,-78.3297],[1159.31,-1901.38,26.0833,188.681,-78.0072],[1137.66,-1800.93,25.5333,184.862,-77.6584],[1115.85,-1702.67,24.9833,180.991,-77.2921],[1092.54,-1600.91,24.4,176.83,-76.8827],[1069.04,-1501.7,23.8167,172.613,-76.4501],[1044.68,-1402.35,23.2167,168.219,-75.9787],[1018.77,-1300.5,22.5833,163.52,-75.4493],[992.65,-1201.8,21.95,158.762,-74.8839],[964.942,-1101.35,21.2833,153.693,-74.2458],[936.317,-1002.13,20.6,148.436,-73.5407],[906.059,-902.176,19.8833,142.862,-72.7389],[874.141,-802.157,19.1333,136.968,-71.8222],[839.82,-700.715,18.3333,130.622,-70.7442],[803.779,-600.89,17.5,123.959,-69.4933],[765.267,-501.684,16.6167,116.855,-67.9992],[722.775,-401.034,15.65,109.058,-66.1253],[676.235,-301.219,14.6,100.603,-63.7411],[623.338,-200.785,13.4167,91.1656,-60.4988],[561.707,-100.933,12.05,80.5361,-55.7774],[483.569,-0.409585,10.3333,67.9992,-47.7354],[360.848,99.8357,7.66667,52.4324,-28.0171],[243.809,131.165,5.15,46.7188,-0.0801113]]], + [48,135.409,[[1162.59,-2000.29,26.7167,192.344,-78.5508],[1142.15,-1900.73,26.1833,188.688,-78.2343],[1120.91,-1800.18,25.6333,184.865,-77.8921],[1099.5,-1701.84,25.0833,180.989,-77.5325],[1077.28,-1602.86,24.5167,176.942,-77.1425],[1053.56,-1500.67,23.9167,172.599,-76.7061],[1029.66,-1401.23,23.3167,168.199,-76.2434],[1004.9,-1301.91,22.7,163.617,-75.7378],[978.598,-1200.46,22.05,158.726,-75.1687],[952.089,-1102.38,21.4,153.775,-74.5584],[923.315,-1000.56,20.7,148.38,-73.8497],[893.621,-900.487,19.9833,142.794,-73.0622],[862.298,-800.339,19.2333,136.886,-72.1617],[829.322,-700.818,18.45,130.657,-71.1255],[793.959,-600.728,17.6167,123.976,-69.8987],[756.171,-501.239,16.7333,116.849,-68.4327],[714.479,-400.276,15.7667,109.023,-66.5934],[668.814,-300.119,14.7167,100.53,-64.2517],[617.647,-200.627,13.55,91.1729,-61.1134],[557.184,-100.112,12.1833,80.4627,-56.4777],[482.021,-0.450041,10.5,68.0202,-48.7392],[365.432,99.8047,7.91667,52.4332,-30.0496],[243.04,135.408,5.23333,45.8313,-0.0904206]]], + [49,139.636,[[1144.51,-2000.04,26.8167,192.367,-78.776],[1124.47,-1900.39,26.2833,188.707,-78.4657],[1104.27,-1802.77,25.75,184.996,-78.1406],[1082.64,-1701.31,25.1833,180.999,-77.7776],[1060.85,-1602.23,24.6167,176.947,-77.3952],[1038.24,-1502.74,24.0333,172.72,-76.9794],[1014.15,-1400.38,23.4167,168.191,-76.5134],[989.868,-1300.96,22.8,163.603,-76.0175],[964.737,-1201.95,22.1667,158.83,-75.474],[938.075,-1101.19,21.5,153.744,-74.8605],[910.531,-1001.62,20.8167,148.468,-74.1824],[881.416,-901.317,20.1,142.871,-73.411],[850.704,-800.924,19.35,136.951,-72.529],[818.37,-701.146,18.5667,130.706,-71.5139],[783.696,-600.779,17.7333,124.007,-70.3117],[746.644,-500.994,16.85,116.858,-68.8748],[706.471,-401.38,15.9,109.138,-67.1045],[661.702,-300.708,14.85,100.607,-64.8129],[611.537,-200.638,13.6833,91.1973,-61.7394],[552.985,-100.568,12.3333,80.5359,-57.2558],[480.036,-0.657659,10.6667,68.0652,-49.7583],[368.719,99.9057,8.15,52.4146,-31.9484],[242.049,139.635,5.31667,44.9305,-0.120935]]], + [50,143.842,[[1125.91,-2000.12,26.9167,192.401,-79.0053],[1106.26,-1900.37,26.3833,188.737,-78.7013],[1086.47,-1802.65,25.85,185.023,-78.3828],[1065.28,-1701.09,25.2833,181.021,-78.0272],[1043.92,-1601.9,24.7167,176.964,-77.6525],[1021.76,-1502.3,24.1333,172.732,-77.2451],[998.79,-1402.56,23.5333,168.32,-76.8012],[974.355,-1300.29,22.9,163.601,-76.3025],[949.726,-1201.16,22.2667,158.821,-75.7699],[923.598,-1100.26,21.6,153.725,-75.1685],[896.605,-1000.56,20.9167,148.439,-74.5037],[868.071,-900.112,20.2,142.831,-73.7475],[838.644,-801.753,19.4667,137.029,-72.9026],[806.963,-701.707,18.6833,130.771,-71.909],[772.988,-601.051,17.85,124.053,-70.7321],[736.683,-500.959,16.9667,116.882,-69.325],[697.321,-401.011,16.0167,109.134,-67.5907],[654.153,-301.492,14.9833,100.702,-65.3831],[605.006,-200.827,13.8167,91.2399,-62.3763],[547.642,-100.061,12.4667,80.4997,-57.9839],[476.89,-0.162181,10.8167,68.015,-50.7048],[371.473,99.7132,8.38333,52.452,-33.8672],[240.833,143.84,5.4,44.0168,-0.173209]]], + [51,148.022,[[1106.77,-2000.54,27.0167,192.447,-79.2386],[1087.54,-1900.68,26.4833,188.78,-78.9411],[1068.15,-1802.86,25.95,185.062,-78.6293],[1047.4,-1701.19,25.3833,181.056,-78.2812],[1026.48,-1601.88,24.8167,176.994,-77.9144],[1004.78,-1502.17,24.2333,172.756,-77.5156],[982.29,-1402.3,23.6333,168.339,-77.081],[958.993,-1302.55,23.0167,163.738,-76.606],[934.243,-1200.64,22.3667,158.825,-76.0711],[909.298,-1102.08,21.7167,153.849,-75.4975],[882.87,-1002.15,21.0333,148.555,-74.8477],[854.933,-901.452,20.3167,142.937,-74.1083],[825.464,-800.646,19.5667,136.991,-73.2626],[794.439,-700.432,18.7833,130.716,-72.289],[761.836,-601.555,17.9667,124.115,-71.1597],[726.29,-501.142,17.0833,116.922,-69.7831],[687.749,-400.846,16.1333,109.147,-68.0859],[645.483,-300.946,15.1,100.679,-65.9242],[598.052,-201.202,13.95,91.3014,-63.0237],[542.588,-100.87,12.6167,80.6145,-58.786],[474.032,-0.719599,10.9833,68.1103,-51.7539],[372.978,99.7266,8.6,52.4557,-35.6569],[238.673,148.022,5.46667,43.0924,-0.031601]]], + [52,152.171,[[1087.11,-2001.31,27.1167,192.506,-79.4758],[1068.29,-1901.34,26.5833,188.835,-79.1849],[1048.73,-1800.38,26.0333,184.996,-78.8701],[1029.01,-1701.62,25.4833,181.104,-78.5395],[1008.55,-1602.19,24.9167,177.038,-78.1807],[987.314,-1502.35,24.3333,172.795,-77.7907],[965.305,-1402.35,23.7333,168.371,-77.3656],[942.508,-1302.47,23.1167,163.764,-76.901],[918.29,-1200.42,22.4667,158.844,-76.3778],[893.881,-1101.72,21.8167,153.86,-75.8165],[868.02,-1001.63,21.1333,148.556,-75.1807],[840.683,-900.771,20.4167,142.926,-74.4572],[812.49,-801.988,19.6833,137.101,-73.6487],[782.136,-701.483,18.9,130.812,-72.6976],[749.585,-600.337,18.0667,124.059,-71.5705],[715.461,-501.554,17.2,116.98,-70.2491],[677.754,-400.896,16.25,109.178,-68.5898],[636.402,-300.599,15.2167,100.673,-66.4754],[589.998,-200.41,14.0667,91.2469,-63.6359],[536.415,-100.715,12.75,80.6195,-59.5399],[470.037,-0.568875,11.1333,68.1092,-52.7326],[373.968,99.4684,8.81667,52.5109,-37.4656],[237.018,152.17,5.55,42.1532,-0.127898]]], + [53,156.283,[[1066.93,-2002.43,27.2167,192.578,-79.7168],[1048.53,-1902.35,26.6833,188.904,-79.4326],[1029.4,-1801.27,26.1333,185.062,-79.1251],[1010.13,-1702.38,25.5833,181.165,-78.802],[990.114,-1602.83,25.0167,177.095,-78.4515],[968.759,-1500.04,24.4167,172.725,-78.0592],[947.835,-1402.72,23.8333,168.418,-77.655],[924.941,-1300.04,23.2,163.679,-77.1883],[901.867,-1200.49,22.5667,158.877,-76.6896],[878.001,-1101.64,21.9167,153.885,-76.1411],[852.716,-1001.39,21.2333,148.572,-75.5196],[825.988,-900.363,20.5167,142.932,-74.8123],[798.423,-801.403,19.7833,137.094,-74.0218],[768.745,-700.708,19,130.79,-73.0917],[737.559,-601.326,18.1833,124.155,-72.0124],[703.555,-500.362,17.3,116.918,-70.696],[667.338,-401.17,16.3667,109.226,-69.1022],[626.912,-300.46,15.3333,100.687,-67.0363],[582.208,-201.18,14.2,91.3482,-64.3043],[529.831,-100.746,12.8833,80.6462,-60.3065],[465.62,-0.600073,11.2833,68.1338,-53.7269],[373.76,99.481,9.01667,52.5197,-39.1517],[234.447,156.283,5.61667,41.2038,-0.0242625]]], + [54,160.355,[[1045.67,-2000.76,27.3,192.548,-79.9531],[1027.69,-1900.62,26.7667,188.87,-79.6752],[1009.57,-1802.51,26.2333,185.14,-79.3839],[990.164,-1700.53,25.6667,181.121,-79.0588],[970.61,-1600.91,25.1,177.045,-78.7161],[950.326,-1500.88,24.5167,172.791,-78.3435],[929.299,-1400.67,23.9167,168.355,-77.9373],[907.52,-1300.58,23.3,163.734,-77.4933],[884.979,-1200.88,22.6667,158.926,-77.0065],[861.665,-1101.86,22.0167,153.926,-76.4709],[836.964,-1001.45,21.3333,148.604,-75.8641],[810.852,-900.235,20.6167,142.953,-75.1734],[783.923,-801.088,19.8833,137.103,-74.4013],[754.931,-700.192,19.1,130.785,-73.4927],[724.464,-600.599,18.2833,124.132,-72.4381],[691.876,-501.251,17.4167,117.011,-71.1772],[656.499,-401.675,16.4833,109.293,-69.6227],[617.013,-300.537,15.45,100.719,-67.6067],[573.346,-200.782,14.3167,91.3333,-64.9386],[522.837,-100.971,13.0167,80.6953,-61.0852],[460.779,-0.821592,11.4333,68.1852,-54.736],[372.397,99.8147,9.2,52.4727,-40.7218],[232.348,160.353,5.7,40.2405,-0.171951]]], + [55,164.381,[[1024.46,-2002.63,27.4,192.645,-80.2015],[1006.91,-1902.36,26.8667,188.965,-79.9305],[988.669,-1801.08,26.3167,185.114,-79.6375],[970.287,-1702,25.7667,181.209,-79.3296],[951.202,-1602.24,25.2,177.13,-78.9954],[931.404,-1502.06,24.6167,172.871,-78.6321],[910.882,-1401.7,24.0167,168.431,-78.236],[889.625,-1301.45,23.4,163.804,-77.803],[867.624,-1201.58,22.7667,158.989,-77.3283],[844.868,-1102.4,22.1167,153.982,-76.806],[820.759,-1001.8,21.4333,148.652,-76.2141],[795.273,-900.399,20.7167,142.99,-75.5403],[768.99,-801.055,19.9833,137.128,-74.7871],[741.296,-702.043,19.2167,130.932,-73.9203],[710.955,-600.13,18.3833,124.127,-72.8712],[679.147,-500.543,17.5167,116.985,-71.6402],[644.618,-400.708,16.5833,109.241,-70.1218],[606.702,-300.84,15.5667,100.772,-68.1861],[564.087,-200.594,14.4333,91.3391,-65.5838],[514.794,-100.213,13.1333,80.632,-61.8207],[454.872,-0.303761,11.5667,68.1354,-55.6814],[370.568,99.9224,9.38333,52.4679,-42.315],[229.363,164.379,5.76667,39.2671,-0.113051]]], + [56,168.355,[[1002.21,-2001.71,27.4833,192.642,-80.4454],[985.089,-1901.37,26.95,188.957,-80.1811],[967.299,-1800.02,26.4,185.103,-79.8953],[949.371,-1700.86,25.85,181.193,-79.5949],[930.757,-1601.02,25.2833,177.108,-79.2689],[911.447,-1500.76,24.7,172.844,-78.9144],[891.431,-1400.32,24.1,168.397,-78.528],[871.261,-1302.66,23.5,163.89,-78.1173],[849.241,-1200.03,22.85,158.941,-77.6422],[827.047,-1100.75,22.2,153.926,-77.1324],[803.532,-1000.05,21.5167,148.585,-76.5547],[779.256,-900.862,20.8167,143.045,-75.9128],[753.626,-801.31,20.0833,137.171,-75.1788],[726.621,-702.08,19.3167,130.961,-74.3341],[697.628,-601.91,18.5,124.276,-73.333],[666.016,-500.087,17.6167,116.978,-72.111],[632.949,-401.698,16.7,109.347,-70.6582],[595.981,-301.378,15.6833,100.845,-68.7741],[554.431,-200.622,14.55,91.3665,-66.2395],[506.988,-100.846,13.2667,80.7281,-62.6233],[449.192,-0.924732,11.7167,68.2426,-56.719],[368.27,99.7932,9.56667,52.5074,-43.9282],[226.176,168.354,5.83333,38.2822,-0.0766285]]], + [57,172.274,[[979.47,-2001.19,27.5667,192.652,-80.693],[962.791,-1900.76,27.0333,188.964,-80.4355],[945.984,-1802.37,26.5,185.223,-80.1656],[927.988,-1700.09,25.9333,181.191,-79.8643],[909.851,-1600.17,25.3667,177.102,-79.5467],[891.576,-1502.65,24.8,172.955,-79.2114],[872.077,-1402.04,24.2,168.504,-78.8354],[851.88,-1301.53,23.5833,163.865,-78.4244],[830.976,-1201.39,22.95,159.036,-77.9736],[809.356,-1101.93,22.3,154.014,-77.4776],[786.449,-1001.03,21.6167,148.666,-76.9154],[762.8,-901.633,20.9167,143.116,-76.2908],[737.831,-801.863,20.1833,137.232,-75.5764],[710.949,-700.296,19.4,130.873,-74.7353],[683.279,-601.985,18.6,124.308,-73.7795],[653.066,-501.755,17.7333,117.128,-72.6134],[620.27,-401.22,16.8,109.334,-71.1742],[584.255,-300.584,15.7833,100.799,-69.3377],[544.376,-200.875,14.6667,91.4161,-66.9053],[498.163,-100.496,13.3833,80.7116,-63.3841],[442.474,-0.8017,11.85,68.2477,-57.695],[365.499,99.4161,9.75,52.5929,-45.5588],[222.788,172.274,5.9,37.2859,-0.0647017]]], + [58,176.133,[[956.254,-2001.06,27.65,192.676,-80.9443],[940.019,-1900.55,27.1167,188.985,-80.6937],[923.66,-1802.07,26.5833,185.24,-80.4311],[906.661,-1702.68,26.0333,181.324,-80.1467],[889.011,-1602.59,25.4667,177.231,-79.8381],[870.702,-1502.07,24.8833,172.958,-79.5024],[851.723,-1401.37,24.2833,168.501,-79.1364],[832.065,-1300.75,23.6667,163.856,-78.7363],[811.718,-1200.51,23.0333,159.021,-78.2975],[790.673,-1100.93,22.3833,153.99,-77.8146],[768.923,-1002.34,21.7167,148.764,-77.281],[745.358,-900.401,21,143.073,-76.6589],[721.055,-800.504,20.2667,137.176,-75.963],[695.448,-700.91,19.5,130.939,-75.1619],[667.957,-600.35,18.6833,124.221,-74.2121],[639.118,-501.835,17.8333,117.16,-73.0986],[607.2,-400.999,16.9,109.341,-71.6984],[572.152,-300.029,15.8833,100.775,-69.9108],[533.923,-201.362,14.7833,91.489,-67.5804],[488.955,-100.36,13.5,80.7195,-64.1572],[435.357,-0.885711,11.9833,68.2815,-58.6857],[361.656,99.4237,9.91667,52.6098,-47.0825],[219.198,176.132,5.96667,36.2786,-0.0797213]]], + [59,179.927,[[932.565,-2001.34,27.7333,192.714,-81.1991],[916.781,-1900.74,27.2,189.02,-80.9556],[900.875,-1802.17,26.6667,185.272,-80.7003],[884.347,-1702.68,26.1167,181.351,-80.4239],[867.187,-1602.49,25.55,177.255,-80.1239],[849.385,-1501.87,24.9667,172.977,-79.7976],[830.932,-1401.05,24.3667,168.515,-79.4419],[811.818,-1300.33,23.75,163.864,-79.0529],[792.557,-1202.57,23.1333,159.149,-78.6379],[771.574,-1100.27,22.4667,153.983,-78.1567],[750.426,-1001.56,21.8,148.748,-77.6378],[728.049,-901.81,21.1,143.18,-77.0474],[704.424,-801.674,20.3667,137.274,-76.372],[679.531,-701.827,19.6,131.024,-75.5943],[652.806,-600.994,18.7833,124.291,-74.6721],[624.219,-500.32,17.9167,117.072,-73.568],[593.743,-401.04,17,109.37,-72.2305],[560.232,-301.308,16,100.913,-70.5241],[522.508,-200.675,14.8833,91.4445,-68.2266],[479.363,-100.445,13.6167,80.7526,-64.9421],[427.265,-0.201453,12.1,68.2097,-59.6206],[356.787,99.8552,10.0667,52.551,-48.507],[215.406,179.925,6.03333,35.2605,-0.124191]]], + [60,183.65,[[908.408,-2002.03,27.8167,192.767,-81.4573],[893.079,-1901.34,27.2833,189.07,-81.221],[877.632,-1802.67,26.75,185.318,-80.9732],[861.092,-1700.09,26.1833,181.275,-80.6965],[844.915,-1602.78,25.6333,177.294,-80.4137],[827.627,-1502.04,25.05,173.012,-80.0969],[809.706,-1401.12,24.45,168.544,-79.7516],[791.144,-1300.27,23.8333,163.888,-79.374],[772.439,-1202.39,23.2167,159.167,-78.971],[752.572,-1102.48,22.5667,154.124,-78.5159],[731.523,-1001.11,21.8833,148.75,-77.9999],[709.791,-901.225,21.1833,143.173,-77.4265],[686.847,-800.94,20.45,137.255,-76.7704],[662.672,-700.936,19.6833,130.992,-76.0149],[637.25,-601.94,18.8833,124.382,-75.138],[609.492,-500.96,18.0167,117.145,-74.0675],[579.899,-401.354,17.1,109.42,-72.7701],[547.359,-301.263,16.1,100.933,-71.1143],[510.729,-200.226,14.9833,91.4233,-68.8833],[469.388,-100.762,13.7333,80.8118,-65.7378],[419.363,-0.71481,12.2333,68.3024,-60.6395],[352.068,99.3983,10.2333,52.6533,-50.0689],[211.411,183.648,6.1,34.2321,-0.20119]]], + [61,187.3,[[883.785,-2003.15,27.9,192.835,-81.7189],[868.917,-1902.35,27.3667,189.134,-81.4897],[853.464,-1800.52,26.8167,185.262,-81.2419],[837.891,-1700.88,26.2667,181.334,-80.9814],[821.723,-1600.55,25.7,177.227,-80.6987],[805.432,-1502.61,25.1333,173.063,-80.4002],[788.049,-1401.56,24.5333,168.591,-80.0654],[770.045,-1300.58,23.9167,163.929,-79.6993],[751.901,-1202.57,23.3,159.202,-79.3086],[732.135,-1100,22.6333,154.021,-78.8556],[712.214,-1001.01,21.9667,148.77,-78.3671],[691.135,-900.972,21.2667,143.183,-77.811],[668.88,-800.527,20.5333,137.255,-77.1747],[645.432,-700.355,19.7667,130.979,-76.4417],[620.773,-601.182,18.9667,124.354,-75.591],[593.848,-500.01,18.1,117.098,-74.5519],[565.145,-400.198,17.1833,109.35,-73.2922],[534.111,-301.481,16.2,100.976,-71.7127],[498.585,-200.021,15.0833,91.4261,-69.5501],[458.492,-100.08,13.8333,80.7564,-66.4976],[410.518,-0.457664,12.35,68.2891,-61.6045],[346.352,99.3756,10.3833,52.6775,-51.5334],[206.661,187.3,6.15,33.1944,-0.0318942]]], + [62,190.872,[[858.255,-2001.52,27.9667,192.802,-81.9768],[843.849,-1900.67,27.4333,189.098,-81.7547],[829.332,-1801.85,26.9,185.34,-81.5219],[814.247,-1702.09,26.35,181.408,-81.2698],[798.586,-1601.63,25.7833,177.299,-80.9961],[782.338,-1500.72,25.2,173.007,-80.6985],[765.966,-1402.39,24.6167,168.654,-80.3831],[748.526,-1301.27,24,163.987,-80.0288],[730.474,-1200.51,23.3667,159.126,-79.64],[711.803,-1100.41,22.7167,154.068,-79.2121],[692.505,-1001.26,22.05,148.809,-78.7391],[672.087,-901.061,21.35,143.213,-78.2007],[650.528,-800.446,20.6167,137.274,-77.5845],[627.814,-700.094,19.85,130.987,-76.8746],[603.927,-600.732,19.05,124.347,-76.0505],[578.349,-501.24,18.2,117.214,-75.0643],[550.548,-401.074,17.2833,109.444,-73.8465],[519.978,-300.366,16.2833,100.9,-72.2908],[486.081,-200.07,15.1833,91.4536,-70.2263],[447.767,-100.874,13.95,80.8698,-67.3145],[401.305,-0.422614,12.4667,68.3061,-62.5838],[339.691,99.8199,10.5167,52.6174,-52.9084],[202.278,190.87,6.21667,32.1457,-0.175278]]], + [63,194.36,[[832.3,-2000.32,28.0333,192.784,-82.2381],[818.799,-1902.54,27.5167,189.193,-82.03],[804.316,-1800.54,26.9667,185.315,-81.7979],[789.721,-1700.72,26.4167,181.379,-81.5539],[774.568,-1600.21,25.85,177.264,-81.289],[759.299,-1502.08,25.2833,173.091,-81.0094],[743.007,-1400.83,24.6833,168.609,-80.6957],[726.59,-1302.35,24.0833,164.063,-80.3622],[709.128,-1201.44,23.45,159.197,-79.9865],[691.067,-1101.18,22.8,154.132,-79.5729],[672.4,-1001.87,22.1333,148.866,-79.1157],[652.648,-901.5,21.4333,143.263,-78.5952],[631.794,-800.703,20.7,137.314,-77.9995],[609.821,-700.159,19.9333,131.015,-77.3132],[586.714,-600.595,19.1333,124.361,-76.5162],[561.971,-500.888,18.2833,117.211,-75.5624],[535.078,-400.486,17.3667,109.42,-74.384],[506.001,-301.129,16.3833,100.99,-72.9053],[473.214,-200.38,15.2833,91.5067,-70.9115],[436.156,-100.671,14.05,80.8684,-68.0967],[391.724,-0.618155,12.5833,68.3544,-63.5762],[333.157,99.3319,10.6667,52.7261,-54.4092],[197.174,194.36,6.26667,31.0883,-0.0610569]]], + [64,197.762,[[806.345,-2002.76,28.1167,192.897,-82.5091],[792.883,-1901.73,27.5833,189.188,-82.3018],[779.317,-1802.72,27.05,185.424,-82.0844],[765.22,-1702.78,26.5,181.486,-81.849],[750.584,-1602.12,25.9333,177.369,-81.5936],[735.4,-1501.01,25.35,173.069,-81.3156],[720.1,-1402.46,24.7667,168.707,-81.0211],[703.802,-1301.13,24.15,164.029,-80.6901],[686.932,-1200.14,23.5167,159.157,-80.327],[669.933,-1102.33,22.8833,154.216,-79.9378],[651.45,-1000.41,22.2,148.811,-79.4852],[632.824,-902.298,21.5167,143.332,-78.9945],[612.681,-801.308,20.7833,137.374,-78.4196],[591.457,-700.561,20.0167,131.064,-77.7572],[569.138,-600.782,19.2167,124.397,-76.988],[545.238,-500.844,18.3667,117.23,-76.067],[519.262,-400.193,17.45,109.418,-74.929],[491.176,-300.566,16.4667,100.962,-73.5003],[459.989,-200.96,15.3833,91.5862,-71.6049],[424.199,-100.717,14.15,80.8949,-68.8897],[381.286,-0.0229057,12.6833,68.2935,-64.5216],[325.711,99.3188,10.8,52.7487,-55.8225],[192.403,197.759,6.33333,30.0207,-0.286039]]], + [65,201.072,[[779.546,-2002.46,28.1833,192.911,-82.7768],[766.561,-1901.36,27.65,189.198,-82.5768],[753.476,-1802.29,27.1167,185.431,-82.3672],[739.879,-1702.27,26.5667,181.489,-82.1401],[725.762,-1601.54,26,177.368,-81.8937],[711.117,-1500.34,25.4167,173.064,-81.6256],[696.36,-1401.72,24.8333,168.697,-81.3415],[680.639,-1300.31,24.2167,164.014,-81.0222],[664.797,-1201.85,23.6,159.264,-80.6814],[647.971,-1101.33,22.95,154.187,-80.2964],[630.581,-1001.76,22.2833,148.907,-79.8707],[612.179,-901.11,21.5833,143.286,-79.3861],[592.75,-800.017,20.85,137.318,-78.8312],[572.726,-701.302,20.1,131.134,-78.2064],[551.202,-601.297,19.3,124.454,-77.4652],[528.155,-501.115,18.45,117.272,-76.5778],[503.104,-400.198,17.5333,109.44,-75.481],[476.018,-300.285,16.55,100.958,-74.1034],[445.943,-200.36,15.4667,91.5474,-72.2747],[411.896,-101.018,14.25,80.9501,-69.6926],[370.989,-0.694746,12.8,68.4065,-65.5387],[317.404,99.8102,10.9167,52.68,-57.1564],[199.966,199.986,6.83333,29.2689,-8.9087],[186.947,201.07,6.38333,28.9447,-0.241161]]], + [66,204.287,[[752.34,-2002.62,28.25,192.94,-83.0474],[739.837,-1901.44,27.7167,189.225,-82.855],[727.238,-1802.29,27.1833,185.455,-82.6532],[714.146,-1702.19,26.6333,181.51,-82.4346],[700.554,-1601.38,26.0667,177.385,-82.1974],[686.453,-1500.1,25.4833,173.076,-81.9393],[672.243,-1401.39,24.9,168.705,-81.6658],[657.517,-1302.59,24.3,164.144,-81.3669],[641.853,-1201.34,23.6667,159.261,-81.0302],[625.651,-1100.72,23.0167,154.178,-80.6594],[608.906,-1001.05,22.35,148.89,-80.2495],[591.188,-900.288,21.65,143.261,-79.7827],[572.908,-801.332,20.9333,137.42,-79.261],[553.201,-700.249,20.1667,131.088,-78.6462],[532.476,-600.118,19.3667,124.394,-77.932],[510.721,-501.709,18.5333,117.337,-77.0945],[486.604,-400.512,17.6167,109.486,-76.0395],[460.529,-300.295,16.6333,100.98,-74.7142],[431.575,-200.033,15.55,91.5351,-72.9538],[398.797,-100.309,14.3333,80.8891,-70.4658],[359.87,-0.57421,12.9,68.4099,-66.5105],[309.205,99.3289,11.05,52.7868,-58.6044],[206.838,199.99,7.35,29.254,-18.1094],[181.326,204.285,6.43333,27.8599,-0.231653]]], + [67,207.403,[[724.362,-2000.05,28.3,192.87,-83.3153],[712.72,-1901.98,27.7833,189.268,-83.1361],[700.612,-1802.75,27.25,185.495,-82.9423],[688.03,-1702.56,26.7,181.547,-82.7323],[674.966,-1601.66,26.1333,177.419,-82.5044],[661.414,-1500.29,25.55,173.106,-82.2564],[647.758,-1401.49,24.9667,168.731,-81.9936],[633.605,-1302.58,24.3667,164.166,-81.7065],[618.55,-1201.23,23.7333,159.278,-81.383],[602.98,-1100.5,23.0833,154.188,-81.0267],[586.886,-1000.72,22.4167,148.894,-80.6328],[570.265,-902.193,21.7333,143.392,-80.1953],[552.289,-800.76,21,137.406,-79.6826],[533.762,-701.693,20.25,131.202,-79.1052],[513.848,-601.309,19.45,124.497,-78.42],[492.523,-500.723,18.6,117.284,-77.5993],[469.769,-401.141,17.7,109.557,-76.6042],[444.712,-300.604,16.7167,101.027,-75.3321],[417.319,-201.452,15.65,91.6963,-73.6703],[385.825,-101.137,14.4333,81.0034,-71.2874],[348.422,-0.699095,13,68.4464,-67.4946],[300.181,99.3577,11.1667,52.801,-59.975],[208.064,199.9,7.7,29.2868,-24.2709],[175.539,207.401,6.48333,26.7666,-0.262118]]], + [68,210.416,[[696.384,-2001.14,28.3667,192.931,-83.5918],[685.218,-1902.99,27.85,189.327,-83.42],[673.24,-1800.59,27.3,185.433,-83.2282],[661.169,-1700.38,26.75,181.481,-83.0267],[649.007,-1602.39,26.2,177.471,-82.8145],[636.009,-1500.91,25.6167,173.155,-82.5768],[622.911,-1402,25.0333,168.776,-82.3249],[608.958,-1300.28,24.4167,164.079,-82.0418],[594.897,-1201.52,23.8,159.313,-81.7395],[579.963,-1100.68,23.15,154.218,-81.3979],[564.527,-1000.77,22.4833,148.917,-81.0202],[548.585,-902.125,21.8,143.408,-80.6007],[531.344,-800.555,21.0667,137.414,-80.1091],[513.574,-701.347,20.3167,131.199,-79.5552],[494.473,-600.812,19.5167,124.482,-78.898],[474.02,-500.063,18.6667,117.254,-78.1106],[452.195,-400.309,17.7667,109.509,-77.1555],[428.571,-301.216,16.8,101.101,-75.9564],[401.888,-200.224,15.7167,91.5926,-74.3372],[372.098,-100.956,14.5167,81.0014,-72.0805],[336.228,-0.0137354,13.0833,68.3709,-68.4394],[290.386,99.9219,11.2667,52.7179,-61.2766],[206.748,199.777,7.98333,29.3376,-29.2822],[169.588,210.413,6.53333,25.6651,-0.338001]]], + [69,213.322,[[668.021,-2002.71,28.4333,193.009,-83.8709],[656.989,-1901.33,27.9,189.286,-83.7012],[645.872,-1801.97,27.3667,185.507,-83.5233],[634.32,-1701.66,26.8167,181.553,-83.3306],[622.326,-1600.62,26.25,177.418,-83.1213],[610.241,-1501.98,25.6833,173.222,-82.9003],[597.346,-1400.17,25.0833,168.713,-82.6523],[584.352,-1301.12,24.4833,164.138,-82.3887],[570.896,-1202.24,23.8667,159.369,-82.0995],[556.604,-1101.27,23.2167,154.268,-81.7729],[541.831,-1001.23,22.55,148.962,-81.4117],[526.2,-900.082,21.85,143.311,-81.0002],[510.073,-800.726,21.1333,137.443,-80.5401],[493.067,-701.365,20.3833,131.22,-80.0103],[474.787,-600.665,19.5833,124.491,-79.3815],[455.598,-501.659,18.75,117.392,-78.6436],[434.714,-401.584,17.85,109.631,-77.7317],[411.717,-300.502,16.8667,101.055,-76.5653],[386.575,-200.756,15.8,91.6638,-75.04],[358.067,-101.048,14.6,81.0299,-72.8831],[324.143,-0.643846,13.1833,68.4755,-69.4461],[280.685,99.4764,11.3833,52.8167,-62.6806],[203.517,199.792,8.21667,29.3457,-33.4839],[163.065,213.322,6.56667,24.5558,-0.0846173]]], + [70,216.119,[[638.953,-2001.57,28.4833,192.988,-84.1475],[628.419,-1900.15,27.95,189.262,-83.9854],[617.803,-1800.75,27.4167,185.48,-83.8154],[606.772,-1700.39,26.8667,181.522,-83.6313],[595.657,-1602.25,26.3167,177.505,-83.4374],[583.778,-1500.62,25.7333,173.182,-83.2203],[571.808,-1401.56,25.15,168.795,-82.9902],[559.402,-1302.39,24.55,164.217,-82.7387],[546.207,-1200.74,23.9167,159.314,-82.4552],[532.91,-1102.27,23.2833,154.339,-82.1513],[518.806,-1002.09,22.6167,149.028,-81.8068],[503.883,-900.79,21.9167,143.37,-81.4143],[488.486,-801.277,21.2,137.495,-80.9754],[472.249,-701.752,20.45,131.263,-80.4698],[454.796,-600.874,19.65,124.524,-79.8698],[436.476,-501.68,18.8167,117.411,-79.1657],[416.536,-401.402,17.9167,109.634,-78.2952],[394.58,-300.097,16.9333,101.037,-77.1814],[370.576,-200.106,15.8667,91.6162,-75.7242],[343.358,-100.121,14.6667,80.9408,-73.6616],[311.352,-0.46323,13.2667,68.4679,-70.4152],[270.25,99.5708,11.4833,52.8172,-64.0174],[198.926,199.914,8.41667,29.3207,-37.1923],[156.807,216.117,6.61667,23.4387,-0.25426]]], + [71,218.801,[[609.55,-2000.92,28.5333,192.983,-84.4267],[599.831,-1902.59,28.0167,189.372,-84.2773],[589.406,-1800,27.4667,185.47,-84.1105],[579.219,-1702.61,26.9333,181.629,-83.9405],[568.314,-1601.4,26.3667,177.489,-83.7504],[557.325,-1502.59,25.8,173.286,-83.5496],[545.6,-1400.6,25.2,168.771,-83.3244],[533.784,-1301.37,24.6,164.188,-83.0847],[521.549,-1202.31,23.9833,159.409,-82.8221],[508.553,-1101.14,23.3333,154.299,-82.5251],[495.12,-1000.89,22.6667,148.98,-82.1968],[481.247,-901.895,21.9833,143.451,-81.8319],[466.585,-802.215,21.2667,137.57,-81.4145],[450.779,-700.35,20.5,131.19,-80.9224],[434.505,-601.443,19.7167,124.58,-80.3628],[416.709,-500.123,18.8667,117.312,-79.6786],[398.072,-401.552,17.9833,109.663,-78.8645],[377.164,-300.006,17,101.045,-77.8042],[354.665,-201.239,15.95,91.7455,-76.4404],[328.75,-100.77,14.75,81.0314,-74.4815],[298.276,-0.541711,13.35,68.495,-71.3953],[259.507,99.4237,11.5833,52.8607,-65.3696],[193.454,199.965,8.6,29.3201,-40.6868],[150.017,218.8,6.65,22.3144,-0.0716146]]], + [72,221.367,[[579.818,-2000.76,28.5833,192.996,-84.7086],[570.589,-1902.38,28.0667,189.382,-84.5666],[560.99,-1802.81,27.5333,185.597,-84.4132],[551.015,-1702.28,26.9833,181.634,-84.2469],[540.658,-1601.02,26.4167,177.49,-84.0663],[530.223,-1502.14,25.85,173.285,-83.8757],[519.088,-1400.09,25.25,168.765,-83.6618],[507.868,-1300.8,24.65,164.178,-83.4342],[496.248,-1201.67,24.0333,159.395,-83.1846],[483.907,-1100.43,23.3833,154.279,-82.9026],[471.15,-1000.11,22.7167,148.955,-82.5907],[457.976,-901.035,22.0333,143.419,-82.2441],[444.053,-801.275,21.3167,137.53,-81.8475],[429.37,-701.488,20.5667,131.28,-81.3905],[413.588,-600.33,19.7667,124.52,-80.848],[397.021,-500.842,18.9333,117.382,-80.2111],[378.99,-400.244,18.0333,109.573,-79.4234],[359.474,-300.237,17.0667,101.081,-78.4332],[338.111,-201.191,16.0167,91.7563,-77.1389],[313.505,-100.402,14.8167,81.0047,-75.2785],[284.915,-0.885917,13.4333,68.5579,-72.3851],[248.108,99.8384,11.6667,52.8016,-66.6641],[187.508,199.658,8.78333,29.4372,-44.2044],[143.457,221.364,6.7,21.1831,-0.365026]]], + [73,223.813,[[549.767,-2001.1,28.6333,193.025,-84.9928],[541.03,-1902.66,28.1167,189.41,-84.8585],[531.944,-1803.03,27.5833,185.622,-84.7133],[522.502,-1702.43,27.0333,181.658,-84.5559],[512.699,-1601.1,26.4667,177.511,-84.385],[502.821,-1502.16,25.9,173.303,-84.2046],[492.281,-1400.04,25.3,168.78,-84.0021],[481.66,-1300.67,24.7,164.189,-83.7867],[470.661,-1201.46,24.0833,159.402,-83.5506],[458.979,-1100.14,23.4333,154.281,-83.2836],[447.207,-1002.2,22.7833,149.085,-82.996],[434.433,-900.579,22.0833,143.408,-82.6603],[421.254,-800.728,21.3667,137.512,-82.2848],[407.356,-700.845,20.6167,131.254,-81.8521],[392.729,-601.637,19.8333,124.626,-81.3496],[377.05,-501.921,19,117.478,-80.7478],[359.985,-401.072,18.1,109.655,-80.0034],[341.513,-300.794,17.1333,101.146,-79.0675],[321.294,-201.451,16.0833,91.797,-77.8439],[298.006,-100.319,14.8833,81.0098,-76.0841],[270.947,-0.405447,13.5,68.5065,-73.3439],[236.772,99.1969,11.7667,52.9329,-68.0422],[180.423,199.714,8.93333,29.4355,-47.2872],[136.406,223.811,6.73333,20.045,-0.281332]]], + [74,226.135,[[519.404,-2001.94,28.6833,193.072,-85.2791],[510.897,-1900.29,28.15,189.338,-85.1484],[502.325,-1800.65,27.6167,185.547,-85.0113],[493.418,-1700.05,27.0667,181.578,-84.8627],[484.443,-1601.67,26.5167,177.551,-84.7063],[475.126,-1502.65,25.95,173.34,-84.5362],[465.185,-1400.44,25.35,168.814,-84.3453],[455.168,-1300.99,24.75,164.22,-84.1422],[444.794,-1201.7,24.1333,159.429,-83.9195],[433.776,-1100.28,23.4833,154.304,-83.6679],[422.673,-1002.26,22.8333,149.103,-83.3967],[410.625,-900.531,22.1333,143.421,-83.0801],[398.194,-800.578,21.4167,137.518,-82.726],[385.086,-700.587,20.6667,131.252,-82.3178],[371.29,-601.265,19.8833,124.614,-81.8438],[356.502,-501.427,19.05,117.455,-81.2761],[340.407,-400.446,18.15,109.618,-80.5736],[322.985,-300.024,17.1833,101.091,-79.6902],[303.915,-200.524,16.1333,91.7184,-78.5345],[282.257,-100.528,14.95,81.0475,-76.8972],[256.739,-0.190526,13.5667,68.4907,-74.3137],[224.509,99.9472,11.8333,52.8115,-69.3021],[172.626,199.853,9.06667,29.4054,-50.1921],[129.235,226.134,6.76667,18.9006,-0.248201]]], + [75,228.332,[[488.494,-2000.09,28.7167,193.021,-85.5639],[480.752,-1901.57,28.2,189.401,-85.4449],[472.7,-1801.86,27.6667,185.609,-85.3161],[464.333,-1701.18,27.1167,181.639,-85.1767],[455.902,-1602.71,26.5667,177.609,-85.0298],[446.892,-1500.73,25.9833,173.271,-84.8653],[437.812,-1401.31,25.4,168.868,-84.6909],[428.402,-1301.77,24.8,164.271,-84.5003],[418.658,-1202.38,24.1833,159.477,-84.2913],[408.307,-1100.87,23.5333,154.348,-84.0549],[397.609,-1000.27,22.8667,149.009,-83.7936],[386.56,-900.902,22.1833,143.456,-83.5031],[374.883,-800.833,21.4667,137.548,-83.1706],[362.57,-700.722,20.7167,131.274,-82.7874],[349.611,-601.272,19.9333,124.629,-82.3423],[335.719,-501.297,19.1,117.459,-81.809],[320.599,-400.167,18.2,109.609,-81.1491],[304.517,-301.248,17.25,101.213,-80.3345],[286.605,-201.413,16.2,91.8199,-79.2515],[266.263,-101.036,15.0167,81.1185,-77.7168],[242.295,-0.247418,13.6333,68.5114,-75.2932],[212.314,99.6277,11.9167,52.8827,-70.6398],[164.47,199.724,9.2,29.4634,-53.1278],[121.948,228.331,6.8,17.7502,-0.275885]]], + [76,230.4,[[457.555,-2001.96,28.7667,193.103,-85.8544],[450.082,-1900.21,28.2333,189.365,-85.7395],[442.552,-1800.48,27.7,185.569,-85.6191],[434.964,-1702.79,27.1667,181.718,-85.4926],[426.841,-1601.28,26.6,177.564,-85.3512],[418.656,-1502.16,26.0333,173.348,-85.2018],[410.167,-1402.65,25.45,168.942,-85.0388],[401.123,-1300.28,24.8333,164.215,-84.8557],[392.009,-1200.87,24.2167,159.416,-84.66],[382.578,-1101.89,23.5833,154.415,-84.4447],[372.575,-1001.17,22.9167,149.072,-84.2006],[362.243,-901.69,22.2333,143.515,-83.9292],[351.325,-801.496,21.5167,137.601,-83.6185],[339.811,-701.251,20.7667,131.322,-83.2604],[327.693,-601.662,19.9833,124.668,-82.8445],[314.703,-501.535,19.15,117.489,-82.3462],[300.566,-400.241,18.25,109.627,-81.7294],[285.527,-301.147,17.3,101.217,-80.9678],[268.779,-201.118,16.25,91.8024,-79.955],[249.757,-100.519,15.0667,81.0712,-78.5188],[227.616,-0.580806,13.7,68.5692,-76.2806],[199.585,99.8911,11.9833,52.8475,-71.9312],[155.678,199.726,9.31667,29.4774,-55.8978],[114.545,230.399,6.83333,16.5941,-0.377425]]], + [77,232.337,[[426.12,-2001.14,28.8,193.086,-86.1433],[419.385,-1902.51,28.2833,189.464,-86.0398],[412.381,-1802.69,27.75,185.668,-85.9279],[405.102,-1701.89,27.2,181.695,-85.8067],[397.545,-1600.35,26.6333,177.538,-85.675],[389.93,-1501.19,26.0667,173.319,-85.5359],[382.032,-1401.65,25.4833,168.91,-85.3843],[373.846,-1301.98,24.8833,164.308,-85.2186],[365.369,-1202.45,24.2667,159.507,-85.0368],[356.365,-1100.79,23.6167,154.371,-84.8313],[347.059,-1000.04,22.95,149.023,-84.604],[337.447,-900.522,22.2667,143.46,-84.3514],[327.289,-800.289,21.55,137.54,-84.0621],[316.578,-700.004,20.8,131.253,-83.7287],[305.305,-600.373,20.0167,124.591,-83.3413],[293.22,-500.202,19.1833,117.402,-82.877],[280.312,-400.673,18.3,109.674,-82.3137],[266.324,-301.386,17.35,101.249,-81.6059],[250.745,-201.143,16.3,91.816,-80.6642],[233.051,-100.301,15.1167,81.0571,-79.3283],[212.456,-0.0801311,13.75,68.5114,-77.2443],[186.637,99.9056,12.05,52.8564,-73.2359],[146.311,199.893,9.41667,29.436,-58.5224],[107.029,232.334,6.86667,15.4328,-0.569743]]], + [78,234.141,[[394.447,-2000.84,28.8333,193.088,-86.4342],[388.219,-1902.17,28.3167,189.464,-86.3385],[381.742,-1802.32,27.7833,185.666,-86.235],[375.012,-1701.48,27.2333,181.69,-86.1228],[368.23,-1602.86,26.6833,177.655,-86.0048],[360.983,-1500.71,26.1,173.31,-85.8725],[353.679,-1401.13,25.5167,168.898,-85.7323],[346.11,-1301.41,24.9167,164.293,-85.5791],[338.271,-1201.85,24.3,159.489,-85.4109],[329.945,-1100.14,23.65,154.349,-85.2208],[321.556,-1001.82,23,149.131,-85.016],[312.669,-902.16,22.3167,143.565,-84.7828],[303.278,-801.778,21.6,137.641,-84.5158],[293.375,-701.335,20.85,131.35,-84.208],[282.953,-601.537,20.0667,124.682,-83.8503],[271.78,-501.187,19.2333,117.486,-83.4217],[259.846,-401.465,18.35,109.748,-82.9016],[246.685,-300.297,17.3833,101.162,-82.2356],[232.509,-201.493,16.35,91.8611,-81.3784],[216.15,-100.385,15.1667,81.0769,-80.1442],[197.342,-0.975716,13.8167,68.6447,-78.2452],[173.472,99.6672,12.1167,52.9101,-74.5509],[136.665,199.824,9.51667,29.4717,-61.1767],[99.1644,234.14,6.88333,14.2657,-0.219272]]], + [79,235.808,[[362.545,-2001.06,28.8667,193.108,-86.7267],[356.827,-1902.36,28.35,189.482,-86.639],[350.881,-1802.46,27.8167,185.683,-86.5439],[344.701,-1701.58,27.2667,181.706,-86.441],[338.475,-1602.91,26.7167,177.668,-86.3326],[331.82,-1500.71,26.1333,173.321,-86.2112],[325.115,-1401.08,25.55,168.908,-86.0824],[318.165,-1301.32,24.95,164.3,-85.9417],[310.968,-1201.7,24.3333,159.493,-85.7874],[303.521,-1102.51,23.7,154.482,-85.6176],[295.621,-1001.57,23.0333,149.128,-85.4248],[287.462,-901.846,22.35,143.558,-85.2107],[278.84,-801.403,21.6333,137.629,-84.9655],[269.748,-700.895,20.8833,131.332,-84.6828],[260.178,-601.029,20.1,124.657,-84.3543],[249.92,-500.605,19.2667,117.452,-83.9606],[238.963,-400.805,18.3833,109.704,-83.4828],[227.089,-301.226,17.4333,101.255,-82.8821],[213.865,-200.655,16.3833,91.7869,-82.0826],[199.058,-100.778,15.2167,81.1312,-80.9653],[181.791,-1.0374,13.8667,68.6624,-79.2237],[160.094,99.1693,12.1833,53.0097,-75.8732],[126.524,199.953,9.6,29.441,-63.7044],[91.4475,235.806,6.91667,13.0948,-0.611441]]], + [80,237.338,[[330.427,-2001.82,28.9,193.145,-87.0209],[325.222,-1903.06,28.3833,189.519,-86.9408],[319.638,-1800.02,27.8333,185.599,-86.8518],[314.182,-1702.18,27.3,181.74,-86.7608],[308.341,-1600.51,26.7333,177.578,-86.6592],[302.455,-1501.21,26.1667,173.353,-86.5517],[296.35,-1401.52,25.5833,168.937,-86.4345],[290.023,-1301.7,24.9833,164.328,-86.3065],[283.471,-1202.02,24.3667,159.518,-86.166],[276.512,-1100.2,23.7167,154.372,-86.0072],[269.499,-1001.76,23.0667,149.148,-85.8361],[262.071,-901.967,22.3833,143.574,-85.6411],[254.221,-801.449,21.6667,137.641,-85.4179],[245.943,-700.864,20.9167,131.339,-85.1606],[237.231,-600.915,20.1333,124.658,-84.8616],[227.892,-500.404,19.3,117.446,-84.5031],[217.917,-400.51,18.4167,109.689,-84.068],[207.107,-300.829,17.4667,101.228,-83.521],[195.067,-200.146,16.4167,91.7446,-82.7925],[181.586,-100.143,15.25,81.0667,-81.7741],[165.867,-0.256292,13.9,68.5633,-80.185],[146.31,99.2713,12.2333,52.9999,-77.1604],[116.147,199.853,9.68333,29.4846,-66.2566],[83.4251,237.337,6.93333,11.9186,-0.394756]]], + [81,238.728,[[298.104,-2003.1,28.9333,193.201,-87.3163],[293.262,-1901.14,28.4,189.456,-87.242],[288.382,-1801.19,27.8667,185.654,-87.1641],[283.311,-1700.27,27.3167,181.673,-87.0796],[278.201,-1601.56,26.7667,177.631,-86.9906],[272.897,-1502.2,26.2,173.405,-86.8937],[267.396,-1402.45,25.6167,168.988,-86.7883],[261.694,-1302.56,25.0167,164.377,-86.6729],[255.629,-1200.15,24.3833,159.435,-86.5429],[249.518,-1100.91,23.75,154.417,-86.4035],[243.198,-1002.39,23.1,149.191,-86.2493],[236.341,-900.133,22.4,143.478,-86.0693],[229.43,-801.918,21.7,137.678,-85.8727],[221.97,-701.242,20.95,131.372,-85.6409],[214.119,-601.199,20.1667,124.686,-85.3715],[205.703,-500.585,19.3333,117.468,-85.0486],[196.713,-400.582,18.45,109.703,-84.6567],[186.971,-300.783,17.5,101.231,-84.1637],[176.294,-201.489,16.4667,91.886,-83.5187],[164.147,-101.159,15.3,81.1905,-82.6039],[149.982,-0.888458,13.95,68.6577,-81.1761],[132.183,99.9831,12.2667,52.8789,-78.421],[105.357,199.979,9.75,29.4527,-68.7033],[75.3371,238.727,6.95,10.7386,-0.24108]]], + [82,239.976,[[265.453,-2001.7,28.95,193.159,-87.6109],[261.278,-1902.9,28.4333,189.531,-87.5469],[256.935,-1802.89,27.9,185.728,-87.4776],[252.423,-1701.9,27.35,181.747,-87.4024],[247.738,-1600.16,26.7833,177.581,-87.3208],[243.017,-1500.8,26.2167,173.352,-87.2346],[238.12,-1401.05,25.6333,168.933,-87.1406],[233.045,-1301.16,25.0333,164.319,-87.038],[227.789,-1201.41,24.4167,159.505,-86.9253],[222.351,-1102.08,23.7833,154.486,-86.8013],[216.582,-1000.99,23.1167,149.123,-86.6605],[210.624,-901.125,22.4333,143.542,-86.5041],[204.327,-800.524,21.7167,137.601,-86.3251],[197.836,-702.036,20.9833,131.43,-86.1233],[190.849,-601.884,20.2,124.741,-85.8838],[183.359,-501.154,19.3667,117.517,-85.5967],[175.359,-401.025,18.4833,109.746,-85.2481],[166.689,-301.09,17.5333,101.266,-84.8098],[157.034,-200.123,16.4833,91.7565,-84.2259],[146.377,-101.147,15.3333,81.1957,-83.4222],[133.772,-0.67855,13.9833,68.6353,-82.1513],[118.088,99.5733,12.3167,52.9599,-79.7269],[94.376,199.883,9.81667,29.4928,-71.1708],[67.1858,239.976,6.96667,9.5551,-0.174443]]], + [83,241.082,[[232.654,-2000.84,28.9667,193.136,-87.9071],[228.996,-1902.03,28.45,189.505,-87.8509],[225.192,-1802.01,27.9167,185.701,-87.7902],[221.239,-1701.01,27.3667,181.718,-87.7242],[217.255,-1602.22,26.8167,177.675,-87.6549],[213.12,-1502.79,26.25,173.446,-87.5795],[208.708,-1400.14,25.65,168.899,-87.4948],[204.263,-1300.24,25.05,164.283,-87.4048],[199.658,-1200.48,24.4333,159.466,-87.306],[194.894,-1101.14,23.8,154.444,-87.1975],[189.841,-1000.04,23.1333,149.078,-87.074],[184.621,-900.167,22.45,143.494,-86.9369],[179.234,-801.848,21.75,137.688,-86.7836],[173.418,-701.059,21,131.374,-86.6031],[167.298,-600.897,20.2167,124.679,-86.3931],[160.736,-500.156,19.3833,117.449,-86.1413],[153.728,-400.017,18.5,109.67,-85.8356],[146.134,-300.071,17.55,101.181,-85.4509],[137.81,-200.616,16.5167,91.8115,-84.9475],[128.34,-100.104,15.35,81.0819,-84.2327],[117.435,-0.758007,14.0167,68.652,-83.132],[103.698,99.7732,12.35,52.9296,-81.0079],[83.2057,199.56,9.88333,29.6061,-73.645],[58.9738,241.081,6.98333,8.36829,-0.232012]]], + [84,242.043,[[199.719,-2000.52,28.9833,193.131,-88.2043],[196.58,-1901.69,28.4667,189.5,-88.1559],[193.316,-1801.66,27.9333,185.694,-88.1038],[189.924,-1700.65,27.3833,181.71,-88.0474],[186.506,-1601.84,26.8333,177.665,-87.9879],[182.959,-1502.39,26.2667,173.435,-87.9232],[179.279,-1402.53,25.6833,169.014,-87.8527],[175.465,-1302.54,25.0833,164.398,-87.7755],[171.408,-1200.03,24.45,159.45,-87.6886],[167.32,-1100.67,23.8167,154.426,-87.5951],[163.093,-1002.04,23.1667,149.192,-87.4921],[158.615,-902.045,22.4833,143.608,-87.3747],[153.884,-801.313,21.7667,137.661,-87.2402],[148.894,-700.502,21.0167,131.343,-87.0852],[143.642,-600.315,20.2333,124.644,-86.9048],[138.125,-501.505,19.4167,117.555,-86.6933],[132.113,-401.209,18.5333,109.772,-86.4315],[125.598,-301.092,17.5833,101.277,-86.1022],[118.457,-201.45,16.55,91.8997,-85.6711],[110.333,-100.723,15.3833,81.1578,-85.0591],[100.977,-1.12945,14.05,68.7079,-84.1164],[89.1916,99.7144,12.3833,52.9453,-82.2962],[71.6112,199.968,9.91667,29.4784,-75.9586],[50.7035,242.042,7,7.17869,-0.476004]]], + [85,242.858,[[166.66,-2000.74,29,193.144,-88.5024],[164.043,-1901.89,28.4833,189.512,-88.4623],[161.32,-1801.84,27.95,185.706,-88.4187],[158.491,-1700.8,27.4,181.721,-88.3716],[155.641,-1601.97,26.85,177.676,-88.322],[152.681,-1502.49,26.2833,173.444,-88.268],[149.612,-1402.61,25.7,169.022,-88.2092],[146.431,-1302.59,25.1,164.405,-88.1449],[143.048,-1200.05,24.4667,159.456,-88.0723],[139.638,-1100.66,23.8333,154.43,-87.9945],[136.113,-1002,23.1833,149.195,-87.9087],[132.378,-901.975,22.5,143.608,-87.8106],[128.432,-801.21,21.7833,137.66,-87.6984],[124.27,-700.363,21.0333,131.339,-87.5691],[119.89,-600.139,20.25,124.636,-87.4187],[115.289,-501.29,19.4333,117.543,-87.2423],[110.274,-400.951,18.55,109.756,-87.0239],[104.84,-300.788,17.6,101.254,-86.749],[98.8842,-201.096,16.5667,91.8686,-86.3893],[92.1084,-100.312,15.4,81.1148,-85.8784],[84.3052,-0.65345,14.0667,68.6466,-85.0911],[74.5746,99.3936,12.4167,53.0074,-83.5888],[60.0125,199.681,9.96667,29.5779,-78.3663],[42.3774,242.856,7.01667,5.98705,-1.01893]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 84.3052; +_maxRange = 485.365; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg1.sqf new file mode 100644 index 0000000000..e83ad0503a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg1.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg1 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,355.974,[[2366.83,-2000.54,31.1667,205.585,-71.8715],[2333.65,-1900.48,30.65,202.405,-71.4234],[2300.21,-1802.24,30.1333,199.188,-70.9572],[2265.41,-1702.78,29.6,195.828,-70.4559],[2229.24,-1602.33,29.05,192.323,-69.9162],[2191.67,-1501.09,28.4833,188.672,-69.3342],[2153.79,-1402.2,27.9167,184.981,-68.7243],[2113.35,-1300.07,27.3167,181.034,-68.0457],[2072.58,-1200.65,26.7167,177.047,-67.3308],[2030.33,-1101.32,26.1,172.914,-66.5553],[1986.58,-1002.37,25.4667,168.633,-65.7122],[1940.15,-901.604,24.8,164.094,-64.7692],[1892.16,-801.992,24.1167,159.413,-63.7381],[1841.4,-701.576,23.4,154.479,-62.5796],[1787.81,-601,22.65,149.3,-61.274],[1731.36,-500.954,21.8667,143.887,-59.7971],[1670.78,-400.216,21.0333,138.14,-58.084],[1607.21,-301.77,20.1667,132.202,-56.1275],[1536.88,-201.373,19.2167,125.772,-53.7503],[1459.67,-101.231,18.1833,118.923,-50.8482],[1372.89,-1.05613,17.0333,111.563,-47.1703],[1271.21,99.9895,15.7,103.526,-42.2178],[1147.79,199.495,14.1,94.8939,-35.1414],[969.214,299.686,11.8167,85.4089,-22.6646],[699.728,355.973,8.43333,80.486,-0.0578679]]], + [46,368.203,[[2340.76,-2000.42,31.3667,205.686,-72.2108],[2308.17,-1900.1,30.85,202.499,-71.7711],[2275.32,-1801.62,30.3333,199.272,-71.3135],[2241.13,-1701.91,29.8,195.903,-70.8214],[2205.6,-1601.18,29.25,192.388,-70.2915],[2169.77,-1502.62,28.7,188.833,-69.7374],[2131.47,-1400.49,28.1167,185.021,-69.1213],[2092.85,-1300.88,27.5333,181.17,-68.4738],[2052.81,-1201.08,26.9333,177.169,-67.7727],[2011.32,-1101.35,26.3167,173.019,-67.012],[1968.35,-1001.99,25.6833,168.72,-66.1848],[1922.74,-900.796,25.0167,164.159,-65.2595],[1875.6,-800.737,24.3333,159.453,-64.2474],[1826.91,-702.146,23.6333,154.607,-63.1374],[1774.29,-600.967,22.8833,149.396,-61.8571],[1718.85,-500.286,22.1,143.945,-60.4084],[1660.55,-400.835,21.2833,138.269,-58.7621],[1598.13,-301.547,20.4167,132.277,-56.844],[1529.09,-200.219,19.4667,125.78,-54.5114],[1454.5,-100.611,18.45,118.956,-51.7092],[1370.55,-0.499079,17.3167,111.588,-48.1531],[1273.26,99.9278,16.0167,103.582,-43.4181],[1155.95,199.226,14.4667,94.9389,-36.7007],[991.083,299.52,12.3167,85.3622,-25.1943],[699.359,368.2,8.58333,79.0308,-0.108102]]], + [47,380.412,[[2313.46,-2000.85,31.5667,205.806,-72.556],[2281.47,-1900.28,31.05,202.61,-72.1247],[2249.21,-1801.54,30.5333,199.376,-71.676],[2215.65,-1701.56,30,195.997,-71.1933],[2180.76,-1600.56,29.45,192.472,-70.6736],[2145.59,-1501.72,28.9,188.906,-70.13],[2109.06,-1402.18,28.3333,185.192,-69.5432],[2071.16,-1302.19,27.75,181.327,-68.9089],[2031.85,-1202,27.15,177.312,-68.2218],[1991.12,-1101.87,26.5333,173.146,-67.4763],[1948.94,-1002.09,25.9,168.828,-66.6654],[1904.18,-900.448,25.2333,164.247,-65.7582],[1859.04,-802.335,24.5667,159.633,-64.7907],[1810.11,-700.859,23.85,154.644,-63.6768],[1759.61,-601.374,23.1167,149.518,-62.4494],[1705.2,-500.04,22.3333,144.029,-61.0296],[1649.16,-401.889,21.5333,138.427,-59.4498],[1587.91,-301.741,20.6667,132.382,-57.5712],[1521.35,-201.187,19.7333,125.932,-55.3272],[1448.17,-100.399,18.7167,119.023,-52.5828],[1367.02,-0.366254,17.6,111.651,-49.1494],[1274.04,99.3726,16.3333,103.687,-44.6317],[1161.49,199.291,14.8167,94.9659,-38.1959],[1007.4,299.989,12.7667,85.2807,-27.4443],[697.05,380.411,8.71667,77.5626,-0.0580465]]], + [48,392.585,[[2284.92,-2001.87,31.7667,205.944,-72.9072],[2253.52,-1901.04,31.25,202.741,-72.4846],[2221.87,-1802.03,30.7333,199.499,-72.0449],[2188.95,-1701.77,30.2,196.111,-71.5719],[2154.71,-1600.48,29.65,192.576,-71.0625],[2120.21,-1501.35,29.1,188.999,-70.5297],[2084.37,-1401.51,28.5333,185.273,-69.9545],[2047.18,-1301.21,27.95,181.395,-69.3326],[2008.61,-1200.69,27.35,177.365,-68.659],[1968.65,-1100.22,26.7333,173.182,-67.9278],[1927.27,-1000.09,26.1,168.846,-67.1325],[1884.45,-900.584,25.45,164.358,-66.2654],[1840.17,-802.007,24.7833,159.721,-65.3174],[1792.16,-700.027,24.0667,154.705,-64.2258],[1742.63,-600.022,23.3333,149.548,-63.0225],[1690.4,-500.242,22.5667,144.141,-61.6608],[1635.43,-401.401,21.7667,138.496,-60.1132],[1575.35,-300.498,20.9,132.4,-58.2719],[1511.24,-200.867,19.9833,126.002,-56.112],[1440.66,-100.622,18.9833,119.125,-53.4688],[1362.29,-0.685603,17.8833,111.753,-50.1588],[1272.34,99.5358,16.6333,103.739,-45.7948],[1164.44,199.757,15.15,94.9667,-39.6297],[1022.09,299.394,13.2167,85.3295,-29.711],[694.137,392.585,8.85,76.0739,-0.0251461]]], + [49,404.71,[[2254.15,-2000.2,31.95,205.998,-73.2508],[2224.36,-1902.39,31.45,202.891,-72.8502],[2193.33,-1803.11,30.9333,199.641,-72.4197],[2161.04,-1702.56,30.4,196.245,-71.9566],[2127.48,-1600.97,29.85,192.7,-71.4578],[2093.64,-1501.54,29.3,189.113,-70.936],[2058.5,-1401.39,28.7333,185.375,-70.3727],[2022.04,-1300.76,28.15,181.485,-69.7636],[1985.28,-1202.67,27.5667,177.553,-69.1224],[1946.1,-1101.77,26.95,173.354,-68.4072],[1905.53,-1001.2,26.3167,169.001,-67.629],[1863.55,-901.229,25.6667,164.494,-66.7804],[1820.14,-802.174,25,159.835,-65.8526],[1774.19,-702.012,24.3,154.91,-64.8095],[1725.63,-601.371,23.5667,149.723,-63.633],[1674.44,-500.919,22.8,144.281,-62.3012],[1620.56,-401.37,22,138.595,-60.7869],[1562.81,-301.587,21.15,132.566,-59.0205],[1499.99,-200.996,20.2333,126.105,-56.9081],[1431.97,-101.309,19.25,119.264,-54.3662],[1355.17,-0.0323266,18.15,111.787,-51.1276],[1269.39,99.1994,16.9333,103.84,-46.9717],[1166.09,199.644,15.4833,95.0305,-41.0793],[1031.51,299.953,13.6167,85.2807,-31.7081],[763.733,399.884,9.96667,74.7746,-7.40013],[690.618,404.71,8.98333,74.565,-0.0107375]]], + [50,416.773,[[2223.15,-2002.45,32.15,206.175,-73.6134],[2192.98,-1901.12,31.6333,202.957,-73.2082],[2162.57,-1801.62,31.1167,199.699,-72.7865],[2130.93,-1700.84,30.5833,196.293,-72.3329],[2099.03,-1602.06,30.05,192.846,-71.8594],[2065.88,-1502.32,29.5,189.249,-71.3489],[2031.45,-1401.84,28.9333,185.5,-70.7977],[1995.72,-1300.87,28.35,181.597,-70.2016],[1959.7,-1202.44,27.7667,177.651,-69.5742],[1921.31,-1101.18,27.15,173.437,-68.874],[1881.56,-1000.23,26.5167,169.065,-68.1122],[1841.49,-902.405,25.8833,164.655,-67.3032],[1797.89,-800.415,25.2,159.857,-66.3725],[1753.94,-702.176,24.5167,155.024,-65.3757],[1706.37,-600.983,23.7833,149.807,-64.2247],[1657.31,-502.093,23.0333,144.45,-62.9507],[1604.54,-401.819,22.2333,138.723,-61.4706],[1547.98,-301.257,21.3833,132.645,-59.743],[1487.56,-201.597,20.4833,126.243,-57.7151],[1420.95,-100.848,19.5,119.325,-55.2297],[1348.03,-1.31548,18.4333,111.973,-52.1614],[1264.04,99.627,17.2167,103.883,-48.101],[1165.23,199.995,15.8,95.06,-42.47],[1039.42,299.652,14.0167,85.3365,-33.7223],[820.905,399.859,10.9667,74.5127,-14.0348],[686.485,416.772,9.11667,73.0364,-0.016121]]], + [51,428.758,[[2189.94,-2002.04,32.3333,206.268,-73.9688],[2160.4,-1900.49,31.8167,203.043,-73.5723],[2130.61,-1800.75,31.3,199.777,-73.1597],[2100.6,-1702.85,30.7833,196.47,-72.73],[2068.39,-1600.7,30.2333,192.905,-72.2524],[2035.92,-1500.7,29.6833,189.298,-71.7527],[2003.2,-1402.89,29.1333,185.648,-71.2294],[1968.21,-1301.57,28.55,181.732,-70.6467],[1931.94,-1200,27.95,177.659,-70.0152],[1895.36,-1101.16,27.35,173.543,-69.3486],[1857.47,-1002.44,26.7333,169.271,-68.6237],[1817.2,-901.594,26.0833,164.725,-67.8121],[1775.57,-801.631,25.4167,160.022,-66.9244],[1731.48,-700.506,24.7167,155.046,-65.9259],[1685.97,-601.108,24,149.92,-64.8256],[1637.94,-501.632,23.25,144.529,-63.58],[1586.28,-400.727,22.45,138.763,-62.1322],[1532,-301.415,21.6167,132.757,-60.4762],[1472.86,-200.902,20.7167,126.296,-58.4938],[1408.77,-100.864,19.75,119.423,-56.1055],[1337.4,-0.142289,18.6833,111.974,-53.1051],[1257.47,99.5472,17.5,103.973,-49.2444],[1163.08,199.767,16.1167,95.1508,-43.8759],[1044.64,299.285,14.4,85.4133,-35.6599],[853.358,399.92,11.6667,74.3889,-18.4936],[681.734,428.757,9.25,71.4882,-0.0429268]]], + [52,440.652,[[2155.53,-2002.3,32.5167,206.382,-74.3299],[2126.62,-1900.5,32,203.15,-73.9424],[2097.48,-1800.52,31.4833,199.876,-73.539],[2068.1,-1702.38,30.9667,196.56,-73.1189],[2037.55,-1603.04,30.4333,193.095,-72.6664],[2005.78,-1502.7,29.8833,189.478,-72.1785],[1972.79,-1401.62,29.3167,185.707,-71.6516],[1938.56,-1300.01,28.7333,181.778,-71.0816],[1904.04,-1200.94,28.15,177.805,-70.4815],[1868.26,-1101.71,27.55,173.674,-69.8303],[1831.19,-1002.61,26.9333,169.386,-69.1221],[1791.79,-901.344,26.2833,164.821,-68.3291],[1751.05,-800.949,25.6167,160.097,-67.4615],[1708.95,-701.739,24.9333,155.215,-66.5094],[1664.43,-601.771,24.2167,150.061,-65.4352],[1617.45,-501.693,23.4667,144.638,-64.2188],[1566.91,-400.139,22.6667,138.834,-62.8043],[1513.81,-300.144,21.8333,132.782,-61.1854],[1457.03,-200.698,20.95,126.385,-59.284],[1395.43,-101.383,20,119.559,-56.9927],[1326.73,-0.961082,18.95,112.132,-54.112],[1249.68,98.9322,17.7833,104.113,-50.4008],[1159.63,198.93,16.4333,95.305,-45.295],[1046.12,299.808,14.75,85.4104,-37.4357],[876.414,399.536,12.2667,74.3802,-22.2528],[676.363,440.65,9.38333,69.9211,-0.0928236]]], + [53,452.441,[[2119.91,-2003.25,32.7,206.517,-74.6968],[2091.64,-1901.2,32.1833,203.278,-74.3183],[2063.15,-1800.97,31.6667,199.996,-73.9244],[2034.42,-1702.57,31.15,196.673,-73.514],[2004.54,-1602.96,30.6167,193.199,-73.0721],[1973.48,-1502.35,30.0667,189.572,-72.5955],[1941.23,-1400.97,29.5,185.789,-72.0808],[1908.71,-1301.95,28.9333,181.962,-71.5403],[1874.97,-1202.5,28.35,177.976,-70.9548],[1839.01,-1100.15,27.7333,173.716,-70.3012],[1802.76,-1000.72,27.1167,169.41,-69.6089],[1765.23,-901.677,26.4833,164.944,-68.8541],[1725.4,-800.835,25.8167,160.199,-68.0071],[1684.24,-701.164,25.1333,155.294,-67.0773],[1640.72,-600.707,24.4167,150.112,-66.0281],[1594.78,-500.113,23.6667,144.657,-64.8394],[1546.41,-400.077,22.8833,138.936,-63.4866],[1495.55,-301.336,22.0667,132.961,-61.9393],[1440.06,-201.012,21.1833,126.509,-60.0853],[1379.86,-100.743,20.2333,119.614,-57.8492],[1313.79,-0.789146,19.2,112.216,-55.0822],[1239.57,99.1155,18.05,104.19,-51.5131],[1152.68,199.768,16.7167,95.3096,-46.5906],[1046.2,299.6,15.1,85.4935,-39.2285],[891.682,399.5,12.7833,74.371,-25.4443],[669.226,452.44,9.5,68.3409,-0.0306548]]], + [54,464.111,[[2082.2,-2001.58,32.8667,206.569,-75.0574],[2055.46,-1902.6,32.3667,203.428,-74.6999],[2027.62,-1802.1,31.85,200.139,-74.3156],[1998.65,-1700.29,31.3167,196.7,-73.902],[1969.45,-1600.46,30.7833,193.216,-73.4703],[1940.02,-1502.66,30.25,189.689,-73.019],[1908.51,-1400.98,29.6833,185.896,-72.5167],[1876.74,-1301.65,29.1167,182.057,-71.9892],[1843.77,-1201.89,28.5333,178.058,-71.4177],[1809.6,-1101.95,27.9333,173.899,-70.7974],[1774.18,-1002.09,27.3167,169.578,-70.1226],[1736.56,-900.041,26.6667,164.976,-69.3668],[1698.62,-801.314,26.0167,160.329,-68.5608],[1658.41,-701.167,25.3333,155.401,-67.6539],[1615.9,-600.206,24.6167,150.193,-66.6302],[1572.03,-501.275,23.8833,144.828,-65.4969],[1524.78,-400.567,23.1,139.071,-64.1786],[1475.11,-301.119,22.2833,133.053,-62.6699],[1420.92,-200.024,21.4,126.547,-60.8609],[1363.16,-100.622,20.4667,119.708,-58.7179],[1299.68,-1.14887,19.45,112.344,-56.0647],[1228.27,98.7535,18.3167,104.316,-52.6389],[1145.57,198.865,17.0167,95.4807,-47.9684],[1043.79,299.565,15.4333,85.5673,-40.952],[901.747,399.538,13.25,74.3803,-28.3119],[662.626,464.108,9.63333,66.7364,-0.129332]]], + [55,475.648,[[2043.31,-2000.63,33.0333,206.643,-75.4239],[2017.21,-1901.45,32.5333,203.494,-75.075],[1990.02,-1800.74,32.0167,200.198,-74.7001],[1962.63,-1701.86,31.5,196.858,-74.3094],[1934.12,-1601.75,30.9667,193.367,-73.8886],[1904.49,-1500.62,30.4167,189.72,-73.4347],[1874.63,-1401.66,29.8667,186.027,-72.9592],[1843.62,-1302.02,29.3,182.177,-72.4449],[1811.44,-1201.93,28.7167,178.166,-71.8878],[1778.08,-1101.65,28.1167,173.993,-71.283],[1743.51,-1001.44,27.5,169.656,-70.6249],[1707.73,-901.602,26.8667,165.154,-69.9072],[1670.7,-802.412,26.2167,160.489,-69.1222],[1631.46,-701.773,25.5333,155.539,-68.2388],[1589.97,-600.291,24.8167,150.304,-67.2413],[1547.15,-500.823,24.0833,144.91,-66.1367],[1502.03,-401.636,23.3167,139.24,-64.8798],[1453.55,-301.462,22.5,133.18,-63.4107],[1401.67,-201.432,21.6333,126.746,-61.6833],[1345.31,-101.048,20.7,119.842,-59.598],[1283.38,-0.493769,19.6833,112.395,-57.0134],[1214.74,99.2228,18.5667,104.374,-53.7237],[1135.1,199.737,17.2833,95.4911,-49.2294],[1038.97,299.771,15.75,85.6234,-42.6094],[907.906,399.47,13.6833,74.4231,-30.9751],[654.307,475.646,9.75,65.1191,-0.113572]]], + [56,487.038,[[2003.26,-2000.42,33.2,206.738,-75.796],[1977.8,-1901.02,32.7,203.583,-75.4561],[1951.28,-1800.09,32.1833,200.279,-75.0906],[1924.55,-1700.98,31.6667,196.932,-74.7098],[1896.75,-1600.64,31.1333,193.431,-74.2996],[1868.73,-1502.3,30.6,189.886,-73.8709],[1838.72,-1400.06,30.0333,186.071,-73.3935],[1808.47,-1300.16,29.4667,182.209,-72.8921],[1777.98,-1202.64,28.9,178.3,-72.3647],[1745.44,-1102.01,28.3,174.113,-71.7757],[1711.73,-1001.44,27.6833,169.761,-71.1348],[1676.83,-901.218,27.05,165.243,-70.4356],[1640.72,-801.637,26.4,160.557,-69.6707],[1602.45,-700.583,25.7167,155.585,-68.8098],[1562.93,-600.983,25.0167,150.447,-67.8609],[1521.18,-500.96,24.2833,145.023,-66.7857],[1477.18,-401.188,23.5167,139.319,-65.5617],[1429.91,-300.385,22.7,133.218,-64.1304],[1380.3,-201.557,21.85,126.859,-62.4806],[1325.35,-100.304,20.9167,119.893,-60.4502],[1265.96,-0.383919,19.9167,112.489,-57.975],[1200.05,99.1362,18.8167,104.481,-54.8222],[1124.45,198.81,17.5667,95.6722,-50.5688],[1032.83,299.283,16.0667,85.7583,-44.282],[910.315,399.56,14.0833,74.463,-33.4396],[645.408,487.036,9.86667,63.4837,-0.122262]]], + [57,498.269,[[1962.04,-2000.97,33.3667,206.856,-76.1737],[1937.23,-1901.35,32.8667,203.695,-75.8427],[1911.39,-1800.18,32.35,200.384,-75.487],[1885.34,-1700.84,31.8333,197.029,-75.1163],[1858.25,-1600.25,31.3,193.52,-74.7169],[1830.94,-1501.67,30.7667,189.965,-74.2995],[1802.56,-1402.15,30.2167,186.253,-73.8487],[1773.09,-1301.91,29.65,182.381,-73.3611],[1742.5,-1201.2,29.0667,178.345,-72.8327],[1710.8,-1100.28,28.4667,174.144,-72.2589],[1678.84,-1002.1,27.8667,169.895,-71.6519],[1644.83,-901.492,27.2333,165.36,-70.9717],[1609.65,-801.504,26.5833,160.656,-70.2274],[1572.36,-700.019,25.9,155.661,-69.3895],[1534.77,-602.31,25.2167,150.622,-68.4886],[1494.11,-501.715,24.4833,145.171,-67.4434],[1451.24,-401.339,23.7167,139.434,-66.2533],[1406.14,-301.9,22.9167,133.418,-64.8908],[1356.86,-200.377,22.05,126.886,-63.2549],[1304.29,-100.123,21.1333,119.984,-61.3144],[1247.42,-0.846418,20.15,112.628,-58.9487],[1183.22,99.9106,19.05,104.517,-55.8831],[1110.59,199.75,17.8167,95.6821,-51.7984],[1024.35,299.1,16.3667,85.8664,-45.8909],[910.133,399.315,14.4667,74.5562,-35.8159],[634.896,498.269,9.96667,61.8352,-0.0062493]]], + [58,509.328,[[1919.66,-2002.31,33.5333,206.997,-76.5567],[1895.5,-1902.46,33.0333,203.83,-76.2349],[1870.35,-1801.05,32.5167,200.513,-75.8891],[1845,-1701.46,32,197.151,-75.5287],[1818.62,-1600.61,31.4667,193.634,-75.1403],[1792.03,-1501.77,30.9333,190.071,-74.7344],[1764.4,-1401.98,30.3833,186.349,-74.296],[1735.71,-1301.46,29.8167,182.466,-73.8218],[1705.94,-1200.47,29.2333,178.418,-73.3079],[1675.93,-1102.02,28.65,174.321,-72.7657],[1643.96,-1000.76,28.0333,169.939,-72.1591],[1611.73,-902.444,27.4167,165.507,-71.5152],[1577.48,-802.036,26.7667,160.785,-70.792],[1541.19,-700.104,26.0833,155.77,-69.9777],[1504.6,-601.944,25.4,150.707,-69.1019],[1465.02,-500.861,24.6667,145.228,-68.0856],[1424.21,-402.111,23.9167,139.584,-66.9541],[1380.31,-302.016,23.1167,133.53,-65.6307],[1333.29,-201.681,22.2667,127.077,-64.0731],[1282.14,-100.528,21.35,120.118,-62.1898],[1226.79,-0.278128,20.3667,112.688,-59.8917],[1166.23,98.653,19.3,104.726,-57.007],[1096.53,198.836,18.0833,95.8668,-53.1029],[1013.62,299.282,16.65,85.9403,-47.4398],[906.452,399.599,14.8167,74.5952,-38.0056],[706.822,499.98,11.45,61.2786,-12.6604],[624.857,509.327,10.0833,60.1645,-0.0667377]]], + [59,520.199,[[1875.33,-2001.1,33.6833,207.057,-76.9346],[1851.84,-1901.06,33.1833,203.883,-76.6218],[1828.17,-1802.7,32.6833,200.666,-76.2966],[1803.51,-1702.86,32.1667,197.297,-75.9467],[1777.86,-1601.75,31.6333,193.773,-75.5696],[1752.01,-1502.64,31.1,190.202,-75.1755],[1725.14,-1402.56,30.55,186.471,-74.7497],[1697.24,-1301.76,29.9833,182.577,-74.2891],[1668.29,-1200.46,29.4,178.518,-73.79],[1639.11,-1101.7,28.8167,174.409,-73.2633],[1608.01,-1000.12,28.2,170.012,-72.674],[1576.67,-901.472,27.5833,165.564,-72.0482],[1543.37,-800.714,26.9333,160.824,-71.3454],[1508.94,-700.862,26.2667,155.911,-70.5738],[1473.37,-602.235,25.5833,150.825,-69.7237],[1434.88,-500.647,24.85,145.319,-68.7369],[1395.2,-401.375,24.1,139.644,-67.638],[1352.52,-300.719,23.3,133.553,-66.352],[1307.7,-201.701,22.4667,127.182,-64.8689],[1258.88,-101.548,21.5667,120.294,-63.0757],[1205.09,-0.298736,20.5833,112.793,-60.8473],[1146.22,99.7264,19.5167,104.738,-58.0463],[1079.4,199.871,18.3167,95.871,-54.3045],[1000.71,299.878,16.9167,85.9735,-48.9324],[900.381,399.801,15.15,74.6517,-40.1157],[731.626,499.824,12.2167,61.2537,-18.9071],[614.232,520.196,10.2,58.4769,-0.159129]]], + [60,530.871,[[1829.9,-2000.7,33.8333,207.14,-77.318],[1807.07,-1900.46,33.3333,203.96,-77.0144],[1784.07,-1801.91,32.8333,200.736,-76.6987],[1760.12,-1701.86,32.3167,197.36,-76.3589],[1735.2,-1600.53,31.7833,193.827,-75.9928],[1710.09,-1501.21,31.25,190.247,-75.61],[1683.98,-1400.91,30.7,186.506,-75.1966],[1657.68,-1302.8,30.15,182.717,-74.7628],[1629.55,-1201.19,29.5667,178.647,-74.2786],[1601.21,-1102.12,28.9833,174.526,-73.7677],[1571.01,-1000.2,28.3667,170.115,-73.196],[1540.56,-901.206,27.75,165.652,-72.5889],[1508.21,-800.084,27.1,160.894,-71.9069],[1475.61,-702.317,26.45,156.085,-71.1773],[1440.22,-600.838,25.75,150.853,-70.3326],[1403.69,-501.096,25.0333,145.446,-69.397],[1365.15,-401.285,24.2833,139.741,-68.3314],[1323.7,-300.048,23.4833,133.613,-67.0839],[1280.17,-200.419,22.65,127.2,-65.6445],[1233.64,-101.402,21.7667,120.387,-63.9368],[1182.29,-0.933184,20.8,112.945,-61.8144],[1126.04,98.713,19.75,104.926,-59.146],[1062.07,198.995,18.5667,96.054,-55.5776],[986.6,299.83,17.1833,86.0765,-50.442],[891.995,399.999,15.4667,74.7148,-42.1488],[743.239,499.831,12.8,61.2658,-23.5722],[602.074,530.869,10.3,56.7765,-0.121726]]], + [61,541.332,[[1783.35,-2001.13,33.9833,207.247,-77.7068],[1761.21,-1900.69,33.4833,204.061,-77.4125],[1738.89,-1801.93,32.9833,200.831,-77.1064],[1715.65,-1701.67,32.4667,197.448,-76.777],[1691.47,-1600.12,31.9333,193.908,-76.4221],[1667.1,-1500.56,31.4,190.319,-76.0509],[1641.77,-1400.03,30.85,186.569,-75.6501],[1616.24,-1301.68,30.3,182.77,-75.2293],[1589.73,-1202.69,29.7333,178.805,-74.7736],[1561.45,-1100.49,29.1333,174.554,-74.2642],[1532.94,-1001.01,28.5333,170.249,-73.7251],[1503.4,-901.665,27.9167,165.771,-73.1369],[1472.02,-800.163,27.2667,160.997,-72.4762],[1440.39,-702.013,26.6167,156.168,-71.7692],[1406.05,-600.119,25.9167,150.914,-70.9505],[1371.44,-502.229,25.2167,145.609,-70.0653],[1334.06,-401.859,24.4667,139.875,-69.0339],[1293.85,-300.021,23.6667,133.713,-67.8259],[1252.47,-201.706,22.85,127.386,-66.4607],[1206.49,-100.067,21.95,120.393,-64.7757],[1157.55,-0.526633,21,113.015,-62.7539],[1103.86,98.5749,19.9667,105.039,-60.2116],[1042.7,198.804,18.8,96.1733,-56.8083],[971.294,299.112,17.45,86.2516,-51.9657],[882.265,399.392,15.7833,74.8811,-44.1978],[748.072,499.715,13.3,61.3274,-27.5512],[589.385,541.33,10.4,55.0595,-0.112788]]], + [62,551.569,[[1735.71,-2002.43,34.1333,207.379,-78.1006],[1714.25,-1901.77,33.6333,204.188,-77.8158],[1692.62,-1802.79,33.1333,200.952,-77.5196],[1670.1,-1702.31,32.6167,197.562,-77.2007],[1646.67,-1600.52,32.0833,194.015,-76.8572],[1623.05,-1500.73,31.55,190.419,-76.4979],[1599.25,-1402.96,31.0167,186.774,-76.1219],[1573.76,-1301.35,30.45,182.851,-75.7025],[1548.08,-1202.1,29.8833,178.876,-75.2612],[1521.43,-1102.42,29.3,174.731,-74.7821],[1493.81,-1002.59,28.7,170.414,-74.2607],[1464.41,-900.22,28.0667,165.801,-73.6761],[1434.79,-800.978,27.4333,161.132,-73.0529],[1404.14,-702.429,26.7833,156.286,-72.369],[1370.87,-600.101,26.0833,151.011,-71.5769],[1337.33,-501.774,25.3833,145.681,-70.7202],[1301.11,-400.932,24.6333,139.919,-69.7217],[1262.97,-300.662,23.85,133.851,-68.5772],[1222.89,-201.707,23.0333,127.486,-67.257],[1179.17,-101.187,22.15,120.573,-65.6588],[1131.76,-0.747641,21.2,113.133,-63.7054],[1079.76,99.3409,20.1667,105.076,-61.2464],[1021.37,199.335,19.0167,96.225,-58.0001],[953.925,298.854,17.7,86.379,-53.4361],[869.452,399.756,16.0667,74.9317,-46.0838],[747.433,499.869,13.7333,61.3679,-31.0055],[576.166,551.567,10.5,53.3263,-0.135333]]], + [63,561.568,[[1686.28,-2001.21,34.2667,207.43,-78.4903],[1665.5,-1900.39,33.7667,204.232,-78.2148],[1644.57,-1801.24,33.2667,200.99,-77.9281],[1622.77,-1700.57,32.75,197.593,-77.6197],[1600.8,-1601.76,32.2333,194.149,-77.2978],[1577.94,-1501.72,31.7,190.546,-76.9506],[1554.19,-1400.67,31.15,186.779,-76.5756],[1530.25,-1301.82,30.6,182.961,-76.1819],[1505.39,-1202.29,30.0333,178.976,-75.7553],[1479.61,-1102.34,29.45,174.82,-75.2921],[1452.87,-1002.21,28.85,170.491,-74.7881],[1425.18,-902.188,28.2333,165.985,-74.2381],[1396.51,-802.547,27.6,161.302,-73.6365],[1366.1,-701.093,26.9333,156.314,-72.9586],[1334.67,-600.808,26.25,151.143,-72.2111],[1302.22,-502.028,25.55,145.791,-71.3836],[1267.18,-400.695,24.8,140.001,-70.4187],[1231.07,-301.997,24.0333,134.031,-69.3372],[1191.49,-200.408,23.2,127.497,-68.0357],[1150,-101.139,22.3333,120.668,-66.5199],[1104.94,-1.62257,21.4,113.299,-64.6677],[1054.63,99.481,20.3667,105.164,-62.2946],[998.979,199.236,19.2333,96.3343,-59.2065],[934.575,299.097,17.9333,86.4534,-54.8574],[855.394,399.378,16.35,75.0753,-47.9873],[743.358,499.748,14.1333,61.4623,-34.2165],[561.558,561.568,10.5833,51.5804,-0.0115238]]], + [64,571.321,[[1635.8,-2000.88,34.4,207.506,-78.8853],[1616.39,-1903.22,33.9167,204.41,-78.6282],[1595.49,-1800.55,33.4,201.055,-78.3424],[1575.1,-1702.92,32.9,197.761,-78.0542],[1553.18,-1600.69,32.3667,194.2,-77.7335],[1531.1,-1500.45,31.8333,190.588,-77.3982],[1508.84,-1402.24,31.3,186.927,-77.047],[1485,-1300.14,30.7333,182.984,-76.6554],[1460.98,-1200.4,30.1667,178.989,-76.2432],[1436.05,-1100.22,29.5833,174.821,-75.7956],[1410.94,-1002.62,29,170.599,-75.3223],[1384.18,-902.275,28.3833,166.08,-74.7916],[1356.48,-802.303,27.75,161.382,-74.2108],[1327.09,-700.497,27.0833,156.376,-73.5563],[1297.46,-602.259,26.4167,151.312,-72.8528],[1265.37,-500.693,25.7,145.81,-72.0352],[1232.26,-401.164,24.9667,140.122,-71.1246],[1197.37,-301.941,24.2,134.122,-70.0813],[1159.9,-201.76,23.3833,127.682,-68.8518],[1119.82,-101.759,22.5167,120.808,-67.3914],[1076.29,-1.44812,21.5833,113.382,-65.6055],[1028.48,98.9751,20.5667,105.304,-63.355],[974.728,199.885,19.4333,96.3726,-60.3775],[913.322,299.885,18.15,86.4698,-56.2337],[839.278,399.193,16.6167,75.1966,-49.8227],[736.014,499.612,14.5,61.5681,-37.1916],[547.309,571.319,10.6833,49.8157,-0.101953]]], + [65,580.811,[[1584.29,-2001.46,34.5333,207.608,-79.2854],[1564.91,-1900.27,34.0333,204.4,-79.0288],[1545.39,-1800.75,33.5333,201.146,-78.7619],[1525.72,-1702.93,33.0333,197.847,-78.4841],[1504.57,-1600.49,32.5,194.278,-78.175],[1483.26,-1500.05,31.9667,190.659,-77.8516],[1461.78,-1401.63,31.4333,186.99,-77.513],[1439.46,-1302.28,30.8833,183.155,-77.1468],[1416.28,-1202.24,30.3167,179.151,-76.7499],[1392.24,-1101.75,29.7333,174.973,-76.3188],[1367.31,-1001.08,29.1333,170.619,-75.8496],[1341.49,-900.478,28.5167,166.086,-75.3375],[1314.76,-800.244,27.8833,161.372,-74.7771],[1287.11,-700.667,27.2333,156.474,-74.1618],[1258.54,-602.059,26.5667,151.392,-73.4838],[1227.57,-500.091,25.85,145.867,-72.6958],[1195.63,-400.147,25.1167,140.153,-71.8178],[1161.97,-300.486,24.35,134.123,-70.8115],[1126.56,-201.832,23.55,127.779,-69.6506],[1087.89,-101.203,22.6833,120.861,-68.2435],[1045.91,-0.208869,21.75,113.381,-66.5217],[1000.55,99.3806,20.75,105.365,-64.3878],[949.472,199.891,19.6333,96.4688,-61.563],[891.8,298.809,18.3833,86.6813,-57.685],[821.189,399.249,16.8667,75.2881,-51.5948],[725.575,499.683,14.8333,61.6479,-39.9427],[531.733,580.81,10.7667,48.0388,-0.0409999]]], + [66,590.032,[[1531.74,-2002.96,34.6667,207.736,-79.6902],[1513.08,-1901.57,34.1667,204.523,-79.4434],[1494.28,-1801.85,33.6667,201.264,-79.1866],[1474.7,-1700.59,33.15,197.849,-78.9102],[1454.96,-1601.17,32.6333,194.385,-78.6218],[1434.43,-1500.51,32.1,190.759,-78.3107],[1413.74,-1401.86,31.5667,187.083,-77.9849],[1392.24,-1302.29,31.0167,183.239,-77.6324],[1369.92,-1202.01,30.45,179.225,-77.2504],[1346.76,-1101.27,29.8667,175.037,-76.8355],[1322.74,-1000.34,29.2667,170.672,-76.3839],[1298.55,-902.159,28.6667,166.249,-75.9046],[1272.81,-801.565,28.0333,161.521,-75.3659],[1246.18,-701.615,27.3833,156.608,-74.7744],[1217.96,-600.191,26.7,151.38,-74.1056],[1188.83,-500.232,26,145.962,-73.3646],[1158.77,-402.086,25.2833,140.355,-72.5401],[1126.36,-301.861,24.5167,134.298,-71.5738],[1091.55,-200.601,23.7,127.787,-70.434],[1055.03,-101.33,22.85,120.961,-69.1062],[1015.32,-1.37692,21.9333,113.563,-67.4819],[971.652,99.1272,20.9333,105.48,-65.4328],[923.209,199.237,19.8333,96.6245,-62.7612],[867.686,299.512,18.5833,86.7038,-59.0349],[801.208,399.602,17.1,75.3427,-53.308],[712.966,499.473,15.15,61.7743,-42.5954],[515.689,590.032,10.85,46.2469,-0.0136364]]], + [67,598.968,[[1477.58,-2002,34.7833,207.784,-80.0918],[1459.64,-1900.45,34.2833,204.566,-79.8545],[1441.55,-1800.58,33.7833,201.301,-79.6077],[1423.33,-1702.41,33.2833,197.99,-79.3508],[1404.36,-1602.77,32.7667,194.521,-79.0739],[1384.62,-1501.87,32.2333,190.889,-78.7751],[1364.73,-1402.99,31.7,187.206,-78.4623],[1343.43,-1300.18,31.1333,183.237,-78.1134],[1322.59,-1202.64,30.5833,179.332,-77.7571],[1300.32,-1101.64,30,175.135,-77.3586],[1277.24,-1000.44,29.4,170.758,-76.9248],[1253.97,-901.983,28.8,166.323,-76.4645],[1229.22,-801.096,28.1667,161.581,-75.947],[1203.62,-700.843,27.5167,156.652,-75.3786],[1177.16,-601.534,26.85,151.535,-74.7521],[1149.15,-501.148,26.15,146.097,-74.0413],[1119.58,-400.319,25.4167,140.337,-73.2307],[1089.1,-301.857,24.6667,134.384,-72.3224],[1055.64,-200.085,23.85,127.84,-71.2279],[1020.53,-100.275,23,120.974,-69.9521],[983.058,-1.49826,22.1,113.661,-68.4206],[941.082,99.7991,21.1,105.513,-66.4535],[895.227,199.341,20.0167,96.7067,-63.9276],[842.58,299.559,18.7833,86.7929,-60.4012],[780.139,399.26,17.3333,75.481,-55.0386],[697.543,499.784,15.4333,61.8229,-45.0451],[499.18,598.968,10.9333,44.4405,-0.0247395]]], + [68,607.612,[[1422.47,-2001.98,34.9,207.859,-80.4982],[1405.25,-1900.27,34.4,204.636,-80.2707],[1387.89,-1800.24,33.9,201.366,-80.034],[1370.41,-1701.9,33.4,198.049,-79.7875],[1352.19,-1602.09,32.8833,194.574,-79.522],[1333.25,-1501.01,32.35,190.935,-79.2354],[1314.16,-1401.96,31.8167,187.244,-78.9353],[1294.32,-1301.95,31.2667,183.385,-78.6107],[1273.72,-1201.22,30.7,179.353,-78.2587],[1252.35,-1100.02,30.1167,175.144,-77.8764],[1230.81,-1001.38,29.5333,170.879,-77.4719],[1208.49,-902.64,28.9333,166.433,-77.0309],[1184.74,-801.445,28.3,161.678,-76.5349],[1160.18,-700.873,27.65,156.734,-75.9902],[1134.78,-601.234,26.9833,151.6,-75.3896],[1107.91,-500.498,26.2833,146.143,-74.708],[1080.18,-401.55,25.5667,140.491,-73.9491],[1050.29,-300.457,24.8,134.379,-73.0592],[1018.84,-200.295,24,127.937,-72.0312],[985.819,-101.831,23.1667,121.169,-70.8342],[949.205,-0.546981,22.25,113.674,-69.3404],[909.607,99.7965,21.2667,105.601,-67.4865],[866.3,198.772,20.2,96.8489,-65.1066],[816.489,298.934,18.9833,86.9503,-61.7812],[757.296,399.256,17.55,75.5761,-56.7139],[680.881,499.264,15.7167,61.9983,-47.5131],[534.669,599.989,12.25,44.1475,-15.947],[482.211,607.611,11.0167,42.62,-0.079263]]], + [69,615.951,[[1366.4,-2002.93,35.0167,207.96,-80.9094],[1349.91,-1901.05,34.5167,204.733,-80.6917],[1333.29,-1800.84,34.0167,201.459,-80.4652],[1316.54,-1702.33,33.5167,198.137,-80.2295],[1299.1,-1602.34,33,194.656,-79.9754],[1280.96,-1501.07,32.4667,191.011,-79.7012],[1262.68,-1401.82,31.9333,187.313,-79.4141],[1243.69,-1301.61,31.3833,183.446,-79.1034],[1223.96,-1200.68,30.8167,179.406,-78.7665],[1204.08,-1102.12,30.25,175.309,-78.4114],[1182.87,-1000.41,29.65,170.911,-78.0135],[1161.49,-901.438,29.05,166.454,-77.5913],[1138.75,-800.003,28.4167,161.685,-77.1164],[1115.84,-701.726,27.7833,156.854,-76.6086],[1091.52,-601.74,27.1167,151.704,-76.0345],[1065.8,-500.637,26.4167,146.228,-75.3827],[1039.25,-401.309,25.7,140.556,-74.6569],[1011.25,-301.961,24.95,134.552,-73.8249],[981.143,-201.254,24.15,128.081,-72.8432],[948.9,-100.298,23.3,121.141,-71.6754],[914.486,-0.296379,22.4,113.737,-70.2718],[877.224,99.0956,21.4333,105.744,-68.5306],[835.771,198.986,20.3667,96.915,-66.2573],[788.749,298.907,19.1667,87.0417,-63.1238],[732.759,399.63,17.75,75.6221,-58.3392],[661.635,499.468,15.9667,62.0629,-49.7946],[537.986,599.711,12.9,44.26,-23.6166],[464.78,615.949,11.1,40.7859,-0.183458]]], + [70,623.976,[[1308.88,-2001.44,35.1167,207.983,-81.318],[1293.65,-1902.81,34.6333,204.86,-81.1171],[1277.77,-1802.42,34.1333,201.581,-80.9011],[1261.24,-1700.46,33.6167,198.144,-80.6684],[1244.57,-1600.33,33.1,194.656,-80.4257],[1227.79,-1502.06,32.5833,191.118,-80.1721],[1210.32,-1402.61,32.05,187.414,-79.8981],[1192.17,-1302.19,31.5,183.54,-79.6016],[1173.33,-1201.03,30.9333,179.492,-79.2801],[1154.34,-1102.26,30.3667,175.387,-78.9411],[1134.08,-1000.3,29.7667,170.979,-78.5614],[1113.66,-901.095,29.1667,166.511,-78.1583],[1092.51,-802.04,28.55,161.856,-77.7173],[1070.04,-700.869,27.9,156.885,-77.2201],[1046.81,-600.61,27.2333,151.718,-76.6718],[1022.82,-501.585,26.55,146.356,-76.0646],[997.466,-401.859,25.8333,140.663,-75.3725],[970.721,-302.09,25.0833,134.636,-74.579],[941.967,-200.931,24.2833,128.136,-73.6423],[911.777,-101.418,23.45,121.299,-72.5508],[878.911,-0.766706,22.55,113.852,-71.2134],[843.326,99.3298,21.5833,105.805,-69.5532],[804.359,198.511,20.5333,97.0417,-67.4203],[759.458,299.505,19.3333,87.064,-64.4329],[707.256,399.324,17.95,75.7488,-59.9813],[640.627,499.721,16.2,62.1186,-52.001],[531.627,599.961,13.3667,44.2855,-29.1496],[446.245,623.975,11.1667,38.9403,-0.104568]]], + [71,631.676,[[1250.47,-2000.94,35.2167,208.034,-81.7313],[1235.96,-1902.18,34.7333,204.905,-81.54],[1220.83,-1801.65,34.2333,201.622,-81.3342],[1205.58,-1702.81,33.7333,198.291,-81.1199],[1189.71,-1602.48,33.2167,194.799,-80.889],[1173.2,-1500.86,32.6833,191.141,-80.6397],[1156.55,-1401.26,32.15,187.431,-80.3787],[1139.26,-1300.68,31.6,183.549,-80.0961],[1121.83,-1202.31,31.05,179.612,-79.7991],[1103.21,-1100.42,30.4667,175.377,-79.4668],[1084.43,-1001.09,29.8833,171.083,-79.1152],[1064.98,-901.627,29.2833,166.604,-78.7316],[1044.83,-802.308,28.6667,161.939,-78.3119],[1023.42,-700.856,28.0167,156.954,-77.8386],[1001.29,-600.307,27.35,151.773,-77.3166],[978.435,-500.981,26.6667,146.393,-76.7385],[954.275,-400.938,25.95,140.681,-76.0793],[928.794,-300.835,25.2,134.63,-75.3232],[901.971,-201.374,24.4167,128.239,-74.4502],[873.21,-101.364,23.5833,121.369,-73.4118],[841.901,-0.169225,22.6833,113.881,-72.1388],[808.588,98.8503,21.7333,105.922,-70.5868],[771.472,198.834,20.6833,97.0903,-68.5585],[729.299,299.429,19.5,87.1534,-65.757],[680.183,399.427,18.1333,75.8216,-61.5774],[618.552,499.229,16.4333,62.2843,-54.226],[520.911,599.967,13.7667,44.3725,-33.966],[427.318,631.675,11.2333,37.0818,-0.0681434]]], + [72,639.043,[[1191.21,-2001.45,35.3167,208.112,-82.1491],[1177.42,-1902.55,34.8333,204.98,-81.9674],[1163.05,-1801.87,34.3333,201.693,-81.7721],[1148.56,-1702.88,33.8333,198.357,-81.5686],[1133.48,-1602.4,33.3167,194.86,-81.3493],[1117.79,-1500.62,32.7833,191.197,-81.1126],[1101.97,-1400.85,32.25,187.48,-80.8647],[1085.54,-1300.1,31.7,183.591,-80.5964],[1068.98,-1201.56,31.15,179.647,-80.3142],[1051.79,-1102.37,30.5833,175.525,-80.0079],[1033.96,-1002.78,30,171.223,-79.6744],[1014.96,-900.318,29.3833,166.61,-79.3001],[995.81,-800.801,28.7667,161.933,-78.9013],[975.994,-701.704,28.1333,157.063,-78.4635],[954.973,-600.847,27.4667,151.868,-77.9682],[933.258,-501.204,26.7833,146.473,-77.4197],[910.306,-400.824,26.0667,140.742,-76.7941],[886.098,-300.366,25.3167,134.67,-76.0764],[860.616,-200.531,24.5333,128.252,-75.2473],[833.294,-100.12,23.7,121.35,-74.2607],[804.103,-0.306149,22.8167,113.963,-73.0746],[772.46,99.3187,21.8667,105.955,-71.6019],[737.204,199.977,20.8167,97.0589,-69.6753],[698.278,298.66,19.6667,87.312,-67.0935],[651.634,399.975,18.3,75.8362,-63.1326],[594.258,499.705,16.6333,62.3004,-56.2943],[506.789,599.876,14.1167,44.4847,-38.2738],[408.003,639.042,11.3,35.2106,-0.0811663]]], + [73,646.068,[[1131.1,-2002.98,35.4167,208.22,-82.571],[1117.59,-1900.54,34.9167,204.976,-82.393],[1104.43,-1803.09,34.4333,201.793,-82.2142],[1090.25,-1700.67,33.9167,198.342,-82.0151],[1075.96,-1600.08,33.4,194.838,-81.8073],[1061.56,-1501.34,32.8833,191.284,-81.5902],[1046.59,-1401.4,32.35,187.561,-81.3557],[1031.03,-1300.47,31.8,183.667,-81.1018],[1015.34,-1201.74,31.25,179.715,-80.8347],[999.061,-1102.36,30.6833,175.587,-80.5448],[982.171,-1002.57,30.1,171.276,-80.2292],[964.666,-902.639,29.5,166.779,-79.8848],[946.043,-800.172,28.8667,161.965,-79.4974],[927.275,-700.853,28.2333,157.083,-79.0828],[907.865,-602.246,27.5833,152.005,-78.626],[887.303,-502.268,26.9,146.596,-78.1075],[865.569,-401.533,26.1833,140.848,-77.516],[842.646,-300.7,25.4333,134.755,-76.8373],[818.515,-200.47,24.65,128.314,-76.0531],[793.162,-101.593,23.8333,121.522,-75.1394],[765.524,-1.19594,22.95,114.099,-74.0192],[735.563,99.0616,22,106.046,-72.6278],[702.715,198.895,20.9667,97.2305,-70.8374],[665.326,299.888,19.8,87.2566,-68.3606],[622.244,399.85,18.4667,75.9293,-64.7047],[569.021,499.483,16.8333,62.4183,-58.3832],[490.089,599.563,14.4333,44.645,-42.2637],[388.306,646.066,11.3667,33.3275,-0.152328]]], + [74,652.739,[[1069.74,-2002.1,35.5,208.249,-82.9911],[1057.42,-1902.94,35.0167,205.109,-82.8289],[1044.57,-1802,34.5167,201.814,-82.6544],[1031.62,-1702.74,34.0167,198.469,-82.4727],[1018.13,-1601.97,33.5,194.962,-82.2769],[1004.55,-1503.05,32.9833,191.404,-82.0723],[990.415,-1402.92,32.45,187.677,-81.8512],[975.729,-1301.8,31.9,183.777,-81.6119],[960.93,-1202.88,31.35,179.82,-81.3602],[945.111,-1100.4,30.7667,175.562,-81.0787],[929.17,-1000.47,30.1833,171.242,-80.7807],[912.647,-900.395,29.5833,166.734,-80.4555],[895.534,-800.436,28.9667,162.036,-80.0995],[877.823,-700.881,28.3333,157.144,-79.7087],[859.507,-602.029,27.6833,152.053,-79.2779],[840.102,-501.791,27,146.629,-78.7888],[819.592,-400.782,26.2833,140.864,-78.2308],[798.443,-301.854,25.55,134.888,-77.6053],[775.675,-201.208,24.7667,128.424,-76.8668],[751.753,-101.892,23.95,121.605,-76.006],[725.676,-1.01725,23.0667,114.149,-74.9503],[697.407,99.7593,22.1167,106.052,-73.638],[666.915,198.619,21.1,97.3229,-71.9778],[632.148,299.072,19.95,87.4118,-69.681],[592.017,399.032,18.6333,76.103,-66.2897],[542.329,499.45,17.0167,62.5035,-60.4111],[470.479,599.777,14.7,44.6906,-45.8073],[368.23,652.737,11.4333,31.433,-0.292816]]], + [75,659.052,[[1007.62,-2002.27,35.5833,208.306,-83.4153],[996.032,-1903,35.1,205.164,-83.2629],[983.953,-1801.93,34.6,201.864,-83.099],[971.781,-1702.55,34.1,198.516,-82.9283],[959.106,-1601.65,33.5833,195.004,-82.7443],[946.335,-1502.6,33.0667,191.441,-82.552],[933.05,-1402.34,32.5333,187.708,-82.3443],[919.245,-1301.08,31.9833,183.802,-82.1194],[905.333,-1202.01,31.4333,179.839,-81.8829],[890.89,-1102.28,30.8667,175.696,-81.626],[875.908,-1002.13,30.2833,171.369,-81.3464],[860.379,-901.815,29.6833,166.855,-81.0412],[844.296,-801.612,29.0667,162.148,-80.7072],[827.65,-701.805,28.4333,157.246,-80.3403],[809.993,-600.195,27.7667,152.012,-79.9251],[792.199,-502.176,27.1,146.707,-79.4768],[772.923,-400.872,26.3833,140.926,-78.9529],[753.045,-301.642,25.65,134.932,-78.3655],[731.647,-200.669,24.8667,128.446,-77.6717],[709.164,-101.009,24.05,121.601,-76.8628],[685.119,-1.60677,23.1833,114.254,-75.8902],[658.554,99.7164,22.2333,106.116,-74.659],[629.9,199.167,21.2167,97.3343,-73.1],[597.705,298.914,20.0833,87.4933,-70.9753],[559.997,399.855,18.7667,76.071,-67.7906],[514.276,499.642,17.1833,62.5499,-62.3845],[449.214,599.663,14.95,44.8034,-49.2304],[347.288,659.05,11.4833,29.5281,-0.199529]]], + [76,664.997,[[944.384,-2000.04,35.65,208.286,-83.8384],[933.539,-1900.69,35.1667,205.139,-83.6958],[922.612,-1802.89,34.6833,201.946,-83.5476],[910.842,-1700.09,34.1667,198.482,-83.3825],[899.364,-1602.34,33.6667,195.079,-83.2159],[887.414,-1503.15,33.15,191.511,-83.0362],[874.984,-1402.74,32.6167,187.774,-82.8419],[862.067,-1301.33,32.0667,183.863,-82.6316],[849.05,-1202.11,31.5167,179.893,-82.4105],[835.536,-1102.22,30.95,175.744,-82.1703],[821.518,-1001.9,30.3667,171.41,-81.9088],[806.987,-901.417,29.7667,166.888,-81.6233],[791.938,-801.036,29.15,162.172,-81.3109],[776.364,-701.044,28.5167,157.259,-80.9677],[760.256,-601.739,27.8667,152.146,-80.5894],[743.192,-501.021,27.1833,146.695,-80.1597],[725.576,-401.816,26.4833,141.034,-79.6813],[706.556,-300.052,25.7333,134.886,-79.1194],[686.962,-200.942,24.9667,128.518,-78.4843],[665.928,-100.916,24.15,121.649,-77.7282],[643.434,-1.12099,23.2833,114.272,-76.8189],[619.018,98.9199,22.35,106.24,-75.6888],[592.215,198.991,21.3333,97.4088,-74.2333],[562.098,299.436,20.2,87.4991,-72.2475],[527.722,398.818,18.9167,76.2622,-69.352],[485.413,499.153,17.35,62.6947,-64.3745],[425.937,599.883,15.1667,44.8406,-52.4054],[326.04,664.995,11.5333,27.6125,-0.163388]]], + [77,670.566,[[880.823,-2002.33,35.7333,208.404,-84.2701],[870.729,-1902.84,35.25,205.255,-84.1375],[860.207,-1801.56,34.75,201.948,-83.9948],[849.604,-1701.95,34.25,198.592,-83.8463],[838.564,-1600.83,33.7333,195.072,-83.6861],[827.439,-1501.55,33.2167,191.499,-83.5187],[815.868,-1401.05,32.6833,187.756,-83.3379],[804.208,-1302.58,32.15,183.958,-83.1481],[791.724,-1200.22,31.5833,179.863,-82.9361],[779.143,-1100.22,31.0167,175.707,-82.7124],[766.467,-1002.63,30.45,171.49,-82.476],[752.943,-901.961,29.85,166.96,-82.2106],[738.936,-801.387,29.2333,162.236,-81.92],[724.44,-701.194,28.6,157.315,-81.6008],[709.448,-601.681,27.95,152.191,-81.2489],[693.565,-500.743,27.2667,146.728,-80.8493],[677.17,-401.311,26.5667,141.053,-80.4041],[659.861,-301.517,25.8333,135.026,-79.8934],[641.627,-202.044,25.0667,128.641,-79.3035],[622.053,-101.628,24.25,121.75,-78.6012],[601.118,-1.41655,23.3833,114.345,-77.7562],[578.398,99.0775,22.45,106.279,-76.7056],[553.453,199.646,21.4333,97.4016,-75.3515],[525.84,299.251,20.3167,87.5745,-73.5322],[493.852,399.47,19.0333,76.2419,-70.8396],[454.904,499.879,17.4833,62.6506,-66.2539],[401.262,599.953,15.3667,44.9048,-55.4816],[304.492,670.564,11.5833,25.6868,-0.198063]]], + [78,675.751,[[816.24,-2002.24,35.8,208.443,-84.7006],[806.901,-1902.66,35.3167,205.291,-84.578],[797.166,-1801.28,34.8167,201.981,-84.446],[787.355,-1701.58,34.3167,198.622,-84.3086],[777.14,-1600.35,33.8,195.098,-84.1604],[766.846,-1500.98,33.2833,191.521,-84.0056],[756.14,-1400.36,32.75,187.774,-83.8384],[745.351,-1301.79,32.2167,183.971,-83.6628],[734.141,-1202.29,31.6667,179.991,-83.4726],[722.503,-1102.11,31.1,175.83,-83.2659],[710.431,-1001.49,30.5167,171.483,-83.0409],[697.918,-900.698,29.9167,166.946,-82.7953],[685.309,-802.678,29.3167,162.342,-82.5338],[671.899,-702.269,28.6833,157.413,-82.239],[657.673,-600.019,28.0167,152.147,-81.9052],[643.337,-501.356,27.35,146.806,-81.5445],[628.17,-401.677,26.65,141.119,-81.1331],[612.158,-301.623,25.9167,135.078,-80.6611],[595.288,-201.876,25.15,128.675,-80.1157],[577.181,-101.166,24.3333,121.763,-79.4663],[557.814,-0.63824,23.4667,114.332,-78.6846],[537.172,98.4657,22.55,106.378,-77.7308],[514.099,199.563,21.5333,97.4585,-76.4803],[488.557,299.753,20.4167,87.5729,-74.7985],[459.355,399.44,19.15,76.3002,-72.3423],[423.721,499.948,17.6167,62.7006,-68.1541],[375.289,599.922,15.55,44.9846,-58.4638],[282.651,675.749,11.6333,23.7517,-0.321461]]], + [79,680.549,[[751.027,-2003.23,35.8667,208.513,-85.1345],[742.151,-1900.14,35.3667,205.249,-85.0179],[733.504,-1802.06,34.8833,202.047,-84.9008],[724.492,-1702.26,34.3833,198.684,-84.7746],[715.108,-1600.91,33.8667,195.157,-84.6386],[705.652,-1501.42,33.35,191.577,-84.4965],[695.816,-1400.7,32.8167,187.826,-84.3428],[685.905,-1302,32.2833,184.019,-84.1816],[675.607,-1202.38,31.7333,180.034,-84.007],[664.916,-1102.07,31.1667,175.868,-83.8172],[653.825,-1001.32,30.5833,171.516,-83.6106],[642.33,-900.385,29.9833,166.972,-83.3851],[630.747,-802.225,29.3833,162.361,-83.1449],[618.427,-701.667,28.75,157.423,-82.8741],[605.686,-601.775,28.1,152.281,-82.5754],[592.188,-500.436,27.4167,146.796,-82.2362],[578.254,-400.589,26.7167,141.096,-81.8581],[563.545,-300.357,25.9833,135.04,-81.4243],[548.048,-200.423,25.2167,128.62,-80.9229],[531.754,-101.514,24.4167,121.83,-80.3386],[513.966,-0.645932,23.55,114.376,-79.6212],[495.005,98.8211,22.6333,106.392,-78.7457],[474.161,198.736,21.6333,97.5804,-77.6175],[450.703,299.546,20.5167,87.6417,-76.0761],[423.884,399.942,19.25,76.2888,-73.8219],[391.87,499.349,17.75,62.8465,-70.0681],[348.117,599.843,15.7167,45.0695,-61.3586],[260.159,680.549,11.6667,21.8075,-0.127589]]], + [80,684.95,[[684.942,-2001.85,35.9167,208.505,-85.5678],[677.125,-1902.11,35.4333,205.348,-85.4652],[668.977,-1800.57,34.9333,202.033,-85.3548],[660.766,-1700.7,34.4333,198.667,-85.2398],[652.493,-1602.54,33.9333,195.25,-85.12],[643.879,-1502.92,33.4167,191.668,-84.9906],[634.92,-1402.06,32.8833,187.914,-84.8508],[625.609,-1300.18,32.3333,183.983,-84.6995],[616.226,-1200.49,31.7833,179.994,-84.5403],[606.486,-1100.11,31.2167,175.821,-84.3673],[596.671,-1002.13,30.65,171.588,-84.1845],[586.2,-901.043,30.05,167.038,-83.9791],[575.356,-800.037,29.4333,162.292,-83.7543],[564.428,-702.005,28.8167,157.476,-83.5141],[552.822,-601.943,28.1667,152.326,-83.2422],[540.527,-500.422,27.4833,146.832,-82.9333],[527.834,-400.388,26.7833,141.122,-82.5891],[514.741,-302.19,26.0667,135.192,-82.2035],[500.628,-201.939,25.3,128.759,-81.7478],[485.477,-100.687,24.4833,121.809,-81.205],[469.586,-1.46227,23.6333,114.477,-80.5647],[452.318,98.3953,22.7167,106.467,-79.7685],[433.333,198.74,21.7167,97.6207,-78.7421],[412.288,298.607,20.6167,87.7825,-77.3621],[387.864,399.752,19.35,76.3569,-75.3144],[359.035,499.058,17.8667,62.9402,-71.9425],[319.848,599.748,15.8667,45.151,-64.1737],[237.78,684.947,11.7167,19.855,-0.468053]]], + [81,688.951,[[618.33,-2001.57,35.9667,208.529,-86.0043],[611.281,-1901.77,35.4833,205.369,-85.9118],[603.933,-1800.15,34.9833,202.051,-85.8123],[596.529,-1700.21,34.4833,198.682,-85.7085],[589.068,-1601.98,33.9833,195.263,-85.6005],[581.301,-1502.29,33.4667,191.677,-85.4839],[573.222,-1401.35,32.9333,187.919,-85.3578],[565.08,-1302.44,32.4,184.105,-85.2256],[556.621,-1202.61,31.85,180.112,-85.0822],[547.839,-1102.07,31.2833,175.937,-84.9265],[538.729,-1001.08,30.7,171.574,-84.7569],[529.55,-902.677,30.1167,167.146,-84.577],[519.772,-801.497,29.5,162.395,-84.3746],[509.652,-700.676,28.8667,157.443,-84.1522],[499.186,-600.513,28.2167,152.284,-83.9069],[488.37,-501.319,27.55,146.915,-83.6352],[476.926,-401.079,26.85,141.196,-83.3252],[464.845,-300.432,26.1167,135.116,-82.9693],[452.118,-200.059,25.35,128.668,-82.558],[438.735,-100.689,24.55,121.843,-82.0783],[424.408,-1.20459,23.7,114.492,-81.5012],[408.838,98.9349,22.7833,106.457,-80.7833],[391.721,199.59,21.7833,97.5781,-79.8574],[372.746,299.799,20.6833,87.6952,-78.6114],[351.306,398.862,19.45,76.506,-76.8157],[325.318,499.102,17.9667,62.9782,-73.7842],[290.584,599.678,16,45.221,-66.9176],[214.829,688.948,11.75,17.8945,-0.471789]]], + [82,692.545,[[551.216,-2002.4,36.0167,208.583,-86.4435],[544.939,-1902.52,35.5333,205.422,-86.3612],[538.396,-1800.82,35.0333,202.102,-86.2726],[531.803,-1700.8,34.5333,198.731,-86.1804],[525.159,-1602.48,34.0333,195.31,-86.0841],[518.243,-1502.7,33.5167,191.721,-85.9803],[511.048,-1401.68,32.9833,187.96,-85.8682],[503.799,-1302.68,32.45,184.143,-85.7505],[496.267,-1202.75,31.9,180.147,-85.6229],[488.446,-1102.12,31.3333,175.968,-85.4842],[480.334,-1001.03,30.75,171.601,-85.3333],[472.16,-902.517,30.1667,167.168,-85.1732],[463.453,-801.227,29.55,162.411,-84.9929],[454.442,-700.293,28.9167,157.453,-84.7949],[445.122,-600.013,28.2667,152.287,-84.5765],[435.491,-500.697,27.6,146.91,-84.3346],[425.301,-400.329,26.9,141.181,-84.0585],[414.788,-301.786,26.1833,135.23,-83.7491],[403.457,-201.162,25.4167,128.771,-83.3834],[391.542,-101.527,24.6167,121.933,-82.957],[378.786,-1.75918,23.7667,114.565,-82.4439],[364.924,98.6895,22.85,106.509,-81.8055],[349.684,199.684,21.85,97.6014,-80.9818],[333.047,298.831,20.7667,87.8302,-79.8912],[313.701,399.76,19.5167,76.4318,-78.2719],[290.824,499.5,18.05,62.9578,-75.6001],[260.429,599.665,16.1167,45.2727,-69.5994],[191.408,692.545,11.7667,15.9262,-0.0150131]]], + [83,695.728,[[483.442,-2000.87,36.05,208.561,-86.8826],[477.94,-1900.96,35.5667,205.397,-86.8105],[472.396,-1802.59,35.0833,202.186,-86.7355],[466.618,-1702.47,34.5833,198.814,-86.6547],[460.602,-1600.81,34.0667,195.276,-86.5676],[454.539,-1501,33.55,191.684,-86.4765],[448.43,-1403.06,33.0333,188.038,-86.3813],[441.878,-1300.9,32.4833,184.098,-86.275],[435.275,-1200.93,31.9333,180.098,-86.163],[428.421,-1100.25,31.3667,175.914,-86.0414],[421.514,-1001.97,30.8,171.668,-85.9129],[414.145,-900.568,30.2,167.104,-85.7685],[406.72,-801.932,29.6,162.471,-85.6148],[398.823,-700.869,28.9667,157.507,-85.4414],[390.655,-600.454,28.3167,152.336,-85.2501],[382.215,-501,27.65,146.953,-85.0383],[373.284,-400.484,26.95,141.216,-84.7964],[364.071,-301.789,26.2333,135.256,-84.5255],[354.141,-201.001,25.4667,128.786,-84.2051],[343.699,-101.193,24.6667,121.936,-83.8315],[332.52,-1.24048,23.8167,114.552,-83.3817],[320.371,99.409,22.9,106.476,-82.822],[307.239,199.012,21.9167,97.6918,-82.1126],[292.66,298.564,20.8333,87.8872,-81.1585],[275.708,399.965,19.5833,76.4375,-79.7406],[255.891,499.238,18.1333,63.0314,-77.4292],[229.488,599.734,16.2167,45.3006,-72.2285],[168.089,695.727,11.8,13.9515,-0.246196]]], + [84,698.494,[[415.278,-2000.47,36.0833,208.57,-87.3243],[410.555,-1900.5,35.6,205.404,-87.2623],[405.796,-1802.09,35.1167,202.191,-87.198],[400.836,-1701.93,34.6167,198.817,-87.1287],[395.671,-1600.22,34.1,195.277,-87.0538],[390.466,-1500.36,33.5833,191.682,-86.9757],[385.222,-1402.37,33.0667,188.034,-86.894],[379.597,-1300.16,32.5167,184.091,-86.8027],[373.929,-1200.13,31.9667,180.088,-86.7065],[368.218,-1102.33,31.4167,176.024,-86.6053],[362.115,-1001.07,30.8333,171.65,-86.4918],[355.965,-902.389,30.25,167.209,-86.3714],[349.415,-800.914,29.6333,162.444,-86.2359],[342.814,-702.409,29.0167,157.606,-86.091],[335.804,-601.843,28.3667,152.431,-85.927],[328.56,-502.232,27.7,147.043,-85.7454],[320.895,-401.551,27,141.301,-85.5381],[312.803,-300.436,26.2667,135.194,-85.3001],[304.464,-201.711,25.5167,128.856,-85.031],[295.502,-101.708,24.7167,121.995,-84.7107],[285.907,-1.54507,23.8667,114.598,-84.3251],[275.479,99.3326,22.95,106.505,-83.845],[264.207,199.182,21.9667,97.6996,-83.2363],[251.694,299.008,20.8833,87.8652,-82.4173],[237.339,399.468,19.65,76.5244,-81.2176],[220.331,499.341,18.2,63.045,-79.2367],[197.869,599.907,16.3,45.2998,-74.8148],[144.583,698.491,11.8333,11.9716,-0.72422]]], + [85,700.843,[[346.755,-2001.18,36.1167,208.61,-87.768],[342.814,-1901.16,35.6333,205.444,-87.7164],[338.843,-1802.69,35.15,202.23,-87.6627],[334.704,-1702.48,34.65,198.854,-87.6048],[330.394,-1600.71,34.1333,195.312,-87.5425],[326.052,-1500.79,33.6167,191.717,-87.4773],[321.676,-1402.75,33.1,188.066,-87.4091],[316.982,-1300.47,32.55,184.122,-87.333],[312.253,-1200.38,32,180.116,-87.2528],[307.488,-1102.51,31.45,176.051,-87.1683],[302.395,-1001.18,30.8667,171.673,-87.0737],[297.264,-902.425,30.2833,167.229,-86.9732],[291.798,-800.874,29.6667,162.46,-86.8601],[286.29,-702.293,29.05,157.619,-86.7393],[280.441,-601.646,28.4,152.439,-86.6025],[274.396,-501.951,27.7333,147.046,-86.4509],[268,-401.181,27.0333,141.298,-86.2779],[261.402,-302.223,26.3167,135.324,-86.0841],[254.29,-201.151,25.55,128.837,-85.8549],[246.812,-101.044,24.75,121.967,-85.5874],[238.806,-0.771208,23.9,114.558,-85.2655],[230.264,98.4569,23,106.598,-84.8724],[220.86,198.583,22.0167,97.7752,-84.3655],[210.42,298.718,20.9333,87.9164,-83.683],[198.443,399.532,19.7,76.5387,-82.683],[184.253,499.823,18.25,62.9967,-81.0294],[165.843,599.468,16.3833,45.4234,-77.4134],[124.721,699.978,12.25,10.7669,-22.0206],[120.728,700.841,11.85,9.9852,-0.659378]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 238.806; +_maxRange = 1372.89; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg2.sqf new file mode 100644 index 0000000000..720a6bdf11 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg2.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg2 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,631.392,[[3468.3,-2000.89,35.35,218.351,-68.7731],[3429.94,-1903.24,34.8667,215.665,-68.3153],[3388.6,-1800.55,34.35,212.761,-67.809],[3348.26,-1702.85,33.85,209.922,-67.3014],[3304.88,-1600.5,33.3167,206.862,-66.74],[3261.14,-1500.08,32.7833,203.771,-66.1568],[3217.03,-1401.64,32.25,200.65,-65.5505],[3171.17,-1302.21,31.7,197.404,-64.8998],[3123.53,-1202.03,31.1333,194.031,-64.2007],[3074.06,-1101.33,30.55,190.531,-63.4488],[3022.75,-1000.36,29.95,186.906,-62.639],[2970.99,-902.074,29.35,183.257,-61.7898],[2915.9,-801.281,28.7167,179.386,-60.8479],[2858.85,-701.038,28.0667,175.397,-59.829],[2799.83,-601.644,27.4,171.294,-58.725],[2737.31,-501.062,26.7,166.983,-57.4966],[2672.72,-402.159,25.9833,162.574,-56.1594],[2602.99,-300.987,25.2167,157.876,-54.6326],[2529.55,-200.597,24.4167,153.011,-52.9238],[2452.31,-101.736,23.5833,148.004,-51.0069],[2368.09,-1.61035,22.6833,142.693,-48.7652],[2275.12,99.777,21.7,137.047,-46.0928],[2174.8,198.662,20.65,131.255,-42.9572],[2058.86,299.629,19.45,125.027,-38.984],[1923.56,399.819,18.0667,118.519,-33.8465],[1753.31,499.609,16.35,111.75,-26.6047],[1483.92,599.631,13.6833,105.07,-13.6032],[1222.62,631.39,11.15,104.185,-0.0639445]]], + [46,652.815,[[3435.06,-2000.84,35.6333,218.547,-69.1934],[3397.4,-1902.83,35.15,215.851,-68.7447],[3358.12,-1803.04,34.65,213.031,-68.2646],[3317.19,-1701.65,34.1333,210.085,-67.7507],[3275.93,-1602.06,33.6167,207.108,-67.2177],[3232.99,-1501.16,33.0833,204.004,-66.6465],[3189.68,-1402.23,32.55,200.869,-66.0526],[3144.66,-1302.3,32,197.606,-65.4152],[3097.88,-1201.59,31.4333,194.215,-64.7302],[3049.32,-1100.34,30.85,190.694,-63.9932],[3000.34,-1001.58,30.2667,187.148,-63.222],[2949.54,-902.64,29.6667,183.475,-62.3906],[2895.46,-801.152,29.0333,179.576,-61.4681],[2839.47,-700.188,28.3833,175.555,-60.47],[2781.54,-600.048,27.7167,171.418,-59.3881],[2721.63,-501.043,27.0333,167.169,-58.2132],[2658.25,-401.226,26.3167,162.715,-56.9036],[2591.31,-301.235,25.5667,158.067,-55.441],[2520.75,-201.754,24.7833,153.24,-53.8038],[2444.98,-101.563,23.95,148.158,-51.9281],[2363.89,-1.80417,23.0667,142.856,-49.7745],[2274.26,99.65,22.1,137.191,-47.2036],[2177.44,199.047,21.0667,131.348,-44.183],[2066.93,299.847,19.9,125.098,-40.401],[1939.12,399.976,18.5667,118.544,-35.5527],[1782.1,499.453,16.95,111.7,-28.8745],[1551.67,599.848,14.6167,104.669,-17.7309],[1220.12,652.813,11.3333,102.277,-0.0491473]]], + [47,674.195,[[3399.87,-2001.62,35.9167,218.767,-69.6198],[3362.91,-1903.22,35.4333,216.061,-69.1803],[3324.36,-1803.04,34.9333,213.231,-68.7101],[3284.2,-1701.24,34.4167,210.274,-68.2067],[3243.7,-1601.24,33.9,207.284,-67.6846],[3202.88,-1503.04,33.3833,204.264,-67.1427],[3159.06,-1400.53,32.8333,201.016,-66.5429],[3114.87,-1300.14,32.2833,197.737,-65.9182],[3070.32,-1201.9,31.7333,194.427,-65.2669],[3022.67,-1100.08,31.15,190.887,-64.5454],[2974.61,-1000.76,30.5667,187.319,-63.7901],[2924.77,-901.227,29.9667,183.622,-62.9757],[2873.11,-801.757,29.35,179.799,-62.0963],[2818.18,-700.056,28.7,175.748,-61.1194],[2762.77,-601.632,28.05,171.68,-60.0874],[2704.02,-501.747,27.3667,167.394,-58.9384],[2641.85,-400.996,26.65,162.895,-57.657],[2576.19,-300.02,25.9,158.195,-56.2252],[2508.47,-201.584,25.1333,153.413,-54.6568],[2434.16,-100.158,24.3,148.259,-52.8207],[2356.15,-0.922854,23.4333,142.972,-50.7519],[2271.31,98.7141,22.5,137.396,-48.3242],[2177.95,198.583,21.4833,131.509,-45.4196],[2072.76,299.096,20.35,125.252,-41.8288],[1952.28,398.928,19.0667,118.678,-37.2695],[1804.9,499.372,17.5167,111.692,-31.0097],[1602.12,599.68,15.4167,104.453,-21.1965],[1216.56,674.193,11.5167,100.346,-0.0523661]]], + [48,695.508,[[3362.72,-2003.25,36.2,219.012,-70.0521],[3325.21,-1901.09,35.7,216.203,-69.6069],[3287.39,-1800.55,35.2,213.362,-69.1461],[3249.27,-1701.66,34.7,210.489,-68.6691],[3209.55,-1601.22,34.1833,207.487,-68.158],[3169.51,-1502.6,33.6667,204.454,-67.6275],[3127.84,-1402.71,33.1333,201.29,-67.0585],[3084.51,-1301.79,32.5833,197.996,-66.4475],[3039.49,-1200.05,32.0167,194.569,-65.7908],[2994.1,-1100.61,31.45,191.111,-65.1047],[2946.98,-1000.7,30.8667,187.522,-64.3658],[2898.1,-900.567,30.2667,183.802,-63.5688],[2847.44,-800.468,29.65,179.952,-62.708],[2794.96,-700.681,29.0167,175.976,-61.7767],[2740.64,-601.497,28.3667,171.876,-60.7674],[2683.04,-500.804,27.6833,167.551,-59.6433],[2623.51,-401.514,26.9833,163.115,-58.4192],[2560.59,-301.748,26.25,158.47,-57.0512],[2492.76,-200.057,25.4667,153.525,-55.4844],[2422.86,-101.482,24.6667,148.51,-53.7611],[2346.41,-0.802731,23.8,143.139,-51.7398],[2264.77,98.6645,22.8833,137.562,-49.4091],[2174.81,198.817,21.8833,131.643,-46.6165],[2074.82,298.756,20.7833,125.4,-43.2107],[1959.91,399.111,19.5333,118.756,-38.871],[1821.87,499.664,18.05,111.698,-33.0136],[1639.35,599.992,16.1167,104.303,-24.1761],[1211.93,695.506,11.7,98.3907,-0.0748696]]], + [49,716.73,[[3322.38,-2002.33,36.4667,219.188,-70.4758],[3286.84,-1903.2,35.9833,216.464,-70.0548],[3249.78,-1802.25,35.4833,213.613,-69.6043],[3212.41,-1702.94,34.9833,210.73,-69.1377],[3173.48,-1602.06,34.4667,207.717,-68.6379],[3134.23,-1502.99,33.95,204.671,-68.1191],[3093.39,-1402.65,33.4167,201.494,-67.5625],[3050.92,-1301.24,32.8667,198.184,-66.9648],[3008.1,-1201.97,32.3167,194.841,-66.3416],[2963.61,-1101.97,31.75,191.366,-65.6711],[2917.44,-1001.46,31.1667,187.756,-64.9488],[2869.54,-900.701,30.5667,184.014,-64.1697],[2821.24,-802.642,29.9667,180.244,-63.3513],[2769.82,-702.106,29.3333,176.239,-62.4417],[2716.6,-602.145,28.6833,172.108,-61.4556],[2660.16,-500.627,28,167.747,-60.357],[2601.83,-400.483,27.3,163.269,-59.1601],[2541.59,-302.053,26.5833,158.683,-57.8533],[2476.57,-201.415,25.8167,153.788,-56.3559],[2408.1,-101.611,25.0167,148.707,-54.6731],[2334.67,-1.48945,24.1667,143.361,-52.7372],[2254.71,99.5459,23.25,137.686,-50.4604],[2168.09,199.801,22.2667,131.745,-47.776],[2073.16,298.893,21.2,125.533,-44.5489],[1963.71,399.454,19.9833,118.846,-40.4227],[1834.74,499.536,18.5667,111.768,-34.959],[1668.64,599.849,16.7667,104.259,-26.9238],[1381.79,699.807,13.7167,96.8288,-10.7471],[1204.61,716.729,11.8667,96.4244,-0.0209403]]], + [50,737.837,[[3280.11,-2002.32,36.7333,219.389,-70.9056],[3245.29,-1902.84,36.25,216.656,-70.4938],[3208.97,-1801.51,35.75,213.796,-70.0532],[3172.36,-1701.82,35.25,210.902,-69.5969],[3134.22,-1600.56,34.7333,207.877,-69.108],[3095.77,-1501.09,34.2167,204.818,-68.6005],[3055.75,-1400.33,33.6833,201.627,-68.0559],[3015.41,-1301.55,33.15,198.402,-67.4891],[2973.46,-1201.78,32.6,195.043,-66.8799],[2929.89,-1101.26,32.0333,191.549,-66.2245],[2884.66,-1000.21,31.45,187.92,-65.5183],[2839.05,-901.667,30.8667,184.259,-64.778],[2790.43,-800.264,30.25,180.36,-63.9558],[2741.39,-701.747,29.6333,176.434,-63.0899],[2689.27,-601.077,28.9833,172.271,-62.1262],[2635.35,-501.257,28.3167,167.982,-61.079],[2578.24,-400.241,27.6167,163.464,-59.9101],[2519.25,-300.909,26.9,158.833,-58.6334],[2456.97,-201.454,26.15,153.991,-57.2024],[2389.94,-100.512,25.35,148.846,-55.5587],[2319.47,-1.09702,24.5167,143.531,-53.7047],[2242.64,99.6015,23.6167,137.866,-51.5224],[2159.31,199.927,22.65,131.91,-48.9467],[2067.89,299.568,21.6,125.647,-45.8454],[1965.22,398.704,20.4333,119.03,-41.9852],[1843.58,499.092,19.0667,111.891,-36.8463],[1690.29,599.859,17.3667,104.26,-29.443],[1456.5,699.943,14.8167,96.4225,-16.2617],[1197.85,737.834,12.05,94.4236,-0.08432]]], + [51,758.805,[[3235.89,-2003.26,37,219.616,-71.3413],[3201.8,-1903.41,36.5167,216.875,-70.9391],[3166.25,-1801.7,36.0167,214.005,-70.5086],[3130.4,-1701.62,35.5167,211.101,-70.0627],[3094.27,-1603.21,35.0167,208.163,-69.6006],[3055.42,-1500.08,34.4833,204.994,-69.0889],[3017.47,-1402.03,33.9667,201.889,-68.5735],[2977.98,-1302.76,33.4333,198.651,-68.0202],[2936.92,-1202.48,32.8833,195.276,-67.4254],[2894.27,-1101.42,32.3167,191.765,-66.7853],[2851.27,-1002.68,31.75,188.221,-66.1157],[2805.35,-900.713,31.15,184.434,-65.3724],[2759.05,-801.431,30.55,180.617,-64.5912],[2711.06,-702.233,29.9333,176.665,-63.7461],[2660.05,-600.836,29.2833,172.472,-62.8053],[2607.28,-500.264,28.6167,168.149,-61.7827],[2552.73,-400.829,27.9333,163.701,-60.6688],[2495.01,-300.577,27.2167,159.025,-59.4228],[2434.07,-200.147,26.4667,154.131,-58.0256],[2369.85,-100.227,25.6833,149.035,-56.4544],[2302.29,-1.54646,24.8667,143.754,-54.682],[2228.54,98.7843,23.9833,138.106,-52.594],[2148.46,199.145,23.0333,132.141,-50.1273],[2060.48,299.298,22,125.835,-47.1529],[1961.55,399.547,20.85,119.122,-43.4416],[1847.01,499.591,19.5333,111.97,-38.6107],[1706.1,599.647,17.9333,104.323,-31.8168],[1504.92,699.682,15.6833,96.2607,-20.4881],[1188.45,758.803,12.2167,92.4112,-0.070209]]], + [52,779.611,[[3188.57,-2001.7,37.25,219.775,-71.7695],[3155.21,-1901.53,36.7667,217.025,-71.3764],[3121.58,-1802.85,36.2833,214.242,-70.97],[3086.52,-1702.38,35.7833,211.328,-70.5347],[3049.99,-1600.29,35.2667,208.281,-70.0683],[3014.35,-1503.21,34.7667,205.298,-69.6],[2976.03,-1401.52,34.2333,202.081,-69.0809],[2937.4,-1301.81,33.7,198.829,-68.5405],[2897.23,-1201.07,33.15,195.438,-67.9596],[2856.74,-1102.48,32.6,192.014,-67.3531],[2813.43,-1000.31,32.0167,188.346,-66.6802],[2769.76,-900.638,31.4333,184.644,-65.9745],[2724.47,-800.759,30.8333,180.804,-65.2121],[2677.54,-700.941,30.2167,176.826,-64.3871],[2628.93,-601.461,29.5833,172.712,-63.4925],[2577.32,-500.119,28.9167,168.356,-62.4951],[2525.27,-402.289,28.25,163.98,-61.4356],[2468.84,-301.095,27.5333,159.261,-60.2212],[2410.58,-201.875,26.8,154.428,-58.8901],[2347.8,-100.798,26.0167,149.272,-57.3595],[2281.76,-0.897779,25.2,143.923,-55.6316],[2211.03,98.909,24.3333,138.298,-53.6341],[2134.13,199.134,23.4,132.335,-51.2723],[2049.54,299.61,22.3833,125.997,-48.4204],[1955.68,399.357,21.2667,119.3,-44.9096],[1848.07,498.841,20,112.163,-40.3858],[1716.24,599.527,18.4667,104.416,-34.0484],[1537.49,699.769,16.4167,96.1844,-23.9973],[1178.02,779.609,12.3833,90.3761,-0.0772205]]], + [53,800.228,[[3139.35,-2001.15,37.5,219.96,-72.204],[3106.73,-1900.64,37.0167,217.202,-71.8203],[3073.85,-1801.63,36.5333,214.409,-71.4235],[3039.57,-1700.8,36.0333,211.485,-70.9985],[3005.01,-1601.62,35.5333,208.526,-70.5581],[2969,-1500.89,35.0167,205.433,-70.0858],[2932.71,-1401.98,34.5,202.304,-69.595],[2894.94,-1301.81,33.9667,199.037,-69.0679],[2855.68,-1200.6,33.4167,195.632,-68.5011],[2816.09,-1101.53,32.8667,192.191,-67.9094],[2774.97,-1001.75,32.3,188.61,-67.2719],[2732.29,-901.487,31.7167,184.889,-66.5841],[2688.02,-800.996,31.1167,181.026,-65.8408],[2642.15,-700.543,30.5,177.023,-65.0363],[2594.64,-600.405,29.8667,172.882,-64.1639],[2545.46,-500.871,29.2167,168.603,-63.2158],[2494.6,-402.245,28.55,164.192,-62.1833],[2439.45,-300.188,27.8333,159.432,-60.9993],[2382.53,-200.076,27.1,154.551,-59.701],[2322.49,-100.154,26.3333,149.45,-58.2401],[2259.28,-1.13229,25.5333,144.145,-56.591],[2191.51,98.1222,24.6833,138.549,-54.6839],[2116.4,199.931,23.75,132.486,-52.3839],[2036.51,298.945,22.7667,126.231,-49.6983],[1946.24,399.519,21.6667,119.467,-46.3327],[1843.95,499.294,20.4333,112.285,-42.0441],[1720.91,599.78,18.9667,104.508,-36.1424],[1560.82,699.382,17.0833,96.2218,-27.161],[1184.19,799.98,12.75,88.226,-1.38023],[1165.07,800.228,12.5333,88.3284,-0.00114345]]], + [54,820.637,[[3088.22,-2001.63,37.75,220.172,-72.6444],[3056.35,-1900.77,37.2667,217.406,-72.2702],[3024.23,-1801.41,36.7833,214.605,-71.8833],[2990.73,-1700.22,36.2833,211.671,-71.4689],[2956.96,-1600.67,35.7833,208.702,-71.0393],[2922.93,-1502.79,35.2833,205.697,-70.5938],[2886.33,-1400.26,34.75,202.455,-70.0999],[2850.59,-1302.79,34.2333,199.278,-69.602],[2812.24,-1201.09,33.6833,195.858,-69.0498],[2773.57,-1101.54,33.1333,192.402,-68.4731],[2733.4,-1001.24,32.5667,188.803,-67.8517],[2691.71,-900.447,31.9833,185.062,-67.1811],[2649.68,-802.175,31.4,181.286,-66.4771],[2604.88,-701.071,30.7833,177.259,-65.6936],[2558.48,-600.257,30.15,173.09,-64.8437],[2510.45,-500.023,29.5,168.782,-63.9199],[2460.78,-400.672,28.8333,164.336,-62.9135],[2408.18,-300.173,28.1333,159.647,-61.7867],[2353.86,-201.396,27.4167,154.832,-60.5518],[2295.25,-100.404,26.65,149.678,-59.1304],[2233.54,-0.254924,25.85,144.31,-57.5247],[2168.68,98.2989,25.0167,138.749,-55.7042],[2096.68,199.806,24.1,132.699,-53.5062],[2020.03,298.899,23.1333,126.434,-50.9382],[1934.63,398.624,22.0667,119.718,-47.766],[1836.2,499.862,20.85,112.413,-43.6528],[1721.67,599.593,19.45,104.661,-38.1749],[1575.33,699.419,17.6833,96.2769,-29.9874],[1328.2,799.79,14.75,87.4273,-13.2572],[1152.58,820.636,12.7,86.2483,-0.0532746]]], + [55,840.81,[[3035.16,-2003.19,38,220.412,-73.0907],[3004.05,-1901.98,37.5167,217.638,-72.7263],[2972.7,-1802.26,37.0333,214.829,-72.3494],[2940,-1700.68,36.5333,211.887,-71.9457],[2907.04,-1600.76,36.0333,208.908,-71.5272],[2873.82,-1502.49,35.5333,205.893,-71.0931],[2839.21,-1402.73,35.0167,202.74,-70.6272],[2803.2,-1301.68,34.4833,199.448,-70.1268],[2766.9,-1202.61,33.95,196.118,-69.6052],[2729.17,-1102.55,33.4,192.647,-69.0439],[2689.97,-1001.72,32.8333,189.031,-68.4389],[2649.28,-900.382,32.25,185.271,-67.786],[2608.26,-801.558,31.6667,181.475,-67.1004],[2565.72,-702.575,31.0667,177.534,-66.3584],[2520.44,-601.069,30.4333,173.339,-65.5316],[2473.58,-500.117,29.7833,169.001,-64.6326],[2425.11,-400.022,29.1167,164.523,-63.653],[2375.01,-301.101,28.4333,159.908,-62.5827],[2322.02,-201.411,27.7167,155.05,-61.3816],[2266.08,-101.599,26.9667,149.957,-60.0295],[2205.89,-0.299052,26.1667,144.528,-58.4686],[2142.62,99.4656,25.3333,138.896,-56.6974],[2074.96,198.706,24.45,132.978,-54.6381],[2000.21,299.514,23.4833,126.6,-52.1424],[1918.23,399.642,22.4333,119.845,-49.1049],[1826.23,499.274,21.2667,112.642,-45.2724],[1718.61,599.054,19.9167,104.862,-40.1465],[1582.81,699.782,18.2333,96.3436,-32.5721],[1378.05,799.972,15.7333,87.2387,-18.7523],[1137.64,840.81,12.85,84.1558,-0.020983]]], + [56,860.725,[[2979.14,-2002.35,38.2333,220.584,-73.5305],[2948.79,-1900.82,37.75,217.803,-73.1756],[2918.21,-1800.77,37.2667,214.985,-72.8085],[2887.38,-1702.24,36.7833,212.132,-72.4285],[2855.23,-1601.92,36.2833,209.144,-72.0214],[2822.83,-1503.26,35.7833,206.119,-71.599],[2789.08,-1403.08,35.2667,202.955,-71.1456],[2753.96,-1301.6,34.7333,199.651,-70.6585],[2718.56,-1202.09,34.2,196.307,-70.1509],[2681.76,-1101.58,33.65,192.821,-69.6044],[2643.52,-1000.28,33.0833,189.188,-69.0154],[2604.98,-901.327,32.5167,185.518,-68.3983],[2564.98,-801.936,31.9333,181.701,-67.7314],[2523.5,-702.363,31.3333,177.739,-67.0096],[2479.36,-600.229,30.7,173.518,-66.2052],[2434.84,-501.19,30.0667,169.264,-65.3534],[2387.59,-400.334,29.4,164.753,-64.4011],[2338.74,-300.624,28.7167,160.102,-63.3605],[2287.08,-200.098,28,155.202,-62.192],[2233.76,-101.591,27.2667,150.174,-60.9064],[2176.31,-1.30647,26.4833,144.8,-59.4217],[2114.65,99.6936,25.65,139.099,-57.7012],[2049.95,198.422,24.7833,133.21,-55.7387],[1978.38,299.137,23.8333,126.836,-53.3575],[1899.78,399.637,22.8,120.051,-50.4557],[1812.72,498.853,21.6667,112.868,-46.8431],[1710.52,599.428,20.35,105.006,-41.992],[1586.2,699.124,18.7667,96.5317,-35.0841],[1408.39,799.612,16.5333,87.2436,-23.1368],[1121.72,860.725,13,82.0413,-0.0121718]]], + [57,880.363,[[2921.23,-2002.62,38.4667,220.784,-73.9764],[2891.66,-1900.76,37.9833,217.996,-73.6311],[2861.85,-1800.39,37.5,215.17,-73.2739],[2831.81,-1701.52,37.0167,212.308,-72.9043],[2800.48,-1600.85,36.5167,209.31,-72.5082],[2768.9,-1501.84,36.0167,206.275,-72.0971],[2736.01,-1401.3,35.5,203.1,-71.6559],[2702.86,-1302.58,34.9833,199.887,-71.197],[2668.37,-1202.63,34.45,196.53,-70.7035],[2632.5,-1101.65,33.9,193.029,-70.1723],[2596.35,-1002.83,33.35,189.489,-69.6168],[2557.7,-900.422,32.7667,185.693,-68.9995],[2518.72,-800.52,32.1833,181.856,-68.3509],[2478.31,-700.418,31.5833,177.872,-67.6487],[2436.43,-600.382,30.9667,173.738,-66.8871],[2393.06,-500.692,30.3333,169.456,-66.0593],[2348.19,-401.639,29.6833,165.028,-65.1574],[2300.61,-301.121,29,160.342,-64.1471],[2251.47,-202.05,28.3,155.517,-63.0395],[2198.36,-100.348,27.55,150.327,-61.7628],[2143.6,-1.21042,26.7833,145.014,-60.3511],[2084.76,98.9468,25.9667,139.361,-58.7148],[2021.76,198.999,25.1,133.392,-56.8101],[1953.3,299.455,24.1667,127.03,-54.539],[1879.26,398.569,23.1667,120.337,-51.8163],[1795.78,498.67,22.05,113.085,-48.3673],[1698.85,599.717,20.7667,105.171,-43.7831],[1583.02,699.531,19.25,96.6505,-37.3671],[1425.71,799.456,17.2167,87.31,-26.8348],[1104.8,880.362,13.15,79.9049,-0.0287616]]], + [58,899.695,[[2860.47,-2000.52,38.6833,220.918,-74.4167],[2832.67,-1901.87,38.2167,218.218,-74.0926],[2803.65,-1801.16,37.7333,215.385,-73.7456],[2774.4,-1701.94,37.25,212.515,-73.3865],[2743.9,-1600.91,36.75,209.509,-73.0015],[2713.16,-1501.54,36.25,206.463,-72.6021],[2681.14,-1400.62,35.7333,203.277,-72.1733],[2648.86,-1301.52,35.2167,200.052,-71.7273],[2615.28,-1201.17,34.6833,196.683,-71.2476],[2581.42,-1102.81,34.15,193.274,-70.7472],[2545.17,-1000.53,33.5833,189.61,-70.1911],[2508.61,-900.579,33.0167,185.905,-69.6083],[2470.67,-800.151,32.4333,182.05,-68.9784],[2432.43,-702.263,31.85,178.156,-68.3158],[2391.67,-601.582,31.2333,173.999,-67.5769],[2349.47,-501.223,30.6,169.692,-66.7736],[2305.79,-401.477,29.95,165.235,-65.8982],[2259.49,-300.222,29.2667,160.515,-64.9172],[2211.66,-200.39,28.5667,155.65,-63.8414],[2161.13,-100.093,27.8333,150.531,-62.6294],[2109.01,-2.12215,27.0833,145.282,-61.29],[2051.77,99.1791,26.2667,139.566,-59.7033],[1991.66,198.571,25.4167,133.637,-57.8921],[1926.26,298.743,24.5,127.294,-55.7311],[1854.25,399.594,23.5,120.48,-53.0917],[1775.49,498.773,22.4167,113.287,-49.8475],[1683.7,599.984,21.1667,105.347,-45.522],[1576.08,699.356,19.7167,96.84,-39.5841],[1433.33,799.761,17.8167,87.3827,-30.0626],[1086.9,899.693,13.3,77.7475,-0.0735231]]], + [59,918.702,[[2798.83,-2003.15,38.9167,221.176,-74.8743],[2770.82,-1900.66,38.4333,218.373,-74.5485],[2743.57,-1803.1,37.9667,215.631,-74.2232],[2714.14,-1700.13,37.4667,212.654,-73.8625],[2685.47,-1602.13,36.9833,209.738,-73.5012],[2655.57,-1502.38,36.4833,206.684,-73.1136],[2624.43,-1401.07,35.9667,203.488,-72.6975],[2593.04,-1301.58,35.45,200.252,-72.2646],[2560.38,-1200.81,34.9167,196.87,-71.799],[2527.46,-1102.04,34.3833,193.447,-71.3132],[2493.24,-1002.3,33.8333,189.877,-70.7896],[2457.7,-901.828,33.2667,186.156,-70.2245],[2420.81,-800.86,32.6833,182.283,-69.6136],[2383.62,-702.425,32.1,178.369,-68.9709],[2343.99,-601.162,31.4833,174.19,-68.2541],[2302.95,-500.197,30.85,169.857,-67.4746],[2261.58,-402.356,30.2167,165.486,-66.6474],[2216.57,-300.346,29.5333,160.734,-65.6965],[2171.18,-202.082,28.85,155.949,-64.6789],[2122.06,-100.856,28.1167,150.787,-63.5051],[2071.4,-1.92788,27.3667,145.489,-62.2073],[2016.9,98.3946,26.5667,139.83,-60.7016],[1958.48,199.015,25.7167,133.828,-58.9472],[1896.08,298.746,24.8167,127.513,-56.8918],[1827.28,399.584,23.8333,120.698,-54.3789],[1751.94,499.223,22.7667,113.467,-51.2863],[1666.36,599.01,21.5667,105.633,-47.2709],[1564.26,699.777,20.15,96.9911,-41.663],[1434.23,799.968,18.3667,87.5013,-33.0222],[1213.29,899.902,15.3833,77.1221,-14.3001],[1066.74,918.701,13.4333,75.5762,-0.0250153]]], + [60,937.36,[[2734.37,-2003.46,39.1333,221.368,-75.3266],[2707.16,-1900.66,38.65,218.558,-75.0105],[2680.68,-1802.8,38.1833,215.808,-74.695],[2653.04,-1702.92,37.7,212.923,-74.357],[2624.23,-1601.19,37.2,209.899,-73.9946],[2595.18,-1501.11,36.7,206.835,-73.6186],[2565.9,-1402.7,36.2,203.733,-73.2281],[2535.41,-1302.8,35.6833,200.486,-72.8086],[2503.68,-1201.61,35.15,197.092,-72.3574],[2471.7,-1102.4,34.6167,193.657,-71.8865],[2438.46,-1002.22,34.0667,190.073,-71.3789],[2403.93,-901.278,33.5,186.336,-70.8311],[2369.13,-802.689,32.9333,182.557,-70.2561],[2331.97,-700.901,32.3333,178.512,-69.6154],[2294.52,-601.828,31.7333,174.424,-68.9394],[2254.66,-500.241,31.1,170.066,-68.1843],[2214.48,-401.771,30.4667,165.669,-67.3828],[2171.83,-301.537,29.8,161.001,-66.4842],[2126.68,-200.12,29.1,156.064,-65.4743],[2080.06,-100.415,28.3833,150.978,-64.3625],[2030.86,-0.609149,27.6333,145.632,-63.105],[1979.04,98.603,26.85,140.035,-61.677],[1923.44,198.422,26.0167,134.083,-60.0126],[1862.86,299.495,25.1167,127.683,-58.0238],[1798.34,398.486,24.1667,120.994,-55.6763],[1726.37,498.559,23.1167,113.734,-52.7362],[1644.48,599.405,21.9333,105.814,-48.9099],[1548.93,699.892,20.5667,97.1809,-43.6819],[1429.92,799.736,18.8833,87.6897,-35.8111],[1247.12,899.786,16.3333,77.1006,-20.4389],[1045.67,937.36,13.5667,73.3836,-0.00289845]]], + [61,955.65,[[2667.19,-2001.44,39.3333,221.493,-75.7742],[2641.69,-1901.9,38.8667,218.773,-75.4785],[2615.07,-1800.25,38.3833,215.918,-75.1619],[2588.25,-1700.09,37.9,213.025,-74.8341],[2561.21,-1601.45,37.4167,210.093,-74.4946],[2533.02,-1501.03,36.9167,207.02,-74.1303],[2504.6,-1402.27,36.4167,203.908,-73.752],[2475.01,-1302.01,35.9,200.65,-73.3456],[2444.22,-1200.44,35.3667,197.245,-72.9084],[2413.19,-1100.85,34.8333,193.796,-72.4521],[2380.92,-1000.27,34.2833,190.197,-71.9602],[2348.4,-901.866,33.7333,186.555,-71.4451],[2314.63,-802.791,33.1667,182.759,-70.8885],[2278.59,-700.484,32.5667,178.695,-70.2682],[2242.25,-600.886,31.9667,174.586,-69.6136],[2204.59,-501.389,31.35,170.32,-68.902],[2165.61,-402.272,30.7167,165.897,-68.1267],[2124.24,-301.35,30.05,161.2,-67.2573],[2081.48,-201.591,29.3667,156.346,-66.304],[2036.27,-101.034,28.65,151.221,-65.2292],[1988.55,-0.329,27.9,145.83,-64.0132],[1938.29,99.8321,27.1167,140.179,-62.6314],[1885.44,198.712,26.3,134.282,-61.0535],[1827.78,299.196,25.4167,127.921,-59.1669],[1765.22,399.649,24.4667,121.131,-56.8975],[1696.54,499.816,23.4333,113.858,-54.0985],[1619.39,599.975,22.2833,105.983,-50.5037],[1530.19,699.784,20.9667,97.3992,-45.6423],[1420.62,799.37,19.3667,87.9116,-38.4338],[1262.24,899.552,17.0833,77.2018,-25.2074],[1023.67,955.65,13.7,71.1701,-0.00998126]]], + [62,973.552,[[2598.22,-2000.68,39.5333,221.648,-76.2281],[2573.5,-1900.87,39.0667,218.922,-75.9418],[2548.59,-1802.43,38.6,216.159,-75.646],[2522.59,-1701.93,38.1167,213.259,-75.329],[2496.39,-1602.95,37.6333,210.32,-75.0007],[2469.07,-1502.17,37.1333,207.239,-74.6484],[2441.53,-1403.06,36.6333,204.118,-74.2826],[2412.86,-1302.42,36.1167,200.85,-73.8895],[2383.01,-1200.46,35.5833,197.433,-73.4665],[2352.93,-1100.48,35.05,193.973,-73.0251],[2322.62,-1002.52,34.5167,190.47,-72.564],[2290.15,-900.668,33.95,186.703,-72.0509],[2257.42,-801.161,33.3833,182.89,-71.5122],[2223.45,-701.211,32.8,178.921,-70.9289],[2188.24,-601.072,32.2,174.792,-70.2961],[2151.75,-501.012,31.5833,170.504,-69.6081],[2113.98,-401.313,30.95,166.056,-68.8584],[2074.89,-302.268,30.3,161.447,-68.0391],[2033.47,-201.776,29.6167,156.561,-67.1181],[1989.66,-100.444,28.9,151.399,-66.0795],[1944.46,-1.1251,28.1667,146.083,-64.931],[1896.81,97.9114,27.4,140.502,-63.6263],[1844.58,199.914,26.5667,134.423,-62.0719],[1789.78,299.662,25.7,128.107,-60.2835],[1730.25,399.752,24.7667,121.342,-58.1311],[1664.82,499.993,23.75,114.064,-55.4739],[1592.29,599.378,22.6333,106.251,-52.1093],[1508.13,699.525,21.35,97.6369,-47.5462],[1406.53,799.141,19.8167,88.1338,-40.8974],[1265.69,899.577,17.7167,77.3311,-29.2079],[1000.75,973.551,13.8333,68.9363,-0.0492619]]], + [63,991.039,[[2527.49,-2001.22,39.7333,221.834,-76.6879],[2503.57,-1901.13,39.2667,219.102,-76.4112],[2479.45,-1802.41,38.8,216.333,-76.1253],[2454.28,-1701.62,38.3167,213.425,-75.819],[2428.92,-1602.34,37.8333,210.479,-75.5016],[2402.47,-1501.25,37.3333,207.389,-75.1611],[2375.81,-1401.82,36.8333,204.258,-74.8074],[2348.05,-1300.85,36.3167,200.98,-74.4274],[2320.07,-1201.72,35.8,197.659,-74.0315],[2290.95,-1101.33,35.2667,194.188,-73.6052],[2261.61,-1002.95,34.7333,190.672,-73.1599],[2230.19,-900.661,34.1667,186.891,-72.6643],[2198.51,-800.707,33.6,183.063,-72.1439],[2165.63,-700.292,33.0167,179.075,-71.5804],[2132.5,-602.429,32.4333,175.043,-70.9864],[2097.2,-501.79,31.8167,170.734,-70.3225],[2060.64,-401.49,31.1833,166.261,-69.5988],[2022.82,-301.821,30.5333,161.626,-68.8079],[1982.73,-200.669,29.85,156.708,-67.9184],[1941.33,-100.962,29.15,151.63,-66.9392],[1897.59,-0.819234,28.4167,146.273,-65.8311],[1851.49,99.0868,27.65,140.643,-64.5717],[1802.98,198.039,26.85,134.749,-63.1331],[1749.98,299.039,25.9833,128.361,-61.4109],[1693.43,398.745,25.0667,121.629,-59.3752],[1631.19,499.039,24.0667,114.354,-56.86],[1562.11,598.99,22.9667,106.502,-53.6711],[1482.86,699.178,21.7167,97.8857,-49.3957],[1387.86,799.291,20.2333,88.327,-43.2105],[1261.55,899.39,18.2833,77.5193,-32.7891],[976.91,991.036,13.9667,66.6826,-0.124512]]], + [64,1008.09,[[2455,-2003.11,39.9333,222.051,-77.1534],[2431.87,-1902.73,39.4667,219.314,-76.8865],[2407.73,-1800.2,38.9833,216.439,-76.6006],[2384.24,-1702.61,38.5167,213.625,-76.3151],[2359.72,-1603.02,38.0333,210.671,-76.0089],[2334.15,-1501.61,37.5333,207.574,-75.6803],[2308.38,-1401.85,37.0333,204.434,-75.3391],[2281.55,-1300.54,36.5167,201.146,-74.9723],[2254.5,-1201.06,36,197.815,-74.5903],[2226.36,-1100.31,35.4667,194.332,-74.1789],[2197.99,-1001.57,34.9333,190.804,-73.749],[2168.51,-901.877,34.3833,187.12,-73.285],[2137.9,-801.461,33.8167,183.277,-72.7833],[2106.13,-700.565,33.2333,179.273,-72.2399],[2074.11,-602.216,32.65,175.223,-71.667],[2039.99,-501.059,32.0333,170.892,-71.0267],[2004.66,-400.222,31.4,166.396,-70.3285],[1969.04,-302.525,30.7667,161.854,-69.5854],[1930.31,-200.691,30.0833,156.906,-68.7282],[1890.3,-100.279,29.3833,151.793,-67.7843],[1849.01,-1.63371,28.6667,146.519,-66.7408],[1804.47,99.1662,27.9,140.842,-65.5279],[1757.6,199.06,27.1,134.893,-64.1415],[1707.38,299.189,26.25,128.561,-62.514],[1653.75,398.359,25.35,121.868,-60.5902],[1594.65,498.536,24.3667,114.607,-58.2117],[1528.95,598.865,23.2833,106.73,-55.1922],[1454.47,698.808,22.0667,98.1377,-51.1938],[1365.87,798.993,20.6333,88.5716,-45.457],[1250.25,899.773,18.7833,77.6643,-35.9714],[1033.48,999.792,15.3667,65.2488,-11.1805],[951.076,1008.09,14.0833,64.4143,-0.0945864]]], + [65,1024.7,[[2379.95,-2002.74,40.1167,222.203,-77.6152],[2357.63,-1902.1,39.65,219.46,-77.3579],[2335.13,-1802.83,39.1833,216.678,-77.092],[2311.64,-1701.47,38.7,213.757,-76.8071],[2287.97,-1601.61,38.2167,210.796,-76.5119],[2264.12,-1503.27,37.7333,207.794,-76.2058],[2239.26,-1403.18,37.2333,204.647,-75.8772],[2213.36,-1301.51,36.7167,201.35,-75.524],[2187.25,-1201.67,36.2,198.009,-75.156],[2160.09,-1100.55,35.6667,194.515,-74.7597],[2132.72,-1001.43,35.1333,190.975,-74.3456],[2104.27,-901.347,34.5833,187.278,-73.8986],[2074.72,-800.522,34.0167,183.42,-73.4152],[2044.94,-702.061,33.45,179.515,-72.9069],[2013.16,-600.424,32.85,175.331,-72.3394],[1981.12,-501.518,32.25,171.097,-71.7392],[1947.03,-400.125,31.6167,166.579,-71.0671],[1912.67,-301.866,30.9833,162.012,-70.3515],[1876.21,-201.875,30.3167,157.156,-69.5468],[1837.61,-100.737,29.6167,152.011,-68.6389],[1797.77,-1.34068,28.9,146.699,-67.6349],[1755.73,98.114,28.15,141.102,-66.4937],[1710.53,198.976,27.35,135.1,-65.1609],[1663.04,298.219,26.5167,128.829,-63.6275],[1611.31,398.631,25.6167,122.058,-61.7789],[1555.28,498.527,24.65,114.82,-59.5316],[1492.9,599.053,23.5833,106.93,-56.6755],[1422.07,699.787,22.3833,98.2673,-52.8855],[1339.64,799.422,21,88.7458,-47.5672],[1234.27,899.761,19.25,77.8693,-38.9683],[1062.41,999.904,16.4333,65.248,-19.6031],[924.401,1024.69,14.2,62.126,-0.0987548]]], + [66,1040.82,[[2302.45,-2000.12,40.2833,222.289,-78.0741],[2281.7,-1902.85,39.8333,219.638,-77.8353],[2260.02,-1803.32,39.3667,216.851,-77.5795],[2237.39,-1701.67,38.8833,213.924,-77.3053],[2214.58,-1601.53,38.4,210.955,-77.0213],[2191.6,-1502.92,37.9167,207.946,-76.7268],[2167.64,-1402.52,37.4167,204.79,-76.4106],[2142.68,-1300.55,36.9,201.484,-76.0707],[2117.52,-1200.4,36.3833,198.133,-75.7166],[2092.17,-1102.09,35.8667,194.738,-75.3473],[2065.8,-1002.58,35.3333,191.187,-74.9492],[2038.39,-902.087,34.7833,187.478,-74.5195],[2009.92,-800.837,34.2167,183.606,-74.0547],[1981.23,-701.948,33.65,179.686,-73.566],[1951.46,-602.652,33.0667,175.602,-73.0358],[1919.74,-500.484,32.45,171.232,-72.443],[1887.77,-401.239,31.8333,166.811,-71.8139],[1854.67,-302.401,31.2,162.221,-71.1265],[1819.54,-201.793,30.5333,157.338,-70.3532],[1782.36,-100.001,29.8333,152.161,-69.4804],[1744.88,-2.2081,29.1333,146.938,-68.5384],[1704.4,98.0645,28.3833,141.299,-67.4426],[1660.86,199.807,27.5833,135.246,-66.1622],[1615.12,299.977,26.75,128.915,-64.6879],[1566.23,399.584,25.8667,122.195,-62.9436],[1513.2,499.044,24.9167,114.989,-60.8225],[1454.08,599.591,23.8667,107.097,-58.124],[1387.79,699.58,22.7,98.502,-54.5913],[1310.37,799.631,21.35,88.9429,-49.6201],[1213.82,899.625,19.6833,78.0976,-41.7868],[1068.22,999.581,17.2,65.4228,-25.5634],[896.887,1040.82,14.3167,59.8186,-0.141644]]], + [67,1056.46,[[2224.05,-2002.54,40.4667,222.505,-78.5475],[2203.35,-1901.42,40,219.751,-78.3097],[2182.5,-1801.65,39.5333,216.958,-78.0638],[2161.48,-1703.26,39.0667,214.125,-77.8095],[2139.54,-1602.83,38.5833,211.151,-77.5369],[2116.67,-1500.53,38.0833,208.03,-77.2442],[2094.39,-1403.22,37.6,204.971,-76.9506],[2070.38,-1300.92,37.0833,201.657,-76.6242],[2046.19,-1200.44,36.5667,198.297,-76.2842],[2021.81,-1101.8,36.05,194.891,-75.9296],[1996.44,-1001.95,35.5167,191.329,-75.5473],[1970.08,-901.101,34.9667,187.607,-75.1345],[1943.5,-802.436,34.4167,183.837,-74.7016],[1915.1,-700.216,33.8333,179.787,-74.2185],[1886.46,-600.532,33.25,175.685,-73.7092],[1856.78,-500.683,32.65,171.414,-73.1552],[1826.03,-400.94,32.0333,166.973,-72.5515],[1794.2,-301.585,31.4,162.36,-71.8916],[1760.42,-200.429,30.7333,157.451,-71.1491],[1725.52,-100.446,30.05,152.367,-70.3316],[1689.48,-1.97117,29.35,147.11,-69.4281],[1650.56,99.0394,28.6,141.431,-68.3767],[1609.57,199.496,27.8167,135.457,-67.1743],[1566.48,298.657,27,129.196,-65.7906],[1519.48,399.413,26.1167,122.406,-64.1205],[1469.41,498.424,25.1833,115.238,-62.1254],[1413.49,598.979,24.15,107.355,-59.5849],[1350.71,699.516,23,98.7204,-56.2544],[1278.16,799.688,21.6833,89.1542,-51.6181],[1189.14,899.618,20.0833,78.3156,-44.436],[1061.59,999.573,17.8167,65.6013,-30.3484],[867.58,1056.46,14.4167,57.4962,-0.0652365]]], + [68,1071.59,[[2143.26,-2002.77,40.6333,222.657,-79.0182],[2123.39,-1901.41,40.1667,219.898,-78.7901],[2103.37,-1801.41,39.7,217.099,-78.5544],[2083.19,-1702.77,39.2333,214.26,-78.3106],[2062.13,-1602.09,38.75,211.279,-78.0491],[2040.9,-1502.92,38.2667,208.255,-77.778],[2018.78,-1401.95,37.7667,205.084,-77.4868],[1996.48,-1302.66,37.2667,201.869,-77.1841],[1973.25,-1201.84,36.75,198.5,-76.8584],[1949.85,-1102.86,36.2333,195.086,-76.5187],[1925.5,-1002.66,35.7,191.514,-76.1525],[1900.19,-901.432,35.15,187.78,-75.757],[1874.69,-802.391,34.6,183.997,-75.3422],[1848.2,-702.667,34.0333,180.049,-74.8929],[1820.72,-602.503,33.45,175.933,-74.4054],[1792.24,-502.157,32.85,171.646,-73.8753],[1762.72,-401.897,32.2333,167.186,-73.2974],[1732.18,-302.007,31.6,162.551,-72.6656],[1699.76,-200.281,30.9333,157.617,-71.9546],[1667.08,-102.117,30.2667,152.63,-71.1914],[1631.68,-0.624826,29.55,147.215,-70.3058],[1595.15,98.8361,28.8167,141.624,-69.3213],[1556.66,197.996,28.05,135.733,-68.196],[1515.32,298.12,27.2333,129.418,-66.8734],[1470.23,399.928,26.35,122.562,-65.2758],[1423.04,498.341,25.4333,115.441,-63.4016],[1370.27,598.735,24.4167,107.577,-61.0131],[1310.93,699.632,23.2833,98.9172,-57.8779],[1243.12,799.642,22,89.3722,-53.5641],[1160.43,899.955,20.45,78.4938,-46.9273],[1047.2,999.537,18.35,65.8063,-34.5164],[837.518,1071.59,14.5167,55.1547,-0.0248675]]], + [69,1086.19,[[2060.2,-2000.8,40.7833,222.744,-79.4866],[2041.84,-1902.85,40.3333,220.078,-79.2762],[2022.66,-1802.59,39.8667,217.274,-79.0507],[2002.63,-1700.2,39.3833,214.328,-78.8091],[1983.15,-1602.76,38.9167,211.443,-78.5675],[1962.82,-1503.32,38.4333,208.413,-78.3082],[1941.62,-1402.08,37.9333,205.235,-78.0297],[1920.26,-1302.51,37.4333,202.012,-77.7401],[1898.01,-1201.39,36.9167,198.635,-77.4285],[1875.59,-1102.12,36.4,195.211,-77.1035],[1852.26,-1001.6,35.8667,191.628,-76.7531],[1828.02,-900.058,35.3167,187.882,-76.3747],[1803.58,-800.693,34.7667,184.086,-75.9777],[1778.21,-700.631,34.2,180.124,-75.5476],[1751.89,-600.117,33.6167,175.991,-75.081],[1725.36,-502.169,33.0333,171.807,-74.5879],[1697.09,-401.454,32.4167,167.328,-74.0354],[1667.83,-301.091,31.7833,162.672,-73.4313],[1637.56,-201.376,31.1333,157.838,-72.7688],[1605.48,-100.193,30.45,152.698,-72.0209],[1572.36,-0.477124,29.75,147.378,-71.1937],[1537.38,99.6518,29.0167,141.751,-70.2528],[1500.52,199.517,28.25,135.817,-69.1768],[1461.74,298.396,27.45,129.581,-67.9385],[1419.39,399.283,26.5833,122.792,-66.4426],[1374.21,498.83,25.6667,115.594,-64.654],[1324.52,598.902,24.6667,107.758,-62.4118],[1268.55,699.977,23.55,99.0876,-59.4651],[1205.34,799.557,22.3,89.5897,-55.461],[1128.78,899.846,20.8,78.7224,-49.3506],[1026.51,999.768,18.8167,65.9861,-38.2205],[806.708,1086.18,14.6167,52.7947,-0.0256423]]], + [70,1100.24,[[1975.6,-2000.3,40.9333,222.864,-79.961],[1958.05,-1902.14,40.4833,220.193,-79.76],[1939.71,-1801.68,40.0167,217.384,-79.5448],[1921.24,-1702.58,39.55,214.534,-79.3221],[1901.95,-1601.41,39.0667,211.541,-79.0833],[1882.52,-1501.74,38.5833,208.504,-78.8356],[1862.25,-1400.26,38.0833,205.318,-78.5696],[1841.83,-1300.45,37.5833,202.086,-78.2931],[1821.25,-1202.33,37.0833,198.81,-78.0052],[1799.83,-1102.75,36.5667,195.377,-77.6952],[1777.54,-1001.91,36.0333,191.785,-77.3609],[1754.37,-900.03,35.4833,188.028,-76.9998],[1731.01,-800.326,34.9333,184.221,-76.6209],[1707.48,-702.831,34.3833,180.363,-76.2229],[1682.33,-601.878,33.8,176.217,-75.7782],[1656.25,-500.712,33.2,171.897,-75.2944],[1629.97,-402.296,32.6,167.521,-74.7816],[1602.02,-301.442,31.9667,162.846,-74.2056],[1573.09,-201.217,31.3167,157.989,-73.5739],[1543.19,-101.93,30.65,152.95,-72.8786],[1511.55,-1.56004,29.95,147.602,-72.0909],[1478.13,99.2611,29.2167,141.94,-71.1946],[1442.91,199.857,28.45,135.967,-70.1691],[1405.87,299.506,27.65,129.683,-68.9883],[1366.18,399.34,26.8,122.966,-67.5898],[1323.03,499.918,25.8833,115.695,-65.8852],[1276.36,599.514,24.9,107.896,-63.7838],[1224.5,699.141,23.8167,99.3578,-61.0648],[1164.95,799.483,22.5833,89.8002,-57.312],[1094.3,899.362,21.1333,78.991,-51.7071],[1001.62,999.442,19.25,66.2487,-41.7078],[786.071,1099.97,14.9333,50.4224,-2.4878],[775.152,1100.24,14.7167,50.4166,-0.0735976]]], + [71,1113.72,[[1889.48,-2001.3,41.0833,223.018,-80.4409],[1872.75,-1902.93,40.6333,220.344,-80.2496],[1855.27,-1802.25,40.1667,217.53,-80.0447],[1837.65,-1702.92,39.7,214.675,-79.8327],[1819.27,-1601.51,39.2167,211.676,-79.6053],[1800.74,-1501.62,38.7333,208.633,-79.3695],[1782.07,-1403.25,38.25,205.547,-79.1248],[1762.61,-1303.13,37.75,202.309,-78.8618],[1742.34,-1201.45,37.2333,198.916,-78.5787],[1721.91,-1101.61,36.7167,195.475,-78.2835],[1700.66,-1000.49,36.1833,191.872,-77.9651],[1679.24,-901.388,35.65,188.22,-77.6318],[1656.98,-801.328,35.1,184.401,-77.2714],[1633.87,-700.544,34.5333,180.414,-76.881],[1610.58,-602.138,33.9667,176.373,-76.4697],[1585.73,-500.573,33.3667,172.037,-76.0094],[1560.68,-401.755,32.7667,167.645,-75.5213],[1534.03,-300.472,32.1333,162.95,-74.9731],[1507.17,-202.342,31.5,158.197,-74.3876],[1477.96,-100.057,30.8167,153.007,-73.7094],[1448.52,-1.55459,30.1333,147.758,-72.9776],[1416.67,99.8819,29.4,142.064,-72.1251],[1383.84,198.979,28.65,136.183,-71.1714],[1348.54,299.425,27.85,129.854,-70.0496],[1311.47,398.2,27.0167,123.215,-68.7476],[1270.36,499.843,26.1,115.875,-67.1294],[1226.65,598.957,25.1333,108.122,-65.1686],[1178.02,698.557,24.0667,99.5975,-62.63],[1122.06,799.461,22.85,89.998,-59.1204],[1056.33,899.633,21.4333,79.1657,-53.9296],[972.001,999.605,19.6333,66.4424,-44.886],[822.649,1099.74,16.4833,50.4784,-19.0084],[742.861,1113.72,14.8167,48.0212,-0.176404]]], + [72,1126.63,[[1801.27,-2000.16,41.2167,223.109,-80.9194],[1785.37,-1901.61,40.7667,220.429,-80.7377],[1768.75,-1800.74,40.3,217.61,-80.5429],[1752,-1701.23,39.8333,214.75,-80.3416],[1735.13,-1603.1,39.3667,211.849,-80.1331],[1717.51,-1502.96,38.8833,208.801,-79.9093],[1699.15,-1400.97,38.3833,205.602,-79.669],[1680.65,-1300.64,37.8833,202.356,-79.419],[1662,-1202,37.3833,199.064,-79.1588],[1642.58,-1101.88,36.8667,195.615,-78.8786],[1622.38,-1000.47,36.3333,192.004,-78.5763],[1602.02,-901.08,35.8,188.341,-78.26],[1580.87,-800.717,35.25,184.512,-77.9178],[1559.55,-702.557,34.7,180.631,-77.5584],[1536.76,-600.891,34.1167,176.458,-77.1566],[1513.79,-501.779,33.5333,172.229,-76.7319],[1489.99,-402.541,32.9333,167.821,-76.269],[1464.66,-300.809,32.3,163.108,-75.7491],[1439.13,-202.227,31.6667,158.336,-75.1936],[1412.05,-101.911,31,153.25,-74.5665],[1383.39,-0.449274,30.3,147.846,-73.8557],[1353.82,99.2576,29.5833,142.251,-73.0654],[1322.62,199.015,28.8333,136.335,-72.1614],[1289.78,298.121,28.05,130.097,-71.1208],[1253.85,399.695,27.2,123.272,-69.8619],[1216.21,498.571,26.3167,116.137,-68.3844],[1174.69,598.854,25.35,108.302,-66.529],[1128.48,699.756,24.2833,99.6683,-64.1231],[1076.79,799.537,23.1,90.178,-60.8898],[1015.83,899.717,21.7167,79.3549,-56.0981],[938.731,999.803,19.9833,66.6276,-47.8783],[814.31,1099.94,17.2167,50.6251,-26.6822],[709.077,1126.63,14.9,45.6111,-0.13809]]], + [73,1138.93,[[1711.65,-2000.56,41.35,223.235,-81.4034],[1696.58,-1901.83,40.9,220.551,-81.2313],[1680.83,-1800.76,40.4333,217.727,-81.047],[1664.96,-1701.05,39.9667,214.862,-80.8564],[1648.96,-1602.73,39.5,211.956,-80.659],[1632.28,-1502.37,39.0167,208.902,-80.4472],[1614.87,-1400.16,38.5167,205.696,-80.2196],[1597.92,-1302.94,38.0333,202.553,-79.991],[1579.67,-1200.76,37.5167,199.145,-79.7366],[1561.26,-1100.4,37,195.687,-79.4712],[1542.72,-1001.9,36.4833,192.18,-79.1941],[1523.43,-902.199,35.95,188.509,-78.8949],[1503.39,-801.516,35.4,184.67,-78.5713],[1482.57,-700.084,34.8333,180.66,-78.2207],[1461.6,-601.023,34.2667,176.593,-77.8512],[1439.83,-501.562,33.6833,172.35,-77.4494],[1417.28,-401.961,33.0833,167.928,-77.0114],[1393.92,-302.492,32.4667,163.323,-76.5328],[1369.1,-200.873,31.8167,158.405,-75.9937],[1343.44,-100.143,31.15,153.297,-75.3999],[1316.93,-0.623827,30.4667,147.997,-74.7433],[1288.91,99.6336,29.75,142.373,-73.9961],[1259.36,199.972,29,136.422,-73.141],[1228.24,299.691,28.2167,130.144,-72.1562],[1194.88,399.991,27.3833,123.405,-70.9888],[1159.23,499.699,26.5,116.209,-69.5917],[1120.58,599.225,25.55,108.434,-67.8679],[1077.5,699.795,24.5,99.8344,-65.6316],[1029.24,799.742,23.3333,90.3357,-62.6236],[972.92,899.661,21.9833,79.5517,-58.2157],[902.755,999.37,20.3167,66.8944,-50.7878],[795.706,1099.6,17.8,50.8964,-32.8368],[674.65,1138.93,14.9833,43.1842,-0.152582]]], + [74,1150.63,[[1620.62,-2002.52,41.4833,223.396,-81.8925],[1606.39,-1903.59,41.0333,220.709,-81.7303],[1591.52,-1802.32,40.5667,217.882,-81.5566],[1576.53,-1702.4,40.1,215.013,-81.3768],[1560.89,-1600.37,39.6167,211.997,-81.184],[1545.67,-1503.29,39.15,209.043,-80.991],[1529.24,-1400.85,38.65,205.832,-80.7764],[1512.69,-1300.07,38.15,202.573,-80.5532],[1496,-1200.97,37.65,199.268,-80.3209],[1478.63,-1100.37,37.1333,195.803,-80.0706],[1461.12,-1001.63,36.6167,192.288,-79.8093],[1442.9,-901.666,36.0833,188.608,-79.5271],[1423.98,-800.714,35.5333,184.759,-79.2218],[1404.9,-701.96,34.9833,180.856,-78.9011],[1385.1,-602.547,34.4167,176.779,-78.553],[1364.56,-502.72,33.8333,172.525,-78.1745],[1342.67,-400.001,33.2167,167.964,-77.75],[1320.61,-300.216,32.6,163.342,-77.2981],[1297.78,-200.836,31.9667,158.532,-76.8027],[1274.16,-102.157,31.3167,153.532,-76.2574],[1249.14,-2.095,30.6333,148.209,-75.6396],[1222.7,98.7369,29.9167,142.559,-74.9362],[1194.8,199.683,29.1667,136.577,-74.1311],[1166.06,297.961,28.4,130.397,-73.2242],[1134.57,399.067,27.5667,123.613,-72.1264],[1100.92,499.639,26.6833,116.362,-70.8118],[1065.09,598.411,25.75,108.655,-69.2189],[1025.09,698.646,24.7167,100.098,-67.152],[980.204,798.761,23.5667,90.6035,-64.3702],[927.722,899.52,22.2333,79.7492,-60.2859],[863.523,999.286,20.6167,67.1042,-53.5308],[769.28,1099.81,18.2667,51.0738,-37.893],[639.584,1150.62,15.0667,40.741,-0.229393]]], + [75,1161.69,[[1527.72,-2002.39,41.6,223.494,-82.3808],[1514.33,-1903.3,41.15,220.803,-82.2283],[1500.35,-1801.85,40.6833,217.972,-82.065],[1486.25,-1701.76,40.2167,215.098,-81.8961],[1472.05,-1603.05,39.75,212.182,-81.7212],[1457.23,-1502.3,39.2667,209.118,-81.5335],[1442.29,-1403.06,38.7833,206.009,-81.3386],[1426.72,-1302.04,38.2833,202.746,-81.1291],[1411.03,-1202.7,37.7833,199.434,-80.9111],[1394.69,-1101.84,37.2667,195.963,-80.6761],[1378.23,-1002.83,36.75,192.442,-80.4307],[1361.1,-902.594,36.2167,188.754,-80.1658],[1343.3,-801.358,35.6667,184.897,-79.8792],[1325.37,-702.317,35.1167,180.984,-79.578],[1306.75,-602.605,34.55,176.896,-79.2511],[1287.43,-502.467,33.9667,172.629,-78.8956],[1267.4,-402.164,33.3667,168.18,-78.508],[1246.66,-301.965,32.75,163.543,-78.0843],[1225.2,-202.155,32.1167,158.717,-77.6195],[1202.42,-100.534,31.45,153.569,-77.0944],[1178.89,-0.0925119,30.7667,148.224,-76.5136],[1154.6,98.835,30.0667,142.68,-75.8682],[1128.96,198.105,29.3333,136.802,-75.1299],[1101.35,299.132,28.55,130.452,-74.2606],[1072.34,398.861,27.7333,123.762,-73.2507],[1041.31,498.351,26.8667,116.598,-72.0423],[1007.02,599.789,25.9167,108.686,-70.5217],[970.025,699.383,24.9,100.182,-68.6123],[928.45,799.316,23.7667,90.7063,-66.0407],[880.361,899.328,22.4667,79.9418,-62.3121],[821.283,999.714,20.8833,67.2326,-56.1249],[738.418,1099.52,18.6833,51.3416,-42.5135],[603.255,1161.69,15.1333,38.2837,-0.136931]]], + [76,1172.11,[[1433.07,-2000.15,41.7,223.529,-82.8688],[1420.53,-1900.94,41.25,220.834,-82.7261],[1407.91,-1802.96,40.8,218.1,-82.5788],[1394.71,-1702.69,40.3333,215.223,-82.4208],[1380.94,-1600.3,39.85,212.198,-82.2513],[1367.54,-1502.85,39.3833,209.234,-82.0817],[1353.07,-1400.02,38.8833,206.012,-81.8931],[1338.98,-1302.2,38.4,202.851,-81.7036],[1324.29,-1202.65,37.9,199.534,-81.4996],[1308.99,-1101.57,37.3833,196.056,-81.2799],[1293.58,-1002.35,36.8667,192.527,-81.0504],[1277.55,-901.891,36.3333,188.832,-80.8025],[1260.88,-800.422,35.7833,184.965,-80.5344],[1244.09,-701.145,35.2333,181.043,-80.2526],[1226.66,-601.187,34.6667,176.944,-79.9467],[1208.57,-500.796,34.0833,172.665,-79.6141],[1189.82,-400.228,33.4833,168.201,-79.2514],[1170.93,-302.432,32.8833,163.676,-78.8657],[1150.84,-202.256,32.25,158.834,-78.4314],[1129.52,-100.246,31.5833,153.668,-77.9406],[1108.04,-1.81531,30.9167,148.433,-77.4113],[1084.76,99.9428,30.2,142.733,-76.794],[1060.76,199.653,29.4667,136.828,-76.1033],[1035.46,299.048,28.7,130.58,-75.3078],[1008.31,399.391,27.8833,123.851,-74.3643],[979.27,499.54,27.0167,116.638,-73.2345],[947.743,599.982,26.0833,108.805,-71.8385],[913.695,698.942,25.0833,100.362,-70.0862],[875.368,798.7,23.9667,90.9165,-67.7254],[830.957,899.13,22.6833,80.1244,-64.298],[776.858,999.842,21.1333,67.3919,-58.6604],[702.89,1099.79,19.0333,51.4972,-46.6001],[566.387,1172.11,15.2,35.8109,-0.10216]]], + [77,1181.88,[[1337.65,-2003.24,41.8167,223.7,-83.3669],[1325.55,-1900.18,41.35,220.903,-83.2292],[1313.78,-1802.07,40.9,218.164,-83.0921],[1301.49,-1701.66,40.4333,215.283,-82.945],[1289.11,-1602.62,39.9667,212.359,-82.7928],[1276.18,-1501.52,39.4833,209.285,-82.6293],[1263.16,-1401.94,39,206.165,-82.4597],[1249.58,-1300.55,38.5,202.89,-82.2773],[1235.9,-1200.84,38,199.567,-82.0874],[1222.11,-1102.84,37.5,196.195,-81.8895],[1207.29,-1000.2,36.9667,192.545,-81.669],[1192.83,-902.683,36.45,188.958,-81.4456],[1177.31,-800.964,35.9,185.083,-81.1962],[1161.67,-701.434,35.35,181.153,-80.9341],[1145.44,-601.215,34.7833,177.044,-80.6496],[1128.59,-500.551,34.2,172.754,-80.3402],[1111.62,-402.465,33.6167,168.404,-80.0123],[1093.54,-301.62,33,163.74,-79.6439],[1074.83,-201.14,32.3667,158.883,-79.2396],[1055.47,-101.322,31.7167,153.829,-78.7947],[1034.97,-0.0514989,31.0333,148.444,-78.2901],[1013.8,99.7324,30.3333,142.854,-77.7291],[991.448,199.908,29.6,136.923,-77.087],[967.899,299.793,28.8333,130.645,-76.3472],[943.135,398.664,28.0333,124.018,-75.4883],[916.097,499.503,27.1667,116.761,-74.439],[887.273,598.957,26.25,109.012,-73.1664],[855.578,698.878,25.25,100.497,-71.5406],[819.901,799.719,24.1333,90.9517,-69.3469],[779.637,898.958,22.8833,80.2925,-66.2477],[730.374,999.716,21.3667,67.5748,-61.1402],[664.288,1099.79,19.35,51.6917,-50.4514],[528.992,1181.88,15.2667,33.3235,-0.139093]]], + [78,1190.98,[[1240.2,-2000.55,41.9,223.71,-83.8601],[1229.4,-1901.05,41.45,221.009,-83.7373],[1218.51,-1802.79,41,218.268,-83.6105],[1207.13,-1702.22,40.5333,215.383,-83.4744],[1195.66,-1603.02,40.0667,212.455,-83.3336],[1183.7,-1501.76,39.5833,209.377,-83.1825],[1171.64,-1402.01,39.1,206.253,-83.0256],[1159.07,-1300.45,38.6,202.973,-82.8568],[1146.41,-1200.57,38.1,199.644,-82.6812],[1133.64,-1102.38,37.6,196.267,-82.4981],[1120.35,-1002.74,37.0833,192.725,-82.3007],[1106.53,-901.857,36.55,189.016,-82.0874],[1092.6,-802.994,36.0167,185.252,-81.8639],[1077.69,-700.208,35.45,181.194,-81.6142],[1063.1,-602.699,34.9,177.198,-81.3589],[1047.51,-501.746,34.3167,172.899,-81.073],[1031.36,-400.594,33.7167,168.412,-80.7611],[1015.07,-302.209,33.1167,163.862,-80.4295],[997.752,-201.405,32.4833,158.992,-80.0559],[979.838,-101.252,31.8333,153.923,-79.6446],[961.323,-2.05927,31.1667,148.652,-79.1899],[941.733,98.1886,30.4667,143.043,-78.6722],[921.049,198.855,29.7333,137.089,-78.0795],[899.256,299.259,28.9667,130.784,-77.3964],[876.339,398.675,28.1667,124.124,-76.6031],[851.799,498.222,27.3167,116.967,-75.6533],[825.128,598.448,26.4,109.168,-74.4795],[795.8,699.219,25.4,100.587,-72.9786],[763.282,799.582,24.3,91.0922,-70.9841],[726.528,898.85,23.0667,80.4418,-68.1648],[681.959,999.384,21.5833,67.7739,-63.5672],[622.86,1099.73,19.6333,51.8864,-54.0838],[491.081,1190.98,15.3333,30.822,-0.264928]]], + [79,1199.4,[[1142.05,-2003.21,42,223.856,-84.3625],[1132.12,-1903.56,41.55,221.153,-84.2498],[1121.74,-1801.52,41.0833,218.308,-84.1289],[1111.28,-1700.83,40.6167,215.419,-84.0039],[1100.74,-1601.52,40.15,212.487,-83.8745],[1089.74,-1500.13,39.6667,209.404,-83.7356],[1078.65,-1400.26,39.1833,206.276,-83.5914],[1067.49,-1301.93,38.7,203.1,-83.4416],[1055.84,-1201.86,38.2,199.767,-83.2803],[1043.72,-1100.24,37.6833,196.271,-83.1066],[1031.5,-1000.46,37.1667,192.723,-82.9251],[1019.2,-902.553,36.65,189.123,-82.7353],[1005.99,-800.42,36.1,185.234,-82.5235],[992.686,-700.473,35.55,181.287,-82.3008],[979.279,-602.746,35,177.283,-82.0664],[964.951,-501.558,34.4167,172.975,-81.8038],[950.099,-400.163,33.8167,168.478,-81.5174],[935.133,-301.533,33.2167,163.916,-81.2129],[919.214,-200.467,32.5833,159.032,-80.8697],[902.749,-100.043,31.9333,153.948,-80.4918],[885.731,-0.570881,31.2667,148.661,-80.0739],[867.725,99.973,30.5667,143.032,-79.5981],[849.148,198.707,29.85,137.191,-79.0661],[829.121,299.548,29.0833,130.86,-78.4392],[808.06,399.424,28.2833,124.169,-77.7109],[785.509,499.465,27.4333,116.974,-76.8384],[761.446,598.461,26.5333,109.271,-75.7805],[734.499,699.971,25.5333,100.628,-74.4033],[705.073,799.704,24.45,91.1953,-72.6013],[671.763,898.827,23.2333,80.5692,-70.0533],[631.281,999.916,21.7667,67.8398,-65.8887],[578.856,1099.76,19.8833,52.0482,-57.5191],[452.191,1199.4,15.3833,28.3077,-0.174102]]], + [80,1207.13,[[1042.13,-2000.11,42.0667,223.842,-84.8612],[1033.07,-1900.38,41.6167,221.135,-84.7583],[1023.95,-1801.88,41.1667,218.388,-84.6522],[1014.42,-1701.07,40.7,215.496,-84.5383],[1004.81,-1601.63,40.2333,212.561,-84.4204],[994.784,-1500.1,39.75,209.474,-84.2939],[984.68,-1400.09,39.2667,206.342,-84.1625],[974.499,-1301.63,38.7833,203.162,-84.0261],[963.888,-1201.41,38.2833,199.825,-83.8791],[953.196,-1102.89,37.7833,196.437,-83.7261],[942.063,-1002.9,37.2667,192.885,-83.561],[930.483,-901.651,36.7333,189.163,-83.3826],[918.814,-802.421,36.2,185.386,-83.1956],[906.689,-702.241,35.65,181.434,-82.993],[894.099,-601.345,35.0833,177.301,-82.7731],[881.414,-502.838,34.5167,173.107,-82.5408],[867.879,-401.182,33.9167,168.602,-82.2802],[854.24,-302.287,33.3167,164.03,-82.0031],[839.732,-200.94,32.6833,159.135,-81.6907],[824.727,-100.224,32.0333,154.038,-81.3468],[809.219,-0.44975,31.3667,148.736,-80.9664],[793.201,98.0596,30.6833,143.225,-80.5438],[775.879,199.478,29.95,137.228,-80.0486],[758.026,298.529,29.2,131.013,-79.4906],[738.835,398.895,28.4,124.294,-78.8284],[718.288,499.461,27.55,117.066,-78.0348],[696.361,599.019,26.65,109.32,-77.072],[672.217,699.528,25.6667,100.766,-75.8403],[645.821,798.647,24.6,91.4059,-74.2299],[615.475,898.921,23.3833,80.6715,-71.9171],[579.437,999.307,21.95,68.0512,-68.2265],[532.958,1099.29,20.1167,52.2882,-60.8691],[443.788,1199.88,16.6333,28.308,-24.6994],[412.889,1207.13,15.4333,25.7806,-0.167051]]], + [81,1214.15,[[941.582,-2002.41,42.15,223.965,-85.3678],[933.413,-1902.54,41.7,221.256,-85.2751],[924.876,-1800.28,41.2333,218.405,-85.1759],[916.581,-1702.96,40.7833,215.614,-85.0769],[907.915,-1603.37,40.3167,212.676,-84.9707],[898.869,-1501.7,39.8333,209.587,-84.8567],[889.754,-1401.54,39.35,206.452,-84.7382],[880.57,-1302.93,38.8667,203.269,-84.6153],[870.997,-1202.55,38.3667,199.928,-84.4829],[861.028,-1100.62,37.85,196.423,-84.3402],[850.983,-1000.52,37.3333,192.865,-84.1912],[840.861,-902.296,36.8167,189.254,-84.0353],[830.333,-802.891,36.2833,185.471,-83.8668],[819.394,-702.529,35.7333,181.512,-83.6842],[808.036,-601.444,35.1667,177.373,-83.4859],[796.592,-502.747,34.6,173.172,-83.2766],[784.381,-400.886,34,168.658,-83.0416],[772.076,-301.786,33.4,164.077,-82.7918],[758.987,-200.219,32.7667,159.17,-82.5101],[745.798,-101.822,32.1333,154.193,-82.2081],[731.81,-1.72345,31.4667,148.878,-81.8657],[717.008,99.4846,30.7667,143.217,-81.4756],[701.736,198.904,30.05,137.339,-81.0393],[685.633,298.331,29.3,131.102,-80.5368],[668.323,399.101,28.5,124.359,-79.9401],[650.152,498.181,27.6667,117.242,-79.2398],[630.376,598.334,26.7667,109.46,-78.3739],[608.6,699.5,25.7833,100.857,-77.2654],[584.793,799.337,24.7167,91.43,-75.8147],[557.8,899.147,23.5167,80.7465,-73.7599],[525.679,999.669,22.1,68.1147,-70.4771],[484.532,1099.93,20.3,52.3087,-63.9761],[412.249,1199.94,17.1667,28.4952,-35.6078],[373.187,1214.15,15.4833,23.2416,-0.272037]]], + [82,1220.46,[[839.811,-2002.67,42.2167,224.027,-85.8749],[832.532,-1902.71,41.7667,221.316,-85.7924],[824.926,-1800.35,41.3,218.462,-85.704],[817.535,-1702.93,40.85,215.669,-85.6159],[809.813,-1603.24,40.3833,212.728,-85.5212],[801.754,-1501.46,39.9,209.637,-85.4197],[793.633,-1401.2,39.4167,206.498,-85.3142],[785.45,-1302.47,38.9333,203.312,-85.2047],[776.92,-1201.98,38.4333,199.967,-85.0868],[768.326,-1103.19,37.9333,196.571,-84.9639],[759.377,-1002.92,37.4167,193.01,-84.8314],[750.069,-901.364,36.8833,189.278,-84.6882],[740.689,-801.833,36.35,185.49,-84.538],[730.942,-701.34,35.8,181.525,-84.3754],[720.822,-600.118,35.2333,177.378,-84.1988],[710.625,-501.283,34.6667,173.169,-84.0122],[700.049,-402.072,34.0833,168.773,-83.8088],[688.781,-300.027,33.4667,164.056,-83.5802],[677.428,-200.94,32.85,159.269,-83.336],[665.679,-102.302,32.2167,154.281,-83.0673],[653.217,-1.94525,31.55,148.954,-82.7626],[640.031,99.5354,30.85,143.279,-82.4154],[626.427,199.237,30.1333,137.385,-82.0271],[612.081,298.961,29.3833,131.13,-81.5796],[596.983,398.001,28.6,124.505,-81.0599],[580.474,499.466,27.75,117.218,-80.4242],[562.857,599.984,26.85,109.4,-79.6523],[543.788,699.903,25.8833,100.899,-78.6815],[522.915,798.851,24.8333,91.5611,-77.412],[498.875,899.526,23.6333,80.7922,-75.5858],[470.606,999.994,22.2333,68.1702,-72.7009],[434.984,1099.45,20.4833,52.5188,-67.103],[374.752,1199.99,17.55,28.6755,-44.0312],[332.752,1220.46,15.5167,20.6914,-0.0793631]]], + [83,1226.05,[[736.958,-2000.91,42.2667,224.028,-86.3829],[730.574,-1900.89,41.8167,221.315,-86.3105],[724.142,-1802.1,41.3667,218.561,-86.2358],[717.421,-1700.98,40.9,215.661,-86.1557],[710.649,-1601.23,40.4333,212.717,-86.0727],[703.825,-1502.87,39.9667,209.73,-85.9867],[696.704,-1402.48,39.4833,206.589,-85.8943],[689.281,-1300.25,38.9833,203.29,-85.795],[682.051,-1203.01,38.5,200.052,-85.6951],[674.263,-1100.83,37.9833,196.54,-85.5838],[666.414,-1000.48,37.4667,192.973,-85.4675],[658.507,-901.994,36.95,189.353,-85.3459],[650.284,-802.321,36.4167,185.561,-85.2143],[641.738,-701.681,35.8667,181.591,-85.0718],[632.864,-600.306,35.3,177.439,-84.917],[623.923,-501.317,34.7333,173.224,-84.7536],[614.649,-401.946,34.15,168.821,-84.5754],[605.038,-302.453,33.55,164.225,-84.3805],[594.815,-200.47,32.9167,159.301,-84.161],[584.513,-101.652,32.2833,154.303,-83.9254],[573.586,-1.10588,31.6167,148.965,-83.6583],[562.3,98.2016,30.9333,143.413,-83.3615],[550.374,198.21,30.2167,137.506,-83.0216],[537.797,298.258,29.4667,131.235,-82.63],[524.278,399.697,28.6667,124.449,-82.1648],[510.086,499.479,27.8333,117.28,-81.6185],[494.929,598.594,26.95,109.578,-80.9557],[478.213,699.091,25.9833,101.039,-80.1073],[459.916,798.672,24.9333,91.6509,-78.9971],[439.136,898.761,23.75,80.958,-77.4233],[414.654,999.206,22.3667,68.3666,-74.9374],[383.731,1099.48,20.6333,52.6212,-70.1034],[333.654,1199.97,17.85,28.8543,-51.2479],[292.329,1226.05,15.5667,18.1311,-0.495918]]], + [84,1230.92,[[633.386,-2000.85,42.3167,224.068,-86.8945],[627.903,-1900.76,41.8667,221.353,-86.8323],[622.379,-1801.9,41.4167,218.597,-86.7681],[616.607,-1700.7,40.95,215.695,-86.6993],[610.79,-1600.88,40.4833,212.75,-86.6282],[604.929,-1502.44,40.0167,209.759,-86.5543],[598.813,-1401.97,39.5333,206.616,-86.475],[592.651,-1303.04,39.05,203.424,-86.3926],[586.227,-1202.34,38.55,200.073,-86.3039],[579.538,-1100.07,38.0333,196.557,-86.2084],[573.016,-1002.84,37.5333,193.103,-86.1117],[566.006,-901.056,37,189.363,-86.004],[558.942,-801.291,36.4667,185.566,-85.8911],[551.602,-700.554,35.9167,181.591,-85.7686],[544.206,-602.029,35.3667,177.556,-85.6397],[536.528,-502.868,34.8,173.337,-85.4996],[528.336,-400.512,34.2,168.802,-85.3423],[520.081,-300.911,33.6,164.199,-85.1748],[511.532,-201.459,32.9833,159.397,-84.9913],[502.686,-102.442,32.35,154.392,-84.7893],[493.303,-1.68321,31.6833,149.045,-84.5601],[483.612,97.844,31,143.483,-84.3055],[473.37,198.085,30.2833,137.563,-84.0139],[462.57,298.378,29.5333,131.278,-83.6779],[451.204,398.019,28.75,124.617,-83.2874],[439.019,498.2,27.9167,117.429,-82.8196],[425.758,599.553,27.0167,109.556,-82.2404],[411.652,698.71,26.0667,101.131,-81.5249],[395.943,798.808,25.0167,91.6988,-80.5731],[378.101,899.483,23.8333,80.9415,-79.2223],[357.333,999.509,22.4667,68.3995,-77.1144],[331.298,1099.25,20.7667,52.7541,-73.058],[290.119,1199.68,18.1,29.1028,-57.8199],[251.027,1230.92,15.5833,15.5607,-0.0206206]]], + [85,1235.04,[[529.135,-2002.52,42.3667,224.148,-87.409],[524.558,-1902.35,41.9167,221.432,-87.3571],[519.947,-1803.4,41.4667,218.675,-87.3037],[515.129,-1702.12,41,215.772,-87.2463],[510.273,-1602.21,40.5333,212.825,-87.1869],[505.206,-1500.19,40.05,209.726,-87.1231],[500.276,-1403.12,39.5833,206.688,-87.0592],[494.954,-1300.71,39.0833,203.385,-86.9879],[489.77,-1203.3,38.6,200.142,-86.9164],[484.187,-1100.93,38.0833,196.624,-86.8367],[478.56,-1000.39,37.5667,193.051,-86.7534],[472.891,-901.71,37.05,189.424,-86.6662],[466.994,-801.836,36.5167,185.624,-86.5721],[460.867,-700.987,35.9667,181.646,-86.4699],[454.693,-602.349,35.4167,177.607,-86.3623],[448.094,-500.186,34.8333,173.259,-86.2419],[441.445,-400.588,34.25,168.845,-86.1142],[434.554,-300.86,33.65,164.235,-85.9745],[427.418,-201.275,33.0333,159.427,-85.8213],[420.034,-102.121,32.4,154.415,-85.6527],[412.201,-1.2172,31.7333,149.06,-85.4615],[404.111,98.4601,31.05,143.488,-85.249],[395.562,198.86,30.3333,137.558,-85.0056],[386.546,299.321,29.5833,131.259,-84.725],[377.058,399.137,28.8,124.583,-84.399],[366.887,499.507,27.9667,117.376,-84.0081],[356.022,599.248,27.0833,109.627,-83.5337],[344.249,698.764,26.1333,101.174,-82.9372],[331.137,799.263,25.0833,91.7041,-82.1431],[316.456,899.059,23.9167,81.0451,-81.0331],[299.124,999.827,22.55,68.4174,-79.2768],[277.609,1099.65,20.8667,52.7576,-75.9267],[244.324,1199.82,18.2833,29.1801,-63.6942],[209.763,1235.04,15.6167,12.9821,-0.288514]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 412.201; +_maxRange = 2368.09; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg3.sqf new file mode 100644 index 0000000000..fd0659fcf1 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg3.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg3 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,906.408,[[4446.25,-2002.5,38.8667,228.896,-67.2783],[4403.34,-1901.15,38.3833,226.43,-66.8131],[4360.08,-1801.25,37.9,223.938,-66.3336],[4316.46,-1702.84,37.4167,221.422,-65.8392],[4270.97,-1602.6,36.9167,218.793,-65.3114],[4223.55,-1500.74,36.4,216.05,-64.7477],[4175.74,-1400.64,35.8833,213.283,-64.1645],[4127.52,-1302.33,35.3667,210.492,-63.5609],[4077.33,-1202.75,34.8333,207.588,-62.9154],[4025.13,-1102.11,34.2833,204.571,-62.2245],[3970.88,-1000.64,33.7167,201.44,-61.4847],[3916.16,-901.45,33.15,198.29,-60.7147],[3859.34,-801.761,32.5667,195.031,-59.889],[3800.38,-701.819,31.9667,191.663,-59.0026],[3739.24,-601.885,31.35,188.191,-58.0501],[3675.9,-502.231,30.7167,184.618,-57.0254],[3608.6,-400.642,30.05,180.856,-55.8927],[3538.99,-300.091,29.3667,177.005,-54.6706],[3467.01,-200.896,28.6667,173.075,-53.3502],[3390.9,-101.176,27.9333,168.986,-51.8875],[3310.55,-1.58291,27.1667,164.754,-50.2655],[3224.11,99.1866,26.35,160.312,-48.4262],[3133.24,198.154,25.5,155.783,-46.3808],[3032.39,299.768,24.5667,150.953,-43.9702],[2924.98,398.713,23.5833,146.067,-41.2314],[2803.42,499.377,22.4833,140.908,-37.9108],[2665.43,599.454,21.25,135.6,-33.8491],[2500.94,699.532,19.8,130.16,-28.6049],[2285.7,799.871,17.9333,124.74,-21.1349],[1867.81,899.818,14.4,120.738,-5.34565],[1728.84,906.408,13.25,121.488,-0.013901]]], + [46,936.796,[[4407.19,-2002.17,39.2167,229.176,-67.7499],[4365.08,-1900.34,38.7333,226.699,-67.2943],[4324.08,-1803.4,38.2667,224.282,-66.8412],[4279.8,-1701.06,37.7667,221.666,-66.3406],[4235.14,-1600.32,37.2667,219.024,-65.8236],[4190.11,-1501.2,36.7667,216.355,-65.2896],[4143.19,-1400.51,36.25,213.572,-64.7189],[4095.88,-1301.6,35.7333,210.764,-64.1282],[4046.62,-1201.39,35.2,207.842,-63.4963],[3995.4,-1100.11,34.65,204.803,-62.82],[3943.73,-1000.93,34.1,201.742,-62.1172],[3890.04,-900.994,33.5333,198.568,-61.364],[3834.3,-800.524,32.95,195.28,-60.556],[3778.07,-702.535,32.3667,191.977,-59.7131],[3718.1,-601.682,31.75,188.47,-58.7817],[3655.96,-501.074,31.1167,184.859,-57.7793],[3591.61,-400.996,30.4667,181.148,-56.6994],[3525.01,-301.742,29.8,177.343,-55.5343],[3454.44,-201.278,29.1,173.358,-54.2442],[3379.8,-100.212,28.3667,169.205,-52.8142],[3302.75,-1.34296,27.6167,164.993,-51.2629],[3219.75,99.034,26.8167,160.554,-49.5019],[3130.67,199.848,25.9667,155.923,-47.5019],[3035.38,299.938,25.0667,151.141,-45.229],[2931.93,399.701,24.1,146.183,-42.5968],[2818.29,498.839,23.05,141.059,-39.4986],[2688.7,598.868,21.8667,135.692,-35.691],[2535.18,699.827,20.4833,130.099,-30.7986],[2343.65,799.891,18.7833,124.481,-24.138],[2048.6,899.756,16.2167,119.329,-12.906],[1724.77,936.795,13.4667,119.231,-0.00656623]]], + [47,967.114,[[4365.53,-2002.88,39.5667,229.483,-68.2269],[4324.22,-1900.57,39.0833,226.996,-67.7812],[4284,-1803.16,38.6167,224.569,-67.3379],[4240.56,-1700.3,38.1167,221.941,-66.848],[4198.22,-1602.39,37.6333,219.374,-66.3593],[4154.06,-1502.7,37.1333,216.693,-65.8372],[4108.04,-1401.4,36.6167,213.895,-65.2792],[4061.64,-1301.88,36.1,211.071,-64.7016],[4013.34,-1201.04,35.5667,208.13,-64.0836],[3964.63,-1102.15,35.0333,205.164,-63.4425],[3913.97,-1002.24,34.4833,202.082,-62.7558],[3861.32,-901.536,33.9167,198.884,-62.0197],[3806.66,-800.271,33.3333,195.57,-61.2299],[3751.52,-701.478,32.75,192.237,-60.4057],[3694.32,-602.479,32.15,188.793,-59.5199],[3633.4,-500.901,31.5167,185.145,-58.5404],[3571.94,-402.368,30.8833,181.489,-57.5125],[3506.67,-301.986,30.2167,177.638,-56.3746],[3437.49,-200.324,29.5167,173.6,-55.1139],[3366.01,-100.269,28.8,169.481,-53.7485],[3292.18,-2.16736,28.0667,165.293,-52.2673],[3210.86,99.8408,27.2667,160.772,-50.5474],[3127.02,198.499,26.45,156.226,-48.6713],[3035.43,298.888,25.5667,151.413,-46.4947],[2935.88,399.409,24.6167,146.393,-43.9701],[2826.4,499.851,23.5833,141.165,-40.9917],[2704.92,599.185,22.45,135.782,-37.4281],[2563.83,698.95,21.15,130.172,-32.9379],[2389.53,799.647,19.5667,124.361,-26.8766],[2146.78,899.683,17.4,118.714,-17.5972],[1719.21,967.113,13.6833,116.949,-0.0175233]]], + [48,997.332,[[4319.86,-2001.13,39.9,229.734,-68.6943],[4280.76,-1901.89,39.4333,227.323,-68.2734],[4239.92,-1800.53,38.95,224.799,-67.8243],[4198.75,-1700.62,38.4667,222.247,-67.3612],[4157.24,-1602.2,37.9833,219.668,-66.8833],[4113.94,-1501.96,37.4833,216.973,-66.3728],[4068.83,-1400.11,36.9667,214.16,-65.8271],[4023.33,-1300.02,36.45,211.319,-65.2622],[3977.46,-1201.73,35.9333,208.453,-64.677],[3929.72,-1102.19,35.4,205.469,-64.0505],[3880.06,-1001.59,34.85,202.366,-63.3793],[3828.46,-900.178,34.2833,199.144,-62.6598],[3776.42,-801.053,33.7167,195.9,-61.91],[3722.39,-701.441,33.1333,192.539,-61.105],[3666.33,-601.592,32.5333,189.065,-60.2395],[3608.21,-501.765,31.9167,185.478,-59.3081],[3547.99,-402.235,31.2833,181.783,-58.3043],[3484.03,-300.793,30.6167,177.888,-57.1928],[3417.88,-200.408,29.9333,173.895,-55.9909],[3349.49,-101.404,29.2333,169.815,-54.6893],[3277.18,-1.90142,28.5,165.561,-53.2438],[3199.2,99.5471,27.7167,161.056,-51.6002],[3117.1,199.911,26.9,156.418,-49.7686],[3030.81,298.428,26.05,151.678,-47.7242],[2935.08,399.512,25.1167,146.609,-45.3043],[2831.4,499.454,24.1167,141.378,-42.4924],[2716.07,599.242,23.0167,135.927,-39.1179],[2583.42,699.523,21.7667,130.22,-34.9029],[2425.68,799.1,20.3,124.354,-29.4208],[2214.4,899.974,18.3667,118.364,-21.3285],[1712.16,997.33,13.9,114.643,-0.0479839]]], + [49,1027.41,[[4271.62,-2000.52,40.2333,230.013,-69.1674],[4233.3,-1900.84,39.7667,227.593,-68.7559],[4194.66,-1802.49,39.3,225.146,-68.3322],[4154.32,-1702.07,38.8167,222.583,-67.8798],[4113.65,-1603.12,38.3333,219.993,-67.413],[4071.24,-1502.34,37.8333,217.285,-66.9143],[4028.47,-1403.19,37.3333,214.55,-66.3987],[3983.91,-1302.47,36.8167,211.695,-65.8473],[3937.52,-1200.38,36.2833,208.72,-65.2573],[3890.74,-1100.22,35.75,205.717,-64.645],[3843.57,-1002.03,35.2167,202.688,-64.0092],[3794.51,-902.863,34.6667,199.539,-63.3276],[3742.04,-800.032,34.0833,196.175,-62.5742],[3690.63,-702.491,33.5167,192.884,-61.8106],[3635.73,-601.774,32.9167,189.38,-60.966],[3578.81,-501.047,32.3,185.76,-60.0566],[3519.83,-400.583,31.6667,182.027,-59.0764],[3458.76,-300.667,31.0167,178.187,-58.0183],[3395.57,-201.597,30.35,174.245,-56.8745],[3328.62,-101.343,29.65,170.11,-55.605],[3257.82,-0.518435,28.9167,165.793,-54.1943],[3184.74,98.0826,28.1667,161.407,-52.6595],[3106.05,198.149,27.3667,156.776,-50.9115],[3021.61,298.605,26.5167,151.932,-48.9191],[2931.31,398.285,25.6167,146.916,-46.6449],[2831.6,499.212,24.6333,141.611,-43.9508],[2722.24,599.12,23.5667,136.119,-40.7612],[2597.77,699.42,22.3667,130.356,-36.8162],[2450.68,799.982,20.9667,124.338,-31.7102],[2265.87,899.5,19.2333,118.229,-24.6281],[1964.91,999.862,16.4667,112.473,-11.8051],[1701.74,1027.41,14.1,112.329,-0.0161431]]], + [50,1057.32,[[4220.8,-2001.09,40.5667,230.322,-69.646],[4183.26,-1900.96,40.1,227.893,-69.2441],[4145.43,-1802.16,39.6333,225.436,-68.8302],[4105.92,-1701.25,39.15,222.863,-68.3883],[4066.09,-1601.82,38.6667,220.261,-67.9323],[4024.55,-1500.54,38.1667,217.541,-67.445],[3982.66,-1400.87,37.6667,214.791,-66.9412],[3940.43,-1302.86,37.1667,212.014,-66.4201],[3895.01,-1200.15,36.6333,209.022,-65.844],[3850.64,-1102.49,36.1167,206.096,-65.2652],[3803.02,-1000.56,35.5667,202.953,-64.6253],[3754.99,-900.73,35.0167,199.784,-63.9596],[3705.08,-800.122,34.45,196.492,-63.2451],[3654.75,-701.824,33.8833,193.176,-62.4999],[3601,-600.298,33.2833,189.642,-61.6754],[3546.79,-501.439,32.6833,186.088,-60.8121],[3489.07,-400.023,32.05,182.319,-59.8559],[3430.83,-301.666,31.4167,178.538,-58.8505],[3369,-201.487,30.75,174.55,-57.7354],[3303.48,-100.056,30.05,170.363,-56.4971],[3235.78,-0.257357,29.3333,166.085,-55.1525],[3164.28,99.7326,28.5833,161.629,-53.6555],[3088.9,199.234,27.8,157.015,-51.986],[3007.93,299.472,26.9667,152.169,-50.0812],[2921.24,399.307,26.0833,147.129,-47.9049],[2827.06,499.195,25.1333,141.857,-45.3683],[2723.52,598.905,24.1,136.347,-42.3587],[2606.98,698.748,22.95,130.568,-38.6778],[2470.2,799.599,21.6167,124.461,-33.9427],[2303.78,899.126,20.0167,118.207,-27.5735],[2062.14,999.766,17.7333,111.92,-17.2553],[1689.87,1057.32,14.3,109.991,-0.00336971]]], + [51,1087.02,[[4167.36,-2002.9,40.9,230.66,-70.1298],[4130.63,-1902.3,40.4333,228.223,-69.7377],[4093.6,-1803.03,39.9667,225.758,-69.3338],[4054.94,-1701.63,39.4833,223.175,-68.9025],[4015.96,-1601.71,39,220.562,-68.4575],[3976.66,-1503.27,38.5167,217.921,-67.998],[3935.68,-1403.04,38.0167,215.159,-67.5067],[3892.98,-1301.18,37.5,212.275,-66.9813],[3849.92,-1201.1,36.9833,209.361,-66.4368],[3806.51,-1102.83,36.4667,206.419,-65.8722],[3759.9,-1000.23,35.9167,203.257,-65.248],[3714.34,-902.746,35.3833,200.164,-64.6185],[3665.51,-801.375,34.8167,196.85,-63.9222],[3616.28,-702.305,34.25,193.51,-63.1958],[3565.16,-602.761,33.6667,190.047,-62.4147],[3510.66,-500.26,33.05,186.363,-61.5499],[3455.68,-400.608,32.4333,182.66,-60.6422],[3398.72,-301.272,31.8,178.841,-59.6623],[3338.24,-200.051,31.1333,174.809,-58.575],[3277.22,-102.311,30.4667,170.773,-57.4262],[3211.03,-1.17792,29.75,166.437,-56.1175],[3142.68,98.0194,29.0167,162.015,-54.693],[3068.99,199.118,28.2333,157.322,-53.068],[2991.42,299.091,27.4167,152.481,-51.2507],[2908.3,399.032,26.55,147.426,-49.1724],[2817.89,499.468,25.6167,142.109,-46.7465],[2720,598.674,24.6167,136.604,-43.9118],[2609.49,699.019,23.5,130.76,-40.4331],[2482.65,799.301,22.2333,124.629,-36.0552],[2330.47,899.129,20.7333,118.251,-30.2431],[2124.37,999.727,18.7333,111.676,-21.4394],[1676.56,1087.02,14.5,107.628,-0.0110437]]], + [52,1116.49,[[4110.03,-2002.35,41.2167,230.942,-70.6053],[4074.1,-1901.32,40.75,228.496,-70.2227],[4037.88,-1801.62,40.2833,226.022,-69.8285],[4001.37,-1703.27,39.8167,223.518,-69.4223],[3963.24,-1602.84,39.3333,220.896,-68.9884],[3923.48,-1500.5,38.8333,218.151,-68.5247],[3884.73,-1403.12,38.35,215.469,-68.0614],[3842.97,-1300.7,37.8333,212.571,-67.549],[3800.86,-1200.06,37.3167,209.642,-67.0179],[3758.4,-1101.22,36.8,206.684,-66.4672],[3714.21,-1001.1,36.2667,203.6,-65.877],[3669.65,-902.956,35.7333,200.488,-65.2636],[3621.92,-800.874,35.1667,197.152,-64.5849],[3573.77,-701.085,34.6,193.788,-63.8767],[3523.79,-600.795,34.0167,190.299,-63.115],[3471.94,-500.25,33.4167,186.685,-62.2948],[3419.65,-402.395,32.8167,183.05,-61.4349],[3363.98,-302.062,32.1833,179.194,-60.4811],[3306.35,-202.295,31.5333,175.222,-59.4495],[3245.22,-100.968,30.85,171.037,-58.3032],[3182.03,-1.00379,30.15,166.749,-57.0581],[3115.24,99.4956,29.4167,162.265,-55.6707],[3044.76,199.871,28.65,157.599,-54.1218],[2970.53,299.421,27.85,152.772,-52.3889],[2890.9,399.297,27,147.71,-50.4055],[2805.75,498.327,26.1,142.456,-48.131],[2711.78,598.504,25.1167,136.88,-45.4217],[2607.13,699.018,24.0333,130.998,-42.1404],[2488.25,799.397,22.8167,124.817,-38.0515],[2348.1,899.329,21.4,118.349,-32.7127],[2167.45,999.54,19.6,111.612,-25.0051],[1853.31,1099.81,16.5333,105.255,-9.80438],[1661.78,1116.49,14.7,105.242,-0.0407247]]], + [53,1145.69,[[4050.12,-2003.11,41.5333,231.254,-71.0864],[4015,-1901.65,41.0667,228.801,-70.7133],[3979.59,-1801.51,40.6,226.317,-70.3291],[3943.9,-1702.7,40.1333,223.805,-69.9331],[3906.64,-1601.81,39.65,221.172,-69.51],[3869.07,-1502.39,39.1667,218.508,-69.0732],[3829.9,-1401.12,38.6667,215.721,-68.606],[3790.4,-1301.48,38.1667,212.904,-68.1227],[3749.24,-1200.27,37.65,209.961,-67.6053],[3707.75,-1100.84,37.1333,206.987,-67.0687],[3664.56,-1000.11,36.6,203.886,-66.4936],[3621.02,-901.356,36.0667,200.755,-65.8957],[3575.74,-801.603,35.5167,197.496,-65.254],[3528.7,-701.081,34.95,194.11,-64.5644],[3479.87,-600.027,34.3667,190.595,-63.8226],[3430.62,-501.468,33.7833,187.054,-63.0463],[3378.12,-400.032,33.1667,183.287,-62.1856],[3325.16,-301.469,32.55,179.498,-61.2809],[3268.85,-200.733,31.9,175.486,-60.2764],[3210.6,-100.83,31.2333,171.358,-59.1877],[3150.36,-2.06993,30.55,167.121,-58.0056],[3085.13,99.7535,29.8167,162.577,-56.6564],[3017.81,199.367,29.0667,157.944,-55.1829],[2946.85,298.45,28.2833,153.137,-53.534],[2870.65,398.213,27.45,148.077,-51.6451],[2787.54,499.322,26.55,142.702,-49.4346],[2698.94,598.46,25.6,137.169,-46.8901],[2599.99,698.825,24.55,131.274,-43.8007],[2488.83,798.825,23.3833,125.082,-39.9937],[2358.65,899.165,22.0333,118.527,-35.0539],[2195.76,999.903,20.3667,111.622,-28.119],[1955.47,1099.68,17.95,104.717,-16.4894],[1643.84,1145.69,14.8833,102.845,-0.00318344]]], + [54,1174.59,[[3986.38,-2001.56,41.8333,231.509,-71.56],[3953.3,-1903.32,41.3833,229.136,-71.2095],[3918.73,-1802.72,40.9167,226.645,-70.8353],[3883.87,-1703.46,40.45,224.124,-70.4497],[3847.48,-1602.09,39.9667,221.481,-70.0376],[3810.79,-1502.18,39.4833,218.807,-69.6121],[3772.52,-1400.41,38.9833,216.008,-69.1571],[3733.94,-1300.27,38.4833,213.178,-68.6863],[3695.05,-1201.77,37.9833,210.316,-68.1987],[3654.53,-1101.75,37.4667,207.328,-67.6765],[3612.36,-1000.4,36.9333,204.211,-67.1168],[3569.84,-901.012,36.4,201.062,-66.5348],[3525.63,-800.605,35.85,197.783,-65.9099],[3481.05,-702.344,35.3,194.475,-65.2586],[3433.37,-600.511,34.7167,190.936,-64.537],[3385.29,-501.165,34.1333,187.369,-63.7817],[3335.42,-401.614,33.5333,183.674,-62.9674],[3283.73,-302.123,32.9167,179.852,-62.0879],[3228.77,-200.4,32.2667,175.802,-61.1111],[3173.33,-101.953,31.6167,171.736,-60.0791],[3114.54,-2.04277,30.9333,167.451,-58.9303],[3052.34,98.734,30.2167,162.953,-57.6491],[2986.64,199.739,29.4667,158.255,-56.2174],[2918.88,298.204,28.7,153.474,-54.6493],[2844.53,399.663,27.8667,148.322,-52.8137],[2766.47,498.933,27,143.037,-50.7455],[2681.58,598.608,26.0667,137.463,-48.3187],[2588.17,698.519,25.05,131.579,-45.4153],[2482.91,799.082,23.9167,125.324,-41.8262],[2362.36,898.97,22.6333,118.752,-37.2696],[2214.88,999.483,21.0833,111.767,-31.014],[2011.98,1099.89,18.9833,104.528,-21.2083],[1626.17,1174.59,15.0833,100.412,-0.0802613]]], + [55,1203.15,[[3920.11,-2001.4,42.1333,231.795,-72.0393],[3887.82,-1902.76,41.6833,229.415,-71.6981],[3854.07,-1801.75,41.2167,226.915,-71.3337],[3820.05,-1702.07,40.75,224.385,-70.9582],[3784.52,-1600.25,40.2667,221.732,-70.5569],[3749.95,-1503.34,39.8,219.141,-70.157],[3712.61,-1401.06,39.3,216.331,-69.7143],[3674.96,-1300.39,38.8,213.489,-69.2562],[3637,-1201.36,38.3,210.614,-68.7818],[3597.46,-1100.78,37.7833,207.611,-68.2736],[3557.6,-1002.02,37.2667,204.576,-67.7461],[3516.11,-901.989,36.7333,201.41,-67.1803],[3472.98,-800.911,36.1833,198.113,-66.5727],[3429.48,-701.974,35.6333,194.784,-65.9393],[3384.3,-602.311,35.0667,191.324,-65.2579],[3337.4,-502.161,34.4833,187.732,-64.5241],[3288.75,-401.776,33.8833,184.008,-63.7326],[3238.32,-301.417,33.2667,180.154,-62.8777],[3186.08,-201.361,32.6333,176.172,-61.9528],[3132.01,-101.896,31.9833,172.066,-60.9504],[3074.68,-0.90522,31.3,167.734,-59.8339],[3015.42,98.6935,30.6,163.289,-58.618],[2952.79,198.787,29.8667,158.633,-57.2591],[2886.72,298.714,29.1,153.781,-55.737],[2815.69,399.773,28.2833,148.645,-53.9905],[2741.06,498.97,27.4333,143.359,-52.0221],[2659.8,598.999,26.5167,137.757,-49.7093],[2570.27,699.771,25.5167,131.806,-46.9373],[2472.26,798.956,24.4333,125.614,-43.609],[2359.44,899.036,23.2,118.994,-39.3641],[2223.64,999.967,21.7333,111.909,-33.6246],[2048.36,1099.51,19.8667,104.553,-25.1767],[1681.91,1199.96,16.05,97.7128,-4.58602],[1605.39,1203.15,15.2667,97.9673,-0.0897676]]], + [56,1231.35,[[3851.26,-2002.67,42.4333,232.112,-72.5243],[3819.78,-1903.62,41.9833,229.725,-72.1925],[3786.86,-1802.18,41.5167,227.218,-71.8381],[3753.68,-1702.07,41.05,224.68,-71.4728],[3720.24,-1603.3,40.5833,222.11,-71.0962],[3685.32,-1502.45,40.1,219.416,-70.6935],[3650.12,-1403.09,39.6167,216.69,-70.2775],[3613.42,-1301.88,39.1167,213.837,-69.8322],[3576.41,-1202.31,38.6167,210.95,-69.3712],[3537.86,-1101.18,38.1,207.933,-68.8772],[3498.99,-1001.84,37.5833,204.883,-68.3645],[3458.54,-901.213,37.05,201.701,-67.8144],[3417.76,-802.566,36.5167,198.486,-67.242],[3375.36,-702.937,35.9667,195.138,-66.6268],[3331.31,-602.555,35.4,191.655,-65.9649],[3285.59,-501.656,34.8167,188.038,-65.2519],[3238.17,-400.491,34.2167,184.287,-64.4827],[3190.34,-302.021,33.6167,180.507,-63.6748],[3139.43,-201.046,32.9833,176.491,-62.7767],[3086.73,-100.629,32.3333,172.346,-61.803],[3032.21,-1.06997,31.6667,168.076,-60.7453],[2974.46,99.6691,30.9667,163.58,-59.565],[2914.82,198.716,30.25,158.973,-58.2761],[2851.85,297.872,29.5,154.159,-56.832],[2784.08,398.491,28.7,149.047,-55.1741],[2711.39,499.491,27.85,143.663,-53.2662],[2633.69,599.694,26.95,138.043,-51.0639],[2549.41,699.484,25.9833,132.141,-48.4669],[2456.95,798.539,24.9333,125.943,-45.3432],[2350.13,899.653,23.7333,119.227,-41.3428],[2225.55,999.954,22.35,112.134,-36.0997],[2068.92,1099.8,20.6333,104.636,-28.5773],[1821.36,1199.75,17.9667,96.9597,-14.7347],[1581.62,1231.35,15.4333,95.5105,-0.026588]]], + [57,1259.15,[[3778.72,-2001.71,42.7167,232.373,-73.0029],[3748.04,-1902.28,42.2667,229.979,-72.6802],[3715.96,-1800.46,41.8,227.464,-72.3356],[3684.78,-1703.52,41.35,225.008,-71.9933],[3651.03,-1600.79,40.8667,222.338,-71.6141],[3618.18,-1502.99,40.4,219.728,-71.2362],[3583.89,-1403.15,39.9167,216.991,-70.8319],[3548.12,-1301.45,39.4167,214.127,-70.3993],[3512.07,-1201.39,38.9167,211.228,-69.9513],[3475.72,-1102.98,38.4167,208.295,-69.4871],[3437.86,-1003.06,37.9,205.231,-68.9893],[3398.46,-901.822,37.3667,202.033,-68.4553],[3358.73,-802.559,36.8333,198.801,-67.8994],[3317.43,-702.288,36.2833,195.434,-67.302],[3274.52,-601.237,35.7167,191.93,-66.6591],[3231.26,-502.512,35.15,188.393,-65.9867],[3185.07,-400.551,34.55,184.615,-65.2404],[3138.49,-301.277,33.95,180.807,-64.4561],[3090.21,-202.085,33.3333,176.864,-63.6078],[3038.9,-100.695,32.6833,172.682,-62.6635],[2985.81,-0.128217,32.0167,168.37,-61.6373],[2930.92,99.3016,31.3333,163.934,-60.5197],[2872.85,199.551,30.6167,159.272,-59.2699],[2811.54,299.978,29.8667,154.393,-57.8687],[2746.93,399.897,29.0833,149.313,-56.2936],[2678.96,498.578,28.2667,144.05,-54.5174],[2604.76,598.912,27.3833,138.423,-52.4256],[2524.18,699.278,26.4333,132.482,-49.9558],[2435.66,799.44,25.4,126.203,-46.9794],[2336.11,899.701,24.25,119.522,-43.2684],[2220.86,999.765,22.9333,112.409,-38.4426],[2079.06,1099.85,21.3333,104.811,-31.6643],[1876.6,1199.93,19.0833,96.8114,-20.3816],[1558.08,1259.15,15.6167,93.0186,-0.0865665]]], + [58,1286.52,[[3703.66,-2002.25,43,232.665,-73.4872],[3673.79,-1902.44,42.55,230.265,-73.1738],[3642.56,-1800.21,42.0833,227.743,-72.8392],[3612.21,-1702.89,41.6333,225.279,-72.5067],[3580.49,-1603.26,41.1667,222.693,-72.1513],[3547.37,-1501.52,40.6833,219.981,-71.7713],[3513.98,-1401.24,40.2,217.234,-71.3787],[3480.32,-1302.47,39.7167,214.454,-70.9727],[3445.23,-1201.89,39.2167,211.544,-70.5379],[3409.85,-1102.97,38.7167,208.599,-70.0874],[3373,-1002.51,38.2,205.521,-69.6043],[3334.65,-900.709,37.6667,202.307,-69.0859],[3295.98,-800.877,37.1333,199.058,-68.5462],[3255.77,-700.015,36.5833,195.671,-67.9661],[3215.24,-601.305,36.0333,192.25,-67.3606],[3173.14,-501.888,35.4667,188.691,-66.7084],[3129.44,-402.005,34.8833,184.994,-66.0048],[3084.12,-301.909,34.2833,181.158,-65.2448],[3037.15,-201.864,33.6667,177.185,-64.4225],[2988.5,-102.148,33.0333,173.075,-63.5309],[2936.85,-0.552499,32.3667,168.723,-62.537],[2883.46,99.9424,31.6833,164.242,-61.4542],[2828.29,199.01,30.9833,159.636,-60.2716],[2769.99,298.522,30.25,154.806,-58.9458],[2707.15,399.917,29.4667,149.653,-57.4215],[2642.4,498.164,28.6667,144.415,-55.7377],[2571.62,598.457,27.8,138.79,-53.7527],[2494.66,699.215,26.8667,132.823,-51.4061],[2411.4,798.697,25.8667,126.581,-48.6223],[2317.48,899.269,24.75,119.869,-45.142],[2209.79,999.705,23.4833,112.704,-40.6581],[2080.74,1099.58,21.9833,105.064,-34.5231],[1907.75,1199.35,20,96.9154,-24.9329],[1531.61,1286.51,15.7833,90.5138,-0.0732753]]], + [59,1313.42,[[3625.01,-2000.62,43.2667,232.901,-73.966],[3595.95,-1900.46,42.8167,230.494,-73.6617],[3566.66,-1801.51,42.3667,228.055,-73.3486],[3536.04,-1700.18,41.9,225.493,-73.014],[3505.18,-1600.19,41.4333,222.898,-72.669],[3474.08,-1501.55,40.9667,220.27,-72.3129],[3441.61,-1400.83,40.4833,217.514,-71.932],[3408.88,-1301.61,40,214.723,-71.5382],[3374.75,-1200.56,39.5,211.801,-71.1164],[3340.34,-1101.16,39,208.844,-70.6792],[3304.5,-1000.2,38.4833,205.752,-70.2105],[3268.37,-901.058,37.9667,202.624,-69.7234],[3230.77,-800.642,37.4333,199.359,-69.2003],[3192.86,-702.215,36.9,196.058,-68.6553],[3153.46,-602.825,36.35,192.618,-68.069],[3112.53,-502.701,35.7833,189.038,-67.4373],[3070.05,-402.083,35.2,185.317,-66.7558],[3025.99,-301.222,34.6,181.455,-66.0194],[2980.32,-200.383,33.9833,177.451,-65.2224],[2934.28,-102.448,33.3667,173.417,-64.3815],[2885.34,-2.41201,32.7167,169.137,-63.4439],[2833.45,99.17,32.0333,164.612,-62.3965],[2779.83,199.363,31.3333,159.957,-61.2521],[2724.46,297.826,30.6167,155.181,-59.9986],[2664.71,398.48,29.85,150.07,-58.5567],[2601.81,498.277,29.05,144.752,-56.9292],[2534.37,598.366,28.2,139.139,-55.0471],[2460.96,699.336,27.2833,133.158,-52.8199],[2381.45,799.487,26.3,126.869,-50.1742],[2292.98,899.889,25.2167,120.155,-46.9113],[2193.96,998.758,24.0167,113.085,-42.813],[2074.35,1099.57,22.5833,105.336,-37.1618],[1920.77,1199.87,20.7667,97.0332,-28.6892],[1648.19,1299.76,17.6,88.5219,-10.5617],[1503.82,1313.42,15.95,87.9855,-0.0872606]]], + [60,1339.84,[[3543.87,-2000.54,43.5333,233.17,-74.4507],[3515.64,-1900.03,43.0833,230.756,-74.1558],[3487.18,-1800.71,42.6333,228.311,-73.8522],[3458.5,-1702.62,42.1833,225.833,-73.5396],[3428.52,-1602.19,41.7167,223.231,-73.2054],[3398.31,-1503.11,41.25,220.595,-72.8606],[3366.76,-1401.94,40.7667,217.831,-72.4917],[3334.97,-1302.25,40.2833,215.031,-72.1102],[3301.81,-1200.72,39.7833,212.098,-71.7016],[3268.39,-1100.83,39.2833,209.129,-71.2781],[3234.7,-1002.61,38.7833,206.124,-70.8388],[3199.6,-902.892,38.2667,202.983,-70.3675],[3163.09,-801.878,37.7333,199.703,-69.8612],[3126.27,-702.846,37.2,196.386,-69.3337],[3088,-602.827,36.65,192.928,-68.766],[3048.25,-502.047,36.0833,189.328,-68.1544],[3006.99,-400.747,35.5,185.583,-67.4944],[2965.38,-301.963,34.9167,181.803,-66.8015],[2921.04,-200.311,34.3,177.771,-66.0304],[2876.32,-101.556,33.6833,173.706,-65.2166],[2828.8,-0.645007,33.0333,169.389,-64.3089],[2779.64,99.409,32.3667,164.934,-63.3201],[2728.82,198.291,31.6833,160.344,-62.2403],[2675.08,297.941,30.9667,155.514,-61.0289],[2617.08,399.878,30.2,150.339,-59.6347],[2557.29,498.975,29.4167,145.058,-58.0938],[2493.11,598.702,28.5833,139.465,-56.311],[2423.17,699.713,27.6833,133.481,-54.1992],[2348.64,798.678,26.7333,127.266,-51.7333],[2265.48,898.773,25.6833,120.572,-48.6863],[2170.79,999.707,24.5,113.343,-44.7901],[2061.59,1099.25,23.15,105.663,-39.6598],[1923.77,1199.69,21.4667,97.2778,-32.1043],[1714.53,1299.93,18.95,88.3299,-18.291],[1473.27,1339.84,16.1,85.4426,-0.0212848]]], + [61,1365.73,[[3460.27,-2002.11,43.8,233.471,-74.9413],[3432.87,-1901.22,43.35,231.052,-74.6558],[3405.25,-1801.53,42.9,228.601,-74.3619],[3377.42,-1703.06,42.45,226.117,-74.0593],[3348.32,-1602.24,41.9833,223.508,-73.7358],[3319,-1502.76,41.5167,220.864,-73.4019],[3288.39,-1401.16,41.0333,218.09,-73.0448],[3257.53,-1301.06,40.55,215.28,-72.6754],[3226.43,-1202.46,40.0667,212.435,-72.2932],[3193.99,-1102.07,39.5667,209.455,-71.8836],[3160.21,-1000.08,39.05,206.338,-71.4442],[3127.25,-903.089,38.55,203.285,-71.0027],[3091.82,-801.523,38.0167,199.99,-70.5129],[3056.1,-701.934,37.4833,196.657,-70.0025],[3018.97,-601.333,36.9333,193.181,-69.4531],[2981.53,-502.898,36.3833,189.667,-68.8789],[2941.5,-400.898,35.8,185.9,-68.2409],[2901.14,-301.408,35.2167,182.096,-67.5709],[2859.29,-201.731,34.6167,178.147,-66.8458],[2815.92,-102.135,34,174.052,-66.0598],[2769.82,-0.329273,33.35,169.701,-65.1827],[2723.33,98.1707,32.7,165.319,-64.2515],[2674.06,198.104,32.0167,160.685,-63.209],[2621.93,298.868,31.3,155.803,-62.0389],[2566.91,399.819,30.55,150.681,-60.7217],[2510.17,498.184,29.7833,145.443,-59.2668],[2447.96,599.481,28.95,139.765,-57.5466],[2382.67,698.526,28.0833,133.901,-55.5858],[2310.44,799.596,27.1333,127.554,-53.2087],[2232.4,898.941,26.1167,120.907,-50.3642],[2144.55,998.772,24.9833,113.751,-46.7727],[2042.72,1098.89,23.6833,106.013,-42.0225],[1917.26,1199.74,22.1,97.5492,-35.19],[1743.2,1299.52,19.9333,88.4555,-23.7817],[1442.87,1365.73,16.2667,82.8673,-0.0946513]]], + [62,1391.07,[[3373.19,-2001.56,44.05,233.717,-75.4272],[3346.63,-1900.34,43.6,231.292,-75.151],[3319.85,-1800.31,43.15,228.834,-74.8667],[3292.87,-1701.49,42.7,226.344,-74.574],[3264.66,-1600.31,42.2333,223.726,-74.2609],[3236.23,-1500.47,41.7667,221.074,-73.9379],[3207.58,-1401.99,41.3,218.387,-73.6044],[3177.67,-1301.45,40.8167,215.569,-73.2473],[3147.53,-1202.41,40.3333,212.714,-72.8778],[3116.09,-1101.56,39.8333,209.723,-72.4818],[3084.41,-1002.36,39.3333,206.695,-72.071],[3051.4,-901.628,38.8167,203.527,-71.6302],[3018.14,-802.717,38.3,200.322,-71.1716],[2983.52,-702.556,37.7667,196.973,-70.6786],[2947.53,-601.359,37.2167,193.48,-70.1479],[2911.26,-502.321,36.6667,189.948,-69.5931],[2873.58,-402.573,36.1,186.269,-68.9947],[2834.47,-302.358,35.5167,182.442,-68.348],[2793.92,-201.929,34.9167,178.467,-67.6481],[2751.9,-101.552,34.3,174.343,-66.8891],[2708.38,-1.50431,33.6667,170.072,-66.0644],[2663.35,97.9212,33.0167,165.654,-65.1661],[2615.61,198.837,32.3333,160.978,-64.16],[2566.3,298.323,31.6333,156.162,-63.0575],[2514.19,398.257,30.9,151.098,-61.8164],[2459.25,497.971,30.1333,145.794,-60.4147],[2400.2,598.752,29.3167,140.15,-58.7908],[2336.98,699.478,28.45,134.189,-56.9014],[2269.51,798.932,27.5333,127.945,-54.6924],[2195.21,898.997,26.5333,121.252,-52.0004],[2112.7,998.752,25.4333,114.099,-48.647],[2017.97,1098.79,24.1833,106.358,-44.2568],[1903.04,1199.82,22.6833,97.849,-38.0397],[1751.72,1299.64,20.7333,88.6457,-28.19],[1409.78,1391.07,16.4167,80.2772,-0.0877107]]], + [63,1415.83,[[3283.69,-2002.71,44.3,233.996,-75.9191],[3257.98,-1901.14,43.85,231.566,-75.6523],[3232.06,-1800.76,43.4,229.103,-75.3777],[3205.93,-1701.59,42.95,226.606,-75.0949],[3178.63,-1600.04,42.4833,223.981,-74.7925],[3152.09,-1503.38,42.0333,221.417,-74.4918],[3123.36,-1400.96,41.55,218.627,-74.1583],[3094.41,-1300.02,41.0667,215.799,-73.8134],[3065.22,-1200.58,40.5833,212.934,-73.4564],[3035.8,-1102.66,40.1,210.033,-73.0868],[3005.14,-1002.99,39.6,206.994,-72.6903],[2973.19,-901.755,39.0833,203.814,-72.2648],[2940.99,-802.34,38.5667,200.595,-71.8222],[2907.48,-701.652,38.0333,197.231,-71.3462],[2873.71,-602.959,37.5,193.828,-70.8497],[2837.53,-500.316,36.9333,190.17,-70.2981],[2802.14,-402.911,36.3833,186.58,-69.7375],[2764.29,-302.025,35.8,182.731,-69.1137],[2725.05,-200.9,35.2,178.731,-68.4384],[2685.48,-102.494,34.6,174.692,-67.7263],[2643.38,-1.61558,33.9667,170.39,-66.9314],[2599.8,98.6716,33.3167,165.937,-66.0653],[2554.74,198.063,32.65,161.336,-65.1194],[2507.03,298.589,31.95,156.474,-64.0573],[2456.62,399.625,31.2167,151.357,-62.8611],[2404.62,498.361,30.4667,146.107,-61.5397],[2348.68,598.481,29.6667,140.505,-60.0083],[2288.72,698.888,28.8167,134.568,-58.2259],[2224.66,798.396,27.9167,128.327,-56.1409],[2154.03,898.994,26.9333,121.602,-53.5967],[2075.47,999.85,25.85,114.368,-50.421],[1987.59,1099.17,24.65,106.673,-46.3701],[1882.74,1199.4,23.2333,98.2151,-40.7381],[1747.93,1299.71,21.4333,88.9061,-32.0304],[1513.22,1399.87,18.35,78.8281,-12.8635],[1375.46,1415.83,16.5667,77.6638,-0.113346]]], + [64,1439.98,[[3190.86,-2001.81,44.5333,234.22,-76.4071],[3166.92,-1903.68,44.1,231.875,-76.1594],[3141.87,-1802.94,43.65,229.407,-75.8946],[3116.61,-1703.4,43.2,226.905,-75.622],[3090.22,-1601.47,42.7333,224.274,-75.3305],[3063.61,-1500.86,42.2667,221.608,-75.0296],[3036.8,-1401.61,41.8,218.905,-74.719],[3008.8,-1300.26,41.3167,216.069,-74.3863],[2980.59,-1200.41,40.8333,213.195,-74.0421],[2952.15,-1102.07,40.35,210.284,-73.6856],[2922.5,-1001.96,39.85,207.234,-73.3033],[2891.62,-900.273,39.3333,204.042,-72.8928],[2860.49,-800.398,38.8167,200.809,-72.4658],[2829.11,-702.362,38.3,197.537,-72.0213],[2795.44,-600.052,37.75,194.011,-71.5276],[2762.53,-502.894,37.2167,190.552,-71.0273],[2727.29,-401.91,36.65,186.834,-70.471],[2690.71,-300.408,36.0667,182.964,-69.8696],[2653.83,-201.432,35.4833,179.052,-69.2371],[2615.6,-102.304,34.8833,174.987,-68.5513],[2574.91,-0.654629,34.25,170.655,-67.7855],[2533.88,97.8807,33.6167,166.283,-66.9731],[2490.34,198.188,32.95,161.645,-66.0628],[2444.24,299.685,32.25,156.74,-65.0402],[2396.65,399.477,31.5333,151.688,-63.9152],[2346.42,499.378,30.7833,146.381,-62.6439],[2293.5,598.695,30,140.826,-61.2013],[2236.73,698.631,29.1667,134.922,-59.5219],[2174.86,799.839,28.2667,128.577,-57.5175],[2108.97,898.979,27.3167,121.951,-55.1555],[2035.46,999.225,26.2667,114.766,-52.2031],[1953,1098.94,25.1,107.043,-48.4287],[1855.41,1199.9,23.7333,98.5141,-43.2217],[1735.05,1299.47,22.0667,89.2361,-35.506],[1550.74,1399.95,19.55,78.867,-20.6282],[1338.64,1439.98,16.7,75.0346,-0.050597]]], + [65,1463.49,[[3095.66,-2002.67,44.7667,234.479,-76.9012],[3071.66,-1900.46,44.3167,232.038,-76.6532],[3048.36,-1803.16,43.8833,229.655,-76.4075],[3023.98,-1703.29,43.4333,227.147,-76.1449],[2998.5,-1601,42.9667,224.51,-75.8641],[2972.82,-1500.05,42.5,221.836,-75.5742],[2946.93,-1400.44,42.0333,219.126,-75.2749],[2920.84,-1302.21,41.5667,216.38,-74.9657],[2893.61,-1201.92,41.0833,213.498,-74.6344],[2866.16,-1103.16,40.6,210.578,-74.2913],[2837.54,-1002.6,40.1,207.518,-73.9233],[2807.74,-900.439,39.5833,204.314,-73.5282],[2777.69,-800.088,39.0667,201.069,-73.1171],[2747.4,-701.573,38.55,197.783,-72.6892],[2715.89,-601.832,38.0167,194.35,-72.2285],[2683.14,-501.084,37.4667,190.766,-71.732],[2650.12,-402.51,36.9167,187.14,-71.2123],[2614.83,-300.374,36.3333,183.249,-70.6339],[2579.24,-200.757,35.75,179.315,-70.0253],[2542.34,-100.962,35.15,175.225,-69.3653],[2504.11,-1.25724,34.5333,170.979,-68.6482],[2464.53,98.0773,33.9,166.577,-67.8672],[2422.52,199.234,33.2333,161.902,-66.9918],[2379.1,299.24,32.55,157.073,-66.0323],[2334.26,397.764,31.85,152.093,-64.9774],[2285.81,498.856,31.1,146.731,-63.7574],[2234.77,599.43,30.3167,141.111,-62.3721],[2181.1,698.75,29.5,135.248,-60.7918],[2122.55,799.721,28.6167,128.923,-58.9043],[2060.13,899.005,27.6833,122.293,-56.6791],[1990.39,999.922,26.65,115.063,-53.8931],[1913.17,1099.56,25.5167,107.346,-50.3783],[1823.73,1199.39,24.2167,98.91,-45.6394],[1713.61,1299.78,22.6333,89.5374,-38.6359],[1558.64,1399.99,20.4333,79.0781,-26.2443],[1300.67,1463.49,16.8333,72.3818,-0.0194685]]], + [66,1486.33,[[2997.26,-2001.51,44.9833,234.682,-77.3924],[2974.98,-1902.79,44.55,232.327,-77.1627],[2951.66,-1801.42,44.1,229.848,-76.9173],[2928.16,-1701.26,43.65,227.333,-76.6645],[2904.48,-1602.3,43.2,224.784,-76.404],[2879.73,-1500.98,42.7333,222.104,-76.1254],[2854.78,-1401.01,42.2667,219.387,-75.8377],[2829.63,-1302.4,41.8,216.634,-75.5403],[2803.39,-1201.74,41.3167,213.743,-75.2218],[2776.94,-1102.58,40.8333,210.814,-74.8919],[2749.36,-1001.61,40.3333,207.744,-74.538],[2721.56,-902.304,39.8333,204.633,-74.1705],[2692.61,-801.463,39.3167,201.376,-73.7757],[2663.43,-702.452,38.8,198.078,-73.3646],[2633.07,-602.196,38.2667,194.631,-72.922],[2601.51,-500.91,37.7167,191.031,-72.445],[2569.69,-401.793,37.1667,187.388,-71.9455],[2536.66,-301.974,36.6,183.59,-71.4058],[2502.38,-201.697,36.0167,179.635,-70.8217],[2466.83,-101.217,35.4167,175.522,-70.1881],[2430,-0.800094,34.8,171.249,-69.4995],[2391.86,99.2729,34.1667,166.817,-68.7493],[2352.41,198.709,33.5167,162.226,-67.9299],[2310.58,299.618,32.8333,157.358,-67.0093],[2267.39,399.078,32.1333,152.334,-65.9966],[2221.76,498.963,31.4,147.039,-64.8518],[2173.65,598.602,30.6333,141.478,-63.5522],[2121.98,699.275,29.8167,135.541,-62.0377],[2066.66,799.855,28.95,129.247,-60.263],[2007.64,899.119,28.0333,122.624,-58.1698],[1942.67,998.933,27.0333,115.482,-55.5912],[1869.46,1099.78,25.9167,107.679,-52.2809],[1786.71,1199.19,24.6667,99.2814,-47.9275],[1686.38,1299.39,23.1667,89.9235,-41.6006],[1552.15,1399.35,21.1833,79.4373,-30.9835],[1261.55,1486.33,16.9667,69.7061,-0.0239013]]], + [67,1508.49,[[2896.56,-2002.18,45.2,234.92,-77.8896],[2875.13,-1903.17,44.7667,232.561,-77.6691],[2852.7,-1801.5,44.3167,230.077,-77.4334],[2830.09,-1701.02,43.8667,227.557,-77.1907],[2807.3,-1601.75,43.4167,225.002,-76.9406],[2783.48,-1500.11,42.95,222.315,-76.673],[2760.34,-1403.36,42.5,219.689,-76.4067],[2735.28,-1300.86,42.0167,216.829,-76.1111],[2710.9,-1203.31,41.55,214.031,-75.8159],[2684.58,-1100.33,41.05,210.991,-75.4883],[2658.93,-1002.35,40.5667,208.014,-75.1598],[2632.19,-902.619,40.0667,204.893,-74.8072],[2604.34,-801.332,39.55,201.625,-74.4284],[2576.27,-701.87,39.0333,198.314,-74.0338],[2547.06,-601.144,38.5,194.853,-73.6091],[2517.63,-502.422,37.9667,191.348,-73.1654],[2487.03,-402.744,37.4167,187.689,-72.6866],[2455.25,-302.343,36.85,183.873,-72.1692],[2422.28,-201.46,36.2667,179.898,-71.609],[2388.09,-100.35,35.6667,175.762,-71.0014],[2353.63,-1.97244,35.0667,171.581,-70.3591],[2316.96,98.8604,34.4333,167.12,-69.6404],[2279.01,199.084,33.7833,162.497,-68.8553],[2239.78,298.393,33.1167,157.712,-67.9949],[2198.25,398.812,32.4167,152.647,-67.0255],[2154.38,499.713,31.6833,147.302,-65.9289],[2109.13,598.287,30.9333,141.806,-64.7118],[2060.47,698.206,30.1333,135.923,-63.2929],[2008.33,798.368,29.2833,129.666,-61.6301],[1951.6,899.352,28.3667,122.938,-59.6301],[1890.21,999.44,27.3833,115.783,-57.2059],[1821.96,1099.68,26.3,108.034,-54.1387],[1744.59,1199.53,25.0833,99.6042,-50.0953],[1652.53,1299.63,23.65,90.2537,-44.3317],[1533.47,1399.55,21.8167,79.7423,-34.9961],[1309.22,1499.79,18.4167,67.808,-11.0092],[1221.29,1508.48,17.1,67.0081,-0.0686295]]], + [68,1529.91,[[2792.8,-2000.89,45.4,235.104,-78.3847],[2772.22,-1901.62,44.9667,232.74,-78.1732],[2751.47,-1803.43,44.5333,230.343,-77.9557],[2729.76,-1702.63,44.0833,227.819,-77.7232],[2707.88,-1603.04,43.6333,225.259,-77.4836],[2685.01,-1501.06,43.1667,222.566,-77.2272],[2661.96,-1400.41,42.7,219.836,-76.9625],[2638.73,-1301.12,42.2333,217.067,-76.6889],[2615.32,-1203.22,41.7667,214.261,-76.406],[2590.89,-1103.29,41.2833,211.315,-76.1027],[2565.41,-1001.51,40.7833,208.226,-75.7774],[2539.74,-901.395,40.2833,205.095,-75.4395],[2513.86,-802.957,39.7833,201.922,-75.0883],[2486.91,-703.03,39.2667,198.6,-74.7106],[2458.87,-601.817,38.7333,195.126,-74.304],[2430.61,-502.604,38.2,191.607,-73.8792],[2401.24,-402.415,37.65,187.932,-73.4208],[2370.73,-301.482,37.0833,184.099,-72.9253],[2339.07,-200.046,36.5,180.104,-72.3888],[2307.17,-101.149,35.9167,176.062,-71.8232],[2274.08,-2.11514,35.3167,171.857,-71.2088],[2238.88,99.4174,34.6833,167.37,-70.5211],[2203.4,197.82,34.05,162.836,-69.7894],[2165.75,297.968,33.3833,158.017,-68.9671],[2125.89,399.277,32.6833,152.911,-68.04],[2084.74,498.855,31.9667,147.643,-67.0159],[2041.33,598.506,31.2167,142.094,-65.8529],[1994.63,699.586,30.4167,136.146,-64.4964],[1945.58,799.065,29.5833,129.935,-62.938],[1892.15,899.74,28.6833,123.233,-61.0626],[1834.26,999.931,27.7167,116.077,-58.7879],[1770.82,1099.3,26.6667,108.404,-55.9537],[1698.66,1199.29,25.4833,99.974,-52.2102],[1613.49,1299.83,24.1,90.5887,-46.9188],[1506.67,1399.69,22.3833,80.0736,-38.6168],[1336.45,1499.96,19.6833,67.9151,-20.7461],[1178.82,1529.91,17.2167,64.2927,-0.0137973]]], + [69,1550.59,[[2686.84,-2001.49,45.6,235.324,-78.8859],[2667.11,-1901.95,45.1667,232.956,-78.6836],[2647.23,-1803.49,44.7333,230.555,-78.4756],[2626.43,-1702.4,44.2833,228.025,-78.2532],[2605.46,-1602.52,43.8333,225.46,-78.024],[2583.54,-1500.24,43.3667,222.761,-77.7787],[2562.24,-1402.87,42.9167,220.122,-77.5346],[2539.99,-1303.22,42.45,217.348,-77.2732],[2516.76,-1201.47,41.9667,214.434,-76.993],[2493.34,-1101.21,41.4833,211.479,-76.7029],[2469.74,-1002.47,41,208.484,-76.4021],[2445.14,-901.955,40.5,205.344,-76.0791],[2420.35,-803.112,40,202.161,-75.7435],[2394.53,-702.763,39.4833,198.828,-75.3825],[2367.66,-601.11,38.95,195.341,-74.9937],[2340.58,-501.453,38.4167,191.808,-74.5876],[2312.44,-400.801,37.8667,188.118,-74.1492],[2284.07,-302.336,37.3167,184.381,-73.6896],[2253.75,-200.327,36.7333,180.368,-73.1772],[2223.18,-100.852,36.15,176.306,-72.637],[2191.49,-1.2181,35.55,172.078,-72.05],[2158.66,98.3054,34.9333,167.684,-71.4106],[2124.67,197.436,34.3,163.122,-70.7123],[2088.61,298.36,33.6333,158.271,-69.9273],[2051.34,398.105,32.95,153.25,-69.0639],[2011.94,498.63,32.2333,147.939,-68.0872],[1970.36,599.282,31.4833,142.339,-66.9777],[1926.58,699.367,30.7,136.455,-65.7108],[1880.55,798.144,29.8833,130.297,-64.256],[1830.35,898.489,29,123.631,-62.5045],[1775.89,998.759,28.05,116.484,-60.3791],[1716.14,1098.69,27.0167,108.783,-57.7284],[1648.06,1199.9,25.85,100.262,-54.2191],[1570.5,1299.09,24.5333,91.0146,-49.4383],[1473.32,1399.63,22.9,80.4358,-41.9587],[1331.81,1499.86,20.55,68.2105,-27.3114],[1136.34,1550.59,17.35,61.5505,-0.150806]]], + [70,1570.51,[[2577.97,-2000.16,45.7833,235.49,-79.3856],[2559.11,-1900.38,45.35,233.118,-79.1925],[2540.09,-1801.67,44.9167,230.711,-78.9938],[2520.2,-1700.34,44.4667,228.176,-78.7814],[2500.15,-1600.2,44.0167,225.604,-78.5624],[2479.94,-1501.29,43.5667,222.996,-78.3367],[2458.82,-1400.02,43.1,220.253,-78.0951],[2437.54,-1300.1,42.6333,217.471,-77.8454],[2416.09,-1201.55,42.1667,214.651,-77.5872],[2393.71,-1100.95,41.6833,211.688,-77.3103],[2371.15,-1001.87,41.2,208.685,-77.0233],[2347.63,-900.995,40.7,205.535,-76.7151],[2323.92,-801.79,40.2,202.342,-76.3948],[2299.24,-701.062,39.6833,198.997,-76.0503],[2274.36,-602.174,39.1667,195.608,-75.6911],[2248.48,-502.055,38.6333,192.062,-75.3039],[2221.57,-400.923,38.0833,188.358,-74.886],[2194.46,-301.973,37.5333,184.606,-74.4478],[2166.31,-202.339,36.9667,180.691,-73.9734],[2137.09,-102.267,36.3833,176.61,-73.459],[2106.81,-2.0127,35.7833,172.362,-72.8999],[2075.43,98.155,35.1667,167.944,-72.2908],[2042.95,197.954,34.5333,163.355,-71.6255],[2008.48,299.588,33.8667,158.472,-70.8773],[1973.74,397.662,33.2,153.539,-70.0748],[1936.09,499.063,32.4833,148.187,-69.1449],[1897.25,598.434,31.75,142.665,-68.1124],[1855.42,699.605,30.9667,136.725,-66.9072],[1811.44,799.525,30.15,130.501,-65.5222],[1764.39,899.264,29.2833,123.878,-63.8863],[1713.28,999.313,28.35,116.752,-61.9003],[1657.13,1099.47,27.3333,109.04,-59.4212],[1594.91,1198.73,26.2167,100.698,-56.2357],[1521.81,1299.87,24.9167,91.2835,-51.7628],[1433.79,1399.87,23.3667,80.7656,-45.04],[1312.26,1499.7,21.25,68.5667,-32.6144],[1090.77,1570.51,17.45,58.7956,-0.0288776]]], + [71,1589.62,[[2466.98,-2000.79,45.9667,235.694,-79.8914],[2448.99,-1900.76,45.5333,233.317,-79.7076],[2430.86,-1801.8,45.1,230.906,-79.5184],[2411.88,-1700.2,44.65,228.367,-79.3162],[2393.47,-1603.5,44.2167,225.886,-79.1156],[2373.49,-1500.61,43.75,223.177,-78.8928],[2354.07,-1402.66,43.3,220.526,-78.6711],[2333.78,-1302.41,42.8333,217.739,-78.4336],[2312.6,-1200.02,42.35,214.811,-78.1791],[2291.99,-1102.57,41.8833,211.943,-77.9247],[2270.48,-1003.13,41.4,208.932,-77.6517],[2248.05,-901.883,40.9,205.774,-77.3585],[2225.45,-802.301,40.4,202.572,-77.0538],[2201.91,-701.179,39.8833,199.217,-76.726],[2178.19,-601.893,39.3667,195.817,-76.3843],[2153.51,-501.359,38.8333,192.259,-76.0159],[2128.64,-402.841,38.3,188.654,-75.6305],[2102,-300.409,37.7333,184.773,-75.2011],[2075.16,-200.321,37.1667,180.841,-74.7496],[2048.1,-102.615,36.6,176.859,-74.2742],[2019.23,-1.79539,36,172.59,-73.7426],[1989.32,98.9589,35.3833,168.149,-73.1634],[1958.35,199.366,34.75,163.534,-72.5306],[1926.32,299.132,34.1,158.745,-71.8371],[1893.2,397.949,33.4333,153.779,-71.0748],[1858.15,497.825,32.7333,148.514,-70.2123],[1821.13,598.13,32,142.948,-69.2325],[1782.12,698.187,31.2333,137.083,-68.1136],[1740.21,799.283,30.4167,130.795,-66.8002],[1696.24,898.403,29.5667,124.224,-65.2791],[1647.55,999.96,28.6333,117.002,-63.3963],[1595.81,1098.59,27.65,109.42,-61.1248],[1537.43,1198.59,26.55,101.031,-58.1563],[1470.49,1298.78,25.3,91.7265,-54.0945],[1389.4,1399.83,23.8,81.1225,-47.9602],[1282.87,1499.42,21.85,68.9574,-37.199],[1045.2,1589.62,17.5667,56.0148,-0.112365]]], + [72,1607.91,[[2353.9,-2003.42,46.15,235.934,-80.4031],[2336.79,-1903.13,45.7167,233.555,-80.2286],[2318.89,-1800.12,45.2667,231.047,-80.0421],[2301.51,-1702.03,44.8333,228.597,-79.8572],[2283.33,-1601.35,44.3833,226.016,-79.6594],[2265,-1501.88,43.9333,223.398,-79.4555],[2245.85,-1400.03,43.4667,220.644,-79.2371],[2227.24,-1303.09,43.0167,217.95,-79.0196],[2207.1,-1200.39,42.5333,215.015,-78.7781],[2187.5,-1102.64,42.0667,212.141,-78.5366],[2167.05,-1002.88,41.5833,209.123,-78.2775],[2145.72,-901.301,41.0833,205.956,-77.9993],[2124.23,-801.382,40.5833,202.745,-77.71],[2102.57,-703.154,40.0833,199.489,-77.4091],[2079.29,-600.269,39.55,195.968,-77.0743],[2056.56,-502.489,39.0333,192.51,-76.7357],[2032.17,-400.476,38.4833,188.779,-76.3586],[2007.59,-300.635,37.9333,184.998,-75.9631],[1982.07,-200.075,37.3667,181.05,-75.5348],[1956.34,-101.892,36.8,177.051,-75.0838],[1928.89,-0.56194,36.2,172.763,-74.5795],[1901.22,98.0227,35.6,168.421,-74.0451],[1871.79,199.061,34.9667,163.782,-73.4455],[1841.34,299.481,34.3167,158.965,-72.7882],[1809.86,398.974,33.65,153.969,-72.0654],[1776.54,499.569,32.95,148.667,-71.2474],[1742.15,598.385,32.2333,143.186,-70.3396],[1705.07,699.35,31.4667,137.272,-69.2794],[1666.06,799.397,30.6667,131.054,-68.0608],[1624.27,899.664,29.8167,124.412,-66.6204],[1579.65,998.953,28.9167,117.359,-64.9031],[1530.5,1099.23,27.9333,109.663,-62.7565],[1475.88,1199.62,26.85,101.247,-59.9913],[1414,1299.59,25.6333,91.97,-56.2545],[1340.42,1399.74,24.2,81.4755,-50.7293],[1245.36,1499.61,22.3667,69.2916,-41.2271],[1064.97,1599.86,18.9333,54.3913,-13.2494],[997.734,1607.91,17.6667,53.2165,-0.0819385]]], + [73,1625.36,[[2237.5,-2000.31,46.3,236.031,-80.9076],[2221.91,-1903.67,45.8833,233.739,-80.7487],[2204.93,-1800.42,45.4333,231.227,-80.5722],[2188.46,-1702.1,45,228.773,-80.3971],[2171.22,-1601.17,44.55,226.188,-80.2099],[2153.85,-1501.46,44.1,223.565,-80.0168],[2136.34,-1402.97,43.65,220.904,-79.8177],[2118.05,-1302.16,43.1833,218.105,-79.6043],[2099.62,-1202.71,42.7167,215.266,-79.3836],[2080.38,-1101.16,42.2333,212.283,-79.147],[2060.98,-1001.12,41.75,209.257,-78.9017],[2041.44,-902.618,41.2667,206.188,-78.6471],[2021.07,-802.349,40.7667,202.969,-78.3736],[1999.86,-700.509,40.25,199.594,-78.0793],[1978.48,-600.499,39.7333,196.173,-77.7724],[1956.93,-502.345,39.2167,192.704,-77.4521],[1934.52,-403.002,38.6833,189.075,-77.1064],[1911.23,-302.689,38.1333,185.281,-76.7328],[1887.04,-201.639,37.5667,181.319,-76.3281],[1861.94,-100.093,36.9833,177.186,-75.8892],[1836.65,-1.09853,36.4,172.999,-75.4254],[1810.43,98.0221,35.8,168.638,-74.9204],[1782.53,199.632,35.1667,163.976,-74.3535],[1754.42,298.095,34.5333,159.257,-73.7485],[1724.59,398.29,33.8667,154.233,-73.0661],[1693.02,499.629,33.1667,148.898,-72.2935],[1660.44,599.215,32.45,143.378,-71.4359],[1626.07,698.851,31.7,137.547,-70.4565],[1589.11,799.886,30.9,131.275,-69.3062],[1550.3,899.287,30.0667,124.697,-67.9738],[1508.03,999.841,29.1667,117.562,-66.3536],[1462.26,1099.86,28.2,109.892,-64.3625],[1412.13,1198.99,27.15,101.596,-61.8385],[1354.33,1299.96,25.95,92.2431,-58.3713],[1287.11,1399.82,24.5667,81.7972,-53.3592],[1202.07,1499.52,22.8333,69.6572,-44.9439],[1063.08,1599.85,20.0333,54.6703,-23.982],[949.35,1625.36,17.7667,50.3972,-0.104957]]], + [74,1641.95,[[2119.78,-2003.12,46.4667,236.257,-81.4243],[2104.46,-1902.4,46.0333,233.87,-81.2684],[2089.01,-1802.74,45.6,231.448,-81.1081],[2072.85,-1700.41,45.15,228.896,-80.9367],[2057.17,-1603,44.7167,226.402,-80.7666],[2040.76,-1503.02,44.2667,223.775,-80.5846],[2023.62,-1400.64,43.8,221.01,-80.3897],[2006.95,-1303.18,43.35,218.306,-80.1956],[1989.54,-1203.45,42.8833,215.461,-79.9876],[1971.37,-1101.62,42.4,212.472,-79.7645],[1953.05,-1001.29,41.9167,209.439,-79.5331],[1934.59,-902.486,41.4333,206.363,-79.2932],[1915.35,-801.907,40.9333,203.135,-79.0352],[1895.96,-703.012,40.4333,199.862,-78.7668],[1875.77,-602.616,39.9167,196.432,-78.4777],[1854.76,-500.925,39.3833,192.841,-78.1661],[1833.59,-401.238,38.85,189.199,-77.84],[1811.59,-300.568,38.3,185.392,-77.4875],[1789.41,-202.095,37.75,181.533,-77.1172],[1765.71,-100.091,37.1667,177.385,-76.7036],[1741.82,-0.633912,36.5833,173.18,-76.2666],[1717.06,98.9671,35.9833,168.8,-75.7906],[1691.41,198.441,35.3667,164.239,-75.2707],[1664.86,297.505,34.7333,159.498,-74.7012],[1636.7,398.338,34.0667,154.446,-74.0586],[1607.6,497.97,33.3833,149.207,-73.3491],[1576.84,598.353,32.6667,143.653,-72.5426],[1544.39,698.832,31.9167,137.779,-71.6213],[1510.23,798.706,31.1333,131.588,-70.5623],[1473.59,899.182,30.3,124.95,-69.3101],[1434.44,999.088,29.4167,117.872,-67.8161],[1391.98,1098.84,28.4667,110.238,-65.9799],[1344.67,1199.68,27.4167,101.813,-63.6105],[1291.64,1299.94,26.25,92.5395,-60.4468],[1230.51,1399.12,24.9167,82.1907,-55.9265],[1153.39,1499.62,23.25,69.9879,-48.3727],[1038.02,1599.69,20.7833,55.0466,-31.3018],[900.063,1641.95,17.8667,47.5578,-0.191457]]], + [75,1657.65,[[1998.99,-2000.21,46.6,236.339,-81.9352],[1985.12,-1903.18,46.1833,234.041,-81.7943],[1970.59,-1803.32,45.75,231.615,-81.6437],[1955.39,-1700.77,45.3,229.059,-81.4826],[1940.64,-1603.13,44.8667,226.562,-81.3228],[1925.2,-1502.93,44.4167,223.93,-81.1518],[1909.06,-1400.31,43.95,221.161,-80.9687],[1893.38,-1302.63,43.5,218.451,-80.7863],[1877,-1202.66,43.0333,215.601,-80.5908],[1859.9,-1100.57,42.55,212.605,-80.3811],[1843.26,-1003.43,42.0833,209.671,-80.1714],[1825.3,-900.923,41.5833,206.481,-79.9382],[1807.19,-800.074,41.0833,203.245,-79.6957],[1788.94,-700.908,40.5833,199.963,-79.4434],[1769.95,-600.229,40.0667,196.523,-79.1717],[1750.8,-501.399,39.55,193.034,-78.8881],[1730.88,-401.352,39.0167,189.382,-78.5819],[1710.18,-300.307,38.4667,185.563,-78.2509],[1689.32,-201.454,37.9167,181.691,-77.9032],[1667.67,-101.935,37.35,177.647,-77.5262],[1645.2,-1.99535,36.7667,173.428,-77.1164],[1621.91,98.1075,36.1667,169.03,-76.6699],[1597.78,198.102,35.55,164.45,-76.1822],[1572.81,297.706,34.9167,159.686,-75.6478],[1546.32,399.113,34.25,154.609,-75.0448],[1518.95,499.339,33.5667,149.34,-74.3787],[1490.7,598.05,32.8667,143.881,-73.6397],[1460.18,699.297,32.1167,137.968,-72.7758],[1428.05,799.981,31.3333,131.73,-71.7824],[1394.29,899.358,30.5167,125.168,-70.6316],[1358.17,998.482,29.65,118.155,-69.2591],[1318.25,1099.53,28.7,110.432,-67.54],[1275.19,1198.71,27.6833,102.16,-65.3945],[1226.06,1299.57,26.5333,92.8538,-62.4834],[1170.05,1398.89,25.2333,82.516,-58.3725],[1100.49,1499.37,23.6333,70.3492,-51.625],[1000.95,1599.98,21.3667,55.3577,-37.1132],[849.14,1657.65,17.95,44.7009,-0.145174]]], + [76,1672.44,[[1876.93,-2003.3,46.75,236.552,-82.4574],[1863.43,-1902.19,46.3167,234.159,-82.3204],[1849.82,-1802.15,45.8833,231.73,-82.1794],[1836.1,-1703.19,45.45,229.265,-82.0344],[1821.75,-1601.59,45,226.668,-81.8792],[1807.29,-1501.2,44.55,224.032,-81.7191],[1792.72,-1402.02,44.1,221.357,-81.554],[1777.49,-1300.49,43.6333,218.542,-81.377],[1762.14,-1200.32,43.1667,215.685,-81.194],[1746.68,-1101.52,42.7,212.787,-81.0046],[1730.54,-1000.66,42.2167,209.741,-80.8014],[1714.27,-901.329,41.7333,206.651,-80.5905],[1697.31,-800.197,41.2333,203.408,-80.3638],[1680.23,-700.744,40.7333,200.118,-80.1279],[1663.01,-602.994,40.2333,196.781,-79.8822],[1644.5,-500.635,39.7,193.171,-79.6085],[1625.85,-400.273,39.1667,189.508,-79.3222],[1607.05,-301.94,38.6333,185.794,-79.0222],[1587.52,-202.69,38.0833,181.91,-78.6974],[1567.24,-102.757,37.5167,177.854,-78.3452],[1546.2,-2.38751,36.9333,173.62,-77.9623],[1524.39,98.1618,36.3333,169.206,-77.5451],[1501.8,198.62,35.7167,164.607,-77.0893],[1478.42,298.704,35.0833,159.822,-76.5899],[1454.24,398.117,34.4333,154.848,-76.0407],[1428.61,498.963,33.75,149.553,-75.4189],[1402.16,598.316,33.05,144.063,-74.7289],[1374.22,698.042,32.3167,138.245,-73.9407],[1344.15,799.568,31.5333,131.964,-73.0143],[1312.54,899.831,30.7167,125.35,-71.9405],[1278.73,999.904,29.85,118.273,-70.6589],[1242.68,1098.55,28.9333,110.742,-69.1121],[1202.37,1199.17,27.9167,102.363,-67.1138],[1157.73,1298.88,26.8,93.181,-64.4834],[1106,1399.27,25.5167,82.7543,-60.7111],[1042.96,1499.96,23.9667,70.5822,-54.6365],[956.73,1599.94,21.8667,55.7187,-42.2236],[797.435,1672.44,18.0333,41.8246,-0.163341]]], + [77,1686.3,[[1752.1,-2000.7,46.8667,236.622,-82.9749],[1739.99,-1903.32,46.45,234.318,-82.8523],[1727.31,-1803.08,46.0167,231.886,-82.7211],[1714.04,-1700.14,45.5667,229.323,-82.5808],[1701.16,-1602.13,45.1333,226.817,-82.4417],[1687.69,-1501.53,44.6833,224.178,-82.2928],[1674.11,-1402.15,44.2333,221.499,-82.139],[1659.92,-1300.41,43.7667,218.679,-81.9744],[1645.62,-1200.01,43.3,215.817,-81.8041],[1631.21,-1100.99,42.8333,212.914,-81.6279],[1616.69,-1003.37,42.3667,209.968,-81.4454],[1601.01,-900.341,41.8667,206.765,-81.2424],[1585.74,-802.318,41.3833,203.624,-81.0386],[1569.82,-702.563,40.8833,200.328,-80.8193],[1553.25,-601.27,40.3667,196.872,-80.5831],[1536.54,-501.82,39.85,193.365,-80.3365],[1519.16,-401.127,39.3167,189.694,-80.0703],[1501.65,-302.458,38.7833,185.97,-79.7913],[1483.46,-202.859,38.2333,182.075,-79.4893],[1464.57,-102.563,37.6667,178.006,-79.1617],[1444.97,-1.81607,37.0833,173.758,-78.8056],[1424.65,99.1252,36.4833,169.328,-78.4176],[1403.6,199.99,35.8667,164.712,-77.9936],[1382.4,297.891,35.25,160.033,-77.5414],[1359.87,397.826,34.6,155.037,-77.0312],[1336,499.227,33.9167,149.717,-76.4534],[1311.36,599.153,33.2167,144.198,-75.812],[1285.34,699.485,32.4833,138.346,-75.079],[1257.92,799.545,31.7167,132.158,-74.2364],[1229.09,898.608,30.9167,125.632,-73.2605],[1197.6,999.668,30.05,118.497,-72.072],[1164.04,1099.37,29.1333,110.892,-70.6363],[1127.12,1199.58,28.1333,102.554,-68.8121],[1086.18,1299.33,27.0333,93.3778,-66.4093],[1039.27,1399.17,25.7833,83.0265,-63.0077],[982.494,1499.69,24.2833,70.9088,-57.5817],[906.729,1599.81,22.3,56.0789,-46.8159],[744.312,1686.3,18.1,38.9311,-0.0209948]]], + [78,1699.22,[[1625.61,-2000.23,46.9833,236.732,-83.4984],[1614.4,-1902.69,46.5667,234.425,-83.3848],[1602.65,-1802.3,46.1333,231.99,-83.2635],[1590.82,-1702.98,45.7,229.519,-83.1385],[1578.43,-1601.01,45.25,226.914,-83.0049],[1565.95,-1500.24,44.8,224.27,-82.8671],[1553.37,-1400.69,44.35,221.586,-82.7248],[1540.7,-1302.38,43.9,218.864,-82.578],[1527.46,-1201.76,43.4333,215.998,-82.4205],[1514.11,-1102.5,42.9667,213.09,-82.2576],[1500.18,-1001.17,42.4833,210.034,-82.0827],[1486.15,-901.36,42,206.932,-81.9012],[1472.01,-803.087,41.5167,203.785,-81.7127],[1457.27,-703.072,41.0167,200.482,-81.51],[1441.92,-601.507,40.5,197.019,-81.2916],[1426.45,-501.783,39.9833,193.505,-81.0635],[1410.35,-400.803,39.45,189.824,-80.8174],[1394.14,-301.845,38.9167,186.09,-80.5593],[1377.29,-201.946,38.3667,182.185,-80.2801],[1359.79,-101.337,37.8,178.104,-79.9771],[1341.64,-0.265188,37.2167,173.842,-79.6476],[1323.35,98.237,36.6333,169.52,-79.2988],[1303.86,199.531,36.0167,164.888,-78.9071],[1284.23,297.865,35.4,160.192,-78.4893],[1263.37,398.261,34.75,155.176,-78.0177],[1241.81,497.71,34.0833,149.963,-77.4972],[1219,598.237,33.3833,144.417,-76.9052],[1194.91,699.206,32.65,138.535,-76.2287],[1169.53,799.937,31.8833,132.31,-75.4506],[1142.84,899.706,31.0833,125.74,-74.5489],[1114.25,999.642,30.2333,118.688,-73.4725],[1083.74,1098.54,29.3333,111.156,-72.1731],[1049.58,1199.95,28.3333,102.73,-70.4916],[1012.26,1299.6,27.25,93.5747,-68.31],[969.43,1399.9,26.0167,83.1868,-65.217],[918.65,1499.66,24.5667,71.1827,-60.3934],[852.107,1599.48,22.6833,56.4524,-51.0502],[691.13,1699.22,18.1833,36.0178,-0.19892]]], + [79,1711.17,[[1497.52,-2001.93,47.1,236.882,-84.0272],[1486.79,-1900.34,46.6667,234.48,-83.9187],[1476.41,-1803.66,46.25,232.136,-83.8114],[1465.1,-1700.37,45.8,229.567,-83.6922],[1454.13,-1602.03,45.3667,227.055,-83.5739],[1442.65,-1501.08,44.9167,224.408,-83.4474],[1431.09,-1401.34,44.4667,221.721,-83.3167],[1419.43,-1302.84,44.0167,218.995,-83.1818],[1407.25,-1202.02,43.55,216.125,-83.0372],[1394.98,-1102.57,43.0833,213.213,-82.8876],[1382.17,-1001.04,42.6,210.151,-82.7269],[1369.27,-901.015,42.1167,207.044,-82.5602],[1356.26,-802.533,41.6333,203.891,-82.3871],[1342.71,-702.297,41.1333,200.582,-82.2008],[1328.59,-600.503,40.6167,197.111,-82.0001],[1314.36,-500.548,40.1,193.589,-81.7906],[1300.03,-402.46,39.5833,190.015,-81.5716],[1284.65,-300.127,39.0333,186.156,-81.3273],[1269.63,-202.977,38.5,182.359,-81.0786],[1253.54,-102.037,37.9333,178.267,-80.8006],[1236.85,-0.619216,37.35,173.994,-80.4982],[1220.04,98.2317,36.7667,169.66,-80.1781],[1202.12,199.898,36.15,165.012,-79.8184],[1184.07,298.607,35.5333,160.3,-79.4349],[1164.89,399.403,34.8833,155.264,-79.0019],[1145.07,499.266,34.2167,150.029,-78.5237],[1124.59,597.873,33.5333,144.591,-77.9933],[1102.45,699.406,32.8,138.68,-77.3728],[1079.63,798.583,32.05,132.557,-76.6751],[1055.09,899.093,31.25,125.949,-75.8493],[1028.82,999.825,30.4,118.848,-74.8629],[1000.78,1099.57,29.5,111.255,-73.6711],[970.421,1198.67,28.5333,103.032,-72.183],[936.13,1299.68,27.45,93.7694,-70.1883],[897.837,1398.99,26.25,83.508,-67.4396],[852.257,1498.95,24.8333,71.5234,-63.1483],[793.301,1599.32,23.0167,56.7718,-54.9645],[686.191,1699.84,19.75,36.1333,-24.1915],[636.654,1711.17,18.25,33.0884,-0.218339]]], + [80,1722.14,[[1367.49,-2001.88,47.2,236.982,-84.557],[1357.72,-1900.16,46.7667,234.578,-84.4581],[1348.24,-1803.35,46.35,232.231,-84.3604],[1338.32,-1703.72,45.9167,229.755,-84.2558],[1327.93,-1601.42,45.4667,227.144,-84.144],[1317.46,-1500.32,45.0167,224.494,-84.0286],[1306.92,-1400.44,44.5667,221.803,-83.9096],[1296.29,-1301.79,44.1167,219.073,-83.7867],[1285.18,-1200.81,43.65,216.199,-83.6549],[1273.99,-1101.2,43.1833,213.281,-83.5185],[1262.71,-1002.97,42.7167,210.321,-83.3772],[1250.95,-902.731,42.2333,207.21,-83.2254],[1238.68,-800.648,41.7333,203.943,-83.0623],[1226.32,-700.234,41.2333,200.627,-82.8925],[1213.86,-601.515,40.7333,197.261,-82.7156],[1200.89,-501.312,40.2167,193.733,-82.5248],[1187.82,-402.975,39.7,190.153,-82.3255],[1173.8,-300.373,39.15,186.285,-82.103],[1160.1,-202.961,38.6167,182.48,-81.8766],[1145.43,-101.738,38.05,178.378,-81.6233],[1130.21,-0.0271504,37.4667,174.093,-81.348],[1114.88,99.1196,36.8833,169.746,-81.0564],[1098.99,198.383,36.2833,165.211,-80.7379],[1082.53,297.492,35.6667,160.485,-80.3891],[1065.05,398.712,35.0167,155.432,-79.9952],[1046.98,499.014,34.35,150.178,-79.5602],[1028.31,598.077,33.6667,144.718,-79.0776],[1008.58,697.833,32.95,138.916,-78.5262],[987.316,799.787,32.1833,132.627,-77.8775],[965.416,898.795,31.4,126.12,-77.1418],[941.938,998.307,30.5667,119.116,-76.2636],[916.382,1098.94,29.6667,111.468,-75.1819],[888.716,1199.01,28.7,103.175,-73.8301],[857.945,1299.62,27.6333,93.9592,-72.0464],[823.535,1399.03,26.45,83.704,-69.5874],[782.492,1499.79,25.05,71.638,-65.7391],[730.754,1599.67,23.3,56.9813,-58.6007],[645.194,1699.65,20.4333,36.5409,-34.8535],[581.052,1722.14,18.3,30.1432,-0.0333782]]], + [81,1732.12,[[1235.7,-2000.12,47.2833,237.032,-85.0883],[1227.22,-1902.18,46.8667,234.718,-85.0026],[1218.32,-1801.37,46.4333,232.275,-84.9109],[1209.36,-1701.63,46,229.796,-84.8166],[1200.33,-1602.99,45.5667,227.279,-84.7194],[1190.89,-1501.73,45.1167,224.626,-84.6154],[1181.36,-1401.68,44.6667,221.933,-84.508],[1171.77,-1302.87,44.2167,219.2,-84.3972],[1161.75,-1201.72,43.75,216.322,-84.2784],[1151.65,-1101.93,43.2833,213.402,-84.1554],[1141.1,-1000.04,42.8,210.331,-84.0235],[1130.85,-903.107,42.3333,207.322,-83.8913],[1119.77,-800.832,41.8333,204.05,-83.7441],[1108.61,-700.224,41.3333,200.729,-83.5911],[1097.37,-601.309,40.8333,197.358,-83.4316],[1085.66,-500.903,40.3167,193.823,-83.2595],[1073.87,-402.36,39.8,190.236,-83.0797],[1061.6,-302.621,39.2667,186.478,-82.8854],[1048.85,-201.908,38.7167,182.546,-82.6749],[1035.61,-100.453,38.15,178.435,-82.4465],[1022.27,-1.37856,37.5833,174.262,-82.2054],[1008.43,98.085,37,169.905,-81.9427],[994.086,197.678,36.4,165.359,-81.6559],[978.83,299.774,35.7667,160.49,-81.3328],[963.456,398.711,35.1333,155.551,-80.9867],[947.148,499.39,34.4667,150.279,-80.5947],[930.304,598.842,33.7833,144.799,-80.1597],[912.502,699.01,33.0667,138.973,-79.6626],[893.727,799.235,32.3167,132.793,-79.0909],[873.966,898.812,31.5333,126.254,-78.4286],[852.78,998.935,30.7,119.21,-77.6376],[830.15,1098.43,29.8167,111.655,-76.6821],[805.189,1199.35,28.85,103.299,-75.466],[777.863,1299.43,27.8,94.1423,-73.8869],[747.26,1398.77,26.6333,83.9116,-71.7098],[711.122,1499.03,25.2667,71.939,-68.3445],[665.352,1599.95,23.55,57.1757,-62.0811],[594.506,1699.76,20.9167,36.8502,-42.8396],[525.389,1732.11,18.3667,27.1812,-0.268123]]], + [82,1741.09,[[1102.61,-2000.55,47.3667,237.124,-85.6246],[1095.04,-1902.5,46.95,234.808,-85.5482],[1087.12,-1801.57,46.5167,232.363,-85.4666],[1079.13,-1701.72,46.0833,229.881,-85.3825],[1071.08,-1602.95,45.65,227.362,-85.296],[1062.66,-1501.56,45.2,224.706,-85.2033],[1054.17,-1401.38,44.75,222.01,-85.1078],[1045.62,-1302.44,44.3,219.274,-85.009],[1036.69,-1201.15,43.8333,216.393,-84.9032],[1027.68,-1101.23,43.3667,213.469,-84.7937],[1018.61,-1002.69,42.9,210.501,-84.6802],[1009.14,-902.123,42.4167,207.381,-84.5583],[999.601,-803.084,41.9333,204.214,-84.4317],[989.656,-702.268,41.4333,200.888,-84.2955],[979.635,-603.143,40.9333,197.513,-84.1535],[969.202,-502.517,40.4167,193.974,-84.0005],[958.348,-400.596,39.8833,190.264,-83.8352],[947.41,-300.689,39.35,186.499,-83.662],[936.39,-202.825,38.8167,182.679,-83.4802],[924.591,-101.119,38.25,178.56,-83.2769],[912.702,-1.7914,37.6833,174.379,-83.0624],[900.369,97.9359,37.1,170.012,-82.8286],[887.587,197.803,36.5,165.455,-82.5733],[874.35,297.536,35.8833,160.703,-82.2935],[860.289,399.422,35.2333,155.62,-81.9775],[846.119,497.933,34.5833,150.465,-81.6375],[831.11,597.8,33.9,144.968,-81.2508],[815.246,698.41,33.1833,139.121,-80.8088],[798.516,799.1,32.4333,132.917,-80.3004],[780.908,899.169,31.65,126.349,-79.7112],[762.03,999.819,30.8167,119.269,-79.0072],[741.864,1099.87,29.9333,111.67,-78.1564],[720.006,1199.74,28.9833,103.402,-77.0927],[696.046,1299.13,27.95,94.3166,-75.7121],[668.782,1399.59,26.7833,83.9796,-73.7778],[637.376,1498.9,25.45,72.1335,-70.8637],[597.799,1599.44,23.7833,57.475,-65.4933],[538.315,1699.8,21.3,37.1462,-49.6462],[468.729,1741.09,18.4167,24.205,-0.302937]]], + [83,1749.04,[[968.278,-2003.22,47.45,237.257,-86.1652],[961.376,-1901.14,47.0167,234.847,-86.0956],[954.421,-1800.12,46.5833,232.4,-86.0239],[947.412,-1700.18,46.15,229.916,-85.9502],[940.351,-1601.32,45.7167,227.394,-85.8743],[933.236,-1503.58,45.2833,224.834,-85.7961],[925.792,-1403.26,44.8333,222.137,-85.7123],[918.013,-1300.53,44.3667,219.296,-85.6226],[910.453,-1202.74,43.9167,216.515,-85.5331],[902.555,-1102.67,43.45,213.588,-85.4372],[894.311,-1000.48,42.9667,210.511,-85.3341],[886.292,-903.249,42.5,207.494,-85.2309],[877.633,-800.657,42,204.214,-85.1161],[869.2,-703.066,41.5167,200.995,-85.0006],[860.116,-600.491,41,197.502,-84.872],[851.257,-502.969,40.5,194.071,-84.7421],[841.737,-400.864,39.9667,190.357,-84.5974],[832.142,-300.771,39.4333,186.586,-84.4455],[822.475,-202.72,38.9,182.759,-84.2862],[812.125,-100.812,38.3333,178.633,-84.108],[801.696,-1.28101,37.7667,174.444,-83.9199],[790.877,98.6574,37.1833,170.068,-83.715],[779.665,198.743,36.5833,165.501,-83.4911],[768.053,298.704,35.9667,160.737,-83.2458],[756.036,398.254,35.3333,155.773,-82.9762],[743.288,499.585,34.6667,150.47,-82.6705],[730.121,599.711,33.9833,144.956,-82.3314],[716.53,698.295,33.2833,139.227,-81.9529],[701.857,799.378,32.5333,133.001,-81.5077],[686.413,899.859,31.75,126.407,-80.9915],[670.188,998.991,30.9333,119.438,-80.3875],[652.503,1099.65,30.05,111.801,-79.6433],[633.672,1198.48,29.1167,103.63,-78.73],[612.663,1298.74,28.0833,94.4812,-77.5243],[589.099,1398.84,26.9333,84.2008,-75.8598],[561.563,1499.51,25.6,72.2106,-73.3146],[527.559,1599.97,23.9667,57.5746,-68.7151],[478.223,1699.65,21.6167,37.4567,-55.7577],[411.24,1749.04,18.45,21.2148,-0.0568712]]], + [84,1755.95,[[832.32,-2000.27,47.5,237.25,-86.7048],[826.618,-1902.04,47.0833,234.931,-86.6473],[820.642,-1800.92,46.65,232.482,-86.5858],[814.62,-1700.88,46.2167,229.996,-86.5226],[808.553,-1601.92,45.7833,227.473,-86.4573],[802.204,-1500.33,45.3333,224.812,-86.3876],[796.045,-1403.65,44.9,222.212,-86.3183],[789.36,-1300.81,44.4333,219.369,-86.2412],[782.866,-1202.91,43.9833,216.586,-86.1644],[776.08,-1102.72,43.5167,213.656,-86.082],[768.997,-1000.42,43.0333,210.576,-85.9935],[762.106,-903.068,42.5667,207.556,-85.9049],[754.667,-800.351,42.0667,204.272,-85.8063],[747.421,-702.637,41.5833,201.05,-85.7071],[739.869,-603.215,41.0833,197.666,-85.6003],[732.005,-502.278,40.5667,194.117,-85.4851],[723.824,-400.034,40.0333,190.397,-85.3607],[715.84,-302.902,39.5167,186.739,-85.2346],[707.275,-201.608,38.9667,182.788,-85.0936],[698.645,-102.517,38.4167,178.776,-84.9451],[689.686,-2.76256,37.85,174.582,-84.7838],[680.393,97.408,37.2667,170.199,-84.6081],[670.761,197.735,36.6667,165.624,-84.416],[660.786,297.946,36.05,160.851,-84.2057],[650.463,397.756,35.4167,155.877,-83.9742],[639.512,499.363,34.75,150.563,-83.7121],[628.201,599.774,34.0667,145.034,-83.421],[616.526,698.653,33.3667,139.289,-83.0962],[604.202,797.853,32.6333,133.184,-82.723],[590.937,898.782,31.85,126.568,-82.2808],[577.001,998.384,31.0333,119.574,-81.7633],[561.811,1099.56,30.15,111.904,-81.1254],[545.637,1198.94,29.2167,103.692,-80.3421],[527.591,1299.81,28.1833,94.4859,-79.3072],[507.646,1399.22,27.05,84.2761,-77.8997],[484.293,1499.73,25.7333,72.3137,-75.7463],[455.69,1599.88,24.1333,57.75,-71.8958],[414.836,1699.76,21.8667,37.6583,-61.2856],[353.699,1755.94,18.5,18.212,-0.421303]]], + [85,1761.82,[[695.606,-2003.51,47.5667,237.378,-87.2506],[690.654,-1901.27,47.1333,234.965,-87.2007],[685.662,-1800.08,46.7,232.514,-87.1493],[680.827,-1703.8,46.2833,230.123,-87.0985],[675.566,-1600.94,45.8333,227.501,-87.0421],[670.46,-1503.02,45.4,224.938,-86.986],[665.118,-1402.53,44.95,222.236,-86.9259],[659.736,-1303.26,44.5,219.493,-86.8639],[654.111,-1201.63,44.0333,216.605,-86.7974],[648.443,-1101.37,43.5667,213.672,-86.7285],[642.732,-1002.49,43.1,210.695,-86.6572],[636.772,-901.558,42.6167,207.566,-86.5807],[630.767,-802.155,42.1333,204.388,-86.5012],[624.507,-700.959,41.6333,201.051,-86.4155],[618.199,-601.45,41.1333,197.663,-86.3263],[611.631,-500.423,40.6167,194.11,-86.2302],[605.013,-401.253,40.1,190.502,-86.1296],[598.129,-300.862,39.5667,186.722,-86.0208],[591.194,-202.511,39.0333,182.884,-85.9067],[583.768,-100.281,38.4667,178.746,-85.779],[576.285,-0.423891,37.9,174.544,-85.6442],[568.523,99.8526,37.3167,170.153,-85.4974],[560.703,197.537,36.7333,165.697,-85.3415],[552.373,297.941,36.1167,160.917,-85.166],[543.753,397.952,35.4833,155.933,-84.9729],[534.609,499.771,34.8167,150.608,-84.7541],[525.395,597.993,34.15,145.204,-84.5174],[515.415,699.508,33.4333,139.309,-84.2401],[505.124,798.948,32.7,133.187,-83.9284],[494.283,898.038,31.9333,126.694,-83.5674],[482.648,998.03,31.1167,119.677,-83.1362],[469.965,1099.63,30.2333,111.979,-82.6044],[456.461,1199.46,29.3,103.732,-81.9511],[441.638,1299.28,28.2833,94.6277,-81.1026],[424.986,1399.43,27.15,84.3525,-79.9304],[405.738,1499.62,25.85,72.4405,-78.1604],[382.36,1599.2,24.2833,57.9958,-75.0329],[349.017,1699.95,22.0667,37.8057,-66.4604],[295.467,1761.81,18.5333,15.1974,-0.527298]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 576.285; +_maxRange = 3310.55; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg4.sqf new file mode 100644 index 0000000000..c6a507a65c --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg4.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg4 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1160.05,[[5279.46,-2003.02,41.75,237.158,-66.5933],[5235.31,-1902.07,41.2833,234.936,-66.148],[5190.8,-1802.43,40.8167,232.691,-65.6904],[5144.31,-1700.62,40.3333,230.343,-65.2029],[5097.43,-1600.25,39.85,227.972,-64.7011],[5050.15,-1501.34,39.3667,225.58,-64.1845],[5000.83,-1400.58,38.8667,223.083,-63.6337],[4951.09,-1301.42,38.3667,220.565,-63.0655],[4899.26,-1200.67,37.85,217.942,-62.4595],[4846.98,-1101.68,37.3333,215.3,-61.8333],[4792.55,-1001.38,36.8,212.553,-61.1649],[4737.65,-903.019,36.2667,209.789,-60.4729],[4678.8,-800.66,35.7,206.835,-59.7108],[4619.43,-700.551,35.1333,203.867,-58.9195],[4559.54,-602.724,34.5667,200.886,-58.0976],[4495.56,-501.666,33.9667,197.722,-57.1923],[4429.2,-400.546,33.35,194.464,-56.2224],[4362.24,-302.249,32.7333,191.204,-55.2102],[4291,-201.74,32.0833,187.773,-54.0951],[4217.25,-102.007,31.4167,184.266,-52.8972],[4139.07,-0.997528,30.7167,180.605,-51.5769],[4058.25,98.4222,30,176.888,-50.1551],[3972.83,198.073,29.25,173.045,-48.5867],[3880.79,299.342,28.45,169.015,-46.8179],[3783.9,399.23,27.6167,164.911,-44.864],[3680.1,498.776,26.7333,160.692,-42.6621],[3567.21,598.449,25.7833,156.338,-40.136],[3440.94,699.566,24.7333,151.794,-37.1447],[3300.89,799.237,23.5833,147.208,-33.6205],[3138.33,898.895,22.2667,142.562,-29.2634],[2935.54,999.768,20.65,137.921,-23.458],[2647.55,1099.9,18.4,133.838,-14.6569],[2186.3,1160.05,14.9,134.143,-0.0612511]]], + [46,1198.53,[[5235.22,-2001.7,42.15,237.496,-67.0954],[5191.91,-1900.23,41.6833,235.264,-66.6598],[5148.23,-1800.05,41.2167,233.007,-66.2121],[5104.2,-1701.19,40.75,230.729,-65.7517],[5058.21,-1600.2,40.2667,228.345,-65.2612],[5011.84,-1500.67,39.7833,225.939,-64.756],[4965.08,-1402.61,39.3,223.51,-64.2356],[4916.31,-1302.74,38.8,220.976,-63.6806],[4865.48,-1201.25,38.2833,218.335,-63.0885],[4814.21,-1101.51,37.7667,215.673,-62.4766],[4760.83,-1000.43,37.2333,212.905,-61.8233],[4706.99,-901.275,36.7,210.117,-61.1469],[4650.99,-801.07,36.15,207.224,-60.424],[4592.78,-700.036,35.5833,204.227,-59.651],[4534.05,-601.275,35.0167,201.216,-58.8479],[4473.07,-502.017,34.4333,198.105,-57.9881],[4409.79,-402.509,33.8333,194.896,-57.067],[4342.38,-300.361,33.2,191.505,-56.0519],[4274.34,-201.22,32.5667,188.114,-54.9906],[4202.06,-100.16,31.9,184.551,-53.8204],[4127.27,-0.135449,31.2167,180.915,-52.5615],[4049.93,98.5343,30.5167,177.214,-51.2057],[3966.24,199.927,29.7667,173.289,-49.6742],[3879.85,298.881,29,169.332,-48.0194],[3786.88,398.991,28.1833,165.197,-46.1513],[3687.17,499.163,27.3167,160.922,-44.0431],[3578.61,599.947,26.3833,156.479,-41.6196],[3460.95,699.639,25.3833,151.946,-38.8376],[3329.95,799.237,24.2833,147.288,-35.5465],[3179.13,899.409,23.0333,142.501,-31.505],[2999.55,998.995,21.5667,137.717,-26.3561],[2760.7,1099.36,19.65,133.113,-19.0147],[2179.34,1198.53,15.1333,131.631,-0.0248235]]], + [47,1236.91,[[5187.85,-2001.66,42.55,237.866,-67.6023],[5146.91,-1903.26,42.1,235.704,-67.1918],[5104.09,-1802.49,41.6333,233.438,-66.7545],[5060.93,-1703.03,41.1667,231.149,-66.3049],[5015.85,-1601.42,40.6833,228.753,-65.8258],[4970.39,-1501.25,40.2,226.334,-65.3323],[4924.55,-1402.55,39.7167,223.891,-64.8239],[4876.73,-1302.02,39.2167,221.341,-64.2816],[4828.51,-1203.09,38.7167,218.769,-63.722],[4778.26,-1102.59,38.2,216.089,-63.1246],[4725.94,-1000.72,37.6667,213.299,-62.4867],[4673.17,-900.756,37.1333,210.489,-61.8261],[4619.95,-802.744,36.6,207.66,-61.1418],[4562.91,-700.77,36.0333,204.636,-60.3874],[4505.37,-601.059,35.4667,201.595,-59.6035],[4445.61,-500.814,34.8833,198.451,-58.764],[4383.59,-400.28,34.2833,195.205,-57.8643],[4321.02,-302.396,33.6833,191.952,-56.9259],[4254.38,-201.99,33.05,188.515,-55.8909],[4185.36,-102.102,32.4,184.99,-54.7785],[4112.11,-0.594573,31.7167,181.293,-53.5511],[4036.37,99.6109,31.0167,177.526,-52.2283],[3958.07,198.182,30.3,173.699,-50.8014],[3873.49,299.061,29.5333,169.652,-49.1883],[3784.35,399.215,28.7333,165.496,-47.4036],[3688.64,499.821,27.8833,161.177,-45.3868],[3586.22,599.725,26.9833,156.74,-43.1079],[3474.98,699.328,26.0167,152.167,-40.486],[3350.79,799.83,24.95,147.405,-37.3731],[3211.27,899.595,23.7667,142.546,-33.6392],[3047.91,999.205,22.4,137.609,-28.9541],[2841.43,1099.33,20.7,132.701,-22.5873],[2520.85,1199.9,18.1167,128.476,-11.9608],[2170.58,1236.91,15.3667,129.094,-0.00562831]]], + [48,1275.15,[[5137.33,-2002.93,42.95,238.268,-68.1136],[5095.72,-1900.37,42.4833,236.016,-67.6976],[5055.25,-1802.68,42.0333,233.821,-67.2856],[5012.95,-1702.66,41.5667,231.521,-66.8464],[4968.77,-1600.46,41.0833,229.113,-66.3783],[4925.76,-1503.15,40.6167,226.765,-65.9131],[4879.3,-1400.4,40.1167,224.225,-65.3995],[4834,-1302.58,39.6333,221.745,-64.8875],[4786.76,-1202.97,39.1333,219.157,-64.3411],[4737.52,-1101.75,38.6167,216.458,-63.7579],[4687.87,-1002.3,38.1,213.737,-63.1547],[4636.18,-901.519,37.5667,210.905,-62.5102],[4584.04,-802.679,37.0333,208.053,-61.8425],[4529.82,-702.811,36.4833,205.092,-61.1283],[4473.46,-602.136,35.9167,202.023,-60.3639],[4414.94,-500.888,35.3333,198.847,-59.5451],[4355.89,-402.098,34.75,195.657,-58.6922],[4292.92,-300.374,34.1333,192.274,-57.7514],[4229.37,-201.477,33.5167,188.885,-56.7681],[4161.79,-100.342,32.8667,185.31,-55.6829],[4093.58,-2.44072,32.2167,181.74,-54.5446],[4019.44,99.3199,31.5167,177.908,-53.2559],[3942.8,199.501,30.8,174.009,-51.8647],[3861.82,299.94,30.05,169.966,-50.3258],[3776.41,399.966,29.2667,165.799,-48.6222],[3686.45,498.861,28.45,161.534,-46.7344],[3588.14,599.545,27.5667,157.037,-44.556],[3483.14,698.725,26.6333,152.449,-42.0904],[3365.55,799.762,25.6,147.612,-39.1528],[3235.02,899.813,24.4667,142.665,-35.6674],[3085.26,999.285,23.1833,137.619,-31.3773],[2901.7,1099.51,21.6333,132.488,-25.7109],[2648.42,1199.87,19.5333,127.612,-17.2625],[2159.99,1275.15,15.6,126.533,-0.00479408]]], + [49,1313.21,[[5082.18,-2001.89,43.3333,238.621,-68.6149],[5042.87,-1902.47,42.8833,236.441,-68.2233],[5001.77,-1800.63,42.4167,234.156,-67.8061],[4960.33,-1700.08,41.95,231.845,-67.3771],[4918.55,-1600.85,41.4833,229.509,-66.9358],[4876.42,-1502.95,41.0167,227.149,-66.4816],[4832.44,-1402.99,40.5333,224.681,-65.9973],[4786.55,-1301.13,40.0333,222.101,-65.4805],[4740.28,-1200.87,39.5333,219.497,-64.947],[4693.62,-1102.24,39.0333,216.868,-64.3961],[4645,-1002.05,38.5167,214.129,-63.8077],[4594.38,-900.496,37.9833,211.277,-63.1789],[4543.33,-800.878,37.45,208.402,-62.5273],[4490.23,-700.197,36.9,205.416,-61.8302],[4436.67,-601.63,36.35,202.41,-61.1063],[4381.02,-502.319,35.7833,199.296,-60.3309],[4323.22,-402.498,35.2,196.073,-59.4997],[4263.26,-302.416,34.6,192.745,-58.608],[4201.07,-202.332,33.9833,189.314,-57.6502],[4136.63,-102.515,33.35,185.785,-56.6206],[4068.18,-0.748958,32.6833,182.071,-55.4832],[3997.36,99.993,32,178.271,-54.2569],[3924.13,199.391,31.3,174.395,-52.9331],[3846.68,299.333,30.5667,170.363,-51.4681],[3764.92,399.169,29.8,166.193,-49.8451],[3678.77,498.202,29,161.907,-48.0454],[3584.47,599.471,28.1333,157.363,-45.9651],[3483.67,699.667,27.2167,152.698,-43.6071],[3374.34,799.126,26.2333,147.896,-40.8856],[3252.49,898.932,25.15,142.904,-37.6441],[3112.02,999.889,23.9167,137.692,-33.6292],[2946.49,1099.98,22.4833,132.41,-28.5206],[2733.24,1199.74,20.6667,127.196,-21.3875],[2348.46,1299.98,17.4667,123.107,-7.44325],[2147.57,1313.21,15.8333,123.948,-0.0237196]]], + [50,1351.05,[[5023.9,-2002.26,43.7167,239.006,-69.1209],[4985.42,-1902.34,43.2667,236.818,-68.7388],[4946.63,-1803.59,42.8167,234.606,-68.3463],[4906.07,-1702.46,42.35,232.286,-67.928],[4865.17,-1602.64,41.8833,229.94,-67.4977],[4822.46,-1500.66,41.4,227.484,-67.0389],[4779.4,-1400.12,40.9167,225.003,-66.566],[4735.98,-1301.05,40.4333,222.495,-66.0785],[4690.68,-1200.13,39.9333,219.876,-65.5582],[4645.01,-1100.83,39.4333,217.231,-65.0208],[4598.96,-1003.17,38.9333,214.563,-64.4656],[4549.43,-900.839,38.4,211.691,-63.8527],[4499.47,-800.427,37.8667,208.796,-63.2174],[4449.09,-701.965,37.3333,205.878,-62.5587],[4396.69,-602.498,36.7833,202.847,-61.8536],[4342.24,-502.249,36.2167,199.704,-61.0982],[4285.69,-401.454,35.6333,196.449,-60.2882],[4227.02,-300.359,35.0333,193.086,-59.4188],[4167.83,-201.918,34.4333,189.71,-58.5107],[4104.79,-100.93,33.8,186.137,-57.5075],[4039.51,-0.450982,33.15,182.465,-56.4272],[3971.94,99.223,32.4833,178.702,-55.2626],[3902.04,197.783,31.8,174.856,-54.0055],[3826.33,299.433,31.0667,170.749,-52.5802],[3748.14,398.915,30.3167,166.585,-51.0354],[3663.93,499.962,29.5167,162.198,-49.2835],[3575.31,599.573,28.6833,157.71,-47.3365],[3480.42,698.774,27.8,153.069,-45.1269],[3375.45,799.688,26.8333,148.164,-42.525],[3261.98,898.587,25.8,143.172,-39.5177],[3132.33,998.925,24.6333,137.922,-35.8256],[2980.32,1099.79,23.2833,132.481,-31.1456],[2793.63,1199.59,21.65,127.027,-24.8998],[2519.85,1299.59,19.3,121.903,-14.915],[2133.3,1351.04,16.0667,121.34,-0.0637277]]], + [51,1388.61,[[4961.07,-2000.37,44.0833,239.342,-69.6178],[4924.81,-1903.67,43.65,237.228,-69.2589],[4885.44,-1800.75,43.1833,234.925,-68.8619],[4847.17,-1702.72,42.7333,232.678,-68.4685],[4807.16,-1602.35,42.2667,230.323,-68.0489],[4766.83,-1503.3,41.8,227.941,-67.6171],[4724.7,-1402.13,41.3167,225.448,-67.1564],[4682.23,-1302.42,40.8333,222.928,-66.6815],[4637.93,-1200.83,40.3333,220.295,-66.1745],[4593.26,-1100.85,39.8333,217.635,-65.6508],[4548.21,-1002.51,39.3333,214.95,-65.1097],[4501.28,-902.625,38.8167,212.15,-64.5313],[4452.43,-801.405,38.2833,209.235,-63.9127],[4403.15,-702.126,37.75,206.295,-63.2712],[4351.91,-601.809,37.2,203.24,-62.5843],[4298.66,-500.675,36.6333,200.069,-61.8483],[4244.94,-401.831,36.0667,196.878,-61.0819],[4189.18,-302.507,35.4833,193.576,-60.2595],[4129.7,-200.224,34.8667,190.068,-59.351],[4069.69,-100.774,34.25,186.548,-58.3999],[4007.51,-1.62815,33.6167,182.925,-57.3759],[3941.47,99.411,32.95,179.109,-56.2431],[3873.16,199.385,32.2667,175.202,-55.0196],[3802.53,297.973,31.5667,171.215,-53.6963],[3726.14,399.242,30.8167,166.969,-52.1946],[3647.3,498.031,30.05,162.673,-50.5632],[3560.76,599.903,29.2167,158.071,-48.6715],[3469.83,699.673,28.35,153.384,-46.5636],[3370.88,799.966,27.4167,148.483,-44.1213],[3263.71,899.064,26.4167,143.443,-41.2925],[3142.64,999.346,25.3,138.141,-37.8572],[3003.6,1099.63,24.0333,132.642,-33.589],[2836.63,1199.55,22.5333,127.015,-28.0114],[2612.14,1299.72,20.55,121.428,-19.805],[2115.2,1388.61,16.2833,118.725,-0.0476564]]], + [52,1425.88,[[4896.47,-2003.74,44.4667,239.792,-70.1331],[4859.65,-1902.82,44.0167,237.589,-69.7699],[4822.54,-1803.06,43.5667,235.36,-69.3969],[4783.73,-1700.87,43.1,233.022,-68.9992],[4746.01,-1603.56,42.65,230.741,-68.6049],[4705.16,-1500.41,42.1667,228.264,-68.169],[4665.39,-1402.17,41.7,225.845,-67.7355],[4623.87,-1301.86,41.2167,223.313,-67.2728],[4582,-1203.02,40.7333,220.755,-66.7955],[4538.34,-1102.35,40.2333,218.081,-66.2858],[4492.84,-1000.04,39.7167,215.29,-65.7411],[4448.44,-902.699,39.2167,212.563,-65.1958],[4400.68,-800.718,38.6833,209.628,-64.5935],[4352.51,-700.67,38.15,206.667,-63.9687],[4303.95,-602.585,37.6167,203.681,-63.3202],[4251.9,-500.55,37.05,200.485,-62.604],[4199.41,-400.795,36.4833,197.266,-61.858],[4144.91,-300.523,35.9,193.932,-61.0573],[4089.93,-202.74,35.3167,190.58,-60.2214],[4031.31,-102.113,34.7,187.021,-59.2971],[3970.57,-1.7471,34.0667,183.354,-58.3017],[3907.67,98.0744,33.4167,179.584,-57.2281],[3840.95,199.483,32.7333,175.62,-56.0391],[3771.96,299.556,32.0333,171.568,-54.7524],[3700.68,397.958,31.3167,167.438,-53.3578],[3623.71,498.618,30.55,163.054,-51.7732],[3542.6,598.5,29.75,158.533,-50.0098],[3455.57,698.77,28.9,153.811,-48.0036],[3362.48,798.263,28,148.931,-45.7192],[3259.68,898.999,27.0167,143.782,-43.0205],[3146.91,998.716,25.95,138.467,-39.836],[3018.54,1098.82,24.75,132.912,-35.9132],[2866.79,1199.18,23.35,127.142,-30.8609],[2674.22,1299.29,21.6,121.288,-23.8263],[2359.62,1399.69,18.8,115.96,-11.1556],[2095.32,1425.88,16.5,116.086,-0.0524415]]], + [53,1462.8,[[4826.02,-2001.16,44.8167,240.111,-70.6265],[4791.37,-1903.52,44.3833,237.983,-70.2857],[4755.1,-1803.27,43.9333,235.747,-69.9224],[4717.19,-1700.56,43.4667,233.4,-69.5351],[4680.32,-1602.74,43.0167,231.11,-69.1511],[4641.79,-1502.59,42.55,228.708,-68.7413],[4601.54,-1400.26,42.0667,226.193,-68.3041],[4562.37,-1302.83,41.6,223.737,-67.8691],[4521.47,-1203.37,41.1167,221.166,-67.4046],[4478.81,-1102.05,40.6167,218.478,-66.9084],[4435.8,-1002.35,40.1167,215.762,-66.3956],[4390.98,-901.058,39.6,212.928,-65.8473],[4345.78,-801.542,39.0833,210.066,-65.2794],[4298.74,-700.711,38.55,207.085,-64.6716],[4251.3,-601.833,38.0167,204.078,-64.0408],[4201.96,-501.942,37.4667,200.952,-63.3647],[4150.7,-401.261,36.9,197.706,-62.6395],[4097.47,-300.026,36.3167,194.342,-61.861],[4043.78,-201.269,35.7333,190.957,-61.048],[3988.09,-102.313,35.1333,187.458,-60.1735],[3928.78,-0.787038,34.5,183.749,-59.2059],[3868.95,97.6871,33.8667,180.03,-58.1894],[3805.4,197.999,33.2,176.11,-57.063],[3738.07,299.578,32.5,171.996,-55.8138],[3668.5,399.539,31.7833,167.797,-54.459],[3595,499.711,31.0333,163.427,-52.9527],[3517.51,599.415,30.25,158.905,-51.2757],[3434.27,699.882,29.4167,154.162,-49.3657],[3345.14,799.975,28.5333,149.235,-47.1881],[3250,898.47,27.6,144.177,-44.7024],[3143.52,998.674,26.5667,138.804,-41.7112],[3023.66,1099.1,25.4167,133.179,-38.0651],[2884.7,1199.48,24.1,127.319,-33.4554],[2715.26,1299.22,22.5167,121.311,-27.279],[2473.87,1399.63,20.3,115.342,-17.5389],[2073.65,1462.8,16.7167,113.423,-0.079861]]], + [54,1499.33,[[4752.46,-2000.17,45.1667,240.463,-71.1253],[4718.63,-1902.09,44.7333,238.328,-70.7934],[4683.21,-1801.37,44.2833,236.084,-70.4396],[4647.5,-1701.84,43.8333,233.813,-70.0761],[4611.51,-1603.5,43.3833,231.515,-69.7024],[4573.88,-1502.8,42.9167,229.104,-69.3037],[4535.95,-1403.43,42.45,226.666,-68.8932],[4496.34,-1301.92,41.9667,224.111,-68.455],[4456.4,-1201.88,41.4833,221.527,-68.0029],[4416.14,-1103.32,41,218.916,-67.5363],[4374.15,-1002.95,40.5,216.186,-67.0376],[4330.39,-900.958,39.9833,213.336,-66.5045],[4286.27,-800.735,39.4667,210.457,-65.9522],[4241.79,-702.312,38.95,207.551,-65.3798],[4195.48,-602.628,38.4167,204.523,-64.7668],[4147.33,-501.897,37.8667,201.374,-64.1098],[4097.3,-400.341,37.3,198.103,-63.4049],[4046.83,-301.08,36.7333,194.807,-62.67],[3994.44,-201.331,36.15,191.391,-61.8803],[3940.09,-101.345,35.55,187.857,-61.0308],[3883.74,-1.38251,34.9333,184.207,-60.1156],[3825.37,98.2824,34.3,180.444,-59.1286],[3763.37,199.861,33.6333,176.473,-58.0344],[3700.81,297.971,32.9667,172.5,-56.8796],[3632.96,399.513,32.25,168.234,-55.5655],[3562.88,499.144,31.5167,163.885,-54.137],[3488.93,598.613,30.75,159.371,-52.5458],[3409.4,699.215,29.9333,154.615,-50.7317],[3324.16,799.845,29.0667,149.652,-48.6612],[3233.1,899.305,28.15,144.528,-46.2944],[3132.7,999.503,27.15,139.129,-43.4876],[3021.04,1099.56,26.05,133.484,-40.107],[2894.36,1198.87,24.8167,127.622,-35.9246],[2739.98,1300,23.3333,121.406,-30.3173],[2539.15,1399.79,21.4333,115.151,-22.2187],[2048.33,1499.33,16.9167,110.751,-0.047163]]], + [55,1535.44,[[4675.79,-2000.84,45.5167,240.848,-71.629],[4642.77,-1902.31,45.0833,238.707,-71.3062],[4608.21,-1801.11,44.6333,236.456,-70.9621],[4573.36,-1701.1,44.1833,234.177,-70.6084],[4538.24,-1602.27,43.7333,231.871,-70.2449],[4501.52,-1501.06,43.2667,229.45,-69.857],[4464.5,-1401.18,42.8,227.001,-69.4576],[4427.19,-1302.63,42.3333,224.524,-69.0461],[4388.22,-1201.99,41.85,221.929,-68.6067],[4348.94,-1102.83,41.3667,219.306,-68.1531],[4307.98,-1001.84,40.8667,216.562,-67.6683],[4266.67,-902.469,40.3667,213.789,-67.1669],[4223.63,-801.525,39.85,210.893,-66.6304],[4180.24,-702.373,39.3333,207.969,-66.0744],[4135.08,-601.93,38.8,204.922,-65.4788],[4088.11,-500.407,38.25,201.75,-64.8403],[4040.74,-401.005,37.7,198.551,-64.1758],[3991.52,-300.844,37.1333,195.229,-63.4623],[3940.43,-200.158,36.55,191.783,-62.6953],[3888.9,-101.967,35.9667,188.315,-61.8935],[3833.96,-0.916473,35.35,184.628,-61.0054],[3777.04,99.8779,34.7167,180.823,-60.0472],[3719.62,197.6,34.0833,177.005,-59.039],[3657.11,299.541,33.4,172.878,-57.8911],[3594.05,397.799,32.7167,168.75,-56.6762],[3525.75,499.088,31.9833,164.33,-55.2922],[3455.26,598.16,31.2333,159.832,-53.7837],[3379.36,698.725,30.4333,155.075,-52.0625],[3297.92,799.704,29.5833,150.088,-50.096],[3210.84,899.93,28.6833,144.912,-47.8454],[3116.34,999.795,27.7167,139.511,-45.2177],[3012.59,1098.99,26.6667,133.886,-42.0951],[2894.34,1199.02,25.4833,127.935,-38.2128],[2754.38,1299.9,24.1,121.646,-33.1527],[2579.92,1399.76,22.4,115.189,-26.1394],[2308.07,1499.99,19.8,108.881,-13.8677],[2021.31,1535.44,17.1167,108.054,-0.0366515]]], + [56,1571.08,[[4595.99,-2003.24,45.8667,241.266,-72.1376],[4562.56,-1900.45,45.4167,239.036,-71.8118],[4530.11,-1802.56,44.9833,236.862,-71.4896],[4496.13,-1702.05,44.5333,234.576,-71.146],[4461.89,-1602.73,44.0833,232.263,-70.7928],[4426.09,-1501,43.6167,229.834,-70.4159],[4390,-1400.59,43.15,227.375,-70.0277],[4353.62,-1301.51,42.6833,224.888,-69.6278],[4315.63,-1200.31,42.2,222.282,-69.2007],[4277.33,-1100.59,41.7167,219.645,-68.7598],[4238.72,-1002.37,41.2333,216.98,-68.3045],[4198.45,-902.352,40.7333,214.193,-67.8176],[4156.5,-800.732,40.2167,211.282,-67.2966],[4114.2,-700.896,39.7,208.34,-66.7566],[4071.55,-602.87,39.1833,205.37,-66.1964],[4025.78,-500.54,38.6333,202.177,-65.5768],[3979.61,-400.322,38.0833,198.955,-64.9318],[3933.06,-302.249,37.5333,195.706,-64.26],[3883.27,-200.61,36.95,192.232,-63.5162],[3833.06,-101.454,36.3667,188.733,-62.7384],[3780.98,-2.0946,35.7667,185.111,-61.9006],[3725.52,99.8488,35.1333,181.267,-60.9718],[3669.58,198.732,34.5,177.405,-59.9941],[3610.18,299.466,33.8333,173.328,-58.9084],[3548.75,399.093,33.15,169.143,-57.7309],[3483.74,499.58,32.4333,164.757,-56.4199],[3416.61,598.101,31.7,160.283,-54.9914],[3344.25,698.46,30.9167,155.534,-53.3599],[3266.53,799.609,30.0833,150.534,-51.4942],[3184.92,898.569,29.2167,145.418,-49.3985],[3094.55,999.629,28.2667,139.941,-46.9024],[2996.83,1099.06,27.25,134.283,-43.9791],[2886.71,1199.1,26.1167,128.296,-40.3846],[2758.88,1299.62,24.8167,121.967,-35.7896],[2604.46,1399.24,23.2667,115.396,-29.6128],[2388.48,1499.72,21.1333,108.631,-19.8859],[1992.56,1571.08,17.3167,105.333,-0.0505161]]], + [57,1606.21,[[4511.83,-2003.57,46.2,241.635,-72.6393],[4479.26,-1900.33,45.75,239.399,-72.3228],[4447.64,-1802.01,45.3167,237.219,-72.0099],[4414.54,-1701.04,44.8667,234.926,-71.6761],[4381.17,-1601.26,44.4167,232.604,-71.333],[4347.54,-1502.67,43.9667,230.254,-70.9801],[4312.39,-1401.72,43.5,227.788,-70.6034],[4276.95,-1302.1,43.0333,225.291,-70.2152],[4239.94,-1200.33,42.55,222.674,-69.8007],[4202.63,-1100.04,42.0667,220.027,-69.3727],[4165.02,-1001.23,41.5833,217.349,-68.9307],[4125.8,-900.609,41.0833,214.547,-68.458],[4086.26,-801.625,40.5833,211.715,-67.9687],[4045.06,-701.09,40.0667,208.758,-67.4449],[4003.53,-602.359,39.55,205.77,-66.9015],[3960.3,-502.362,39.0167,202.655,-66.3189],[3915.35,-401.313,38.4667,199.411,-65.6938],[3870.02,-302.399,37.9167,196.139,-65.0425],[3822.93,-202.754,37.35,192.738,-64.3425],[3774.05,-102.617,36.7667,189.21,-63.5892],[3723.34,-2.23711,36.1667,185.555,-62.7775],[3670.78,98.1225,35.55,181.775,-61.9017],[3616.33,198.187,34.9167,177.872,-60.9553],[3559.96,297.669,34.2667,173.85,-59.9308],[3500.18,398.688,33.5833,169.611,-58.7914],[3438.39,498.325,32.8833,165.266,-57.5526],[3373.07,598.471,32.15,160.719,-56.1707],[3304.17,698.464,31.3833,155.987,-54.6259],[3230.07,799.61,30.5667,150.986,-52.8577],[3152.22,898.912,29.7167,145.847,-50.8704],[3067.43,999.073,28.8,140.411,-48.5432],[2975.55,1098.4,27.8167,134.746,-45.8133],[2871.68,1199.4,26.7167,128.677,-42.445],[2753.88,1299.75,25.4833,122.314,-38.2356],[2613.66,1400,24.0333,115.612,-32.6551],[2432.16,1499.6,22.1833,108.671,-24.5108],[2076.13,1599.84,18.6333,102.301,-6.20953],[1962.08,1606.21,17.5167,102.586,-0.0907867]]], + [58,1640.8,[[4423.39,-2001.84,46.5167,241.955,-73.1348],[4392.86,-1902,46.0833,239.796,-72.839],[4362.08,-1803.23,45.65,237.61,-72.5354],[4329.87,-1701.8,45.2,235.311,-72.2116],[4297.39,-1601.54,44.75,232.983,-71.8787],[4264.66,-1502.47,44.3,230.625,-71.5363],[4230.44,-1401.02,43.8333,228.15,-71.1708],[4195.94,-1300.89,43.3667,225.644,-70.7942],[4161.17,-1202.1,42.9,223.107,-70.406],[4124.86,-1101.22,42.4167,220.449,-69.9911],[4088.26,-1001.82,41.9333,217.76,-69.5626],[4050.09,-900.572,41.4333,214.946,-69.1043],[4011.61,-800.961,40.9333,212.1,-68.6299],[3972.82,-703.008,40.4333,209.223,-68.1386],[3931.1,-600.379,39.9,206.121,-67.595],[3890.35,-502.809,39.3833,203.085,-67.0479],[3846.61,-400.976,38.8333,199.821,-66.4422],[3802.51,-301.271,38.2833,196.525,-65.811],[3756.69,-200.802,37.7167,193.099,-65.1325],[3710.49,-102.659,37.15,189.644,-64.4235],[3661.17,-1.31494,36.55,185.958,-63.6374],[3611.42,97.3445,35.95,182.245,-62.8125],[3558.46,198.529,35.3167,178.303,-61.8965],[3503.63,299.173,34.6667,174.237,-60.9047],[3446.91,398.975,34,170.051,-59.8288],[3386.82,499.983,33.3,165.646,-58.63],[3324.75,599.318,32.5833,161.137,-57.3232],[3259.21,698.791,31.8333,156.43,-55.8619],[3188.66,799.765,31.0333,151.437,-54.188],[3114.47,899.232,30.2,146.287,-52.3059],[3035.09,998.203,29.3167,140.912,-50.1412],[2947.35,1098.77,28.35,135.168,-47.5517],[2851.06,1198.71,27.3,129.147,-44.4506],[2741.35,1299.54,26.1167,122.724,-40.5581],[2614.71,1399.06,24.7667,116.012,-35.5536],[2454.69,1499.6,23.0833,108.862,-28.4157],[2212.92,1599.77,20.5833,101.624,-16.0417],[1928.21,1640.8,17.7,99.8272,-0.0661659]]], + [59,1674.81,[[4331.91,-2001.95,46.8333,242.308,-73.6357],[4302.21,-1901.71,46.4,240.145,-73.3489],[4272.28,-1802.52,45.9667,237.953,-73.0545],[4240.95,-1700.65,45.5167,235.647,-72.7404],[4210.54,-1603.66,45.0833,233.399,-72.4297],[4177.53,-1500.44,44.6167,230.946,-72.0855],[4145.44,-1402.14,44.1667,228.551,-71.7439],[4111.9,-1301.48,43.7,226.037,-71.379],[4078.08,-1202.17,43.2333,223.491,-71.0028],[4042.78,-1100.74,42.75,220.823,-70.6008],[4007.19,-1000.78,42.2667,218.122,-70.1855],[3971.32,-902.327,41.7833,215.389,-69.7564],[3933.91,-802.075,41.2833,212.53,-69.2971],[3894.93,-700.216,40.7667,209.542,-68.8053],[3855.64,-600.146,40.25,206.52,-68.2949],[3816.02,-501.892,39.7333,203.467,-67.7651],[3774.8,-402.401,39.2,200.282,-67.1965],[3731.93,-301.888,38.65,196.966,-66.5859],[3687.4,-200.578,38.0833,193.516,-65.9292],[3642.49,-101.585,37.5167,190.035,-65.243],[3595.88,-2.13562,36.9333,186.421,-64.5036],[3547.53,97.5174,36.3333,182.676,-63.7058],[3496.07,199.762,35.7,178.696,-62.8197],[3444.15,298.937,35.0667,174.693,-61.8851],[3389.04,399.965,34.4,170.459,-60.8449],[3332.05,499.883,33.7167,166.105,-59.7138],[3273.16,598.364,33.0167,161.639,-58.4811],[3209.5,699.464,32.2667,156.857,-57.0701],[3143.84,798.019,31.5,151.987,-55.5221],[3071.8,899.566,30.6667,146.732,-53.7067],[2996.18,998.92,29.8,141.334,-51.657],[2913.95,1098.67,28.8667,135.631,-49.2457],[2823.47,1198.66,27.85,129.597,-46.3521],[2721.55,1299.28,26.7167,123.166,-42.7616],[2604.82,1399.22,25.4333,116.386,-38.1813],[2462.08,1499.77,23.8833,109.142,-31.8543],[2267.33,1599.55,21.8,101.615,-21.9387],[1892.71,1674.81,17.8833,97.0433,-0.0677642]]], + [60,1708.19,[[4236.25,-2000.08,47.1333,242.613,-74.1314],[4208.51,-1903.3,46.7167,240.528,-73.8642],[4179.43,-1803.69,46.2833,238.331,-73.5791],[4148.99,-1701.37,45.8333,236.019,-73.275],[4118.31,-1600.22,45.3833,233.678,-72.9623],[4087.38,-1500.25,44.9333,231.305,-72.6407],[4056.21,-1401.49,44.4833,228.903,-72.3099],[4023.62,-1300.35,44.0167,226.379,-71.9564],[3990.77,-1200.55,43.55,223.824,-71.5921],[3957.66,-1102.1,43.0833,221.238,-71.2163],[3923.1,-1001.57,42.6,218.527,-70.8145],[3888.25,-902.541,42.1167,215.783,-70.3992],[3851.92,-801.689,41.6167,212.911,-69.9547],[3815.29,-702.481,41.1167,210.006,-69.4943],[3777.13,-601.72,40.6,206.969,-69.0009],[3738.66,-502.767,40.0833,203.9,-68.4885],[3698.62,-402.547,39.55,200.697,-67.9387],[3656.99,-301.274,39,197.359,-67.3481],[3615.02,-202.144,38.45,193.989,-66.732],[3571.42,-102.283,37.8833,190.483,-66.0689],[3526.17,-1.93115,37.3,186.842,-65.3543],[3479.23,98.6599,36.7,183.066,-64.5831],[3430.57,199.227,36.0833,179.155,-63.7494],[3380.18,299.494,35.45,175.112,-62.8466],[3328.02,399.171,34.8,170.94,-61.8673],[3274.06,497.958,34.1333,166.643,-60.8028],[3216.91,597.871,33.4333,162.118,-59.614],[3156.51,698.29,32.7,157.374,-58.2835],[3092.8,798.553,31.9333,152.424,-56.7909],[3024.31,899.966,31.1167,147.177,-55.0749],[2952.36,999.525,30.2667,141.768,-53.1367],[2874.03,1099.94,29.35,136.023,-50.8534],[2789.17,1199.5,28.3667,130.005,-48.156],[2694.73,1299.28,27.2833,123.615,-44.8519],[2587.52,1398.75,26.0667,116.84,-40.6771],[2458.23,1499.63,24.6167,109.514,-34.9905],[2291.01,1599.96,22.7667,101.772,-26.5302],[1975.93,1699.83,19.35,94.2336,-7.73869],[1855.55,1708.19,18.0667,94.2341,-0.0984979]]], + [61,1740.92,[[4137.58,-2000.12,47.4333,242.951,-74.6328],[4110.66,-1902.97,47.0167,240.861,-74.3742],[4082.44,-1802.96,46.5833,238.659,-74.0982],[4052.9,-1700.23,46.1333,236.342,-73.8039],[4024.22,-1602.4,45.7,234.081,-73.5126],[3994.21,-1501.97,45.25,231.702,-73.2017],[3963.97,-1402.73,44.8,229.293,-72.8817],[3932.35,-1301.1,44.3333,226.762,-72.5399],[3900.47,-1200.79,43.8667,224.199,-72.1876],[3868.35,-1101.84,43.4,221.603,-71.8242],[3834.8,-1000.78,42.9167,218.882,-71.4355],[3800.99,-901.216,42.4333,216.126,-71.0338],[3766.91,-803.158,41.95,213.338,-70.6184],[3730.19,-700.031,41.4333,210.322,-70.1584],[3694.35,-601.92,40.9333,207.369,-69.6967],[3657.03,-502.312,40.4167,204.283,-69.2016],[3618.19,-401.41,39.8833,201.063,-68.6701],[3579.03,-302.484,39.35,197.807,-68.1168],[3538.32,-202.569,38.8,194.416,-67.5219],[3496.03,-101.891,38.2333,190.886,-66.8814],[3452.13,-0.69025,37.65,187.218,-66.1911],[3407.87,98.0012,37.0667,183.518,-65.4671],[3360.68,199.562,36.45,179.574,-64.6625],[3313.1,298.235,35.8333,175.602,-63.8145],[3262.52,399.067,35.1833,171.387,-62.87],[3210.2,499.049,34.5167,167.042,-61.8429],[3156.11,597.868,33.8333,162.571,-60.7235],[3097.55,699.73,33.1,157.763,-59.4404],[3037.13,799.356,32.35,152.846,-58.0323],[2973.46,898.422,31.5667,147.726,-56.4475],[2905.11,998.132,30.7333,142.315,-54.6202],[2830.61,1099.14,29.8333,136.54,-52.465],[2749.8,1199.8,28.8667,130.456,-49.915],[2661.15,1299.79,27.8167,124.044,-46.8352],[2561.63,1399.31,26.65,117.249,-42.9871],[2445.16,1499,25.3,109.971,-37.9053],[2298.11,1599.68,23.6167,102.102,-30.5262],[2076.17,1699.92,21.1167,93.8909,-17.4055],[1815.24,1740.91,18.2333,91.4106,-0.0587319]]], + [62,1772.94,[[4035.89,-2002.15,47.7333,243.324,-75.1396],[4008.74,-1900.74,47.3,241.146,-74.8795],[3981.38,-1800.36,46.8667,238.939,-74.6127],[3953.8,-1701.04,46.4333,236.701,-74.3386],[3926.01,-1602.8,46,234.435,-74.0572],[3896.92,-1501.93,45.55,232.05,-73.7566],[3867.6,-1402.25,45.1,229.633,-73.4474],[3836.95,-1300.16,44.6333,227.095,-73.1171],[3807.16,-1202.97,44.1833,224.615,-72.7889],[3776.03,-1103.49,43.7167,222.011,-72.438],[3743.52,-1001.9,43.2333,219.28,-72.0627],[3710.75,-901.782,42.75,216.515,-71.6749],[3677.73,-803.169,42.2667,213.715,-71.2737],[3643.29,-702.761,41.7667,210.784,-70.844],[3607.41,-600.746,41.25,207.719,-70.3835],[3571.23,-500.527,40.7333,204.618,-69.9052],[3534.77,-402.129,40.2167,201.481,-69.4082],[3496.83,-302.497,39.6833,198.207,-68.8742],[3457.38,-201.846,39.1333,194.795,-68.3],[3416.4,-100.402,38.5667,191.243,-67.6819],[3375.09,-1.28346,38,187.655,-67.0349],[3332.2,98.2853,37.4167,183.927,-66.3366],[3287.73,198.051,36.8167,180.059,-65.582],[3241.64,297.749,36.2,176.052,-64.7649],[3192.65,399.672,35.55,171.798,-63.8546],[3143.24,498.302,34.9,167.517,-62.8898],[3090.86,598.383,34.2167,162.995,-61.8116],[3035.44,699.317,33.5,158.236,-60.6041],[2978.24,798.263,32.7667,153.36,-59.2795],[2916.6,899.039,31.9833,148.157,-57.7548],[2851.76,998.616,31.1667,142.757,-56.0317],[2780.98,1099.92,30.2833,136.967,-53.9969],[2705.48,1199.61,29.35,130.943,-51.6307],[2622.44,1299.5,28.3333,124.537,-48.7681],[2528.93,1399.97,27.2,117.667,-45.1801],[2421.9,1499.67,25.9167,110.363,-40.5438],[2291.09,1599.86,24.3667,102.468,-34.0307],[2111.35,1699.67,22.2667,94.0502,-23.4931],[1773.37,1772.94,18.4,88.5612,-0.0477488]]], + [63,1804.24,[[3930.16,-2002.3,48.0167,243.649,-75.6421],[3903.88,-1900.51,47.5833,241.467,-75.391],[3878.41,-1803.62,47.1667,239.34,-75.1433],[3850.69,-1700.07,46.7167,237.012,-74.8686],[3823.78,-1601.44,46.2833,234.739,-74.5968],[3795.61,-1500.17,45.8333,232.348,-74.3066],[3767.22,-1400.08,45.3833,229.924,-74.0079],[3738.61,-1301.21,44.9333,227.469,-73.7005],[3709.78,-1203.55,44.4833,224.982,-73.3838],[3678.56,-1100.04,44,222.275,-73.0329],[3648.17,-1001.49,43.5333,219.629,-72.6832],[3616.45,-900.861,43.05,216.853,-72.3088],[3584.48,-801.732,42.5667,214.042,-71.9217],[3551.14,-700.785,42.0667,211.098,-71.507],[3517.53,-601.488,41.5667,208.119,-71.0771],[3482.52,-500.641,41.05,205.003,-70.616],[3447.23,-401.61,40.5333,201.85,-70.1367],[3410.51,-301.317,40,198.559,-69.6218],[3373.49,-203.016,39.4667,195.232,-69.0851],[3333.84,-100.788,38.9,191.658,-68.4895],[3293.86,-0.876157,38.3333,188.047,-67.8661],[3252.36,99.5173,37.75,184.292,-67.1932],[3210.53,197.381,37.1667,180.503,-66.4864],[3165.94,298.047,36.55,176.463,-65.6997],[3119.76,398.402,35.9167,172.28,-64.846],[3071.96,498.158,35.2667,167.958,-63.9178],[3021.29,599.436,34.5833,163.387,-62.8801],[2968.93,699.308,33.8833,158.684,-61.7452],[2913.61,799.664,33.15,153.743,-60.4708],[2855.26,899.839,32.3833,148.575,-59.0353],[2793.84,999.123,31.5833,143.194,-57.4127],[2727.99,1098.65,30.7333,137.513,-55.5332],[2656.32,1199,29.8167,131.456,-53.3048],[2578.71,1298.47,28.8333,125.083,-50.6516],[2491.04,1399.54,27.7333,118.173,-47.3166],[2391.7,1499.87,26.5,110.812,-43.0502],[2273.59,1599.97,25.05,102.888,-37.2195],[2119.57,1699.95,23.1833,94.3298,-28.2673],[1808.27,1799.95,19.4833,85.6593,-6.07523],[1729.96,1804.24,18.5667,85.6864,-0.0689143]]], + [64,1834.76,[[3820.5,-2000.57,48.2833,243.925,-76.141],[3796.07,-1902.35,47.8667,241.823,-75.9081],[3770.45,-1801.22,47.4333,239.606,-75.6597],[3744.64,-1701.13,47,237.359,-75.4046],[3718.62,-1602.11,46.5667,235.082,-75.1426],[3691.39,-1500.42,46.1167,232.684,-74.8628],[3664.97,-1403.62,45.6833,230.345,-74.5857],[3636.28,-1300.62,45.2167,227.792,-74.2785],[3608.41,-1202.54,44.7667,225.298,-73.9732],[3579.27,-1102.13,44.3,222.677,-73.6468],[3549.9,-1003.07,43.8333,220.022,-73.3099],[3519.24,-901.92,43.35,217.237,-72.9494],[3488.33,-802.261,42.8667,214.416,-72.5765],[3456.1,-700.759,42.3667,211.461,-72.177],[3423.62,-600.902,41.8667,208.468,-71.7628],[3390.87,-502.714,41.3667,205.44,-71.3332],[3356.77,-403.034,40.85,202.273,-70.8719],[3321.28,-302.063,40.3167,198.966,-70.3764],[3284.38,-200.017,39.7667,195.515,-69.8433],[3247.18,-100.114,39.2167,192.026,-69.2864],[3209.68,-2.38701,38.6667,188.499,-68.7042],[3169.58,98.8503,38.0833,184.72,-68.0571],[3129.16,197.567,37.5,180.904,-67.3772],[3086.07,299.143,36.8833,176.832,-66.6203],[3042.63,397.818,36.2667,172.725,-65.8209],[2996.45,498.637,35.6167,168.363,-64.9286],[2948.69,598.592,34.95,163.859,-63.9557],[2898.12,699.728,34.25,159.103,-62.8655],[2845.9,799.16,33.5333,154.214,-61.6694],[2790.77,898.695,32.7833,149.088,-60.3221],[2731.46,999.692,31.9833,143.623,-58.7653],[2669.13,1099.13,31.15,137.952,-56.997],[2601.19,1199.82,30.25,131.879,-54.8982],[2528.82,1298.43,29.3,125.564,-52.4415],[2446.77,1399.62,28.2333,118.649,-49.3454],[2354.83,1499.89,27.05,111.288,-45.4298],[2247.5,1599.76,25.6833,103.364,-40.1798],[2112.38,1699.77,23.9833,94.736,-32.4035],[1902.55,1799.82,21.3833,85.446,-17.68],[1683.62,1834.76,18.7167,82.7952,-0.0127245]]], + [65,1864.48,[[3707.93,-2000.96,48.55,244.238,-76.6459],[3684.34,-1902.4,48.1333,242.131,-76.4216],[3659.61,-1800.91,47.7,239.91,-76.1824],[3634.69,-1700.46,47.2667,237.658,-75.9367],[3609.57,-1601.07,46.8333,235.375,-75.6844],[3584.26,-1502.76,46.4,233.061,-75.425],[3557.77,-1401.83,45.95,230.626,-75.148],[3531.06,-1302.1,45.5,228.158,-74.8628],[3504.15,-1203.58,45.05,225.657,-74.5691],[3476.03,-1102.71,44.5833,223.028,-74.255],[3447.68,-1003.19,44.1167,220.365,-73.9308],[3418.08,-901.548,43.6333,217.571,-73.5838],[3388.25,-801.397,43.15,214.74,-73.225],[3358.18,-702.755,42.6667,211.872,-72.8536],[3326.82,-602.324,42.1667,208.869,-72.4554],[3294.16,-500.292,41.65,205.726,-72.0283],[3261.24,-400.063,41.1333,202.544,-71.5842],[3228.06,-301.665,40.6167,199.324,-71.1222],[3193.53,-202.04,40.0833,195.961,-70.6254],[3157.63,-101.406,39.5333,192.453,-70.0905],[3121.45,-2.94032,38.9833,188.906,-69.5312],[3082.75,99.089,38.4,185.103,-68.9094],[3043.75,198.606,37.8167,181.26,-68.256],[3003.3,298.306,37.2167,177.269,-67.5485],[2961.38,397.922,36.6,173.13,-66.781],[2916.83,499.745,35.95,168.73,-65.924],[2871.91,598.257,35.3,164.296,-65.0133],[2824.29,698.198,34.6167,159.606,-63.9928],[2773.92,798.964,33.9,154.661,-62.8461],[2720.76,899.91,33.15,149.468,-61.5536],[2665.94,998.264,32.3833,144.154,-60.1239],[2605.84,1099.54,31.55,138.388,-58.4306],[2542.77,1198.55,30.6833,132.425,-56.4964],[2473.01,1299.58,29.7333,125.964,-54.1456],[2397.65,1398.86,28.7167,119.184,-51.3237],[2311.56,1499.99,27.5667,111.764,-47.69],[2213.24,1599.8,26.2667,103.838,-42.9241],[2093.41,1699.29,24.7,95.2208,-36.0985],[1922.85,1799.99,22.5,85.6757,-24.2696],[1637.17,1864.47,18.8833,79.8701,-0.105906]]], + [66,1893.36,[[3592.46,-2003.49,48.8167,244.585,-77.1564],[3568.81,-1900.64,48.3833,242.391,-76.9322],[3545.89,-1802.72,47.9667,240.251,-76.711],[3521.87,-1701.9,47.5333,237.995,-76.4749],[3497.66,-1602.14,47.1,235.708,-76.2324],[3473.26,-1503.46,46.6667,233.389,-75.9831],[3447.72,-1402.13,46.2167,230.948,-75.7169],[3421.99,-1301.99,45.7667,228.473,-75.4427],[3396.05,-1203.06,45.3167,225.965,-75.1603],[3368.94,-1101.77,44.85,223.329,-74.8584],[3341.61,-1001.82,44.3833,220.658,-74.5468],[3314.07,-903.227,43.9167,217.951,-74.2249],[3285.32,-802.571,43.4333,215.111,-73.8803],[3255.34,-700.026,42.9333,212.134,-73.5111],[3226.13,-602.453,42.45,209.219,-73.1412],[3195.68,-503.144,41.95,206.165,-72.7444],[3163.96,-402.294,41.4333,202.971,-72.3184],[3130.95,-300.103,40.9,199.631,-71.8606],[3098.71,-202.986,40.3833,196.358,-71.3985],[3064.13,-101.669,39.8333,192.832,-70.8851],[3029.26,-2.5119,39.2833,189.265,-70.3483],[2993.05,97.3558,38.7167,185.549,-69.7688],[2955.47,197.693,38.1333,181.682,-69.1424],[2916.51,298.245,37.5333,177.664,-68.464],[2876.13,398.746,36.9167,173.493,-67.7278],[2834.32,498.917,36.2833,169.171,-66.9271],[2791.05,598.466,35.6333,164.698,-66.0544],[2745.18,699.508,34.95,159.961,-65.0761],[2697.8,799.118,34.25,155.079,-64.0027],[2647.74,899.178,33.5167,149.941,-62.7929],[2594.96,999.019,32.75,144.555,-61.4244],[2538.25,1099.93,31.9333,138.817,-59.836],[2478.7,1198.9,31.0833,132.864,-58.0215],[2413.92,1298.62,30.1667,126.497,-55.8547],[2342.58,1398.96,29.1667,119.655,-53.2056],[2263.37,1499,28.0667,112.325,-49.892],[2172.45,1599.36,26.8167,104.361,-45.5298],[2063.39,1699.74,25.3333,95.6514,-39.3796],[1919.49,1799.61,23.4,86.0951,-29.5136],[1586.62,1893.36,19.0167,76.9353,-0.000430786]]], + [67,1921.36,[[3472.34,-2000.27,49.05,244.801,-77.6561],[3450.45,-1901.07,48.6333,242.687,-77.449],[3428.4,-1802.83,48.2167,240.544,-77.2367],[3405.28,-1701.67,47.7833,238.283,-77.0101],[3381.99,-1601.56,47.35,235.991,-76.7772],[3358.51,-1502.53,46.9167,233.667,-76.5379],[3333.93,-1400.83,46.4667,231.22,-76.2823],[3309.17,-1300.33,46.0167,228.739,-76.0191],[3284.21,-1201.03,45.5667,226.224,-75.748],[3259.05,-1102.95,45.1167,223.675,-75.4686],[3232.76,-1002.56,44.65,220.996,-75.1697],[3205.31,-900.008,44.1667,218.184,-74.8498],[3178.6,-802.395,43.7,215.432,-74.5304],[3150.73,-702.769,43.2167,212.545,-74.1883],[3121.66,-601.309,42.7167,209.519,-73.8214],[3092.35,-501.501,42.2167,206.453,-73.4408],[3061.83,-400.129,41.7,203.244,-73.032],[3031.07,-300.575,41.1833,199.995,-72.6067],[3000.07,-202.866,40.6667,196.706,-72.1637],[2966.8,-100.912,40.1167,193.163,-71.6717],[2933.26,-1.11213,39.5667,189.576,-71.157],[2898.42,99.425,39,185.839,-70.6013],[2863.31,197.606,38.4333,182.059,-70.0181],[2825.83,298.956,37.8333,178.015,-69.3682],[2788.05,397.585,37.2333,173.928,-68.6825],[2747.84,498.697,36.6,169.573,-67.9164],[2706.24,599.222,35.95,165.063,-67.081],[2663.21,698.856,35.2833,160.399,-66.1677],[2617.65,799.632,34.5833,155.467,-65.1411],[2570.62,898.674,33.8667,150.39,-64.0107],[2519.89,999.925,33.1,144.936,-62.7026],[2467.6,1098.28,32.3167,139.353,-61.2477],[2410.38,1199.1,31.4667,133.302,-59.5163],[2349.25,1299.03,30.5667,126.93,-57.4857],[2283,1398.45,29.6,120.162,-55.0443],[2208.06,1499.96,28.5167,112.733,-51.9342],[2125.41,1598.71,27.3333,104.903,-48.0041],[2025.44,1700,25.9167,96.1151,-42.4242],[1900.51,1799.23,24.1667,86.5802,-33.9596],[1689.15,1899.85,21.25,75.89,-15.5768],[1535.96,1921.36,19.1667,73.9675,-0.0528091]]], + [68,1948.46,[[3350.29,-2003.26,49.3,245.138,-78.1701],[3329.27,-1903.74,48.8833,243.021,-77.9718],[3307.24,-1801.24,48.45,240.788,-77.7602],[3285.89,-1703.65,48.0333,238.611,-77.5514],[3263.52,-1603.19,47.6,236.315,-77.3284],[3240.97,-1503.8,47.1667,233.987,-77.0993],[3217.38,-1401.72,46.7167,231.535,-76.8544],[3193.59,-1300.84,46.2667,229.048,-76.6024],[3169.62,-1201.15,45.8167,226.527,-76.3427],[3145.46,-1102.69,45.3667,223.971,-76.0751],[3120.21,-1001.89,44.9,221.285,-75.7888],[3094.76,-902.436,44.4333,218.562,-75.4931],[3068.2,-800.881,43.95,215.703,-75.1764],[3041.42,-700.819,43.4667,212.806,-74.8486],[3014.44,-602.274,42.9833,209.87,-74.5091],[2986.31,-501.952,42.4833,206.793,-74.1447],[2957,-400.042,41.9667,203.572,-73.7535],[2928.42,-303.145,41.4667,200.415,-73.3598],[2897.69,-201.687,40.9333,197.006,-72.9224],[2866.71,-102.218,40.4,193.553,-72.4659],[2834.52,-1.7566,39.85,189.95,-71.9738],[2801.08,99.4694,39.2833,186.192,-71.4424],[2767.37,198.347,38.7167,182.391,-70.8846],[2732.39,297.642,38.1333,178.434,-70.2806],[2695.11,399.822,37.5167,174.206,-69.6067],[2657.53,499.094,36.9,169.934,-68.8933],[2618.62,597.974,36.2667,165.505,-68.1158],[2577.33,698.644,35.6,160.802,-67.2439],[2534.66,798.141,34.9167,155.942,-66.2875],[2489.53,898.418,34.2,150.812,-65.2092],[2441.9,998.825,33.45,145.414,-63.9888],[2391.74,1098.67,32.6667,139.757,-62.6016],[2337.92,1199.17,31.8333,133.735,-60.9831],[2280.37,1299.15,30.95,127.37,-59.0842],[2217.92,1399.06,30,120.579,-56.7989],[2149.38,1498.63,28.9667,113.307,-53.9789],[2071.27,1599.46,27.8,105.325,-50.2985],[1981.1,1699.43,26.4667,96.6587,-45.3158],[1869.45,1799.32,24.8333,87.0496,-37.8391],[1704.37,1899.75,22.45,76.1973,-23.7164],[1482.7,1948.46,19.3,70.9813,-0.0197537]]], + [69,1974.61,[[3223.82,-2000.54,49.5167,245.344,-78.6745],[3203.67,-1900.75,49.1,243.223,-78.4847],[3183.36,-1801.9,48.6833,241.072,-78.2901],[3162.08,-1700.11,48.25,238.803,-78.0823],[3141.46,-1603.22,47.8333,236.59,-77.8772],[3119.85,-1503.5,47.4,234.257,-77.6581],[3097.23,-1401.08,46.95,231.8,-77.424],[3075.28,-1303.58,46.5167,229.401,-77.192],[3052.3,-1203.49,46.0667,226.874,-76.9439],[3028.29,-1100.99,45.6,224.218,-76.6787],[3004.96,-1003.4,45.15,221.62,-76.4147],[2980.57,-903.529,44.6833,218.89,-76.1322],[2955.12,-801.527,44.2,216.023,-75.8297],[2929.46,-701.016,43.7167,213.117,-75.5165],[2903.6,-602.017,43.2333,210.172,-75.192],[2876.64,-501.219,42.7333,207.084,-74.8439],[2849.46,-402.088,42.2333,203.956,-74.4823],[2821.16,-301.431,41.7167,200.681,-74.0937],[2792.64,-202.608,41.2,197.364,-73.689],[2762.96,-102.549,40.6667,193.896,-73.2532],[2732.11,-1.47289,40.1167,190.275,-72.7833],[2701.02,97.4302,39.5667,186.61,-72.2912],[2667.78,199.916,38.9833,182.676,-71.7431],[2634.26,299.883,38.4,178.695,-71.1662],[2600.48,397.293,37.8167,174.671,-70.558],[2564.49,497.446,37.2,170.371,-69.8782],[2526.24,599.827,36.55,165.792,-69.1172],[2487.67,698.886,35.9,161.168,-68.3061],[2446.8,799.391,35.2167,156.266,-67.3941],[2404.58,898.426,34.5167,151.205,-66.39],[2359.99,997.858,33.7833,145.87,-65.2539],[2311.96,1099.11,33,140.144,-63.9335],[2261.46,1199.14,32.1833,134.16,-62.4239],[2207.4,1299.02,31.3167,127.814,-60.6522],[2148.68,1399.25,30.3833,121.014,-58.5184],[2084.14,1499.65,29.3667,113.691,-55.8815],[2012.6,1599.19,28.25,105.824,-52.5384],[1929.59,1699.53,26.9667,97.1385,-47.9964],[1829.38,1799.37,25.4333,87.538,-41.3603],[1691.6,1899.47,23.35,76.6589,-29.7464],[1428.11,1974.61,19.4333,67.9699,-0.0282602]]], + [70,1999.8,[[3094.66,-2000.11,49.7333,245.587,-79.1855],[3075.39,-1900.04,49.3167,243.462,-79.0043],[3055.97,-1800.92,48.9,241.308,-78.8185],[3036.4,-1702.74,48.4833,239.122,-78.6279],[3015.89,-1601.66,48.05,236.817,-78.4244],[2995.22,-1501.64,47.6167,234.479,-78.2152],[2974.39,-1402.69,47.1833,232.108,-78.0001],[2952.59,-1301.09,46.7333,229.611,-77.7702],[2930.62,-1200.69,46.2833,227.078,-77.5334],[2908.48,-1101.5,45.8333,224.51,-77.2894],[2886.17,-1003.54,45.3833,221.906,-77.0377],[2862.86,-903.279,44.9167,219.169,-76.7682],[2838.52,-800.869,44.4333,216.294,-76.4797],[2814.83,-703.4,43.9667,213.48,-76.1914],[2789.25,-600.529,43.4667,210.423,-75.8714],[2764.34,-502.644,42.9833,207.429,-75.5506],[2738.36,-403.018,42.4833,204.29,-75.2061],[2711.3,-301.843,41.9667,201.003,-74.8358],[2684.03,-202.497,41.45,197.673,-74.4501],[2655.66,-101.894,40.9167,194.19,-74.0347],[2626.17,-0.248995,40.3667,190.553,-73.5868],[2596.44,99.2278,39.8167,186.869,-73.1177],[2565.57,199.418,39.25,183.028,-72.6104],[2534.46,297.236,38.6833,179.14,-72.0771],[2501.25,398.187,38.0833,174.976,-71.4817],[2466.84,499.088,37.4667,170.648,-70.8342],[2431.22,599.659,36.8333,166.155,-70.1282],[2394.36,699.607,36.1833,161.497,-69.3563],[2356.26,798.626,35.5167,156.674,-68.5099],[2315.92,898.732,34.8167,151.568,-67.5553],[2273.31,999.297,34.0833,146.178,-66.4745],[2228.39,1099.65,33.3167,140.511,-65.2456],[2181.13,1199.07,32.5167,134.573,-63.8409],[2130.49,1298.68,31.6667,128.256,-62.1919],[2075.4,1399.07,30.75,121.46,-60.2046],[2015.8,1498.49,29.7667,114.227,-57.7897],[1948.51,1599.43,28.6667,106.269,-54.6737],[1872.37,1699.49,27.4333,97.6237,-50.5459],[1781.95,1799.13,25.9833,88.058,-44.6261],[1662.16,1899.75,24.0833,77.1053,-34.664],[1372.22,1999.8,19.5667,64.9338,-0.0843542]]], + [71,2023.97,[[2962.84,-2002.05,49.95,245.868,-79.7025],[2944.46,-1901.7,49.5333,243.741,-79.5302],[2925.94,-1802.28,49.1167,241.583,-79.3534],[2907.27,-1703.81,48.7,239.395,-79.172],[2887.71,-1602.43,48.2667,237.086,-78.9783],[2867.99,-1502.09,47.8333,234.744,-78.7792],[2848.13,-1402.83,47.4,232.368,-78.5745],[2827.33,-1300.91,46.95,229.866,-78.3557],[2806.38,-1200.17,46.5,227.328,-78.1303],[2785.26,-1100.65,46.05,224.753,-77.898],[2763.97,-1002.35,45.6,222.143,-77.6585],[2741.73,-901.731,45.1333,219.398,-77.402],[2719.32,-802.47,44.6667,216.615,-77.1369],[2695.92,-701.119,44.1833,213.692,-76.8529],[2672.34,-601.271,43.7,210.728,-76.5586],[2648.58,-502.95,43.2167,207.724,-76.2535],[2623.8,-402.867,42.7167,204.575,-75.9258],[2598,-301.217,42.2,201.276,-75.5737],[2571.99,-201.39,41.6833,197.933,-75.2068],[2544.93,-100.286,41.15,194.436,-74.8117],[2517.66,-1.18344,40.6167,190.894,-74.3988],[2489.32,98.8865,40.0667,187.194,-73.953],[2459.88,199.694,39.5,183.334,-73.471],[2430.21,298.136,38.9333,179.426,-72.9641],[2398.55,399.753,38.3333,175.238,-72.3982],[2366.63,498.639,37.7333,171.001,-71.7996],[2333.57,597.382,37.1167,166.599,-71.1474],[2298.43,698.244,36.4667,161.908,-70.4154],[2262.11,798.211,35.8,157.049,-69.6127],[2223.66,899.322,35.1,151.898,-68.7069],[2183.97,998.69,34.3833,146.582,-67.7051],[2142.09,1098.11,33.6333,140.979,-66.5664],[2097.06,1198.94,32.8333,134.971,-65.2362],[2049.75,1298.15,32,128.693,-63.7055],[1998.22,1398.52,31.1,121.914,-61.8598],[1942.4,1498.37,30.1333,114.667,-59.6154],[1880.26,1598.85,29.0667,106.765,-56.7621],[1809.71,1699.52,27.8667,98.0892,-52.974],[1727.6,1799.08,26.4833,88.5506,-47.6549],[1622.63,1899.33,24.7333,77.6514,-39.0464],[1450.43,1999.68,21.9,64.9506,-19.4914]]], + [72,2047.12,[[2827.68,-2002.33,50.15,246.102,-80.2189],[2810.19,-1901.72,49.7333,243.972,-80.0553],[2792.57,-1802.04,49.3167,241.812,-79.8874],[2774.82,-1703.31,48.9,239.62,-79.7152],[2756.21,-1601.64,48.4667,237.307,-79.5313],[2737.45,-1501.03,48.0333,234.96,-79.3422],[2718.55,-1401.49,47.6,232.58,-79.1478],[2699.51,-1303.03,47.1667,230.166,-78.9479],[2679.58,-1201.95,46.7167,227.623,-78.7341],[2659.49,-1102.08,46.2667,225.044,-78.5137],[2639.25,-1003.43,45.8167,222.428,-78.2865],[2618.1,-902.439,45.35,219.676,-78.0432],[2596.78,-802.805,44.8833,216.886,-77.7917],[2574.53,-701.064,44.4,213.956,-77.5222],[2552.1,-600.822,43.9167,210.984,-77.243],[2529.5,-502.102,43.4333,207.971,-76.9535],[2505.93,-401.605,42.9333,204.811,-76.6426],[2482.19,-302.785,42.4333,201.608,-76.3194],[2457.46,-202.46,41.9167,198.253,-75.9717],[2431.73,-100.837,41.3833,194.744,-75.5972],[2405.8,-1.21023,40.85,191.187,-75.2057],[2378.84,99.4059,40.3,187.471,-74.7831],[2351.68,197.833,39.75,183.707,-74.3399],[2322.64,299.798,39.1667,179.665,-73.8454],[2293.36,399.226,38.5833,175.572,-73.3239],[2263.02,498.807,37.9833,171.311,-72.7569],[2231.58,598.273,37.3667,166.881,-72.139],[2198.18,699.904,36.7167,162.159,-71.4454],[2164.51,798.191,36.0667,157.387,-70.704],[2128.83,897.858,35.3833,152.32,-69.8676],[2091.11,998.294,34.6667,146.957,-68.9206],[2051.31,1098.85,33.9167,141.299,-67.8434],[2009.39,1198.82,33.1333,135.351,-66.6119],[1964.43,1299.43,32.3,128.994,-65.1647],[1916.38,1399.5,31.4167,122.243,-63.4518],[1864.25,1499.47,30.4667,114.997,-61.3678],[1807.06,1599.06,29.4333,107.179,-58.7597],[1741.91,1699.85,28.2667,98.5116,-55.2907],[1666.77,1799.71,26.9333,88.9638,-50.4673],[1573.79,1899.37,25.3,78.1451,-42.932],[1435.56,1999.8,22.9,65.3745,-27.549]]], + [73,2069.2,[[2689.3,-2001,50.3333,246.291,-80.7352],[2672.71,-1900.16,49.9167,244.158,-80.5802],[2656,-1800.24,49.5,241.994,-80.4212],[2639.16,-1701.27,49.0833,239.798,-80.2582],[2622.19,-1603.26,48.6667,237.57,-80.0908],[2604.41,-1502.36,48.2333,235.221,-79.9119],[2586.49,-1402.52,47.8,232.836,-79.728],[2568.43,-1303.76,47.3667,230.418,-79.5389],[2549.53,-1202.37,46.9167,227.87,-79.3366],[2530.49,-1102.18,46.4667,225.286,-79.1281],[2511.3,-1003.22,46.0167,222.664,-78.9131],[2491.24,-901.89,45.55,219.906,-78.6829],[2471.02,-801.918,45.0833,217.109,-78.4449],[2450.65,-703.32,44.6167,214.273,-78.1988],[2429.39,-602.669,44.1333,211.294,-77.9349],[2407.23,-500.145,43.6333,208.168,-77.6517],[2385.63,-402.606,43.15,205.104,-77.3674],[2362.37,-300.071,42.6333,201.783,-77.0515],[2339.67,-202.57,42.1333,198.525,-76.7332],[2315.28,-100.471,41.6,195.003,-76.3791],[2290.7,-0.364882,41.0667,191.433,-76.009],[2265.92,97.7189,40.5333,187.815,-75.6217],[2239.39,199.683,39.9667,183.92,-75.19],[2212.65,299.295,39.4,179.975,-74.736],[2184.9,399.341,38.8167,175.862,-74.2434],[2156.14,499.565,38.2167,171.578,-73.7077],[2126.34,599.697,37.6,167.123,-73.1237],[2095.49,699.456,36.9667,162.493,-72.4854],[2063.58,798.546,36.3167,157.688,-71.7855],[2029.77,899.064,35.6333,152.583,-70.9958],[1994.85,998.094,34.9333,147.302,-70.1228],[1957.14,1099.71,34.1833,141.593,-69.1066],[1918.27,1198.7,33.4167,135.712,-67.9699],[1876.53,1298.64,32.6,129.41,-66.6343],[1831.87,1398.4,31.7333,122.698,-65.0534],[1783.36,1498.46,30.8,115.466,-63.1293],[1730.08,1598.63,29.7833,107.625,-60.7192],[1670.16,1699.27,28.65,98.9975,-57.5576],[1601.69,1798.98,27.3667,89.4961,-53.2114],[1517.3,1899.89,25.8,78.5733,-46.4533],[1401.12,1999.88,23.6667,65.857,-33.7379]]], + [74,2090.19,[[2548.45,-2002.13,50.5167,246.519,-81.2579],[2532.78,-1901.04,50.1,244.384,-81.1117],[2516.99,-1800.89,49.6833,242.217,-80.9617],[2501.08,-1701.67,49.2667,240.018,-80.8079],[2485.05,-1603.41,48.85,237.787,-80.65],[2468.24,-1502.24,48.4167,235.434,-80.4813],[2451.31,-1402.14,47.9833,233.045,-80.3079],[2434.25,-1303.11,47.55,230.623,-80.1294],[2416.39,-1201.44,47.1,228.07,-79.9386],[2398.39,-1100.97,46.65,225.48,-79.7419],[2380.26,-1001.71,46.2,222.852,-79.5391],[2361.3,-900.089,45.7333,220.088,-79.3219],[2342.88,-803.372,45.2833,217.384,-79.1056],[2322.95,-700.909,44.8,214.439,-78.8652],[2303.55,-603.395,44.3333,211.555,-78.625],[2282.61,-500.483,43.8333,208.421,-78.358],[2262.21,-402.564,43.35,205.349,-78.0901],[2240.94,-302.911,42.85,202.126,-77.8021],[2218.79,-201.718,42.3333,198.749,-77.4923],[2196.47,-102.361,41.8167,195.326,-77.1691],[2173.24,-1.75629,41.2833,191.743,-76.8207],[2149.11,99.8792,40.7333,187.998,-76.4444],[2124.78,199.336,40.1833,184.203,-76.0496],[2099.52,299.494,39.6167,180.24,-75.622],[2074.06,397.268,39.05,176.226,-75.1716],[2046.9,498.158,38.45,171.923,-74.6677],[2018.75,598.982,37.8333,167.443,-74.1184],[1989.62,699.458,37.2,162.787,-73.5178],[1959.48,799.291,36.55,157.951,-72.8591],[1928.33,898.173,35.8833,152.937,-72.1344],[1895.36,998.115,35.1833,147.616,-71.3136],[1860.54,1098.48,34.45,141.987,-70.38],[1823.84,1198.6,33.6833,136.051,-69.3125],[1784.43,1299.76,32.8667,129.682,-68.0571],[1743.07,1398.93,32.0167,123.018,-66.6002],[1698.1,1498.79,31.1,115.813,-64.8263],[1648.63,1599.22,30.1,107.967,-62.6026],[1593.74,1699.25,29,99.4101,-59.728],[1530.82,1799.47,27.75,89.8852,-55.7682],[1455.46,1899.54,26.2667,79.0871,-49.8012],[1355.37,1999.42,24.3167,66.4252,-39.0355]]], + [75,2110.06,[[2404.6,-2001.68,50.6833,246.702,-81.7809],[2389.85,-1900.38,50.2667,244.564,-81.6435],[2374.98,-1800.01,49.85,242.394,-81.5026],[2360.01,-1700.57,49.4333,240.192,-81.358],[2344.91,-1602.09,49.0167,237.958,-81.2096],[2329.1,-1500.69,48.5833,235.6,-81.051],[2313.16,-1400.35,48.15,233.207,-80.888],[2297.09,-1301.09,47.7167,230.78,-80.7202],[2280.91,-1202.92,47.2833,228.317,-80.5476],[2263.97,-1102.16,46.8333,225.723,-80.3629],[2246.9,-1002.6,46.3833,223.09,-80.1724],[2229.07,-900.664,45.9167,220.321,-79.9685],[2211.09,-800.072,45.45,217.51,-79.7577],[2192.97,-700.847,44.9833,214.66,-79.5396],[2174.72,-603.01,44.5167,211.768,-79.3139],[2155.67,-503.163,44.0333,208.732,-79.0717],[2135.81,-401.487,43.5333,205.545,-78.8116],[2115.79,-301.478,43.0333,202.313,-78.5411],[2095.62,-203.159,42.5333,199.035,-78.2596],[2073.94,-100.179,42,195.49,-77.9464],[2052.77,-2.30789,41.4833,192.007,-77.6294],[2030.06,99.8009,40.9333,188.249,-77.2763],[2007.17,199.736,40.3833,184.439,-76.9058],[1984.1,297.464,39.8333,180.578,-76.5166],[1959.44,398.668,39.25,176.428,-76.0817],[1934.6,497.314,38.6667,172.224,-75.6221],[1908.12,598.774,38.05,167.723,-75.1071],[1880.71,699.91,37.4167,163.041,-74.5438],[1853.09,797.891,36.7833,158.302,-73.9424],[1823.79,897.57,36.1167,153.256,-73.2636],[1792.77,998.357,35.4167,147.898,-72.4947],[1760.02,1099.62,34.6833,142.225,-71.6197],[1726.25,1198.54,33.9333,136.368,-70.6413],[1689.94,1298.8,33.1333,130.068,-69.491],[1651.05,1399.28,32.2833,123.329,-68.1285],[1609.54,1498.8,31.3833,116.162,-66.4999],[1563.8,1599.31,30.4,108.326,-64.457],[1512.98,1699.97,29.3167,99.7341,-61.8131],[1456.2,1798.93,28.1167,90.3548,-58.2708],[1387.78,1899.61,26.6833,79.5287,-52.913],[1300.2,1999.37,24.8667,66.9271,-43.6297]]], + [76,2128.78,[[2258.41,-2003.76,50.85,246.925,-82.3101],[2244.59,-1902.24,50.4333,244.785,-82.1816],[2230.67,-1801.64,50.0167,242.613,-82.0498],[2216.63,-1701.97,49.6,240.408,-81.9146],[2202.49,-1603.26,49.1833,238.172,-81.7758],[2187.68,-1501.61,48.75,235.811,-81.6275],[2172.74,-1401.03,48.3167,233.415,-81.475],[2157.69,-1301.52,47.8833,230.984,-81.3182],[2142.53,-1203.1,47.45,228.517,-81.1567],[2126.66,-1102.07,47,225.918,-80.984],[2110.67,-1002.25,46.55,223.281,-80.8058],[2093.96,-900.029,46.0833,220.506,-80.6151],[2077.72,-802.734,45.6333,217.791,-80.425],[2060.75,-703.175,45.1667,214.935,-80.2213],[2043.04,-601.52,44.6833,211.934,-80.0028],[2025.19,-501.372,44.2,208.889,-79.7762],[2007.2,-402.755,43.7167,205.801,-79.5411],[1988.45,-302.372,43.2167,202.56,-79.2883],[1968.93,-200.416,42.7,199.164,-79.0163],[1949.25,-100.289,42.1833,195.718,-78.7326],[1929.42,-2.02072,41.6667,192.225,-78.4364],[1908.79,97.4402,41.1333,188.569,-78.1165],[1887.35,197.873,40.5833,184.746,-77.7707],[1865.09,299.047,40.0167,180.753,-77.3961],[1842.65,397.848,39.45,176.705,-77.0014],[1818.71,499.835,38.85,172.362,-76.5596],[1794.59,599.08,38.25,167.961,-76.0913],[1769.59,698.182,37.6333,163.38,-75.5795],[1743.04,799.409,36.9833,158.49,-75.0033],[1715.6,899.735,36.3167,153.413,-74.3689],[1687.24,998.839,35.6333,148.147,-73.6679],[1657.27,1098.66,34.9167,142.564,-72.8704],[1625.65,1198.53,34.1667,136.66,-71.9585],[1591.66,1299.82,33.3667,130.303,-70.8857],[1555.96,1399.48,32.5333,123.628,-69.6403],[1517.81,1498.51,31.65,116.51,-68.152],[1475.73,1598.96,30.6833,108.697,-66.2844],[1429.63,1698.55,29.6333,100.224,-63.9063],[1377.25,1798.73,28.45,90.7638,-60.6687],[1315.46,1899.39,27.0667,79.9788,-55.8813],[1238.07,1999.26,25.35,67.4159,-47.7913]]], + [77,2146.34,[[2108.91,-2000.22,50.9833,247.019,-82.8354],[2096.54,-1902.58,50.5833,244.962,-82.7206],[2083.56,-1801.78,50.1667,242.787,-82.5979],[2070.48,-1701.91,49.75,240.58,-82.4721],[2057.3,-1602.99,49.3333,238.34,-82.3429],[2043.48,-1501.14,48.9,235.976,-82.2048],[2029.56,-1400.34,48.4667,233.577,-82.0629],[2015.54,-1300.61,48.0333,231.142,-81.9169],[2001.4,-1201.97,47.6,228.671,-81.7666],[1986.61,-1100.7,47.15,226.067,-81.6058],[1971.7,-1000.65,46.7,223.425,-81.4399],[1956.68,-901.822,46.25,220.744,-81.2688],[1940.99,-800.651,45.7833,217.923,-81.0854],[1925.17,-700.842,45.3167,215.06,-80.8957],[1909.23,-602.415,44.85,212.156,-80.6994],[1892.6,-501.951,44.3667,209.105,-80.4886],[1875.83,-403.014,43.8833,206.009,-80.27],[1858.36,-302.297,43.3833,202.761,-80.0349],[1840.75,-203.265,42.8833,199.466,-79.7902],[1822.42,-102.727,42.3667,196.012,-79.5266],[1803.34,-0.890536,41.8333,192.395,-79.2424],[1784.12,98.9407,41.3,188.727,-78.9448],[1764.14,199.759,40.75,184.891,-78.623],[1744,298.38,40.2,181.001,-78.2849],[1723.1,397.656,39.6333,176.939,-77.9181],[1701.41,497.34,39.05,172.7,-77.5193],[1678.31,599.909,38.4333,168.157,-77.0722],[1655.02,699.542,37.8167,163.554,-76.5964],[1630.92,798.767,37.1833,158.765,-76.0748],[1605.35,899.768,36.5167,153.661,-75.4858],[1578.93,999.57,35.8333,148.363,-74.8346],[1551.66,1097.84,35.1333,142.874,-74.1116],[1522.21,1198.6,34.3833,136.927,-73.2657],[1491.2,1298.77,33.6,130.651,-72.2917],[1457.95,1399.55,32.7667,123.914,-71.1376],[1422.42,1499.78,31.8833,116.719,-69.7571],[1383.9,1599.88,30.9333,108.942,-68.0545],[1341.66,1699.56,29.9,100.472,-65.8855],[1294.26,1799.05,28.75,91.0954,-62.9741],[1238.82,1899.09,27.4167,80.4114,-58.7185],[1169.6,1999.76,25.7667,67.7945,-51.5668]]], + [78,2162.7,[[1957.79,-2003.36,51.1333,247.239,-83.3716],[1945.86,-1901.46,50.7167,245.094,-83.261],[1933.83,-1800.49,50.3,242.917,-83.1474],[1921.71,-1700.45,49.8833,240.707,-83.0309],[1909.49,-1601.35,49.4667,238.464,-82.9113],[1897.19,-1503.21,49.05,236.188,-82.7885],[1884.29,-1402.18,48.6167,233.786,-82.6572],[1871.3,-1302.22,48.1833,231.348,-82.5222],[1858.2,-1203.35,47.75,228.874,-82.3833],[1844.5,-1101.84,47.3,226.267,-82.2345],[1830.69,-1001.54,46.85,223.62,-82.0812],[1816.78,-902.463,46.4,220.935,-81.9229],[1802.24,-801.031,45.9333,218.109,-81.7533],[1787.58,-700.958,45.4667,215.241,-81.5779],[1772.82,-602.264,45,212.331,-81.3963],[1757.41,-501.52,44.5167,209.274,-81.2014],[1741.88,-402.301,44.0333,206.171,-80.9991],[1725.69,-301.29,43.5333,202.915,-80.7817],[1709.37,-201.96,43.0333,199.611,-80.5553],[1692.39,-101.112,42.5167,196.148,-80.3115],[1675.27,-2.11442,42,192.634,-80.0569],[1657.46,98.1063,41.4667,188.956,-79.7819],[1638.96,199.331,40.9167,185.108,-79.4846],[1620.31,298.361,40.3667,181.206,-79.1722],[1600.94,398.063,39.8,177.129,-78.8331],[1580.86,498.191,39.2167,172.874,-78.4645],[1560.04,598.485,38.6167,168.437,-78.0627],[1538.47,698.676,38,163.815,-77.6235],[1516.15,798.48,37.3667,159.004,-77.1419],[1493.06,897.598,36.7167,154.002,-76.6121],[1468.6,998.128,36.0333,148.677,-76.0117],[1442.74,1099.46,35.3167,143.023,-75.3285],[1416.08,1198.73,34.5833,137.168,-74.5646],[1387.37,1299.75,33.8,130.845,-73.6657],[1357.2,1399.49,32.9833,124.186,-72.6223],[1324.93,1498.98,32.1167,117.057,-71.3747],[1289.89,1598.72,31.1833,109.329,-69.8364],[1251.43,1698.49,30.1667,100.879,-67.8762],[1207.55,1800,29.0167,91.3361,-65.1997],[1158.18,1898.86,27.7333,80.8053,-61.4383],[1096.73,1999.54,26.15,68.2411,-55.1654]]], + [79,2177.84,[[1803.67,-2000.92,51.25,247.33,-83.905],[1793.13,-1902.94,50.85,245.269,-83.8073],[1782.06,-1801.79,50.4333,243.09,-83.703],[1770.91,-1701.56,50.0167,240.878,-83.596],[1759.68,-1602.27,49.6,238.633,-83.4862],[1747.9,-1500.03,49.1667,236.263,-83.3688],[1736.49,-1402.72,48.75,233.95,-83.2528],[1724.54,-1302.56,48.3167,231.509,-83.1287],[1712.49,-1203.48,47.8833,229.031,-83.0011],[1699.89,-1101.76,47.4333,226.42,-82.8644],[1687.18,-1001.24,46.9833,223.77,-82.7235],[1674.38,-901.951,46.5333,221.08,-82.5781],[1661.01,-800.292,46.0667,218.249,-82.4223],[1648.01,-703.548,45.6167,215.479,-82.267],[1633.94,-601.063,45.1333,212.46,-82.0943],[1619.76,-500.078,44.65,209.396,-81.9152],[1605.48,-400.614,44.1667,206.286,-81.7293],[1591.08,-302.696,43.6833,203.132,-81.5363],[1576.08,-203.051,43.1833,199.821,-81.3285],[1560.45,-101.875,42.6667,196.35,-81.1047],[1544.71,-2.54628,42.15,192.828,-80.871],[1528.33,98.02,41.6167,189.14,-80.6187],[1511.31,199.604,41.0667,185.281,-80.3457],[1494.16,298.998,40.5167,181.367,-80.0588],[1476.35,399.078,39.95,177.276,-79.7476],[1457.88,499.598,39.3667,173.006,-79.409],[1439.26,597.54,38.7833,168.676,-79.0505],[1419.43,698.234,38.1667,164.036,-78.6477],[1398.9,798.558,37.5333,159.205,-78.206],[1377.67,898.217,36.8833,154.179,-77.7199],[1355.17,999.32,36.2,148.827,-77.1691],[1331.95,1098.93,35.5,143.273,-76.557],[1307.43,1198.93,34.7667,137.383,-75.857],[1281.59,1298.63,34,131.152,-75.0513],[1253.86,1399.31,33.1833,124.442,-74.0962],[1224.19,1499.82,32.3167,117.25,-72.9535],[1192.56,1598.92,31.4,109.581,-71.57],[1157.77,1698.46,30.4,101.166,-69.8068],[1118.62,1798.88,29.2833,91.7535,-67.436],[1073.84,1898.87,28.0167,81.1406,-64.0545],[1019.16,1999.81,26.4833,68.5885,-58.5267]]], + [80,2191.74,[[1647.64,-2001.11,51.3667,247.464,-84.4444],[1638.02,-1902.99,50.9667,245.401,-84.3554],[1627.93,-1801.67,50.55,243.219,-84.2604],[1617.76,-1701.29,50.1333,241.005,-84.1629],[1607.51,-1601.84,49.7167,238.757,-84.0627],[1597.18,-1503.36,49.3,236.476,-83.9599],[1586.36,-1401.96,48.8667,234.069,-83.85],[1575.45,-1301.63,48.4333,231.624,-83.737],[1564.46,-1202.38,48,229.144,-83.6206],[1552.96,-1100.48,47.55,226.529,-83.4961],[1541.8,-1003.48,47.1167,223.973,-83.3725],[1529.69,-900.299,46.65,221.18,-83.2351],[1517.93,-802.061,46.2,218.446,-83.0983],[1505.63,-701.515,45.7333,215.568,-82.9515],[1493.24,-602.342,45.2667,212.648,-82.7996],[1480.31,-501.099,44.7833,209.579,-82.6365],[1467.28,-401.375,44.3,206.464,-82.4673],[1454.15,-303.194,43.8167,203.303,-82.2915],[1440.47,-203.275,43.3167,199.986,-82.1023],[1426.22,-101.813,42.8,196.507,-81.8986],[1411.85,-2.19408,42.2833,192.977,-81.6857],[1396.92,98.6739,41.75,189.279,-81.4559],[1381.86,197.516,41.2167,185.528,-81.215],[1366.22,297.294,40.6667,181.604,-80.9541],[1349.98,397.774,40.1,177.502,-80.671],[1333.13,498.71,39.5167,173.219,-80.363],[1315.66,599.844,38.9167,168.75,-80.0273],[1298.07,698.213,38.3167,164.218,-79.6704],[1279.35,799.002,37.6833,159.368,-79.2684],[1259.98,899.142,37.0333,154.321,-78.826],[1239.97,998.323,36.3667,149.075,-78.3372],[1218.79,1098.56,35.6667,143.494,-77.7809],[1196.44,1199.22,34.9333,137.571,-77.1445],[1172.88,1299.62,34.1667,131.302,-76.4116],[1148.11,1399.03,33.3667,124.683,-75.5612],[1121.58,1498.58,32.5167,117.573,-74.5443],[1092.74,1598.81,31.6,109.833,-73.2895],[1061.04,1699.59,30.6,101.324,-71.6884],[1025.88,1799.97,29.5,91.9237,-69.5669],[986.135,1899.26,28.2667,81.4018,-66.5815],[937.939,1999.84,26.7833,68.9328,-61.7503]]], + [81,2204.39,[[1489.76,-2003.96,51.4833,247.64,-84.9892],[1480.72,-1901.6,51.0667,245.489,-84.9056],[1471.6,-1800.16,50.65,243.305,-84.8198],[1462.78,-1703.65,50.25,241.178,-84.7353],[1453.15,-1600.07,49.8167,238.838,-84.6414],[1443.83,-1501.45,49.4,236.554,-84.5486],[1434.43,-1403.8,48.9833,234.237,-84.4533],[1424.58,-1303.29,48.55,231.79,-84.3514],[1414.28,-1200.05,48.1,229.211,-84.2424],[1404.28,-1101.76,47.6667,226.689,-84.1342],[1393.81,-1000.86,47.2167,224.032,-84.0184],[1383.27,-901.188,46.7667,221.334,-83.8989],[1372.64,-802.751,46.3167,218.597,-83.7755],[1361.54,-701.996,45.85,215.715,-83.6432],[1350.36,-602.612,45.3833,212.791,-83.5062],[1338.68,-501.148,44.9,209.717,-83.3592],[1326.91,-401.201,44.4167,206.596,-83.2066],[1315.06,-302.795,43.9333,203.43,-83.0481],[1302.7,-202.641,43.4333,200.106,-82.8775],[1289.84,-100.933,42.9167,196.62,-82.6937],[1276.87,-1.06671,42.4,193.081,-82.5017],[1263.8,96.9296,41.8833,189.492,-82.301],[1249.79,199.162,41.3333,185.614,-82.0771],[1235.66,299.211,40.7833,181.679,-81.8417],[1221,399.972,40.2167,177.565,-81.5863],[1206.22,498.344,39.65,173.392,-81.3166],[1190.45,599.857,39.05,168.909,-81.014],[1174.57,698.61,38.45,164.362,-80.6924],[1157.67,799.807,37.8167,159.495,-80.3302],[1140.64,897.834,37.1833,154.559,-79.9419],[1122.12,999.988,36.5,149.159,-79.4906],[1103.46,1098.34,35.8167,143.686,-79.0013],[1083.28,1199.59,35.0833,137.733,-78.4283],[1062.48,1298.47,34.3333,131.566,-77.7833],[1040.12,1398.65,33.5333,124.906,-77.0188],[1016.18,1499.03,32.6833,117.746,-76.104],[990.631,1598.39,31.7833,110.084,-74.9964],[962.497,1698.68,30.8,101.635,-73.5833],[931.255,1799.04,29.7167,92.2642,-71.711],[895.885,1898.88,28.5,81.7194,-69.0744],[853.386,1999.8,27.05,69.2513,-64.8515]]], + [82,2215.75,[[1329.45,-2001.25,51.5667,247.688,-85.5328],[1321.71,-1902.88,51.1667,245.621,-85.4613],[1313.58,-1801.3,50.75,243.436,-85.3848],[1305.39,-1700.64,50.3333,241.218,-85.3065],[1297.13,-1600.92,49.9167,238.966,-85.226],[1288.81,-1502.16,49.5,236.68,-85.1434],[1280.1,-1400.47,49.0667,234.267,-85.055],[1271.66,-1303.7,48.65,231.912,-84.9677],[1262.47,-1200.3,48.2,229.33,-84.8706],[1253.55,-1101.85,47.7667,226.806,-84.7742],[1244.22,-1000.8,47.3167,224.145,-84.6711],[1234.82,-900.957,46.8667,221.444,-84.5646],[1225.34,-802.354,46.4167,218.703,-84.4547],[1215.44,-701.424,45.95,215.818,-84.3368],[1205.47,-601.865,45.4833,212.889,-84.2148],[1195.06,-500.217,45,209.81,-84.0838],[1184.57,-400.085,44.5167,206.684,-83.9478],[1174,-301.491,44.0333,203.512,-83.8066],[1162.98,-201.141,43.5333,200.181,-83.6546],[1151.88,-102.488,43.0333,196.801,-83.4962],[1140.31,-2.35663,42.5167,193.257,-83.3254],[1128.29,99.0464,41.9833,189.544,-83.1409],[1116.17,198.429,41.45,185.775,-82.9476],[1103.58,298.769,40.9,181.831,-82.738],[1090.51,399.834,40.3333,177.708,-82.5107],[1077.33,498.512,39.7667,173.524,-82.2706],[1063.67,597.561,39.1833,169.155,-82.009],[1049.11,699.436,38.5667,164.468,-81.715],[1034.44,798.353,37.95,159.714,-81.4012],[1018.86,899.366,37.3,154.631,-81.0466],[1002.76,999.451,36.6333,149.343,-80.6548],[986.126,1098.28,35.95,143.847,-80.2197],[968.547,1197.79,35.2333,138.005,-79.7221],[949.596,1299.48,34.4667,131.67,-79.136],[930.083,1398.2,33.6833,125.112,-78.4704],[908.745,1499.32,32.8333,117.907,-77.6576],[885.975,1599.48,31.9333,110.188,-76.6727],[861.327,1699.01,30.9667,101.81,-75.438],[833.915,1799.03,29.9,92.486,-73.8021],[802.832,1899.05,28.7,81.9428,-71.497],[765.839,1999.84,27.2833,69.5249,-67.8465]]], + [83,2225.82,[[1167.59,-2001.27,51.65,247.78,-86.0819],[1160.8,-1902.78,51.25,245.712,-86.0191],[1153.66,-1801.09,50.8333,243.525,-85.9521],[1146.47,-1700.32,50.4167,241.305,-85.8833],[1139.23,-1600.49,50,239.051,-85.8127],[1131.93,-1501.61,49.5833,236.763,-85.7403],[1124.58,-1403.7,49.1667,234.441,-85.6658],[1116.87,-1302.91,48.7333,231.99,-85.5862],[1109.11,-1203.2,48.3,229.502,-85.5042],[1100.98,-1100.81,47.85,226.878,-85.4166],[1093.1,-1003.35,47.4167,224.314,-85.3294],[1084.85,-903.332,46.9667,221.611,-85.2361],[1076.23,-800.914,46.5,218.765,-85.1362],[1067.85,-703.431,46.05,215.98,-85.0366],[1058.78,-600.145,45.5667,212.942,-84.9258],[1049.96,-501.835,45.1,209.965,-84.815],[1040.76,-401.501,44.6167,206.836,-84.6958],[1031.48,-302.704,44.1333,203.66,-84.5721],[1021.81,-202.142,43.6333,200.325,-84.4389],[1011.75,-100.008,43.1167,196.826,-84.2953],[1001.93,-2.91841,42.6167,193.39,-84.1504],[991.377,98.7183,42.0833,189.67,-83.9888],[980.744,198.337,41.55,185.895,-83.8193],[969.695,298.923,41,181.943,-83.6358],[958.562,397.297,40.45,177.933,-83.4425],[946.664,499.179,39.8667,173.617,-83.226],[934.674,598.496,39.2833,169.236,-82.9967],[922.247,697.934,38.6833,164.665,-82.7461],[909.029,799.862,38.05,159.768,-82.4638],[895.709,898.627,37.4167,154.8,-82.1611],[881.58,999.118,36.75,149.495,-81.8181],[866.987,1098.37,36.0667,143.98,-81.4371],[851.566,1198.33,35.35,138.115,-81.0013],[835.303,1298.32,34.6,131.891,-80.4996],[817.82,1399.71,33.8,125.161,-79.9045],[799.468,1499.44,32.9667,118.058,-79.2065],[779.864,1598.51,32.0833,110.434,-78.3616],[758.245,1698.96,31.1167,101.993,-77.283],[734.202,1799.99,30.05,92.5826,-75.8522],[707.318,1899.86,28.8667,82.063,-73.8637],[676.023,1998.95,27.5,69.8865,-70.7966]]], + [84,2234.59,[[1004.28,-2003.98,51.7333,247.915,-86.6355],[998.196,-1901.29,51.3167,245.76,-86.5793],[992.31,-1803.57,50.9167,243.659,-86.524],[986.132,-1702.67,50.5,241.439,-86.465],[979.906,-1602.72,50.0833,239.184,-86.4045],[973.634,-1503.71,49.6667,236.895,-86.3422],[967.06,-1401.77,49.2333,234.478,-86.2757],[960.436,-1300.89,48.8,232.025,-86.2073],[953.761,-1201.09,48.3667,229.534,-86.1369],[947.035,-1102.38,47.9333,227.005,-86.0643],[939.998,-1001.04,47.4833,224.339,-85.9867],[932.906,-900.927,47.0333,221.633,-85.9065],[925.761,-802.044,46.5833,218.886,-85.8237],[918.294,-700.822,46.1167,215.993,-85.735],[910.771,-600.967,45.65,213.057,-85.6431],[903.19,-502.5,45.1833,210.077,-85.5479],[895.279,-402.003,44.7,206.944,-85.4456],[887.307,-303.04,44.2167,203.764,-85.3394],[878.998,-202.305,43.7167,200.425,-85.225],[870.626,-103.263,43.2167,197.035,-85.1059],[861.908,-2.72537,42.7,193.48,-84.9774],[852.84,99.101,42.1667,189.754,-84.8386],[843.702,198.911,41.6333,185.972,-84.6931],[834.206,299.697,41.0833,182.013,-84.5354],[824.638,398.272,40.5333,177.995,-84.3695],[814.705,497.487,39.9667,173.794,-84.189],[804.108,599.903,39.3667,169.279,-83.9866],[793.428,699.566,38.7667,164.696,-83.7713],[782.367,799.086,38.15,159.917,-83.5353],[770.921,898.176,37.5167,154.936,-83.2757],[758.781,999.014,36.85,149.617,-82.9814],[746.242,1098.63,36.1667,144.084,-82.6545],[732.99,1198.96,35.45,138.199,-82.2806],[719.015,1299.36,34.7,131.951,-81.85],[704.306,1399.11,33.9167,125.333,-81.3502],[688.539,1499.41,33.0833,118.196,-80.7521],[671.696,1599.09,32.2,110.53,-80.0276],[653.443,1698.54,31.25,102.181,-79.1194],[633.111,1798.98,30.2,92.8462,-77.9152],[610.345,1898.72,29.0333,82.3722,-76.2424],[583.466,1999.43,27.6667,70.0289,-73.6237]]], + [85,2242.03,[[839.195,-2001.19,51.7833,247.924,-87.1891],[834.314,-1902.54,51.3833,245.854,-87.144],[829.191,-1800.66,50.9667,243.664,-87.0961],[824.236,-1703.73,50.5667,241.531,-87.0487],[819.035,-1603.68,50.15,239.275,-86.9981],[813.585,-1500.63,49.7167,236.893,-86.9441],[808.304,-1402.53,49.3,234.567,-86.8907],[802.77,-1301.55,48.8667,232.112,-86.8336],[797.194,-1201.64,48.4333,229.619,-86.7748],[791.576,-1102.82,48,227.089,-86.7142],[785.697,-1001.38,47.55,224.421,-86.6493],[779.772,-901.15,47.1,221.713,-86.5825],[773.803,-802.154,46.65,218.963,-86.5133],[767.566,-700.812,46.1833,216.069,-86.4393],[761.282,-600.837,45.7167,213.13,-86.3626],[754.949,-502.249,45.25,210.147,-86.2831],[748.34,-401.625,44.7667,207.01,-86.1977],[741.681,-302.535,44.2833,203.826,-86.1091],[734.739,-201.666,43.7833,200.483,-86.0135],[727.745,-102.489,43.2833,197.089,-85.9141],[720.462,-1.8105,42.7667,193.529,-85.8068],[713.124,97.0061,42.25,189.915,-85.6946],[705.492,197.028,41.7167,186.128,-85.5733],[697.561,298.033,41.1667,182.165,-85.4418],[689.327,399.79,40.6,178.018,-85.2991],[681.029,499.166,40.0333,173.809,-85.1484],[672.422,598.941,39.45,169.411,-84.9841],[663.502,698.855,38.85,164.82,-84.8046],[654.264,798.634,38.2333,160.031,-84.6078],[644.704,897.993,37.6,155.04,-84.3913],[634.564,999.117,36.9333,149.707,-84.1458],[624.091,1099.03,36.25,144.161,-83.8731],[613.022,1199.67,35.5333,138.257,-83.561],[601.61,1298.21,34.8,132.129,-83.21],[589.326,1398.42,34.0167,125.489,-82.7937],[576.158,1499.22,33.1833,118.324,-82.2953],[562.092,1599.43,32.3,110.622,-81.6915],[546.848,1699.46,31.35,102.228,-80.934],[530.139,1799.01,30.3167,92.9804,-79.9463],[511.128,1899.64,29.15,82.4192,-78.5523],[489.232,1999.14,27.8167,70.241,-76.4269]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 720.462; +_maxRange = 4139.07; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg5.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg5.sqf new file mode 100644 index 0000000000..495ec7cf72 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg5.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg5 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1421.82,[[6087.45,-2001.98,44.4667,244.554,-66.2851],[6043.01,-1901.78,44.0167,242.543,-65.8641],[5998.21,-1802.74,43.5667,240.512,-65.4324],[5951.35,-1701.28,43.1,238.385,-64.9731],[5904.1,-1601.1,42.6333,236.238,-64.5015],[5856.45,-1502.22,42.1667,234.071,-64.0172],[5806.68,-1401.21,41.6833,231.807,-63.5017],[5756.48,-1301.64,41.2,229.524,-62.9715],[5704.11,-1200.17,40.7,227.143,-62.4069],[5651.29,-1100.29,40.2,224.743,-61.8253],[5598.01,-1002.01,39.7,222.326,-61.2261],[5542.49,-902.174,39.1833,219.812,-60.5876],[5484.67,-800.967,38.65,217.201,-59.9069],[5426.33,-701.67,38.1167,214.576,-59.2035],[5365.65,-601.298,37.5667,211.856,-58.4533],[5302.56,-500.071,37,209.042,-57.6527],[5238.9,-401.093,36.4333,206.22,-56.8228],[5172.78,-301.589,35.85,203.31,-55.9365],[5104.15,-201.802,35.25,200.314,-54.9894],[5032.95,-101.988,34.6333,197.238,-53.9767],[4959.15,-2.41372,34,194.087,-52.8931],[4880.72,99.1378,33.3333,190.785,-51.7027],[4799.53,199.703,32.65,187.424,-50.4267],[4715.55,298.967,31.95,184.014,-49.0581],[4626.68,398.823,31.2167,180.49,-47.5542],[4532.81,498.625,30.45,176.87,-45.9016],[4431.76,599.696,29.6333,173.103,-44.0464],[4325.42,699.063,28.7833,169.302,-42.0069],[4209.44,799.458,27.8667,165.367,-39.6782],[4083.53,899.227,26.8833,161.37,-37.0258],[3943.06,999.49,25.8,157.287,-33.914],[3783.12,1099.83,24.5833,153.173,-30.1807],[3596.26,1198.95,23.1833,149.172,-25.5803],[3353.92,1299.4,21.4,145.417,-19.2898],[2947.19,1399.84,18.4833,143.168,-8.24314],[2643.83,1421.82,16.3667,144.997,-0.00181844]]], + [46,1468.48,[[6038.48,-2000.63,44.9167,244.972,-66.8139],[5996.53,-1903.56,44.4833,243.027,-66.4178],[5950.97,-1800.22,44.0167,240.91,-65.9805],[5906.67,-1701.77,43.5667,238.848,-65.5478],[5860.34,-1600.92,43.1,236.689,-65.0872],[5813.62,-1501.37,42.6333,234.51,-64.6142],[5766.52,-1403.14,42.1667,232.31,-64.1283],[5717.32,-1302.81,41.6833,230.012,-63.6108],[5665.99,-1200.54,41.1833,227.614,-63.0598],[5615.95,-1103.18,40.7,225.277,-62.5113],[5562,-1000.76,40.1833,222.76,-61.907],[5507.57,-900.066,39.6667,220.224,-61.2835],[5452.67,-801.133,39.15,217.671,-60.6399],[5395.5,-700.877,38.6167,215.019,-59.9535],[5337.84,-602.549,38.0833,212.354,-59.2437],[5276.02,-500.216,37.5167,209.508,-58.463],[5213.66,-400.121,36.95,206.652,-57.6534],[5150.73,-302.297,36.3833,203.787,-56.8136],[5083.51,-201.229,35.7833,200.749,-55.8901],[5013.77,-100.084,35.1667,197.625,-54.9022],[4943.38,-1.74743,34.55,194.505,-53.8731],[4868.5,98.8209,33.9,191.226,-52.7415],[4790.95,198.632,33.2333,187.879,-51.5285],[4708.74,299.744,32.5333,184.392,-50.1947],[4623.73,399.29,31.8167,180.861,-48.7621],[4533.86,499.098,31.0667,177.219,-47.1863],[4439.04,598.5,30.2833,173.487,-45.4527],[4337.07,698.735,29.45,169.619,-43.5051],[4227.8,798.684,28.5667,165.656,-41.319],[4108.91,898.831,27.6167,161.585,-38.8223],[3978.02,998.982,26.5833,157.423,-35.9294],[3830.44,1099.51,25.4333,153.181,-32.4881],[3661.23,1199.04,24.1333,148.973,-28.3174],[3451.75,1299.68,22.55,144.847,-22.854],[3159.14,1399.98,20.3833,141.332,-14.7956],[2636.37,1468.48,16.6333,142.233,-0.0169416]]], + [47,1515.01,[[5985.86,-2000.76,45.3667,245.424,-67.3464],[5944.73,-1903.12,44.9333,243.47,-66.9596],[5901.68,-1802.86,44.4833,241.42,-66.548],[5856.65,-1700.11,44.0167,239.271,-66.1099],[5812.86,-1602.23,43.5667,237.179,-65.6764],[5767.08,-1502,43.1,234.987,-65.2148],[5720.94,-1403.08,42.6333,232.775,-64.7406],[5672.73,-1302.02,42.15,230.462,-64.2355],[5624.12,-1202.4,41.6667,228.128,-63.7159],[5573.4,-1100.89,41.1667,225.693,-63.1622],[5522.24,-1000.97,40.6667,223.239,-62.5916],[5470.65,-902.664,40.1667,220.765,-62.0032],[5416.89,-802.8,39.65,218.19,-61.3759],[5360.9,-701.573,39.1167,215.514,-60.7068],[5304.42,-602.263,38.5833,212.822,-60.0148],[5245.67,-501.885,38.0333,210.031,-59.2761],[5184.6,-400.658,37.4667,207.142,-58.4871],[5122.98,-301.69,36.9,204.242,-57.6686],[5058.99,-202.205,36.3167,201.248,-56.7936],[4992.56,-102.447,35.7167,198.165,-55.8575],[4921.8,-0.0148611,35.0833,194.91,-54.8278],[4850.37,99.4279,34.45,191.659,-53.7532],[4776.37,198.334,33.8,188.335,-52.6011],[4697.83,298.817,33.1167,184.859,-51.3333],[4616.6,397.981,32.4167,181.328,-49.9712],[4528.69,499.933,31.6667,177.59,-48.437],[4437.91,599.49,30.9,173.83,-46.7841],[4342.19,698.274,30.1,169.989,-44.9635],[4237.39,799.323,29.2333,165.946,-42.875],[4125.28,899.346,28.3167,161.83,-40.5285],[4003.61,998.684,27.3333,157.636,-37.8472],[3865.81,1099.89,26.2333,153.269,-34.6403],[3711.32,1199.43,25.0167,148.918,-30.834],[3526.58,1299.7,23.5833,144.56,-26.006],[3288.24,1399.83,21.7667,140.466,-19.3955],[2868.47,1499.72,18.65,137.976,-7.13159],[2626.69,1515.01,16.9,139.448,-0.051406]]], + [48,1561.35,[[5929.53,-2002.44,45.8167,245.91,-67.8822],[5887.7,-1900.47,45.3667,243.872,-67.4902],[5847.08,-1803.36,44.9333,241.889,-67.1033],[5804.56,-1703.64,44.4833,239.809,-66.6913],[5760.1,-1601.48,44.0167,237.628,-66.2528],[5715.26,-1500.6,43.55,235.425,-65.8023],[5670.05,-1401.01,43.0833,233.2,-65.3395],[5624.46,-1302.75,42.6167,230.953,-64.8638],[5576.85,-1202.39,42.1333,228.605,-64.357],[5527.18,-1100.11,41.6333,226.154,-63.817],[5478.76,-1002.73,41.15,223.764,-63.2792],[5426.55,-900.299,40.6333,221.188,-62.6864],[5375.6,-802.826,40.1333,218.676,-62.0944],[5320.78,-700.674,39.6,215.976,-61.4421],[5265.49,-600.429,39.0667,213.259,-60.7673],[5209.71,-502.117,38.5333,210.525,-60.0691],[5151.69,-402.788,37.9833,207.691,-59.3234],[5091.39,-302.662,37.4167,204.757,-58.5264],[5028.75,-201.971,36.8333,201.726,-57.6742],[4963.74,-100.959,36.2333,198.601,-56.7623],[4898.14,-2.57773,35.6333,195.472,-55.8126],[4828.26,98.3746,35,192.169,-54.7671],[4755.87,198.847,34.35,188.785,-53.6456],[4680.92,298.546,33.6833,185.328,-52.4416],[4601.46,399.526,32.9833,181.721,-51.1156],[4519.31,498.92,32.2667,178.063,-49.6888],[4432.49,598.552,31.5167,174.284,-48.1164],[4338.93,699.807,30.7167,170.323,-46.3449],[4240.43,799.689,29.8833,166.296,-44.3902],[4134.89,899.239,29,162.16,-42.1903],[4020.1,998.925,28.05,157.898,-39.67],[3893.75,1098.54,27.0167,153.527,-36.7397],[3749.26,1199.79,25.85,148.989,-33.1877],[3583.89,1299.52,24.5333,144.477,-28.8665],[3379.71,1399.58,22.9333,140.035,-23.186],[3088.85,1499.69,20.7,136.149,-14.5814],[2612.49,1561.35,17.15,136.664,-0.0379401]]], + [49,1607.47,[[5867.99,-2001.91,46.25,246.354,-68.4073],[5828.55,-1903.15,45.8167,244.385,-68.0392],[5787.26,-1801.71,45.3667,242.318,-67.6473],[5745.62,-1701.42,44.9167,240.227,-67.2453],[5703.65,-1602.29,44.4667,238.115,-66.8329],[5659.75,-1500.75,44,235.901,-66.3937],[5615.49,-1400.5,43.5333,233.664,-65.9424],[5570.86,-1301.57,43.0667,231.405,-65.4785],[5524.25,-1200.5,42.5833,229.042,-64.9843],[5477.25,-1100.89,42.1,226.658,-64.4754],[5429.86,-1002.74,41.6167,224.251,-63.9514],[5380.42,-902.779,41.1167,221.741,-63.3926],[5328.89,-801.186,40.6,219.125,-62.7966],[5276.92,-701.347,40.0833,216.489,-62.1809],[5222.81,-600.154,39.55,213.747,-61.5237],[5168.23,-500.884,39.0167,210.987,-60.8435],[5111.45,-400.555,38.4667,208.124,-60.1169],[5054.18,-302.332,37.9167,205.246,-59.3634],[4992.9,-200.49,37.3333,202.179,-58.5334],[4931.07,-101.085,36.75,199.102,-57.6702],[4866.9,-1.42079,36.15,195.929,-56.7457],[4800.35,98.2461,35.5333,192.665,-55.755],[4731.38,197.645,34.9,189.314,-54.6922],[4658.1,298.987,34.2333,185.794,-53.5212],[4582.26,399.309,33.55,182.203,-52.2622],[4503.83,498.293,32.85,178.55,-50.9073],[4420.87,597.821,32.1167,174.762,-49.413],[4331.35,699.354,31.3333,170.773,-47.7273],[4237.06,799.868,30.5167,166.696,-45.8654],[4137.87,898.608,29.6667,162.563,-43.8081],[4029.74,998.272,28.75,158.261,-41.4455],[3910.42,1098.8,27.75,153.791,-38.6894],[3777.54,1199.34,26.65,149.2,-35.4334],[3626.58,1299.36,25.4167,144.542,-31.4968],[3446.48,1399.47,23.9667,139.865,-26.4843],[3210.52,1499.99,22.1,135.383,-19.4644],[2760.18,1599.81,18.6333,132.754,-5.23886],[2596.13,1607.47,17.4,133.856,-0.0435683]]], + [50,1653.3,[[5802.78,-2003.04,46.6833,246.833,-68.9361],[5764.19,-1903.73,46.25,244.857,-68.5772],[5723.78,-1801.7,45.8,242.781,-68.1952],[5683.04,-1700.82,45.35,240.682,-67.8033],[5641.96,-1601.1,44.9,238.56,-67.4012],[5600.54,-1502.56,44.45,236.416,-66.9885],[5557.24,-1401.64,43.9833,234.168,-66.5489],[5513.58,-1302.02,43.5167,231.898,-66.097],[5467.98,-1200.24,43.0333,229.522,-65.6155],[5423.58,-1103.33,42.5667,227.206,-65.1371],[5375.62,-1001.02,42.0667,224.701,-64.6091],[5327.25,-900.289,41.5667,222.173,-64.0645],[5278.46,-801.173,41.0667,219.623,-63.5027],[5227.63,-700.469,40.55,216.966,-62.9031],[5176.36,-601.535,40.0333,214.288,-62.2833],[5122.98,-501.292,39.5,211.504,-61.6214],[5069.14,-402.991,38.9667,208.701,-60.936],[5011.44,-300.703,38.4,205.706,-60.1806],[4953.23,-200.67,37.8333,202.694,-59.396],[4892.77,-100.085,37.25,199.58,-58.5561],[4831.78,-1.96095,36.6667,196.455,-57.6818],[4766.72,99.0561,36.05,193.145,-56.7183],[4699.29,199.857,35.4167,189.743,-55.6842],[4631.25,297.629,34.7833,186.343,-54.6026],[4557.14,399.672,34.1,182.685,-53.3792],[4482.34,498.085,33.4167,179.045,-52.0938],[4401.28,599.599,32.6833,175.17,-50.6413],[4317.56,698.965,31.9333,171.252,-49.0728],[4227.35,799.916,31.1333,167.139,-47.3015],[4132.41,899.457,30.3,162.948,-45.3421],[4030.71,998.619,29.4167,158.634,-43.1304],[3918.16,1099.53,28.45,154.1,-40.5422],[3794.46,1199.99,27.4,149.445,-37.5224],[3657.29,1298.92,26.25,144.74,-33.9564],[3494.03,1399.98,24.9,139.85,-29.4196],[3295.44,1499.22,23.2833,135.09,-23.5022],[3002.96,1599.69,20.95,130.799,-14.1601],[2577.58,1653.3,17.65,131.026,-0.0697392]]], + [51,1698.81,[[5732.41,-2002.04,47.1,247.269,-69.455],[5694.66,-1902.2,46.6667,245.286,-69.1052],[5656.6,-1803.4,46.2333,243.28,-68.7468],[5616.76,-1701.92,45.7833,241.174,-68.3652],[5576.59,-1601.6,45.3333,239.043,-67.9735],[5536.09,-1502.45,44.8833,236.889,-67.5716],[5493.74,-1400.88,44.4167,234.631,-67.1434],[5451.04,-1300.61,43.95,232.349,-66.7031],[5407.99,-1201.66,43.4833,230.043,-66.2505],[5363.02,-1100.58,43,227.631,-65.7679],[5317.69,-1000.96,42.5167,225.195,-65.2708],[5271.97,-902.816,42.0333,222.736,-64.7586],[5224.29,-802.859,41.5333,220.169,-64.2121],[5174.59,-701.277,41.0167,217.493,-63.6289],[5124.48,-601.455,40.5,214.794,-63.0259],[5072.3,-500.287,39.9667,211.987,-62.3819],[5019.67,-401.05,39.4333,209.159,-61.7148],[4964.92,-300.763,38.8833,206.223,-61.0016],[4909.71,-202.59,38.3333,203.27,-60.2613],[4850.64,-100.81,37.75,200.121,-59.4452],[4791.04,-1.4768,37.1667,196.959,-58.5954],[4729.19,98.1035,36.5667,193.696,-57.6843],[4665.06,197.673,35.95,190.336,-56.7066],[4596.83,299.531,35.3,186.792,-55.6282],[4527.98,398.169,34.65,183.252,-54.4978],[4454.93,498.341,33.9667,179.543,-53.2499],[4377.57,599.461,33.25,175.675,-51.8715],[4297.65,698.698,32.5167,171.753,-50.3829],[4211.44,799.897,31.7333,167.616,-48.6997],[4122.5,898.051,30.9333,163.466,-46.8752],[4025.15,998.367,30.0667,159.077,-44.7708],[3919.16,1099.3,29.1333,154.507,-42.3469],[3804.32,1199.13,28.1333,149.832,-39.558],[3676.47,1298.87,27.0333,145.013,-36.2496],[3529.31,1399.18,25.7833,140.04,-32.1739],[3352.12,1499.92,24.3,134.985,-26.8995],[3121.21,1599.41,22.4,130.159,-19.4938],[2554.72,1698.81,17.8833,128.192,-0.0449828]]], + [52,1743.94,[[5658.37,-2002.8,47.5167,247.739,-69.978],[5621.47,-1902.43,47.0833,245.75,-69.6373],[5584.27,-1803.09,46.65,243.738,-69.2883],[5545.32,-1701.04,46.2,241.623,-68.9166],[5506.05,-1600.15,45.75,239.485,-68.5352],[5466.46,-1500.42,45.3,237.321,-68.1437],[5426.55,-1401.87,44.85,235.134,-67.7418],[5384.82,-1300.95,44.3833,232.842,-67.3134],[5342.75,-1201.33,43.9167,230.525,-66.8728],[5300.33,-1103.04,43.45,228.183,-66.4196],[5256.03,-1002.66,42.9667,225.734,-65.9363],[5209.82,-900.366,42.4667,223.175,-65.4207],[5164.77,-802.995,41.9833,220.677,-64.9067],[5116.22,-700.579,41.4667,217.983,-64.3394],[5068.83,-603.133,40.9667,215.352,-63.7721],[5017.86,-501.025,40.4333,212.523,-63.1462],[4966.45,-400.837,39.9,209.671,-62.4978],[4914.6,-302.598,39.3667,206.799,-61.8257],[4859.03,-200.386,38.8,203.726,-61.0844],[4802.97,-100.437,38.2333,200.635,-60.3137],[4746.43,-2.78695,37.6667,197.529,-59.5119],[4686.04,98.0668,37.0667,194.226,-58.6272],[4623.41,198.959,36.45,190.821,-57.6775],[4558.5,299.619,35.8167,187.317,-56.657],[4491.28,399.765,35.1667,183.721,-55.5592],[4421.7,499.1,34.5,180.038,-54.377],[4347.95,599.666,33.8,176.187,-53.0704],[4271.73,698.602,33.0833,172.269,-51.659],[4189.4,799.868,32.3167,168.12,-50.0614],[4104.45,898.378,31.5333,163.941,-48.3289],[4011.32,999.519,30.6833,159.495,-46.3271],[3911.68,1099.98,29.7833,154.917,-44.0601],[3805.34,1198.52,28.8333,150.264,-41.4923],[3684.57,1299.83,27.7667,145.312,-38.3826],[3550.84,1399.14,26.6,140.299,-34.694],[3392.07,1499.97,25.2333,135.086,-29.9812],[3195.42,1599.86,23.5667,129.915,-23.672],[2900.44,1699.71,21.1167,125.255,-13.432],[2529.75,1743.93,18.1167,125.334,-0.0407228]]], + [53,1788.64,[[5579.25,-2001.48,47.9167,248.167,-70.492],[5543.2,-1900.61,47.4833,246.171,-70.1603],[5506.85,-1800.76,47.05,244.152,-69.8205],[5470.22,-1701.96,46.6167,242.109,-69.4721],[5431.86,-1600.49,46.1667,239.963,-69.1011],[5393.19,-1500.17,45.7167,237.791,-68.7202],[5354.2,-1401.03,45.2667,235.595,-68.3291],[5314.9,-1303.08,44.8167,233.375,-67.9273],[5273.81,-1202.78,44.35,231.047,-67.4991],[5230.9,-1100.3,43.8667,228.61,-67.0425],[5189.13,-1002.72,43.4,226.232,-66.5885],[5145.51,-903.08,42.9167,223.745,-66.1042],[5100.01,-801.567,42.4167,221.146,-65.5874],[5054.12,-701.661,41.9167,218.521,-65.0538],[5006.3,-600.138,41.4,215.784,-64.4839],[4958.08,-500.383,40.8833,213.023,-63.8943],[4909.46,-402.422,40.3667,210.238,-63.2841],[4857.25,-300.139,39.8167,207.251,-62.6108],[4806.2,-202.954,39.2833,204.333,-61.9332],[4751.49,-101.88,38.7167,201.212,-61.1854],[4694.67,-0.222012,38.1333,197.98,-60.3838],[4637.36,98.9784,37.55,194.731,-59.5483],[4577.89,198.411,36.95,191.377,-58.6515],[4516.22,297.817,36.3333,187.92,-57.6879],[4450.64,399.489,35.6833,184.27,-56.6234],[4384.46,497.926,35.0333,180.62,-55.5059],[4314.24,597.872,34.35,176.792,-54.2701],[4239.91,698.738,33.6333,172.795,-52.9025],[4161.36,799.893,32.8833,168.643,-51.3877],[4080.29,898.575,32.1167,164.447,-49.7448],[3993.08,998.361,31.3,160.048,-47.8823],[3899.58,1098.15,30.4333,155.483,-45.7702],[3797.81,1198.48,29.5,150.718,-43.3291],[3685.72,1299.22,28.4833,145.751,-40.4604],[3561.14,1399.42,27.3667,140.627,-37.0428],[3418.02,1499.64,26.1,135.337,-32.8133],[3246.12,1599.51,24.6,129.959,-27.3129],[3014.9,1699.67,22.6167,124.682,-19.2686],[2502.66,1788.64,18.35,122.452,-0.0583976]]], + [54,1832.87,[[5496.48,-2002.05,48.3167,248.628,-71.0103],[5461.29,-1900.66,47.8833,246.627,-70.6877],[5425.81,-1800.29,47.45,244.602,-70.3571],[5390.04,-1700.97,47.0167,242.553,-70.0183],[5353.98,-1602.7,46.5833,240.479,-69.6709],[5316.24,-1501.79,46.1333,238.3,-69.3007],[5278.19,-1402.04,45.6833,236.096,-68.9206],[5239.83,-1303.48,45.2333,233.866,-68.5302],[5199.72,-1202.54,44.7667,231.528,-68.1139],[5159.29,-1102.92,44.3,229.165,-67.6856],[5117.06,-1001.15,43.8167,226.69,-67.2288],[5074.49,-900.823,43.3333,224.188,-66.7579],[5031.56,-801.974,42.85,221.661,-66.2724],[4986.78,-701.289,42.35,219.021,-65.7541],[4941.63,-602.226,41.85,216.355,-65.2186],[4894.58,-501.591,41.3333,213.575,-64.6463],[4847.14,-402.74,40.8167,210.77,-64.054],[4797.75,-302.598,40.2833,207.85,-63.4205],[4746.39,-201.376,39.7333,204.815,-62.7424],[4694.58,-102.266,39.1833,201.758,-62.0378],[4640.75,-2.39204,38.6167,198.587,-61.2828],[4584.85,98.0087,38.0333,195.305,-60.4728],[4526.85,198.69,37.4333,191.911,-59.6031],[4466.71,299.392,36.8167,188.41,-58.6683],[4404.39,399.843,36.1833,184.804,-57.6624],[4339.85,499.76,35.5333,181.099,-56.5787],[4273.06,598.845,34.8667,177.301,-55.4096],[4202.28,699.131,34.1667,173.324,-54.1151],[4129.13,797.764,33.45,169.274,-52.714],[4050.14,898.682,32.6833,164.978,-51.1243],[3966.9,998.849,31.8833,160.552,-49.3579],[3877.57,1099.44,31.0333,155.935,-47.3523],[3781.99,1199.29,30.1333,151.17,-45.0732],[3678.24,1298.79,29.1667,146.231,-42.4347],[3562.45,1399.13,28.1,141.053,-39.2787],[3430.61,1499.97,26.9,135.651,-35.4037],[3278.46,1599.02,25.5333,130.177,-30.5564],[3084.43,1699.18,23.8167,124.581,-23.818],[2778.68,1799.65,21.1667,119.487,-12.1981],[2471.46,1832.87,18.5667,119.563,-0.0217686]]], + [55,1876.58,[[5408.71,-2000.6,48.7,249.046,-71.5206],[5375.7,-1902.62,48.2833,247.118,-71.2191],[5341.09,-1801.73,47.85,245.087,-70.8979],[5306.2,-1701.88,47.4167,243.032,-70.5687],[5271.03,-1603.07,46.9833,240.952,-70.2312],[5234.21,-1501.58,46.5333,238.765,-69.8715],[5197.09,-1401.27,46.0833,236.553,-69.5022],[5159.67,-1302.13,45.6333,234.315,-69.1227],[5120.55,-1200.59,45.1667,231.967,-68.7182],[5081.1,-1100.35,44.7,229.592,-68.3019],[5041.33,-1001.44,44.2333,227.191,-67.8734],[4999.81,-900.421,43.75,224.677,-67.4162],[4957.94,-800.865,43.2667,222.136,-66.9448],[4915.73,-702.796,42.7833,219.569,-66.4584],[4871.7,-602.933,42.2833,216.887,-65.9388],[4825.83,-501.461,41.7667,214.089,-65.3836],[4779.57,-401.764,41.25,211.264,-64.8087],[4731.41,-300.74,40.7167,208.322,-64.1938],[4682.84,-201.663,40.1833,205.355,-63.5558],[4632.34,-101.559,39.6333,202.272,-62.8724],[4579.85,-0.65138,39.0667,199.071,-62.1399],[4526.92,97.9605,38.5,195.85,-61.3769],[4470.39,199.833,37.9,192.419,-60.5338],[4413.35,299.056,37.3,188.972,-59.6523],[4354.22,398.232,36.6833,185.416,-58.7039],[4291.34,499.647,36.0333,181.658,-57.6547],[4227.89,597.813,35.3833,177.898,-56.5513],[4158.94,699.841,34.6833,173.852,-55.2983],[4089.35,797.986,33.9833,169.82,-53.9735],[4014.08,898.771,33.2333,165.526,-52.4688],[3934.72,999.133,32.45,161.086,-50.7958],[3851.16,1098.35,31.6333,156.522,-48.9331],[3759.87,1199.36,30.75,151.688,-46.7718],[3662.39,1298.85,29.8167,146.728,-44.31],[3555.06,1398.62,28.8,141.544,-41.4046],[3434.02,1499.11,27.6667,136.105,-37.8719],[3295.25,1599.03,26.3833,130.488,-33.4768],[3125.28,1699.72,24.8333,124.665,-27.5954],[2892.89,1799.94,22.75,118.939,-18.7538],[2438.22,1876.58,18.7833,116.649,-0.00695619]]], + [56,1919.71,[[5317.3,-2001.13,49.0833,249.499,-72.0355],[5285.12,-1902.69,48.6667,247.565,-71.7426],[5251.38,-1801.3,48.2333,245.53,-71.4307],[5217.36,-1700.94,47.8,243.468,-71.1109],[5183.08,-1601.62,47.3667,241.381,-70.783],[5148.52,-1503.36,46.9333,239.269,-70.4467],[5112.34,-1402.46,46.4833,237.05,-70.0882],[5075.87,-1302.74,46.0333,234.804,-69.7199],[5037.74,-1200.57,45.5667,232.447,-69.3273],[5000.67,-1103.29,45.1167,230.148,-68.9379],[4960.53,-1000.18,44.6333,227.65,-68.5073],[4921.46,-901.975,44.1667,225.211,-68.079],[4880.66,-801.7,43.6833,222.658,-67.6217],[4839.52,-702.904,43.2,220.077,-67.1499],[4796.62,-602.281,42.7,217.38,-66.6459],[4751.92,-500.016,42.1833,214.564,-66.1073],[4708.29,-402.731,41.6833,211.812,-65.5678],[4661.37,-300.81,41.15,208.849,-64.9718],[4614.06,-200.826,40.6167,205.86,-64.3533],[4566.35,-102.807,40.0833,202.845,-63.7111],[4515.22,-0.848343,39.5167,199.617,-63.0016],[4463.66,98.8261,38.95,196.365,-62.2623],[4410.12,199.01,38.3667,192.996,-61.4683],[4354.58,299.456,37.7667,189.51,-60.6149],[4296.99,399.903,37.15,185.911,-59.6962],[4238.9,497.481,36.5333,182.3,-58.7329],[4175.54,599.695,35.8667,178.387,-57.638],[4111.6,698.457,35.2,174.472,-56.4835],[4043.86,798.385,34.5,170.368,-55.2027],[3972.24,898.867,33.7667,166.086,-53.78],[3896.64,999.247,33,161.642,-52.1975],[3817,1098.83,32.2,157.056,-50.4344],[3731.55,1198.76,31.35,152.264,-48.4259],[3638.45,1299.65,30.4333,147.217,-46.0913],[3537.52,1399.83,29.45,141.986,-43.3769],[3426.82,1498.91,28.3833,136.582,-40.1675],[3299.06,1599.57,27.1667,130.854,-36.1471],[3148.34,1699.9,25.75,124.923,-30.959],[2955.72,1799.91,23.9667,118.89,-23.652],[2628.39,1899.98,21,113.456,-9.88585],[2402.94,1919.71,19,113.708,-0.0161863]]], + [57,1962.24,[[5222.25,-2003.7,49.4667,249.985,-72.5545],[5189.64,-1900.83,49.0333,247.97,-72.2589],[5158.04,-1802.88,48.6167,246.007,-71.9678],[5124.91,-1702,48.1833,243.941,-71.6575],[5091.52,-1602.17,47.75,241.848,-71.3394],[5057.86,-1503.38,47.3167,239.73,-71.0131],[5022.62,-1401.93,46.8667,237.503,-70.6653],[4987.1,-1301.65,46.4167,235.249,-70.3079],[4951.29,-1202.55,45.9667,232.968,-69.9407],[4913.85,-1101.06,45.5,230.574,-69.549],[4876.1,-1000.87,45.0333,228.152,-69.1458],[4838.05,-902.023,44.5667,225.703,-68.7305],[4798.32,-801.068,44.0833,223.137,-68.2871],[4758.27,-701.584,43.6,220.543,-67.8297],[4716.49,-600.241,43.1,217.831,-67.3409],[4674.36,-500.521,42.6,215.089,-66.8356],[4631.89,-402.446,42.1,212.321,-66.3129],[4587.64,-302.855,41.5833,209.432,-65.7537],[4541.58,-201.949,41.05,206.421,-65.155],[4495.14,-102.999,40.5167,203.384,-64.5333],[4445.37,-0.0393376,39.95,200.129,-63.8461],[4396.66,97.7182,39.4,196.945,-63.1515],[4344.56,199.025,38.8167,193.543,-62.3833],[4292,297.852,38.2333,190.12,-61.5807],[4235.97,399.588,37.6167,186.48,-60.6924],[4179.44,498.469,37,182.824,-59.7606],[4119.33,599.559,36.35,178.958,-58.7281],[4057.13,699.847,35.6833,174.985,-57.6117],[3992.79,799.023,35,170.913,-56.4029],[3924.71,899.041,34.2833,166.652,-55.0595],[3852.79,999.267,33.5333,162.214,-53.5644],[3776.97,1099.02,32.75,157.618,-51.8977],[3695.53,1199.53,31.9167,152.791,-49.9969],[3608.34,1299.67,31.0333,147.773,-47.8262],[3513.6,1399.88,30.0833,142.523,-45.2975],[3409.44,1499.96,29.05,137.036,-42.2993],[3293.91,1598.85,27.9167,131.361,-38.6905],[3158.04,1699.23,26.6,125.341,-34.0486],[2990.65,1799.87,25,119.082,-27.7341],[2754.72,1899.84,22.7833,112.889,-17.8239],[2365.61,1962.24,19.2167,110.743,-0.0511888]]], + [58,2004.1,[[5121.06,-2000.42,49.8167,250.351,-73.0559],[5090.54,-1901.08,49.4,248.409,-72.7801],[5059.78,-1802.66,48.9833,246.442,-72.4977],[5027.54,-1701.3,48.55,244.37,-72.1968],[4995.04,-1600.98,48.1167,242.272,-71.8883],[4962.28,-1501.7,47.6833,240.147,-71.5718],[4929.26,-1403.49,47.25,237.997,-71.2471],[4894.69,-1302.64,46.8,235.736,-70.9008],[4859.85,-1202.97,46.35,233.447,-70.545],[4823.42,-1100.87,45.8833,231.044,-70.1654],[4786.69,-1000.08,45.4167,228.612,-69.7746],[4749.66,-900.613,44.95,226.152,-69.3721],[4712.34,-802.494,44.4833,223.664,-68.9574],[4673.37,-702.309,44,221.058,-68.5144],[4632.72,-600.233,43.5,218.331,-68.0411],[4593.11,-503.094,43.0167,215.667,-67.5683],[4550.42,-400.947,42.5,212.79,-67.0455],[4507.37,-300.574,41.9833,209.882,-66.5038],[4463.96,-202.002,41.4667,206.946,-65.9421],[4418.79,-102.165,40.9333,203.887,-65.3404],[4371.81,-1.27791,40.3833,200.703,-64.6952],[4324.43,97.4782,39.8333,197.492,-64.0235],[4273.76,199.856,39.25,194.06,-63.2805],[4222.65,299.764,38.6667,190.603,-62.5039],[4169.63,399.913,38.0667,187.025,-61.668],[4116.16,497.372,37.4667,183.427,-60.792],[4057.72,599.871,36.8167,179.512,-59.7946],[3998.76,699.12,36.1667,175.585,-58.7435],[3936.23,799.9,35.4833,171.451,-57.5761],[3871.6,899.3,34.7833,167.218,-56.3091],[3803.27,999.206,34.05,162.796,-54.8985],[3731.17,1098.96,33.2833,158.201,-53.3251],[3653.64,1199.86,32.4667,153.354,-51.5289],[3572.15,1298.92,31.6167,148.385,-49.5162],[3483.4,1398.83,30.7,143.142,-47.1674],[3385.57,1499.52,29.7,137.606,-44.3753],[3278.43,1598.66,28.6167,131.886,-41.056],[3155.04,1698.75,27.3833,125.826,-36.8741],[3006.4,1799.77,25.9167,119.425,-31.3074],[2814.36,1899.54,24.05,112.917,-23.2795],[2422.84,1999.86,20.3333,107.344,-4.81424]]], + [59,2045.26,[[5017.49,-2003.25,50.1833,250.828,-73.5728],[4987.82,-1903.44,49.7667,248.883,-73.3057],[4956.72,-1800.62,49.3333,246.833,-73.0212],[4926.57,-1702.71,48.9167,244.836,-72.7408],[4894.97,-1601.88,48.4833,242.733,-72.442],[4863.12,-1502.1,48.05,240.603,-72.1355],[4831.02,-1403.38,47.6167,238.446,-71.821],[4797.41,-1301.99,47.1667,236.178,-71.4856],[4763.53,-1201.78,46.7167,233.881,-71.1409],[4729.38,-1102.76,46.2667,231.556,-70.7865],[4693.68,-1001.35,45.8,229.116,-70.4082],[4657.68,-901.26,45.3333,226.646,-70.0187],[4621.4,-802.507,44.8667,224.147,-69.6173],[4583.52,-701.66,44.3833,221.529,-69.1886],[4545.33,-602.291,43.9,218.881,-68.7459],[4505.49,-501.074,43.4,216.111,-68.2727],[4465.34,-401.486,42.9,213.311,-67.7831],[4423.5,-300.317,42.3833,210.386,-67.2591],[4381.31,-200.939,41.8667,207.431,-66.7159],[4337.4,-100.262,41.3333,204.351,-66.1337],[4293.13,-1.55133,40.8,201.241,-65.5287],[4247.09,98.1547,40.25,198.005,-64.8794],[4199.26,198.631,39.6833,194.643,-64.182],[4149.61,299.639,39.1,191.155,-63.432],[4099.53,398.154,38.5167,187.641,-62.6473],[4046.14,499.546,37.9,183.904,-61.7778],[3992.29,598.068,37.2833,180.146,-60.8643],[3935.03,698.763,36.6333,176.169,-59.8504],[3875.79,798.628,35.9667,172.079,-58.7521],[3813.03,899.713,35.2667,167.78,-57.5304],[3748.19,999.14,34.55,163.383,-56.2011],[3679.72,1098.72,33.8,158.799,-54.7179],[3605.99,1199.83,33,153.943,-53.023],[3528.47,1299.45,32.1667,148.944,-51.1226],[3445.49,1398.6,31.2833,143.737,-48.9439],[3353.76,1499.4,30.3167,138.185,-46.3479],[3253.07,1599.6,29.2667,132.382,-43.2533],[3139.94,1699.43,28.1,126.298,-39.4484],[3007.45,1799.58,26.75,119.874,-34.5251],[2843.3,1899.23,25.1,113.194,-27.7118],[2596.97,1999.59,22.6667,106.454,-16.1479]]], + [60,2085.66,[[4907.97,-2000.26,50.5167,251.186,-74.0737],[4879.14,-1900.05,50.1,249.236,-73.8149],[4850.08,-1800.76,49.6833,247.26,-73.5499],[4820.8,-1702.4,49.2667,245.259,-73.2785],[4790.1,-1601.11,48.8333,243.151,-72.9892],[4759.16,-1500.86,48.4,241.015,-72.6925],[4727.97,-1401.65,47.9667,238.851,-72.388],[4696.53,-1303.52,47.5333,236.661,-72.0754],[4663.63,-1202.75,47.0833,234.358,-71.742],[4630.46,-1103.18,46.6333,232.025,-71.3992],[4595.79,-1001.18,46.1667,229.576,-71.0334],[4560.83,-900.497,45.7,227.097,-70.6565],[4525.59,-801.147,45.2333,224.588,-70.2682],[4490.07,-703.148,44.7667,222.049,-69.8679],[4452.99,-603.095,44.2833,219.389,-69.4401],[4414.31,-501.164,43.7833,216.606,-68.9827],[4375.31,-400.854,43.2833,213.791,-68.5094],[4336,-302.189,42.7833,210.945,-68.0195],[4295.04,-201.99,42.2667,207.973,-67.4948],[4252.41,-100.457,41.7333,204.873,-66.9326],[4209.43,-0.880789,41.2,201.742,-66.3481],[4164.74,99.7276,40.65,198.482,-65.7208],[4119.67,198.193,40.1,195.193,-65.0671],[4072.85,297.368,39.5333,191.775,-64.3642],[4022.86,399.824,38.9333,188.128,-63.5854],[3972.44,499.614,38.3333,184.455,-62.7688],[3920.17,599.357,37.7167,180.656,-61.8874],[3866.03,698.778,37.0833,176.735,-60.9344],[3809.99,797.589,36.4333,172.695,-59.9025],[3750.55,897.889,35.75,168.437,-58.7542],[3687.66,999.084,35.0333,163.969,-57.4744],[3622.72,1098.33,34.3,159.406,-56.0781],[3552.71,1199.47,33.5167,154.554,-54.4811],[3479.04,1299.47,32.7,149.538,-52.6896],[3400.11,1399.41,31.8333,144.288,-50.6334],[3314.27,1499.83,30.9,138.75,-48.2232],[3221.36,1599,29.9,132.996,-45.3927],[3116.5,1699.26,28.7833,126.863,-41.8981],[2996.18,1799.42,27.5167,120.391,-37.4671],[2851.89,1899.04,26.0167,113.604,-31.5287],[2654.96,1999.97,24,106.463,-22.3408]]], + [61,2125.26,[[4796.03,-2003.53,50.8667,251.655,-74.5898],[4768.06,-1902.88,50.45,249.702,-74.3396],[4739.87,-1803.14,50.0333,247.723,-74.0835],[4710.32,-1700.39,49.6,245.638,-73.8105],[4681.67,-1602.55,49.1833,243.606,-73.5415],[4651.65,-1501.82,48.75,241.465,-73.2547],[4621.39,-1402.12,48.3167,239.297,-72.9603],[4590.89,-1303.49,47.8833,237.1,-72.6582],[4558.96,-1202.21,47.4333,234.79,-72.3359],[4526.78,-1102.11,46.9833,232.45,-72.0044],[4494.34,-1003.2,46.5333,230.081,-71.6636],[4460.43,-901.914,46.0667,227.593,-71.2996],[4426.24,-801.953,45.6,225.075,-70.9245],[4391.78,-703.338,45.1333,222.526,-70.5379],[4355.81,-602.639,44.65,219.855,-70.1246],[4318.28,-500.032,44.15,217.058,-69.6827],[4281.72,-402.38,43.6667,214.324,-69.241],[4243.59,-302.97,43.1667,211.463,-68.7681],[4203.86,-201.994,42.65,208.474,-68.2617],[4163.81,-102.818,42.1333,205.453,-67.7362],[4122.13,-2.35933,41.6,202.303,-67.1726],[4078.79,99.1684,41.05,199.021,-66.5676],[4035.08,198.563,40.5,195.707,-65.937],[3989.68,298.706,39.9333,192.262,-65.2589],[3942.55,399.358,39.35,188.686,-64.5288],[3895.02,497.502,38.7667,185.081,-63.7639],[3844.36,598.487,38.15,181.244,-62.9151],[3791.87,699.197,37.5167,177.279,-61.9971],[3737.54,799.344,36.8667,173.19,-61.0026],[3681.33,898.628,36.2,168.98,-59.9232],[3621.79,999.08,35.5,164.551,-58.7199],[3560.3,1097.84,34.7833,160.016,-57.4073],[3493.92,1198.83,34.0167,155.178,-55.9049],[3424.01,1299.02,33.2167,150.158,-54.2187],[3349.03,1399.57,32.3667,144.88,-52.2815],[3268.88,1499.3,31.4667,139.381,-50.0504],[3181.93,1598.58,30.5,133.617,-47.4261],[3085,1698.58,29.4333,127.489,-44.227],[2974.75,1798.9,28.2333,120.979,-40.2072],[2844.6,1899.38,26.8333,114.067,-34.8998],[2679.67,1999.49,25.0833,106.802,-27.271]]], + [62,2164.02,[[4678.31,-2001.02,51.1833,252.003,-75.0913],[4652.28,-1904.01,50.7833,250.126,-74.8592],[4624.96,-1803.85,50.3667,248.144,-74.6117],[4596.31,-1700.66,49.9333,246.054,-74.3481],[4568.55,-1602.39,49.5167,244.018,-74.0882],[4539.45,-1501.19,49.0833,241.872,-73.8111],[4510.12,-1401.04,48.65,239.698,-73.5267],[4480.55,-1301.95,48.2167,237.496,-73.2348],[4449.6,-1200.18,47.7667,235.179,-72.9234],[4419.57,-1103.28,47.3333,232.918,-72.6152],[4386.96,-1000.18,46.8667,230.453,-72.2738],[4355.27,-901.98,46.4167,228.046,-71.9349],[4322.14,-801.444,45.95,225.519,-71.5729],[4288.74,-702.247,45.4833,222.96,-71.1996],[4253.88,-600.94,45,220.277,-70.8006],[4218.73,-501.112,44.5167,217.562,-70.3884],[4183.3,-402.786,44.0333,214.814,-69.9624],[4146.35,-302.672,43.5333,211.94,-69.5063],[4107.86,-200.959,43.0167,208.935,-69.0178],[4069.05,-101.039,42.5,205.897,-68.5108],[4029.93,-2.93906,41.9833,202.826,-67.9843],[3987.94,99.4611,41.4333,199.522,-67.4012],[3945.6,199.738,40.8833,196.185,-66.7934],[3902.92,297.859,40.3333,192.816,-66.1592],[3857.27,399.537,39.75,189.211,-65.456],[3811.23,498.718,39.1667,185.575,-64.7192],[3763.49,598.089,38.5667,181.806,-63.9239],[3714,697.386,37.95,177.905,-63.0641],[3661.4,798.893,37.3,173.77,-62.1078],[3606.97,899.586,36.6333,169.507,-61.0694],[3550.7,999.152,35.95,165.124,-59.9396],[3491.17,1099.55,35.2333,160.519,-58.6773],[3429.71,1197.96,34.5,155.811,-57.2962],[3363.47,1298.17,33.7167,150.799,-55.7118],[3292.35,1399.13,32.8833,145.506,-53.89],[3216.24,1499.7,32,139.964,-51.7895],[3135.05,1598.62,31.0667,134.222,-49.3601],[3044.25,1699.24,30.0333,128.049,-46.3903],[2943.62,1798.65,28.9,121.582,-42.7557],[2825.38,1899.54,27.5833,114.603,-37.9822],[2681.41,1999.74,26,107.227,-31.3844]]], + [63,2201.89,[[4557.1,-2000.83,51.5,252.387,-75.5982],[4531.9,-1903.45,51.1,250.506,-75.3742],[4505.44,-1802.89,50.6833,248.52,-75.1354],[4478.77,-1703.24,50.2667,246.507,-74.8907],[4450.82,-1600.6,49.8333,244.386,-74.63],[4423.73,-1502.87,49.4167,242.318,-74.3729],[4395.34,-1402.25,48.9833,240.139,-74.0986],[4366.72,-1302.68,48.55,237.932,-73.8171],[4336.76,-1200.41,48.1,235.609,-73.5168],[4307.69,-1103.03,47.6667,233.342,-73.2195],[4277.26,-1003.07,47.2167,230.959,-72.9022],[4245.44,-900.684,46.75,228.454,-72.5633],[4214.52,-803.195,46.3,226.009,-72.2268],[4182.2,-703.404,45.8333,223.441,-71.8671],[4148.46,-601.475,45.35,220.748,-71.4826],[4114.44,-501.018,44.8667,218.022,-71.0854],[4080.15,-402.056,44.3833,215.262,-70.6748],[4044.39,-301.278,43.8833,212.374,-70.2352],[4008.35,-202.147,43.3833,209.451,-69.7797],[3970.79,-101.467,42.8667,206.397,-69.2916],[3932.94,-2.59946,42.35,203.308,-68.7846],[3893.54,97.5294,41.8167,200.086,-68.2403],[3852.58,198.705,41.2667,196.727,-67.6555],[3811.28,297.736,40.7167,193.335,-67.0453],[3768.39,397.489,40.15,189.806,-66.3883],[3723.86,497.727,39.5667,186.14,-65.68],[3677.68,598.196,38.9667,182.338,-64.9153],[3629.81,698.633,38.35,178.4,-64.0883],[3580.23,798.762,37.7167,174.327,-63.1924],[3528.91,898.294,37.0667,170.123,-62.22],[3474.5,999.345,36.3833,165.683,-61.1351],[3418.27,1098.99,35.6833,161.122,-59.9514],[3358.85,1199.13,34.95,156.339,-58.6257],[3296.17,1299.09,34.1833,151.345,-57.137],[3230.18,1398.16,33.3833,146.159,-55.4603],[3158.03,1499.37,32.5167,140.59,-53.4866],[3080.98,1599.38,31.6,134.789,-51.2013],[2997.52,1698.5,30.6167,128.709,-48.4972],[2903.22,1799.22,29.5167,122.151,-45.1246],[2796.33,1899.19,28.2833,115.214,-40.8531],[2667.72,1999.94,26.8167,107.74,-35.0216]]], + [64,2238.83,[[4432.37,-2003.06,51.8167,252.806,-76.1105],[4406.99,-1901.24,51.4,250.843,-75.8855],[4381.4,-1800.31,50.9833,248.854,-75.6552],[4355.62,-1700.29,50.5667,246.837,-75.4192],[4329.63,-1601.2,50.15,244.792,-75.1775],[4303.44,-1503.05,49.7333,242.721,-74.9298],[4275.99,-1401.99,49.3,240.537,-74.6655],[4248.32,-1301.97,48.8667,238.324,-74.3942],[4220.43,-1203.02,48.4333,236.082,-74.1157],[4191.24,-1101.4,47.9833,233.722,-73.8184],[4161.82,-1000.97,47.5333,231.331,-73.5125],[4132.16,-901.726,47.0833,228.909,-73.1978],[4101.16,-800.096,46.6167,226.364,-72.8616],[4071.03,-703.353,46.1667,223.879,-72.5274],[4038.42,-600.838,45.6833,221.176,-72.1572],[4006.67,-503.249,45.2167,218.534,-71.7881],[3972.39,-400.229,44.7167,215.667,-71.3793],[3938.98,-302.18,44.2333,212.863,-70.9703],[3904.14,-202.361,43.7333,209.927,-70.5321],[3867.85,-100.965,43.2167,206.857,-70.0624],[3831.26,-1.37161,42.7,203.751,-69.5746],[3793.19,99.5138,42.1667,200.509,-69.0508],[3754.8,198.419,41.6333,197.232,-68.5054],[3714.9,298.311,41.0833,193.817,-67.9187],[3673.44,398.962,40.5167,190.262,-67.2869],[3631.65,497.277,39.95,186.674,-66.6256],[3587.03,598.791,39.35,182.84,-65.891],[3542.04,697.608,38.75,178.973,-65.1183],[3494.15,798.944,38.1167,174.86,-64.2583],[3444.58,899.727,37.4667,170.611,-63.3246],[3393.3,999.655,36.8,166.228,-62.3085],[3340.3,1098.41,36.1167,161.716,-61.2003],[3284.22,1197.94,35.4,156.973,-59.959],[3223.71,1299.75,34.6333,151.897,-58.5327],[3161.33,1398.73,33.85,146.723,-56.9595],[3094.36,1498.34,33.0167,141.251,-55.1435],[3021.37,1599.24,32.1167,135.408,-52.9983],[2942.21,1699.76,31.15,129.246,-50.4559],[2855.38,1799.59,30.1,122.745,-47.3787],[2757.9,1898.92,28.9333,115.844,-43.5237],[2642.44,1999.5,27.5667,108.354,-38.348]]], + [65,2274.8,[[4303.17,-2003.65,52.1167,253.182,-76.6192],[4278.66,-1901.45,51.7,251.217,-76.4027],[4253.96,-1800.14,51.2833,249.225,-76.1809],[4230.06,-1703.74,50.8833,247.285,-75.963],[4203.97,-1600.26,50.45,245.156,-75.7211],[4178.68,-1501.72,50.0333,243.08,-75.4826],[4152.18,-1400.25,49.6,240.891,-75.2282],[4126.49,-1303.66,49.1833,238.759,-74.9772],[4098.53,-1200.44,48.7333,236.424,-74.6988],[4071.4,-1102.14,48.3,234.146,-74.4233],[4042.99,-1001.21,47.85,231.749,-74.1292],[4014.37,-901.479,47.4,229.319,-73.8264],[3985.51,-802.955,46.95,226.858,-73.5147],[3955.36,-702.08,46.4833,224.273,-73.1816],[3924.96,-602.546,46.0167,221.655,-72.8379],[3893.22,-500.891,45.5333,218.908,-72.4703],[3861.23,-400.718,45.05,216.125,-72.0903],[3828.99,-302.049,44.5667,213.309,-71.6972],[3795.36,-201.584,44.0667,210.359,-71.2761],[3761.47,-102.776,43.5667,207.374,-70.8394],[3726.16,-2.441,43.05,204.254,-70.371],[3689.42,99.2182,42.5167,200.994,-69.8681],[3652.38,198.906,41.9833,197.698,-69.3442],[3613.87,299.613,41.4333,194.261,-68.7807],[3575.05,398.16,40.8833,190.788,-68.192],[3534.73,497.401,40.3167,187.173,-67.5575],[3491.68,599.907,39.7167,183.309,-66.8523],[3448.27,699.725,39.1167,179.409,-66.1105],[3403.28,799.473,38.5,175.367,-65.307],[3356.7,898.874,37.8667,171.185,-64.4349],[3308.48,997.636,37.2167,166.864,-63.4863],[3257.37,1097.86,36.5333,162.298,-62.4256],[3203.3,1198.93,35.8167,157.49,-61.2368],[3147.49,1298.02,35.0833,152.561,-59.9314],[3087.35,1398.94,34.3,147.297,-58.4273],[3024.09,1498.67,33.4833,141.829,-56.7254],[2956.34,1598.28,32.6167,136.071,-54.7524],[2881.38,1699.99,31.6667,129.847,-52.3678],[2801.72,1798.47,30.6667,123.442,-49.5739],[2710.53,1899.29,29.5333,116.44,-46.0068],[2606.17,1999.38,28.25,108.974,-41.3805]]], + [66,2309.76,[[4169.57,-2002.63,52.4,253.516,-77.1252],[4145.94,-1900.08,51.9833,251.549,-76.917],[4123.08,-1802.47,51.5833,249.633,-76.7123],[4099.09,-1701.67,51.1667,247.61,-76.4942],[4074.9,-1601.8,50.75,245.559,-76.2706],[4050.53,-1502.85,50.3333,243.479,-76.0415],[4024.98,-1400.96,49.9,241.286,-75.7971],[3999.23,-1300.1,49.4667,239.063,-75.5462],[3973.27,-1200.29,49.0333,236.81,-75.2885],[3947.12,-1101.55,48.6,234.526,-75.0238],[3919.74,-1000.17,48.15,232.122,-74.7411],[3893.17,-903.661,47.7167,229.777,-74.4612],[3864.33,-800.979,47.25,227.217,-74.1508],[3836.3,-703.211,46.8,224.716,-73.8423],[3807.01,-603.132,46.3333,222.089,-73.5124],[3776.42,-500.908,45.85,219.333,-73.1595],[3745.59,-400.16,45.3667,216.54,-72.7947],[3714.52,-300.909,44.8833,213.712,-72.4173],[3683.2,-203.178,44.4,210.849,-72.0266],[3649.45,-100.413,43.8833,207.75,-71.5936],[3616.52,-2.66542,43.3833,204.715,-71.1586],[3581.12,99.7238,42.85,201.439,-70.6761],[3546.55,197.041,42.3333,198.228,-70.1896],[3509.45,298.582,41.7833,194.772,-69.6496],[3472.05,397.972,41.2333,191.277,-69.0854],[3433.21,498.09,40.6667,187.637,-68.4771],[3392.89,598.696,40.0833,183.853,-67.8203],[3351.08,699.538,39.4833,179.922,-67.11],[3308.92,797.663,38.8833,175.956,-66.3616],[3264.05,898.249,38.25,171.735,-65.5273],[3217.62,998.239,37.6,167.37,-64.6194],[3168.39,1099.76,36.9167,162.751,-63.6038],[3117.53,1199.89,36.2167,157.996,-62.4923],[3065.02,1298.27,35.5,153.111,-61.2723],[3008.35,1398.82,34.7333,147.878,-59.8658],[2948.7,1498.5,33.9333,142.425,-58.2741],[2884.76,1598.44,33.0833,136.659,-56.4276],[2815.17,1699.24,32.1667,130.503,-54.2343],[2739.81,1799.18,31.1833,124.014,-51.6169],[2655.98,1899.33,30.1,117.065,-48.3705],[2560.86,1999.16,28.8833,109.619,-44.2021]]], + [67,2343.66,[[4031.68,-2000.02,52.6667,253.809,-77.6291],[4009.85,-1901.25,52.2667,251.917,-77.4372],[3987.85,-1803.29,51.8667,249.998,-77.2409],[3964.76,-1702.13,51.45,247.972,-77.0315],[3941.48,-1601.88,51.0333,245.918,-76.817],[3918.03,-1502.56,50.6167,243.835,-76.5972],[3893.44,-1400.27,50.1833,241.638,-76.3626],[3869.61,-1302.89,49.7667,239.496,-76.1312],[3844.64,-1202.64,49.3333,237.239,-75.8842],[3819.48,-1103.45,48.9,234.95,-75.6305],[3793.14,-1001.6,48.45,232.541,-75.3595],[3766.59,-900.924,48,230.099,-75.0807],[3739.83,-801.451,47.55,227.624,-74.7935],[3712.86,-703.197,47.1,225.115,-74.4978],[3684.68,-602.609,46.6333,222.48,-74.1815],[3656.27,-503.371,46.1667,219.81,-73.855],[3626.61,-402.032,45.6833,217.008,-73.5056],[3596.72,-302.185,45.2,214.17,-73.1441],[3565.54,-200.487,44.7,211.196,-72.7568],[3534.12,-100.434,44.2,208.184,-72.3552],[3502.45,-2.05016,43.7,205.135,-71.9384],[3469.46,97.8342,43.1833,201.946,-71.4908],[3435.13,199.015,42.65,198.614,-71.0099],[3400.53,298.211,42.1167,195.244,-70.5084],[3364.56,398.397,41.5667,191.728,-69.9684],[3327.2,499.344,41,188.065,-69.386],[3289.53,597.948,40.4333,184.363,-68.7755],[3249.32,699.76,39.8333,180.403,-68.0961],[3208.78,798.865,39.2333,176.404,-67.3802],[3166.78,897.862,38.6167,172.258,-66.6033],[3122.13,999.021,37.9667,167.851,-65.7356],[3075.95,1099.33,37.3,163.298,-64.7889],[3028.23,1198.46,36.6167,158.602,-63.7533],[2977.75,1298.36,35.9,153.654,-62.5893],[2924.47,1398.39,35.15,148.46,-61.2768],[2867.15,1499.92,34.35,142.917,-59.7583],[2806.9,1599.91,33.5167,137.157,-58.0309],[2742.47,1699.38,32.6333,131.092,-56.0168],[2672.54,1798.76,31.6833,124.653,-53.6114],[2594.52,1899.29,30.6333,117.691,-50.6216],[2506.97,1999.36,29.4667,110.236,-46.827]]], + [68,2376.46,[[3891.34,-2004.14,52.95,254.215,-78.1466],[3869.5,-1900.9,52.5333,252.243,-77.9552],[3848.37,-1802.61,52.1333,250.322,-77.7671],[3826.19,-1701.11,51.7167,248.293,-77.5665],[3803.83,-1600.52,51.3,246.234,-77.361],[3781.29,-1500.86,50.8833,244.147,-77.1503],[3758.59,-1402.13,50.4667,242.031,-76.9343],[3734.79,-1300.46,50.0333,239.799,-76.7039],[3711.72,-1203.69,49.6167,237.624,-76.4764],[3686.62,-1100.28,49.1667,235.242,-76.224],[3662.26,-1001.79,48.7333,232.916,-75.9741],[3636.76,-900.675,48.2833,230.468,-75.7071],[3611.06,-800.753,47.8333,227.986,-75.4322],[3585.15,-702.045,47.3833,225.471,-75.149],[3558.08,-600.982,46.9167,222.827,-74.8462],[3530.8,-501.264,46.45,220.148,-74.5336],[3503.3,-402.91,45.9833,217.433,-74.2107],[3474.59,-302.503,45.5,214.585,-73.865],[3444.66,-200.221,45,211.6,-73.4945],[3415.49,-102.905,44.5167,208.677,-73.1233],[3384.07,-0.595032,44,205.513,-72.7115],[3352.39,99.913,43.4833,202.308,-72.2833],[3320.46,198.592,42.9667,199.065,-71.8377],[3287.24,298.508,42.4333,195.676,-71.3584],[3252.7,399.443,41.8833,192.14,-70.8421],[3217.89,498.212,41.3333,188.564,-70.3021],[3181.73,597.673,40.7667,184.838,-69.7191],[3144.21,697.586,40.1833,180.962,-69.0887],[3105.3,797.694,39.5833,176.934,-68.4058],[3064.99,897.732,38.9667,172.754,-67.6646],[3023.24,997.42,38.3333,168.422,-66.8583],[2978.93,1098.96,37.6667,163.824,-65.9558],[2933.13,1199.37,36.9833,159.078,-64.9682],[2885.82,1298.33,36.2833,154.187,-63.8843],[2834.71,1399.9,35.5333,148.923,-62.6332],[2782,1498.89,34.7667,143.53,-61.2475],[2725.37,1598.89,33.95,137.787,-59.6382],[2664.75,1698.75,33.0833,131.716,-57.7608],[2598.87,1799,32.15,125.237,-55.5161],[2526.45,1899.44,31.1333,118.296,-52.7681],[2446.14,1999.08,30.0167,110.886,-49.3257]]], + [69,2408.13,[[3745.96,-2002.61,53.2,254.502,-78.655],[3725.86,-1903.19,52.8,252.607,-78.4793],[3704.76,-1800.48,52.3833,250.603,-78.2919],[3684.35,-1702.72,51.9833,248.652,-78.1078],[3662.92,-1601.77,51.5667,246.591,-77.9114],[3641.32,-1501.75,51.15,244.501,-77.71],[3619.55,-1402.66,50.7333,242.382,-77.5036],[3596.74,-1300.61,50.3,240.146,-77.2833],[3574.63,-1203.47,49.8833,237.966,-77.0659],[3551.46,-1103.48,49.45,235.668,-76.8337],[3527.21,-1000.77,49,233.248,-76.5858],[3503.68,-902.982,48.5667,230.885,-76.3402],[3479.05,-802.599,48.1167,228.398,-76.0777],[3454.23,-703.424,47.6667,225.876,-75.8073],[3428.28,-601.872,47.2,223.225,-75.5181],[3402.13,-501.659,46.7333,220.538,-75.2196],[3375.78,-402.805,46.2667,217.815,-74.9113],[3348.27,-301.875,45.7833,214.957,-74.581],[3320.54,-202.447,45.3,212.061,-74.2392],[3291.63,-101.196,44.8,209.026,-73.8726],[3262.49,-1.60023,44.3,205.951,-73.4922],[3232.13,99.549,43.7833,202.733,-73.0836],[3201.54,198.876,43.2667,199.475,-72.6585],[3169.71,299.468,42.7333,196.069,-72.201],[3137.62,398.059,42.2,192.622,-71.7236],[3104.26,497.605,41.65,189.026,-71.2088],[3069.62,597.876,41.0833,185.278,-70.653],[3033.68,698.63,40.5,181.376,-70.0518],[2996.4,799.614,39.9,177.319,-69.4005],[2958.82,897.87,39.3,173.22,-68.7129],[2918.83,998.582,38.6667,168.852,-67.9446],[2877.45,1098.69,38.0167,164.328,-67.1065],[2834.67,1197.89,37.35,159.651,-66.19],[2789.36,1298.2,36.65,154.706,-65.1592],[2741.51,1399,35.9167,149.496,-63.9963],[2691.04,1499.62,35.15,144.028,-62.6792],[2637.94,1599.34,34.35,138.312,-61.181],[2581.02,1699.3,33.5,132.249,-59.4322],[2520.22,1798.32,32.6,125.865,-57.3794],[2452.06,1899.99,31.6,118.858,-54.8182],[2378.67,1998.58,30.5333,111.544,-51.7063]]], + [70,2438.62,[[3597.34,-2003.77,53.45,254.827,-79.1696],[3578.12,-1904.04,53.05,252.929,-79.0019],[3557.93,-1801.01,52.6333,250.923,-78.8232],[3538.41,-1702.94,52.2333,248.97,-78.6475],[3517.91,-1601.67,51.8167,246.906,-78.4601],[3497.25,-1501.31,51.4,244.813,-78.268],[3476.44,-1401.89,50.9833,242.69,-78.0711],[3455.46,-1303.41,50.5667,240.537,-77.8692],[3433.47,-1202,50.1333,238.266,-77.6535],[3411.31,-1101.65,49.7,235.963,-77.432],[3388.98,-1002.37,49.2667,233.627,-77.2043],[3365.6,-900.411,48.8167,231.167,-76.9611],[3342.92,-803.352,48.3833,228.766,-76.72],[3318.3,-700.077,47.9167,226.144,-76.4526],[3294.38,-601.736,47.4667,223.581,-76.1867],[3269.37,-501.062,47,220.886,-75.9021],[3244.17,-401.743,46.5333,218.154,-75.6081],[3217.86,-300.327,46.05,215.286,-75.2933],[3191.34,-200.407,45.5667,212.38,-74.9674],[3164.62,-102.007,45.0833,209.435,-74.6297],[3136.75,-1.83632,44.5833,206.349,-74.2674],[3107.73,99.9133,44.0667,203.117,-73.8783],[3078.48,199.847,43.55,199.844,-73.4733],[3049,297.938,43.0333,196.53,-73.0514],[3018.32,397.231,42.5,193.066,-72.5971],[2986.44,497.509,41.95,189.451,-72.1073],[2953.33,598.541,41.3833,185.681,-71.5783],[2919.95,697.221,40.8167,181.867,-71.0228],[2884.32,799.102,40.2167,177.784,-70.4035],[2848.41,898.266,39.6167,173.656,-69.7498],[2810.19,999.946,38.9833,169.253,-69.019],[2771.65,1098.51,38.35,164.808,-68.2427],[2730.76,1198.83,37.6833,160.087,-67.3717],[2688.51,1297.97,37,155.21,-66.416],[2643.82,1397.86,36.2833,150.061,-65.3378],[2596.66,1497.86,35.5333,144.643,-64.1169],[2545.94,1599.33,34.7333,138.845,-62.6973],[2492.64,1699.23,33.9,132.801,-61.0728],[2435.65,1798.58,33.0167,126.413,-59.1649],[2372.74,1899.46,32.05,119.479,-56.8235],[2303.77,1999.61,31,112.069,-53.9282]]], + [71,2467.91,[[3444.75,-2003.49,53.6833,255.111,-79.6834],[3426.41,-1903.48,53.2833,253.211,-79.5238],[3407.15,-1800.15,52.8667,251.202,-79.3537],[3388.52,-1701.79,52.4667,249.246,-79.1864],[3368.96,-1600.22,52.05,247.179,-79.008],[3350.04,-1503.57,51.65,245.167,-78.8325],[3330.18,-1403.79,51.2333,243.041,-78.6452],[3309.37,-1301.03,50.8,240.798,-78.4453],[3289.19,-1203.19,50.3833,238.61,-78.248],[3268.05,-1102.47,49.95,236.303,-78.0373],[3246.75,-1002.81,49.5167,233.963,-77.8207],[3224.45,-900.458,49.0667,231.498,-77.5894],[3202.81,-803.016,48.6333,229.091,-77.3601],[3180.17,-703.004,48.1833,226.557,-77.1149],[3156.5,-600.574,47.7167,223.892,-76.8526],[3133.5,-503.062,47.2667,221.287,-76.5918],[3109.46,-403.264,46.8,218.548,-76.3124],[3084.37,-301.345,46.3167,215.672,-76.0133],[3059.08,-200.918,45.8333,212.757,-75.7035],[3033.59,-102.005,45.35,209.802,-75.3826],[3007.02,-1.2981,44.85,206.704,-75.0382],[2980.23,97.7391,44.35,203.565,-74.6805],[2952.34,198.297,43.8333,200.279,-74.2959],[2924.23,297.019,43.3167,196.951,-73.8954],[2894.98,396.971,42.7833,193.471,-73.464],[2864.57,497.934,42.2333,189.838,-72.9988],[2833,599.681,41.6667,186.047,-72.4964],[2801.16,699.082,41.1,182.211,-71.9687],[2768.14,798.92,40.5167,178.216,-71.3971],[2733.89,898.939,39.9167,174.06,-70.7767],[2698.41,998.871,39.3,169.742,-70.1018],[2661.68,1098.43,38.6667,165.262,-69.3659],[2622.69,1199.83,38,160.5,-68.54],[2583.39,1297.67,37.3333,155.697,-67.6562],[2540.8,1398.83,36.6167,150.493,-66.6347],[2496.86,1497.97,35.8833,145.133,-65.504],[2449.52,1598.9,35.1,139.38,-64.1889],[2399.75,1698.59,34.2833,133.367,-62.6843],[2345.46,1799.95,33.4,126.865,-60.8807],[2287.59,1899.63,32.4667,120.03,-58.7447],[2223.99,1999.41,31.45,112.668,-56.1012]]], + [72,2495.94,[[3288.29,-2001.79,53.9,255.354,-80.1972],[3270.84,-1901.52,53.5,253.451,-80.0456],[3253.25,-1802.06,53.1,251.521,-79.8905],[3235.52,-1703.4,52.7,249.563,-79.7318],[3216.92,-1601.51,52.2833,247.494,-79.5625],[3198.16,-1500.54,51.8667,245.394,-79.3889],[3179.27,-1400.48,51.45,243.264,-79.211],[3160.22,-1301.37,51.0333,241.103,-79.0286],[3141.03,-1203.2,50.6167,238.912,-78.8413],[3120.92,-1102.14,50.1833,236.601,-78.6414],[3100.65,-1002.13,49.75,234.256,-78.4359],[3080.23,-903.2,49.3167,231.878,-78.2245],[3058.85,-801.621,48.8667,229.374,-77.9987],[3037.31,-701.238,48.4167,226.833,-77.766],[3015.6,-602.068,47.9667,224.257,-77.5261],[2992.91,-500.527,47.5,221.548,-77.2694],[2970.04,-400.332,47.0333,218.801,-77.0043],[2946.99,-301.502,46.5667,216.015,-76.7302],[2922.94,-200.604,46.0833,213.091,-76.4365],[2898.69,-101.214,45.6,210.126,-76.1322],[2873.41,-0.0103197,45.1,207.017,-75.8056],[2847.93,99.5296,44.6,203.866,-75.4664],[2822.26,197.38,44.1,200.674,-75.1136],[2794.66,299.865,43.5667,197.223,-74.7217],[2767.7,397.258,43.05,193.837,-74.3255],[2738.79,498.863,42.5,190.186,-73.8847],[2709.64,598.297,41.95,186.489,-73.4229],[2679.38,698.442,41.3833,182.632,-72.9235],[2647.97,799.052,40.8,178.613,-72.3824],[2615.41,899.875,40.2,174.431,-71.7951],[2582.58,997.955,39.6,170.202,-71.1738],[2547.66,1098.47,38.9667,165.689,-70.4779],[2511.53,1198.35,38.3167,161.009,-69.7168],[2473.24,1299.73,37.6333,156.042,-68.8602],[2433.69,1399.66,36.9333,150.909,-67.9163],[2392.86,1497.81,36.2167,145.614,-66.8724],[2348.83,1598.07,35.45,139.915,-65.6579],[2301.54,1699.4,34.6333,133.818,-64.2383],[2251.9,1798.78,33.7833,127.461,-62.6026],[2197.9,1898.9,32.8667,120.62,-60.6287],[2138.48,1999.65,31.8667,113.212,-58.1829]]], + [73,2522.68,[[3128.79,-2002.91,54.1167,255.635,-80.7174],[3112.23,-1902.38,53.7167,253.731,-80.5739],[3095.55,-1802.64,53.3167,251.799,-80.4272],[3078.74,-1703.72,52.9167,249.839,-80.277],[3061.09,-1601.54,52.5,247.767,-80.1168],[3043.31,-1500.28,52.0833,245.665,-79.9526],[3026.1,-1403.93,51.6833,243.617,-79.791],[3007.32,-1300.52,51.25,241.367,-79.6115],[2989.12,-1202.05,50.8333,239.172,-79.4343],[2970.04,-1100.67,50.4,236.856,-79.245],[2950.82,-1000.35,49.9667,234.507,-79.0505],[2931.44,-901.098,49.5333,232.124,-78.8504],[2911.92,-802.935,49.1,229.707,-78.6447],[2891.49,-702.168,48.65,227.161,-78.4246],[2870.9,-602.61,48.2,224.579,-78.1978],[2849.39,-500.662,47.7333,221.864,-77.9551],[2827.7,-400.054,47.2667,219.109,-77.7044],[2805.84,-300.809,46.8,216.316,-77.4453],[2783.82,-202.944,46.3333,213.485,-77.1772],[2760.83,-103.063,45.85,210.512,-76.8898],[2736.87,-1.3444,45.35,207.393,-76.5813],[2712.71,98.7155,44.85,204.232,-76.2608],[2688.37,197.092,44.35,201.028,-75.9276],[2663.02,296.952,43.8333,197.673,-75.569],[2636.64,398.09,43.3,194.163,-75.1828],[2610.06,497.225,42.7667,190.608,-74.7792],[2582.43,597.328,42.2167,186.893,-74.3433],[2553.74,698.168,41.65,183.017,-73.8719],[2523.97,799.502,41.0667,178.977,-73.3612],[2493.96,898.291,40.4833,174.887,-72.8224],[2461.98,999.916,39.8667,170.513,-72.2198],[2429.75,1098.61,39.25,166.088,-71.5801],[2395.5,1199.42,38.6,161.373,-70.8621],[2360.09,1299.32,37.9333,156.487,-70.0741],[2323.5,1398.01,37.25,151.432,-69.2065],[2283.92,1499.67,36.5167,145.96,-68.2001],[2243.1,1599.01,35.7667,140.322,-67.0802],[2199.21,1699.75,34.9667,134.273,-65.7708],[2153.1,1798.86,34.1333,127.95,-64.2625],[2102.88,1899.12,33.2333,121.118,-62.4413],[2048.48,1998.84,32.2667,113.809,-60.2232]]], + [74,2548.12,[[2965.62,-2002.67,54.3167,255.877,-81.2381],[2949.98,-1901.89,53.9167,253.971,-81.1028],[2934.21,-1801.91,53.5167,252.037,-80.9643],[2918.31,-1702.74,53.1167,250.074,-80.8226],[2901.63,-1600.3,52.7,248,-80.6714],[2885.5,-1502.82,52.3,245.979,-80.5228],[2868.56,-1402.17,51.8833,243.843,-80.364],[2851.49,-1302.45,51.4667,241.677,-80.2012],[2834.29,-1203.67,51.05,239.479,-80.0342],[2816.26,-1101.97,50.6167,237.16,-79.8558],[2798.09,-1001.31,50.1833,234.807,-79.6725],[2779.78,-901.729,49.75,232.419,-79.4839],[2761.33,-803.23,49.3167,229.998,-79.2899],[2742.03,-702.109,48.8667,227.447,-79.0825],[2722.57,-602.194,48.4167,224.86,-78.8687],[2702.96,-503.503,47.9667,222.235,-78.6482],[2682.47,-402.47,47.5,219.475,-78.4121],[2661.82,-302.793,47.0333,216.676,-78.1681],[2640.27,-201.008,46.55,213.735,-77.9065],[2618.54,-100.723,46.0667,210.753,-77.6355],[2596.65,-1.96116,45.5833,207.729,-77.3544],[2573.82,98.5803,45.0833,204.557,-77.0525],[2550.82,197.443,44.5833,201.342,-76.7387],[2526.87,297.811,44.0667,197.974,-76.401],[2501.95,399.479,43.5333,194.451,-76.0371],[2476.83,499.149,43,190.879,-75.6568],[2450.72,599.808,42.45,187.147,-75.2461],[2424.41,698.279,41.9,183.367,-74.8152],[2397.09,797.408,41.3333,179.423,-74.3485],[2367.93,899.758,40.7333,175.193,-73.8272],[2338.54,999.383,40.1333,170.911,-73.2756],[2308.09,1098.89,39.5167,166.459,-72.6742],[2276.57,1198,38.8833,161.833,-72.0167],[2243.13,1298.89,38.2167,156.911,-71.2767],[2208.58,1398.6,37.5333,151.813,-70.4615],[2172.05,1499.08,36.8167,146.416,-69.5379],[2133.5,1599.67,36.0667,140.72,-68.4867],[2092.92,1699.68,35.2833,134.728,-67.2836],[2050.26,1798.37,34.4667,128.449,-65.8982],[2003.73,1898.61,33.5833,121.64,-64.2247],[1953.27,1998.75,32.6333,114.324,-62.1852]]], + [75,2572.19,[[2798.94,-2001.13,54.5,256.08,-81.7599],[2784.2,-1900.13,54.1,254.171,-81.6326],[2769.97,-1804.09,53.7167,252.316,-81.508],[2754.39,-1700.53,53.3,250.269,-81.3692],[2739.31,-1601.95,52.9,248.275,-81.2328],[2723.48,-1500.15,52.4833,246.167,-81.0873],[2708.18,-1403.27,52.0833,244.115,-80.9441],[2692.11,-1303.28,51.6667,241.945,-80.7912],[2675.26,-1200.28,51.2333,239.656,-80.628],[2658.94,-1102.21,50.8167,237.422,-80.4668],[2641.84,-1001.26,50.3833,235.065,-80.2945],[2624.6,-901.372,49.95,232.673,-80.1174],[2607.24,-802.566,49.5167,230.247,-79.9352],[2589.06,-701.123,49.0667,227.691,-79.7404],[2570.74,-600.882,48.6167,225.098,-79.5395],[2552.28,-501.862,48.1667,222.467,-79.3324],[2532.99,-400.484,47.7,219.7,-79.1105],[2513.55,-300.46,47.2333,216.893,-78.8813],[2493.96,-201.808,46.7667,214.046,-78.6441],[2473.51,-101.104,46.2833,211.056,-78.3897],[2452.91,-1.91757,45.8,208.023,-78.126],[2431.42,99.0671,45.3,204.842,-77.8426],[2409.77,198.378,44.8,201.616,-77.548],[2387.23,299.213,44.2833,198.236,-77.231],[2364.51,398.206,43.7667,194.81,-76.9003],[2340.87,498.43,43.2333,191.225,-76.5437],[2316.3,599.668,42.6833,187.478,-76.1586],[2291.54,698.723,42.1333,183.681,-75.7545],[2265.83,798.46,41.5667,179.717,-75.3168],[2239.15,898.636,40.9833,175.584,-74.8418],[2211.5,998.993,40.3833,171.279,-74.325],[2182.85,1099.26,39.7667,166.8,-73.7615],[2153.2,1199.16,39.1333,162.144,-73.1453],[2122.52,1298.39,38.4833,157.311,-72.4695],[2090.01,1399.06,37.8,152.174,-71.7064],[2056.45,1498.24,37.1,146.858,-70.8623],[2021,1597.8,36.3667,141.237,-69.902],[1982.83,1699.17,35.5833,135.182,-68.7785],[1942.7,1799.29,34.7667,128.827,-67.4837],[1899.77,1899.23,33.9,122.053,-65.9493],[1853.15,1999.48,32.9667,114.746,-64.0785]]], + [76,2594.88,[[2629.44,-2002.52,54.6833,256.322,-82.2882],[2615.63,-1901.3,54.2833,254.412,-82.1692],[2601.72,-1800.86,53.8833,252.474,-82.0474],[2587.69,-1701.23,53.4833,250.507,-81.9228],[2573.56,-1602.42,53.0833,248.511,-81.7952],[2558.73,-1500.36,52.6667,246.401,-81.659],[2544.38,-1403.25,52.2667,244.346,-81.5251],[2529.32,-1303,51.85,242.173,-81.3821],[2514.15,-1203.68,51.4333,239.969,-81.2353],[2498.24,-1101.41,51,237.643,-81.0785],[2482.21,-1000.18,50.5667,235.282,-80.9174],[2466.06,-900.02,50.1333,232.886,-80.7518],[2449.78,-800.937,49.7,230.455,-80.5813],[2433.38,-702.948,49.2667,227.989,-80.4058],[2416.21,-602.368,48.8167,225.392,-80.2181],[2398.92,-503.006,48.3667,222.756,-80.0245],[2380.84,-401.269,47.9,219.983,-79.8172],[2362.62,-300.881,47.4333,217.17,-79.6029],[2344.27,-201.863,46.9667,214.316,-79.3812],[2325.11,-100.774,46.4833,211.318,-79.1435],[2305.8,-1.19988,46,208.277,-78.8969],[2286.34,96.8373,45.5167,205.193,-78.641],[2265.38,199.91,45,201.85,-78.3566],[2244.93,297.935,44.5,198.569,-78.07],[2223.65,397.419,43.9833,195.131,-77.7612],[2201.5,498.156,43.45,191.534,-77.4282],[2178.48,599.928,42.9,187.772,-77.0686],[2155.29,699.522,42.35,183.959,-76.6912],[2131.2,799.82,41.7833,179.977,-76.2823],[2106.92,897.736,41.2167,175.943,-75.8515],[2081.02,998.775,40.6167,171.617,-75.3694],[2054.18,1099.75,40,167.113,-74.8435],[2027.14,1197.78,39.3833,162.553,-74.284],[1998.41,1297.86,38.7333,157.689,-73.6542],[1967.96,1399.42,38.05,152.516,-72.9428],[1936.52,1499.54,37.35,147.158,-72.1556],[1904.08,1597.85,36.6333,141.616,-71.2808],[1869.1,1698.26,35.8667,135.633,-70.2573],[1831.53,1799.73,35.05,129.209,-69.0526],[1792.11,1899.22,34.2,122.48,-67.6527],[1749.24,1999.43,33.2833,115.197,-65.9453]]], + [77,2616.16,[[2456.65,-2002.65,54.85,256.526,-82.8179],[2443.78,-1901.22,54.45,254.615,-82.7071],[2430.8,-1800.58,54.05,252.675,-82.5937],[2417.72,-1700.74,53.65,250.706,-82.4777],[2404.55,-1601.71,53.25,248.707,-82.3589],[2391.27,-1503.51,52.85,246.68,-82.2373],[2377.34,-1402.11,52.4333,244.537,-82.1075],[2363.29,-1301.63,52.0167,242.361,-81.9743],[2349.14,-1202.09,51.6,240.154,-81.8377],[2334.88,-1103.49,51.1833,237.914,-81.6974],[2319.94,-1001.98,50.75,235.55,-81.5476],[2304.88,-901.533,50.3167,233.151,-81.3935],[2289.71,-802.159,49.8833,230.717,-81.2349],[2273.83,-700.12,49.4333,228.151,-81.0653],[2258.42,-602.99,49,225.645,-80.8971],[2242.29,-503.316,48.55,223.004,-80.7171],[2225.44,-401.253,48.0833,220.226,-80.5242],[2208.46,-300.535,47.6167,217.406,-80.3249],[2191.35,-201.184,47.15,214.546,-80.1187],[2174.1,-103.22,46.6833,211.645,-79.9052],[2156.1,-3.24164,46.2,208.597,-79.6761],[2137.34,98.5712,45.7,205.398,-79.43],[2118.43,198.718,45.2,202.153,-79.1741],[2099.38,297.175,44.7,198.863,-78.9077],[2079.54,397.109,44.1833,195.414,-78.6208],[2058.9,498.316,43.65,191.805,-78.3113],[2038.09,597.511,43.1167,188.144,-77.9873],[2016.47,697.666,42.5667,184.318,-77.637],[1994.03,798.548,42,180.32,-77.2575],[1970.74,899.914,41.4167,176.149,-76.8454],[1947.26,998.723,40.8333,171.923,-76.4098],[1922.93,1097.65,40.2333,167.519,-75.9351],[1897.05,1199.04,39.6,162.81,-75.4018],[1870.27,1299.83,38.95,157.916,-74.8165],[1842.59,1399.69,38.2833,152.836,-74.172],[1814,1498.31,37.6,147.568,-73.4596],[1783.07,1599.88,36.8667,141.853,-72.6292],[1751.18,1699.11,36.1167,135.947,-71.7001],[1716.9,1799.69,35.3167,129.59,-70.6064],[1680.9,1898.62,34.4833,122.918,-69.3363],[1641.7,1998.64,33.5833,115.672,-67.7871]]], + [78,2635.99,[[2280.73,-2001.55,55,256.692,-83.3496],[2269.29,-1904.16,54.6167,254.859,-83.2513],[2257.27,-1803.3,54.2167,252.918,-83.1465],[2245.15,-1703.24,53.8167,250.948,-83.0392],[2232.94,-1603.99,53.4167,248.948,-82.9293],[2220.13,-1501.48,53,246.834,-82.8121],[2207.73,-1403.93,52.6,244.774,-82.6968],[2194.72,-1303.21,52.1833,242.597,-82.5736],[2181.6,-1203.43,51.7667,240.387,-82.4472],[2167.86,-1100.66,51.3333,238.055,-82.3123],[2154.54,-1002.83,50.9167,235.778,-82.1789],[2140.59,-902.116,50.4833,233.376,-82.0364],[2126.52,-802.481,50.05,230.938,-81.8898],[2111.81,-700.167,49.6,228.368,-81.7329],[2097.53,-602.771,49.1667,225.858,-81.5773],[2082.59,-502.817,48.7167,223.212,-81.4107],[2066.97,-400.46,48.25,220.428,-81.2324],[2051.79,-303.031,47.8,217.704,-81.0547],[2035.94,-203.332,47.3333,214.839,-80.8641],[2019.39,-101.531,46.85,211.827,-80.6598],[2002.71,-1.23603,46.3667,208.771,-80.4478],[1985.9,97.5287,45.8833,205.671,-80.2279],[1968.38,198.065,45.3833,202.418,-79.9913],[1950.73,296.914,44.8833,199.119,-79.7452],[1932.35,397.26,44.3667,195.66,-79.48],[1913.22,498.895,43.8333,192.039,-79.194],[1893.95,598.521,43.3,188.366,-78.8945],[1873.92,699.126,42.75,184.525,-78.5707],[1853.73,797.53,42.2,180.631,-78.2303],[1832.15,899.455,41.6167,176.443,-77.8499],[1810.41,998.829,41.0333,172.198,-77.4477],[1787.87,1098.34,40.4333,167.773,-77.0092],[1764.52,1197.71,39.8167,163.166,-76.53],[1739.72,1299.23,39.1667,158.245,-75.9902],[1714.09,1399.86,38.5,153.135,-75.3957],[1687.6,1499.27,37.8167,147.832,-74.7383],[1659.6,1599.41,37.1,142.206,-73.9899],[1630.07,1699.62,36.35,136.253,-73.1334],[1598.98,1799.21,35.5667,129.972,-72.1469],[1565.65,1899.36,34.7333,123.231,-70.9772],[1530.02,1998.92,33.85,116.033,-69.5772]]], + [79,2654.35,[[2102.31,-2003.49,55.15,256.899,-83.8875],[2091.33,-1901.68,54.75,254.985,-83.7933],[2080.26,-1800.66,54.35,253.042,-83.6969],[2069.1,-1700.44,53.95,251.069,-83.5982],[2057.87,-1601.03,53.55,249.067,-83.4972],[2046.54,-1502.44,53.15,247.035,-83.3938],[2034.66,-1400.63,52.7333,244.887,-83.2833],[2023.16,-1303.76,52.3333,242.794,-83.1746],[2011.09,-1203.76,51.9167,240.582,-83.0585],[1998.44,-1100.76,51.4833,238.246,-82.9345],[1986.19,-1002.71,51.0667,235.967,-82.812],[1973.35,-901.775,50.6333,233.561,-82.681],[1960.41,-801.907,50.2,231.119,-82.5463],[1947.37,-703.127,49.7667,228.642,-82.4076],[1933.72,-601.716,49.3167,226.031,-82.2593],[1919.97,-501.515,48.8667,223.38,-82.1062],[1906.12,-402.54,48.4167,220.691,-81.9482],[1891.64,-301.215,47.95,217.861,-81.779],[1877.04,-201.251,47.4833,214.989,-81.6039],[1862.34,-102.667,47.0167,212.075,-81.4227],[1847,-2.03993,46.5333,209.013,-81.2281],[1831.53,97.0607,46.05,205.906,-81.0262],[1815.41,197.948,45.55,202.645,-80.8091],[1799.17,297.152,45.05,199.337,-80.5831],[1782.26,397.867,44.5333,195.869,-80.3397],[1764.66,499.888,44,192.237,-80.077],[1746.93,599.905,43.4667,188.552,-79.8021],[1729.06,697.886,42.9333,184.815,-79.5139],[1709.92,799.728,42.3667,180.788,-79.1921],[1690.64,899.203,41.8,176.705,-78.8529],[1670.64,999.093,41.2167,172.443,-78.484],[1649.9,1099.14,40.6167,167.998,-78.0818],[1628.43,1199.07,40,163.369,-77.6421],[1606.2,1298.6,39.3667,158.551,-77.1598],[1582.62,1399.93,38.7,153.412,-76.615],[1558.85,1497.67,38.0333,148.209,-76.0277],[1533.11,1598.68,37.3167,142.546,-75.3429],[1505.95,1699.81,36.5667,136.55,-74.5589],[1477.97,1798.28,35.8,130.353,-73.6755],[1447.31,1899.59,34.9667,123.549,-72.6058],[1415.18,1998.55,34.1,116.411,-71.3502]]], + [80,2671.21,[[1921.03,-2004.25,55.2833,257.07,-84.4276],[1911.01,-1902.28,54.8833,255.154,-84.3417],[1900.91,-1801.1,54.4833,253.21,-84.2539],[1890.73,-1700.7,54.0833,251.235,-84.164],[1880.47,-1601.12,53.6833,249.232,-84.0719],[1870.14,-1502.35,53.2833,247.198,-83.9776],[1859.29,-1400.36,52.8667,245.047,-83.877],[1848.8,-1303.31,52.4667,242.952,-83.778],[1837.79,-1203.12,52.05,240.737,-83.6721],[1826.69,-1103.88,51.6333,238.489,-83.5635],[1815.06,-1001.69,51.2,236.116,-83.4474],[1803.35,-900.549,50.7667,233.707,-83.3281],[1791.54,-800.478,50.3333,231.262,-83.2053],[1779.64,-701.494,49.9,228.78,-83.0789],[1767.65,-603.61,49.4667,226.262,-82.9487],[1755.1,-503.146,49.0167,223.608,-82.8093],[1741.99,-400.254,48.55,220.815,-82.6601],[1729.25,-302.304,48.1,218.081,-82.5114],[1715.94,-202.058,47.6333,215.204,-82.352],[1702.52,-103.191,47.1667,212.285,-82.187],[1688.52,-2.26724,46.6833,209.217,-82.0098],[1674.41,97.1333,46.2,206.103,-81.8259],[1659.71,198.334,45.7,202.835,-81.6282],[1644.88,297.854,45.2,199.518,-81.4224],[1629.45,398.9,44.6833,196.041,-81.2007],[1613.9,498.096,44.1667,192.513,-80.9691],[1597.72,598.524,43.6333,188.819,-80.719],[1580.91,699.962,43.0833,184.953,-80.4485],[1563.97,799.207,42.5333,181.032,-80.1641],[1546.38,899.131,41.9667,176.935,-79.8555],[1528.13,999.489,41.3833,172.657,-79.5198],[1509.74,1097.27,40.8,168.32,-79.1643],[1490.15,1197.78,40.1833,163.672,-78.7647],[1469.88,1297.92,39.55,158.832,-78.3264],[1448.37,1399.89,38.8833,153.668,-77.8313],[1426.7,1498.28,38.2167,148.437,-77.2973],[1403.21,1599.99,37.5,142.74,-76.6744],[1379,1699.66,36.7667,136.838,-75.9777],[1353.48,1799,36,130.595,-75.1753],[1326.08,1899.3,35.1833,123.871,-74.2236],[1296.78,1999.39,34.3167,116.664,-73.0842]]], + [81,2686.54,[[1737.09,-2003.84,55.4,257.203,-84.9702],[1728.03,-1901.73,55,255.286,-84.8927],[1718.91,-1800.4,54.6,253.34,-84.8134],[1710.1,-1704.03,54.2167,251.447,-84.7356],[1700.45,-1600.13,53.8,249.358,-84.6491],[1691.11,-1501.21,53.4,247.322,-84.5641],[1681.71,-1403.13,53,245.256,-84.4769],[1671.84,-1301.85,52.5833,243.072,-84.3839],[1661.89,-1201.51,52.1667,240.855,-84.2883],[1651.86,-1102.1,51.75,238.604,-84.1903],[1641.76,-1003.66,51.3333,236.32,-84.0897],[1631.18,-902.306,50.9,233.908,-83.9821],[1620.51,-802.02,50.4667,231.46,-83.8713],[1609.77,-702.817,50.0333,228.976,-83.7573],[1598.52,-600.963,49.5833,226.357,-83.6354],[1587.19,-500.313,49.1333,223.699,-83.5096],[1575.77,-400.885,48.6833,221,-83.3798],[1564.26,-302.699,48.2333,218.262,-83.2457],[1552.23,-202.207,47.7667,215.381,-83.102],[1540.12,-103.09,47.3,212.456,-82.9532],[1527.47,-1.90503,46.8167,209.382,-82.7934],[1514.73,97.7591,46.3333,206.263,-82.6276],[1501.45,199.235,45.8333,202.987,-82.4493],[1488.06,299.034,45.3333,199.663,-82.2637],[1474.57,397.129,44.8333,196.291,-82.0703],[1460.08,499.859,44.3,192.64,-81.8549],[1445.92,597.474,43.7833,189.052,-81.6365],[1430.74,699.296,43.2333,185.176,-81.3928],[1415.44,798.929,42.6833,181.244,-81.1366],[1399.56,899.257,42.1167,177.134,-80.8585],[1383.55,997.19,41.55,172.965,-80.5649],[1366.48,1098.23,40.95,168.488,-80.2357],[1348.79,1199.2,40.3333,163.822,-79.8755],[1330.48,1299.81,39.7,158.961,-79.4805],[1311.54,1399.76,39.05,153.904,-79.0455],[1291.97,1498.74,38.3833,148.646,-78.5648],[1271.27,1598.76,37.6833,143.052,-78.0175],[1249.4,1699.19,36.95,137.116,-77.3912],[1226.37,1799.34,36.1833,130.832,-76.6696],[1202.14,1898.5,35.3833,124.196,-75.8318],[1175.69,1999.65,34.5167,116.929,-74.8083]]], + [82,2700.33,[[1550.69,-2002.29,55.5,257.3,-85.5156],[1542.61,-1900.06,55.1,255.382,-85.4465],[1534.81,-1802.81,54.7167,253.515,-85.3788],[1526.61,-1702.12,54.3167,251.539,-85.3065],[1518.35,-1602.23,53.9167,249.532,-85.2325],[1510.02,-1503.15,53.5167,247.495,-85.1568],[1501.28,-1400.83,53.1,245.341,-85.0759],[1492.83,-1303.46,52.7,243.242,-84.9963],[1483.95,-1202.95,52.2833,241.023,-84.9112],[1475.01,-1103.37,51.8667,238.771,-84.8238],[1465.64,-1000.82,51.4333,236.392,-84.7306],[1456.57,-903.211,51.0167,234.071,-84.6384],[1447.05,-802.738,50.5833,231.621,-84.5398],[1437.47,-703.347,50.15,229.134,-84.4383],[1427.44,-601.296,49.7,226.512,-84.3296],[1417.33,-500.446,49.25,223.85,-84.2176],[1407.14,-400.816,48.8,221.148,-84.102],[1396.88,-302.426,48.35,218.406,-83.9826],[1386.15,-201.721,47.8833,215.52,-83.8545],[1375.35,-102.388,47.4167,212.591,-83.722],[1364.07,-0.977965,46.9333,209.511,-83.5797],[1352.7,98.9138,46.45,206.385,-83.4319],[1341.25,197.264,45.9667,203.214,-83.2785],[1329.32,297.359,45.4667,199.884,-83.1133],[1316.89,399.004,44.95,196.391,-82.9354],[1304.36,498.806,44.4333,192.847,-82.7495],[1291.33,599.865,43.9,189.134,-82.5488],[1278.2,698.899,43.3667,185.366,-82.3383],[1264.56,798.875,42.8167,181.424,-82.1103],[1250.39,899.559,42.25,177.302,-81.8629],[1236.12,997.852,41.6833,173.121,-81.6015],[1220.89,1099.28,41.0833,168.629,-81.3084],[1205.54,1197.95,40.4833,164.073,-80.9967],[1189.22,1299.05,39.85,159.196,-80.6455],[1172.34,1399.51,39.2,154.118,-80.2588],[1154.89,1499.03,38.5333,148.838,-79.8313],[1136.42,1599.62,37.8333,143.217,-79.3446],[1117.37,1698.4,37.1167,137.385,-78.8006],[1096.84,1799.29,36.35,131.065,-78.1596],[1075.24,1899.23,35.55,124.385,-77.4152],[1052.12,1999.33,34.7,117.204,-76.5238]]], + [83,2712.55,[[1362.33,-2003.9,55.6,257.44,-86.0666],[1355.24,-1901.54,55.2,255.521,-86.006],[1348.39,-1804.17,54.8167,253.654,-85.9467],[1341.2,-1703.34,54.4167,251.676,-85.8833],[1333.94,-1603.32,54.0167,249.669,-85.8184],[1326.63,-1504.11,53.6167,247.631,-85.7519],[1318.96,-1401.64,53.2,245.476,-85.681],[1311.23,-1300.09,52.7833,243.287,-85.6083],[1303.75,-1203.47,52.3833,241.155,-85.5367],[1295.91,-1103.75,51.9667,238.901,-85.4601],[1287.68,-1001.05,51.5333,236.52,-85.3783],[1279.71,-903.289,51.1167,234.197,-85.2974],[1271.36,-802.659,50.6833,231.744,-85.211],[1262.95,-703.109,50.25,229.254,-85.1219],[1254.14,-600.891,49.8,226.629,-85.0267],[1245.6,-503.592,49.3667,224.064,-84.9321],[1236.32,-400.073,48.9,221.259,-84.827],[1227.31,-301.511,48.45,218.513,-84.7223],[1217.9,-200.625,47.9833,215.622,-84.61],[1208.41,-101.111,47.5167,212.688,-84.4938],[1198.85,-2.98958,47.05,209.711,-84.3733],[1188.88,97.1466,46.5667,206.581,-84.2439],[1178.48,199.116,46.0667,203.294,-84.1047],[1168,299.413,45.5667,199.958,-83.9599],[1157.44,398.012,45.0667,196.572,-83.8089],[1146.45,498.086,44.55,193.021,-83.6461],[1135.01,599.429,44.0167,189.3,-83.4702],[1123.49,698.749,43.4833,185.524,-83.2858],[1111.52,799.024,42.9333,181.573,-83.0861],[1099.45,897.083,42.3833,177.563,-82.8757],[1086.56,998.627,41.8,173.248,-82.6402],[1073.56,1097.6,41.2167,168.87,-82.3906],[1059.72,1199.39,40.6,164.173,-82.11],[1045.77,1298.23,39.9833,159.408,-81.8105],[1030.96,1399.15,39.3333,154.313,-81.472],[1015.64,1499.14,38.6667,149.013,-81.0978],[999.826,1597.88,37.9833,143.503,-80.6822],[982.722,1699.54,37.25,137.509,-80.1951],[965.093,1798.85,36.5,131.293,-79.6464],[946.143,1899.49,35.7,124.576,-78.9953],[926.251,1998.43,34.8667,117.489,-78.2316]]], + [84,2723.19,[[1171.63,-2000.1,55.6667,257.466,-86.6181],[1165.79,-1901.92,55.2833,255.625,-86.5682],[1159.64,-1800.23,54.8833,253.675,-86.515],[1153.71,-1703.51,54.5,251.778,-86.4628],[1147.47,-1603.38,54.1,249.77,-86.407],[1141.19,-1504.06,53.7,247.731,-86.35],[1134.6,-1401.48,53.2833,245.574,-86.289],[1128.21,-1303.86,52.8833,243.472,-86.229],[1121.52,-1203.08,52.4667,241.25,-86.165],[1114.77,-1103.24,52.05,238.993,-86.0992],[1107.7,-1000.41,51.6167,236.611,-86.0289],[1100.85,-902.528,51.2,234.285,-85.9594],[1093.67,-801.771,50.7667,231.83,-85.8852],[1086.43,-702.091,50.3333,229.338,-85.8087],[1079.14,-603.506,49.9,226.808,-85.7299],[1071.51,-502.306,49.45,224.141,-85.6456],[1063.83,-402.323,49,221.433,-85.5586],[1056.08,-303.575,48.55,218.685,-85.4687],[1047.99,-202.494,48.0833,215.792,-85.3723],[1039.84,-102.783,47.6167,212.855,-85.2725],[1031.32,-0.976981,47.1333,209.767,-85.1654],[1022.75,99.3149,46.65,206.632,-85.0542],[1014.11,198.069,46.1667,203.45,-84.9387],[1005.1,298.586,45.6667,200.109,-84.8144],[996.022,397.407,45.1667,196.718,-84.6847],[986.572,497.714,44.65,193.161,-84.545],[976.742,599.298,44.1167,189.434,-84.394],[966.836,698.864,43.5833,185.651,-84.2357],[956.542,799.393,43.0333,181.691,-84.0643],[946.171,897.709,42.4833,177.673,-83.8837],[935.086,999.527,41.9,173.348,-83.6814],[923.916,1098.78,41.3167,168.958,-83.4671],[912.339,1198.15,40.7167,164.376,-83.2329],[900.351,1297.36,40.1,159.598,-82.9761],[887.617,1398.69,39.45,154.488,-82.6859],[874.455,1499.1,38.7833,149.171,-82.3649],[860.862,1598.27,38.1,143.641,-82.0084],[846.496,1698.13,37.3833,137.76,-81.6005],[831.347,1798.02,36.6333,131.518,-81.1306],[815.062,1899.3,35.8333,124.768,-80.573],[797.967,1998.91,35,117.641,-79.9185]]], + [85,2732.22,[[979.574,-2003.81,55.75,257.615,-87.1767],[974.48,-1901.26,55.35,255.694,-87.1333],[969.56,-1803.71,54.9667,253.825,-87.0907],[964.388,-1702.69,54.5667,251.845,-87.0452],[959.176,-1602.47,54.1667,249.835,-86.9987],[953.925,-1503.07,53.7667,247.794,-86.951],[948.412,-1400.4,53.35,245.636,-86.9001],[943.08,-1302.69,52.95,243.533,-86.8499],[937.483,-1201.82,52.5333,241.308,-86.7964],[931.844,-1101.88,52.1167,239.05,-86.7415],[926.162,-1002.9,51.7,236.758,-86.6851],[920.207,-900.977,51.2667,234.338,-86.6247],[914.207,-800.12,50.8333,231.88,-86.5627],[908.16,-700.34,50.4,229.385,-86.4988],[902.068,-601.654,49.9667,226.852,-86.4329],[895.693,-500.348,49.5167,224.182,-86.3626],[889.269,-400.257,49.0667,221.472,-86.2899],[882.797,-301.402,48.6167,218.72,-86.2147],[876.033,-200.208,48.15,215.823,-86.1343],[869.218,-100.383,47.6833,212.882,-86.0508],[862.351,-1.94758,47.2167,209.897,-85.9645],[855.185,98.5169,46.7333,206.758,-85.8717],[847.965,197.446,46.25,203.573,-85.7753],[840.439,298.145,45.75,200.227,-85.6716],[832.855,397.15,45.25,196.832,-85.5634],[824.959,497.648,44.7333,193.27,-85.4468],[816.745,599.433,44.2,189.537,-85.3207],[808.469,699.2,43.6667,185.748,-85.1886],[799.868,799.94,43.1167,181.781,-85.0455],[791.202,898.468,42.5667,177.755,-84.8947],[782.206,997.634,42,173.545,-84.7308],[772.607,1100,41.4,169.021,-84.547],[762.934,1199.6,40.8,164.428,-84.3513],[752.916,1299.06,40.1833,159.638,-84.1369],[742.55,1398.09,39.55,154.646,-83.9009],[731.555,1498.86,38.8833,149.313,-83.6334],[720.198,1598.4,38.2,143.767,-83.3361],[708.197,1698.66,37.4833,137.865,-82.9958],[695.541,1798.97,36.7333,131.6,-82.6038],[682.22,1898.63,35.95,124.962,-82.1487],[667.941,1998.84,35.1167,117.802,-81.6036]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 862.351; +_maxRange = 4959.15; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg6.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg6.sqf new file mode 100644 index 0000000000..e70e92314d --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_HA_chg6.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_he_pd_chg6 +// Ammo: ace_arty_82mm_he_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,1657.7,[[6779.74,-2002.07,46.75,250.484,-66.236],[6735.83,-1903.23,46.3167,248.647,-65.8398],[6689.85,-1801.68,45.8667,246.719,-65.4185],[6643.47,-1701.27,45.4167,244.772,-64.9869],[6596.71,-1602.01,44.9667,242.807,-64.5447],[6547.81,-1500.31,44.5,240.751,-64.0746],[6500.26,-1403.45,44.05,238.75,-63.6096],[6448.75,-1300.75,43.5667,236.582,-63.0971],[6398.59,-1202.93,43.1,234.472,-62.5889],[6346.2,-1103.01,42.6167,232.27,-62.0482],[6291.54,-1001.18,42.1167,229.974,-61.4731],[6236.39,-900.916,41.6167,227.662,-60.8811],[6180.77,-802.245,41.1167,225.335,-60.2717],[6122.79,-701.984,40.6,222.916,-59.623],[6062.4,-600.325,40.0667,220.406,-58.9323],[6001.48,-500.558,39.5333,217.884,-58.2193],[5940.02,-402.71,39,215.352,-57.4831],[5874.13,-300.879,38.4333,212.654,-56.6745],[5807.63,-201.278,37.8667,209.95,-55.8374],[5738.55,-101.109,37.2833,207.164,-54.9447],[5666.83,-0.61504,36.6833,204.3,-53.9924],[5592.42,99.952,36.0667,201.362,-52.9758],[5517.3,197.723,35.45,198.435,-51.9193],[5437.37,297.709,34.8,195.367,-50.7606],[5352.51,399.374,34.1167,192.168,-49.4902],[5264.7,499.802,33.4167,188.928,-48.1308],[5173.87,598.665,32.7,185.659,-46.6755],[5075.7,699.929,31.9333,182.229,-45.0446],[4974.31,798.522,31.15,178.81,-43.2956],[4863.07,899.85,30.3,175.217,-41.2998],[4746.12,998.819,29.4167,171.637,-39.1139],[4616.59,1099.61,28.45,167.93,-36.5877],[4476.36,1198.54,27.4167,164.253,-33.7295],[4315.86,1299.09,26.25,160.515,-30.3062],[4129.61,1399.3,24.9167,156.871,-26.1459],[3899.79,1499.35,23.3,153.501,-20.7748],[3567.75,1599.71,21.0167,151.043,-12.7004],[3049.27,1657.7,17.5667,153.305,-0.0121073]]], + [46,1711.59,[[6727.46,-2002.8,47.25,251.009,-66.7909],[6684.42,-1903.33,46.8167,249.163,-66.4042],[6639.36,-1801.12,46.3667,247.226,-65.993],[6593.91,-1700.03,45.9167,245.269,-65.5718],[6548.08,-1600.1,45.4667,243.293,-65.1402],[6501.87,-1501.32,45.0167,241.299,-64.6978],[6453.55,-1400.13,44.55,239.211,-64.2272],[6404.81,-1300.23,44.0833,237.104,-63.7443],[6355.66,-1201.63,43.6167,234.979,-63.2485],[6304.33,-1100.9,43.1333,232.759,-62.721],[6252.56,-1001.61,42.65,230.522,-62.1787],[6198.54,-900.426,42.15,228.191,-61.6015],[6144.04,-800.83,41.65,225.842,-61.0073],[6089.09,-702.84,41.15,223.478,-60.3953],[6029.95,-600.113,40.6167,220.942,-59.7222],[5972.15,-502.389,40.1,218.471,-59.0492],[5910.08,-400.328,39.55,215.829,-58.3094],[5847.45,-300.324,39,213.176,-57.5444],[5784.26,-202.407,38.45,210.516,-56.753],[5716.63,-100.869,37.8667,207.688,-55.8837],[5648.38,-1.74663,37.2833,204.858,-54.9821],[5577.52,97.6509,36.6833,201.949,-54.0196],[5502.03,199.717,36.05,198.884,-52.9631],[5425.8,298.81,35.4167,195.832,-51.8633],[5344.8,399.858,34.75,192.638,-50.6564],[5260.93,499.913,34.0667,189.393,-49.3646],[5174.18,598.659,33.3667,186.107,-47.9812],[5082.36,697.978,32.6333,182.718,-46.4636],[4983.25,799.332,31.85,179.172,-44.7621],[4878.79,899.71,31.0333,175.571,-42.8956],[4768.86,998.364,30.1833,171.951,-40.8487],[4646.73,1099.75,29.25,168.153,-38.4745],[4516.49,1198.57,28.2667,164.388,-35.8256],[4368.89,1299.26,27.1667,160.513,-32.6805],[4201.03,1399.54,25.9333,156.666,-28.9268],[4002.85,1499.06,24.5,152.969,-24.2744],[3742.13,1599.88,22.65,149.645,-17.8609],[3268.23,1699.89,19.3833,148.527,-5.78966],[3039.69,1711.59,17.85,150.356,-0.0287246]]], + [47,1765.31,[[6669.39,-2001.36,47.7333,251.498,-67.3338],[6627.22,-1901.29,47.3,249.644,-66.9563],[6584.71,-1802.23,46.8667,247.77,-66.5701],[6540.2,-1700.47,46.4167,245.805,-66.1593],[6496.98,-1603.56,45.9833,243.893,-65.7541],[6450.04,-1500.38,45.5167,241.813,-65.3068],[6404.4,-1402.08,45.0667,239.788,-64.8644],[6356.68,-1301.39,44.6,237.669,-64.3938],[6308.55,-1202,44.1333,235.53,-63.9106],[6258.28,-1100.45,43.65,233.295,-63.3964],[6207.57,-1000.32,43.1667,231.041,-62.8677],[6156.44,-901.641,42.6833,228.769,-62.324],[6103.09,-801.107,42.1833,226.401,-61.745],[6049.28,-702.17,41.6833,224.016,-61.1488],[5993.19,-601.635,41.1667,221.535,-60.5136],[5936.62,-502.854,40.65,219.038,-59.8583],[5877.71,-402.752,40.1167,216.448,-59.16],[5816.41,-301.534,39.5667,213.763,-58.4155],[5754.57,-202.391,39.0167,211.068,-57.6451],[5690.28,-102.443,38.45,208.283,-56.8232],[5623.49,-1.9226,37.8667,205.41,-55.9459],[5554.16,98.9294,37.2667,202.453,-55.009],[5482.24,199.859,36.65,199.416,-54.0078],[5409.65,297.986,36.0333,196.386,-52.966],[5332.41,398.341,35.3833,193.205,-51.8219],[5252.42,497.941,34.7167,189.963,-50.5969],[5167.6,598.841,34.0167,186.59,-49.252],[5079.88,698.18,33.3,183.18,-47.8097],[4985.08,799.944,32.5333,179.592,-46.1899],[4887.18,899.037,31.75,176.006,-44.4492],[4781.91,998.955,30.9167,172.297,-42.4979],[4669.06,1098.59,30.0333,168.51,-40.3131],[4546.27,1198.4,29.0833,164.635,-37.825],[4408.85,1299.75,28.0333,160.631,-34.9035],[4256.31,1399.76,26.8833,156.646,-31.4948],[4079.09,1499.9,25.5667,152.687,-27.3273],[3862.37,1599.65,23.9833,148.933,-21.9641],[3554.76,1699.96,21.7833,145.877,-13.9819],[3025.12,1765.31,18.1167,147.414,-0.00128293]]], + [48,1818.82,[[6607.23,-2001.64,48.2167,252.022,-67.8794],[6565.94,-1900.96,47.7833,250.161,-67.5114],[6524.32,-1801.29,47.35,248.28,-67.1347],[6482.35,-1702.65,46.9167,246.379,-66.7491],[6438.4,-1601.33,46.4667,244.384,-66.3389],[6394.09,-1501.16,46.0167,242.368,-65.9184],[6349.41,-1402.15,45.5667,240.333,-65.4873],[6302.69,-1300.72,45.1,238.201,-65.0286],[6255.57,-1200.57,44.6333,236.049,-64.5576],[6208.05,-1101.73,44.1667,233.877,-64.0739],[6158.43,-1000.76,43.6833,231.608,-63.559],[6108.38,-901.22,43.2,229.319,-63.0294],[6057.9,-803.146,42.7167,227.012,-62.4845],[6005.25,-703.25,42.2167,224.606,-61.9041],[5950.36,-601.713,41.7,222.103,-61.2858],[5895,-501.918,41.1833,219.582,-60.6477],[5837.35,-400.759,40.65,216.964,-59.9676],[5779.19,-301.51,40.1167,214.332,-59.2647],[5718.68,-201.189,39.5667,211.604,-58.515],[5655.79,-100.016,39,208.783,-57.7148],[5592.31,-1.09488,38.4333,205.953,-56.8852],[5526.39,98.3497,37.85,203.035,-55.9992],[5457.97,198.074,37.25,200.03,-55.0523],[5386.98,297.821,36.6333,196.945,-54.0397],[5311.46,399.903,35.9833,193.701,-52.927],[5235.2,498.8,35.3333,190.472,-51.7654],[5154.27,599.285,34.65,187.1,-50.489],[5070.54,698.463,33.95,183.679,-49.1197],[4981.94,798.226,33.2167,180.142,-47.6148],[4888.37,897.929,32.45,176.51,-45.9608],[4787.63,998.89,31.6333,172.729,-44.1036],[4681.62,1098.14,30.7833,168.914,-42.0614],[4566.01,1198.4,29.8667,164.963,-39.729],[4438.36,1299.64,28.8667,160.884,-37.0252],[4298.31,1399.59,27.7833,156.789,-33.9036],[4138.86,1499.55,26.5667,152.664,-30.1574],[3950.35,1599.3,25.15,148.61,-25.483],[3706.46,1699.7,23.35,144.838,-19.1026],[3289.13,1799.87,20.35,142.675,-7.67856],[3010.5,1818.81,18.4,144.423,-0.0565693]]], + [49,1872.04,[[6540.94,-2003.73,48.7,252.582,-68.4276],[6500.54,-1902.42,48.2667,250.714,-68.069],[6459.8,-1802.13,47.8333,248.826,-67.702],[6418.73,-1702.87,47.4,246.917,-67.3263],[6375.72,-1600.88,46.95,244.914,-66.9266],[6332.36,-1500.04,46.5,242.889,-66.5168],[6288.63,-1400.35,46.05,240.843,-66.0967],[6244.54,-1301.84,45.6,238.776,-65.6658],[6198.44,-1200.93,45.1333,236.612,-65.2072],[6151.95,-1101.31,44.6667,234.427,-64.7362],[6105.07,-1003.01,44.2,232.222,-64.2522],[6056.11,-902.611,43.7167,229.918,-63.7369],[6005.03,-800.274,43.2167,227.513,-63.1881],[5955.23,-702.846,42.7333,225.169,-62.6417],[5901.54,-600.351,42.2167,222.645,-62.0398],[5849.13,-502.81,41.7167,220.183,-61.439],[5792.75,-400.581,41.1833,217.54,-60.7774],[5735.87,-300.25,40.65,214.88,-60.0935],[5678.48,-201.845,40.1167,212.205,-59.3863],[5618.8,-102.412,39.5667,209.434,-58.6315],[5556.75,-2.17044,39,206.567,-57.8255],[5492.3,98.6481,38.4167,203.607,-56.9642],[5425.4,199.801,37.8167,200.557,-56.0435],[5357.89,298.334,37.2167,197.505,-55.0857],[5285.97,399.457,36.5833,194.287,-54.0323],[5213.37,497.576,35.95,191.077,-52.9332],[5136.23,597.566,35.2833,187.714,-51.7245],[5054.44,698.867,34.5833,184.209,-50.3951],[4969.87,798.608,33.8667,180.657,-48.9669],[4880.47,898.619,33.1167,176.993,-47.3956],[4786.14,998.235,32.3333,173.237,-45.6663],[4684.71,1098.7,31.5,169.341,-43.723],[4576.01,1198.89,30.6167,165.347,-41.5407],[4457.76,1299.3,29.6667,161.24,-39.0473],[4327.56,1399.74,28.6333,157.037,-36.1565],[4182.91,1499.2,27.5,152.806,-32.767],[4014.63,1599.29,26.2,148.532,-28.597],[3808.55,1699.66,24.6333,144.361,-23.188],[3524.45,1799.39,22.5167,140.758,-15.3066],[2988.61,1872.04,18.65,141.463,-0.00160396]]], + [50,1924.94,[[6468.98,-2003.76,49.1667,253.104,-68.9647],[6429.45,-1901.86,48.7333,251.231,-68.6154],[6389.59,-1800.98,48.3,249.336,-68.2578],[6349.41,-1701.11,47.8667,247.42,-67.8917],[6308.9,-1602.28,47.4333,245.483,-67.5169],[6266.49,-1500.76,46.9833,243.449,-67.118],[6223.73,-1400.38,46.5333,241.394,-66.709],[6180.6,-1301.17,46.0833,239.317,-66.2895],[6137.12,-1203.14,45.6333,237.219,-65.8591],[6091.67,-1102.74,45.1667,235.022,-65.4008],[6044.19,-1000.14,44.6833,232.724,-64.9129],[5997.96,-902.42,44.2167,230.485,-64.4285],[5949.67,-802.63,43.7333,228.144,-63.9125],[5899.3,-700.94,43.2333,225.702,-63.3627],[5848.5,-600.838,42.7333,223.239,-62.796],[5797.26,-502.348,42.2333,220.757,-62.2117],[5743.86,-402.293,41.7167,218.174,-61.5886],[5688.26,-300.867,41.1833,215.488,-60.924],[5632.18,-201.355,40.65,212.785,-60.2366],[5573.83,-100.768,40.1,209.983,-59.5027],[5514.97,-2.27626,39.55,207.167,-58.7422],[5451.99,99.862,38.9667,204.168,-57.9053],[5388.43,199.574,38.3833,201.161,-57.0356],[5322.47,299.567,37.7833,198.061,-56.1052],[5254.05,399.585,37.1667,194.875,-55.1089],[5183.13,499.359,36.5333,191.606,-54.0415],[5109.66,598.607,35.8833,188.26,-52.8968],[5031.69,699.453,35.2,184.761,-51.637],[4951.04,798.993,34.5,181.205,-50.2831],[4865.71,899.125,33.7667,177.521,-48.7922],[4775.59,999.201,33,173.728,-47.15],[4680.59,1098.53,32.2,169.849,-45.3403],[4578.57,1198.29,31.35,165.838,-43.3045],[4467.32,1299.08,30.4333,161.668,-40.972],[4346.58,1399.25,29.45,157.411,-38.3048],[4211.92,1499.93,28.3667,153.032,-35.1617],[4060.76,1599.41,27.1667,148.637,-31.4247],[3881.81,1699.2,25.7667,144.233,-26.729],[3652.06,1799.64,24,140.009,-20.3224],[3274.5,1899.95,21.1667,137.006,-9.19236],[2966.64,1924.94,18.9167,138.454,-0.032139]]], + [51,1977.44,[[6391.37,-2001.75,49.6167,253.59,-69.4918],[6354.21,-1903.22,49.2,251.783,-69.1647],[6315.25,-1801.73,48.7667,249.882,-68.8167],[6275.97,-1701.26,48.3333,247.959,-68.4603],[6236.36,-1601.81,47.9,246.015,-68.0954],[6196.44,-1503.4,47.4667,244.049,-67.7217],[6154.64,-1402.33,47.0167,241.985,-67.3239],[6112.49,-1302.41,46.5667,239.899,-66.9158],[6068.41,-1200.04,46.1,237.713,-66.4815],[6025.56,-1102.53,45.65,235.583,-66.0514],[5980.76,-1002.68,45.1833,233.352,-65.5933],[5933.96,-900.659,44.7,231.019,-65.1055],[5886.76,-800.071,44.2167,228.663,-64.6033],[5839.17,-700.937,43.7333,226.286,-64.0864],[5791.18,-603.278,43.25,223.888,-63.5541],[5739.45,-500.539,42.7333,221.303,-62.9672],[5688.96,-402.766,42.2333,218.781,-62.3811],[5634.63,-300.291,41.7,216.071,-61.7353],[5581.55,-202.833,41.1833,213.428,-61.0884],[5524.55,-101.078,40.6333,210.596,-60.3757],[5467.05,-1.4053,40.0833,207.748,-59.6371],[5407.29,99.0781,39.5167,204.8,-58.8477],[5347,197.286,38.95,201.84,-58.028],[5282.59,298.756,38.35,198.697,-57.1254],[5217.59,397.599,37.75,195.548,-56.1852],[5148.36,499.045,37.1167,192.223,-55.1501],[5078.48,597.478,36.4833,188.902,-54.0685],[5004.23,697.792,35.8167,185.418,-52.8772],[4925.53,799.423,35.1167,181.78,-51.5648],[4844.15,899.492,34.4,178.087,-50.1521],[4758.15,999.836,33.65,174.268,-48.5946],[4667.41,1099.79,32.8667,170.345,-46.8766],[4571.83,1198.63,32.05,166.344,-44.9805],[4467.33,1299.29,31.1667,162.142,-42.8027],[4355.67,1398.49,30.2333,157.877,-40.3507],[4230.59,1499.58,29.2,153.408,-37.4473],[4091.67,1599.74,28.0667,148.875,-34.027],[3932.2,1699.41,26.7833,144.302,-29.8521],[3736.59,1799.95,25.2333,139.732,-24.3925],[3470.75,1899.57,23.1667,135.602,-16.4835],[2939.91,1977.44,19.1667,135.446,-0.0157447]]], + [52,2029.51,[[6309.68,-2001.71,50.0667,254.109,-70.0221],[6273.37,-1902.63,49.65,252.297,-69.7038],[6235.29,-1800.57,49.2167,250.391,-69.365],[6198.39,-1703.39,48.8,248.536,-69.0317],[6159.69,-1603.31,48.3667,246.585,-68.6769],[6119.18,-1500.48,47.9167,244.536,-68.2993],[6079.85,-1402.54,47.4833,242.541,-67.9266],[6038.67,-1301.95,47.0333,240.446,-67.5297],[5997.15,-1202.53,46.5833,238.328,-67.1225],[5953.74,-1100.67,46.1167,236.108,-66.6889],[5909.96,-1000.11,45.65,233.865,-66.2433],[5865.82,-900.853,45.1833,231.6,-65.7853],[5821.31,-802.926,44.7167,229.312,-65.3144],[5774.84,-702.921,44.2333,226.92,-64.8124],[5726.35,-601.011,43.7333,224.422,-64.2773],[5677.45,-500.693,43.2333,221.902,-63.7254],[5628.13,-401.99,42.7333,219.361,-63.156],[5576.74,-301.717,42.2167,216.713,-62.5485],[5523.23,-200.071,41.6833,213.96,-61.8999],[5469.26,-100.344,41.15,211.187,-61.2286],[5414.82,-2.56371,40.6167,208.396,-60.5335],[5356.48,99.1646,40.05,205.415,-59.7675],[5297.62,198.631,39.4833,202.418,-58.9719],[5236.49,298.627,38.9,199.322,-58.1204],[5173.05,398.906,38.3,196.128,-57.2084],[5107.26,499.21,37.6833,192.839,-56.2308],[5039.07,599.272,37.05,189.462,-55.1818],[4968.43,698.807,36.4,186,-54.0553],[4893.48,799.947,35.7167,182.374,-52.8134],[4815.95,899.777,35.0167,178.683,-51.4765],[4735.82,997.967,34.3,174.937,-50.0356],[4649.25,1098.44,33.5333,170.981,-48.4089],[4557.99,1198.18,32.7333,166.925,-46.6118],[4460.01,1298.34,31.8833,162.719,-44.5842],[4353.19,1399.56,30.9667,158.328,-42.2535],[4239.26,1498.54,30,153.9,-39.6251],[4110.05,1599.84,28.9167,149.236,-36.4621],[3965.07,1699.98,27.7167,144.516,-32.6816],[3795.55,1799.41,26.3333,139.778,-27.9606],[3579.61,1899.36,24.6,135.132,-21.5232],[3231.24,2000,21.8667,131.388,-10.4288]]], + [53,2081.07,[[6223.85,-2003.71,50.5167,254.663,-70.5556],[6186.97,-1900.12,50.0833,252.774,-70.2335],[6151.21,-1801.44,49.6667,250.935,-69.9167],[6115.17,-1703.69,49.25,249.075,-69.5927],[6077.39,-1603.02,48.8167,247.118,-69.2477],[6039.3,-1503.38,48.3833,245.139,-68.8943],[5999.41,-1401.01,47.9333,243.059,-68.5181],[5960.69,-1303.51,47.5,241.034,-68.1466],[5920.16,-1203.4,47.05,238.907,-67.751],[5877.77,-1100.82,46.5833,236.678,-67.3297],[5836.57,-1003.13,46.1333,234.505,-66.9124],[5793.48,-903.085,45.6667,232.228,-66.4678],[5748.48,-800.863,45.1833,229.845,-65.994],[5703.1,-700.078,44.7,227.438,-65.5061],[5657.34,-600.749,44.2167,225.008,-65.0035],[5611.21,-502.9,43.7333,222.555,-64.4857],[5563.08,-403.253,43.2333,219.996,-63.9333],[5512.93,-301.996,42.7167,217.328,-63.3438],[5462.34,-202.502,42.2,214.638,-62.7343],[5409.68,-101.675,41.6667,211.84,-62.0834],[5356.56,-2.78283,41.1333,209.023,-61.4093],[5301.32,97.1444,40.5833,206.099,-60.6885],[5243.9,197.885,40.0167,203.069,-59.9175],[5184.26,299.207,39.4333,199.934,-59.092],[5124.1,398.076,38.85,196.787,-58.2326],[5059.93,499.889,38.2333,193.451,-57.2852],[4995.17,598.881,37.6167,190.11,-56.2956],[4928.06,697.568,36.9833,186.679,-55.2329],[4856.77,798.14,36.3167,183.073,-54.0605],[4783,897.652,35.6333,179.391,-52.7982],[4704.9,998.071,34.9167,175.555,-51.4044],[4622.37,1098.77,34.1667,171.581,-49.8645],[4535.3,1199.08,33.3833,167.487,-48.1616],[4443.6,1298.29,32.5667,163.301,-46.2772],[4343.37,1399.33,31.6833,158.891,-44.1058],[4236.3,1498.89,30.75,154.396,-41.6524],[4118.33,1598.82,29.7333,149.738,-38.7837],[3985.21,1699.55,28.6,144.9,-35.3339],[3832.46,1799.84,27.3167,139.974,-31.098],[3649.24,1899.14,25.8,135.071,-25.6442],[3397.04,1999.63,23.75,130.382,-17.5705]]], + [54,2132.08,[[6132.49,-2003.81,50.95,255.179,-71.08],[6097.88,-1903.66,50.5333,253.359,-70.7791],[6061.59,-1800.46,50.1,251.442,-70.4589],[6026.41,-1702.17,49.6833,249.577,-70.1439],[5989.53,-1600.94,49.25,247.614,-69.8085],[5952.35,-1500.73,48.8167,245.627,-69.4649],[5914.87,-1401.56,48.3833,243.617,-69.1129],[5877.09,-1303.43,47.95,241.584,-68.7521],[5837.53,-1202.67,47.5,239.45,-68.3678],[5797.66,-1103.07,47.05,237.291,-67.9734],[5755.96,-1001.03,46.5833,235.027,-67.5531],[5713.91,-900.292,46.1167,232.738,-67.1211],[5671.52,-800.861,45.65,230.425,-66.6769],[5628.78,-702.761,45.1833,228.089,-66.2198],[5584.14,-602.58,44.7,225.645,-65.7325],[5537.58,-500.491,44.2,223.091,-65.2126],[5492.2,-403.32,43.7167,220.6,-64.6943],[5443.28,-301.121,43.2,217.912,-64.1224],[5393.93,-200.675,42.6833,215.201,-63.531],[5344.17,-102.008,42.1667,212.468,-62.9194],[5292.37,-2.05103,41.6333,209.625,-62.2658],[5238.49,98.9862,41.0833,206.672,-61.5668],[5184.15,197.918,40.5333,203.7,-60.8413],[5127.67,297.615,39.9667,200.62,-60.0646],[5069.01,397.84,39.3833,197.435,-59.2324],[5008.15,498.35,38.7833,194.145,-58.3401],[4945.04,598.884,38.1667,190.755,-57.3822],[4879.63,699.173,37.5333,187.268,-56.3532],[4811.88,798.934,36.8833,183.69,-55.2464],[4741.75,897.871,36.2167,180.028,-54.0546],[4667.44,998.014,35.5167,176.2,-52.7379],[4588.83,1098.76,34.7833,172.218,-51.2821],[4505.84,1199.45,34.0167,168.1,-49.6709],[4418.38,1299.39,33.2167,163.869,-47.8863],[4324.49,1399.77,32.3667,159.467,-45.8668],[4224.02,1499.41,31.4667,154.94,-43.5811],[4114.92,1598.71,30.5,150.268,-40.9469],[3993.14,1698.87,29.4333,145.395,-37.813],[3854.41,1799.53,28.2333,140.346,-33.9897],[3692.27,1899.54,26.85,135.223,-29.1834],[3487.85,1999.31,25.1333,130.143,-22.6421]]], + [55,2182.49,[[6035.63,-2002.04,51.3667,255.656,-71.5963],[6001.87,-1901.39,50.95,253.831,-71.3039],[5967.83,-1801.64,50.5333,251.984,-71.0049],[5933.53,-1702.81,50.1167,250.114,-70.6989],[5897.56,-1601,49.6833,248.146,-70.3732],[5861.3,-1500.21,49.25,246.153,-70.0396],[5824.75,-1400.45,48.8167,244.137,-69.6977],[5787.9,-1301.73,48.3833,242.097,-69.3474],[5749.32,-1200.34,47.9333,239.954,-68.9741],[5710.43,-1100.11,47.4833,237.786,-68.591],[5671.22,-1001.06,47.0333,235.593,-68.1976],[5631.69,-903.208,46.5833,233.377,-67.7936],[5590.36,-803.008,46.1167,231.053,-67.3629],[5547.21,-700.624,45.6333,228.621,-66.9037],[5505.19,-603.136,45.1667,226.248,-66.4472],[5459.8,-500.195,44.6667,223.679,-65.9431],[5415.56,-402.193,44.1833,221.171,-65.4404],[5369.41,-302.393,43.6833,218.553,-64.9039],[5321.31,-200.982,43.1667,215.822,-64.3309],[5272.81,-101.338,42.65,213.067,-63.7381],[5222.32,-0.362388,42.1167,210.2,-63.1045],[5171.4,98.6737,41.5833,207.31,-62.4478],[5118.44,198.743,41.0333,204.309,-61.7451],[5063.4,299.625,40.4667,201.196,-60.9926],[5007.88,398.219,39.9,198.066,-60.2096],[4950.24,497.289,39.3167,194.828,-59.3701],[4888.75,599.307,38.7,191.392,-58.4434],[4826.72,698.495,38.0833,187.947,-57.4742],[4760.74,799.938,37.4333,184.311,-56.4038],[4694.15,898.143,36.7833,180.676,-55.2801],[4623.51,997.843,36.1,176.864,-54.0377],[4548.73,1098.45,35.3833,172.886,-52.6631],[4469.71,1199.33,34.6333,168.756,-51.141],[4386.37,1299.81,33.85,164.493,-49.4536],[4298.61,1399.18,33.0333,160.122,-47.5807],[4204.52,1498.53,32.1667,155.59,-45.4579],[4102.11,1598.38,31.2333,150.864,-43.0055],[3989.31,1698.58,30.2167,145.944,-40.1253],[3862.06,1799.6,29.0833,140.804,-36.6434],[3718.01,1898.95,27.8167,135.592,-32.3998],[3541.11,1999.75,26.2833,130.212,-26.7606]]], + [56,2232.23,[[5934.71,-2002.47,51.7833,256.167,-72.1163],[5901.8,-1901.31,51.3667,254.339,-71.8325],[5868.63,-1801.05,50.95,252.488,-71.5422],[5835.2,-1701.7,50.5333,250.614,-71.2452],[5801.49,-1603.27,50.1167,248.716,-70.9413],[5766.16,-1501.88,49.6833,246.719,-70.6177],[5730.54,-1401.53,49.25,244.697,-70.2861],[5694.64,-1302.21,48.8167,242.65,-69.9463],[5657.05,-1200.19,48.3667,240.5,-69.5842],[5620.55,-1103.03,47.9333,238.405,-69.2265],[5582.36,-1003.29,47.4833,236.204,-68.8453],[5542.42,-901.109,47.0167,233.896,-68.439],[5502.14,-800.222,46.55,231.562,-68.0211],[5461.54,-700.651,46.0833,229.201,-67.5911],[5420.6,-602.414,45.6167,226.816,-67.1486],[5377.86,-502.095,45.1333,224.319,-66.6764],[5334.76,-403.248,44.65,221.797,-66.1896],[5289.81,-302.565,44.15,219.162,-65.6699],[5242.97,-200.231,43.6333,216.412,-65.1148],[5197.25,-102.871,43.1333,213.727,-64.5594],[5148.08,-0.861831,42.6,210.837,-63.9461],[5098.49,99.2192,42.0667,207.923,-63.3103],[5048.48,197.344,41.5333,204.986,-62.6509],[4994.89,299.426,40.9667,201.843,-61.9229],[4940.83,399.234,40.4,198.679,-61.1653],[4884.7,499.567,39.8167,195.404,-60.3528],[4828.08,597.42,39.2333,192.113,-59.5051],[4767.7,698.127,38.6167,188.62,-58.5687],[4705.13,798.584,37.9833,185.024,-57.5611],[4640.33,898.508,37.3333,181.33,-56.4757],[4573.27,997.603,36.6667,177.543,-55.305],[4502.21,1097.9,35.9667,173.578,-54.009],[4427.05,1198.79,35.2333,169.447,-52.573],[4347.72,1299.62,34.4667,165.166,-50.9798],[4264.12,1399.69,33.6667,160.756,-49.2102],[4176.17,1498.27,32.8333,156.247,-47.2421],[4078.42,1599.93,31.9167,151.414,-44.9195],[3974.22,1699.32,30.95,146.5,-42.2788],[3857.93,1799.54,29.8833,141.35,-39.1215],[3727.37,1898.94,28.7,136.052,-35.3034],[3572.7,1999.15,27.3167,130.548,-30.4041]]], + [57,2281.27,[[5828.38,-2001.08,52.1833,256.64,-72.6291],[5797.62,-1903.5,51.7833,254.881,-72.3648],[5765.32,-1802.72,51.3667,253.027,-72.0833],[5732.76,-1702.84,50.95,251.149,-71.7954],[5699.95,-1603.87,50.5333,249.247,-71.5007],[5665.54,-1501.93,50.1,247.245,-71.187],[5630.86,-1401.01,49.6667,245.217,-70.8654],[5595.89,-1301.11,49.2333,243.165,-70.5359],[5560.64,-1202.27,48.8,241.087,-70.198],[5523.75,-1100.75,48.35,238.904,-69.8379],[5486.54,-1000.4,47.9,236.695,-69.4682],[5449.04,-901.22,47.45,234.46,-69.0884],[5411.24,-803.242,47,232.2,-68.6981],[5371.72,-702.918,46.5333,229.829,-68.2819],[5330.45,-600.409,46.05,227.347,-67.838],[5290.27,-502.804,45.5833,224.923,-67.3964],[5248.32,-403.152,45.1,222.387,-66.9251],[5204.56,-301.626,44.6,219.736,-66.4218],[5160.44,-201.714,44.1,217.059,-65.9019],[5114.46,-100.191,43.5833,214.264,-65.3463],[5068.09,-0.441125,43.0667,211.444,-64.7711],[5021.34,97.5093,42.55,208.599,-64.1755],[4971.16,199.773,42,205.544,-63.5176],[4920.54,299.937,41.45,202.466,-62.834],[4869.49,397.971,40.9,199.365,-62.1232],[4814.88,499.585,40.3167,196.054,-61.338],[4759.79,598.732,39.7333,192.724,-60.5187],[4702.64,698.1,39.1333,189.283,-59.6383],[4643.39,797.429,38.5167,185.734,-58.6911],[4580.38,899.009,37.8667,181.983,-57.6434],[4515.16,999.82,37.2,178.132,-56.5127],[4447.69,1099.55,36.5167,174.19,-55.2908],[4377.95,1197.89,35.8167,170.164,-53.9685],[4302.52,1298.87,35.0667,165.878,-52.4667],[4222.98,1399.45,34.2833,161.444,-50.7973],[4139.24,1498.9,33.4667,156.887,-48.939],[4049.48,1598.32,32.6,152.15,-46.8254],[3950.06,1699.93,31.65,147.106,-44.3282],[3844.25,1798.44,30.65,142.01,-41.481],[3722.96,1899.45,29.5167,136.57,-37.9644],[3583.88,1999.96,28.2333,130.946,-33.5901]]], + [58,2329.53,[[5718,-2002.04,52.5833,257.146,-73.146],[5688.06,-1903.99,52.1833,255.385,-72.8898],[5656.63,-1802.71,51.7667,253.527,-72.617],[5624.95,-1702.33,51.35,251.645,-72.3379],[5593.02,-1602.86,50.9333,249.74,-72.0523],[5559.54,-1500.39,50.5,247.732,-71.7482],[5527.09,-1402.81,50.0833,245.778,-71.4486],[5493.07,-1302.34,49.65,243.72,-71.1295],[5458.79,-1202.91,49.2167,241.637,-70.8022],[5422.89,-1100.77,48.7667,239.447,-70.4535],[5388.04,-1003.51,48.3333,237.312,-70.1089],[5351.57,-903.654,47.8833,235.07,-69.7414],[5313.43,-801.361,47.4167,232.717,-69.3496],[5274.98,-700.367,46.95,230.336,-68.9464],[5236.21,-600.692,46.4833,227.927,-68.5314],[5197.13,-502.354,46.0167,225.492,-68.1041],[5156.33,-401.934,45.5333,222.943,-67.6479],[5115.18,-302.991,45.05,220.366,-67.1773],[5072.27,-202.213,44.55,217.673,-66.6745],[5029.01,-103.062,44.05,214.952,-66.1548],[4983.93,-2.34078,43.5333,212.113,-65.5992],[4937,99.7532,43,209.154,-65.0047],[4889.67,199.913,42.4667,206.168,-64.3879],[4841.95,298.109,41.9333,203.157,-63.7475],[4792.32,397.289,41.3833,200.028,-63.0612],[4740.76,497.226,40.8167,196.78,-62.325],[4687.22,597.686,40.2333,193.415,-61.5344],[4631.67,698.419,39.6333,189.934,-60.6846],[4574.08,799.165,39.0167,186.338,-59.7701],[4514.4,899.652,38.3833,182.632,-58.7846],[4452.61,999.595,37.7333,178.82,-57.7213],[4388.67,1098.7,37.0667,174.908,-56.5723],[4320.91,1198.99,36.3667,170.806,-55.2978],[4249.27,1299.85,35.6333,166.525,-53.8823],[4175.32,1398.5,34.8833,162.177,-52.3432],[4095.68,1498.63,34.0833,157.589,-50.5917],[4010.22,1599.15,33.2333,152.791,-48.5968],[3918.81,1698.91,32.3333,147.827,-46.3221],[3817.88,1799.92,31.35,142.58,-43.6302],[3707.19,1899.94,30.2833,137.154,-40.4476],[3582.94,1999.07,29.1,131.542,-36.5747]]], + [59,2376.98,[[5602.3,-2001.29,52.9667,257.614,-73.6564],[5573.19,-1902.79,52.5667,255.85,-73.4082],[5542.63,-1801.05,52.15,253.989,-73.1439],[5511.83,-1700.19,51.7333,252.103,-72.8736],[5480.78,-1600.24,51.3167,250.193,-72.5969],[5449.48,-1501.21,50.9,248.258,-72.3137],[5417.93,-1403.11,50.4833,246.299,-72.0237],[5384.87,-1302.08,50.05,244.236,-71.7148],[5351.53,-1202.09,49.6167,242.147,-71.398],[5317.93,-1103.15,49.1833,240.032,-71.0731],[5282.76,-1001.53,48.7333,237.808,-70.7268],[5247.3,-901.078,48.2833,235.558,-70.371],[5211.55,-801.81,47.8333,233.28,-70.0054],[5174.18,-700.134,47.3667,230.889,-69.6155],[5137.85,-603.33,46.9167,228.558,-69.2286],[5098.52,-500.733,46.4333,226.024,-68.8007],[5060.23,-403.047,45.9667,223.551,-68.3748],[5020.25,-303.315,45.4833,220.961,-67.92],[4978.56,-201.711,44.9833,218.252,-67.434],[4936.51,-101.726,44.4833,215.515,-66.9317],[4892.7,-0.133156,43.9667,212.657,-66.3945],[4848.53,99.6806,43.45,209.771,-65.838],[4803.99,197.689,42.9333,206.857,-65.2611],[4757.63,296.938,42.4,203.823,-64.6432],[4709.43,397.214,41.85,200.667,-63.9808],[4659.34,498.294,41.2833,197.389,-63.2701],[4607.33,599.942,40.7,193.99,-62.5068],[4554.87,699.115,40.1167,190.568,-61.7094],[4500.45,798.5,39.5167,187.028,-60.8513],[4444.04,897.835,38.9,183.373,-59.9268],[4384.05,999.41,38.25,179.507,-58.9026],[4323.53,1097.73,37.6,175.633,-57.8238],[4257.76,1199.9,36.9,171.459,-56.5964],[4191.39,1298.19,36.2,167.293,-55.2961],[4119.63,1399.11,35.45,162.849,-53.8156],[4043.96,1499.6,34.6667,158.244,-52.1654],[3964.31,1598.94,33.85,153.501,-50.3224],[3878.96,1698.21,32.9833,148.557,-48.2185],[3784.44,1799.63,32.0333,143.277,-45.7222],[3682.2,1899.48,31.0167,137.837,-42.8118],[3568.64,1998.63,29.9,132.183,-39.3073]]], + [60,2423.56,[[5482.54,-2002.98,53.35,258.115,-74.1713],[5454.27,-1904.03,52.95,256.35,-73.9312],[5424.59,-1801.81,52.5333,254.486,-73.6755],[5394.68,-1700.48,52.1167,252.597,-73.414],[5364.52,-1600.04,51.7,250.683,-73.1463],[5334.12,-1500.52,51.2833,248.744,-72.8723],[5303.48,-1401.92,50.8667,246.781,-72.5918],[5271.36,-1300.37,50.4333,244.712,-72.2929],[5240.23,-1203.69,50.0167,242.698,-71.9983],[5206.35,-1100.37,49.5667,240.496,-71.672],[5173.45,-1001.95,49.1333,238.348,-71.3495],[5139.02,-900.889,48.6833,236.09,-71.0056],[5104.3,-801.003,48.2333,233.804,-70.6521],[5069.31,-702.311,47.7833,231.491,-70.2888],[5032.73,-601.243,47.3167,229.063,-69.9011],[4995.86,-501.497,46.85,226.607,-69.5018],[4958.68,-403.093,46.3833,224.122,-69.0904],[4919.87,-302.61,45.9,221.519,-68.6511],[4879.38,-200.221,45.4,218.796,-68.1816],[4839.93,-102.774,44.9167,216.135,-67.7127],[4797.4,-0.294746,44.4,213.26,-67.1942],[4755.91,97.1946,43.9,210.449,-66.6747],[4711.29,199.33,43.3667,207.421,-66.1001],[4666.29,299.524,42.8333,204.364,-65.5035],[4620.91,397.748,42.3,201.279,-64.8836],[4572.3,499.921,41.7333,197.972,-64.1979],[4523.27,599.804,41.1667,194.639,-63.4828],[4473.83,697.363,40.6,191.282,-62.7365],[4421.03,798.092,40,187.703,-61.9101],[4366.3,898.822,39.3833,184.004,-61.0195],[4309.59,999.282,38.75,180.188,-60.0584],[4250.88,1099.19,38.1,176.258,-59.0195],[4190.14,1198.23,37.4333,172.219,-57.8948],[4125.78,1298.45,36.7333,167.979,-56.6446],[4057.74,1399.22,36,163.547,-55.2527],[3985.95,1499.9,35.2333,158.937,-53.7004],[3910.32,1599.77,34.4333,154.17,-51.9657],[3830.79,1698.09,33.6,149.272,-50.0233],[3742.43,1799.42,32.6833,143.993,-47.7127],[3648.3,1898.4,31.7167,138.59,-45.0609],[3541.66,1999.58,30.6333,132.794,-41.8031]]], + [61,2469.22,[[5357.59,-2003.05,53.7167,258.578,-74.6807],[5330.16,-1903.68,53.3167,256.81,-74.4485],[5301.36,-1801.01,52.9,254.943,-74.2013],[5273.5,-1703.27,52.5,253.128,-73.9586],[5244.24,-1602.34,52.0833,251.211,-73.7],[5214.75,-1502.31,51.6667,249.269,-73.4354],[5185.03,-1403.2,51.25,247.302,-73.1644],[5153.87,-1301.12,50.8167,245.229,-72.8756],[5122.46,-1200.06,50.3833,243.129,-72.5795],[5090.79,-1100.04,49.95,241.002,-72.2758],[5058.88,-1001.07,49.5167,238.848,-71.9642],[5026.71,-903.17,49.0833,236.668,-71.6444],[4993.05,-802.655,48.6333,234.375,-71.3033],[4959.11,-703.326,48.1833,232.054,-70.9526],[4923.63,-601.591,47.7167,229.617,-70.5783],[4887.86,-501.171,47.25,227.151,-70.1929],[4851.8,-402.085,46.7833,224.656,-69.7958],[4814.15,-300.887,46.3,222.041,-69.3716],[4776.19,-201.164,45.8167,219.395,-68.9337],[4737.92,-102.936,45.3333,216.72,-68.4814],[4698.02,-2.91688,44.8333,213.923,-67.9977],[4656.44,98.7047,44.3167,211.001,-67.48],[4614.52,198.541,43.8,208.049,-66.9434],[4570.89,299.697,43.2667,204.97,-66.3683],[4526.89,398.893,42.7333,201.862,-65.7707],[4481.15,499.106,42.1833,198.627,-65.1295],[4435.02,597.174,41.6333,195.364,-64.4614],[4385.68,698.807,41.05,191.875,-63.7217],[4335.92,797.954,40.4667,188.361,-62.948],[4284.31,897.302,39.8667,184.722,-62.1144],[4229.36,999.232,39.2333,180.859,-61.19],[4173.92,1098.1,38.6,176.979,-60.2168],[4115.06,1198.81,37.9333,172.881,-59.1356],[4054.19,1298.42,37.25,168.674,-57.9625],[3989.78,1398.88,36.5333,164.264,-56.6561],[3921.76,1499.56,35.7833,159.662,-55.1984],[3850.05,1599.78,35,154.884,-53.5686],[3774.58,1698.81,34.1833,149.954,-51.7423],[3692.16,1799.56,33.3,144.704,-49.6073],[3604.21,1898.73,32.3667,139.286,-47.1543],[3505.81,1999.64,31.3333,133.491,-44.1792]]], + [62,2513.9,[[5227.51,-2001.52,54.0667,259.002,-75.1853],[5200.92,-1901.73,53.6667,257.231,-74.961],[5174.12,-1802.75,53.2667,255.437,-74.7318],[5145.98,-1700.5,52.85,253.542,-74.4876],[5118.76,-1603.17,52.45,251.699,-74.2478],[5090.18,-1502.66,52.0333,249.754,-73.9923],[5061.37,-1403.08,51.6167,247.783,-73.7307],[5031.18,-1300.49,51.1833,245.706,-73.452],[5001.91,-1202.8,50.7667,243.683,-73.1772],[4971.23,-1102.23,50.3333,241.551,-72.8843],[4940.31,-1002.7,49.9,239.392,-72.5838],[4907.94,-900.463,49.45,237.121,-72.2633],[4876.52,-803.116,49.0167,234.906,-71.9463],[4843.63,-703.184,48.5667,232.578,-71.608],[4809.25,-600.816,48.1,230.133,-71.2469],[4775.83,-503.343,47.65,227.746,-70.8886],[4739.64,-400.023,47.1667,225.151,-70.492],[4704.42,-301.637,46.7,222.615,-70.0971],[4667.65,-201.178,46.2167,219.957,-69.675],[4630.58,-102.206,45.7333,217.269,-69.2391],[4591.92,-1.40985,45.2333,214.457,-68.7728],[4552.94,97.7472,44.7333,211.614,-68.2901],[4512.34,198.462,44.2167,208.643,-67.7732],[4471.4,297.375,43.7,205.642,-67.237],[4428.79,397.559,43.1667,202.513,-66.662],[4384.49,498.804,42.6167,199.253,-66.045],[4339.81,597.913,42.0667,195.964,-65.402],[4293.4,697.761,41.5,192.546,-64.7107],[4245.22,798.108,40.9167,188.998,-63.9667],[4195.25,898.704,40.3167,185.322,-63.1648],[4143.44,999.287,39.7,181.518,-62.2993],[4089.77,1099.58,39.0667,177.59,-61.3637],[4034.22,1199.3,38.4167,173.54,-60.3506],[3976.74,1298.14,37.75,169.375,-59.2517],[3915.86,1398.13,37.05,164.995,-58.0274],[3851.51,1498.64,36.3167,160.411,-56.6609],[3783.61,1599.02,35.55,155.636,-55.1325],[3712.1,1698.57,34.75,150.687,-53.4188],[3635.41,1798.42,33.9,145.491,-51.4526],[3551.89,1899.18,32.9833,139.988,-49.1476],[3461.39,1999.15,32,134.244,-46.4405]]], + [63,2557.57,[[5093.45,-2002.6,54.4167,259.46,-75.6949],[5067.71,-1902.4,54.0167,257.688,-75.4785],[5041.76,-1803,53.6167,255.892,-75.2574],[5014.53,-1700.31,53.2,253.994,-75.0219],[4988.17,-1602.56,52.8,252.149,-74.7906],[4960.5,-1501.61,52.3833,250.2,-74.5441],[4932.62,-1401.56,51.9667,248.225,-74.2918],[4904.51,-1302.44,51.55,246.224,-74.0333],[4875.04,-1200.35,51.1167,244.115,-73.7578],[4846.49,-1103.15,50.7,242.061,-73.4862],[4816.56,-1003.09,50.2667,239.897,-73.1965],[4785.23,-900.299,49.8167,237.62,-72.8877],[4754.82,-802.408,49.3833,235.398,-72.5821],[4722.99,-701.904,48.9333,233.063,-72.256],[4690.9,-602.592,48.4833,230.697,-71.9206],[4657.36,-500.879,48.0167,228.213,-71.5626],[4623.55,-400.486,47.55,225.698,-71.1936],[4589.46,-301.433,47.0833,223.152,-70.8133],[4553.88,-200.275,46.6,220.483,-70.4068],[4518,-100.597,46.1167,217.782,-69.9869],[4481.84,-2.42033,45.6333,215.05,-69.5529],[4444.13,97.5379,45.1333,212.191,-69.0885],[4404.84,199.09,44.6167,209.204,-68.5911],[4365.23,298.848,44.1,206.184,-68.075],[4324,399.916,43.5667,203.034,-67.5216],[4282.44,499.015,43.0333,199.851,-66.9459],[4239.22,599.12,42.4833,196.537,-66.3275],[4195.65,697.069,41.9333,193.192,-65.6826],[4149.05,798.565,41.35,189.613,-64.9677],[4102.06,897.564,40.7667,186.004,-64.2189],[4051.96,999.465,40.15,182.161,-63.388],[4001.43,1098.49,39.5333,178.293,-62.5137],[3947.72,1199.71,38.8833,174.193,-61.5417],[3893.54,1297.65,38.2333,170.076,-60.514],[3834.68,1399.38,37.5333,165.629,-59.3398],[3773.89,1499.47,36.8167,161.072,-58.0591],[3709.69,1599.73,36.0667,156.311,-56.6262],[3642.03,1699.49,35.2833,151.359,-55.0189],[3569.38,1799.97,34.45,146.136,-53.1729],[3493.12,1898.2,33.5833,140.777,-51.0891],[3408.7,1998.41,32.6333,135.023,-48.5927]]], + [64,2600.16,[[4954.37,-2002.17,54.75,259.88,-76.2007],[4929.48,-1901.59,54.35,258.106,-75.9921],[4904.4,-1801.79,53.95,256.307,-75.779],[4879.12,-1702.8,53.55,254.484,-75.5612],[4852.57,-1600.53,53.1333,252.559,-75.3291],[4826.9,-1503.2,52.7333,250.685,-75.1011],[4799.94,-1402.69,52.3167,248.707,-74.8581],[4772.77,-1303.11,51.9,246.703,-74.6092],[4744.28,-1200.52,51.4667,244.59,-74.3439],[4716.68,-1102.84,51.05,242.531,-74.0824],[4687.74,-1002.28,50.6167,240.362,-73.8034],[4658.58,-902.764,50.1833,238.164,-73.5171],[4628.05,-800.552,49.7333,235.851,-73.2117],[4598.43,-703.229,49.3,233.595,-72.9094],[4567.41,-603.327,48.85,231.223,-72.5868],[4535,-500.995,48.3833,228.73,-72.2423],[4503.49,-403.561,47.9333,226.297,-71.9001],[4469.37,-300.29,47.45,223.65,-71.5213],[4436.16,-201.956,46.9833,221.063,-71.1438],[4401.5,-101.557,46.5,218.351,-70.7402],[4366.55,-2.65259,46.0167,215.606,-70.323],[4330.11,98.0675,45.5167,212.734,-69.8765],[4293.37,197.141,45.0167,209.828,-69.414],[4255.1,297.762,44.5,206.791,-68.9183],[4215.27,399.73,43.9667,203.622,-68.3867],[4175.11,499.739,43.4333,200.418,-67.8336],[4134.62,597.762,42.9,197.181,-67.2579],[4091.25,699.7,42.3333,193.708,-66.6197],[4047.51,799.328,41.7667,190.203,-65.9526],[4002.12,899.437,41.1833,186.562,-65.2336],[3955.03,999.776,40.5833,182.786,-64.4577],[3907.55,1097.41,39.9833,178.983,-63.6421],[3857.02,1197.48,39.35,174.942,-62.7351],[3803.36,1299.46,38.6833,170.666,-61.7251],[3749.24,1397.95,38.0167,166.372,-60.6539],[3690.55,1499.87,37.3,161.744,-59.4282],[3629.96,1599.86,36.5667,157.006,-58.0873],[3566.04,1699.66,35.8,152.064,-56.5828],[3498.75,1798.57,35,146.933,-54.8899],[3425.16,1899.61,34.1333,141.431,-52.8997],[3346.59,1999.45,33.2167,135.703,-50.5984]]], + [65,2641.63,[[4810.36,-2000.25,55.0667,260.262,-76.7033],[4787.33,-1903.5,54.6833,258.56,-76.5109],[4763.11,-1803.31,54.2833,256.759,-76.306],[4738.71,-1703.9,53.8833,254.934,-76.0964],[4713.08,-1601.21,53.4667,253.006,-75.8732],[4688.29,-1503.47,53.0667,251.13,-75.6538],[4662.27,-1402.52,52.65,249.15,-75.4201],[4636.04,-1302.49,52.2333,247.142,-75.1806],[4609.6,-1203.39,51.8167,245.106,-74.9354],[4581.89,-1101.32,51.3833,242.961,-74.6738],[4553.95,-1000.28,50.95,240.787,-74.4055],[4525.79,-900.284,50.5167,238.583,-74.13],[4497.42,-801.352,50.0833,236.35,-73.8472],[4468.82,-703.498,49.65,234.088,-73.5566],[4438.89,-603.037,49.2,231.708,-73.2465],[4407.6,-500.12,48.7333,229.208,-72.9154],[4377.18,-402.116,48.2833,226.766,-72.5865],[4345.39,-301.784,47.8167,224.202,-72.2351],[4313.34,-202.797,47.35,221.605,-71.8726],[4279.89,-101.715,46.8667,218.882,-71.4849],[4246.16,-2.11891,46.3833,216.126,-71.0843],[4210.99,99.3239,45.8833,213.239,-70.6554],[4175.54,199.128,45.3833,210.318,-70.2111],[4139.8,297.27,44.8833,207.364,-69.7505],[4102.57,396.91,44.3667,204.276,-69.2567],[4063.83,497.846,43.8333,201.054,-68.7265],[4023.55,599.866,43.2833,197.694,-68.157],[3982.93,699.751,42.7333,194.299,-67.5627],[3941.99,797.47,42.1833,190.87,-66.9422],[3898.2,898.709,41.6,187.2,-66.2535],[3854.05,997.439,41.0167,183.497,-65.5312],[3806.99,1099.04,40.4,179.55,-64.7285],[3759.53,1197.75,39.7833,175.573,-63.8824],[3709.08,1298.63,39.1333,171.355,-62.94],[3656.89,1398.66,38.4667,167.005,-61.9151],[3601.62,1499.88,37.7667,162.42,-60.77],[3544.53,1599.43,37.05,157.716,-59.5176],[3484.27,1699.11,36.3,152.793,-58.1122],[3420.76,1798.23,35.5167,147.666,-56.5303],[3351.22,1899.93,34.6667,142.139,-54.6681],[3278.28,1999.07,33.7833,136.463,-52.5543]]], + [66,2681.93,[[4662.47,-2001.14,55.3833,260.678,-77.2114],[4640.27,-1904.03,55,258.975,-77.0266],[4616.93,-1803.46,54.6,257.173,-76.8296],[4593.4,-1703.67,54.2,255.346,-76.6283],[4568.7,-1600.58,53.7833,253.415,-76.4137],[4544.8,-1502.44,53.3833,251.537,-76.203],[4519.71,-1401.09,52.9667,249.552,-75.9784],[4494.43,-1300.65,52.55,247.541,-75.7483],[4468.94,-1201.12,52.1333,245.501,-75.5126],[4443.25,-1102.54,51.7167,243.435,-75.271],[4416.33,-1001.01,51.2833,241.256,-75.0134],[4389.19,-900.524,50.85,239.047,-74.7489],[4361.84,-801.096,50.4167,236.809,-74.4774],[4334.28,-702.74,49.9833,234.541,-74.1984],[4305.43,-601.752,49.5333,232.155,-73.9006],[4276.34,-501.956,49.0833,229.737,-73.5942],[4247.04,-403.368,48.6333,227.288,-73.2788],[4216.4,-302.425,48.1667,224.715,-72.9417],[4185.52,-202.82,47.7,222.109,-72.5939],[4153.28,-101.09,47.2167,219.376,-72.2221],[4120.78,-0.839611,46.7333,216.608,-71.8377],[4088.02,97.9095,46.25,213.805,-71.4402],[4053.86,198.46,45.75,210.871,-71.0144],[4019.43,297.356,45.25,207.902,-70.573],[3983.56,397.785,44.7333,204.798,-70.0995],[3946.23,499.544,44.2,201.556,-69.5913],[3908.6,599.334,43.6667,198.278,-69.0621],[3870.66,697.127,43.1333,194.964,-68.5106],[3830.03,798.811,42.5667,191.407,-67.8987],[3789.06,898.172,42,187.813,-67.2582],[3746.53,997.993,41.4167,184.079,-66.5669],[3702.43,1098.02,40.8167,180.204,-65.8198],[3656.73,1197.99,40.2,176.189,-65.0108],[3609.4,1297.63,39.5667,172.034,-64.1333],[3559.15,1399.13,38.9,167.633,-63.1541],[3507.2,1499.52,38.2167,163.098,-62.0863],[3453.53,1598.48,37.5167,158.435,-60.9191],[3396.82,1697.87,36.7833,153.542,-59.6089],[3335.7,1799.12,36,148.319,-58.1007],[3271.42,1899.2,35.1833,142.895,-56.3957],[3202.56,1999.19,34.3167,137.184,-54.4216]]], + [67,2721.02,[[4509.8,-2000.61,55.6833,261.057,-77.7172],[4488.43,-1903.16,55.3,259.352,-77.5398],[4465.96,-1802.24,54.9,257.548,-77.3507],[4443.32,-1702.1,54.5,255.719,-77.1575],[4420.5,-1602.75,54.1,253.863,-76.9599],[4396.54,-1500.13,53.6833,251.904,-76.7494],[4373.36,-1402.44,53.2833,249.996,-76.5425],[4349.03,-1301.57,52.8667,247.982,-76.3219],[4324.5,-1201.62,52.45,245.939,-76.0959],[4299.79,-1102.59,52.0333,243.869,-75.8643],[4273.88,-1000.61,51.6,241.686,-75.6172],[4248.77,-903.528,51.1833,239.558,-75.3735],[4222.46,-803.591,50.75,237.316,-75.1134],[4194.92,-700.94,50.3,234.955,-74.8358],[4168.19,-603.195,49.8667,232.651,-74.561],[4140.21,-502.853,49.4167,230.227,-74.2674],[4110.96,-400.066,48.95,227.679,-73.9539],[4082.54,-302.193,48.5,225.19,-73.6423],[4052.83,-202.004,48.0333,222.575,-73.3091],[4022.88,-103.167,47.5667,219.926,-72.9653],[3991.62,-2.24697,47.0833,217.148,-72.5974],[3960.11,97.1789,46.6,214.335,-72.2169],[3927.25,198.437,46.1,211.388,-71.8094],[3894.13,298.049,45.6,208.404,-71.3868],[3859.62,399.224,45.0833,205.284,-70.9336],[3824.84,498.588,44.5667,202.127,-70.4625],[3788.65,599.228,44.0333,198.83,-69.9564],[3752.16,697.879,43.5,195.495,-69.4288],[3714.24,797.5,42.95,192.02,-68.861],[3674.84,897.861,42.3833,188.401,-68.249],[3633.95,998.723,41.8,184.637,-67.5884],[3591.54,1099.83,41.2,180.729,-66.8742],[3548.78,1198.23,40.6,176.786,-66.1221],[3503.27,1299.11,39.9667,172.589,-65.2839],[3456.17,1399.42,39.3167,168.251,-64.3724],[3407.46,1498.83,38.65,163.773,-63.3789],[3355.87,1599.4,37.95,159.048,-62.2659],[3302.61,1698.25,37.2333,154.194,-61.0453],[3245.13,1799.31,36.4667,148.995,-59.6392],[3184.62,1899.52,35.6667,143.577,-58.0495],[3121.02,1998.15,34.8333,137.962,-56.245]]], + [68,2758.84,[[4353.3,-2002.99,55.9833,261.471,-78.2285],[4331.88,-1900.97,55.5833,259.691,-78.0512],[4311.2,-1803.92,55.2,257.96,-77.8777],[4289.45,-1703.41,54.8,256.129,-77.6927],[4267.53,-1603.69,54.4,254.273,-77.5035],[4244.52,-1500.68,53.9833,252.311,-77.3019],[4222.25,-1402.61,53.5833,250.401,-77.1039],[4198.88,-1301.34,53.1667,248.383,-76.8926],[4175.32,-1200.99,52.75,246.338,-76.6762],[4151.58,-1101.56,52.3333,244.263,-76.4545],[4127.65,-1003.06,51.9167,242.161,-76.2272],[4102.57,-901.644,51.4833,239.943,-75.9846],[4077.3,-801.269,51.05,237.696,-75.7355],[4051.82,-701.956,50.6167,235.417,-75.4797],[4026.15,-603.722,50.1833,233.108,-75.2167],[3999.28,-502.866,49.7333,230.677,-74.9359],[3972.2,-403.208,49.2833,228.214,-74.6468],[3943.89,-301.142,48.8167,225.625,-74.3378],[3915.36,-200.402,48.35,223.002,-74.0191],[3886.6,-101.009,47.8833,220.344,-73.6902],[3857.61,-2.98223,47.4167,217.651,-73.3505],[3827.36,97.0838,46.9333,214.827,-72.9868],[3795.8,199.012,46.4333,211.868,-72.5972],[3764,299.3,45.9333,208.871,-72.1933],[3731.94,397.923,45.4333,205.837,-71.7742],[3698.55,498.06,44.9167,202.664,-71.3244],[3663.8,599.507,44.3833,199.349,-70.841],[3628.77,698.973,43.85,195.995,-70.3372],[3592.36,799.443,43.3,192.497,-69.7948],[3555.65,897.744,42.75,188.96,-69.2276],[3516.4,999.597,42.1667,185.17,-68.5972],[3476.82,1098.94,41.5833,181.34,-67.9349],[3435.79,1198.45,40.9833,177.363,-67.2179],[3393.27,1297.88,40.3667,173.239,-66.4401],[3348.07,1399.5,39.7167,168.857,-65.5719],[3302.5,1497.81,39.0667,164.442,-64.6495],[3253.01,1599.92,38.3667,159.658,-63.5901],[3203.09,1698.08,37.6667,154.852,-62.4556],[3149.16,1798.79,36.9167,149.687,-61.1479],[3092.33,1898.98,36.1333,144.289,-59.6693],[3031.34,1999.87,35.3,138.56,-57.9548]]], + [69,2795.37,[[4192.16,-2004.06,56.2667,261.848,-78.7383],[4171.63,-1901.7,55.8667,260.067,-78.5688],[4150.93,-1800.11,55.4667,258.259,-78.3956],[4130.95,-1703.47,55.0833,256.502,-78.2261],[4109.93,-1603.41,54.6833,254.644,-78.0452],[4087.87,-1500.03,54.2667,252.679,-77.8525],[4066.52,-1401.61,53.8667,250.767,-77.6632],[4045.01,-1304.02,53.4667,248.828,-77.4694],[4022.44,-1203.25,53.05,246.779,-77.2628],[3999.68,-1103.4,52.6333,244.702,-77.051],[3975.83,-1000.54,52.2,242.512,-76.8251],[3952.71,-902.614,51.7833,240.376,-76.6022],[3928.48,-801.789,51.35,238.123,-76.3643],[3904.07,-702.022,50.9167,235.84,-76.12],[3879.46,-603.327,50.4833,233.525,-75.8689],[3853.71,-501.989,50.0333,231.089,-75.6007],[3827.75,-401.842,49.5833,228.619,-75.3245],[3801.59,-302.906,49.1333,226.115,-75.0401],[3774.24,-201.601,48.6667,223.484,-74.736],[3746.68,-101.637,48.2,220.818,-74.4221],[3718.9,-3.0334,47.7333,218.116,-74.098],[3689.91,97.6366,47.25,215.282,-73.7509],[3660.68,196.804,46.7667,212.41,-73.3917],[3630.21,297.785,46.2667,209.401,-73.0067],[3599.49,397.11,45.7667,206.354,-72.6072],[3567.49,497.978,45.25,203.167,-72.1783],[3535.24,597.024,44.7333,199.939,-71.7321],[3501.69,697.324,44.2,196.568,-71.2523],[3466.8,798.664,43.65,193.05,-70.7357],[3431.64,897.844,43.1,189.491,-70.1954],[3395.11,997.736,42.5333,185.784,-69.6124],[3357.21,1098.1,41.95,181.927,-68.9822],[3317.9,1198.68,41.35,177.919,-68.2997],[3277.17,1299.21,40.7333,173.759,-67.5593],[3234.99,1399.42,40.1,169.449,-66.7543],[3191.35,1499,39.45,164.988,-65.8769],[3146.21,1597.66,38.7833,160.381,-64.9184],[3097.28,1699.74,38.0667,155.398,-63.8151],[3046.78,1799.84,37.3333,150.276,-62.5998],[2993.54,1899.74,36.5667,144.908,-61.2257],[2937.5,1998.7,35.7667,139.306,-59.6655]]], + [70,2830.53,[[4026.45,-2003.88,56.5333,262.189,-79.247],[4006.81,-1901.2,56.1333,260.406,-79.0853],[3987.84,-1803.52,55.75,258.672,-78.927],[3967.9,-1702.35,55.35,256.838,-78.7583],[3947.79,-1601.97,54.95,254.977,-78.5857],[3927.53,-1502.38,54.55,253.089,-78.4093],[3907.12,-1403.6,54.15,251.175,-78.2288],[3885.69,-1301.57,53.7333,249.152,-78.0363],[3864.09,-1200.45,53.3167,247.1,-77.8392],[3842.32,-1100.24,52.9,245.019,-77.6371],[3820.38,-1000.97,52.4833,242.909,-77.4299],[3798.27,-902.637,52.0667,240.769,-77.2175],[3775.1,-801.391,51.6333,238.512,-76.9907],[3751.74,-701.197,51.2,236.224,-76.7577],[3728.21,-602.071,50.7667,233.904,-76.5183],[3703.57,-500.281,50.3167,231.461,-76.2626],[3679.67,-403.382,49.8833,229.077,-76.0092],[3653.72,-300.278,49.4167,226.474,-75.7281],[3628.51,-202.102,48.9667,223.929,-75.4487],[3602.15,-101.601,48.5,221.254,-75.1497],[3575.59,-2.45396,48.0333,218.544,-74.841],[3547.86,98.7846,47.55,215.699,-74.5104],[3519.91,198.526,47.0667,212.817,-74.1682],[3491.74,296.749,46.5833,209.897,-73.8139],[3462.38,396.735,46.0833,206.837,-73.4337],[3431.79,498.296,45.5667,203.635,-73.0256],[3400.95,598.041,45.05,200.392,-72.6009],[3368.87,699.07,44.5167,197.003,-72.1442],[3336.53,798.107,43.9833,193.573,-71.6676],[3302.91,898.121,43.4333,189.993,-71.1539],[3267.99,998.881,42.8667,186.262,-70.5994],[3232.8,1097.29,42.3,182.49,-70.0175],[3195.23,1198.88,41.7,178.452,-69.3692],[3157.36,1297.76,41.1,174.373,-68.6852],[3117.05,1399.14,40.4667,170.025,-67.9212],[3075.34,1499.94,39.8167,165.522,-67.0883],[3032.21,1599.86,39.15,160.865,-66.178],[2987.63,1698.59,38.4667,156.058,-65.1801],[2940.49,1798.05,37.75,150.988,-64.0558],[2889.63,1899.76,36.9833,145.542,-62.7552],[2837.22,1998.59,36.2,139.966,-61.3092]]], + [71,2864.3,[[3856.32,-2002.44,56.7833,262.492,-79.7554],[3838.36,-1903.75,56.4,260.782,-79.6078],[3819.47,-1801.51,56,258.972,-79.4507],[3800.44,-1700.04,55.6,257.135,-79.29],[3782.05,-1603.54,55.2167,255.35,-79.1327],[3762.73,-1503.61,54.8167,253.461,-78.9648],[3742.43,-1400.38,54.4,251.464,-78.7859],[3722.8,-1302.1,54,249.519,-78.61],[3702.19,-1200.62,53.5833,247.465,-78.4224],[3681.42,-1100.05,53.1667,245.381,-78.2302],[3660.49,-1000.4,52.75,243.267,-78.0331],[3639.39,-901.697,52.3333,241.123,-77.831],[3617.28,-800.057,51.9,238.862,-77.6152],[3595.86,-703.314,51.4833,236.658,-77.4022],[3573.41,-603.745,51.05,234.334,-77.1747],[3549.91,-501.489,50.6,231.886,-76.9317],[3526.23,-400.415,50.15,229.404,-76.6814],[3502.36,-300.541,49.7,226.886,-76.4237],[3478.3,-201.884,49.25,224.335,-76.1581],[3453.16,-100.879,48.7833,221.653,-75.8739],[3427.82,-1.22253,48.3167,218.934,-75.5804],[3402.28,97.0644,47.85,216.178,-75.2772],[3375.63,197.397,47.3667,213.286,-74.9523],[3347.83,299.596,46.8667,210.254,-74.604],[3320.75,396.827,46.3833,207.284,-74.2548],[3291.57,499.039,45.8667,204.068,-73.8671],[3262.16,599.443,45.35,200.811,-73.4638],[3232.52,698.011,44.8333,197.512,-73.0438],[3201.68,797.805,44.3,194.064,-72.5916],[3169.62,898.607,43.75,190.465,-72.1042],[3137.31,997.234,43.2,186.822,-71.5939],[3102.76,1099.43,42.6167,182.914,-71.0257],[3067.93,1199.1,42.0333,178.961,-70.4278],[3031.82,1298.95,41.4333,174.851,-69.7793],[2994.41,1398.71,40.8167,170.583,-69.0743],[2955.67,1498.1,40.1833,166.157,-68.3062],[2914.55,1599.31,39.5167,161.456,-67.445],[2872.06,1699.37,38.8333,156.598,-66.5006],[2828.18,1797.95,38.1333,151.587,-65.4617],[2780.77,1899.1,37.3833,146.188,-64.2593],[2730.82,1999.73,36.6,140.528,-62.8931]]], + [72,2896.64,[[3682.6,-2004.1,57.0333,262.833,-80.27],[3664.77,-1900.84,56.6333,261.047,-80.1239],[3647.54,-1802.59,56.25,259.31,-79.9809],[3629.43,-1700.81,55.85,257.472,-79.8284],[3611.93,-1604.01,55.4667,255.686,-79.6791],[3593.54,-1503.77,55.0667,253.795,-79.5198],[3574.23,-1400.21,54.65,251.796,-79.35],[3555.55,-1301.62,54.25,249.849,-79.1831],[3536.73,-1203.85,53.85,247.874,-79.0122],[3516.97,-1102.9,53.4333,245.788,-78.8299],[3497.06,-1002.87,53.0167,243.672,-78.6431],[3476.99,-903.783,52.6,241.526,-78.4515],[3455.95,-801.738,52.1667,239.261,-78.2469],[3434.76,-700.736,51.7333,236.964,-78.0368],[3413.39,-600.794,51.3,234.635,-77.8208],[3391.87,-501.927,50.8667,232.272,-77.5988],[3369.33,-400.413,50.4167,229.784,-77.3615],[3346.63,-300.094,49.9667,227.261,-77.1171],[3323.74,-200.987,49.5167,224.703,-76.8652],[3300.67,-103.112,49.0667,222.109,-76.6055],[3276.57,-2.93167,48.6,219.383,-76.3276],[3251.41,99.389,48.1167,216.52,-76.0299],[3226.93,196.772,47.65,213.719,-75.7325],[3200.49,299.552,47.15,210.676,-75.4025],[3174.73,397.349,46.6667,207.695,-75.0717],[3147.88,496.885,46.1667,204.571,-74.7165],[3119.91,597.966,45.65,201.301,-74.3348],[3091.72,697.219,45.1333,197.987,-73.9373],[3062.39,797.727,44.6,194.523,-73.5093],[3031.9,899.274,44.05,190.905,-73.0479],[3001.17,998.653,43.5,187.242,-72.5648],[2969.26,1098.74,42.9333,183.423,-72.0425],[2936.14,1199.3,42.35,179.445,-71.4771],[2902.76,1297.31,41.7667,175.422,-70.8812],[2867.19,1398.11,41.15,171.122,-70.2152],[2830.36,1498.57,40.5167,166.66,-69.4895],[2792.25,1598.41,39.8667,162.036,-68.6965],[2751.86,1699.75,39.1833,157.13,-67.805],[2710.14,1799.65,38.4833,152.064,-66.8238],[2666.07,1900,37.75,146.72,-65.7139],[2620.63,1998,37,141.226,-64.4814]]], + [73,2927.5,[[3503.95,-2000.28,57.25,263.063,-80.7792],[3487.73,-1901.07,56.8667,261.35,-80.6467],[3471.39,-1802.55,56.4833,259.613,-80.5113],[3454.21,-1700.5,56.0833,257.773,-80.367],[3437.62,-1603.42,55.7,255.985,-80.2256],[3420.17,-1502.89,55.3,254.092,-80.0749],[3402.58,-1403.16,54.9,252.171,-79.9206],[3384.13,-1300.13,54.4833,250.141,-79.7561],[3366.27,-1202.07,54.0833,248.163,-79.5945],[3347.52,-1100.8,53.6667,246.074,-79.4219],[3328.63,-1000.46,53.25,243.954,-79.2451],[3309.59,-901.047,52.8333,241.804,-79.0637],[3290.41,-802.582,52.4167,239.623,-78.8776],[3270.3,-701.199,51.9833,237.322,-78.6789],[3250.04,-600.87,51.55,234.988,-78.4747],[3229.61,-501.614,51.1167,232.62,-78.2647],[3209.04,-403.444,50.6833,230.22,-78.0488],[3187.5,-302.666,50.2333,227.692,-77.8179],[3165.8,-203.096,49.7833,225.129,-77.58],[3143.12,-101.134,49.3167,222.432,-77.3254],[3120.26,-0.510854,48.85,219.698,-77.0625],[3097.22,98.7536,48.3833,216.925,-76.7907],[3074,196.639,47.9167,214.115,-76.5098],[3048.93,299.962,47.4167,211.063,-76.198],[3024.5,398.29,46.9333,208.071,-75.8854],[2999.03,498.38,46.4333,204.935,-75.5498],[2973.37,596.79,45.9333,201.757,-75.201],[2945.77,699.879,45.4,198.322,-74.8134],[2918.83,797.868,44.8833,194.951,-74.4218],[2890.8,897.048,44.35,191.426,-73.9997],[2861.67,997.202,43.8,187.745,-73.5441],[2831.41,1098.1,43.2333,183.905,-73.0517],[2800.02,1199.5,42.65,179.903,-72.5184],[2768.37,1298.35,42.0667,175.854,-71.9563],[2735.56,1397.34,41.4667,171.641,-71.3454],[2700.65,1498.83,40.8333,167.146,-70.6616],[2664.53,1599.73,40.1833,162.483,-69.9142],[2627.18,1699.73,39.5167,157.653,-69.0948],[2588.59,1798.53,38.8333,152.658,-68.1937],[2547.79,1898.05,38.1167,147.378,-67.1745],[2503.78,1999.79,37.35,141.692,-65.9901]]], + [74,2956.84,[[3322.58,-2003.98,57.4833,263.406,-81.3006],[3306.58,-1900.19,57.0833,261.618,-81.1701],[3291.13,-1801.42,56.7,259.879,-81.0424],[3275.56,-1703.35,56.3167,258.115,-80.912],[3259.19,-1601.77,55.9167,256.247,-80.7729],[3242.7,-1500.98,55.5167,254.352,-80.6306],[3226.07,-1400.98,55.1167,252.428,-80.4851],[3209.32,-1301.78,54.7167,250.477,-80.3362],[3192.44,-1203.41,54.3167,248.498,-80.1838],[3174.72,-1101.82,53.9,246.406,-80.0212],[3156.86,-1001.14,53.4833,244.283,-79.8544],[3138.87,-901.399,53.0667,242.13,-79.6834],[3120.74,-802.598,52.65,239.946,-79.508],[3101.73,-700.86,52.2167,237.641,-79.3207],[3082.58,-600.174,51.7833,235.303,-79.1282],[3063.27,-500.556,51.35,232.931,-78.9302],[3043.82,-402.021,50.9167,230.525,-78.7266],[3023.46,-300.86,50.4667,227.991,-78.509],[3002.95,-200.903,50.0167,225.421,-78.2846],[2982.28,-102.168,49.5667,222.814,-78.0533],[2960.67,-1.087,49.1,220.073,-77.8057],[2938.9,98.6404,48.6333,217.293,-77.5498],[2916.95,196.993,48.1667,214.475,-77.2852],[2894.05,297.388,47.6833,211.516,-77.0014],[2870.17,399.646,47.1833,208.411,-76.697],[2846.91,496.927,46.7,205.369,-76.3915],[2821.84,599.185,46.1833,202.073,-76.0521],[2796.58,699.628,45.6667,198.731,-75.6986],[2771.12,798.227,45.15,195.346,-75.3301],[2744.64,898.045,44.6167,191.805,-74.9328],[2717.11,998.862,44.0667,188.106,-74.504],[2689.36,1097.49,43.5167,184.359,-74.0544],[2659.7,1199.68,42.9333,180.335,-73.5531],[2629.8,1299.34,42.35,176.261,-73.0245],[2598.81,1399.16,41.75,172.021,-72.4499],[2566.7,1498.87,41.1333,167.612,-71.8241],[2533.45,1598.2,40.5,163.035,-71.1405],[2498.18,1699.34,39.8333,158.165,-70.3717],[2461.73,1799.3,39.15,153.124,-69.526],[2424.09,1897.76,38.45,147.914,-68.5921],[2383.43,1998.76,37.7,142.289,-67.5065]]], + [75,2984.61,[[3136.53,-2002.28,57.6833,263.64,-81.8177],[3122.1,-1902.57,57.3,261.925,-81.7002],[3107.55,-1803.54,56.9167,260.185,-81.5802],[3092.25,-1700.96,56.5167,258.343,-81.4523],[3077.48,-1603.36,56.1333,256.551,-81.327],[3061.95,-1502.29,55.7333,254.655,-81.1934],[3046.3,-1402.01,55.3333,252.73,-81.0567],[3030.52,-1302.54,54.9333,250.777,-80.9169],[3014.63,-1203.88,54.5333,248.796,-80.7737],[2997.95,-1101.99,54.1167,246.702,-80.6209],[2981.13,-1001.01,53.7,244.576,-80.4643],[2964.19,-900.955,53.2833,242.42,-80.3037],[2947.11,-801.844,52.8667,240.232,-80.1389],[2929.91,-703.686,52.45,238.013,-79.9698],[2911.88,-602.63,52.0167,235.671,-79.7892],[2893.7,-502.637,51.5833,233.296,-79.6034],[2875.39,-403.724,51.15,230.886,-79.4123],[2856.23,-302.166,50.7,228.348,-79.2081],[2836.92,-201.807,50.25,225.773,-78.9976],[2817.46,-102.666,49.8,223.16,-78.7805],[2797.12,-1.15912,49.3333,220.413,-78.5481],[2776.62,98.9983,48.8667,217.626,-78.3079],[2755.96,197.786,48.4,214.799,-78.0595],[2734.4,298.635,47.9167,211.831,-77.7932],[2712.67,397.971,47.4333,208.821,-77.5172],[2690.02,499.114,46.9333,205.663,-77.2208],[2667.19,598.587,46.4333,202.462,-76.9126],[2643.41,699.595,45.9167,199.109,-76.5811],[2619.45,798.766,45.4,195.709,-76.2355],[2594.52,899.179,44.8667,192.153,-75.863],[2569.39,997.575,44.3333,188.55,-75.4733],[2542.49,1099.88,43.7667,184.671,-75.039],[2515.37,1199.83,43.2,180.741,-74.5824],[2488.04,1297.4,42.6333,176.762,-74.1017],[2458.87,1398.08,42.0333,172.497,-73.5641],[2428.66,1498.69,41.4167,168.061,-72.9784],[2397.38,1598.94,40.7833,163.451,-72.3385],[2365.02,1698.54,40.1333,158.666,-71.6373],[2330.73,1799.61,39.45,153.583,-70.8465],[2295.31,1899.22,38.75,148.324,-69.9729],[2257.92,1999.24,38.0167,142.765,-68.9805]]], + [76,3010.8,[[2947.26,-2003.85,57.8833,263.913,-82.3414],[2933.72,-1903.91,57.5,262.197,-82.2315],[2919.49,-1800.35,57.1,260.381,-82.1144],[2905.75,-1701.81,56.7167,258.613,-81.9996],[2891.9,-1603.98,56.3333,256.821,-81.8824],[2877.34,-1502.66,55.9333,254.923,-81.7575],[2862.67,-1402.12,55.5333,252.996,-81.6296],[2847.88,-1302.39,55.1333,251.041,-81.4987],[2832.98,-1203.46,54.7333,249.058,-81.3648],[2817.35,-1101.3,54.3167,246.961,-81.2219],[2801.58,-1000.04,53.9,244.833,-81.0754],[2786.34,-903.705,53.5,242.76,-80.9312],[2769.69,-800.313,53.0667,240.482,-80.771],[2753.56,-701.869,52.65,238.259,-80.6128],[2736.66,-600.51,52.2167,235.913,-80.4438],[2719.62,-500.212,51.7833,233.533,-80.27],[2702.46,-400.991,51.35,231.118,-80.0912],[2685.16,-302.862,50.9167,228.668,-79.9073],[2667.06,-202.132,50.4667,226.088,-79.7106],[2648.82,-102.616,50.0167,223.47,-79.5076],[2629.76,-0.715903,49.55,220.716,-79.2904],[2610.55,99.8388,49.0833,217.922,-79.0659],[2591.18,199.028,48.6167,215.088,-78.8338],[2571.67,296.83,48.15,212.214,-78.5936],[2551.31,396.642,47.6667,209.196,-78.3359],[2530.09,498.284,47.1667,206.03,-78.059],[2508.69,598.261,46.6667,202.818,-77.7713],[2486.41,699.795,46.15,199.453,-77.4618],[2463.96,799.497,45.6333,196.041,-77.139],[2441.33,897.34,45.1167,192.583,-76.8022],[2417.05,999.42,44.5667,188.852,-76.4271],[2392.58,1099.33,44.0167,185.07,-76.0336],[2367.17,1199.96,43.45,181.121,-75.6076],[2341.57,1298.22,42.8833,177.122,-75.1591],[2314.24,1399.62,42.2833,172.832,-74.6574],[2286.7,1498.29,41.6833,168.489,-74.1259],[2257.4,1599.41,41.05,163.849,-73.5294],[2227.08,1699.92,40.4,159.03,-72.8757],[2195.74,1799.5,39.7333,154.032,-72.1568],[2163.37,1897.84,39.05,148.855,-71.3632],[2128.34,1999.1,38.3167,143.244,-70.4402]]], + [77,3035.36,[[2753.7,-2000.02,58.05,264.077,-82.8624],[2741.62,-1904.24,57.6833,262.435,-82.7645],[2728.35,-1800.46,57.2833,260.617,-82.6554],[2715.53,-1701.71,56.9,258.848,-82.5486],[2702.62,-1603.66,56.5167,257.054,-82.4396],[2689.04,-1502.1,56.1167,255.154,-82.3232],[2675.36,-1401.33,55.7167,253.226,-82.2042],[2661.57,-1301.36,55.3167,251.269,-82.0823],[2647.67,-1202.2,54.9167,249.283,-81.9577],[2633.67,-1103.87,54.5167,247.268,-81.83],[2618.97,-1002.32,54.1,245.138,-81.6937],[2604.16,-901.697,53.6833,242.977,-81.554],[2589.24,-802.005,53.2667,240.783,-81.4106],[2574.2,-703.262,52.85,238.557,-81.2635],[2558.44,-601.589,52.4167,236.208,-81.1063],[2542.56,-500.974,51.9833,233.825,-80.9447],[2526.55,-401.431,51.55,231.406,-80.7784],[2510.42,-302.977,51.1167,228.952,-80.6073],[2493.54,-201.907,50.6667,226.367,-80.4243],[2476.54,-102.047,50.2167,223.744,-80.2356],[2459.4,-3.41574,49.7667,221.083,-80.0409],[2441.49,97.5516,49.3,218.283,-79.8323],[2423.44,197.158,48.8333,215.443,-79.6166],[2404.6,298.864,48.35,212.459,-79.3853],[2385.61,399.065,47.8667,209.432,-79.1455],[2366.48,497.738,47.3833,206.362,-78.8967],[2346.53,598.181,46.8833,203.141,-78.6293],[2326.43,696.939,46.3833,199.875,-78.3511],[2305.5,797.193,45.8667,196.452,-78.0515],[2283.73,898.735,45.3333,192.87,-77.7285],[2261.78,998.272,44.8,189.237,-77.3907],[2238.98,1098.79,44.25,185.44,-77.0254],[2215.99,1197.1,43.7,181.592,-76.6418],[2191.42,1298.94,43.1167,177.455,-76.2134],[2166.66,1398.23,42.5333,173.264,-75.7608],[2140.99,1497.66,41.9333,168.898,-75.2679],[2113.68,1599.6,41.3,164.23,-74.7146],[2086.16,1698.39,40.6667,159.505,-74.1241],[2056.96,1798.94,40,154.472,-73.4581],[2026.79,1898.28,39.3167,149.254,-72.7227],[1994.89,1998.35,38.6,143.723,-71.8873]]], + [78,3058.25,[[2557.67,-2003.96,58.2333,264.355,-83.3945],[2545.97,-1903.61,57.85,262.638,-83.2997],[2534.18,-1803.95,57.4667,260.895,-83.203],[2521.78,-1700.69,57.0667,259.049,-83.0999],[2509.81,-1602.44,56.6833,257.253,-82.9989],[2497.22,-1500.68,56.2833,255.351,-82.8912],[2485.06,-1403.89,55.9,253.502,-82.7857],[2472.28,-1303.68,55.5,251.544,-82.673],[2458.86,-1200.15,55.0833,249.473,-82.5528],[2445.88,-1101.59,54.6833,247.456,-82.4347],[2432.8,-1003.87,54.2833,245.409,-82.3136],[2419.07,-902.982,53.8667,243.245,-82.1844],[2405.24,-803.021,53.45,241.049,-82.0518],[2390.74,-700.064,53.0167,238.731,-81.9102],[2376.69,-602.046,52.6,236.468,-81.7703],[2361.97,-501.141,52.1667,234.081,-81.6208],[2347.14,-401.305,51.7333,231.659,-81.4671],[2332.19,-302.556,51.3,229.201,-81.3089],[2316.54,-201.175,50.85,226.61,-81.1396],[2300.78,-101.002,50.4,223.982,-80.965],[2284.89,-2.05331,49.95,221.315,-80.7849],[2268.29,99.246,49.4833,218.509,-80.592],[2251.56,199.187,49.0167,215.662,-80.3924],[2234.7,297.75,48.55,212.774,-80.186],[2217.1,398.358,48.0667,209.74,-79.9644],[2199.37,497.441,47.5833,206.662,-79.7345],[2180.89,598.314,47.0833,203.432,-79.4874],[2162.26,697.506,46.5833,200.155,-79.2303],[2142.86,798.212,46.0667,196.722,-78.9535],[2123.32,897.069,45.55,193.24,-78.6645],[2102.98,997.146,45.0167,189.595,-78.3526],[2081.85,1098.22,44.4667,185.784,-78.0155],[2060.55,1197.11,43.9167,181.92,-77.6613],[2037.79,1299.56,43.3333,177.765,-77.2657],[2014.84,1399.46,42.75,173.554,-76.8478],[1991.06,1499.53,42.15,169.164,-76.3925],[1966.42,1599.49,41.5333,164.594,-75.8953],[1940.92,1699.05,40.9,159.84,-75.3506],[1914.55,1797.93,40.25,154.901,-74.752],[1886.6,1898.21,39.5667,149.647,-74.0745],[1857.06,1999.28,38.85,144.073,-73.3045]]], + [79,3079.45,[[2357.7,-2002.55,58.3833,264.526,-83.9247],[2346.92,-1902.04,58,262.808,-83.8376],[2336.07,-1802.2,57.6167,261.063,-83.7487],[2325.13,-1703.05,57.2333,259.293,-83.6579],[2313.63,-1600.33,56.8333,257.418,-83.561],[2302.53,-1502.62,56.45,255.594,-83.4662],[2290.85,-1401.42,56.05,253.663,-83.365],[2279.08,-1301.02,55.65,251.702,-83.2614],[2267.23,-1201.42,55.25,249.713,-83.1554],[2255.28,-1102.64,54.85,247.693,-83.0468],[2242.74,-1000.63,54.4333,245.558,-82.9309],[2230.61,-903.561,54.0333,243.478,-82.8168],[2217.88,-803.355,53.6167,241.28,-82.6951],[2204.53,-700.142,53.1833,238.959,-82.565],[2191.6,-601.875,52.7667,236.694,-82.4365],[2178.05,-500.708,52.3333,234.303,-82.2992],[2164.39,-400.608,51.9,231.876,-82.1579],[2150.63,-301.592,51.4667,229.414,-82.0125],[2136.77,-203.675,51.0333,226.916,-81.8629],[2122.26,-103.173,50.5833,224.284,-81.7027],[2107.1,-0.239393,50.1167,221.514,-81.5312],[2092.37,97.7543,49.6667,218.803,-81.3603],[2076.97,198.047,49.2,215.95,-81.1772],[2061.46,296.965,48.7333,213.056,-80.9877],[2045.27,397.944,48.25,210.015,-80.7843],[2028.95,497.404,47.7667,206.929,-80.5733],[2011.94,598.669,47.2667,203.691,-80.3465],[1994.8,698.258,46.7667,200.405,-80.1105],[1976.95,799.378,46.25,196.961,-79.8564],[1958.96,898.653,45.7333,193.468,-79.5911],[1940.24,999.166,45.2,189.81,-79.3047],[1921.39,1097.65,44.6667,186.101,-79.0047],[1901.79,1197.06,44.1167,182.222,-78.68],[1881.45,1297.17,43.55,178.171,-78.3279],[1860.34,1397.71,42.9667,173.943,-77.9451],[1838.46,1498.44,42.3667,169.534,-77.5281],[1815.8,1599.1,41.75,164.941,-77.0727],[1792.34,1699.38,41.1167,160.161,-76.5736],[1768.07,1799,40.4667,155.193,-76.025],[1742.99,1897.65,39.8,150.033,-75.4197],[1715.82,1999.66,39.0833,144.419,-74.715]]], + [80,3098.91,[[2154.53,-2000.19,58.5167,264.664,-84.4579],[2145.13,-1903.89,58.15,263.019,-84.382],[2135.22,-1803.88,57.7667,261.274,-84.301],[2124.8,-1700.24,57.3667,259.426,-84.2146],[2114.74,-1601.64,56.9833,257.627,-84.1299],[2104.61,-1503.74,56.6,255.803,-84.0435],[2093.95,-1402.34,56.2,253.87,-83.9513],[2083.21,-1301.74,55.8,251.908,-83.8569],[2072.39,-1201.94,55.4,249.917,-83.7603],[2061.48,-1102.96,55,247.896,-83.6614],[2050.04,-1000.74,54.5833,245.759,-83.5558],[2038.96,-903.46,54.1833,243.677,-83.4519],[2027.34,-803.038,53.7667,241.476,-83.3409],[2015.63,-703.555,53.35,239.242,-83.2269],[2003.36,-601.106,52.9167,236.884,-83.1052],[1991.47,-503.586,52.5,234.582,-82.985],[1979.01,-403.209,52.0667,232.154,-82.8564],[1965.97,-300.115,51.6167,229.593,-82.7189],[1953.31,-201.957,51.1833,227.091,-82.5825],[1940.07,-101.202,50.7333,224.454,-82.4365],[1926.73,-1.66705,50.2833,221.777,-82.2858],[1913.28,96.6305,49.8333,219.062,-82.1303],[1899.23,197.242,49.3667,216.204,-81.9636],[1885.07,296.482,48.9,213.305,-81.7911],[1870.3,397.798,48.4167,210.257,-81.6059],[1855.41,497.597,47.9333,207.164,-81.4138],[1839.88,599.218,47.4333,203.918,-81.2073],[1824.24,699.166,46.9333,200.624,-80.9924],[1808.48,797.416,46.4333,197.282,-80.7685],[1792.07,897.13,45.9167,193.779,-80.5273],[1774.99,998.1,45.3833,190.112,-80.2668],[1757.79,1097.05,44.85,186.391,-79.994],[1739.36,1199.93,44.2833,182.381,-79.6894],[1721.35,1297.54,43.7333,178.433,-79.3783],[1702.09,1398.61,43.15,174.188,-79.03],[1682.12,1499.89,42.55,169.759,-78.6506],[1662,1598.4,41.95,165.27,-78.2476],[1640.6,1699.35,41.3167,160.467,-77.7942],[1618.46,1799.66,40.6667,155.472,-77.2955],[1595.58,1899.03,40,150.282,-76.7452],[1571.37,1999.47,39.3,144.763,-76.1198]]], + [81,3116.62,[[1948.76,-2001.32,58.65,264.844,-84.9977],[1939.88,-1900.5,58.2667,263.123,-84.926],[1930.93,-1800.36,57.8833,261.376,-84.8529],[1921.9,-1700.9,57.5,259.603,-84.7781],[1912.81,-1602.13,57.1167,257.804,-84.7017],[1903.66,-1504.06,56.7333,255.978,-84.6238],[1894.03,-1402.5,56.3333,254.044,-84.5406],[1884.32,-1301.72,55.9333,252.081,-84.4554],[1874.55,-1201.75,55.5333,250.088,-84.3682],[1864.69,-1102.59,55.1333,248.065,-84.2789],[1854.35,-1000.17,54.7167,245.926,-84.1836],[1844.35,-902.714,54.3167,243.842,-84.0899],[1833.85,-802.099,53.9,241.638,-83.9897],[1823.27,-702.422,53.4833,239.402,-83.887],[1812.6,-603.698,53.0667,237.132,-83.7814],[1801.43,-502.051,52.6333,234.736,-83.6686],[1790.17,-401.466,52.2,232.303,-83.5526],[1778.83,-301.959,51.7667,229.834,-83.4331],[1767.4,-203.547,51.3333,227.329,-83.3102],[1755.43,-102.525,50.8833,224.688,-83.1785],[1743.38,-2.71973,50.4333,222.008,-83.0427],[1730.78,99.4777,49.9667,219.187,-82.8973],[1718.54,196.748,49.5167,216.427,-82.7523],[1705.3,299.806,49.0333,213.417,-82.5911],[1692.41,397.895,48.5667,210.468,-82.4299],[1678.95,498.001,48.0833,207.369,-82.2566],[1664.93,599.941,47.5833,204.115,-82.0704],[1651.27,696.896,47.1,200.924,-81.8833],[1636.56,798.787,46.5833,197.463,-81.6748],[1621.73,898.841,46.0667,193.95,-81.4573],[1606.79,997.03,45.55,190.387,-81.2299],[1590.77,1099.47,45,186.538,-80.9763],[1574.61,1199.74,44.45,182.633,-80.7099],[1558.34,1297.79,43.9,178.672,-80.4296],[1540.94,1399.33,43.3167,174.412,-80.1159],[1523.41,1498.31,42.7333,170.09,-79.7838],[1505.25,1597.4,42.1333,165.583,-79.4213],[1485.92,1698.96,41.5,160.76,-79.0133],[1465.93,1799.91,40.85,155.74,-78.5646],[1445.27,1899.93,40.1833,150.523,-78.0693],[1423.92,1998.71,39.5,145.104,-77.5202]]], + [82,3132.55,[[1740.14,-2001.57,58.7667,264.991,-85.5403],[1732.21,-1900.61,58.3833,263.269,-85.4764],[1724.22,-1800.33,58,261.522,-85.4112],[1716.17,-1700.73,57.6167,259.748,-85.3446],[1708.06,-1601.82,57.2333,257.947,-85.2766],[1699.89,-1503.61,56.85,256.12,-85.2071],[1691.3,-1401.9,56.45,254.185,-85.1329],[1682.64,-1300.97,56.05,252.22,-85.057],[1673.92,-1200.84,55.65,250.226,-84.9793],[1665.12,-1101.53,55.25,248.201,-84.8997],[1656.27,-1003.04,54.85,246.146,-84.8183],[1646.97,-901.333,54.4333,243.973,-84.7312],[1637.6,-800.552,54.0167,241.767,-84.642],[1628.16,-700.708,53.6,239.528,-84.5504],[1618.65,-601.814,53.1833,237.255,-84.4563],[1609.06,-503.886,52.7667,234.948,-84.3596],[1599.02,-403.08,52.3333,232.514,-84.2563],[1588.9,-303.35,51.9,230.042,-84.15],[1578.31,-200.94,51.45,227.437,-84.0363],[1568.03,-103.453,51.0167,224.891,-83.9233],[1557.28,-3.40878,50.5667,222.207,-83.8024],[1546.04,99.0394,50.1,219.382,-83.6728],[1535.12,196.554,49.65,216.617,-83.5437],[1523.3,299.877,49.1667,213.602,-83.4002],[1511.81,398.225,48.7,210.648,-83.2565],[1499.81,498.601,48.2167,207.543,-83.1023],[1487.71,597.443,47.7333,204.392,-82.9421],[1475.11,698.055,47.2333,201.084,-82.7698],[1462.41,796.976,46.7333,197.727,-82.5902],[1449.19,897.391,46.2167,194.207,-82.3967],[1435.43,999.091,45.6833,190.52,-82.1877],[1421.57,1098.78,45.15,186.777,-81.9689],[1407.16,1199.44,44.6,182.862,-81.7318],[1392.64,1297.89,44.05,178.889,-81.4824],[1377.13,1399.86,43.4667,174.615,-81.2033],[1361.49,1499.27,42.8833,170.278,-80.9078],[1345.29,1598.81,42.2833,165.754,-80.5851],[1328.51,1698.21,41.6667,161.039,-80.2318],[1310.68,1799.74,41.0167,155.998,-79.833],[1292.71,1897.89,40.3667,150.887,-79.4041],[1273.22,1999.76,39.6667,145.309,-78.9044]]], + [83,3146.67,[[1528.89,-2000.94,58.8667,265.106,-86.0862],[1522.23,-1904.25,58.5,263.46,-86.0327],[1515.21,-1803.82,58.1167,261.712,-85.9755],[1508.15,-1704.07,57.7333,259.938,-85.9171],[1500.72,-1600.72,57.3333,258.059,-85.8549],[1493.54,-1502.4,56.95,256.23,-85.7938],[1486,-1400.55,56.55,254.294,-85.7287],[1478.71,-1303.69,56.1667,252.41,-85.665],[1471.05,-1203.4,55.7667,250.414,-85.5969],[1463.33,-1103.92,55.3667,248.389,-85.5271],[1455.23,-1001.17,54.95,246.247,-85.4527],[1447.39,-903.386,54.55,244.16,-85.3794],[1439.17,-802.428,54.1333,241.952,-85.3011],[1430.88,-702.405,53.7167,239.712,-85.2209],[1422.53,-603.33,53.3,237.437,-85.1384],[1413.77,-501.314,52.8667,235.036,-85.0502],[1404.95,-400.357,52.4333,232.598,-84.9595],[1396.07,-300.473,52,230.123,-84.8662],[1387.11,-201.681,51.5667,227.61,-84.7701],[1377.74,-100.26,51.1167,224.962,-84.6673],[1368.3,-0.052114,50.6667,222.274,-84.5611],[1358.78,98.9251,50.2167,219.545,-84.4516],[1349.19,196.653,49.7667,216.776,-84.3384],[1339.18,296.661,49.3,213.862,-84.2169],[1328.72,398.781,48.8167,210.798,-84.0866],[1318.19,499.393,48.3333,207.688,-83.9513],[1307.57,598.473,47.85,204.531,-83.8109],[1296.5,699.334,47.35,201.216,-83.6598],[1285.35,798.506,46.85,197.852,-83.5023],[1273.74,899.182,46.3333,194.324,-83.3326],[1262.04,998,45.8167,190.743,-83.1552],[1249.87,1098.03,45.2833,186.993,-82.9635],[1237.23,1199.04,44.7333,183.068,-82.7559],[1224.48,1297.85,44.1833,179.085,-82.5375],[1211.25,1397.31,43.6167,174.922,-82.3001],[1197.14,1500,43.0167,170.448,-82.0341],[1182.91,1599.94,42.4167,165.909,-81.7514],[1168.18,1699.75,41.8,161.176,-81.4417],[1152.93,1799.15,41.1667,156.246,-81.1015],[1137.16,1897.84,40.5167,151.114,-80.7263],[1120.46,1997.89,39.8333,145.645,-80.2998]]], + [84,3158.94,[[1315.52,-2003.92,58.9667,265.265,-86.6375],[1309.54,-1902.73,58.5833,263.543,-86.5895],[1303.5,-1802.2,58.2,261.795,-86.5403],[1297.43,-1702.36,57.8167,260.02,-86.4901],[1291.3,-1603.2,57.4333,258.218,-86.4389],[1284.86,-1500.48,57.0333,256.309,-86.3842],[1278.64,-1402.77,56.65,254.452,-86.3306],[1272.11,-1301.57,56.25,252.485,-86.2734],[1265.52,-1201.18,55.85,250.488,-86.2148],[1258.88,-1101.59,55.45,248.46,-86.1549],[1252.19,-1002.82,55.05,246.403,-86.0935],[1245.17,-900.832,54.6333,244.226,-86.0279],[1238.38,-803.784,54.2333,242.106,-85.9633],[1231.25,-703.608,53.8167,239.864,-85.8943],[1223.78,-600.429,53.3833,237.496,-85.8206],[1216.54,-502.2,52.9667,235.184,-85.7478],[1208.96,-401.077,52.5333,232.744,-85.67],[1201.32,-301.028,52.1,230.267,-85.5898],[1193.61,-202.067,51.6667,227.753,-85.5073],[1185.56,-100.47,51.2167,225.102,-85.419],[1177.44,-0.0839808,50.7667,222.41,-85.3278],[1169.25,99.0733,50.3167,219.679,-85.2337],[1161.01,196.983,49.8667,216.906,-85.1365],[1152.4,297.181,49.4,213.988,-85.0322],[1143.41,399.5,48.9167,210.919,-84.9202],[1134.66,496.862,48.45,207.912,-84.8082],[1125.22,599.597,47.95,204.641,-84.6834],[1116.02,697.328,47.4667,201.432,-84.558],[1106.43,796.771,46.9667,198.063,-84.423],[1096.45,897.73,46.45,194.529,-84.2774],[1086.07,999.999,45.9167,190.826,-84.1202],[1075.93,1097.16,45.4,187.185,-83.9607],[1065.06,1198.48,44.85,183.252,-83.7826],[1054.1,1297.61,44.3,179.26,-83.5951],[1042.73,1397.4,43.7333,175.087,-83.3915],[1030.93,1497.61,43.15,170.727,-83.1697],[1018.7,1597.97,42.55,166.176,-82.9275],[1006.04,1698.23,41.9333,161.43,-82.6622],[992.93,1798.09,41.3,156.485,-82.3706],[979.026,1899.76,40.6333,151.203,-82.0404],[965.016,1997.83,39.9667,145.845,-81.6834]]], + [85,3169.38,[[1099.73,-2001.62,59.0333,265.318,-87.1899],[1094.73,-1900.35,58.65,263.595,-87.1498],[1089.91,-1804.11,58.2833,261.922,-87.1105],[1084.83,-1704.16,57.9,260.147,-87.0686],[1079.49,-1600.6,57.5,258.266,-87.0239],[1074.33,-1502.07,57.1167,256.435,-86.9801],[1068.9,-1400.01,56.7167,254.497,-86.9334],[1063.67,-1302.94,56.3333,252.61,-86.8876],[1058.16,-1202.43,55.9333,250.613,-86.8387],[1052.61,-1102.73,55.5333,248.585,-86.7887],[1047.02,-1003.84,55.1333,246.526,-86.7374],[1041.15,-901.727,54.7167,244.349,-86.6826],[1035.24,-800.529,54.3,242.138,-86.6265],[1029.28,-700.263,53.8833,239.893,-86.5689],[1023.28,-600.943,53.4667,237.614,-86.5096],[1017.23,-502.585,53.05,235.301,-86.4488],[1010.89,-401.326,52.6167,232.86,-86.3838],[1004.5,-301.139,52.1833,230.38,-86.3169],[998.065,-202.039,51.75,227.864,-86.248],[991.329,-100.297,51.3,225.21,-86.1742],[984.795,-3.46495,50.8667,222.617,-86.101],[977.704,99.5428,50.4,219.781,-86.0195],[970.814,197.603,49.95,217.006,-85.9383],[963.614,297.958,49.4833,214.084,-85.8512],[956.36,396.933,49.0167,211.118,-85.761],[948.789,497.965,48.5333,208,-85.6641],[941.161,597.469,48.05,204.834,-85.5635],[933.209,698.773,47.55,201.51,-85.4552],[925.196,798.393,47.05,198.135,-85.3424],[916.852,899.537,46.5333,194.595,-85.2208],[908.445,998.826,46.0167,191.002,-85.0937],[899.7,1099.34,45.4833,187.236,-84.9563],[890.889,1197.82,44.95,183.415,-84.8121],[881.734,1297.22,44.4,179.416,-84.6558],[872.229,1397.29,43.8333,175.234,-84.4859],[862.37,1497.79,43.25,170.864,-84.3008],[852.152,1598.47,42.65,166.302,-84.0988],[841.568,1699.04,42.0333,161.543,-83.8774],[830.615,1799.23,41.4,156.583,-83.634],[819.288,1898.73,40.75,151.418,-83.3656],[807.289,1999.66,40.0667,145.908,-83.0604]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 984.795; +_maxRange = 5666.83; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg0.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg0.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg1.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg1.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg2.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg2.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg3.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg3.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg4.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg4.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg4.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg5.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg5.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg5.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg6.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg6.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_heBtab_LA_chg6.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg1.sqf new file mode 100644 index 0000000000..a8cb0ae546 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg1.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_illum_time_chg1 +// Ammo: ace_arty_82mm_illum_time +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,378.802,[[2464.98,-2000.15,31.55,206.737,-71.5106],[2432.07,-1902.93,31.05,203.688,-71.0715],[2396.7,-1801.12,30.5167,200.398,-70.5844],[2361.03,-1701.28,29.9833,197.069,-70.0768],[2323.95,-1600.42,29.4333,193.597,-69.5306],[2286.57,-1501.72,28.8833,190.087,-68.9598],[2247.74,-1402.32,28.3167,186.433,-68.3441],[2207.45,-1302.46,27.7333,182.633,-67.679],[2165.66,-1202.41,27.1333,178.688,-66.9595],[2122.36,-1102.42,26.5167,174.597,-66.1795],[2076.33,-1000.19,25.8667,170.25,-65.3093],[2029.92,-901.257,25.2167,165.871,-64.3857],[1980.72,-800.865,24.5333,161.239,-63.3518],[1929.88,-701.921,23.8333,156.473,-62.2195],[1874.95,-600.349,23.0833,151.351,-60.9159],[1818.31,-501.341,22.3167,146.111,-59.4763],[1757.44,-401.315,21.5,140.542,-57.8104],[1692.26,-301.396,20.6333,134.669,-55.8748],[1621.42,-201.075,19.7,128.419,-53.5724],[1543.52,-100.524,18.6833,121.746,-50.7716],[1457.11,-0.730745,17.5667,114.656,-47.2912],[1356.77,99.9741,16.2833,106.944,-42.6882],[1236.84,199.4,14.7667,98.6849,-36.2899],[1072.57,299.483,12.7167,89.6484,-25.7997],[744.116,378.8,8.7,82.824,-0.0966799]]], + [46,391.802,[[2438.79,-2001.78,31.7667,206.9,-71.866],[2405.39,-1901.07,31.25,203.742,-71.4207],[2371.72,-1802.17,30.7333,200.545,-70.9576],[2336.68,-1702.03,30.2,197.207,-70.4598],[2300.26,-1600.85,29.65,193.725,-69.924],[2263.54,-1501.83,29.1,190.204,-69.364],[2225.41,-1402.09,28.5333,186.537,-68.7599],[2185.83,-1301.89,27.95,182.723,-68.1074],[2144.79,-1201.48,27.35,178.763,-67.4012],[2102.25,-1101.11,26.7333,174.654,-66.6357],[2058.21,-1001.07,26.1,170.399,-65.8039],[2012.63,-901.659,25.45,165.998,-64.8984],[1964.31,-800.752,24.7667,161.342,-63.8845],[1914.39,-701.275,24.0667,156.548,-62.7737],[1861.64,-601.346,23.3333,151.507,-61.524],[1806.02,-501.635,22.5667,146.23,-60.1132],[1746.26,-400.855,21.75,140.616,-58.4796],[1682.26,-300.127,20.8833,134.688,-56.5803],[1613.95,-200.667,19.9667,128.483,-54.3617],[1538.73,-100.592,18.9667,121.834,-51.6606],[1455.19,-0.820197,17.8667,114.735,-48.3005],[1359.28,99.2399,16.6167,107.06,-43.909],[1244.21,199.305,15.1333,98.7217,-37.7799],[1090.99,299.497,13.1833,89.6073,-28.0014],[741.965,391.802,8.83333,81.3345,-0.00184407]]], + [47,404.779,[[2410.22,-2000.73,31.9667,206.981,-72.2132],[2378.49,-1903,31.4667,203.917,-71.7907],[2344.37,-1800.64,30.9333,200.608,-71.3219],[2309.97,-1700.24,30.4,197.26,-70.8334],[2275.3,-1601.84,29.8667,193.873,-70.3239],[2239.26,-1502.48,29.3167,190.341,-69.775],[2201.82,-1402.4,28.75,186.662,-69.1828],[2162.97,-1301.85,28.1667,182.835,-68.5431],[2122.68,-1201.06,27.5667,178.859,-67.8507],[2080.93,-1100.31,26.95,174.733,-67.0999],[2038.83,-1002.47,26.3333,170.572,-66.3062],[1992.94,-900.04,25.6667,166.037,-65.3957],[1946.67,-801.121,25,161.47,-64.4257],[1897.68,-701.094,24.3,156.648,-63.3372],[1845.91,-600.586,23.5667,151.576,-62.1119],[1791.32,-500.263,22.8,146.261,-60.7281],[1733.86,-400.838,22,140.718,-59.1591],[1672.28,-301.174,21.15,134.851,-57.335],[1605.25,-200.696,20.2333,128.58,-55.1624],[1532.69,-101.114,19.25,121.959,-52.5614],[1451.98,-1.38426,18.1667,114.857,-49.3221],[1359.17,99.2205,16.9333,107.127,-45.0798],[1248.86,199.607,15.4833,98.7364,-39.21],[1105.1,299.895,13.6167,89.554,-30.036],[818.771,399.912,9.96667,79.9295,-6.94838],[740.522,404.778,8.98333,79.8157,-0.0392906]]], + [48,417.72,[[2380.38,-2000.27,32.1667,207.081,-72.5665],[2349.24,-1902.3,31.6667,204.009,-72.1523],[2316.81,-1802.85,31.15,200.796,-71.7074],[2283.07,-1702.13,30.6167,197.439,-71.229],[2247.99,-1600.35,30.0667,193.936,-70.7141],[2212.62,-1500.72,29.5167,190.392,-70.1758],[2175.89,-1400.35,28.95,186.7,-69.5951],[2138.86,-1302.34,28.3833,182.969,-68.9859],[2099.33,-1201.17,27.7833,178.978,-68.3076],[2058.37,-1100.02,27.1667,174.836,-67.572],[2017.07,-1001.79,26.55,170.656,-66.7942],[1973.19,-901.444,25.9,166.213,-65.9247],[1927.8,-801.994,25.2333,161.624,-64.9752],[1879.74,-701.404,24.5333,156.775,-63.9094],[1828.97,-600.3,23.8,151.671,-62.7093],[1776.59,-501.491,23.05,146.436,-61.3841],[1720.25,-401.291,22.25,140.85,-59.8487],[1659.85,-300.795,21.4,134.931,-58.0625],[1595.32,-201.19,20.5,128.711,-55.9742],[1524.17,-100.482,19.5167,122.009,-53.4275],[1446.26,-0.974243,18.45,114.912,-50.3032],[1356.5,99.968,17.2333,107.141,-46.2033],[1252.12,199.299,15.8333,98.8156,-40.655],[1117.57,299.331,14.05,89.6138,-32.0864],[884.994,399.988,11.0167,79.583,-13.4407],[738.402,417.718,9.13333,78.2765,-0.097341]]], + [49,430.608,[[2349.25,-2000.44,32.3667,207.2,-72.9259],[2318.72,-1902.22,31.8667,204.121,-72.5201],[2286.92,-1802.51,31.35,200.899,-72.0843],[2253.83,-1701.51,30.8167,197.533,-71.6157],[2220.47,-1602.51,30.2833,194.127,-71.1269],[2185.8,-1502.53,29.7333,190.573,-70.6002],[2149.79,-1401.8,29.1667,186.87,-70.0319],[2112.42,-1300.56,28.5833,183.015,-69.4178],[2074.74,-1201.85,28,179.12,-68.7719],[2034.58,-1100.29,27.3833,174.962,-68.0518],[1994.09,-1001.64,26.7667,170.764,-67.2902],[1951.07,-900.852,26.1167,166.301,-66.4388],[1906.57,-800.945,25.45,161.688,-65.5088],[1860.58,-702.231,24.7667,156.928,-64.4902],[1810.81,-600.515,24.0333,151.794,-63.3161],[1759.47,-501.074,23.2833,146.523,-62.0189],[1704.24,-400.194,22.4833,140.895,-60.5153],[1646.2,-300.894,21.65,135.043,-58.8009],[1582.96,-200.379,20.75,128.761,-56.7567],[1514.42,-100.32,19.7833,122.096,-54.306],[1439.27,-1.05031,18.7333,115.009,-51.2973],[1353.74,98.895,17.55,107.307,-47.4006],[1252.72,199.453,16.1667,98.8642,-42.0425],[1125.9,299.443,14.45,89.6262,-33.9746],[924.726,399.722,11.7667,79.4494,-17.8936],[734.317,430.607,9.26667,76.7243,-0.0554541]]], + [50,443.429,[[2316.84,-2001.26,32.5667,207.34,-73.291],[2286.92,-1902.78,32.0667,204.253,-72.894],[2255.76,-1802.8,31.55,201.023,-72.4675],[2223.33,-1701.52,31.0167,197.648,-72.0088],[2190.65,-1602.23,30.4833,194.232,-71.5304],[2156.67,-1501.95,29.9333,190.668,-71.0148],[2121.38,-1400.91,29.3667,186.952,-70.4585],[2085.81,-1302.22,28.8,183.195,-69.8747],[2047.84,-1200.32,28.2,179.175,-69.2246],[2009.55,-1101.13,27.6,175.112,-68.5389],[1969.89,-1002.05,26.9833,170.897,-67.7941],[1927.74,-900.809,26.3333,166.414,-66.9611],[1884.14,-800.43,25.6667,161.778,-66.0511],[1839.08,-701.229,24.9833,156.993,-65.0542],[1791.43,-601.26,24.2667,151.945,-63.9316],[1741.15,-501.17,23.5167,146.641,-62.6633],[1688.17,-401.652,22.7333,141.089,-61.2243],[1631.33,-301.499,21.9,135.188,-59.5494],[1569.4,-200.053,21,128.846,-57.5509],[1503.42,-100.657,20.05,122.221,-55.1962],[1429.83,-0.123697,19,115.036,-52.2537],[1347.27,99.9203,17.8333,107.312,-48.493],[1251.95,198.993,16.5,98.9759,-43.444],[1131.46,299.57,14.8333,89.6526,-35.7924],[951.88,399.668,12.3833,79.371,-21.4663],[729.595,443.428,9.4,75.152,-0.0322992]]], + [51,456.168,[[2283.12,-2002.75,32.7667,207.5,-73.6619],[2252.84,-1900.74,32.25,204.302,-73.2605],[2222.32,-1800.54,31.7333,201.064,-72.843],[2191.56,-1702.17,31.2167,197.785,-72.4083],[2159.56,-1602.58,30.6833,194.36,-71.9404],[2126.29,-1502,30.1333,190.785,-71.4362],[2091.74,-1400.64,29.5667,187.058,-70.892],[2056.91,-1301.62,29,183.288,-70.3211],[2020.76,-1202.18,28.4167,179.365,-69.7032],[1983.28,-1102.56,27.8167,175.288,-69.0333],[1943.4,-1000.4,27.1833,170.941,-68.2852],[1903.18,-901.338,26.55,166.554,-67.4915],[1860.5,-800.474,25.8833,161.896,-66.602],[1816.39,-700.77,25.2,157.085,-65.6272],[1769.74,-600.268,24.4833,152.008,-64.5293],[1721.61,-501.802,23.75,146.789,-63.317],[1669.75,-401.583,22.9667,141.198,-61.911],[1614.11,-300.675,22.1333,135.249,-60.2735],[1554.61,-200.237,21.25,128.966,-58.3562],[1491.18,-101.52,20.3167,122.385,-56.0975],[1420.32,-1.23668,19.2833,115.219,-53.2724],[1340.69,99.0649,18.1333,107.472,-49.6569],[1248.62,199.053,16.8167,99.0495,-44.7909],[1134.31,299.793,15.2,89.6827,-37.5419],[970.739,399.995,12.9167,79.2979,-24.5088],[724.231,456.167,9.53333,73.5596,-0.0293044]]], + [52,468.81,[[2247.17,-2001.62,32.95,207.578,-74.0259],[2218.5,-1902.65,32.45,204.477,-73.6462],[2188.64,-1802.15,31.9333,201.231,-73.2384],[2157.56,-1700.34,31.4,197.838,-72.7998],[2126.24,-1600.51,30.8667,194.403,-72.3421],[2094.67,-1502.7,30.3333,190.925,-71.8641],[2060.86,-1401,29.7667,187.187,-71.3324],[2026.77,-1301.65,29.2,183.405,-70.7745],[1991.41,-1201.86,28.6167,179.469,-70.1707],[1954.74,-1101.89,28.0167,175.376,-69.5159],[1916.74,-1001.99,27.4,171.127,-68.8044],[1877.4,-902.464,26.7667,166.721,-68.0295],[1835.64,-801.099,26.1,162.041,-67.1609],[1792.49,-700.878,25.4167,157.206,-66.2089],[1747.92,-602.13,24.7167,152.22,-65.1622],[1699.76,-500.795,23.9667,146.848,-63.9515],[1650.12,-402.057,23.2,141.338,-62.6074],[1595.7,-300.376,22.3667,135.343,-61.0084],[1538.6,-200.959,21.5,129.123,-59.1721],[1476.57,-101.222,20.5667,122.472,-56.9674],[1408.38,-1.35898,19.55,115.331,-54.2538],[1331.66,99.0077,18.4167,107.574,-50.7768],[1242.78,199.69,17.1167,99.0791,-46.086],[1135.67,299.242,15.5667,89.8004,-39.3064],[985.23,399.807,13.4167,79.314,-27.3542],[718.219,468.809,9.66667,71.9475,-0.0479846]]], + [53,481.34,[[2209.96,-2001.19,33.1333,207.678,-74.3957],[2181.92,-1901.99,32.6333,204.569,-74.0248],[2152.72,-1801.25,32.1167,201.316,-73.6263],[2123.28,-1702.35,31.6,198.02,-73.2114],[2092.66,-1602.2,31.0667,194.576,-72.7647],[2060.83,-1501.03,30.5167,190.98,-72.2833],[2028.74,-1402.03,29.9667,187.341,-71.7793],[1995.42,-1302.34,29.4,183.547,-71.2347],[1960.84,-1202.19,28.8167,179.597,-70.6452],[1924.99,-1101.84,28.2167,175.49,-70.0059],[1887.84,-1001.56,27.6,171.224,-69.3111],[1849.37,-901.626,26.9667,166.799,-68.5543],[1809.57,-802.336,26.3167,162.215,-67.7277],[1767.39,-701.581,25.6333,157.357,-66.799],[1723.82,-602.282,24.9333,152.343,-65.7776],[1676.75,-500.351,24.1833,146.939,-64.5959],[1628.22,-400.998,23.4167,141.392,-63.2832],[1576.09,-300.631,22.6,135.472,-61.7536],[1520.28,-200.38,21.7333,129.197,-59.9616],[1460.74,-101.468,20.8167,122.599,-57.8488],[1394.11,-0.45851,19.8,115.371,-55.2008],[1320.24,99.788,18.6833,107.612,-51.8556],[1235.63,199.733,17.4167,99.1672,-47.3962],[1133.26,299.848,15.9,89.8142,-40.9248],[995.508,399.412,13.8833,79.3789,-30.0042],[711.557,481.338,9.8,70.3163,-0.0902811]]], + [54,493.743,[[2171.49,-2001.5,33.3167,207.799,-74.7714],[2144.09,-1902.05,32.8167,204.684,-74.4094],[2115.56,-1801.07,32.3,201.422,-74.0205],[2086.8,-1701.91,31.7833,198.119,-73.6155],[2056.88,-1601.5,31.25,194.665,-73.1795],[2025.78,-1500.06,30.7,191.059,-72.7095],[1994.42,-1400.78,30.15,187.408,-72.2174],[1961.86,-1300.79,29.5833,183.602,-71.6857],[1928.08,-1200.34,29,179.638,-71.11],[1894.02,-1102.44,28.4167,175.63,-70.5033],[1857.73,-1001.76,27.8,171.348,-69.8257],[1820.15,-901.413,27.1667,166.905,-69.0873],[1781.28,-801.692,26.5167,162.301,-68.2808],[1740.07,-700.48,25.8333,157.418,-67.3743],[1697.5,-600.709,25.1333,152.377,-66.3772],[1652.54,-500.494,24.4,147.062,-65.2496],[1605.14,-400.507,23.6333,141.479,-63.9694],[1555.27,-301.464,22.8333,135.636,-62.5087],[1500.77,-200.36,21.9667,129.309,-60.7623],[1442.62,-100.535,21.05,122.646,-58.7016],[1378.62,-0.103124,20.05,115.453,-56.161],[1308.66,98.5755,18.9667,107.814,-53.0009],[1227.15,199.152,17.7167,99.3154,-48.7201],[1129.44,299.749,16.2333,89.9057,-42.5598],[1000.61,399.806,14.3,79.3759,-32.3639],[703.096,493.743,9.91667,68.6719,-0.0216919]]], + [55,506.006,[[2131.76,-2002.56,33.5,207.943,-75.1527],[2105.02,-1902.87,33,204.821,-74.7998],[2077.16,-1801.62,32.4833,201.553,-74.4206],[2049.09,-1702.2,31.9667,198.241,-74.0257],[2019.88,-1601.52,31.4333,194.779,-73.6006],[1990.44,-1502.84,30.9,191.273,-73.1565],[1958.91,-1400.22,30.3333,187.501,-72.6624],[1928.06,-1302.85,29.7833,183.796,-72.1594],[1895.08,-1202.01,29.2,179.82,-71.5987],[1860.89,-1100.96,28.6,175.683,-70.9904],[1826.42,-1002.63,28,171.501,-70.3476],[1789.75,-901.852,27.3667,167.04,-69.6281],[1751.8,-801.687,26.7167,162.416,-68.8421],[1711.58,-700.002,26.0333,157.51,-67.9585],[1671.03,-602.083,25.35,152.564,-67.0102],[1627.15,-501.251,24.6167,147.219,-65.9124],[1580.9,-400.612,23.85,141.6,-64.6654],[1532.22,-300.883,23.05,135.716,-63.242],[1480.06,-200.925,22.2,129.459,-61.5736],[1423.33,-100.165,21.2833,122.733,-59.5666],[1361.92,-0.321478,20.3,115.579,-57.1336],[1293.66,99.646,19.2167,107.835,-54.0547],[1216.28,199.188,18,99.4132,-49.9953],[1123.13,299.958,16.55,89.9738,-44.1338],[1002.94,399.864,14.7,79.426,-34.6422],[768.643,499.846,11.15,67.513,-9.2825],[695.149,506.003,10.05,67.003,-0.113851]]], + [56,518.112,[[2089.91,-2001.05,33.6667,208.007,-75.5282],[2063.82,-1901.16,33.1667,204.877,-75.1841],[2037.53,-1802.94,32.6667,201.707,-74.8266],[2009.26,-1700.06,32.1333,198.28,-74.4293],[1981.66,-1602.28,31.6167,194.917,-74.028],[1952.04,-1500.25,31.0667,191.291,-73.5816],[1922.19,-1400.38,30.5167,187.62,-73.1142],[1892.1,-1302.71,29.9667,183.903,-72.6241],[1859.94,-1201.55,29.3833,179.915,-72.0778],[1826.59,-1100.15,28.7833,175.763,-71.4852],[1792.97,-1001.49,28.1833,171.565,-70.8587],[1757.2,-900.35,27.55,167.086,-70.1574],[1721.14,-802.345,26.9167,162.561,-69.4114],[1681.92,-700.172,26.2333,157.633,-68.5512],[1642.37,-601.76,25.55,152.662,-67.6278],[1599.59,-500.393,24.8167,147.287,-66.5584],[1555.47,-401.339,24.0667,141.756,-65.3708],[1508.01,-300.903,23.2667,135.832,-63.9856],[1457.15,-200.188,22.4167,129.526,-62.3612],[1402.85,-100.386,21.5167,122.861,-60.4431],[1344.01,-1.14222,20.55,115.752,-58.1176],[1278.5,98.6642,19.4833,108.023,-55.1725],[1203.08,199.886,18.2667,99.4556,-51.225],[1115.44,299.458,16.8667,90.118,-45.7225],[1002.59,399.682,15.0833,79.5162,-36.8395],[810.051,499.796,12.0833,67.3778,-16.212],[685.452,518.11,10.1667,65.3211,-0.0926655]]], + [57,530.048,[[2046.85,-2000.34,33.8333,208.093,-75.9095],[2021.42,-1900.22,33.3333,204.956,-75.5744],[1995.8,-1801.79,32.8333,201.778,-75.2262],[1969.11,-1701.87,32.3167,198.451,-74.8517],[1941.35,-1600.67,31.7833,194.971,-74.4484],[1913.36,-1501.47,31.25,191.446,-74.027],[1884.27,-1401.29,30.7,187.765,-73.5723],[1854.07,-1300.37,30.1333,183.924,-73.0807],[1823.62,-1201.81,29.5667,180.037,-72.564],[1791.12,-1100.06,28.9667,175.872,-71.9872],[1758.37,-1001.04,28.3667,171.659,-71.3775],[1724.43,-902.157,27.75,167.281,-70.7134],[1688.37,-801.141,27.1,162.618,-69.9685],[1651.09,-701.013,26.4333,157.788,-69.152],[1612.57,-602.092,25.75,152.793,-68.254],[1570.88,-500.174,25.0167,147.389,-67.2138],[1527.9,-400.55,24.2667,141.825,-66.0582],[1482.63,-301.551,23.4833,135.985,-64.7391],[1433.09,-200.057,22.6333,129.631,-63.1598],[1381.18,-101.221,21.75,123.032,-61.3303],[1323.87,-0.933059,20.7833,115.849,-59.0704],[1261.07,98.5389,19.7333,108.144,-56.2527],[1188.64,199.97,18.5333,99.5552,-52.4697],[1105.34,299.326,17.1667,90.2307,-47.2526],[999.615,399.348,15.45,79.6342,-38.9572],[831.138,499.867,12.75,67.3351,-21.0171],[675.149,530.047,10.2833,63.6212,-0.0966254]]], + [58,541.8,[[2002.59,-2000.43,34,208.202,-76.2963],[1977.83,-1900.1,33.5,205.059,-75.9705],[1952.88,-1801.44,33,201.874,-75.6318],[1926.9,-1701.29,32.4833,198.539,-75.2675],[1900.72,-1602.98,31.9667,195.16,-74.8877],[1872.62,-1500.39,31.4167,191.516,-74.4653],[1845.16,-1402.96,30.8833,187.937,-74.0365],[1815.76,-1301.7,30.3167,184.086,-73.5589],[1786.12,-1202.8,29.75,180.188,-73.0568],[1754.49,-1100.7,29.15,176.009,-72.4963],[1722.61,-1001.31,28.55,171.782,-71.9036],[1689.57,-902.047,27.9333,167.388,-71.2581],[1654.48,-800.627,27.2833,162.706,-70.5339],[1618.18,-700.08,26.6167,157.855,-69.7398],[1580.68,-600.726,25.9333,152.835,-68.8663],[1541.03,-500.617,25.2167,147.526,-67.8781],[1499.2,-400.405,24.4667,141.93,-66.7552],[1455.14,-300.788,23.6833,136.052,-65.4731],[1407.88,-200.559,22.85,129.777,-63.9687],[1357.36,-100.884,21.9667,123.122,-62.1918],[1302.56,-1.34268,21.0167,115.992,-60.0351],[1241.46,99.3029,19.9667,108.194,-57.2982],[1172.95,199.411,18.8,99.7138,-53.7278],[1092.92,299.615,17.45,90.3053,-48.7278],[993.096,399.817,15.7833,79.6694,-40.9087],[843.536,499.641,13.3167,67.38,-25.0574],[664.238,541.798,10.4,61.9034,-0.128096]]], + [59,553.355,[[1957.11,-2001.36,34.1667,208.335,-76.6887],[1933.03,-1900.79,33.6667,205.187,-76.3722],[1908.77,-1801.9,33.1667,201.995,-76.0432],[1883.5,-1701.5,32.65,198.653,-75.6893],[1858.04,-1602.95,32.1333,195.266,-75.3204],[1830.72,-1500.09,31.5833,191.613,-74.91],[1804.01,-1402.41,31.05,188.024,-74.4935],[1775.42,-1300.87,30.4833,184.162,-74.0294],[1746.59,-1201.69,29.9167,180.251,-73.5414],[1716.69,-1102.09,29.3333,176.176,-73.0122],[1685.68,-1002.32,28.7333,171.935,-72.437],[1652.69,-900.011,28.1,167.406,-71.7929],[1619.44,-800.825,27.4667,162.826,-71.1072],[1585.03,-702.325,26.8167,158.076,-70.3561],[1547.68,-600.04,26.1167,152.911,-69.4878],[1510.03,-501.747,25.4167,147.699,-68.5508],[1469.36,-400.93,24.6667,142.072,-67.4616],[1426.53,-300.673,23.8833,136.158,-66.2173],[1381.5,-201.718,23.0667,129.965,-64.7874],[1332.39,-101.18,22.1833,123.255,-63.0645],[1279.12,-0.703205,21.2333,116.057,-60.9715],[1220.68,99.4503,20.2,108.294,-58.3575],[1155.04,199.545,19.05,99.8121,-54.9437],[1079.2,299.217,17.7333,90.451,-50.2181],[985.138,399.458,16.1167,79.8053,-42.8772],[848.761,499.847,13.8,67.3972,-28.4835],[651.714,553.355,10.5,60.1723,-0.0341413]]], + [60,564.699,[[1910.43,-2003.15,34.3333,208.493,-77.0863],[1887.05,-1902.34,33.8333,205.339,-76.7793],[1863.48,-1803.21,33.3333,202.142,-76.4602],[1838.93,-1702.55,32.8167,198.792,-76.1169],[1813.4,-1600.58,32.2833,195.288,-75.7472],[1787.65,-1500.6,31.75,191.737,-75.3609],[1761.71,-1402.65,31.2167,188.139,-74.9568],[1733.94,-1300.82,30.65,184.266,-74.5065],[1705.94,-1201.34,30.0833,180.344,-74.033],[1676.89,-1101.44,29.5,176.257,-73.5194],[1646.77,-1001.36,28.9,172.001,-72.9611],[1615.57,-901.369,28.2833,167.576,-72.3528],[1583.27,-801.759,27.65,162.979,-71.6882],[1548.99,-700.328,26.9833,158.087,-70.9406],[1513.58,-600.059,26.3,153.022,-70.1179],[1477.01,-501.285,25.6,147.785,-69.2091],[1438.39,-402.148,24.8667,142.253,-68.1767],[1396.79,-301.232,24.0833,136.303,-66.9712],[1353.07,-201.584,23.2667,130.067,-65.5852],[1305.38,-100.289,22.3833,123.306,-63.914],[1254.56,-0.698947,21.45,116.169,-61.9201],[1198.73,98.954,20.4333,108.446,-59.429],[1135.94,199.025,19.3,99.9691,-56.1729],[1063.25,299.289,18,90.552,-51.6566],[974.79,399.177,16.4333,79.9374,-44.7742],[850.122,499.575,14.25,67.4985,-31.6814],[639.612,564.697,10.6167,58.4197,-0.124344]]], + [61,575.816,[[1861.8,-2002.43,34.4833,208.571,-77.4791],[1839.11,-1901.42,33.9833,205.411,-77.1814],[1816.24,-1802.09,33.4833,202.206,-76.872],[1792.42,-1701.23,32.9667,198.85,-76.5391],[1768.41,-1602.21,32.45,195.447,-76.1919],[1743.44,-1501.95,31.9167,191.888,-75.8177],[1717.48,-1400.68,31.3667,188.168,-75.4137],[1691.32,-1301.58,30.8167,184.4,-74.99],[1664.15,-1201.8,30.25,180.467,-74.5312],[1635.97,-1101.57,29.6667,176.367,-74.0336],[1606.74,-1001.16,29.0667,172.098,-73.4925],[1576.47,-900.832,28.45,167.657,-72.9029],[1545.13,-800.866,27.8167,163.043,-72.2587],[1512.72,-701.56,27.1667,158.255,-71.5526],[1478.36,-600.809,26.4833,153.168,-70.7561],[1442.88,-501.536,25.7833,147.906,-69.8761],[1405.42,-401.872,25.05,142.346,-68.8761],[1365.07,-300.388,24.2667,136.361,-67.7079],[1322.65,-200.142,23.45,130.084,-66.3642],[1277.27,-100.056,22.5833,123.4,-64.7751],[1228.86,-1.35884,21.6667,116.329,-62.8799],[1174.71,99.3605,20.65,108.524,-60.4692],[1114.72,199.227,19.5333,100.062,-57.3634],[1045.14,299.873,18.25,90.6029,-53.0472],[962.125,399.038,16.7333,80.0568,-46.6033],[846.855,499.753,14.65,67.5532,-34.5411],[625.954,575.815,10.7167,56.6541,-0.0857229]]], + [62,586.697,[[1812.03,-2002.6,34.6333,208.675,-77.8774],[1790.03,-1901.39,34.1333,205.508,-77.5892],[1767.87,-1801.85,33.6333,202.298,-77.2895],[1744.78,-1700.77,33.1167,198.934,-76.9672],[1721.52,-1601.53,32.6,195.524,-76.631],[1697.31,-1501.04,32.0667,191.956,-76.2686],[1672.92,-1402.57,31.5333,188.341,-75.8895],[1646.8,-1300.19,30.9667,184.448,-75.4669],[1620.47,-1200.16,30.4,180.504,-75.0225],[1593.94,-1102.51,29.8333,176.509,-74.5545],[1565.62,-1001.76,29.2333,172.227,-74.031],[1536.29,-901.071,28.6167,167.772,-73.4605],[1505.92,-800.735,27.9833,163.141,-72.8371],[1474.51,-701.046,27.3333,158.334,-72.1537],[1442.03,-602.31,26.6667,153.351,-71.4021],[1406.84,-500.194,25.95,147.939,-70.5304],[1370.54,-400.086,25.2167,142.35,-69.5616],[1332.28,-300.239,24.45,136.459,-68.4547],[1292.03,-201.375,23.65,130.272,-67.1822],[1248.06,-100.5,22.7833,123.539,-65.647],[1201.17,-0.96159,21.8667,116.408,-63.8145],[1149.58,99.1083,20.8667,108.654,-61.5221],[1092.35,198.763,19.7667,100.213,-58.5671],[1025.84,299.783,18.5,90.7214,-54.4536],[947.229,399.106,17.0167,80.1554,-48.3684],[841.017,499.405,15.0333,67.6899,-37.3029],[611.745,586.695,10.8167,54.8718,-0.0766729]]], + [63,597.326,[[1760.4,-2000.27,34.7667,208.699,-78.2718],[1739.82,-1902.25,34.2833,205.632,-78.0023],[1718.37,-1802.49,33.7833,202.415,-77.7126],[1696.03,-1701.19,33.2667,199.045,-77.401],[1673.51,-1601.71,32.75,195.628,-77.076],[1650.08,-1500.99,32.2167,192.052,-76.7256],[1626.48,-1402.28,31.6833,188.428,-76.359],[1601.94,-1302.63,31.1333,184.641,-75.9627],[1576.47,-1202.26,30.5667,180.688,-75.5336],[1550.04,-1101.44,29.9833,176.565,-75.068],[1522.63,-1000.4,29.3833,172.269,-74.5617],[1495.01,-902.11,28.7833,167.92,-74.0252],[1465.63,-801.389,28.15,163.274,-73.4229],[1435.23,-701.3,27.5,158.449,-72.7626],[1403.81,-602.151,26.8333,153.446,-72.0363],[1370.55,-501.924,26.1333,148.137,-71.2141],[1335.43,-401.252,25.4,142.521,-70.2793],[1298.41,-300.81,24.6333,136.599,-69.2107],[1259.47,-201.318,23.8333,130.374,-67.9819],[1217.76,-101.649,22.9833,123.725,-66.5285],[1172.4,-1.24325,22.0667,116.537,-64.7605],[1122.49,99.7811,21.0667,108.708,-62.5465],[1067.97,199.052,19.9833,100.297,-59.7353],[1005.34,298.991,18.75,90.9096,-55.8734],[930.179,399.435,17.2833,80.2256,-50.0733],[831.818,499.354,15.3833,67.7935,-39.8597],[596.984,597.324,10.9167,53.0732,-0.100465]]], + [64,607.69,[[1708.37,-2002.28,34.9167,208.854,-78.6805],[1687.79,-1900.69,34.4167,205.676,-78.4113],[1667.06,-1800.75,33.9167,202.452,-78.1314],[1646.16,-1702.51,33.4167,199.184,-77.8402],[1624.4,-1602.8,32.9,195.761,-77.5266],[1601.77,-1501.83,32.3667,192.178,-77.1885],[1578.95,-1402.86,31.8333,188.546,-76.8347],[1555.25,-1302.95,31.2833,184.75,-76.4522],[1530.63,-1202.31,30.7167,180.786,-76.038],[1505.08,-1101.2,30.1333,176.652,-75.5885],[1479.34,-1002.64,29.55,172.464,-75.1136],[1451.91,-901.276,28.9333,167.981,-74.5816],[1423.52,-800.237,28.3,163.319,-73.9999],[1394.9,-702.352,27.6667,158.601,-73.3791],[1363.77,-600.33,26.9833,153.452,-72.6604],[1332.4,-502.092,26.3,148.247,-71.8855],[1298.47,-400.937,25.5667,142.605,-70.9834],[1263.48,-302.129,24.8167,136.781,-69.9754],[1225.86,-201.988,24.0167,130.52,-68.7912],[1185.56,-101.623,23.1667,123.827,-67.3899],[1141.74,-0.460239,22.25,116.584,-65.684],[1094.34,99.7735,21.2667,108.815,-63.5839],[1042.48,198.655,20.2,100.439,-60.9169],[982.819,298.742,18.9833,91.0426,-57.2485],[911.89,399.02,17.55,80.3809,-51.7948],[819.432,499.803,15.7,67.8334,-42.2244],[644.737,599.962,12.25,52.4526,-13.4604],[581.672,607.687,11.0167,51.2588,-0.161225]]], + [65,617.778,[[1654.55,-2001.82,35.05,208.93,-79.0854],[1634.69,-1900.05,34.55,205.746,-78.8259],[1615.35,-1803.24,34.0667,202.625,-78.5651],[1594.52,-1701.51,33.55,199.242,-78.2751],[1573.52,-1601.6,33.0333,195.811,-77.9727],[1551.68,-1500.43,32.5,192.22,-77.6465],[1529.66,-1401.26,31.9667,188.579,-77.3052],[1506.78,-1301.14,31.4167,184.774,-76.9361],[1483.02,-1200.29,30.85,180.799,-76.5365],[1459.08,-1101.81,30.2833,176.772,-76.1155],[1433.53,-1000.16,29.6833,172.452,-75.6445],[1407.78,-901.263,29.0833,168.076,-75.1452],[1381.1,-802.519,28.4667,163.522,-74.5998],[1352.77,-701.671,27.8167,158.664,-73.9861],[1323.48,-601.735,27.15,153.622,-73.3107],[1292.47,-500.675,26.45,148.268,-72.5458],[1260.48,-401.381,25.7333,142.729,-71.6962],[1226.73,-302.055,24.9833,136.876,-70.7254],[1190.43,-201.359,24.1833,130.58,-69.5843],[1151.56,-100.398,23.3333,123.844,-68.2334],[1110.06,-0.372018,22.4333,116.68,-66.6193],[1065.12,99.0677,21.4667,108.976,-64.6328],[1015.11,199.038,20.4,100.511,-62.0664],[958.358,299.081,19.2,91.1158,-58.5826],[890.759,399.995,17.7833,80.3774,-53.3897],[805.646,499.347,16.0167,68.0004,-44.6071],[658.568,599.844,13,52.4906,-20.7864],[564.988,617.777,11.1,49.4316,-0.0735659]]], + [66,627.577,[[1599.66,-2002.33,35.1833,209.033,-79.4954],[1580.53,-1900.36,34.6833,205.844,-79.2456],[1561.26,-1800.06,34.1833,202.609,-78.9859],[1541.83,-1701.44,33.6833,199.328,-78.7155],[1521.6,-1601.33,33.1667,195.891,-78.4244],[1501.22,-1503.08,32.65,192.405,-78.1205],[1479.35,-1400.57,32.1,188.643,-77.7819],[1457.31,-1300.22,31.55,184.828,-77.4266],[1435.1,-1202.08,31,180.962,-77.0534],[1411.36,-1100.43,30.4167,176.806,-76.6364],[1387.43,-1001.33,29.8333,172.594,-76.1958],[1362.63,-902.104,29.2333,168.206,-75.7157],[1336.24,-800.384,28.6,163.515,-75.1765],[1309.64,-701.811,27.9667,158.764,-74.6008],[1281.43,-601.503,27.3,153.704,-73.9511],[1251.57,-500.047,26.6,148.329,-73.215],[1220.75,-400.344,25.8833,142.765,-72.3972],[1188.24,-300.587,25.1333,136.883,-71.4624],[1154.02,-201.478,24.35,130.685,-70.3873],[1117.32,-101.83,23.5167,124.041,-69.115],[1077.36,-1.01043,22.6167,116.827,-67.5653],[1034.08,99.2895,21.65,109.059,-65.6563],[986.681,198.72,20.6,100.642,-63.229],[932.807,298.718,19.4167,91.2565,-59.9313],[869.268,399.167,18.0333,80.5784,-55.0708],[788.901,499.608,16.3,68.0705,-46.8109],[659.954,599.964,13.55,52.5324,-26.1116],[547.817,627.577,11.1833,47.589,-0.0178102]]], + [67,637.077,[[1543.1,-2000.38,35.3,209.057,-79.9024],[1525.32,-1901.65,34.8167,205.969,-79.6704],[1506.78,-1801.14,34.3167,202.729,-79.4209],[1488.1,-1702.31,33.8167,199.443,-79.1613],[1468.65,-1602,33.3,196,-78.8817],[1448.42,-1500.39,32.7667,192.394,-78.5801],[1428.03,-1400.79,32.2333,188.738,-78.2645],[1406.83,-1300.21,31.6833,184.915,-77.9232],[1385.47,-1201.83,31.1333,181.04,-77.5647],[1363.3,-1102.8,30.5667,176.993,-77.1758],[1339.64,-1000.57,29.9667,172.65,-76.7406],[1315.79,-901.079,29.3667,168.249,-76.2793],[1291.09,-801.722,28.75,163.668,-75.7751],[1264.84,-700.222,28.1,158.777,-75.2076],[1238.39,-602.084,27.45,153.825,-74.5991],[1209.68,-500.215,26.75,148.43,-73.8925],[1180.06,-400.085,26.0333,142.843,-73.1072],[1149.5,-302.052,25.3,137.066,-72.2302],[1115.9,-200.293,24.5,130.703,-71.1762],[1080.62,-100.135,23.6667,124.02,-69.953],[1042.92,-0.57301,22.7833,116.891,-68.4914],[1002.04,98.7995,21.8333,109.197,-66.6915],[956.479,199.203,20.7833,100.699,-64.3629],[905.431,298.973,19.6167,91.3336,-61.2427],[845.109,399.819,18.25,80.6089,-56.6344],[770.12,499.893,16.5667,68.1379,-48.9414],[655.307,599.899,14.0167,52.6283,-30.6501],[530.924,637.075,11.2833,45.729,-0.20255]]], + [68,646.266,[[1486.12,-2002.86,35.4333,209.214,-80.3222],[1468.47,-1900.54,34.9333,206.015,-80.092],[1451.27,-1803.2,34.45,202.879,-79.8608],[1432.75,-1700.89,33.9333,199.478,-79.6036],[1414.08,-1600.41,33.4167,196.027,-79.3353],[1395.27,-1501.78,32.9,192.528,-79.0551],[1375.7,-1401.94,32.3667,188.865,-78.7527],[1355.36,-1301.12,31.8167,185.034,-78.4257],[1334.87,-1202.49,31.2667,181.151,-78.082],[1312.96,-1100.32,30.6833,176.975,-77.698],[1290.88,-1000.7,30.1,172.741,-77.2922],[1268,-900.929,29.5,168.328,-76.8499],[1244.29,-801.283,28.8833,163.733,-76.3665],[1219.76,-702.044,28.25,158.953,-75.8367],[1193.73,-601.028,27.5833,153.858,-75.2386],[1166.84,-501.21,26.9,148.572,-74.5776],[1138.41,-400.633,26.1833,142.963,-73.8255],[1109.09,-302.14,25.45,137.161,-72.9853],[1077.53,-201.949,24.6667,130.901,-71.9975],[1043.68,-101.138,23.8333,124.181,-70.8273],[1007.51,-0.87732,22.95,117.007,-69.4283],[968.295,99.2536,22,109.255,-67.7043],[925.287,198.974,20.9667,100.816,-65.5098],[876.322,299.869,19.8,91.3438,-62.5209],[819.877,399.761,18.4667,80.718,-58.2157],[750.108,499.369,16.8333,68.3152,-51.0893],[646.54,599.523,14.4333,52.7907,-34.7386],[512.026,646.265,11.35,43.8591,-0.0186188]]], + [69,655.13,[[1427.54,-2002.92,35.55,209.294,-80.7389],[1410.64,-1900.43,35.05,206.09,-80.5187],[1394.17,-1802.93,34.5667,202.948,-80.2974],[1376.43,-1700.45,34.05,199.541,-80.0512],[1359.13,-1603.01,33.55,196.197,-79.8029],[1340.54,-1500.98,33.0167,192.579,-79.5263],[1321.8,-1400.96,32.4833,188.908,-79.2368],[1302.91,-1302.97,31.95,185.187,-78.9334],[1282.69,-1201.12,31.3833,181.177,-78.5948],[1262.31,-1101.63,30.8167,177.111,-78.2379],[1241.17,-1001.73,30.2333,172.868,-77.8498],[1219.26,-901.67,29.6333,168.444,-77.4269],[1196.56,-801.72,29.0167,163.837,-76.9648],[1173.07,-702.167,28.3833,159.043,-76.4581],[1148.14,-600.816,27.7167,153.931,-75.886],[1122.39,-500.651,27.0333,148.626,-75.2535],[1095.81,-402.008,26.3333,143.127,-74.5513],[1067.1,-300.838,25.5833,137.168,-73.7296],[1036.88,-200.24,24.8,130.877,-72.7836],[1005.12,-100.959,23.9833,124.257,-71.6861],[970.495,-0.103905,23.1,117.039,-70.348],[933.612,98.9732,22.1667,109.368,-68.7287],[892.444,199.556,21.1333,100.857,-66.6312],[846.917,298.697,20,91.5563,-63.8599],[793.576,398.969,18.6833,80.9078,-59.8108],[727.494,499.834,17.0667,68.3552,-53.0828],[633.237,599.828,14.7833,52.8373,-38.2596],[493.412,655.129,11.4333,41.9728,-0.0861822]]], + [70,663.66,[[1367.44,-2000.56,35.65,209.295,-81.1535],[1351.83,-1901.34,35.1667,206.194,-80.9502],[1335.55,-1800.33,34.6667,202.938,-80.7315],[1319.15,-1701,34.1667,199.636,-80.504],[1302.07,-1600.16,33.65,196.174,-80.2589],[1284.86,-1501.16,33.1333,192.662,-80.003],[1266.95,-1400.94,32.6,188.984,-79.7266],[1248.91,-1302.76,32.0667,185.255,-79.437],[1229.59,-1200.69,31.5,181.237,-79.1137],[1210.12,-1100.99,30.9333,177.162,-78.7729],[1189.92,-1000.87,30.35,172.909,-78.4024],[1168.99,-900.577,29.75,168.474,-77.9985],[1147.3,-800.388,29.1333,163.853,-77.5571],[1124.86,-700.586,28.5,159.045,-77.0731],[1101.65,-601.47,27.85,154.045,-76.5406],[1077.05,-500.941,27.1667,148.723,-75.9373],[1051.66,-401.921,26.4667,143.204,-75.2673],[1024.24,-300.345,25.7167,137.221,-74.4832],[995.985,-201.414,24.95,131.037,-73.6002],[965.653,-101.565,24.1333,124.383,-72.5544],[932.581,-0.0898911,23.25,117.124,-71.2787],[897.355,99.6481,22.3167,109.401,-69.7337],[858.672,199.411,21.3,100.96,-67.7654],[815.196,299.541,20.1667,91.5647,-65.122],[764.904,399.789,18.8667,80.9104,-61.3052],[703.767,499.541,17.3,68.4963,-55.0956],[617.749,599.551,15.1167,52.9902,-41.6615],[474.322,663.658,11.5167,40.0729,-0.207668]]], + [71,671.845,[[1306.95,-2002.68,35.7667,209.432,-81.5796],[1292.07,-1903.29,35.2833,206.327,-81.3861],[1276.56,-1802.09,34.7833,203.068,-81.178],[1260.93,-1702.57,34.2833,199.761,-80.9615],[1244.65,-1601.53,33.7667,196.294,-80.7282],[1228.25,-1502.34,33.25,192.776,-80.4847],[1211.19,-1401.91,32.7167,189.093,-80.2217],[1193.46,-1300.47,32.1667,185.24,-79.9372],[1175.59,-1201.22,31.6167,181.332,-79.6383],[1157.04,-1101.3,31.05,177.249,-79.3139],[1137.8,-1000.94,30.4667,172.986,-78.9612],[1117.85,-900.398,29.8667,168.54,-78.5767],[1097.75,-802.63,29.2667,164.034,-78.1681],[1076.37,-702.483,28.6333,159.214,-77.708],[1053.68,-600.5,27.9667,154.072,-77.1883],[1030.82,-502.097,27.3,148.862,-76.6282],[1006.05,-400.365,26.5833,143.192,-75.9752],[980.505,-300.679,25.85,137.319,-75.2451],[953.589,-201.308,25.0833,131.109,-74.405],[924.691,-100.985,24.2667,124.423,-73.4095],[893.78,-0.8553,23.4,117.262,-72.2189],[860.224,99.5708,22.4667,109.491,-70.7502],[823.983,198.517,21.4667,101.125,-68.9107],[782.573,299.67,20.3333,91.64,-66.3991],[735.289,399.902,19.05,80.9895,-62.8173],[678.307,499.423,17.5167,68.6099,-57.0465],[599.541,599.406,15.4167,53.1196,-44.8144],[454.125,671.843,11.5833,38.1613,-0.146211]]], + [72,679.677,[[1245.01,-2002.41,35.8667,209.491,-82.0035],[1230.88,-1902.88,35.3833,206.382,-81.8197],[1216.14,-1801.54,34.8833,203.118,-81.6221],[1201.29,-1701.88,34.3833,199.806,-81.4164],[1185.82,-1600.69,33.8667,196.333,-81.1949],[1170.24,-1501.34,33.35,192.81,-80.9635],[1154.02,-1400.76,32.8167,189.12,-80.7136],[1137.69,-1302.2,32.2833,185.377,-80.4518],[1120.71,-1202.73,31.7333,181.462,-80.1682],[1103.09,-1102.56,31.1667,177.372,-79.8605],[1084.8,-1001.95,30.5833,173.101,-79.5258],[1065.85,-901.148,29.9833,168.645,-79.161],[1046.22,-800.436,29.3667,164.002,-78.7621],[1025.9,-700.092,28.7333,159.168,-78.3247],[1004.88,-600.413,28.0833,154.14,-77.8433],[983.161,-501.709,27.4167,148.915,-77.3115],[960.177,-401.978,26.7167,143.358,-76.7065],[935.911,-301.855,25.9833,137.465,-76.0146],[910.342,-202.022,25.2167,131.23,-75.2181],[882.892,-101.203,24.4,124.515,-74.2741],[853.528,-0.542128,23.5333,117.316,-73.1444],[822.223,98.7256,22.6167,109.638,-71.7767],[787.8,198.446,21.6167,101.212,-70.0334],[749.049,299.068,20.5,91.7839,-67.6889],[704.728,399.29,19.2333,81.1474,-64.3436],[651.206,499.528,17.7167,68.6896,-58.9412],[578.799,599.585,15.6833,53.1899,-47.7381],[433.524,679.675,11.65,36.2368,-0.131548]]], + [73,687.143,[[1182.2,-2003.2,35.9667,209.579,-82.4317],[1168.34,-1900.11,35.4667,206.358,-82.2516],[1154.84,-1802.03,34.9833,203.198,-82.0708],[1140.78,-1702.22,34.4833,199.882,-81.8761],[1126.13,-1600.86,33.9667,196.404,-81.6664],[1111.37,-1501.36,33.45,192.876,-81.4474],[1096.01,-1400.61,32.9167,189.18,-81.2109],[1080.54,-1301.88,32.3833,185.431,-80.963],[1064.46,-1202.23,31.8333,181.509,-80.6946],[1047.76,-1101.88,31.2667,177.41,-80.4032],[1030.44,-1001.07,30.6833,173.13,-80.0864],[1012.49,-900.078,30.0833,168.664,-79.7409],[994.403,-801.849,29.4833,164.137,-79.3737],[975.16,-701.21,28.85,159.291,-78.9601],[955.258,-601.225,28.2,154.25,-78.5049],[934.688,-502.205,27.5333,149.011,-78.002],[912.922,-402.138,26.8333,143.437,-77.4297],[889.941,-301.66,26.1,137.523,-76.7751],[865.727,-201.453,25.3333,131.265,-76.0214],[839.731,-100.232,24.5167,124.52,-75.1276],[812.459,-1.02251,23.6667,117.425,-74.0795],[782.817,98.8391,22.75,109.704,-72.7864],[750.222,199.213,21.75,101.221,-71.1368],[714.079,299.142,20.65,91.8561,-68.9521],[672.671,399.165,19.4,81.2451,-65.8331],[622.562,499.893,17.9,68.7293,-60.7851],[556.278,599.559,15.9333,53.2935,-50.5662],[412.524,687.141,11.7167,34.2998,-0.171932]]], + [74,694.235,[[1118.07,-2001.61,36.05,209.591,-82.8584],[1105.43,-1901.83,35.5667,206.473,-82.6942],[1092.25,-1800.23,35.0667,203.2,-82.5177],[1078.98,-1700.31,34.5667,199.879,-82.334],[1065.59,-1602.09,34.0667,196.509,-82.1425],[1051.66,-1502.41,33.55,192.975,-81.9361],[1037.17,-1401.48,33.0167,189.274,-81.7131],[1022.57,-1302.57,32.4833,185.52,-81.4794],[1007.39,-1202.73,31.9333,181.591,-81.2263],[991.639,-1102.18,31.3667,177.485,-80.9516],[975.295,-1001.17,30.7833,173.197,-80.6528],[958.825,-902.739,30.2,168.848,-80.3363],[941.279,-801.521,29.5833,164.185,-79.9806],[923.119,-700.653,28.95,159.328,-79.5905],[904.336,-600.432,28.3,154.274,-79.1611],[884.923,-501.167,27.6333,149.019,-78.6866],[864.381,-400.841,26.9333,143.428,-78.1465],[842.692,-300.091,26.2,137.494,-77.5285],[820.339,-201.727,25.45,131.349,-76.8329],[795.808,-100.081,24.6333,124.577,-75.9905],[770.075,-0.424733,23.7833,117.45,-75.0022],[742.104,99.9226,22.8667,109.687,-73.7821],[711.862,199.223,21.8833,101.292,-72.2524],[677.762,299.911,20.7833,91.8548,-70.1926],[639.217,399.553,19.55,81.2796,-67.2906],[592.999,499.531,18.0833,68.8634,-62.6466],[532.075,599.391,16.1667,53.4188,-53.3023],[391.13,694.232,11.7833,32.3509,-0.2781]]], + [75,700.947,[[1053.16,-2001.1,36.1333,209.632,-83.2895],[1041.27,-1901.21,35.65,206.511,-83.1352],[1029.3,-1802.86,35.1667,203.344,-82.975],[1016.82,-1702.76,34.6667,200.019,-82.8025],[1003.82,-1601.11,34.15,196.532,-82.6167],[990.723,-1501.31,33.6333,192.994,-82.4226],[977.099,-1400.25,33.1,189.287,-82.213],[963.371,-1301.21,32.5667,185.525,-81.9933],[949.105,-1201.23,32.0167,181.59,-81.7554],[934.293,-1100.55,31.45,177.476,-81.4971],[919.368,-1002.25,30.8833,173.303,-81.2244],[903.444,-900.812,30.2833,168.82,-80.9186],[887.397,-802.14,29.6833,164.274,-80.5934],[870.328,-701.027,29.05,159.407,-80.2271],[852.673,-600.553,28.4,154.34,-79.8238],[834.426,-501.026,27.7333,149.073,-79.3782],[815.118,-400.423,27.0333,143.466,-78.8708],[795.198,-301.626,26.3167,137.649,-78.304],[773.722,-200.714,25.55,131.347,-77.6365],[751.137,-100.76,24.75,124.688,-76.8616],[726.953,-0.6322,23.9,117.53,-75.9342],[701.146,98.4607,23,109.871,-74.8112],[672.728,198.463,22.0167,101.428,-73.3782],[640.684,299.944,20.9167,91.9218,-71.4466],[604.955,399.219,19.7,81.3918,-68.7625],[562.025,499.465,18.25,68.9526,-64.461],[505.786,599.878,16.3667,53.4228,-55.8528],[382.002,699.954,12.2667,30.6679,-8.11583],[368.839,700.946,11.8333,30.3912,-0.154798]]], + [76,707.266,[[987.459,-2001.7,36.2167,209.703,-83.7245],[976.339,-1901.68,35.7333,206.579,-83.5803],[965.134,-1803.21,35.25,203.409,-83.4304],[953.455,-1702.99,34.75,200.08,-83.2691],[941.293,-1601.21,34.2333,196.589,-83.0954],[929.037,-1501.27,33.7167,193.046,-82.9139],[916.288,-1400.07,33.1833,189.334,-82.7179],[903.442,-1300.89,32.65,185.567,-82.5124],[890.092,-1200.76,32.1,181.626,-82.2898],[876.641,-1102.85,31.55,177.627,-82.0555],[862.266,-1001.46,30.9667,173.324,-81.7931],[847.78,-902.647,30.3833,168.959,-81.5151],[832.348,-801.023,29.7667,164.277,-81.2027],[816.797,-702.358,29.15,159.528,-80.8692],[800.28,-601.614,28.5,154.452,-80.4925],[783.208,-501.808,27.8333,149.172,-80.0761],[765.143,-400.908,27.1333,143.551,-79.6021],[746.505,-301.805,26.4167,137.718,-79.0723],[726.413,-200.562,25.65,131.395,-78.4483],[705.282,-100.26,24.85,124.712,-77.7237],[683.101,-1.66944,24.0167,117.667,-76.8743],[658.51,99.731,23.1,109.83,-75.805],[632.374,198.541,22.1333,101.484,-74.4874],[602.854,299.217,21.05,92.0593,-72.7116],[569.433,399.416,19.8333,81.4383,-70.2062],[529.741,499.72,18.4,68.9925,-66.2342],[478.542,599.612,16.5667,53.5555,-58.4266],[380.762,699.863,13.1,30.763,-22.8731],[346.23,707.266,11.8833,28.4205,-0.0847966]]], + [77,713.186,[[921.005,-2003.41,36.3,209.805,-84.1633],[910.655,-1903.27,35.8167,206.679,-84.0291],[899.864,-1801.29,35.3167,203.395,-83.8848],[888.991,-1700.98,34.8167,200.062,-83.7346],[878.034,-1602.37,34.3167,196.68,-83.5782],[866.626,-1502.29,33.8,193.133,-83.4094],[854.759,-1400.93,33.2667,189.417,-83.2271],[842.801,-1301.6,32.7333,185.645,-83.036],[830.375,-1201.31,32.1833,181.699,-82.829],[817.474,-1100.3,31.6167,177.572,-82.6043],[804.474,-1001.68,31.05,173.384,-82.367],[790.99,-902.69,30.4667,169.012,-82.1084],[776.625,-800.877,29.85,164.322,-81.8178],[762.15,-702.024,29.2333,159.563,-81.5075],[746.775,-601.079,28.5833,154.476,-81.157],[730.884,-501.066,27.9167,149.184,-80.7695],[714.471,-402.308,27.2333,143.684,-80.3392],[696.72,-300.617,26.5,137.699,-79.835],[678.425,-201.283,25.75,131.495,-79.2673],[658.759,-100.61,24.95,124.791,-78.5938],[638.115,-1.63028,24.1167,117.719,-77.8041],[615.646,98.4178,23.2167,109.992,-76.829],[590.905,199.473,22.2333,101.459,-75.5832],[563.854,299.193,21.1667,92.1221,-73.9568],[533.182,398.876,19.9667,81.5634,-71.6626],[496.679,499.256,18.55,69.1248,-68.0229],[449.913,599.355,16.75,53.6808,-60.9253],[366.42,699.925,13.5667,30.8392,-31.3106],[323.309,713.186,11.9333,26.4391,-0.0805061]]], + [78,718.701,[[853.489,-2002.77,36.3667,209.831,-84.601],[843.911,-1902.54,35.8833,206.701,-84.4769],[833.926,-1800.46,35.3833,203.414,-84.3434],[823.864,-1700.07,34.8833,200.078,-84.2045],[813.725,-1601.36,34.3833,196.691,-84.0597],[803.169,-1501.18,33.8667,193.139,-83.9035],[792.532,-1402.86,33.35,189.535,-83.7402],[781.122,-1300.29,32.8,185.641,-83.558],[769.973,-1202.9,32.2667,181.809,-83.3724],[758.038,-1101.71,31.7,177.677,-83.1647],[745.655,-1000.04,31.1167,173.361,-82.9388],[733.178,-900.93,30.5333,168.98,-82.6995],[720.246,-801.712,29.9333,164.408,-82.4379],[706.491,-700.019,29.3,159.512,-82.1431],[692.63,-601.492,28.6667,154.545,-81.8272],[677.928,-501.254,28,149.242,-81.469],[662.743,-402.263,27.3167,143.73,-81.0712],[646.321,-300.32,26.5833,137.73,-80.605],[629.395,-200.726,25.8333,131.509,-80.0799],[611.581,-101.821,25.05,124.925,-79.4706],[592.101,-0.500601,24.2,117.687,-78.7261],[571.314,99.8664,23.3,109.928,-77.8232],[548.813,199.626,22.3333,101.499,-76.6899],[523.791,299.89,21.2667,92.1086,-75.1859],[495.813,398.889,20.0833,81.6206,-73.0945],[462.449,499.143,18.6833,69.204,-69.7742],[419.599,599.953,16.9,53.6484,-63.2771],[347.664,699.788,13.9333,30.98,-38.1833],[300.082,718.7,11.9833,24.4478,-0.158026]]], + [79,723.8,[[785.308,-2003.26,36.4333,209.888,-85.0423],[776.509,-1902.93,35.95,206.756,-84.9283],[767.335,-1800.76,35.45,203.466,-84.8058],[758.091,-1700.25,34.95,200.126,-84.6782],[748.776,-1601.45,34.45,196.736,-84.5453],[739.078,-1501.15,33.9333,193.181,-84.4018],[729.306,-1402.73,33.4167,189.573,-84.2519],[718.823,-1300.03,32.8667,185.674,-84.0845],[708.581,-1202.53,32.3333,181.837,-83.914],[697.615,-1101.22,31.7667,177.7,-83.7233],[686.565,-1002.29,31.2,173.501,-83.5219],[674.775,-900.179,30.6,168.989,-83.2959],[662.895,-800.825,30,164.41,-83.0556],[650.591,-701.628,29.3833,159.635,-82.7922],[637.522,-600.318,28.7333,154.529,-82.4945],[624.354,-502.392,28.0833,149.348,-82.1738],[610.064,-400.777,27.3833,143.689,-81.7997],[595.32,-300.935,26.6667,137.812,-81.3813],[579.772,-201.06,25.9167,131.576,-80.8995],[563.409,-101.858,25.1333,124.973,-80.3403],[545.515,-0.213524,24.2833,117.712,-79.6567],[526.775,98.6999,23.4,110.069,-78.844],[506.109,198.979,22.4333,101.605,-77.8056],[483.127,299.822,21.3667,92.166,-76.4265],[457.43,399.468,20.1833,81.6081,-74.5066],[427.152,499.4,18.8,69.2272,-71.4942],[388.538,599.853,17.05,53.7336,-65.653],[325.466,699.987,14.2167,31.0119,-43.8821],[276.555,723.798,12.0333,22.4472,-0.340536]]], + [80,728.482,[[716.219,-2001.41,36.4833,209.869,-85.4832],[708.201,-1901.02,36,206.733,-85.3793],[700.122,-1802.17,35.5167,203.551,-85.2714],[691.701,-1701.55,35.0167,200.209,-85.1553],[683.215,-1602.63,34.5167,196.816,-85.0343],[674.38,-1502.22,34,193.258,-84.9037],[665.19,-1400.52,33.4667,189.53,-84.7627],[655.929,-1300.85,32.9333,185.745,-84.6149],[646.306,-1200.2,32.3833,181.783,-84.4548],[636.609,-1101.76,31.8333,177.762,-84.2861],[626.543,-1002.7,31.2667,173.558,-84.1027],[615.803,-900.438,30.6667,169.04,-83.8971],[604.98,-800.934,30.0667,164.455,-83.6782],[593.772,-701.582,29.45,159.673,-83.4384],[581.868,-600.106,28.8,154.558,-83.1673],[569.872,-502.014,28.15,149.368,-82.8753],[556.854,-400.218,27.45,143.698,-82.5345],[543.423,-300.189,26.7333,137.808,-82.1534],[529.259,-200.118,25.9833,131.556,-81.7144],[514.353,-100.709,25.2,124.936,-81.2047],[498.373,-0.774855,24.3667,117.796,-80.5946],[481.304,98.5052,23.4833,110.128,-79.8552],[462.48,199.189,22.5167,101.631,-78.9101],[441.875,298.979,21.4667,92.2953,-77.6758],[418.472,399.311,20.2833,81.6744,-75.9312],[391.231,498.945,18.9167,69.3418,-73.2278],[356.402,599.875,17.1833,53.7911,-67.9752],[301.343,699.911,14.4667,31.1242,-49.1748],[252.394,728.481,12.0667,20.4377,-0.200943]]], + [81,732.735,[[646.577,-2000.71,36.5333,209.882,-85.9274],[639.346,-1900.25,36.05,206.744,-85.8338],[632.06,-1801.34,35.5667,203.558,-85.7365],[624.465,-1700.65,35.0667,200.213,-85.6318],[616.813,-1601.66,34.5667,196.817,-85.5226],[608.845,-1501.17,34.05,193.255,-85.4049],[600.817,-1402.55,33.5333,189.64,-85.2818],[592.466,-1302.74,33,185.853,-85.1487],[583.789,-1201.94,32.45,181.888,-85.0044],[574.78,-1100.41,31.8833,177.741,-84.8478],[565.702,-1001.26,31.3167,173.531,-84.6824],[556.286,-901.721,30.7333,169.134,-84.5022],[546.527,-802.053,30.1333,164.543,-84.3051],[536.421,-702.53,29.5167,159.755,-84.089],[525.686,-600.872,28.8667,154.633,-83.8448],[514.591,-500.121,28.2,149.301,-83.5748],[503.132,-400.601,27.5167,143.756,-83.2747],[491.021,-300.365,26.8,137.855,-82.9314],[478.25,-200.075,26.05,131.59,-82.5358],[464.809,-100.437,25.2667,124.954,-82.0764],[450.4,-0.256398,24.4333,117.795,-81.5263],[435.009,99.2868,23.55,110.103,-80.8595],[418.33,198.591,22.6,101.723,-80.0227],[399.753,298.858,21.55,92.3482,-78.9115],[378.653,399.731,20.3667,81.6699,-77.3394],[354.092,499.995,19,69.246,-74.8987],[323.601,599.198,17.3167,53.9661,-70.3103],[275.5,699.73,14.6833,31.2602,-54.0849],[228.013,732.734,12.1,18.42,-0.142895]]], + [82,736.556,[[576.406,-2001.17,36.5833,209.927,-86.3747],[569.967,-1900.64,36.1,206.787,-86.2913],[563.479,-1801.65,35.6167,203.599,-86.2048],[556.715,-1700.88,35.1167,200.251,-86.1115],[549.9,-1601.81,34.6167,196.853,-86.0143],[542.805,-1501.24,34.1,193.289,-85.9096],[535.655,-1402.53,33.5833,189.671,-85.8],[528.219,-1302.63,33.05,185.88,-85.6814],[520.492,-1201.75,32.5,181.911,-85.553],[512.469,-1100.12,31.9333,177.76,-85.4136],[504.385,-1000.87,31.3667,173.546,-85.2663],[496,-901.233,30.7833,169.143,-85.1058],[487.309,-801.462,30.1833,164.547,-84.9304],[478.309,-701.832,29.5667,159.753,-84.7379],[468.75,-600.061,28.9167,154.623,-84.5205],[459.117,-501.671,28.2667,149.417,-84.2861],[448.914,-401.937,27.5833,143.864,-84.0195],[438.131,-301.475,26.8667,137.954,-83.7142],[426.76,-200.945,26.1167,131.679,-83.3624],[414.792,-101.054,25.3333,125.029,-82.9539],[401.963,-0.602204,24.5,117.854,-82.4647],[388.259,99.2313,23.6167,110.142,-81.8714],[373.408,198.85,22.6667,101.735,-81.1267],[356.867,299.468,21.6167,92.3239,-80.1371],[338.345,399.403,20.45,81.7452,-78.7581],[316.746,499.218,19.1,69.3931,-76.6185],[289.602,599.527,17.4167,53.9561,-72.5426],[248.143,699.599,14.8667,31.3723,-58.6542],[203.421,736.555,12.1333,16.3946,-0.197865]]], + [83,739.939,[[505.738,-2002.79,36.6333,210.004,-86.8244],[500.095,-1902.18,36.15,206.863,-86.7514],[494.408,-1803.1,35.6667,203.674,-86.6756],[488.481,-1702.25,35.1667,200.325,-86.594],[482.508,-1603.08,34.6667,196.925,-86.5088],[476.29,-1502.42,34.15,193.359,-86.4171],[469.821,-1400.46,33.6167,189.621,-86.3179],[463.302,-1300.52,33.0833,185.826,-86.214],[456.735,-1202.63,32.55,181.974,-86.1049],[449.703,-1100.89,31.9833,177.82,-85.9827],[442.618,-1001.53,31.4167,173.602,-85.8538],[435.269,-901.782,30.8333,169.196,-85.7131],[427.653,-801.893,30.2333,164.595,-85.5594],[419.765,-702.141,29.6167,159.795,-85.391],[411.387,-600.24,28.9667,154.66,-85.2004],[402.944,-501.718,28.3167,149.448,-84.9952],[394.002,-401.844,27.6333,143.887,-84.7615],[384.552,-301.235,26.9167,137.968,-84.494],[374.585,-200.55,26.1667,131.682,-84.1858],[364.096,-100.495,25.3833,125.019,-83.8277],[353.078,-1.82134,24.5667,117.973,-83.4079],[341.069,98.3292,23.6833,110.244,-82.8891],[327.826,199.974,22.7167,101.666,-82.2252],[313.56,299.294,21.6833,92.3724,-81.3716],[297.329,399.66,20.5167,81.749,-80.1638],[278.402,499.977,19.1667,69.3258,-78.2872],[255.088,599.18,17.5167,54.0594,-74.7905],[219.477,699.641,15.0167,31.4217,-62.9343],[178.625,739.937,12.1667,14.3624,-0.414101]]], + [84,742.882,[[434.437,-2002.09,36.6667,210.006,-87.2742],[429.592,-1901.43,36.1833,206.862,-87.2115],[424.71,-1802.31,35.7,203.671,-87.1463],[419.621,-1701.41,35.2,200.32,-87.0762],[414.494,-1602.2,34.7,196.918,-87.0032],[409.155,-1501.49,34.1833,193.349,-86.9244],[403.776,-1402.65,33.6667,189.726,-86.842],[398.181,-1302.59,33.1333,185.929,-86.7528],[392.367,-1201.56,32.5833,181.955,-86.6563],[386.508,-1102.73,32.0333,177.92,-86.5546],[380.247,-1000.36,31.45,173.575,-86.4406],[373.938,-900.556,30.8667,169.164,-86.3199],[367.399,-800.612,30.2667,164.558,-86.1878],[360.627,-700.801,29.65,159.753,-86.0432],[353.62,-601.412,29.0167,154.744,-85.8838],[346.187,-500.256,28.35,149.392,-85.7031],[338.51,-400.318,27.6667,143.824,-85.5024],[330.586,-301.933,26.9667,138.034,-85.2781],[322.031,-201.071,26.2167,131.74,-85.0138],[313.028,-100.83,25.4333,125.067,-84.7068],[303.377,-0.00311351,24.6,117.863,-84.3388],[293.263,98.4041,23.7333,110.263,-83.9015],[282.092,198.599,22.7833,101.813,-83.3423],[269.65,299.859,21.7333,92.3433,-82.5987],[255.918,399.165,20.5833,81.8335,-81.5777],[239.874,498.889,19.25,69.5043,-79.9928],[219.663,599.907,17.5833,53.9667,-76.9646],[189.713,699.96,15.1333,31.3772,-66.9825],[153.427,742.882,12.1833,12.3234,-0.112161]]], + [85,745.379,[[362.758,-2002.56,36.7,210.04,-87.7261],[358.715,-1901.85,36.2167,206.895,-87.6738],[354.641,-1802.68,35.7333,203.703,-87.6194],[350.395,-1701.73,35.2333,200.35,-87.561],[346.116,-1602.46,34.7333,196.947,-87.4999],[341.661,-1501.7,34.2167,193.376,-87.4342],[337.173,-1402.79,33.7,189.751,-87.3655],[332.504,-1302.68,33.1667,185.952,-87.2912],[327.652,-1201.58,32.6167,181.975,-87.2106],[322.764,-1102.69,32.0667,177.938,-87.1257],[317.539,-1000.25,31.4833,173.59,-87.0307],[312.274,-900.376,30.9,169.176,-86.93],[306.818,-800.36,30.3,164.566,-86.8198],[301.167,-700.477,29.6833,159.757,-86.699],[295.319,-601.01,29.05,154.744,-86.5661],[289.272,-502.262,28.4,149.521,-86.4193],[282.867,-402.147,27.7167,143.948,-86.252],[276.098,-301.282,27,138.015,-86.0606],[268.96,-200.328,26.25,131.712,-85.8399],[261.608,-102.069,25.4833,125.173,-85.5894],[253.555,-1.01685,24.65,117.959,-85.2829],[244.954,99.4586,23.7667,110.199,-84.911],[235.632,199.773,22.8167,101.731,-84.4438],[225.415,299.635,21.7833,92.3878,-83.833],[213.958,399.264,20.6333,81.8458,-82.9817],[200.572,499.364,19.3,69.4654,-81.6588],[183.879,599.973,17.65,53.9849,-79.1574],[159.404,699.639,15.25,31.5216,-71.0541],[128.279,745.377,12.2167,10.2799,-0.80673]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 253.555; +_maxRange = 1457.11; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg2.sqf new file mode 100644 index 0000000000..a00ba0846b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg2.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_illum_time_chg2 +// Ammo: ace_arty_82mm_illum_time +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,638.531,[[3495.1,-2001.34,35.45,218.661,-68.7214],[3455.26,-1900.24,34.95,215.888,-68.2472],[3415.1,-1800.78,34.45,213.085,-67.7565],[3374.61,-1702.97,33.95,210.252,-67.2486],[3331.07,-1600.49,33.4167,207.2,-66.6869],[3288.53,-1503.06,32.9,204.213,-66.1219],[3242.88,-1401.38,32.35,201.004,-65.4969],[3196.84,-1301.82,31.8,197.766,-64.846],[3149.01,-1201.49,31.2333,194.401,-64.1469],[3099.36,-1100.64,30.65,190.91,-63.395],[3049.28,-1002.29,30.0667,187.394,-62.6083],[2995.89,-901.07,29.45,183.654,-61.7365],[2940.58,-800.105,28.8167,179.793,-60.795],[2884.78,-702.216,28.1833,175.916,-59.8037],[2824.05,-600.1,27.5,171.721,-58.6739],[2762.78,-501.67,26.8167,167.523,-57.4769],[2696.44,-400.203,26.0833,163.023,-56.1116],[2627.96,-300.953,25.3333,158.439,-54.6215],[2554.23,-200.207,24.5333,153.585,-52.9186],[2476.69,-100.967,23.7,148.589,-51.0091],[2392.14,-0.425054,22.8,143.289,-48.7767],[2300.39,99.7708,21.8333,137.748,-46.1638],[2199.68,199.317,20.7833,131.961,-43.0489],[2084.91,299.729,19.6,125.816,-39.1615],[1950.74,399.92,18.2333,119.364,-34.135],[1783.19,499.682,16.55,112.653,-27.1164],[1526.49,599.655,14.0167,105.974,-14.9441],[1234.85,638.531,11.2,104.706,-0.00652457]]], + [46,660.19,[[3461.54,-2000.91,35.7333,218.849,-69.1416],[3423.73,-1902.79,35.25,216.159,-68.6925],[3384.31,-1802.89,34.75,213.346,-68.212],[3343.23,-1701.39,34.2333,210.407,-67.6977],[3301.81,-1601.68,33.7167,207.437,-67.1644],[3258.7,-1500.66,33.1833,204.34,-66.5928],[3215.23,-1401.61,32.65,201.213,-65.9986],[3170.03,-1301.54,32.1,197.958,-65.3609],[3123.07,-1200.69,31.5333,194.575,-64.6758],[3075.72,-1102.16,30.9667,191.164,-63.9603],[3025.16,-1000.39,30.3667,187.525,-63.1676],[2974.16,-901.294,29.7667,183.862,-62.3364],[2921.3,-802.275,29.15,180.075,-61.4392],[2865.1,-701.052,28.5,176.064,-60.443],[2806.95,-600.641,27.8333,171.937,-59.3634],[2746.82,-501.354,27.15,167.699,-58.1914],[2683.19,-401.235,26.4333,163.256,-56.8853],[2616,-300.923,25.6833,158.619,-55.427],[2545.17,-201.1,24.9,153.804,-53.7952],[2469.11,-100.538,24.0667,148.733,-51.9264],[2387.69,-0.378247,23.1833,143.442,-49.7815],[2299.26,99.8355,22.2333,137.884,-47.2681],[2202.07,199.872,21.2,132.046,-44.2671],[2094.32,298.678,20.0667,125.97,-40.6244],[1967.66,398.903,18.75,119.47,-35.89],[1811.7,499.273,17.15,112.628,-29.3636],[1588.78,599.904,14.9,105.616,-18.7741],[1233.95,660.187,11.4,102.775,-0.076701]]], + [47,681.804,[[3426.03,-2001.29,36.0167,219.061,-69.5679],[3388.93,-1902.8,35.5333,216.361,-69.128],[3350.23,-1802.5,35.0333,213.537,-68.6572],[3309.92,-1700.6,34.5167,210.587,-68.1534],[3269.27,-1600.48,34,207.604,-67.6308],[3228.28,-1502.17,33.4833,204.591,-67.0886],[3185.64,-1402.61,32.95,201.45,-66.507],[3141.29,-1302.03,32.4,198.179,-65.8828],[3095.21,-1200.64,31.8333,194.778,-65.2119],[3048.75,-1101.56,31.2667,191.347,-64.5113],[3000.52,-1002.02,30.6833,187.788,-63.757],[2950.49,-902.265,30.0833,184.101,-62.9438],[2898.64,-802.558,29.4667,180.288,-62.0658],[2843.5,-700.604,28.8167,176.247,-61.0906],[2787.89,-601.922,28.1667,172.189,-60.0608],[2728.91,-501.76,27.4833,167.913,-58.9144],[2666.5,-400.714,26.7667,163.425,-57.6363],[2602.07,-301.623,26.0333,158.84,-56.2413],[2532.61,-200.658,25.25,153.965,-54.645],[2459.51,-100.847,24.4333,148.925,-52.8533],[2381.21,-1.10298,23.5667,143.647,-50.7958],[2296.04,99.0922,22.6333,138.079,-48.3823],[2202.32,199.58,21.6167,132.199,-45.496],[2098.29,299.393,20.5,126.035,-41.985],[1978.92,399.018,19.2333,119.531,-37.5283],[1832.58,499.964,17.7,112.572,-31.4061],[1637.2,599.369,15.6833,105.451,-22.1177],[1230.23,681.802,11.5833,100.834,-0.0752339]]], + [48,703.351,[[3388.54,-2002.54,36.3,219.297,-70.0002],[3350.89,-1900.28,35.8,216.494,-69.5545],[3314.2,-1802.96,35.3167,213.755,-69.1089],[3274.66,-1700.64,34.8,210.793,-68.6157],[3234.79,-1600.09,34.2833,207.798,-68.1042],[3194.59,-1501.35,33.7667,204.772,-67.5733],[3152.76,-1401.35,33.2333,201.616,-67.0038],[3109.27,-1300.3,32.6833,198.329,-66.3925],[3065.41,-1201.39,32.1333,195.01,-65.7552],[3019.85,-1101.76,31.5667,191.561,-65.0698],[2972.55,-1001.64,30.9833,187.981,-64.3317],[2923.49,-901.279,30.3833,184.271,-63.5358],[2872.64,-800.948,29.7667,180.431,-62.6763],[2819.97,-700.919,29.1333,176.464,-61.7465],[2765.44,-601.481,28.4833,172.374,-60.7391],[2707.62,-500.517,27.8,168.06,-59.6174],[2647.86,-400.944,27.1,163.634,-58.3962],[2584.7,-300.876,26.3667,159,-57.0319],[2518.07,-200.974,25.6,154.171,-55.5042],[2447.9,-101.945,24.8,149.166,-53.7893],[2371.17,-0.764325,23.9333,143.806,-51.7787],[2289.21,99.2427,23.0167,138.237,-49.4614],[2198.9,199.995,22.0167,132.325,-46.6861],[2100.05,299.163,20.9333,126.178,-43.3571],[1986.25,399.229,19.7,119.61,-39.1163],[1850.82,499.113,18.25,112.665,-33.4605],[1672.42,599.691,16.3667,105.317,-24.9817],[1305.93,699.888,12.5833,98.6044,-4.73779],[1225.44,703.349,11.7667,98.8698,-0.0929677]]], + [49,724.808,[[3347.85,-2001.24,36.5667,219.465,-70.4239],[3312.17,-1902.02,36.0833,216.748,-70.0023],[3274.96,-1800.96,35.5833,213.903,-69.5513],[3237.45,-1701.55,35.0833,211.026,-69.0843],[3198.37,-1600.56,34.5667,208.02,-68.5839],[3158.98,-1501.38,34.05,204.981,-68.0647],[3117.97,-1400.92,33.5167,201.811,-67.5076],[3076.63,-1302.44,32.9833,198.608,-66.928],[3032.35,-1200,32.4167,195.173,-66.2859],[2989.01,-1102.78,31.8667,191.807,-65.6353],[2942.66,-1002.06,31.2833,188.207,-64.9138],[2894.58,-901.088,30.6833,184.473,-64.1356],[2844.75,-800.117,30.0667,180.608,-63.295],[2794.49,-702.034,29.45,176.718,-62.4101],[2741.07,-601.824,28.8,172.597,-61.4257],[2684.41,-500.04,28.1167,168.246,-60.3293],[2627.26,-401.965,27.4333,163.885,-59.1644],[2565.39,-300.899,26.7,159.203,-57.8316],[2501.54,-202.088,25.95,154.424,-56.372],[2432.81,-101.837,25.15,149.354,-54.6972],[2359.1,-1.23158,24.3,144.017,-52.7712],[2280.31,98.5535,23.4,138.453,-50.5501],[2193.37,199.533,22.4167,132.517,-47.8863],[2098.08,299.424,21.35,126.306,-44.6858],[1989.72,399.616,20.15,119.701,-40.655],[1861.8,499.933,18.75,112.673,-35.3179],[1699.74,599.806,17,105.266,-27.6178],[1434.15,699.806,14.1833,97.7986,-12.9652],[1217.95,724.807,11.9333,96.8942,-0.0344686]]], + [50,746.144,[[3305.2,-2000.85,36.8333,219.658,-70.8537],[3270.24,-1901.28,36.35,216.932,-70.4415],[3235.01,-1803.21,35.8667,214.173,-70.0153],[3197.04,-1700.06,35.35,211.189,-69.5434],[3159.99,-1601.93,34.85,208.269,-69.0701],[3121.4,-1502.3,34.3333,205.218,-68.5627],[3081.23,-1401.37,33.8,202.035,-68.0183],[3040.74,-1302.41,33.2667,198.818,-67.4517],[2998.64,-1202.46,32.7167,195.467,-66.8429],[2954.91,-1101.74,32.15,191.982,-66.188],[2909.51,-1000.49,31.5667,188.361,-65.4824],[2863.73,-901.739,30.9833,184.71,-64.7429],[2814.92,-800.112,30.3667,180.82,-63.9217],[2765.71,-701.368,29.75,176.903,-63.057],[2713.39,-600.453,29.1,172.75,-62.0949],[2659.26,-500.378,28.4333,168.471,-61.0497],[2603.3,-401.456,27.75,164.07,-59.9119],[2544.09,-301.744,27.0333,159.449,-58.6401],[2481.59,-201.882,26.2833,154.618,-57.2151],[2414.3,-100.5,25.4833,149.484,-55.579],[2343.56,-0.617685,24.65,144.178,-53.7343],[2267.88,98.7839,23.7667,138.627,-51.6058],[2184.24,199.812,22.8,132.676,-49.0496],[2093.93,298.713,21.7667,126.512,-46.0248],[1990.89,398.905,20.6,119.885,-42.2045],[1870.29,499.415,19.25,112.805,-37.1872],[1720.99,599.41,17.6,105.308,-30.1076],[1498.77,699.65,15.1833,97.4975,-17.8547],[1211,746.141,12.1167,94.8836,-0.0926982]]], + [51,767.343,[[3260.61,-2001.42,37.1,219.878,-71.2896],[3226.39,-1901.48,36.6167,217.143,-70.8868],[3191.89,-1803.04,36.1333,214.375,-70.4703],[3155.92,-1702.81,35.6333,211.478,-70.0243],[3118.44,-1600.98,35.1167,208.449,-69.5466],[3080.66,-1500.94,34.6,205.386,-69.0506],[3042.57,-1402.73,34.0833,202.289,-68.5354],[3001.69,-1300.21,33.5333,198.956,-67.9646],[2961.73,-1202.82,33,195.692,-67.3877],[2918.92,-1101.57,32.4333,192.189,-66.748],[2875.75,-1002.64,31.8667,188.653,-66.0789],[2829.66,-900.462,31.2667,184.876,-65.3363],[2783.19,-800.967,30.6667,181.067,-64.5561],[2735.02,-701.545,30.05,177.124,-63.712],[2685.13,-602.474,29.4167,173.049,-62.7973],[2632.17,-501.564,28.75,168.736,-61.778],[2577.41,-401.778,28.0667,164.298,-60.668],[2519.48,-301.15,27.35,159.633,-59.4267],[2458.32,-200.321,26.6,154.75,-58.0352],[2395.23,-102.057,25.8333,149.771,-56.5055],[2326.04,-0.84337,25,144.392,-54.7072],[2252.01,99.9842,24.1167,138.754,-52.6301],[2173.03,199.187,23.1833,132.901,-50.2227],[2086.15,298.543,22.1667,126.697,-47.3222],[1986.85,399.82,21.0167,119.976,-43.649],[1873.35,499.881,19.7167,112.891,-38.9349],[1734.88,599.793,18.15,105.333,-32.3777],[1542.03,699.459,16,97.3679,-21.7524],[1201.41,767.341,12.2833,92.8617,-0.0736321]]], + [52,788.375,[[3214.05,-2002.97,37.3667,220.123,-71.7314],[3180.57,-1902.66,36.8833,217.38,-71.3381],[3145.65,-1800.46,36.3833,214.507,-70.9173],[3111.63,-1703.22,35.9,211.697,-70.4962],[3074.97,-1600.98,35.3833,208.657,-70.0297],[3038,-1500.52,34.8667,205.582,-69.5454],[3000.74,-1401.89,34.35,202.472,-69.0423],[2961.96,-1302,33.8167,199.227,-68.5021],[2921.65,-1201.08,33.2667,195.845,-67.9214],[2881,-1102.31,32.7167,192.428,-67.3152],[2838.78,-1002.84,32.15,188.874,-66.6624],[2793.7,-900.072,31.55,185.076,-65.9376],[2749.5,-802.728,30.9667,181.351,-65.1977],[2702.4,-702.613,30.35,177.383,-64.3747],[2652.32,-600.238,29.7,173.171,-63.4586],[2601.82,-501.148,29.05,168.933,-62.4884],[2548.27,-400.57,28.3667,164.458,-61.4051],[2492.93,-301.416,27.6667,159.859,-60.2223],[2434.46,-201.811,26.9333,155.036,-58.8965],[2371.45,-100.314,26.15,149.891,-57.3724],[2306.51,-1.96117,25.35,144.66,-55.6892],[2235.51,98.4496,24.4833,139.044,-53.7053],[2158.32,199.337,23.55,133.087,-51.3608],[2074.81,298.961,22.55,126.855,-48.5802],[1980.61,399.695,21.4333,120.154,-45.1052],[1874.02,499.092,20.1833,113.091,-40.693],[1744.6,599.429,18.6833,105.451,-34.5837],[1571.09,699.829,16.7,97.2899,-25.0375],[1190.77,788.373,12.45,90.817,-0.0755302]]], + [53,809.22,[[3164.4,-2002.06,37.6167,220.302,-72.1657],[3131.66,-1901.41,37.1333,217.55,-71.7818],[3098.66,-1802.26,36.65,214.764,-71.3848],[3064.25,-1701.28,36.15,211.847,-70.9598],[3029.56,-1601.96,35.65,208.895,-70.5192],[2993.43,-1501.07,35.1333,205.808,-70.0469],[2957,-1402,34.6167,202.687,-69.5561],[2919.09,-1301.67,34.0833,199.428,-69.029],[2879.68,-1200.28,33.5333,196.03,-68.4625],[2839.94,-1101.04,32.9833,192.597,-67.8709],[2798.66,-1001.07,32.4167,189.024,-67.2338],[2755.82,-900.606,31.8333,185.311,-66.5464],[2712.63,-802.67,31.25,181.565,-65.825],[2666.59,-701.924,30.6333,177.572,-65.0224],[2618.9,-601.48,30,173.44,-64.1523],[2569.55,-501.626,29.35,169.172,-63.207],[2517.22,-400.238,28.6667,164.66,-62.1513],[2463.15,-300.246,27.9667,160.021,-60.998],[2407.31,-201.989,27.25,155.261,-59.735],[2347.05,-101.557,26.4833,150.17,-58.2826],[2283.61,-1.9935,25.6833,144.875,-56.6438],[2214.26,99.7419,24.8167,139.179,-54.7105],[2141.56,198.546,23.9167,133.338,-52.5086],[2061.37,298.405,22.9333,127.086,-49.8485],[1970.77,399.941,21.8333,120.318,-46.5171],[1869.49,499.544,20.6167,113.217,-42.3358],[1748.82,599.489,19.1833,105.565,-36.6534],[1592.45,699.437,17.35,97.3426,-28.0718],[1298.35,799.989,13.9667,88.9528,-8.62067],[1179.09,809.217,12.6167,88.7498,-0.100012]]], + [54,829.85,[[3112.81,-2002.19,37.8667,220.507,-72.6061],[3080.83,-1901.2,37.3833,217.747,-72.2318],[3048.59,-1801.7,36.9,214.952,-71.8447],[3014.97,-1700.36,36.4,212.025,-71.4301],[2981.08,-1600.67,35.9,209.063,-71.0004],[2946.91,-1502.64,35.4,206.065,-70.5547],[2911.33,-1403.13,34.8833,202.932,-70.0765],[2874.31,-1302.33,34.35,199.66,-69.5629],[2835.81,-1200.46,33.8,196.248,-69.0108],[2796.99,-1100.72,33.25,192.799,-68.4342],[2756.67,-1000.24,32.6833,189.209,-67.8131],[2716.02,-902.108,32.1167,185.583,-67.1626],[2672.63,-800.789,31.5167,181.708,-66.4394],[2628.88,-702.174,30.9167,177.799,-65.6783],[2582.31,-601.058,30.2833,173.64,-64.8306],[2534.11,-500.509,29.6333,169.341,-63.9094],[2484.25,-400.829,28.9667,164.906,-62.9061],[2432.72,-302.335,28.2833,160.338,-61.8107],[2376.93,-200.836,27.55,155.422,-60.5527],[2319.38,-101.598,26.8,150.39,-59.169],[2257.44,-0.913879,26,145.031,-57.5731],[2192.35,98.2069,25.1667,139.48,-55.7645],[2121.4,198.557,24.2667,133.547,-53.6236],[2044.47,298.472,23.3,127.284,-51.0796],[1958.75,399.121,22.2333,120.567,-47.9393],[1862.67,498.807,21.05,113.447,-43.9892],[1749.11,599.123,19.6667,105.737,-38.6622],[1605.04,699.735,17.9333,97.3861,-30.7763],[1376.95,799.822,15.2333,88.5981,-15.7544],[1164.9,829.849,12.7667,86.6698,-0.0410822]]], + [55,850.245,[[3059.3,-2003.41,38.1167,220.739,-73.0524],[3028.07,-1902.07,37.6333,217.972,-72.6878],[2996.6,-1802.21,37.15,215.17,-72.3106],[2963.78,-1700.5,36.65,212.234,-71.9068],[2930.7,-1600.42,36.15,209.261,-71.4881],[2897.35,-1502.02,35.65,206.253,-71.0539],[2862.62,-1402.1,35.1333,203.107,-70.5879],[2826.47,-1300.89,34.6,199.822,-70.0874],[2790.04,-1201.65,34.0667,196.5,-69.5659],[2752.15,-1101.42,33.5167,193.036,-69.0046],[2712.8,-1000.41,32.95,189.429,-68.3999],[2673.13,-901.749,32.3833,185.784,-67.7664],[2631.96,-802.66,31.8,181.997,-67.0821],[2588.08,-700.681,31.1833,177.956,-66.3206],[2543.83,-601.596,30.5667,173.881,-65.5169],[2496.79,-500.333,29.9167,169.552,-64.6204],[2449.37,-402.382,29.2667,165.196,-63.6688],[2397.86,-300.655,28.5667,160.479,-62.5768],[2344.66,-200.604,27.85,155.631,-61.38],[2288.51,-100.408,27.1,150.548,-60.0331],[2229.35,-0.755214,26.3167,145.242,-58.5125],[2165.85,99.5697,25.4833,139.619,-56.7526],[2097.93,199.414,24.6,133.709,-54.7076],[2024.2,299.215,23.65,127.446,-52.2755],[1943.23,398.716,22.6167,120.797,-49.3189],[1850.89,499.541,21.45,113.58,-45.5343],[1744.22,599.58,20.1167,105.864,-40.5433],[1611.99,699.685,18.4833,97.4979,-33.3262],[1418.95,799.582,16.1333,88.5099,-20.6556],[1149.73,850.245,12.9167,84.5673,-0.00334846]]], + [56,870.378,[[3002.8,-2002.22,38.35,220.905,-73.4923],[2972.34,-1900.56,37.8667,218.13,-73.1371],[2941.64,-1800.39,37.3833,215.318,-72.7698],[2910.7,-1701.72,36.9,212.472,-72.3896],[2878.43,-1601.26,36.4,209.49,-71.9823],[2845.91,-1502.45,35.9,206.471,-71.5597],[2812.03,-1402.13,35.3833,203.315,-71.1062],[2776.78,-1300.49,34.85,200.017,-70.619],[2741.24,-1200.82,34.3167,196.681,-70.1113],[2704.29,-1100.13,33.7667,193.202,-69.5649],[2667.05,-1001.61,33.2167,189.684,-68.9938],[2628.37,-902.407,32.65,186.022,-68.3777],[2588.22,-802.753,32.0667,182.215,-67.7121],[2545.43,-700.173,31.45,178.151,-66.9713],[2502.28,-600.48,30.8333,174.051,-66.1892],[2457.6,-501.142,30.2,169.806,-65.3396],[2411.36,-402.453,29.55,165.418,-64.4145],[2362.34,-302.318,28.8667,160.777,-63.3787],[2310.49,-201.34,28.15,155.888,-62.2161],[2255.76,-100.164,27.4,150.756,-60.9072],[2199.32,-1.56556,26.6333,145.506,-59.4613],[2137.44,99.9883,25.8,139.815,-57.7516],[2072.49,199.302,24.9333,133.934,-55.8023],[2001.91,298.961,24,127.677,-53.4823],[1924.3,398.778,22.9833,121.001,-50.6582],[1836.92,499.142,21.85,113.808,-47.0908],[1735.65,599.883,20.55,106.018,-42.3691],[1613.51,699.59,19,97.6434,-35.725],[1443.11,799.891,16.8667,88.4826,-24.5747],[1134.94,870.376,13.0833,82.4342,-0.102393]]], + [57,890.229,[[2944.41,-2002.17,38.5833,221.099,-73.9383],[2914.73,-1900.18,38.1,218.316,-73.5928],[2885.84,-1803.12,37.6333,215.595,-73.2479],[2854.65,-1700.68,37.1333,212.641,-72.8655],[2824.26,-1603.2,36.65,209.75,-72.4825],[2791.51,-1500.72,36.1333,206.621,-72.0578],[2758.49,-1400.03,35.6167,203.452,-71.6165],[2725.22,-1301.16,35.1,200.245,-71.1574],[2690.59,-1201.05,34.5667,196.896,-70.6638],[2655.68,-1102.94,34.0333,193.509,-70.149],[2618.3,-1000.91,33.4667,189.869,-69.5772],[2580.61,-901.22,32.9,186.19,-68.978],[2541.49,-801.06,32.3167,182.362,-68.3306],[2500.93,-700.688,31.7167,178.387,-67.6298],[2458.89,-600.37,31.1,174.262,-66.8699],[2415.36,-500.385,30.4667,169.99,-66.0441],[2370.31,-401.024,29.8167,165.572,-65.1446],[2322.56,-300.177,29.1333,160.895,-64.1373],[2273.23,-200.764,28.4333,156.079,-63.0333],[2221.1,-100.906,27.7,151.015,-61.7906],[2166.14,-1.27301,26.9333,145.712,-60.3869],[2107.08,99.4209,26.1167,140.068,-58.7606],[2045.07,198.178,25.2667,134.222,-56.9066],[1976.35,299.405,24.3333,127.867,-54.6562],[1902.04,399.358,23.3333,121.175,-51.96],[1819.5,498.988,22.2333,114.027,-48.6015],[1724.75,598.879,20.9833,106.291,-44.2045],[1609.79,699.737,19.4833,97.7915,-37.9782],[1458.43,799.328,17.5333,88.6057,-28.1157],[1117.75,890.226,13.2333,80.2883,-0.116155]]], + [58,909.773,[[2884.13,-2003.28,38.8167,221.322,-74.3903],[2855.24,-1900.96,38.3333,218.532,-74.0545],[2826.11,-1800.12,37.85,215.705,-73.7072],[2796.75,-1700.78,37.3667,212.841,-73.3478],[2767.16,-1602.96,36.8833,209.941,-72.9757],[2735.27,-1500.1,36.3667,206.802,-72.5629],[2704.17,-1402.27,35.8667,203.725,-72.1481],[2671.78,-1302.96,35.35,200.508,-71.7024],[2638.07,-1202.39,34.8167,197.146,-71.2232],[2603.03,-1100.76,34.2667,193.639,-70.7074],[2567.71,-1001.29,33.7167,190.091,-70.1681],[2531.02,-901.095,33.15,186.394,-69.5861],[2492.94,-800.413,32.5667,182.548,-68.9573],[2454.56,-702.265,31.9833,178.663,-68.2959],[2413.65,-601.306,31.3667,174.515,-67.5585],[2371.28,-500.656,30.7333,170.217,-66.7571],[2327.44,-400.606,30.0833,165.769,-65.8839],[2282.11,-301.46,29.4167,161.174,-64.9303],[2234.1,-201.196,28.7167,156.32,-63.8596],[2183.39,-100.437,27.9833,151.211,-62.6538],[2131.07,-1.98723,27.2333,145.972,-61.3219],[2073.61,99.8447,26.4167,140.266,-59.7447],[2013.28,199.798,25.5667,134.345,-57.9452],[1948.82,298.82,24.6667,128.125,-55.8405],[1877.75,398.88,23.6833,121.427,-53.2727],[1798.71,499.137,22.6,114.229,-50.0688],[1709.05,599.067,21.3833,106.479,-45.9232],[1602.29,699.328,19.95,98.0073,-40.1655],[1464.08,799.579,18.1167,88.6975,-31.1966],[1208.47,899.77,14.7833,78.7097,-10.1616],[1098.26,909.772,13.3667,78.1285,-0.0378578]]], + [59,928.986,[[2820.99,-2002.05,39.0333,221.478,-74.8368],[2793.85,-1902.95,38.5667,218.778,-74.522],[2765.52,-1801.75,38.0833,215.944,-74.1851],[2736.97,-1702.06,37.6,213.072,-73.8363],[2707.2,-1600.52,37.1,210.063,-73.4624],[2677.19,-1500.64,36.6,207.015,-73.0746],[2646.94,-1402.43,36.1,203.929,-72.6719],[2615.44,-1302.73,35.5833,200.7,-72.2394],[2582.66,-1201.75,35.05,197.326,-71.7742],[2549.62,-1102.76,34.5167,193.912,-71.2889],[2515.27,-1002.79,33.9667,190.35,-70.766],[2479.59,-902.073,33.4,186.637,-70.2016],[2442.57,-800.854,32.8167,182.773,-69.5917],[2405.25,-702.163,32.2333,178.868,-68.9501],[2365.47,-600.625,31.6167,174.698,-68.2347],[2325.36,-501.998,31,170.488,-67.478],[2282.74,-401.24,30.35,166.013,-66.6318],[2238.66,-301.361,29.6833,161.386,-65.7073],[2192,-200.319,28.9833,156.494,-64.6688],[2143.81,-100.998,28.2667,151.459,-63.5264],[2092.96,-1.59502,27.5167,146.171,-62.2357],[2038.26,99.2417,26.7167,140.522,-60.7388],[1980.77,198.494,25.8833,134.647,-59.0313],[1918.14,298.953,24.9833,128.339,-56.9941],[1850.25,398.949,24.0167,121.643,-54.5498],[1774.64,499.642,22.95,114.409,-51.4954],[1689.93,599.321,21.7667,106.669,-47.5924],[1589.88,699.557,20.3833,98.1809,-42.2168],[1463.06,799.966,18.65,88.8084,-34.0173],[1261.34,899.944,15.9333,78.534,-17.5442],[1079.1,928.984,13.5167,75.9398,-0.10659]]], + [60,947.852,[[2755.99,-2002.03,39.25,221.663,-75.2894],[2729.63,-1902.64,38.7833,218.956,-74.9841],[2702.1,-1801.13,38.3,216.115,-74.6572],[2674.36,-1701.13,37.8167,213.235,-74.3189],[2646.4,-1602.63,37.3333,210.319,-73.9685],[2617.24,-1502.36,36.8333,207.262,-73.5926],[2586.88,-1400.51,36.3167,204.063,-73.1891],[2556.27,-1300.46,35.8,200.822,-72.7694],[2525.42,-1202.25,35.2833,197.542,-72.3323],[2493.32,-1102.83,34.75,194.115,-71.8619],[2459.95,-1002.42,34.2,190.538,-71.3549],[2425.3,-901.245,33.6333,186.81,-70.8077],[2390.36,-802.415,33.0667,183.039,-70.2336],[2353.07,-700.367,32.4667,179.002,-69.594],[2315.48,-601.03,31.8667,174.923,-68.9192],[2276.53,-501.801,31.25,170.69,-68.1861],[2235.13,-400.402,30.6,166.186,-67.366],[2193.39,-302.329,29.95,161.645,-66.4929],[2148.08,-200.489,29.25,156.718,-65.4875],[2101.28,-100.343,28.5333,151.642,-64.3811],[2051.9,-0.0681705,27.7833,146.306,-63.1302],[1999.89,99.6421,27,140.719,-61.7103],[1944.07,200,26.1667,134.777,-60.0563],[1884.39,299.847,25.2833,128.503,-58.1194],[1819.62,399.613,24.3333,121.819,-55.794],[1748.53,499.031,23.3,114.675,-52.9332],[1667.5,599.707,22.1333,106.854,-49.2147],[1573.95,699.505,20.8,98.3905,-44.2086],[1458.08,799.217,19.1667,89.0556,-36.7581],[1285.52,899.922,16.7667,78.5579,-22.7633],[1057.72,947.85,13.65,73.737,-0.0815584]]], + [61,966.341,[[2689.18,-2003.28,39.4667,221.879,-75.7479],[2662.67,-1900.04,38.9833,219.068,-75.4414],[2636.88,-1801.76,38.5167,216.317,-75.1355],[2609.95,-1701.43,38.0333,213.431,-74.8078],[2582.82,-1602.61,37.55,210.506,-74.4683],[2554.53,-1501.99,37.05,207.44,-74.1042],[2526.01,-1403.05,36.55,204.335,-73.7262],[2496.31,-1302.59,36.0333,201.085,-73.3199],[2465.41,-1200.81,35.5,197.687,-72.883],[2434.26,-1101.01,34.9667,194.247,-72.4271],[2401.88,-1000.2,34.4167,190.655,-71.9358],[2369.24,-901.57,33.8667,187.021,-71.4213],[2335.34,-802.257,33.3,183.234,-70.8654],[2300.17,-702.505,32.7167,179.291,-70.2638],[2263.7,-602.571,32.1167,175.193,-69.6113],[2224.88,-500.064,31.4833,170.821,-68.8824],[2185.75,-400.662,30.85,166.407,-68.1088],[2145.26,-301.923,30.2,161.836,-67.2639],[2102.35,-201.755,29.5167,156.993,-66.3147],[2056.96,-100.762,28.8,151.878,-65.245],[2010.13,-1.78968,28.0667,146.616,-64.0632],[1959.69,98.9742,27.2833,140.976,-62.6917],[1906.65,198.493,26.4667,135.088,-61.1263],[1848.78,299.679,25.5833,128.735,-59.2559],[1787.08,399.193,24.65,122.071,-57.0494],[1719.27,498.807,23.6333,114.914,-54.3321],[1642.97,598.891,22.5,107.14,-50.8477],[1554.58,699.241,21.2,98.6268,-46.1425],[1446.92,799.332,19.6333,89.2359,-39.2531],[1296.16,899.578,17.4667,78.6974,-27.1017],[1035.41,966.34,13.7833,71.5137,-0.0856715]]], + [62,984.438,[[2619.62,-2002.23,39.6667,222.028,-76.2019],[2594.82,-1902.26,39.2,219.309,-75.9156],[2568.93,-1800.16,38.7167,216.453,-75.609],[2543.72,-1702.99,38.25,213.659,-75.3028],[2516.51,-1600.44,37.75,210.625,-74.963],[2490.01,-1502.87,37.2667,207.653,-74.6224],[2461.44,-1400.28,36.75,204.434,-74.2443],[2433.58,-1302.73,36.25,201.278,-73.8638],[2403.63,-1200.56,35.7167,197.869,-73.4411],[2373.44,-1100.37,35.1833,194.416,-73],[2343.01,-1002.19,34.65,190.921,-72.5393],[2310.42,-900.11,34.0833,187.162,-72.0267],[2277.56,-800.367,33.5167,183.358,-71.4887],[2243.47,-700.17,32.9333,179.396,-70.9063],[2209.11,-602.525,32.35,175.392,-70.2926],[2172.49,-502.118,31.7333,171.113,-69.6069],[2134.58,-402.055,31.1,166.674,-68.8598],[2094.34,-300.125,30.4333,161.958,-68.0222],[2053.77,-201.733,29.7667,157.201,-67.1267],[2010.83,-102.288,29.0667,152.168,-66.1178],[1964.43,-0.200854,28.3167,146.743,-64.9501],[1916.6,99.3132,27.55,141.171,-63.6525],[1865.22,199.851,26.7333,135.223,-62.1398],[1811.28,298.413,25.8833,129.036,-60.4024],[1751.53,399.387,24.95,122.278,-58.2741],[1686.94,499.023,23.95,115.12,-55.695],[1614.15,599.669,22.8333,107.299,-52.3819],[1531.88,698.844,21.5833,98.8802,-48.0208],[1431.03,799.741,20.0667,89.3997,-41.5971],[1296.45,899.678,18.0667,78.8343,-30.8061],[1012.17,984.435,13.9167,69.2696,-0.121831]]], + [63,1002.12,[[2548.3,-2002.49,39.8667,222.209,-76.6619],[2524.29,-1902.24,39.4,219.483,-76.3852],[2500.09,-1803.36,38.9333,216.72,-76.0992],[2474.82,-1702.4,38.45,213.819,-75.7929],[2449.36,-1602.94,37.9667,210.879,-75.4755],[2422.82,-1501.67,37.4667,207.797,-75.1351],[2396.06,-1402.05,36.9667,204.673,-74.7815],[2368.2,-1300.89,36.45,201.402,-74.4016],[2340.11,-1201.55,35.9333,198.088,-74.006],[2310.89,-1100.96,35.4,194.624,-73.58],[2281.44,-1002.37,34.8667,191.116,-73.135],[2250.82,-902.829,34.3167,187.454,-72.6548],[2219.03,-802.573,33.75,183.636,-72.1358],[2186.04,-701.842,33.1667,179.658,-71.5738],[2151.84,-600.891,32.5667,175.519,-70.9642],[2117.35,-502.675,31.9667,171.335,-70.3199],[2080.67,-402.015,31.3333,166.873,-69.5987],[2042.7,-301.971,30.6833,162.247,-68.8108],[2002.47,-200.417,30,157.34,-67.925],[1960.91,-100.292,29.3,152.271,-66.9502],[1918.01,-1.94099,28.5833,147.046,-65.8736],[1871.74,98.545,27.8167,141.427,-64.6232],[1823.05,198.112,27.0167,135.543,-63.1957],[1769.85,299.789,26.15,129.164,-61.4878],[1714.12,398.464,25.25,122.561,-59.5093],[1651.65,499.714,24.25,115.29,-57.0244],[1583.37,599.285,23.1667,107.552,-53.9283],[1504.88,699.639,21.9333,99.0305,-49.7845],[1411.69,799.637,20.4833,89.6231,-43.8742],[1290.36,899.287,18.6167,79.0563,-34.2083],[1030.37,999.952,14.6833,67.0985,-5.49651],[986.885,1002.12,14.0333,67.0109,-0.0540066]]], + [64,1019.36,[[2474.37,-2000.48,40.05,222.323,-77.1182],[2451.98,-1903.56,39.6,219.689,-76.8606],[2427.75,-1800.86,39.1167,216.821,-76.5747],[2404.17,-1703.11,38.65,214.013,-76.2891],[2379.56,-1603.35,38.1667,211.066,-75.983],[2353.9,-1501.75,37.6667,207.975,-75.6544],[2328.04,-1401.81,37.1667,204.842,-75.3133],[2301.1,-1300.31,36.65,201.562,-74.9466],[2273.95,-1200.63,36.1333,198.238,-74.5648],[2246.59,-1102.8,35.6167,194.871,-74.1667],[2217.23,-1000.73,35.0667,191.241,-73.724],[2187.64,-900.812,34.5167,187.565,-73.2604],[2156.91,-800.166,33.95,183.73,-72.7592],[2125.93,-701.883,33.3833,179.849,-72.2324],[2092.87,-600.435,32.7833,175.692,-71.6444],[2059.55,-501.718,32.1833,171.487,-71.0229],[2024.09,-400.524,31.55,167,-70.327],[1988.34,-302.465,30.9167,162.468,-69.5867],[1949.46,-200.233,30.2333,157.53,-68.733],[1910.26,-101.762,29.55,152.549,-67.8163],[1867.85,-0.331893,28.8167,147.163,-66.7546],[1824.11,98.7872,28.0667,141.62,-65.5753],[1777.07,199.291,27.2667,135.681,-64.1995],[1727.66,298.163,26.4333,129.482,-62.6186],[1672.83,399.958,25.5167,122.673,-60.6787],[1614.51,499.283,24.55,115.54,-58.3659],[1549.58,599.178,23.4833,107.782,-55.4348],[1475.85,699.203,22.2833,99.2915,-51.561],[1389,799.106,20.8833,89.8946,-46.0854],[1277.16,899.752,19.1,79.201,-37.2255],[1088.51,999.935,16.1333,66.9623,-16.8167],[960.751,1019.36,14.15,64.7317,-0.0161137]]], + [65,1036.14,[[2399.52,-2003.46,40.25,222.567,-77.5897],[2377.12,-1902.67,39.7833,219.83,-77.3323],[2354.53,-1803.24,39.3167,217.055,-77.0664],[2330.96,-1701.71,38.8333,214.14,-76.7813],[2307.21,-1601.67,38.35,211.185,-76.4861],[2283.27,-1503.17,37.8667,208.19,-76.1801],[2258.31,-1402.89,37.3667,205.049,-75.8515],[2232.31,-1301.03,36.85,201.76,-75.4984],[2206.11,-1201,36.3333,198.426,-75.1305],[2179.7,-1102.81,35.8167,195.048,-74.7471],[2151.37,-1000.35,35.2667,191.406,-74.3206],[2122.81,-900.043,34.7167,187.716,-73.8739],[2094.02,-801.929,34.1667,183.98,-73.4055],[2063.25,-700.297,33.5833,179.969,-72.8832],[2032.23,-601.205,33,175.91,-72.3326],[2000.08,-501.969,32.4,171.686,-71.7343],[1965.86,-400.222,31.7667,167.177,-71.0644],[1931.37,-301.604,31.1333,162.619,-70.3514],[1894.77,-201.229,30.4667,157.774,-69.5498],[1856.95,-102.052,29.7833,152.761,-68.668],[1816.97,-2.1303,29.0667,147.46,-67.6705],[1774.78,97.8827,28.3167,141.874,-66.5372],[1729.4,199.35,27.5167,135.882,-65.2144],[1681.73,299.234,26.6833,129.621,-63.6934],[1630.78,398.541,25.8,122.983,-61.8969],[1574.53,499.348,24.8333,115.751,-59.6761],[1512.9,599.388,23.7833,107.984,-56.9042],[1443.79,698.815,22.6167,99.5473,-53.2896],[1362.06,799.343,21.25,90.0924,-48.1626],[1259.34,899.999,19.55,79.3828,-40.0662],[1102.28,999.854,16.9833,67.0656,-23.2549],[933.77,1036.14,14.2667,62.4328,-0.0120817]]], + [66,1052.45,[[2321.37,-2000.58,40.4167,222.648,-78.049],[2300.54,-1903.16,39.9667,220.003,-77.8101],[2278.78,-1803.46,39.5,217.222,-77.5542],[2256.07,-1701.65,39.0167,214.301,-77.28],[2233.18,-1601.34,38.5333,211.339,-76.9959],[2210.1,-1502.56,38.05,208.336,-76.7014],[2186.05,-1401.98,37.55,205.187,-76.3852],[2161.81,-1303.09,37.05,201.995,-76.0565],[2136.57,-1202.68,36.5333,198.653,-75.703],[2110.3,-1100.97,36,195.155,-75.3222],[2083.83,-1001.26,35.4667,191.612,-74.9244],[2056.31,-900.546,34.9167,187.91,-74.4949],[2028.58,-802.022,34.3667,184.16,-74.0445],[1999.78,-702.834,33.8,180.249,-73.557],[1969.05,-600.417,33.2,176.057,-73.0127],[1938.07,-500.722,32.6,171.813,-72.4372],[1905.97,-401.136,31.9833,167.402,-71.8101],[1872.75,-301.941,31.35,162.821,-71.1251],[1837.49,-200.952,30.6833,157.949,-70.3547],[1801.06,-101.141,30,152.905,-69.507],[1762.55,-0.547648,29.2833,147.568,-68.5477],[1722.81,97.9876,28.55,142.064,-67.4826],[1680.02,198.254,27.7667,136.148,-66.2393],[1634.12,299.179,26.9333,129.827,-64.7798],[1585.04,399.6,26.05,123.116,-63.0544],[1531.82,499.949,25.1,115.916,-60.9581],[1473.42,599.96,24.0667,108.152,-58.3396],[1407.84,699.895,22.9167,99.67,-54.9193],[1332.06,799.38,21.6,90.3102,-50.1835],[1238.07,899.387,19.9833,79.6699,-42.8247],[1100.83,999.968,17.65,67.2093,-28.2706],[905.942,1052.45,14.3833,60.1141,-0.0457994]]], + [67,1068.26,[[2242.32,-2002.75,40.6,222.859,-78.5229],[2221.54,-1901.47,40.1333,220.111,-78.2849],[2200.61,-1801.55,39.6667,217.324,-78.0389],[2179.51,-1703,39.2,214.497,-77.7846],[2157.49,-1602.4,38.7167,211.529,-77.5118],[2135.3,-1503.32,38.2333,208.519,-77.2291],[2112.17,-1402.44,37.7333,205.362,-76.9255],[2088.85,-1303.23,37.2333,202.162,-76.6099],[2064.57,-1202.5,36.7167,198.81,-76.2703],[2039.31,-1100.45,36.1833,195.303,-75.9047],[2013.84,-1000.4,35.65,191.748,-75.5226],[1988.18,-902.364,35.1167,188.146,-75.1228],[1960.7,-800.451,34.55,184.27,-74.6774],[1933,-700.89,33.9833,180.343,-74.209],[1904.26,-600.895,33.4,176.251,-73.7009],[1874.47,-500.722,32.8,171.99,-73.1485],[1843.6,-400.641,32.1833,167.558,-72.5467],[1811.65,-300.933,31.55,162.954,-71.889],[1778.6,-201.894,30.9,158.178,-71.1684],[1743.57,-101.425,30.2167,153.105,-70.3556],[1706.53,-0.137438,29.5,147.733,-69.4354],[1668.33,99.1157,28.7667,142.19,-68.4133],[1628.06,198.06,28,136.354,-67.2462],[1583.93,299.935,27.1667,129.975,-65.8468],[1537.65,399.521,26.3,123.323,-64.224],[1487.38,499.399,25.3667,116.163,-62.2521],[1432.16,599.368,24.35,108.41,-59.7873],[1370.06,699.794,23.2167,99.894,-56.5633],[1299.09,799.277,21.9333,90.5403,-52.1503],[1211.61,899.908,20.3667,79.8312,-45.3343],[1091.16,999.539,18.2333,67.4591,-32.6676],[877.274,1068.25,14.5,57.7766,-0.122565]]], + [68,1083.55,[[2160.87,-2002.73,40.7667,223.006,-78.9939],[2140.92,-1901.22,40.3,220.252,-78.7658],[2120.82,-1801.05,39.8333,217.459,-78.5299],[2100.57,-1702.27,39.3667,214.627,-78.286],[2079.43,-1601.41,38.8833,211.652,-78.0245],[2058.12,-1502.08,38.4,208.635,-77.7533],[2035.91,-1400.93,37.9,205.47,-77.4621],[2013.52,-1301.46,37.4,202.261,-77.1594],[1990.21,-1200.45,36.8833,198.899,-76.8337],[1966.71,-1101.28,36.3667,195.491,-76.4941],[1942.27,-1000.87,35.8333,191.926,-76.128],[1917.64,-902.482,35.3,188.313,-75.745],[1891.26,-800.185,34.7333,184.424,-75.3181],[1864.67,-700.236,34.1667,180.483,-74.8692],[1837.87,-602.67,33.6,176.492,-74.3965],[1809.28,-502.002,33,172.214,-73.8678],[1779.66,-401.407,32.3833,167.764,-73.2916],[1748.99,-301.167,31.75,163.139,-72.6619],[1717.27,-201.575,31.1,158.338,-71.9718],[1683.65,-100.521,30.4167,153.236,-71.1932],[1648.93,-0.935202,29.7167,147.958,-70.3327],[1612.27,99.0597,28.9833,142.377,-69.3547],[1573.63,198.787,28.2167,136.497,-68.2373],[1532.13,299.525,27.4,130.193,-66.9249],[1488.58,398.264,26.55,123.604,-65.4041],[1440.36,499.396,25.6167,116.362,-63.5199],[1388.26,599.158,24.6167,108.631,-61.203],[1329.57,699.89,23.5,100.096,-58.1687],[1263.28,799.093,22.25,90.7749,-54.066],[1182.08,899.929,20.7333,80.0497,-47.7755],[1073.87,999.64,18.7333,67.6549,-36.4785],[846.844,1083.55,14.6,55.4241,-0.0792798]]], + [69,1098.31,[[2077.11,-2000.51,40.9167,223.088,-79.4629],[2058.69,-1902.42,40.4667,220.428,-79.2524],[2039.43,-1802.01,40,217.63,-79.0268],[2020.03,-1702.97,39.5333,214.792,-78.7935],[1999.78,-1601.85,39.05,211.811,-78.5433],[1979.37,-1502.25,38.5667,208.787,-78.2839],[1958.09,-1400.83,38.0667,205.615,-78.0054],[1936.64,-1301.08,37.5667,202.398,-77.7158],[1915.03,-1203.02,37.0667,199.137,-77.4144],[1891.8,-1100.31,36.5333,195.61,-77.0793],[1869.12,-1002.71,36.0167,192.147,-76.7401],[1844.78,-900.895,35.4667,188.41,-76.3624],[1820.26,-801.252,34.9167,184.622,-75.9662],[1794.79,-700.898,34.35,180.669,-75.5371],[1768.37,-600.08,33.7667,176.545,-75.0715],[1741.74,-501.821,33.1833,172.369,-74.5798],[1713.36,-400.773,32.5667,167.9,-74.0288],[1683.99,-300.063,31.9333,163.253,-73.4266],[1654.39,-202.509,31.3,158.552,-72.7839],[1622.19,-100.848,30.6167,153.424,-72.0402],[1588.95,-0.633917,29.9167,148.115,-71.218],[1554.64,97.7872,29.2,142.626,-70.3053],[1517.64,198.323,28.4333,136.705,-69.239],[1477.9,299.931,27.6167,130.35,-67.9858],[1436.2,399.584,26.7667,123.7,-66.5324],[1390.86,499.972,25.85,116.511,-64.7643],[1341.81,599.366,24.8667,108.812,-62.5898],[1287.31,698.779,23.7833,100.398,-59.7855],[1224.72,798.883,22.55,91.0071,-55.9335],[1149.59,899.525,21.0833,80.3147,-50.1489],[1051.27,999.705,19.1833,67.864,-39.9622],[815.659,1098.31,14.7,53.053,-0.0766958]]], + [70,1112.51,[[1992.47,-2003.45,41.0833,223.302,-79.9453],[1974.21,-1901.49,40.6167,220.539,-79.7369],[1955.8,-1800.87,40.15,217.735,-79.5214],[1937.25,-1701.62,39.6833,214.892,-79.2987],[1917.89,-1600.28,39.2,211.904,-79.0597],[1898.38,-1500.45,38.7167,208.873,-78.812],[1878.72,-1402.16,38.2333,205.8,-78.5549],[1858.23,-1302.12,37.7333,202.576,-78.2787],[1836.88,-1200.51,37.2167,199.197,-77.9814],[1815.37,-1100.74,36.7,195.771,-77.6714],[1793.69,-1002.83,36.1833,192.299,-77.3478],[1770.44,-900.678,35.6333,188.551,-76.9874],[1747,-800.696,35.0833,184.752,-76.6092],[1723.38,-702.92,34.5333,180.902,-76.2121],[1698.13,-601.664,33.95,176.765,-75.7684],[1671.96,-500.181,33.35,172.454,-75.2859],[1645.58,-401.444,32.75,168.087,-74.7744],[1617.51,-300.244,32.1167,163.421,-74.2002],[1589.22,-202.197,31.4833,158.699,-73.5873],[1559.21,-102.446,30.8167,153.671,-72.8958],[1527.45,-1.58063,30.1167,148.333,-72.1127],[1493.91,99.7676,29.3833,142.682,-71.2221],[1459.32,198.777,28.6333,136.849,-70.2268],[1422.14,299.133,27.8333,130.577,-69.0574],[1382.31,399.73,26.9833,123.87,-67.6734],[1339.78,499.367,26.0833,116.741,-66.0208],[1293.73,598.387,25.1167,109.081,-63.9883],[1241.68,699.362,24.0333,100.544,-61.3208],[1182.72,799.98,22.8167,91.1031,-57.7013],[1113.43,899.826,21.4,80.4946,-52.3856],[1024.54,999.399,19.6,68.1263,-43.2407],[863.696,1099.94,16.3833,52.7099,-17.1994],[783.726,1112.51,14.8,50.6639,-0.12125]]], + [71,1126.14,[[1904.99,-2000.57,41.2167,223.354,-80.4185],[1888.2,-1902.06,40.7667,220.685,-80.2271],[1870.65,-1801.22,40.3,217.876,-80.022],[1852.97,-1701.74,39.8333,215.027,-79.8099],[1834.52,-1600.17,39.35,212.034,-79.5823],[1815.91,-1500.11,38.8667,208.997,-79.3465],[1797.17,-1401.58,38.3833,205.917,-79.1017],[1777.63,-1301.29,37.8833,202.686,-78.8386],[1757.94,-1202.68,37.3833,199.409,-78.5648],[1737.44,-1102.59,36.8667,195.975,-78.27],[1716.11,-1001.21,36.3333,192.381,-77.952],[1694.61,-901.849,35.8,188.737,-77.6193],[1672.27,-801.515,35.25,184.927,-77.2596],[1649.07,-700.443,34.6833,180.948,-76.87],[1625.69,-601.744,34.1167,176.915,-76.4595],[1601.44,-502.658,33.5333,172.709,-76.0135],[1575.6,-400.728,32.9167,168.205,-75.5136],[1549.55,-301.736,32.3,163.643,-74.9818],[1521.88,-200.625,31.65,158.775,-74.3834],[1493.27,-100.417,30.9833,153.722,-73.7247],[1463.72,-1.43462,30.3,148.483,-72.9972],[1432.48,98.2577,29.5833,142.93,-72.17],[1399.53,198.003,28.8333,137.061,-71.2248],[1364.1,299.153,28.0333,130.744,-70.1136],[1326.89,398.672,27.2,124.115,-68.825],[1286.38,499.351,26.3,116.919,-67.256],[1242.5,599.499,25.3333,109.174,-65.3242],[1194.44,698.764,24.2833,100.786,-62.8693],[1139.05,799.889,23.0833,91.3101,-59.4853],[1074.62,899.904,21.7,80.6941,-54.5664],[993.123,999.798,19.9667,68.2911,-46.2291],[861.564,1099.66,17.2,52.9269,-25.3266],[750.245,1126.14,14.8833,48.2597,-0.0262979]]], + [72,1139.19,[[1816.65,-2002.89,41.3667,223.539,-80.9044],[1800.09,-1900.53,40.9,220.766,-80.7158],[1784.01,-1803.09,40.45,218.054,-80.528],[1767.2,-1703.38,39.9833,215.201,-80.3268],[1749.66,-1601.56,39.5,212.202,-80.1108],[1731.98,-1501.25,39.0167,209.16,-79.8869],[1714.16,-1402.47,38.5333,206.074,-79.6547],[1695.59,-1301.91,38.0333,202.836,-79.4049],[1676.87,-1203.04,37.5333,199.552,-79.1451],[1657.38,-1102.68,37.0167,196.111,-78.8652],[1637.1,-1001.01,36.4833,192.508,-78.5634],[1616.67,-901.358,35.95,188.853,-78.2475],[1595.43,-800.722,35.4,185.033,-77.906],[1574.03,-702.284,34.85,181.159,-77.5472],[1551.16,-600.32,34.2667,176.995,-77.1462],[1528.1,-500.904,33.6833,172.774,-76.7225],[1504.2,-401.348,33.0833,168.376,-76.2609],[1479.45,-301.923,32.4667,163.797,-75.7565],[1453.15,-200.349,31.8167,158.908,-75.1887],[1426.64,-102.137,31.1667,153.959,-74.5799],[1397.88,-0.186114,30.4667,148.567,-73.8731],[1368.88,97.7473,29.7667,143.113,-73.1068],[1337.57,198.15,29.0167,137.208,-72.2107],[1304.6,297.941,28.2333,130.982,-71.1798],[1269.25,398.324,27.4,124.303,-69.9596],[1230.76,499.944,26.5,117.044,-68.4727],[1189.79,599.439,25.55,109.353,-66.6738],[1144.13,699.981,24.5,100.859,-64.3473],[1092.97,799.907,23.3333,91.4978,-61.231],[1033.26,899.812,21.9833,80.9054,-56.6941],[958.863,999.522,20.3167,68.5436,-49.1353],[845.323,1099.79,17.8,53.1116,-31.3336],[716.871,1139.19,14.9833,45.8356,-0.178745]]], + [73,1151.63,[[1726.26,-2003.1,41.5,223.661,-81.3887],[1710.57,-1900.54,41.0333,220.884,-81.2103],[1695.33,-1802.91,40.5833,218.167,-81.0325],[1679.4,-1703,40.1167,215.309,-80.8419],[1662.77,-1600.98,39.6333,212.305,-80.6375],[1646.02,-1500.47,39.15,209.257,-80.4256],[1629.13,-1401.47,38.6667,206.165,-80.2056],[1611.53,-1300.7,38.1667,202.92,-79.9692],[1593.79,-1201.61,37.6667,199.628,-79.7231],[1575.32,-1101.01,37.15,196.178,-79.458],[1556.71,-1002.26,36.6333,192.679,-79.1813],[1537.35,-902.301,36.1,189.016,-78.8825],[1517.23,-801.347,35.55,185.186,-78.5595],[1496.95,-702.589,35,181.302,-78.2201],[1475.27,-600.281,34.4167,177.125,-77.8408],[1453.43,-500.519,33.8333,172.891,-77.4399],[1430.79,-400.603,33.2333,168.477,-77.0031],[1407.33,-300.804,32.6167,163.88,-76.5257],[1383.05,-201.406,31.9833,159.099,-76.0025],[1357.3,-100.22,31.3167,154.001,-75.4118],[1330.69,-0.225789,30.6333,148.712,-74.7589],[1303.22,98.2424,29.9333,143.23,-74.0341],[1273.56,199.223,29.1833,137.291,-73.1864],[1242.33,299.624,28.4,131.025,-72.2108],[1209.51,398.698,27.5833,124.432,-71.0795],[1173.72,499.329,26.7,117.249,-69.7012],[1134.92,599.862,25.75,109.484,-68.0026],[1093.06,698.487,24.7333,101.163,-65.8784],[1045.32,798.705,23.5833,91.7973,-62.9884],[989.484,899.598,22.25,81.1219,-58.772],[921.174,999.545,20.6333,68.7482,-51.8742],[821.585,1099.84,18.3,53.3214,-36.4287],[682.045,1151.63,15.0667,43.3972,-0.189477]]], + [74,1163.45,[[1633.92,-2001.19,41.6167,223.72,-81.8724],[1619.64,-1902.12,41.1667,221.038,-81.7101],[1604.71,-1800.7,40.7,218.216,-81.5361],[1589.67,-1700.63,40.2333,215.353,-81.3562],[1574.51,-1601.94,39.7667,212.447,-81.17],[1558.69,-1501.2,39.2833,209.394,-80.9702],[1542.74,-1401.99,38.8,206.296,-80.7627],[1526.12,-1300.98,38.3,203.045,-80.5398],[1509.37,-1201.66,37.8,199.747,-80.3077],[1491.93,-1100.82,37.2833,196.29,-80.0577],[1474.36,-1001.82,36.7667,192.782,-79.7967],[1456.08,-901.605,36.2333,189.111,-79.5149],[1437.08,-800.384,35.6833,185.27,-79.2101],[1417.93,-701.356,35.1333,181.375,-78.8899],[1398.05,-601.656,34.5667,177.306,-78.5425],[1377.43,-501.529,33.9833,173.06,-78.1648],[1356.05,-401.235,33.3833,168.632,-77.7532],[1333.91,-301.043,32.7667,164.02,-77.3033],[1310.99,-201.238,32.1333,159.22,-76.8101],[1287.29,-102.117,31.4833,154.231,-76.2677],[1262.17,-1.58269,30.8,148.919,-75.6532],[1235.62,99.7524,30.0833,143.28,-74.954],[1208.24,199.029,29.35,137.442,-74.1727],[1179.39,297.971,28.5833,131.274,-73.2741],[1147.78,399.811,27.75,124.502,-72.1873],[1114.64,499.323,26.8833,117.399,-70.9132],[1078.67,599.079,25.95,109.702,-69.3435],[1039.17,698.865,24.9333,101.291,-67.3455],[994.765,799.023,23.8,91.9363,-64.6655],[943.402,899.307,22.5,81.337,-60.8035],[880.959,999.108,20.9333,69.0062,-54.541],[792.424,1099.78,18.7333,53.5497,-40.9567],[645.895,1163.45,15.1333,40.944,-0.0337111]]], + [75,1174.64,[[1540.27,-2000.88,41.7333,223.814,-82.3616],[1526.83,-1901.65,41.2833,221.129,-82.2091],[1512.79,-1800.05,40.8167,218.303,-82.0456],[1499.14,-1703.37,40.3667,215.538,-81.8826],[1484.38,-1600.96,39.8833,212.524,-81.7014],[1469.5,-1500.04,39.4,209.465,-81.5136],[1454.5,-1400.64,38.9167,206.362,-81.3186],[1439.39,-1302.8,38.4333,203.213,-81.1161],[1423.64,-1203.22,37.9333,199.91,-80.8982],[1407.24,-1102.12,37.4167,196.446,-80.6635],[1390.71,-1002.87,36.9,192.932,-80.4185],[1373.52,-902.379,36.3667,189.252,-80.1539],[1355.66,-800.875,35.8167,185.403,-79.8677],[1337.65,-701.561,35.2667,181.498,-79.567],[1318.95,-601.564,34.7,177.419,-79.2407],[1299.56,-501.129,34.1167,173.16,-78.886],[1279.46,-400.514,33.5167,168.719,-78.4993],[1259.2,-302.668,32.9167,164.217,-78.0884],[1237.65,-202.436,32.2833,159.401,-77.6258],[1214.79,-100.364,31.6167,154.264,-77.1034],[1191.75,-1.86789,30.95,149.06,-76.5403],[1166.79,99.9648,30.2333,143.396,-75.884],[1141.04,199.755,29.5,137.529,-75.1504],[1113.92,299.239,28.7333,131.325,-74.3064],[1084.79,399.683,27.9167,124.647,-73.3066],[1053.64,499.945,27.05,117.494,-72.1112],[1020.43,598.787,26.1333,109.871,-70.6654],[983.293,699.62,25.1167,101.377,-68.7918],[942.173,799.55,24,92.0444,-66.3149],[895.141,898.983,22.7333,81.5454,-62.7921],[837.716,999.243,21.2,69.1765,-57.0636],[758.965,1099.62,19.1167,53.7919,-45.0894],[609.836,1174.64,15.2167,38.4731,-0.16674]]], + [76,1185.18,[[1445.31,-2002.17,41.85,223.945,-82.8558],[1432.73,-1902.77,41.4,221.257,-82.7131],[1419.58,-1801,40.9333,218.427,-82.5602],[1406.34,-1700.58,40.4667,215.555,-82.4021],[1392.99,-1601.54,40,212.641,-82.2384],[1379.05,-1500.43,39.5167,209.578,-82.0627],[1365.01,-1400.84,39.0333,206.469,-81.8804],[1350.87,-1302.8,38.55,203.315,-81.691],[1336.12,-1203.02,38.05,200.006,-81.4872],[1320.77,-1101.71,37.5333,196.535,-81.2677],[1305.29,-1002.24,37.0167,193.014,-81.0385],[1289.2,-901.529,36.4833,189.326,-80.791],[1272.98,-802.843,35.95,185.585,-80.5315],[1255.61,-700.244,35.3833,181.553,-80.2419],[1238.11,-600.003,34.8167,177.462,-79.9366],[1220.47,-502.156,34.25,173.314,-79.6143],[1201.66,-401.202,33.65,168.861,-79.253],[1182.16,-300.326,33.0333,164.219,-78.858],[1162.52,-202.417,32.4167,159.514,-78.4367],[1141.66,-102.475,31.7667,154.488,-77.9609],[1119.56,-1.0707,31.0833,149.134,-77.4218],[1096.73,98.8558,30.3833,143.578,-76.8229],[1072.64,199.186,29.65,137.685,-76.138],[1047.25,299.239,28.8833,131.449,-75.3497],[1020.55,398.29,28.0833,124.87,-74.4356],[991.4,499.333,27.2167,117.67,-73.3207],[960.32,599.009,26.3,109.989,-71.9711],[926.142,699.182,25.3,101.557,-70.2516],[888.243,798.892,24.2,92.2592,-67.9783],[844.24,899.898,22.9333,81.6026,-64.6926],[792.274,999.099,21.45,69.3733,-59.5284],[721.574,1099.75,19.45,53.9748,-48.8611],[572.554,1185.18,15.2833,35.9884,-0.128419]]], + [77,1195.05,[[1348.64,-2001.4,41.95,224.014,-83.3498],[1336.93,-1901.86,41.5,221.322,-83.2169],[1325.12,-1803.56,41.05,218.59,-83.0798],[1312.78,-1702.95,40.5833,215.716,-82.9327],[1299.91,-1600.2,40.1,212.693,-82.775],[1287.38,-1502.41,39.6333,209.731,-82.6172],[1274.3,-1402.61,39.15,206.619,-82.4476],[1260.68,-1301,38.65,203.351,-82.2653],[1246.94,-1201.06,38.15,200.035,-82.0756],[1233.1,-1102.83,37.65,196.67,-81.8779],[1218.69,-1003.13,37.1333,193.143,-81.6647],[1203.7,-902.18,36.6,189.448,-81.4345],[1188.12,-800.195,36.05,185.581,-81.1854],[1172.42,-700.396,35.5,181.658,-80.9238],[1156.61,-602.816,34.95,177.68,-80.6483],[1139.7,-501.784,34.3667,173.4,-80.34],[1122.18,-400.55,33.7667,168.934,-80.0038],[1104.52,-302.078,33.1667,164.405,-79.6465],[1085.73,-201.18,32.5333,159.558,-79.244],[1066.3,-100.926,31.8833,154.515,-78.8012],[1046.22,-1.62605,31.2167,149.273,-78.3119],[1024.97,98.7382,30.5167,143.695,-77.7553],[1002.54,199.531,29.7833,137.776,-77.1184],[979.413,297.94,29.0333,131.648,-76.402],[954.036,399.637,28.2167,124.896,-75.5348],[927.415,499.349,27.3667,117.791,-74.5179],[898.479,599.76,26.45,110.055,-73.2635],[867.192,699.131,25.4667,101.693,-71.6925],[831.912,799.903,24.3667,92.2982,-69.5801],[792.032,899.644,23.1333,81.7807,-66.6103],[744.212,999.746,21.6667,69.4514,-61.8749],[681.171,1099.78,19.75,54.1634,-52.4185],[534.74,1195.05,15.35,33.4889,-0.160852]]], + [78,1204.25,[[1250.8,-2002.27,42.05,224.12,-83.8485],[1239.95,-1902.58,41.6,221.425,-83.7257],[1228.62,-1800.52,41.1333,218.589,-83.5941],[1217.6,-1703.38,40.6833,215.812,-83.4628],[1205.68,-1600.46,40.2,212.786,-83.3169],[1194.08,-1502.51,39.7333,209.82,-83.1709],[1181.98,-1402.55,39.25,206.703,-83.0141],[1169.36,-1300.77,38.75,203.43,-82.8455],[1156.65,-1200.66,38.25,200.109,-82.6699],[1143.84,-1102.25,37.75,196.738,-82.487],[1130.5,-1002.37,37.2333,193.204,-82.2898],[1116.62,-901.225,36.7,189.502,-82.0768],[1102.64,-802.107,36.1667,185.746,-81.8536],[1088.11,-702.041,35.6167,181.816,-81.6118],[1073.02,-601.262,35.05,177.708,-81.3494],[1057.37,-500.015,34.4667,173.417,-81.064],[1041.6,-401.338,33.8833,169.064,-80.7617],[1025.25,-302.564,33.2833,164.524,-80.4314],[1007.86,-201.344,32.65,159.663,-80.0595],[989.882,-100.756,32,154.605,-79.6501],[971.294,-1.11066,31.3333,149.344,-79.1977],[951.626,99.6196,30.6333,143.746,-78.6829],[931.334,198.549,29.9167,137.939,-78.1078],[909.457,299.606,29.15,131.646,-77.4308],[886.45,399.715,28.35,124.999,-76.6451],[862.298,498.103,27.5167,117.994,-75.7249],[835.523,599.282,26.6,110.209,-74.5679],[806.572,699.486,25.6167,101.783,-73.1175],[774.421,799.739,24.5333,92.4422,-71.1973],[738.024,899.461,23.3167,81.939,-68.4964],[694.792,999.206,21.8833,69.6773,-64.2385],[638.007,1099.89,20.0167,54.3241,-55.7807],[524.768,1199.92,16.3333,32.2282,-16.4603],[496.405,1204.25,15.4167,30.9753,-0.282044]]], + [79,1212.76,[[1151.44,-2001.09,42.1333,224.165,-84.3475],[1141.47,-1901.29,41.6833,221.467,-84.2346],[1131.42,-1802.74,41.2333,218.728,-84.1181],[1120.92,-1701.86,40.7667,215.846,-83.9931],[1110.34,-1602.35,40.3,212.92,-83.8637],[1099.3,-1500.75,39.8167,209.845,-83.7248],[1088.17,-1400.67,39.3333,206.723,-83.5806],[1076.96,-1302.12,38.85,203.555,-83.4309],[1065.28,-1201.83,38.35,200.229,-83.2698],[1053.5,-1103.23,37.85,196.853,-83.1019],[1041.24,-1003.15,37.3333,193.314,-82.9208],[1028.49,-901.803,36.8,189.606,-82.7252],[1015.63,-802.478,36.2667,185.843,-82.5202],[1002.28,-702.197,35.7167,181.906,-82.2982],[988.411,-601.193,35.15,177.789,-82.0573],[974.438,-502.577,34.5833,173.613,-81.8029],[959.529,-400.801,33.9833,169.126,-81.5176],[944.505,-301.783,33.3833,164.574,-81.2142],[928.524,-200.302,32.75,159.701,-80.8726],[912.42,-101.99,32.1167,154.758,-80.5064],[895.339,-1.97651,31.45,149.482,-80.0915],[877.264,99.1438,30.75,143.866,-79.6192],[858.616,198.477,30.0333,138.038,-79.0915],[838.511,299.969,29.2667,131.719,-78.4702],[817.81,398.496,28.4833,125.181,-77.7646],[795.172,499.405,27.6333,118,-76.9034],[771.015,599.334,26.7333,110.31,-75.8605],[744.865,698.623,25.7667,101.969,-74.5541],[715.327,799.845,24.6833,92.5482,-72.7951],[682.346,899.376,23.4833,82.0742,-70.3548],[643.094,999.582,22.0667,69.7664,-66.5007],[592.802,1099.47,20.2667,54.5644,-59.0586],[502.522,1199.94,17.0667,32.43,-29.0653],[457.086,1212.76,15.4667,28.4487,-0.187262]]], + [80,1220.57,[[1051.04,-2001.58,42.2167,224.247,-84.851],[1041.95,-1901.66,41.7667,221.546,-84.7482],[1032.79,-1802.99,41.3167,218.805,-84.642],[1023.22,-1701.98,40.85,215.92,-84.5282],[1013.58,-1602.34,40.3833,212.991,-84.4103],[1003.51,-1500.6,39.9,209.912,-84.2838],[993.371,-1400.39,39.4167,206.786,-84.1525],[983.152,-1301.71,38.9333,203.614,-84.0161],[972.499,-1201.26,38.4333,200.283,-83.8693],[961.765,-1102.52,37.9333,196.902,-83.7163],[950.589,-1002.29,37.4167,193.358,-83.5514],[938.963,-900.789,36.8833,189.643,-83.3732],[927.248,-801.305,36.35,185.874,-83.1864],[915.074,-700.858,35.8,181.929,-82.9841],[902.807,-602.626,35.25,177.926,-82.7712],[889.697,-500.894,34.6667,173.618,-82.5327],[876.486,-401.729,34.0833,169.246,-82.28],[862.795,-302.448,33.4833,164.685,-82.0039],[848.23,-200.687,32.85,159.8,-81.693],[833.554,-102.091,32.2167,154.844,-81.3597],[817.987,-1.77779,31.55,149.554,-80.9819],[801.515,99.6608,30.85,143.92,-80.5519],[784.52,199.322,30.1333,138.072,-80.0712],[766.597,299.008,29.3833,131.868,-79.5181],[747.734,398.013,28.6,125.304,-78.8766],[727.106,499.444,27.75,118.089,-78.0932],[705.093,599.932,26.85,110.357,-77.144],[681.265,699.825,25.8833,101.962,-75.9541],[655.18,798.754,24.8333,92.7611,-74.4043],[625.134,899.418,23.6333,82.1834,-72.1893],[589.797,999.887,22.2333,69.8524,-68.7289],[545.26,1099.37,20.4833,54.7324,-62.171],[470.352,1199.67,17.5667,32.7248,-37.9771],[417.351,1220.57,15.5167,25.9092,-0.175424]]], + [81,1227.67,[[949.334,-2000.04,42.2833,224.268,-85.3552],[941.132,-1900.04,41.8333,221.565,-85.2624],[932.867,-1801.28,41.3833,218.82,-85.1666],[924.231,-1700.18,40.9167,215.932,-85.0639],[915.528,-1600.45,40.45,212.999,-84.9575],[906.76,-1502.11,39.9833,210.023,-84.8474],[897.61,-1401.74,39.5,206.894,-84.7291],[888.39,-1302.91,39.0167,203.718,-84.6061],[878.779,-1202.31,38.5167,200.384,-84.4738],[868.771,-1100.14,38,196.886,-84.3312],[859.012,-1003.02,37.5,193.45,-84.1873],[848.524,-901.34,36.9667,189.731,-84.0267],[837.954,-801.682,36.4333,185.956,-83.8583],[826.971,-701.054,35.8833,182.005,-83.676],[815.904,-602.638,35.3333,177.995,-83.484],[804.077,-500.711,34.75,173.679,-83.269],[792.158,-401.349,34.1667,169.3,-83.0412],[779.805,-301.863,33.5667,164.728,-82.7923],[767.013,-202.527,32.95,159.962,-82.5194],[753.425,-101.068,32.3,154.865,-82.2112],[739.38,-0.521045,31.6333,149.56,-81.8705],[724.874,98.7903,30.95,144.045,-81.4921],[709.544,198.806,30.2333,138.179,-81.0593],[693.377,298.866,29.4833,131.955,-80.561],[676.362,398.265,28.7,125.366,-79.9831],[658.12,498.191,27.8667,118.264,-79.2917],[638.267,599.272,26.9667,110.496,-78.4379],[616.775,699.809,26,102.053,-77.367],[593.248,799.442,24.95,92.7876,-75.9708],[566.526,899.6,23.7667,82.2644,-74.0035],[535.419,999.037,22.4,70.08,-70.9706],[495.645,1099.73,20.6667,54.8063,-65.1435],[432.369,1199.79,17.9333,32.886,-45.0201],[377.215,1227.67,15.5667,23.3577,-0.27487]]], + [82,1234.06,[[846.727,-2000.21,42.35,224.329,-85.8635],[839.418,-1900.11,41.9,221.623,-85.781],[832.054,-1801.25,41.45,218.876,-85.6957],[824.359,-1700.05,40.9833,215.985,-85.6042],[816.606,-1600.21,40.5167,213.049,-85.5094],[808.793,-1501.77,40.05,210.07,-85.4113],[800.64,-1401.29,39.5667,206.938,-85.3059],[792.425,-1302.35,39.0833,203.758,-85.1965],[783.862,-1201.64,38.5833,200.42,-85.0786],[775.233,-1102.62,38.0833,197.031,-84.9558],[766.249,-1002.11,37.5667,193.477,-84.8233],[756.904,-900.312,37.0333,189.753,-84.6803],[747.487,-800.528,36.5,185.972,-84.5303],[737.998,-702.791,35.9667,182.135,-84.3729],[727.84,-601.223,35.4,177.998,-84.1968],[717.604,-502.036,34.8333,173.799,-84.0109],[706.986,-402.458,34.25,169.412,-83.8082],[695.675,-300.018,33.6333,164.705,-83.5805],[684.277,-200.531,33.0167,159.928,-83.3372],[672.482,-101.474,32.3833,154.95,-83.0697],[659.971,-0.671052,31.7167,149.634,-82.7665],[647.048,98.9051,31.0333,144.105,-82.4298],[633.391,199.201,30.3167,138.223,-82.0445],[618.988,299.557,29.5667,131.98,-81.6009],[603.83,399.267,28.7833,125.368,-81.0861],[587.58,499.526,27.95,118.238,-80.4701],[570.222,599.157,27.0667,110.58,-79.724],[551.41,698.56,26.1167,102.242,-78.789],[530.457,798.94,25.0667,92.9202,-77.5497],[506.657,899.948,23.8833,82.3152,-75.8012],[479.292,999.257,22.5333,70.151,-73.1377],[444.555,1099.79,20.8333,54.9158,-68.0659],[390.973,1199.82,18.2333,33.0576,-51.2524],[336.34,1234.06,15.6,20.7949,-0.0768216]]], + [83,1239.71,[[743.268,-2002.08,42.4167,224.427,-86.3755],[736.86,-1901.88,41.9667,221.72,-86.3031],[730.403,-1802.91,41.5167,218.972,-86.2283],[723.656,-1701.6,41.05,216.079,-86.1482],[716.857,-1601.65,40.5833,213.142,-86.0652],[710.007,-1503.09,40.1167,210.161,-85.9793],[702.858,-1402.5,39.6333,207.026,-85.887],[695.406,-1300.05,39.1333,203.734,-85.7876],[688.147,-1202.6,38.65,200.504,-85.6878],[680.328,-1100.18,38.1333,196.998,-85.5765],[672.703,-1002.81,37.6333,193.554,-85.4642],[664.509,-900.867,37.1,189.826,-85.3388],[656.252,-800.943,36.5667,186.041,-85.2074],[647.672,-700.038,36.0167,182.078,-85.0651],[639.026,-601.343,35.4667,178.057,-84.9152],[630.05,-502.003,34.9,173.851,-84.7522],[620.74,-402.265,34.3167,169.458,-84.5747],[611.091,-302.39,33.7167,164.871,-84.3806],[601.098,-202.65,33.1,160.088,-84.1678],[590.484,-100.761,32.45,154.97,-83.9274],[579.789,-2.24985,31.8,149.776,-83.6685],[568.46,97.6146,31.1167,144.237,-83.3738],[556.486,198.216,30.4,138.342,-83.0366],[543.86,298.894,29.65,132.083,-82.6483],[530.57,398.944,28.8667,125.452,-82.1976],[516.324,499.57,28.0333,118.298,-81.6582],[501.106,599.591,27.15,110.611,-81.0046],[484.613,699.417,26.2,102.235,-80.1851],[466.536,798.747,25.1667,93.0116,-79.1169],[445.968,899.13,24,82.4854,-77.6104],[421.981,999.474,22.65,70.2091,-75.2828],[392.132,1099.59,20.9833,55.0552,-70.9407],[346.985,1199.74,18.4833,33.2393,-56.949],[295.477,1239.71,15.65,18.2219,-0.485101]]], + [84,1244.63,[[638.81,-2001.95,42.4667,224.466,-86.8879],[633.307,-1901.67,42.0167,221.757,-86.8258],[627.761,-1802.63,41.5667,219.007,-86.7617],[621.966,-1701.24,41.1,216.112,-86.6929],[616.127,-1601.22,40.6333,213.172,-86.6217],[610.243,-1502.59,40.1667,210.189,-86.5478],[604.103,-1401.91,39.6833,207.052,-86.4685],[597.916,-1302.77,39.2,203.867,-86.3862],[591.467,-1201.85,38.7,200.523,-86.2976],[584.969,-1102.62,38.2,197.127,-86.2051],[578.203,-1001.89,37.6833,193.566,-86.1054],[571.386,-903.013,37.1667,189.951,-86.0012],[564.295,-802.933,36.6333,186.163,-85.8886],[556.927,-701.866,36.0833,182.197,-85.7665],[549.276,-600.046,35.5167,178.049,-85.634],[541.567,-500.605,34.95,173.837,-85.494],[533.571,-400.763,34.3667,169.437,-85.3415],[525.283,-300.78,33.7667,164.843,-85.1747],[516.701,-200.929,33.15,160.051,-84.992],[507.819,-101.496,32.5167,155.056,-84.7908],[498.398,-0.292667,31.85,149.719,-84.5628],[488.668,99.6973,31.1667,144.168,-84.3094],[478.624,198.137,30.4667,138.397,-84.0266],[467.781,299.059,29.7167,132.124,-83.6934],[456.369,399.367,28.9333,125.476,-83.3065],[444.381,498.31,28.1167,118.446,-82.8533],[431.314,598.756,27.2333,110.734,-82.2935],[417.153,699.044,26.2833,102.326,-81.5913],[401.632,798.88,25.25,93.0606,-80.6753],[383.971,899.84,24.0833,82.4726,-79.3824],[363.631,999.714,22.75,70.252,-77.4096],[338.518,1099.17,21.1167,55.2191,-73.7707],[300.8,1199.83,18.6833,33.3505,-62.1911],[253.728,1244.63,15.6667,15.6387,-0.00406967]]], + [85,1248.8,[[533.669,-2003.55,42.5167,224.544,-87.4036],[529.075,-1903.19,42.0667,221.834,-87.3517],[524.274,-1800.42,41.6,218.981,-87.2962],[519.609,-1702.6,41.15,216.187,-87.2407],[514.734,-1602.49,40.6833,213.247,-87.1814],[509.647,-1500.26,40.2,210.154,-87.1177],[504.697,-1403,39.7333,207.123,-87.0537],[499.354,-1300.37,39.2333,203.826,-86.9825],[494.149,-1202.75,38.75,200.59,-86.911],[488.544,-1100.14,38.2333,197.079,-86.8313],[483.077,-1002.58,37.7333,193.629,-86.7508],[477.202,-900.445,37.2,189.893,-86.661],[471.281,-800.321,36.6667,186.1,-86.5669],[465.316,-702.24,36.1333,182.251,-86.4681],[458.93,-600.304,35.5667,178.098,-86.3575],[452.494,-500.746,35,173.883,-86.2407],[445.819,-400.782,34.4167,169.477,-86.1134],[438.901,-300.672,33.8167,164.878,-85.9743],[431.737,-200.69,33.2,160.08,-85.8217],[424.322,-101.12,32.5667,155.077,-85.6539],[416.655,-2.26252,31.9167,149.867,-85.4685],[408.534,97.9697,31.2333,144.308,-85.2575],[399.951,198.96,30.5167,138.39,-85.016],[391.101,297.854,29.7833,132.244,-84.7442],[381.576,398.449,29,125.583,-84.422],[371.365,499.658,28.1667,118.392,-84.036],[360.664,598.469,27.3,110.804,-83.5777],[348.845,699.114,26.35,102.369,-82.9922],[335.889,799.343,25.3167,93.0669,-82.2281],[321.36,899.388,24.1667,82.5791,-81.1658],[304.384,999.984,22.8333,70.2781,-79.5222],[283.641,1099.43,21.2167,55.2479,-76.5197],[253.03,1199.78,18.85,33.4786,-67.1851],[212.018,1248.8,15.7,13.0473,-0.259951]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 416.655; +_maxRange = 2392.14; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg3.sqf new file mode 100644 index 0000000000..b4584a5bf8 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illlumBtab_HA_chg3.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_illum_time_chg3 +// Ammo: ace_arty_82mm_illum_time +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,898.304,[[4418.42,-2001.85,38.7667,228.597,-67.3061],[4375.62,-1900.61,38.2833,226.125,-66.8408],[4332.46,-1800.83,37.8,223.627,-66.3612],[4288.95,-1702.54,37.3167,221.104,-65.8666],[4243.57,-1602.43,36.8167,218.469,-65.3386],[4196.28,-1500.69,36.3,215.72,-64.7746],[4148.58,-1400.72,35.7833,212.946,-64.1911],[4100.49,-1302.55,35.2667,210.148,-63.5871],[4048.86,-1200.04,34.7167,207.146,-62.9205],[3998.36,-1102.63,34.1833,204.213,-62.2497],[3944.25,-1001.31,33.6167,201.075,-61.5091],[3889.67,-902.283,33.05,197.918,-60.7383],[3833,-802.762,32.4667,194.65,-59.9116],[3772.55,-700.263,31.85,191.181,-58.9987],[3711.57,-600.591,31.2333,187.701,-58.0436],[3648.37,-501.209,30.6,184.119,-57.016],[3582.93,-402.404,29.95,180.442,-55.909],[3513.51,-302.068,29.2667,176.583,-54.6845],[3440.01,-200.791,28.55,172.551,-53.3288],[3364.09,-101.41,27.8167,168.453,-51.8608],[3282.2,-0.0752714,27.0333,164.122,-50.1961],[3197.74,98.1981,26.2333,159.763,-48.3856],[3105.31,198.621,25.3667,155.14,-46.2896],[3004.72,299.636,24.4333,150.307,-43.8647],[2895.75,399.532,23.4333,145.34,-41.0605],[2774.49,499.301,22.3333,140.19,-37.7142],[2634.96,599.602,21.0833,134.834,-33.5628],[2468.97,699.254,19.6167,129.381,-28.2081],[2248.42,799.583,17.7,123.946,-20.4567],[1714.88,898.303,13.2,121.032,-0.044097]]], + [46,928.432,[[4379.67,-2001.9,39.1167,228.882,-67.7782],[4337.66,-1900.18,38.6333,226.4,-67.3226],[4296.77,-1803.35,38.1667,223.978,-66.8694],[4252.6,-1701.13,37.6667,221.355,-66.3687],[4208.05,-1600.52,37.1667,218.707,-65.8516],[4163.14,-1501.52,36.6667,216.032,-65.3173],[4116.34,-1400.96,36.15,213.242,-64.7463],[4069.14,-1302.18,35.6333,210.428,-64.1553],[4020.02,-1202.12,35.1,207.498,-63.523],[3968.92,-1100.98,34.55,204.453,-62.8461],[3917.39,-1001.95,34,201.385,-62.1427],[3863.84,-902.169,33.4333,198.203,-61.3888],[3808.24,-801.864,32.85,194.908,-60.5799],[3750.55,-701.284,32.25,191.502,-59.7113],[3690.73,-600.688,31.6333,187.987,-58.7774],[3628.75,-500.349,31,184.368,-57.7723],[3564.56,-400.551,30.35,180.648,-56.6892],[3498.13,-301.59,29.6833,176.835,-55.5204],[3427.73,-201.439,28.9833,172.842,-54.2261],[3353.29,-100.707,28.25,168.68,-52.791],[3274.71,-0.0483942,27.4833,164.366,-51.1982],[3191.91,99.8406,26.6833,159.922,-49.4278],[3104.81,198.219,25.85,155.375,-47.4574],[3008,299.648,24.9333,150.499,-45.1303],[2904.81,398.788,23.9667,145.54,-42.482],[2789.66,498.721,22.9,140.34,-39.3124],[2658.55,599.089,21.7,134.916,-35.4182],[2503.55,699.779,20.3,129.298,-30.4188],[2308.67,799.526,18.5667,123.67,-23.5544],[1992.96,899.99,15.8167,118.58,-11.3664],[1710.95,928.43,13.4167,118.783,-0.0412016]]], + [47,958.49,[[4338.34,-2003.01,39.4667,229.197,-68.2557],[4297.14,-1900.8,38.9833,226.704,-67.81],[4255.59,-1800.05,38.5,224.184,-67.3505],[4213.69,-1700.76,38.0167,221.637,-66.8767],[4171.46,-1602.96,37.5333,219.065,-66.3879],[4125.94,-1500.1,37.0167,216.287,-65.8479],[4081.51,-1402.22,36.5167,213.572,-65.3074],[4035.23,-1302.83,36,210.742,-64.7295],[3987.05,-1202.12,35.4667,207.794,-64.1112],[3936.94,-1100.32,34.9167,204.729,-63.4492],[3886.4,-1000.62,34.3667,201.639,-62.7611],[3833.89,-900.135,33.8,198.433,-62.0235],[3780.92,-801.953,33.2333,195.206,-61.255],[3724.35,-700.543,32.6333,191.77,-60.4058],[3667.29,-601.789,32.0333,188.318,-59.5177],[3606.52,-500.476,31.4,184.662,-58.5357],[3545.21,-402.211,30.7667,180.998,-57.5048],[3480.1,-302.117,30.1,177.138,-56.3635],[3411.1,-200.762,29.4,173.092,-55.0988],[3339.8,-101.028,28.6833,168.964,-53.7286],[3264.48,-1.0887,27.9333,164.674,-52.2072],[3185.06,98.3773,27.15,160.239,-50.5155],[3099.73,198.597,26.3167,155.593,-48.5918],[3008.36,298.436,25.4333,150.776,-46.4027],[2909.06,398.354,24.4833,145.754,-43.8627],[2798.1,499.661,23.4333,140.445,-40.815],[2675.13,599.442,22.2833,134.998,-37.1681],[2532.56,699.106,20.9667,129.352,-32.5752],[2354.97,799.821,19.35,123.503,-26.3165],[2103.31,899.478,17.1,117.888,-16.5574],[1705.54,958.488,13.6333,116.51,-0.0568588]]], + [48,988.448,[[4293.03,-2001.65,39.8,229.454,-68.7235],[4254.02,-1902.51,39.3333,227.038,-68.3027],[4213.29,-1801.25,38.85,224.508,-67.8535],[4172.22,-1701.45,38.3667,221.95,-67.3903],[4130.82,-1603.14,37.8833,219.365,-66.9124],[4087.64,-1503.03,37.3833,216.664,-66.4018],[4042.64,-1401.3,36.8667,213.845,-65.856],[3997.26,-1301.34,36.35,210.998,-65.2908],[3950.03,-1200.04,35.8167,208.033,-64.6861],[3902.4,-1100.69,35.2833,205.041,-64.0585],[3852.86,-1000.31,34.7333,201.93,-63.3861],[3802.9,-902.049,34.1833,198.796,-62.6867],[3749.47,-800.2,33.6,195.449,-61.9138],[3695.57,-700.819,33.0167,192.08,-61.1069],[3639.64,-601.211,32.4167,188.597,-60.2393],[3581.67,-501.637,31.8,185.003,-59.3055],[3521.6,-402.37,31.1667,181.3,-58.299],[3457.81,-301.211,30.5,177.396,-57.1842],[3391.82,-201.121,29.8167,173.395,-55.9786],[3321.97,-100.122,29.1,169.209,-54.6407],[3249.84,-1.04658,28.3667,164.948,-53.1881],[3172.05,99.9379,27.5833,160.435,-51.536],[3090.15,199.81,26.7667,155.791,-49.6945],[3002.38,299.665,25.9,150.955,-47.5966],[2908.59,398.306,24.9833,145.974,-45.2041],[2803.45,499.193,23.9667,140.658,-42.3253],[2686.65,599.52,22.85,135.137,-38.8703],[2552.53,699.825,21.5833,129.384,-34.556],[2391.55,799.736,20.0833,123.456,-28.8837],[2175.2,899.842,18.1,117.492,-20.4729],[1696.75,988.448,13.8333,114.229,-0.0102383]]], + [49,1018.27,[[4245.15,-2001.42,40.1333,229.74,-69.197],[4206.92,-1901.84,39.6667,227.314,-68.7856],[4167.01,-1800.11,39.1833,224.774,-68.3465],[4128.15,-1703.28,38.7167,222.294,-67.9095],[4086.19,-1601.06,38.2167,219.608,-67.4264],[4043.87,-1500.45,37.7167,216.893,-66.927],[4001.2,-1401.47,37.2167,214.151,-66.4107],[3956.74,-1300.93,36.7,211.289,-65.8585],[3911.91,-1202.18,36.1833,208.4,-65.2864],[3865.26,-1102.16,35.65,205.39,-64.6738],[3816.73,-1001.07,35.1,202.26,-64.0174],[3767.8,-902.108,34.55,199.104,-63.3344],[3716.95,-802.398,33.9833,195.828,-62.6016],[3664.17,-702.179,33.4,192.433,-61.8143],[3609.4,-601.7,32.8,188.92,-60.9677],[3552.62,-501.221,32.1833,185.292,-60.0562],[3493.79,-401.016,31.55,181.552,-59.0733],[3432.88,-301.371,30.9,177.703,-58.0123],[3368.27,-200.159,30.2167,173.654,-56.8355],[3301.47,-100.299,29.5167,169.511,-55.5603],[3232.46,-2.12931,28.8,165.284,-54.176],[3157.95,98.2673,28.0333,160.793,-52.6002],[3077.8,199.876,27.2167,156.06,-50.8051],[2993.56,299.699,26.3667,151.212,-48.7986],[2903.47,398.696,25.4667,146.195,-46.5077],[2804,498.864,24.4833,140.892,-43.7931],[2693.2,599.402,23.4,135.323,-40.5257],[2567.29,699.849,22.1833,129.506,-36.4852],[2418.78,799.912,20.7667,123.472,-31.2592],[2229.02,899.571,18.9833,117.318,-23.8779],[1901.14,999.952,15.9667,111.697,-9.67481],[1688.39,1018.27,14.05,111.907,-0.0652315]]], + [50,1047.92,[[4194.71,-2002.36,40.4667,230.055,-69.6758],[4157.27,-1902.33,40,227.621,-69.274],[4118.18,-1800.12,39.5167,225.071,-68.8452],[4080.13,-1702.83,39.05,222.58,-68.4183],[4039.03,-1600.11,38.55,219.883,-67.9463],[3998.97,-1502.33,38.0667,217.247,-67.475],[3957.19,-1402.78,37.5667,214.491,-66.9711],[3913.66,-1301.65,37.05,211.615,-66.4322],[3869.77,-1202.31,36.5333,208.71,-65.8737],[3824.09,-1101.66,36,205.683,-65.2756],[3778.02,-1002.97,35.4667,202.628,-64.6544],[3728.66,-900.298,34.9,199.355,-63.9677],[3680.35,-802.823,34.35,196.153,-63.2733],[3628.67,-701.821,33.7667,192.732,-62.5051],[3575.06,-600.529,33.1667,189.19,-61.6788],[3520.98,-501.907,32.5667,185.628,-60.8134],[3463.4,-400.746,31.9333,181.851,-59.8548],[3403.78,-300.109,31.2833,177.962,-58.8195],[3342.09,-200.295,30.6167,173.966,-57.6996],[3278.29,-101.614,29.9333,169.87,-56.4863],[3210.77,-2.12481,29.2167,165.584,-55.1373],[3137.87,99.6976,28.45,161.022,-53.6005],[3062.67,198.74,27.6667,156.4,-51.9223],[2981.9,298.481,26.8333,151.548,-50.007],[2893.8,399.589,25.9333,146.41,-47.7752],[2799.85,498.753,24.9833,141.139,-45.2193],[2694.89,599.179,23.9333,135.547,-42.1349],[2576.93,699.286,22.7667,129.706,-38.3621],[2438.74,799.799,21.4167,123.569,-33.5116],[2267.46,899.935,19.7667,117.231,-26.8529],[2015.61,999.6,17.3833,111.016,-15.9135],[1676.71,1047.92,14.25,109.578,-0.0573651]]], + [51,1077.37,[[4140.35,-2000.93,40.7833,230.313,-70.1461],[4103.7,-1900.48,40.3167,227.87,-69.7537],[4066.76,-1801.35,39.85,225.398,-69.3495],[4028.19,-1700.11,39.3667,222.809,-68.9178],[3989.3,-1600.34,38.8833,220.19,-68.4723],[3950.09,-1502.07,38.4,217.542,-68.0123],[3909.21,-1401.99,37.9,214.774,-67.5205],[3866.61,-1300.31,37.3833,211.882,-66.9944],[3823.65,-1200.41,36.8667,208.962,-66.4491],[3780.34,-1102.32,36.35,206.012,-65.8838],[3735.27,-1002.99,35.8167,202.94,-65.2778],[3688.4,-902.629,35.2667,199.743,-64.628],[3639.7,-801.467,34.7,196.421,-63.9304],[3590.58,-702.61,34.1333,193.073,-63.2026],[3538.13,-600.488,33.5333,189.504,-62.397],[3485.23,-501.029,32.9333,185.911,-61.5531],[3430.39,-401.621,32.3167,182.2,-60.6432],[3373.58,-302.54,31.6833,178.372,-59.6608],[3313.25,-201.593,31.0167,174.333,-58.5705],[3250.86,-101.739,30.3333,170.187,-57.3886],[3184.83,-1.00614,29.6167,165.843,-56.0739],[3115.09,99.9689,28.8667,161.314,-54.6089],[3043.14,198.421,28.1,156.714,-53.0092],[2964.18,299.886,27.2667,151.769,-51.1434],[2881.26,399.186,26.4,146.71,-49.0502],[2791.06,498.919,25.4667,141.392,-46.606],[2691.78,598.924,24.45,135.801,-43.6992],[2579.88,699.63,23.3167,129.888,-40.132],[2451.65,799.727,22.0333,123.716,-35.6434],[2296.41,899.589,20.5,117.282,-29.6205],[2083.82,999.564,18.4333,110.72,-20.3816],[1663.58,1077.37,14.45,107.224,-0.0703386]]], + [52,1106.59,[[4083.46,-2000.74,41.1,230.601,-70.6222],[4048.9,-1903.44,40.65,228.237,-70.2531],[4011.47,-1800.3,40.1667,225.668,-69.8448],[3975.05,-1702.09,39.7,223.159,-69.4383],[3937.02,-1601.81,39.2167,220.53,-69.004],[3898.68,-1503.02,38.7333,217.871,-68.5555],[3858.69,-1402.41,38.2333,215.09,-68.076],[3817.03,-1300.17,37.7167,212.185,-67.5629],[3776.38,-1202.92,37.2167,209.345,-67.0487],[3732.66,-1101.04,36.6833,206.284,-66.4797],[3688.58,-1001.11,36.15,203.193,-65.8887],[3642.74,-900.128,35.6,199.976,-65.2547],[3596.51,-801.28,35.05,196.73,-64.5943],[3548.49,-701.702,34.4833,193.359,-63.8849],[3498.64,-601.63,33.9,189.862,-63.1217],[3446.92,-501.315,33.3,186.241,-62.2997],[3393.31,-401.02,32.6833,182.497,-61.4132],[3337.77,-301.019,32.05,178.632,-60.4558],[3280.27,-201.598,31.4,174.652,-59.4201],[3219.29,-100.641,30.7167,170.459,-58.2689],[3156.26,-1.06202,30.0167,166.162,-57.0182],[3089.63,99.0266,29.2833,161.67,-55.6242],[3019.32,198.966,28.5167,156.997,-54.0676],[2945.28,298.051,27.7167,152.163,-52.3255],[2864.29,399.313,26.85,146.997,-50.2903],[2777.77,499.429,25.9333,141.645,-47.9546],[2684.01,598.718,24.95,136.075,-45.22],[2577.99,699.686,23.85,130.117,-41.8534],[2459.39,798.745,22.6333,123.964,-37.7179],[2316.26,899.204,21.1833,117.408,-32.1835],[2129.27,999.858,19.3167,110.593,-24.0649],[1767.29,1100,15.7833,104.517,-6.18274],[1647.26,1106.59,14.6333,104.86,-0.0161349]]], + [53,1135.54,[[4023.98,-2001.85,41.4167,230.919,-71.1038],[3988.94,-1900.53,40.95,228.459,-70.7305],[3953.62,-1800.53,40.4833,225.97,-70.346],[3918.02,-1701.87,40.0167,223.451,-69.9497],[3880.85,-1601.12,39.5333,220.812,-69.5263],[3843.37,-1501.86,39.05,218.142,-69.089],[3804.28,-1400.75,38.55,215.349,-68.6214],[3764.88,-1301.28,38.05,212.525,-68.1375],[3723.83,-1200.24,37.5333,209.575,-67.6195],[3682.44,-1100.98,37.0167,206.594,-67.0822],[3639.36,-1000.44,36.4833,203.486,-66.5063],[3595.92,-901.874,35.95,200.348,-65.9076],[3550.76,-802.317,35.4,197.082,-65.2647],[3503.84,-702.001,34.8333,193.688,-64.5739],[3455.13,-601.163,34.25,190.166,-63.8307],[3404.59,-500.051,33.65,186.516,-63.0301],[3353.63,-401.624,33.05,182.842,-62.1902],[3299.38,-300.683,32.4167,178.942,-61.2583],[3243.21,-200.289,31.7667,174.922,-60.2498],[3185.09,-100.742,31.1,170.786,-59.1566],[3123.53,-0.00020504,30.4,166.438,-57.9395],[3059.94,99.065,29.6833,161.989,-56.6138],[2992.78,198.257,28.9333,157.349,-55.1332],[2920.49,298.935,28.1333,152.433,-53.4391],[2844.47,398.096,27.3,147.368,-51.537],[2761.57,498.544,26.4,141.991,-49.31],[2671.63,598.628,25.4333,136.362,-46.6988],[2571.34,699.538,24.3667,130.385,-43.5275],[2458.83,799.607,23.1833,124.132,-39.6185],[2327.33,899.378,21.8167,117.554,-34.5482],[2161.52,999.443,20.1167,110.637,-27.3659],[1903.34,1099.91,17.5167,103.701,-14.6181],[1631.26,1135.54,14.8333,102.459,-0.0733241]]], + [54,1164.19,[[3960.71,-2000.67,41.7167,231.179,-71.5777],[3927.71,-1902.55,41.2667,228.801,-71.2271],[3893.21,-1802.1,40.8,226.304,-70.8527],[3858.44,-1702.98,40.3333,223.776,-70.4668],[3822.14,-1601.75,39.85,221.128,-70.0544],[3785.53,-1502,39.3667,218.447,-69.6286],[3747.36,-1400.39,38.8667,215.642,-69.1732],[3708.88,-1300.4,38.3667,212.805,-68.7018],[3670.08,-1202.07,37.8667,209.937,-68.2138],[3629.66,-1102.22,37.35,206.942,-67.6909],[3587.59,-1001.05,36.8167,203.818,-67.1304],[3545.18,-901.849,36.2833,200.662,-66.5476],[3501.08,-801.634,35.7333,197.376,-65.9218],[3455.26,-700.633,35.1667,193.96,-65.2492],[3409.06,-601.95,34.6,190.515,-64.5466],[3359.73,-500.024,34,186.837,-63.7677],[3309.97,-400.775,33.4,183.134,-62.9505],[3258.4,-301.598,32.7833,179.304,-62.0679],[3203.57,-200.211,32.1333,175.245,-61.0873],[3148.27,-102.107,31.4833,171.171,-60.0511],[3088.19,-0.181641,30.7833,166.773,-58.8684],[3027.57,97.8231,30.0833,162.372,-57.6104],[2962.05,198.412,29.3333,157.666,-56.1719],[2892.98,298.522,28.55,152.775,-54.5603],[2818.81,399.385,27.7167,147.617,-52.7119],[2739.44,499.86,26.8333,142.228,-50.5868],[2654.74,598.71,25.9,136.656,-48.1374],[2560.02,699.254,24.8667,130.683,-45.1554],[2453.45,799.986,23.7167,124.36,-41.4682],[2331.59,899.468,22.4167,117.751,-36.7868],[2181.25,999.663,20.8333,110.723,-30.2937],[1969.03,1099.95,18.6333,103.454,-19.8264],[1612.14,1164.19,15.0167,100.047,-0.0629682]]], + [55,1192.51,[[3894.92,-2000.84,42.0167,231.471,-72.0575],[3862.71,-1902.33,41.5667,229.085,-71.7161],[3829.04,-1801.46,41.1,226.58,-71.3515],[3795.09,-1701.92,40.6333,224.044,-70.9758],[3759.66,-1600.25,40.15,221.385,-70.5742],[3723.93,-1500.05,39.6667,218.694,-70.1595],[3687.92,-1401.35,39.1833,215.971,-69.731],[3650.36,-1300.84,38.6833,213.123,-69.2724],[3612.5,-1201.97,38.1833,210.242,-68.7975],[3573.06,-1101.57,37.6667,207.232,-68.2887],[3533.29,-1002.97,37.15,204.19,-67.7607],[3490.61,-900.038,36.6,200.918,-67.176],[3448.88,-802.239,36.0667,197.713,-66.5856],[3404.18,-700.538,35.5,194.276,-65.9315],[3359.1,-601.146,34.9333,190.807,-65.2481],[3312.31,-501.28,34.35,187.207,-64.5119],[3263.77,-401.191,33.75,183.475,-63.7178],[3213.47,-301.143,33.1333,179.612,-62.8599],[3161.36,-201.411,32.5,175.622,-61.9316],[3107.42,-102.285,31.85,171.508,-60.9252],[3050.22,-1.65518,31.1667,167.168,-59.804],[2989.7,99.8812,30.45,162.608,-58.5528],[2927.22,199.474,29.7167,157.945,-57.1855],[2861.3,298.868,28.95,153.086,-55.6534],[2790.44,399.351,28.1333,147.944,-53.8949],[2714.53,499.809,27.2667,142.551,-51.8717],[2633.46,599.035,26.35,136.949,-49.5375],[2544.14,698.918,25.35,131.003,-46.7387],[2443.34,799.978,24.2333,124.637,-43.2678],[2329.25,899.786,22.9833,117.969,-38.9032],[2192.19,999.674,21.5,110.887,-33.0058],[2009.42,1099.81,19.55,103.425,-24.0145],[1591.63,1192.51,15.2,97.611,-0.076007]]], + [56,1220.47,[[3826.57,-2002.45,42.3167,231.794,-72.5428],[3795.16,-1903.53,41.8667,229.401,-72.2108],[3762.32,-1802.22,41.4,226.888,-71.8563],[3729.22,-1702.25,40.9333,224.344,-71.4908],[3694.66,-1600.13,40.45,221.676,-71.1003],[3661.03,-1502.92,39.9833,219.069,-70.711],[3624.7,-1400.31,39.4833,216.242,-70.2801],[3589.3,-1302.65,39,213.477,-69.8491],[3552.39,-1203.25,38.5,210.584,-69.3876],[3513.93,-1102.27,37.9833,207.561,-68.8931],[3475.16,-1003.11,37.4667,204.504,-68.3798],[3434.81,-902.661,36.9333,201.315,-67.829],[3392.86,-801.151,36.3833,197.992,-67.2375],[3350.56,-701.778,35.8333,194.636,-66.6207],[3306.61,-601.663,35.2667,191.145,-65.9568],[3261,-501.044,34.6833,187.52,-65.2417],[3213.69,-400.173,34.0833,183.76,-64.47],[3165.98,-302.001,33.4833,179.973,-63.6593],[3115.19,-201.346,32.85,175.948,-62.7579],[3062.62,-101.262,32.2,171.795,-61.7805],[3008.23,-2.05146,31.5333,167.517,-60.7185],[2950.63,98.316,30.8333,163.012,-59.5331],[2889.75,199.221,30.1,158.29,-58.2071],[2826.94,297.861,29.35,153.469,-56.7538],[2757.91,399.95,28.5333,148.244,-55.0485],[2686.81,498.318,27.7,142.961,-53.1631],[2607.86,599.649,26.7833,137.236,-50.9012],[2523.79,698.587,25.8167,131.336,-48.2792],[2428.61,799.656,24.7333,124.956,-45.0183],[2322.03,899.315,23.5333,118.27,-40.9625],[2196.23,998.989,22.1333,111.153,-35.5778],[2033.83,1099.63,20.35,103.522,-27.6227],[1761.77,1199.74,17.4167,95.8716,-12.031],[1568.13,1220.46,15.3667,95.1628,-0.0164136]]], + [57,1248.02,[[3754.53,-2001.83,42.6,232.06,-73.0217],[3723.92,-1902.53,42.15,229.66,-72.6989],[3691.92,-1800.84,41.6833,227.14,-72.3541],[3659.66,-1700.47,41.2167,224.587,-71.9988],[3627.15,-1601.44,40.75,222.002,-71.6323],[3593.21,-1500.32,40.2667,219.292,-71.2404],[3558.99,-1400.68,39.7833,216.549,-70.8354],[3524.5,-1302.54,39.3,213.773,-70.4167],[3488.53,-1202.63,38.8,210.868,-69.9683],[3451.06,-1101.14,38.2833,207.831,-69.4878],[3413.29,-1001.44,37.7667,204.759,-68.989],[3373.98,-900.445,37.2333,201.553,-68.4536],[3334.34,-801.423,36.7,198.313,-67.8964],[3293.14,-701.405,36.15,194.938,-67.2973],[3250.33,-600.619,35.5833,191.426,-66.6527],[3207.17,-502.162,35.0167,187.881,-65.9783],[3161.09,-400.492,34.4167,184.095,-65.2296],[3114.62,-301.512,33.8167,180.279,-64.4427],[3066.47,-202.628,33.2,176.328,-63.5914],[3015.28,-101.568,32.55,172.137,-62.6435],[2962.32,-1.34458,31.8833,167.817,-61.6133],[2907.57,97.7268,31.2,163.373,-60.4911],[2848.3,199.867,30.4667,158.594,-59.2054],[2787.14,299.784,29.7167,153.708,-57.7954],[2722.68,399.162,28.9333,148.621,-56.2097],[2653.49,499.213,28.1,143.246,-54.3829],[2579.46,598.789,27.2167,137.616,-52.2721],[2499.07,698.327,26.2667,131.677,-49.7786],[2409.34,799.095,25.2167,125.305,-46.721],[2308.58,899.494,24.05,118.55,-42.9068],[2192.13,999.092,22.7167,111.398,-37.9459],[2046.2,1099.61,21.0667,103.686,-30.8291],[1832.07,1199.58,18.6833,95.646,-18.606],[1544.87,1248.02,15.55,92.6794,-0.0804769]]], + [58,1275.16,[[3679.98,-2002.7,42.8833,232.357,-73.5062],[3650.18,-1903.01,42.4333,229.951,-73.1928],[3619.03,-1800.92,41.9667,227.424,-72.858],[3587.63,-1700.14,41.5,224.863,-72.5129],[3555.98,-1600.7,41.0333,222.27,-72.157],[3524.07,-1502.63,40.5667,219.645,-71.7897],[3490.77,-1402.5,40.0833,216.892,-71.3968],[3456.03,-1300.5,39.5833,214.01,-70.9763],[3421.02,-1200.13,39.0833,211.092,-70.5407],[3385.72,-1101.42,38.5833,208.14,-70.0892],[3348.95,-1001.18,38.0667,205.055,-69.605],[3311.89,-902.761,37.55,201.935,-69.102],[3272.11,-800.023,37,198.576,-68.5445],[3233.22,-702.427,36.4667,195.285,-67.9809],[3191.57,-600.954,35.9,191.753,-67.3558],[3149.56,-501.803,35.3333,188.186,-66.7016],[3105.97,-402.199,34.75,184.481,-65.996],[3060.76,-302.393,34.15,180.637,-65.2335],[3013.91,-202.652,33.5333,176.655,-64.4083],[2964.1,-100.679,32.8833,172.429,-63.4894],[2913.86,-1.99685,32.2333,168.177,-62.5159],[2860.6,98.1444,31.55,163.687,-61.4285],[2804.26,199.145,30.8333,158.964,-60.2116],[2746.09,298.164,30.1,154.126,-58.8775],[2683.42,399.024,29.3167,148.966,-57.3432],[2617.48,498.692,28.5,143.612,-55.6108],[2546.86,598.25,27.6333,137.984,-53.6077],[2468.71,699.917,26.6833,131.912,-51.1944],[2384.25,799.939,25.6667,125.575,-48.3281],[2290.54,899.179,24.55,118.883,-44.7986],[2181.67,999.282,23.2667,111.667,-40.1857],[2048.6,1099.97,21.7167,103.877,-33.7262],[1867.18,1199.86,19.6333,95.6351,-23.4106],[1518.7,1275.16,15.7167,90.1834,-0.0710674]]], + [59,1301.84,[[3601.86,-2001.38,43.15,232.598,-73.9851],[3572.88,-1901.35,42.7,230.186,-73.6809],[3543.66,-1802.52,42.25,227.742,-73.3677],[3513.12,-1701.32,41.7833,225.174,-73.033],[3482.34,-1601.46,41.3167,222.573,-72.6878],[3451.31,-1502.96,40.85,219.94,-72.3316],[3418.92,-1402.38,40.3667,217.178,-71.9505],[3386.28,-1303.31,39.8833,214.382,-71.5564],[3352.23,-1202.41,39.3833,211.453,-71.1344],[3317.91,-1103.17,38.8833,208.49,-70.6969],[3282.16,-1002.37,38.3667,205.392,-70.2277],[3244.96,-900.229,37.8333,202.156,-69.7241],[3207.45,-800.049,37.3,198.883,-69.1998],[3169.63,-701.861,36.7667,195.574,-68.6535],[3130.33,-602.722,36.2167,192.127,-68.0655],[3089.49,-502.86,35.65,188.539,-67.4321],[3047.12,-402.517,35.0667,184.81,-66.7486],[3003.16,-301.943,34.4667,180.939,-66.0099],[2957.61,-201.405,33.85,176.927,-65.2102],[2910.43,-101.178,33.2167,172.776,-64.3429],[2861.61,-1.55371,32.5667,168.487,-63.4003],[2809.84,99.5881,31.8833,163.953,-62.3471],[2756.35,199.322,31.1833,159.29,-61.1961],[2699.83,299.537,30.45,154.394,-59.9045],[2640.21,399.567,29.6833,149.276,-58.4509],[2577.45,498.701,28.8833,143.952,-56.8095],[2508.84,599.962,28.0167,138.225,-54.8714],[2436.93,698.261,27.1167,132.352,-52.6621],[2356.27,799.165,26.1167,125.96,-49.9421],[2266.64,899.892,25.0167,119.159,-46.5849],[2165.09,999.837,23.7833,111.931,-42.3027],[2044.34,1099.49,22.3333,104.178,-36.4741],[1885.44,1199.64,20.45,95.7898,-27.4908],[1543.7,1299.94,16.4833,87.5215,-3.9364],[1491.21,1301.84,15.8833,87.6636,-0.089024]]], + [60,1328.03,[[3521.28,-2001.64,43.4167,232.872,-74.4701],[3493.11,-1901.24,42.9667,230.453,-74.1751],[3464.72,-1802.05,42.5167,228.003,-73.8715],[3435.05,-1700.47,42.05,225.428,-73.5471],[3405.14,-1600.23,41.5833,222.819,-73.2124],[3375,-1501.33,41.1167,220.176,-72.8671],[3343.52,-1400.35,40.6333,217.405,-72.4976],[3311.8,-1300.86,40.15,214.598,-72.1154],[3279.83,-1202.88,39.6667,211.756,-71.72],[3246.49,-1103.15,39.1667,208.781,-71.2962],[3211.76,-1001.84,38.65,205.67,-70.8417],[3176.75,-902.343,38.1333,202.522,-70.3693],[3140.32,-801.562,37.6,199.234,-69.8619],[3103.6,-702.767,37.0667,195.909,-69.3331],[3064.26,-600.005,36.5,192.338,-68.7464],[3025.76,-502.475,35.95,188.835,-68.1507],[2984.6,-401.446,35.3667,185.083,-67.4889],[2941.91,-300.161,34.7667,181.186,-66.7735],[2898.87,-201.583,34.1667,177.254,-66.0203],[2853.05,-100.509,33.5333,173.07,-65.181],[2805.64,-0.00576472,32.8833,168.745,-64.2686],[2756.6,99.6234,32.2167,164.28,-63.2744],[2705.9,198.063,31.5333,159.682,-62.1884],[2651.03,299.498,30.8,154.731,-60.9404],[2594.42,398.665,30.05,149.661,-59.5666],[2533.51,499.27,29.25,144.261,-57.981],[2469.49,598.303,28.4167,138.663,-56.1822],[2399.71,698.551,27.5167,132.677,-54.0504],[2322.75,799.998,26.5333,126.246,-51.4677],[2239.77,898.86,25.4833,119.566,-48.3772],[2143.97,999.693,24.2833,112.264,-44.3634],[2032.31,1099.59,22.9,104.463,-39.0058],[1890.67,1199.66,21.1667,96.0011,-31.045],[1663.7,1299.64,18.4333,87.0186,-15.5954],[1460.98,1328.03,16.0333,85.1296,-0.0272657]]], + [61,1353.7,[[3438.22,-2003.51,43.6833,233.179,-74.9607],[3410.89,-1902.74,43.2333,230.755,-74.6752],[3383.34,-1803.17,42.7833,228.298,-74.3813],[3354.55,-1701.2,42.3167,225.716,-74.0673],[3325.52,-1600.56,41.85,223.1,-73.7433],[3296.27,-1501.26,41.3833,220.45,-73.409],[3266.78,-1403.33,40.9167,217.765,-73.0638],[3236,-1303.36,40.4333,214.95,-72.6943],[3203.91,-1201.54,39.9333,212,-72.2985],[3171.55,-1101.35,39.4333,209.014,-71.8881],[3138.94,-1002.83,38.9333,205.99,-71.4624],[3104.97,-902.804,38.4167,202.829,-71.0055],[3069.62,-801.468,37.8833,199.526,-70.5146],[3033.99,-702.113,37.35,196.185,-70.003],[2996.94,-601.758,36.8,192.701,-69.4523],[2958.46,-500.63,36.2333,189.072,-68.8588],[2919.67,-401.841,35.6667,185.406,-68.2369],[2879.41,-302.623,35.0833,181.594,-67.5649],[2836.5,-200.51,34.4667,177.525,-66.8168],[2793.23,-101.291,33.85,173.422,-66.027],[2748.42,-2.44767,33.2167,169.173,-65.1687],[2700.86,98.2008,32.55,164.671,-64.2093],[2651.7,197.696,31.8667,160.028,-63.1609],[2599.71,297.992,31.15,155.138,-61.9839],[2544.82,398.446,30.4,150.008,-60.6584],[2486.99,498.367,29.6167,144.649,-59.1606],[2424.92,598.975,28.7833,138.965,-57.4252],[2358.54,699.119,27.9,132.985,-55.4061],[2286.47,799.239,26.95,126.639,-53.001],[2207.34,899.085,25.9167,119.891,-50.0711],[2118.4,998.936,24.7667,112.655,-46.3683],[2014.19,1099.61,23.4333,104.776,-41.401],[1886.34,1199.59,21.8167,96.2698,-34.2613],[1700.52,1299.9,19.5,87.0165,-21.6988],[1430.88,1353.69,16.2,82.5634,-0.105292]]], + [62,1378.82,[[3351.73,-2003.27,43.9333,233.429,-75.4466],[3325.23,-1902.17,43.4833,230.999,-75.1705],[3298.53,-1802.26,43.0333,228.536,-74.8861],[3271.61,-1703.56,42.5833,226.041,-74.5933],[3243.48,-1602.51,42.1167,223.418,-74.2803],[3215.12,-1502.8,41.65,220.76,-73.9572],[3185.52,-1400.96,41.1667,217.972,-73.6114],[3155.68,-1300.61,40.6833,215.146,-73.2538],[3125.6,-1201.76,40.2,212.285,-72.8837],[3094.24,-1101.11,39.7,209.287,-72.4871],[3062.64,-1002.13,39.2,206.252,-72.0755],[3029.71,-901.612,38.6833,203.077,-71.6337],[2996.52,-802.921,38.1667,199.864,-71.1742],[2961.99,-702.991,37.6333,196.508,-70.6801],[2926.09,-602.036,37.0833,193.007,-70.1482],[2888.8,-500.285,36.5167,189.359,-69.5748],[2851.21,-400.865,35.95,185.671,-68.9739],[2812.2,-300.992,35.3667,181.836,-68.3244],[2771.74,-200.92,34.7667,177.852,-67.6214],[2729.81,-100.916,34.15,173.719,-66.8588],[2686.4,-1.25875,33.5167,169.438,-66.03],[2641.48,97.7604,32.8667,165.011,-65.127],[2593.85,198.242,32.1833,160.326,-64.1154],[2543.48,299.585,31.4667,155.387,-62.9791],[2491.49,398.937,30.7333,150.314,-61.7283],[2436.68,498.034,29.9667,145.003,-60.3149],[2377.78,598.146,29.15,139.353,-58.6767],[2314.71,698.15,28.2833,133.387,-56.7698],[2246.18,798.555,27.35,127.029,-54.4963],[2170.82,899.187,26.3333,120.23,-51.7226],[2087.24,999.057,25.2167,112.988,-48.2634],[1990.2,1099.84,23.9333,105.089,-43.6663],[1874.24,1199.33,22.4167,96.5916,-37.2338],[1715.45,1299.47,20.3667,87.2288,-26.5846],[1398.13,1378.82,16.35,79.9822,-0.1029]]], + [63,1403.37,[[3261.87,-2000.95,44.1667,233.624,-75.9287],[3237.17,-1903.27,43.7333,231.279,-75.6718],[3211.32,-1803.01,43.2833,228.81,-75.3972],[3184.29,-1700.31,42.8167,226.215,-75.1038],[3158.02,-1602.53,42.3667,223.679,-74.812],[3130.57,-1502.44,41.9,221.014,-74.5],[3101.91,-1400.21,41.4167,218.216,-74.166],[3074.03,-1302.91,40.95,215.48,-73.8327],[3043.91,-1200.21,40.45,212.51,-73.463],[3014.56,-1102.49,39.9667,209.602,-73.0928],[2983.97,-1003.02,39.4667,206.556,-72.6956],[2952.1,-902.001,38.95,203.369,-72.2693],[2919.98,-802.804,38.4333,200.143,-71.8258],[2886.55,-702.345,37.9,196.772,-71.3488],[2851.8,-600.84,37.35,193.254,-70.8353],[2816.78,-501.492,36.8,189.696,-70.2983],[2780.39,-401.424,36.2333,185.988,-69.7188],[2742.64,-300.878,35.65,182.131,-69.0924],[2703.49,-200.107,35.05,178.122,-68.4141],[2664.01,-102.061,34.45,174.074,-67.6987],[2622.01,-1.56816,33.8167,169.762,-66.8999],[2578.54,98.3166,33.1667,165.3,-66.0294],[2532.46,199.718,32.4833,160.575,-65.0537],[2484.85,299.702,31.7833,155.704,-63.9838],[2435.71,397.927,31.0667,150.694,-62.8067],[2382.69,498.297,30.3,145.32,-61.446],[2325.71,599.781,29.4833,139.593,-59.8675],[2265.89,699.365,28.6333,133.652,-58.0653],[2200.79,799.747,27.7167,127.294,-55.9148],[2130.32,899.217,26.7333,120.573,-53.3338],[2051.95,998.809,25.65,113.353,-50.1099],[1961.83,1099.24,24.4167,105.478,-45.8709],[1854.74,1199.4,22.9667,96.9059,-39.9741],[1715.21,1299.37,21.1,87.4856,-30.6865],[1427.17,1399.88,17.3167,77.4404,-6.05556],[1362.85,1403.37,16.4833,77.3854,-0.0124509]]], + [64,1427.31,[[3169.67,-2000.32,44.4,233.852,-76.4171],[3145.79,-1902.34,43.9667,231.501,-76.1691],[3120.79,-1801.76,43.5167,229.027,-75.9041],[3095.59,-1702.38,43.0667,226.518,-75.6312],[3069.26,-1600.62,42.6,223.881,-75.3394],[3042.72,-1500.19,42.1333,221.208,-75.0382],[3015.96,-1401.12,41.6667,218.5,-74.7271],[2989,-1303.42,41.2,215.755,-74.4057],[2959.89,-1200.29,40.7,212.776,-74.0493],[2931.52,-1102.14,40.2167,209.858,-73.6923],[2901.94,-1002.24,39.7167,206.801,-73.3092],[2871.14,-900.763,39.2,203.602,-72.898],[2840.08,-801.104,38.6833,200.362,-72.4702],[2807.77,-700.163,38.15,196.976,-72.0101],[2775.2,-601.216,37.6167,193.549,-71.53],[2741.35,-501.296,37.0667,189.973,-71.0126],[2706.18,-400.632,36.5,186.247,-70.454],[2670.73,-302.322,35.9333,182.479,-69.8679],[2632.9,-200.833,35.3333,178.447,-69.2149],[2594.75,-102.061,34.7333,174.373,-68.526],[2554.16,-0.794608,34.1,170.031,-67.7567],[2512.15,99.8921,33.45,165.536,-66.9179],[2468.71,199.695,32.7833,160.887,-66.0013],[2423.82,298.296,32.1,156.09,-64.9967],[2375.23,399.887,31.3667,150.912,-63.8375],[2325.12,499.193,30.6167,145.596,-62.5558],[2271.21,599.922,29.8167,139.916,-61.0685],[2214.56,699.057,28.9833,134.006,-59.3705],[2152.84,799.385,28.0833,127.658,-57.3427],[2085.95,899.233,27.1167,120.917,-54.9069],[2011.45,999.754,26.05,113.629,-51.8586],[1928,1099.24,24.8667,105.825,-47.956],[1829.44,1199.23,23.4833,97.2588,-42.5675],[1704.52,1299.32,21.75,87.786,-34.3189],[1502.16,1399.93,18.9833,77.2593,-17.3107],[1327.66,1427.31,16.6333,74.7578,-0.0753652]]], + [65,1450.62,[[3075.13,-2001.45,44.6333,234.114,-76.9114],[3052.07,-1903.16,44.2,231.759,-76.6725],[3027.94,-1802.25,43.75,229.279,-76.4173],[3003.62,-1702.54,43.3,226.765,-76.1544],[2978.19,-1600.42,42.8333,224.122,-75.8733],[2953.49,-1503.22,42.3833,221.538,-75.5937],[2926.74,-1400.21,41.9,218.725,-75.2835],[2900.72,-1302.15,41.4333,215.973,-74.9738],[2873.55,-1202.06,40.95,213.084,-74.6421],[2845.22,-1100.11,40.45,210.056,-74.2864],[2817.62,-1003.12,39.9667,207.09,-73.9298],[2787.89,-901.176,39.45,203.88,-73.5341],[2757.92,-801.039,38.9333,200.627,-73.1222],[2727.71,-702.741,38.4167,197.334,-72.6934],[2695.3,-600.151,37.8667,193.785,-72.217],[2663.61,-502.719,37.3333,190.302,-71.7342],[2629.68,-401.443,36.7667,186.558,-71.1971],[2595.47,-302.513,36.2,182.77,-70.6333],[2558.96,-200.361,35.6,178.715,-70.0051],[2522.15,-100.92,35,174.616,-69.3423],[2484.01,-1.58446,34.3833,170.361,-68.6218],[2443.48,99.9262,33.7333,165.834,-67.8156],[2402.62,198.109,33.0833,161.267,-66.957],[2359.31,297.686,32.4,156.429,-65.9922],[2313.51,398.049,31.6833,151.322,-64.9048],[2265.18,498.551,30.9333,145.95,-63.6749],[2214.27,598.499,30.15,140.322,-62.2778],[2159.64,699.109,29.3167,134.332,-60.649],[2101.22,799.223,28.4333,128.004,-58.7396],[2037.84,899.275,27.4833,121.255,-56.4443],[1968.26,999.003,26.45,114.031,-53.6156],[1890.1,1098.67,25.3,106.221,-49.9872],[1798.57,1199.07,23.9667,97.6196,-45.0212],[1685.21,1299.51,22.3333,88.0902,-37.5943],[1519.96,1399.72,19.9833,77.4465,-23.8557],[1290.04,1450.62,16.7667,72.1146,-0.0493954]]], + [66,1473.27,[[2977.39,-2000.55,44.85,234.322,-77.4027],[2955.17,-1901.98,44.4167,231.961,-77.1729],[2931.9,-1800.77,43.9667,229.476,-76.9273],[2908.46,-1700.77,43.5167,226.956,-76.6743],[2884.83,-1601.97,43.0667,224.4,-76.4136],[2860.14,-1500.83,42.6,221.714,-76.1346],[2835.25,-1401.03,42.1333,218.991,-75.8466],[2810.17,-1302.6,41.6667,216.231,-75.5489],[2783.98,-1202.11,41.1833,213.334,-75.2299],[2757.6,-1103.14,40.7,210.398,-74.8995],[2730.08,-1002.37,40.2,207.321,-74.5451],[2702.36,-903.272,39.7,204.203,-74.177],[2673.48,-802.643,39.1833,200.94,-73.7815],[2643.43,-700.691,38.65,197.527,-73.356],[2613.14,-600.723,38.1167,194.071,-72.9119],[2582.61,-502.767,37.5833,190.573,-72.448],[2549.91,-400.929,37.0167,186.811,-71.9319],[2516.95,-301.431,36.45,183.004,-71.3901],[2482.75,-201.49,35.8667,179.04,-70.8035],[2447.29,-101.36,35.2667,174.918,-70.1672],[2410.55,-1.30974,34.65,170.637,-69.4754],[2372.51,98.3811,34.0167,166.196,-68.7216],[2332.14,199.914,33.35,161.477,-67.8762],[2291.43,297.902,32.6833,156.719,-66.9724],[2247.32,399.227,31.9667,151.566,-65.9286],[2201.8,498.539,31.2333,146.261,-64.7747],[2152.77,599.668,30.45,140.571,-63.4344],[2101.21,699.567,29.6333,134.627,-61.9033],[2046.02,799.311,28.7667,128.327,-60.108],[1986.07,899.398,27.8333,121.581,-57.9483],[1920.18,999.638,26.8167,114.325,-55.2835],[1847.13,1099.02,25.7,106.539,-51.9118],[1762.37,1199.17,24.4167,97.9598,-47.3435],[1658.92,1299.76,22.8667,88.4055,-40.6164],[1517.04,1399.88,20.7667,77.6936,-28.9319],[1251.28,1473.27,16.9,69.4482,-0.0592067]]], + [67,1495.23,[[2877.38,-2001.48,45.0667,234.564,-77.9001],[2855.99,-1902.61,44.6333,232.2,-77.6794],[2833.61,-1801.1,44.1833,229.709,-77.4436],[2811.06,-1700.78,43.7333,227.183,-77.2007],[2788.32,-1601.67,43.2833,224.622,-76.9503],[2764.57,-1500.2,42.8167,221.93,-76.6825],[2740.62,-1400.07,42.35,219.199,-76.4058],[2716.49,-1301.3,41.8833,216.431,-76.1199],[2691.29,-1200.47,41.4,213.526,-75.8136],[2665.91,-1101.14,40.9167,210.58,-75.4963],[2639.44,-1000.01,40.4167,207.492,-75.1558],[2612.76,-900.53,39.9167,204.363,-74.8022],[2585.87,-802.742,39.4167,201.194,-74.4347],[2556.96,-700.323,38.8833,197.768,-74.0264],[2528.74,-602.991,38.3667,194.408,-73.6139],[2498.46,-501.45,37.8167,190.785,-73.155],[2467.93,-402.077,37.2667,187.117,-72.6745],[2436.23,-301.994,36.7,183.292,-72.1551],[2403.34,-201.444,36.1167,179.309,-71.5927],[2369.23,-100.681,35.5167,175.164,-70.9824],[2334.85,-2.6577,34.9167,170.973,-70.3373],[2298.27,97.7961,34.2833,166.504,-69.6152],[2260.43,197.625,33.6333,161.872,-68.826],[2220.31,298.948,32.95,156.958,-67.9388],[2178.88,398.833,32.25,151.882,-66.962],[2135.11,499.165,31.5167,146.529,-65.8569],[2088.97,599.272,30.75,140.901,-64.601],[2040.42,698.438,29.95,135.01,-63.1668],[1987.38,799.673,29.0833,128.624,-61.45],[1930.79,899.631,28.1667,121.893,-59.4213],[1869.54,998.601,27.1833,114.739,-56.9599],[1800.41,1099.03,26.0833,106.882,-53.7907],[1721.1,1199.77,24.8333,98.2556,-49.5436],[1627.11,1299.53,23.3667,88.7773,-43.4778],[1502.87,1399.4,21.45,78.0615,-33.3543],[1211.39,1495.23,17.0333,66.7597,-0.109945]]], + [68,1516.48,[[2774.31,-2000.44,45.2667,234.752,-78.3952],[2753.77,-1901.31,44.8333,232.382,-78.1836],[2733.08,-1803.27,44.4,229.98,-77.966],[2711.42,-1702.63,43.95,227.449,-77.7333],[2689.59,-1603.2,43.5,224.883,-77.4935],[2666.78,-1501.38,43.0333,222.185,-77.2368],[2643.79,-1400.91,42.5667,219.448,-76.9718],[2620.61,-1301.8,42.1,216.673,-76.6979],[2596.43,-1200.6,41.6167,213.76,-76.4044],[2572.05,-1100.91,41.1333,210.806,-76.1004],[2547.48,-1002.74,40.65,207.813,-75.7852],[2521.87,-902.822,40.15,204.675,-75.4468],[2495.19,-801.34,39.6333,201.389,-75.0832],[2468.31,-701.683,39.1167,198.059,-74.7043],[2440.33,-600.755,38.5833,194.576,-74.2964],[2412.14,-501.83,38.05,191.049,-73.8702],[2382.84,-401.943,37.5,187.365,-73.4101],[2352.4,-301.325,36.9333,183.523,-72.9127],[2320.82,-200.22,36.35,179.519,-72.3741],[2288.99,-101.658,35.7667,175.468,-71.8062],[2255.07,-0.273879,35.15,171.137,-71.1714],[2220.88,98.1807,34.5333,166.758,-70.4982],[2184.55,198.737,33.8833,162.095,-69.7429],[2146.99,298.388,33.2167,157.266,-68.9148],[2107.22,399.167,32.5167,152.151,-67.9809],[2066.18,498.193,31.8,146.873,-66.9487],[2021.91,599.406,31.0333,141.191,-65.749],[1975.32,699.736,30.2333,135.234,-64.3778],[1926.39,798.423,29.4,129.016,-62.8016],[1873.09,898.229,28.5,122.309,-60.9032],[1814.34,999.109,27.5167,115.028,-58.5564],[1750.05,1098.75,26.45,107.241,-55.6265],[1676.04,1199.77,25.2333,98.601,-51.6904],[1590.03,1299.1,23.8333,89.1718,-46.1862],[1478.27,1399.8,22.0333,78.3545,-37.1621],[1286.2,1499.77,18.9833,65.9749,-15.8025],[1169.29,1516.48,17.15,64.054,-0.0611373]]], + [69,1536.98,[[2669.06,-2001.28,45.4667,234.976,-78.8965],[2649.38,-1901.88,45.0333,232.602,-78.6941],[2629.54,-1803.57,44.6,230.195,-78.4859],[2608.79,-1702.64,44.15,227.66,-78.2633],[2587.87,-1602.92,43.7,225.088,-78.0339],[2566.01,-1500.8,43.2333,222.384,-77.7885],[2543.97,-1400.01,42.7667,219.64,-77.535],[2521.77,-1300.59,42.3,216.858,-77.2729],[2499.39,-1202.54,41.8333,214.038,-77.002],[2476.03,-1102.47,41.35,211.077,-76.7115],[2451.68,-1000.55,40.85,207.972,-76.3997],[2427.14,-900.283,40.35,204.823,-76.0759],[2402.4,-801.697,39.85,201.632,-75.7393],[2376.64,-701.616,39.3333,198.291,-75.3772],[2349.84,-600.245,38.8,194.796,-74.9872],[2322.83,-500.873,38.2667,191.255,-74.5798],[2294.75,-400.522,37.7167,187.556,-74.1399],[2266.45,-302.361,37.1667,183.81,-73.6786],[2236.2,-200.68,36.5833,179.788,-73.1642],[2205.71,-101.538,36,175.717,-72.6217],[2174.1,-2.25234,35.4,171.481,-72.0322],[2140.46,99.5468,34.7667,166.958,-71.372],[2106.55,198.216,34.1333,162.386,-70.6692],[2070.57,298.645,33.4667,157.524,-69.8787],[2033.4,397.876,32.7833,152.494,-69.0091],[1994.09,497.853,32.0667,147.173,-68.0249],[1952.62,597.923,31.3167,141.563,-66.9062],[1908.02,699.449,30.5167,135.545,-65.5998],[1861.16,799.394,29.6833,129.254,-64.0968],[1811.07,898.762,28.8,122.581,-62.3201],[1755.79,999.635,27.8333,115.306,-60.1218],[1695.21,1099.74,26.7833,107.488,-57.3742],[1627.29,1199.24,25.6167,98.9873,-53.7851],[1546.97,1299.85,24.25,89.4459,-48.6814],[1447.02,1399.74,22.5667,78.711,-40.6795],[1293.72,1499.68,20.0167,66.2144,-23.9193],[1126.16,1536.98,17.2667,61.326,-0.0524554]]], + [70,1556.72,[[2560.91,-2000.19,45.65,235.146,-79.3961],[2542.09,-1900.55,45.2167,232.768,-79.2029],[2523.12,-1801.99,44.7833,230.356,-79.0041],[2503.28,-1700.81,44.3333,227.815,-78.7916],[2483.27,-1600.83,43.8833,225.237,-78.5725],[2463.12,-1502.07,43.4333,222.624,-78.3466],[2442.05,-1400.97,42.9667,219.874,-78.1047],[2420.82,-1301.22,42.5,217.086,-77.8548],[2399.43,-1202.85,42.0333,214.259,-77.5963],[2377.1,-1102.43,41.55,211.291,-77.3191],[2353.82,-1000.16,41.05,208.176,-77.0217],[2331.14,-902.856,40.5667,205.124,-76.7232],[2306.71,-800.578,40.05,201.817,-76.3915],[2282.08,-700.117,39.5333,198.465,-76.0459],[2257.26,-601.5,39.0167,195.067,-75.6857],[2231.44,-501.665,38.4833,191.513,-75.2972],[2204.6,-400.831,37.9333,187.8,-74.8779],[2177.56,-302.182,37.3833,184.039,-74.4381],[2149.47,-202.865,36.8167,180.116,-73.962],[2119.5,-100.311,36.2167,175.909,-73.4303],[2089.28,-0.478508,35.6167,171.65,-72.8679],[2057.98,99.2491,35,167.222,-72.2551],[2025.57,198.589,34.3667,162.623,-71.5855],[1991.19,299.732,33.7,157.73,-70.8322],[1955.66,399.701,33.0167,152.663,-70.0031],[1918.97,498.164,32.3167,147.425,-69.087],[1879.35,599.164,31.5667,141.767,-68.0215],[1837.62,699.61,30.7833,135.817,-66.8035],[1793.75,798.763,29.9667,129.584,-65.4027],[1745.91,899.513,29.0833,122.826,-63.7133],[1694.92,998.52,28.15,115.697,-61.697],[1637.99,1099.07,27.1167,107.86,-59.1326],[1574.06,1199.61,25.9667,99.2837,-55.7765],[1500.19,1299.8,24.65,89.7942,-51.1158],[1409.54,1399.75,23.05,79.0632,-43.9227],[1279.63,1499.74,20.7833,66.5191,-29.9085],[1082.01,1556.72,17.3833,58.5764,-0.0900558]]], + [71,1575.67,[[2450.66,-2001.03,45.8333,235.352,-79.9019],[2432.71,-1901.14,45.4,232.97,-79.7179],[2414.62,-1802.33,44.9667,230.554,-79.5287],[2395.7,-1700.88,44.5167,228.009,-79.3264],[2376.62,-1600.64,44.0667,225.426,-79.1178],[2357.4,-1501.61,43.6167,222.807,-78.9027],[2337.31,-1400.22,43.15,220.052,-78.6724],[2317.07,-1300.19,42.6833,217.257,-78.4344],[2296.66,-1201.52,42.2167,214.423,-78.1883],[2275.37,-1100.81,41.7333,211.446,-77.9243],[2253.91,-1001.6,41.25,208.428,-77.6507],[2231.54,-900.601,40.75,205.262,-77.3568],[2208.99,-801.271,40.25,202.052,-77.0512],[2185.51,-700.414,39.7333,198.689,-76.7225],[2161.84,-601.397,39.2167,195.28,-76.3798],[2137.22,-501.146,38.6833,191.714,-76.0102],[2112.41,-402.915,38.15,188.101,-75.6236],[2085.84,-300.792,37.5833,184.211,-75.1926],[2059.06,-201.019,37.0167,180.27,-74.7394],[2031.28,-100.804,36.4333,176.161,-74.2478],[2002.47,-0.403076,35.8333,171.882,-73.7131],[1972.63,99.9136,35.2167,167.431,-73.1304],[1941.74,199.865,34.5833,162.806,-72.4936],[1909.78,299.155,33.9333,158.006,-71.7955],[1875.92,399.887,33.25,152.906,-71.0078],[1840.95,499.14,32.55,147.629,-70.1372],[1804.02,598.781,31.8167,142.052,-69.1476],[1765.1,698.133,31.05,136.177,-68.0169],[1723.3,798.466,30.2333,129.88,-66.6887],[1678.57,898.644,29.3667,123.171,-65.1174],[1630,999.164,28.4333,115.943,-63.2058],[1576.63,1099.84,27.4167,108.104,-60.8127],[1517.5,1199.65,26.3,99.5995,-57.7255],[1449.83,1299.02,25.0333,90.2063,-53.4895],[1367.12,1399.3,23.5,79.4641,-46.9934],[1253.54,1499.88,21.4167,66.8444,-34.8914],[1035.9,1575.67,17.4833,55.8093,-0.0134566]]], + [72,1593.81,[[2337.67,-2000,46,235.505,-80.4068],[2321.26,-1903.72,45.5833,233.211,-80.2389],[2303.4,-1800.86,45.1333,230.698,-80.0523],[2286.07,-1702.92,44.7,228.243,-79.8673],[2267.93,-1602.39,44.25,225.656,-79.6694],[2249.65,-1503.08,43.8,223.033,-79.4653],[2230.55,-1401.4,43.3333,220.272,-79.2468],[2211.3,-1301.06,42.8667,217.472,-79.0209],[2191.9,-1202.1,42.4,214.632,-78.7873],[2171.65,-1101.06,41.9167,211.648,-78.5368],[2151.24,-1001.54,41.4333,208.622,-78.2771],[2129.97,-900.205,40.9333,205.448,-77.9982],[2108.53,-800.537,40.4333,202.229,-77.7081],[2086.92,-702.564,39.9333,198.965,-77.4064],[2064.42,-603.131,39.4167,195.546,-77.0814],[2041.02,-502.447,38.8833,191.969,-76.731],[2016.69,-400.727,38.3333,188.23,-76.3526],[1992.17,-301.185,37.7833,184.44,-75.9557],[1966.71,-200.937,37.2167,180.483,-75.5259],[1940.3,-100.229,36.6333,176.357,-75.0595],[1913.67,-2.08207,36.05,172.179,-74.5668],[1885.31,98.8454,35.4333,167.707,-74.0148],[1855.94,199.43,34.8,163.057,-73.4114],[1825.57,299.377,34.15,158.23,-72.7497],[1794.17,398.377,33.4833,153.223,-72.0219],[1760.93,498.446,32.7833,147.912,-71.1978],[1725.83,598.951,32.05,142.293,-70.2606],[1688.84,699.215,31.2833,136.367,-69.1893],[1649.93,798.518,30.4833,130.14,-67.957],[1607.42,899.87,29.6167,123.358,-66.4691],[1562.09,999.918,28.7,116.168,-64.6912],[1513.05,1098.94,27.7167,108.468,-62.5039],[1457.73,1199.38,26.6167,99.929,-59.6347],[1395.15,1298.81,25.3833,90.5483,-55.7457],[1319.18,1399.67,23.9,79.7631,-49.8258],[1219.15,1499.91,21.9667,67.1952,-39.2822],[989.762,1593.81,17.6,53.0174,-0.158977]]], + [73,1611.11,[[2222.7,-2000.97,46.1667,235.696,-80.9177],[2206.51,-1900.63,45.7333,233.307,-80.7523],[2190.21,-1801.36,45.3,230.882,-80.5822],[2173.78,-1703.19,44.8667,228.423,-80.4071],[2156.58,-1602.41,44.4167,225.832,-80.2198],[2139.25,-1502.85,43.9667,223.203,-80.0266],[2121.15,-1400.91,43.5,220.437,-79.8197],[2102.9,-1300.31,43.0333,217.631,-79.6059],[2084.5,-1201.08,42.5667,214.784,-79.3848],[2065.97,-1103.23,42.1,211.897,-79.156],[2046.63,-1003.38,41.6167,208.865,-78.9104],[2026.47,-901.692,41.1167,205.683,-78.6466],[2006.15,-801.672,40.6167,202.456,-78.3724],[1984.98,-700.095,40.1,199.074,-78.0773],[1963.66,-600.35,39.5833,195.644,-77.7695],[1942.16,-502.466,39.0667,192.167,-77.4483],[1919.1,-400.343,38.5167,188.415,-77.0903],[1895.86,-300.393,37.9667,184.612,-76.7149],[1872.45,-202.649,37.4167,180.758,-76.3205],[1847.41,-101.427,36.8333,176.616,-75.8798],[1822.18,-2.76259,36.25,172.42,-75.4143],[1795.3,98.7181,35.6333,167.927,-74.8926],[1767.48,199.876,35,163.255,-74.3222],[1739.43,297.882,34.3667,158.526,-73.7132],[1709.68,397.587,33.7,153.491,-73.026],[1678.19,498.403,33,148.146,-72.2478],[1644.93,599.699,32.2667,142.487,-71.3624],[1610.65,698.652,31.5167,136.645,-70.3729],[1573.78,798.948,30.7167,130.362,-69.2098],[1534.29,899.478,29.8667,123.643,-67.8329],[1492.13,999.042,28.9667,116.5,-66.1881],[1445.69,1099.61,27.9833,108.692,-64.1267],[1394.88,1198.86,26.9167,100.267,-61.5062],[1336.43,1299.37,25.7,90.8009,-57.8963],[1267.74,1399.09,24.2833,80.159,-52.5872],[1178.81,1499.26,22.4667,67.6361,-43.3322],[1016.05,1599.97,19.1833,52.0336,-16.3775],[940.948,1611.11,17.6833,50.2114,-0.00439551]]], + [74,1627.55,[[2105.17,-2000.07,46.3167,235.834,-81.4283],[2090.47,-1903.38,45.9,233.533,-81.2783],[2074.47,-1800.07,45.45,231.012,-81.1117],[2058.95,-1701.69,45.0167,228.548,-80.9464],[2042.7,-1600.7,44.5667,225.952,-80.7696],[2026.33,-1500.93,44.1167,223.318,-80.5873],[2009.84,-1402.38,43.6667,220.646,-80.3992],[1992.6,-1301.51,43.2,217.835,-80.1976],[1975.23,-1202,42.7333,214.983,-79.9891],[1957.1,-1100.39,42.25,211.986,-79.7656],[1938.83,-1000.29,41.7667,208.945,-79.5337],[1920.41,-901.727,41.2833,205.862,-79.2931],[1901.22,-801.396,40.7833,202.626,-79.0345],[1881.87,-702.752,40.2833,199.345,-78.7654],[1861.73,-602.621,39.7667,195.907,-78.4756],[1840.78,-501.207,39.2333,192.308,-78.163],[1819.66,-401.802,38.7,188.658,-77.8359],[1797.71,-301.427,38.15,184.842,-77.4822],[1774.92,-200.313,37.5833,180.857,-77.0991],[1751.96,-101.571,37.0167,176.818,-76.6955],[1728.13,-2.44197,36.4333,172.605,-76.2568],[1702.75,99.5346,35.8167,168.093,-75.7651],[1677.16,198.572,35.2,163.522,-75.242],[1649.98,299.731,34.55,158.645,-74.6532],[1621.88,399.988,33.8833,153.581,-74.0051],[1592.85,499.02,33.2,148.33,-73.289],[1562.16,598.764,32.4833,142.764,-72.4747],[1529.79,698.564,31.7333,136.879,-71.5438],[1494.99,799.77,30.9333,130.544,-70.4492],[1458.44,899.347,30.1,123.895,-69.1793],[1419.38,998.286,29.2167,116.808,-67.6626],[1376.29,1098.64,28.25,109.033,-65.7611],[1328.34,1199.63,27.1833,100.474,-63.301],[1274.69,1299.52,26,91.0789,-60.0051],[1211.42,1399.84,24.6167,80.3882,-55.144],[1132.16,1499.28,22.9,67.9771,-46.9683],[1003.77,1599.8,20.15,52.3756,-26.2681],[892.12,1627.55,17.7833,47.3818,-0.0898601]]], + [75,1643.12,[[1985.76,-2001.24,46.4667,236.01,-81.9448],[1971.38,-1900.49,46.0333,233.614,-81.7982],[1956.88,-1800.81,45.6,231.182,-81.6473],[1942.27,-1702.22,45.1667,228.715,-81.4921],[1926.99,-1601.01,44.7167,226.115,-81.326],[1911.59,-1501.01,44.2667,223.477,-81.1547],[1896.07,-1402.24,43.8167,220.8,-80.9779],[1879.85,-1301.12,43.35,217.983,-80.7885],[1863.5,-1201.37,42.8833,215.126,-80.5926],[1847.03,-1102.99,42.4167,212.227,-80.3899],[1829.85,-1002.59,41.9333,209.181,-80.1723],[1811.93,-900.326,41.4333,205.984,-79.9386],[1794.47,-803.051,40.95,202.849,-79.7038],[1775.66,-700.808,40.4333,199.45,-79.4426],[1756.71,-600.392,39.9167,196.001,-79.1701],[1737.62,-501.83,39.4,192.505,-78.8857],[1717.75,-402.063,38.8667,188.844,-78.5786],[1697.1,-301.31,38.3167,185.017,-78.2465],[1676.3,-202.755,37.7667,181.136,-77.8976],[1654.06,-100.666,37.1833,176.964,-77.5078],[1631.65,-1.12528,36.6,172.735,-77.0957],[1608.41,98.5608,36,168.326,-76.6467],[1584.35,198.121,35.3833,163.737,-76.156],[1558.78,299.837,34.7333,158.836,-75.6036],[1533.02,398.193,34.0833,153.874,-75.0112],[1505.72,497.914,33.4,148.595,-74.3402],[1476.86,598.388,32.6833,142.995,-73.5771],[1446.42,698.959,31.9333,137.07,-72.7043],[1414.37,798.926,31.15,130.82,-71.7],[1380,899.496,30.3167,124.113,-70.5105],[1343.28,999.497,29.4333,116.955,-69.0887],[1303.46,1099.35,28.4833,109.223,-67.3369],[1259.8,1198.76,27.45,100.812,-65.1081],[1210.08,1299.3,26.2833,91.3769,-62.0743],[1152.05,1399.93,24.9333,80.6762,-57.6473],[1080.48,1499.66,23.2833,68.2544,-50.3254],[973.1,1599.77,20.8333,52.7327,-33.3206],[841.663,1643.12,17.8667,44.535,-0.0415686]]], + [76,1657.78,[[1863.99,-2000.6,46.6,236.134,-82.4615],[1851.04,-1903.54,46.1833,233.828,-82.3296],[1837.47,-1803.63,45.75,231.394,-82.1886],[1823.26,-1701.04,45.3,228.828,-82.0378],[1809.47,-1603.37,44.8667,226.321,-81.8883],[1795.05,-1503.13,44.4167,223.679,-81.7281],[1779.98,-1400.47,43.95,220.899,-81.5567],[1765.33,-1302.75,43.5,218.178,-81.3859],[1750.02,-1202.74,43.0333,215.316,-81.2027],[1734.04,-1100.61,42.55,212.307,-81.0063],[1718.5,-1003.43,42.0833,209.36,-80.8098],[1701.72,-900.887,41.5833,206.156,-80.5913],[1684.8,-800,41.0833,202.906,-80.364],[1667.76,-700.797,40.5833,199.608,-80.1275],[1650.01,-600.08,40.0667,196.151,-79.8728],[1632.12,-501.215,39.55,192.645,-79.6067],[1613.52,-401.131,39.0167,188.974,-79.3195],[1594.18,-300.05,38.4667,185.135,-79.009],[1574.7,-201.163,37.9167,181.241,-78.6826],[1554.47,-101.611,37.35,177.175,-78.3285],[1533.48,-1.63766,36.7667,172.931,-77.9436],[1511.72,98.497,36.1667,168.506,-77.5241],[1489.19,198.523,35.55,163.897,-77.0656],[1465.87,298.155,34.9167,159.102,-76.563],[1441.12,399.59,34.25,153.988,-75.9954],[1415.56,499.841,33.5667,148.681,-75.368],[1389.17,598.575,32.8667,143.179,-74.6713],[1360.67,699.842,32.1167,137.216,-73.8562],[1331.31,798.455,31.35,131.056,-72.9386],[1299.14,899.933,30.5167,124.296,-71.8288],[1265.41,999.065,29.65,117.208,-70.5278],[1228.8,1098.41,28.7167,109.53,-68.925],[1187.93,1199.29,27.6833,101.007,-66.8491],[1142.74,1298.76,26.55,91.6897,-64.1062],[1089.79,1399.42,25.2333,81.0152,-60.0979],[1024.87,1499.85,23.6333,68.5413,-53.5156],[932.678,1599.78,21.3833,53.0861,-39.134],[790.429,1657.78,17.95,41.6689,-0.0577057]]], + [77,1671.52,[[1740.49,-2002.07,46.7333,236.298,-82.9838],[1727.93,-1900.95,46.3,233.896,-82.8562],[1715.28,-1800.9,45.8667,231.458,-82.7248],[1702.53,-1701.93,45.4333,228.984,-82.5896],[1689.19,-1600.32,44.9833,226.376,-82.445],[1676.25,-1503.62,44.55,223.828,-82.3015],[1662.21,-1400.74,44.0833,221.043,-82.1419],[1648.56,-1302.81,43.6333,218.318,-81.983],[1634.29,-1202.58,43.1667,215.451,-81.8126],[1619.41,-1100.23,42.6833,212.437,-81.6297],[1604.92,-1002.82,42.2167,209.484,-81.4469],[1589.29,-900.036,41.7167,206.274,-81.2435],[1574.05,-802.25,41.2333,203.125,-81.0392],[1558.18,-702.743,40.7333,199.821,-80.8193],[1541.64,-601.71,40.2167,196.357,-80.5825],[1524.98,-502.525,39.7,192.843,-80.3353],[1507.65,-402.108,39.1667,189.163,-80.0682],[1489.64,-300.68,38.6167,185.314,-79.7795],[1471.48,-201.442,38.0667,181.409,-79.476],[1452.64,-101.525,37.5,177.33,-79.1468],[1433.09,-1.17282,36.9167,173.072,-78.7888],[1412.82,99.3555,36.3167,168.631,-78.3986],[1391.83,199.789,35.7,164.004,-77.972],[1370.1,299.845,35.0667,159.188,-77.5043],[1347.63,399.225,34.4167,154.18,-76.9898],[1324.4,497.62,33.75,148.978,-76.4215],[1299.24,599.343,33.0333,143.316,-75.7592],[1273.28,699.02,32.3,137.451,-75.0189],[1245.94,798.383,31.5333,131.251,-74.1671],[1216.58,898.698,30.7167,124.578,-73.158],[1185.17,998.82,29.85,117.43,-71.9516],[1151.08,1099.24,28.9167,109.676,-70.464],[1113.64,1199.75,27.9,101.191,-68.5683],[1072.18,1299.33,26.7833,91.8737,-66.0619],[1024.14,1399.56,25.5,81.261,-62.4439],[966.243,1499.08,23.9667,68.9389,-56.6276],[885.568,1599.69,21.85,53.445,-44.2323],[738.43,1671.52,18.0333,38.7842,-0.152843]]], + [78,1684.33,[[1614.83,-2001.75,46.85,236.411,-83.5068],[1603.2,-1900.47,46.4167,234.006,-83.3887],[1591.49,-1800.26,45.9833,231.564,-83.2671],[1579.68,-1701.13,45.55,229.087,-83.1421],[1567.78,-1603.1,45.1167,226.573,-83.0132],[1555.33,-1502.48,44.6667,223.923,-82.8754],[1542.79,-1403.08,44.2167,221.234,-82.7331],[1529.68,-1301.32,43.75,218.404,-82.5806],[1516.47,-1200.9,43.2833,215.531,-82.4229],[1503.16,-1101.87,42.8167,212.616,-82.2596],[1489.27,-1000.77,42.3333,209.553,-82.0844],[1475.27,-901.186,41.85,206.443,-81.9025],[1461.16,-803.149,41.3667,203.289,-81.7136],[1445.97,-700.084,40.85,199.867,-81.5034],[1431.15,-602.074,40.35,196.507,-81.2914],[1415.72,-502.614,39.8333,192.985,-81.0628],[1399.67,-401.91,39.3,189.297,-80.8158],[1382.99,-300.182,38.75,185.437,-80.5488],[1366.18,-200.643,38.2,181.522,-80.2681],[1348.73,-100.411,37.6333,177.43,-79.9636],[1331.14,-2.57359,37.0667,173.281,-79.6421],[1312.37,98.3696,36.4667,168.827,-79.2817],[1292.94,199.234,35.85,164.184,-78.8877],[1272.82,299.736,35.2167,159.35,-78.4556],[1252.01,399.579,34.5667,154.321,-77.9801],[1230.51,498.453,33.9,149.095,-77.4548],[1207.75,598.366,33.2,143.538,-76.8573],[1183.73,698.682,32.4667,137.643,-76.174],[1158.41,798.719,31.7,131.406,-75.3874],[1131.23,899.758,30.8833,124.686,-74.4552],[1102.72,998.778,30.0333,117.622,-73.3627],[1071.73,1098.43,29.1167,109.938,-72.0158],[1037.65,1198.58,28.1167,101.503,-70.2995],[999.281,1299.69,27,92.0594,-67.992],[955.98,1399.24,25.75,81.538,-64.7492],[903.578,1499.41,24.25,69.1657,-59.5218],[833.077,1599.69,22.25,53.7684,-48.8111],[685.081,1684.33,18.1,35.883,-0.0863165]]], + [79,1696.18,[[1487.59,-2003.58,46.9667,236.564,-84.0351],[1476.9,-1902.13,46.5333,234.157,-83.9266],[1466.12,-1801.74,46.1,231.713,-83.815],[1455.26,-1702.44,45.6667,229.233,-83.7001],[1443.9,-1600.48,45.2167,226.619,-83.5772],[1432.88,-1503.44,44.7833,224.064,-83.4552],[1420.91,-1400.19,44.3167,221.271,-83.3196],[1409.29,-1301.9,43.8667,218.538,-83.1845],[1397.14,-1201.29,43.4,215.661,-83.0396],[1384.9,-1102.05,42.9333,212.741,-82.8897],[1372.13,-1000.75,42.45,209.673,-82.7287],[1359.25,-900.956,41.9667,206.558,-82.5617],[1346.28,-802.708,41.4833,203.398,-82.3881],[1332.76,-702.719,40.9833,200.081,-82.2014],[1318.68,-601.183,40.4667,196.602,-82.0002],[1304.49,-501.49,39.95,193.072,-81.7902],[1289.73,-400.544,39.4167,189.375,-81.5633],[1274.86,-301.623,38.8833,185.623,-81.3256],[1259.4,-201.763,38.3333,181.699,-81.068],[1243.35,-101.198,37.7667,177.597,-80.7886],[1226.71,-0.173251,37.1833,173.313,-80.4846],[1209.93,98.2791,36.6,168.969,-80.1628],[1192.06,199.517,35.9833,164.311,-79.8011],[1174.06,297.792,35.3667,159.588,-79.4151],[1154.93,398.123,34.7167,154.541,-78.9793],[1134.66,499.94,34.0333,149.163,-78.4853],[1114.24,597.95,33.35,143.713,-77.9499],[1092.15,698.832,32.6167,137.789,-77.3232],[1068.88,799.466,31.85,131.518,-76.6015],[1044.41,899.13,31.05,124.895,-75.7642],[1018.2,998.948,30.2,117.781,-74.7631],[989.712,1099.47,29.2833,110.034,-73.5279],[958.911,1198.97,28.3,101.658,-71.9805],[924.179,1299.88,27.2,92.2439,-69.8989],[884.919,1399.78,25.9667,81.6989,-66.9707],[838.381,1499.04,24.5167,69.4645,-62.3587],[776.326,1599.62,22.6,54.0797,-53.0388],[631.093,1696.18,18.1667,32.9642,-0.100328]]], + [80,1707.06,[[1358.42,-2003.66,47.0667,236.666,-84.5644],[1348.67,-1902.08,46.6333,234.256,-84.4655],[1338.85,-1801.55,46.2,231.81,-84.3639],[1328.94,-1702.11,45.7667,229.327,-84.2592],[1318.58,-1600,45.3167,226.71,-84.1472],[1308.53,-1502.81,44.8833,224.151,-84.036],[1298.01,-1403.08,44.4333,221.456,-83.9169],[1287.02,-1300.96,43.9667,218.618,-83.7893],[1275.94,-1200.19,43.5,215.737,-83.6573],[1264.78,-1100.8,43.0333,212.812,-83.5206],[1253.53,-1002.79,42.5667,209.845,-83.3791],[1241.79,-902.781,42.0833,206.726,-83.227],[1229.55,-800.939,41.5833,203.452,-83.0636],[1217.22,-700.771,41.0833,200.128,-82.8933],[1204.8,-602.301,40.5833,196.755,-82.716],[1191.86,-502.36,40.0667,193.219,-82.5247],[1178.4,-401.155,39.5333,189.514,-82.3182],[1164.84,-301.973,39,185.755,-82.1018],[1150.75,-201.84,38.45,181.822,-81.8673],[1136.12,-100.992,37.8833,177.71,-81.6128],[1121.38,-2.532,37.3167,173.538,-81.3442],[1105.65,99.0768,36.7167,169.058,-81.0429],[1089.8,197.926,36.1167,164.512,-80.7226],[1072.94,299.227,35.4833,159.647,-80.3618],[1055.5,399.897,34.8333,154.582,-79.9647],[1037.47,499.628,34.1667,149.314,-79.5258],[1018.85,598.094,33.4833,143.842,-79.0387],[998.718,699.471,32.75,137.891,-78.4683],[977.966,798.481,32,131.726,-77.8262],[955.658,898.808,31.2,125.067,-77.0653],[931.769,999.338,30.35,117.908,-76.155],[906.278,1098.86,29.45,110.246,-75.053],[878.206,1199.34,28.4667,101.796,-73.6473],[847.033,1299.9,27.3833,92.4249,-71.7854],[811.741,1399.97,26.1667,81.8769,-69.1642],[770.313,1499.07,24.75,69.6856,-65.0815],[715.752,1599.84,22.9,54.3152,-56.9569],[611.967,1699.96,19.4167,32.1518,-21.3467],[576.482,1707.05,18.2333,30.0289,-0.219966]]], + [81,1716.95,[[1227.5,-2002.01,47.15,236.717,-85.0951],[1218.7,-1900.31,46.7167,234.305,-85.0059],[1210.17,-1803.53,46.3,231.951,-84.9177],[1200.89,-1700.13,45.85,229.37,-84.8197],[1191.88,-1601.67,45.4167,226.846,-84.7224],[1182.46,-1500.6,44.9667,224.187,-84.6183],[1172.96,-1400.75,44.5167,221.487,-84.5108],[1163.39,-1302.14,44.0667,218.747,-84.3998],[1153.39,-1201.2,43.6,215.862,-84.2808],[1143.32,-1101.63,43.1333,212.935,-84.1576],[1133.17,-1003.45,42.6667,209.964,-84.0299],[1122.57,-903.249,42.1833,206.841,-83.8929],[1111.53,-801.215,41.6833,203.561,-83.7455],[1100.4,-700.852,41.1833,200.232,-83.592],[1089.18,-602.186,40.6833,196.854,-83.4321],[1077.51,-502.04,40.1667,193.311,-83.2597],[1065.36,-400.622,39.6333,189.599,-83.0734],[1053.12,-301.224,39.1,185.832,-82.8782],[1040.4,-200.868,38.55,181.89,-82.6667],[1027.59,-102.726,38,177.891,-82.4441],[1013.89,-1.09151,37.4167,173.586,-82.1949],[1000.09,97.9759,36.8333,169.219,-81.9308],[985.383,199.87,36.2167,164.535,-81.6341],[970.566,298.808,35.6,159.783,-81.3173],[954.827,399.843,34.95,154.702,-80.9596],[938.56,499.951,34.2833,149.417,-80.5641],[921.759,598.808,33.6,143.925,-80.1251],[904.003,698.344,32.8833,138.085,-79.623],[885.277,797.896,32.1333,131.893,-79.0453],[865.149,898.807,31.3333,125.201,-78.3603],[843.594,999.962,30.4833,118.001,-77.5404],[821.021,1098.36,29.6,110.431,-76.5669],[795.694,1199.73,28.6167,101.916,-75.3024],[768.004,1299.79,27.55,92.6002,-73.6536],[736.605,1399.86,26.35,82.0686,-71.3315],[699.677,1499.64,24.95,69.8129,-67.708],[652.246,1599.84,23.1667,54.5617,-60.6959],[570.808,1699.92,20.1333,32.5177,-33.967],[520.812,1716.95,18.2833,27.0786,-0.134757]]], + [82,1725.84,[[1095.29,-2002.55,47.2333,236.81,-85.6308],[1087.44,-1900.74,46.8,234.396,-85.5513],[1079.84,-1803.84,46.3833,232.04,-85.4728],[1071.57,-1700.31,45.9333,229.457,-85.3855],[1063.54,-1601.73,45.5,226.931,-85.2988],[1055.14,-1500.54,45.05,224.269,-85.206],[1046.67,-1400.56,44.6,221.566,-85.1103],[1038.14,-1301.81,44.15,218.823,-85.0114],[1029.23,-1200.74,43.6833,215.935,-84.9054],[1020.25,-1101.03,43.2167,213.004,-84.7957],[1011.2,-1002.71,42.75,210.029,-84.682],[1001.76,-902.366,42.2667,206.901,-84.5599],[991.911,-800.181,41.7667,203.617,-84.4286],[982.322,-702.988,41.2833,200.394,-84.2965],[971.994,-600.843,40.7667,196.898,-84.1494],[961.585,-500.536,40.25,193.349,-83.9957],[951.098,-402.094,39.7333,189.747,-83.8351],[940.19,-302.464,39.2,185.974,-83.6614],[928.854,-201.865,38.65,182.025,-83.4732],[917.086,-100.531,38.0833,177.896,-83.269],[905.227,-1.58081,37.5167,173.705,-83.0533],[892.926,97.7515,36.9333,169.328,-82.8183],[879.822,199.929,36.3167,164.633,-82.5541],[866.617,299.152,35.7,159.868,-82.2722],[852.951,397.934,35.0667,154.905,-81.9621],[838.457,498.446,34.4,149.605,-81.6106],[823.485,597.721,33.7167,144.095,-81.2204],[807.294,699.973,32.9833,138.099,-80.7632],[790.606,799.888,32.2333,131.88,-80.2482],[773.041,899.133,31.45,125.297,-79.651],[754.213,998.895,30.6167,118.202,-78.9365],[733.719,1099.8,29.7167,110.444,-78.0544],[711.919,1198.48,28.7667,102.161,-76.9687],[687.251,1299.56,27.7,92.768,-75.506],[659.667,1399.47,26.5167,82.2711,-73.4751],[627.165,1499.73,25.1333,69.9803,-70.3018],[586.106,1599.78,23.4,54.791,-64.2754],[519.586,1699.98,20.6167,32.8316,-43.0292],[464.651,1725.84,18.3333,24.1133,-0.158712]]], + [83,1733.72,[[961.581,-2001.38,47.3,236.854,-86.1681],[954.963,-1903.38,46.8833,234.531,-86.1012],[948.026,-1802.5,46.45,232.079,-86.0295],[941.037,-1702.69,46.0167,229.589,-85.9558],[933.724,-1600.2,45.5667,226.965,-85.8769],[926.627,-1502.64,45.1333,224.399,-85.7986],[919.202,-1402.52,44.6833,221.694,-85.7147],[911.72,-1303.64,44.2333,218.949,-85.6281],[903.902,-1202.41,43.7667,216.059,-85.5352],[896.024,-1102.55,43.3,213.126,-85.4391],[887.802,-1000.59,42.8167,210.041,-85.3359],[879.516,-900.138,42.3333,206.909,-85.2287],[871.167,-801.224,41.85,203.729,-85.1174],[862.465,-700.54,41.35,200.391,-84.9976],[853.696,-601.549,40.85,197.003,-84.8728],[844.566,-501.064,40.3333,193.449,-84.7381],[835.367,-402.443,39.8167,189.842,-84.5974],[825.798,-302.625,39.2833,186.063,-84.4451],[815.855,-201.832,38.7333,182.108,-84.2802],[805.532,-100.295,38.1667,177.971,-84.1012],[795.129,-1.14124,37.6,173.772,-83.9122],[784.339,98.4032,37.0167,169.386,-83.7062],[773.156,198.078,36.4167,164.808,-83.4811],[761.575,297.609,35.8,160.034,-83.2343],[749.273,399.277,35.15,154.927,-82.9555],[736.878,497.564,34.5,149.746,-82.6552],[723.426,599.574,33.8,144.085,-82.3049],[709.547,699.825,33.0833,138.205,-81.9133],[695.237,797.956,32.35,132.104,-81.4728],[679.506,899.794,31.55,125.355,-80.939],[663.324,998.056,30.7333,118.372,-80.3262],[645.352,1099.57,29.8333,110.574,-79.5546],[626.235,1198.92,28.8833,102.241,-78.6044],[604.941,1299.23,27.8333,92.9271,-77.345],[581.097,1398.83,26.6667,82.4822,-75.5969],[552.945,1499.38,25.3,70.1844,-72.8637],[517.643,1599.8,23.6,54.9799,-67.7177],[463.189,1699.66,21,33.2183,-50.7279],[408.018,1733.72,18.3833,21.1343,-0.339981]]], + [84,1740.57,[[826.788,-2002.45,47.3667,236.94,-86.7097],[820.873,-1900.45,46.9333,234.522,-86.6499],[815.142,-1803.37,46.5167,232.162,-86.5907],[809.137,-1703.46,46.0833,229.671,-86.5274],[802.854,-1600.87,45.6333,227.045,-86.4597],[796.756,-1503.21,45.2,224.477,-86.3924],[790.377,-1402.98,44.75,221.771,-86.3204],[783.71,-1300.35,44.2833,218.921,-86.2432],[777.232,-1202.65,43.8333,216.131,-86.1663],[770.463,-1102.67,43.3667,213.195,-86.0838],[763.399,-1000.59,42.8833,210.107,-85.9951],[756.28,-900.023,42.4,206.972,-85.9031],[749.107,-800.987,41.9167,203.789,-85.8075],[741.63,-700.175,41.4167,200.447,-85.7047],[734.096,-601.055,40.9167,197.054,-85.5975],[726.252,-500.436,40.4,193.496,-85.4818],[718.348,-401.68,39.8833,189.883,-85.361],[710.126,-301.721,39.35,186.099,-85.2302],[701.583,-200.782,38.8,182.137,-85.0886],[692.975,-102.05,38.25,178.116,-84.9395],[684.039,-2.67204,37.6833,173.912,-84.7773],[674.505,99.9182,37.0833,169.392,-84.5955],[664.896,199.758,36.4833,164.805,-84.402],[654.946,299.46,35.8667,160.02,-84.19],[644.648,398.74,35.2333,155.033,-83.9568],[633.726,499.779,34.5667,149.706,-83.6923],[622.445,599.6,33.8833,144.165,-83.3986],[610.801,697.865,33.1833,138.407,-83.0707],[598.229,798.599,32.4333,132.148,-82.6844],[584.998,898.709,31.65,125.518,-82.2362],[570.814,999.398,30.8167,118.364,-81.6997],[555.663,1099.49,29.9333,110.677,-81.0498],[539.243,1199.39,28.9833,102.3,-80.2349],[521.245,1298.8,27.95,93.0765,-79.1727],[500.767,1399.28,26.7833,82.5489,-77.6751],[476.884,1499.74,25.4333,70.2697,-75.3614],[447.166,1599.99,23.7667,55.1092,-71.0463],[402.516,1699.89,21.2833,33.4039,-57.295],[350.628,1740.57,18.4167,18.1425,-0.241574]]], + [85,1746.39,[[690.791,-2001.81,47.4167,236.976,-87.2528],[686.041,-1903.65,47,234.651,-87.2047],[681.064,-1802.6,46.5667,232.196,-87.1535],[676.049,-1702.63,46.1333,229.703,-87.1006],[670.996,-1603.74,45.7,227.172,-87.0461],[665.708,-1502.23,45.25,224.505,-86.9879],[660.38,-1401.93,44.8,221.796,-86.9278],[655.011,-1302.86,44.35,219.046,-86.8656],[649.401,-1201.44,43.8833,216.151,-86.7991],[643.748,-1101.39,43.4167,213.212,-86.7302],[638.052,-1002.73,42.95,210.228,-86.6587],[632.108,-902.021,42.4667,207.091,-86.582],[626.119,-802.849,41.9833,203.906,-86.5022],[619.876,-701.895,41.4833,200.562,-86.4165],[613.585,-602.632,40.9833,197.167,-86.327],[607.035,-501.863,40.4667,193.605,-86.2306],[600.435,-402.955,39.95,189.99,-86.1298],[593.57,-302.838,39.4167,186.202,-86.0208],[586.437,-201.734,38.8667,182.236,-85.9027],[579.249,-102.836,38.3167,178.21,-85.7783],[571.567,-0.392622,37.7333,173.875,-85.6389],[563.826,99.4912,37.15,169.474,-85.4913],[555.802,199.518,36.55,164.88,-85.3299],[547.493,299.414,35.9333,160.086,-85.1531],[538.895,398.895,35.3,155.09,-84.9584],[530.003,497.66,34.65,149.887,-84.7435],[520.584,597.795,33.9667,144.336,-84.4988],[510.63,698.683,33.25,138.427,-84.2189],[500.133,799.664,32.5,132.152,-83.8964],[489.321,897.952,31.7333,125.643,-83.5305],[477.478,999.04,30.9,118.467,-83.0834],[464.828,1099.56,30.0167,110.751,-82.5416],[451.119,1199.92,29.0667,102.338,-81.8619],[436.091,1299.84,28.0333,93.0647,-80.9754],[419.239,1399.54,26.8833,82.6181,-79.7438],[399.548,1499.73,25.55,70.3818,-77.841],[375.238,1599.58,23.9167,55.3173,-74.3312],[339.227,1699.84,21.5167,33.6296,-63.3946],[292.904,1746.39,18.45,15.1392,-0.317513]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 571.567; +_maxRange = 3282.2; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg1.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg1.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg2.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg2.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg3.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_illumBtab_LA_chg3.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg0.sqf new file mode 100644 index 0000000000..f1cc9fc804 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg0.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_wp_pd_chg0 +// Ammo: ace_arty_82mm_wp_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,122.653,[[1213.62,-2002.91,26.4167,192.344,-77.9004],[1191.36,-1900.52,25.8667,188.586,-77.5555],[1168.93,-1800.29,25.3167,184.775,-77.1937],[1146.32,-1702.26,24.7667,180.913,-76.8136],[1122.15,-1600.74,24.1833,176.761,-76.3889],[1097.79,-1501.77,23.6,172.555,-75.9401],[1072.55,-1402.68,23,168.173,-75.4512],[1045.69,-1301.11,22.3667,163.488,-74.9022],[1017.9,-1200.13,21.7167,158.62,-74.3001],[989.173,-1100.07,21.05,153.567,-73.6374],[959.496,-1001.23,20.3667,148.329,-72.9053],[928.127,-901.695,19.65,142.777,-72.0729],[895.037,-802.115,18.9,136.909,-71.1216],[859.456,-701.145,18.1,130.595,-70.0033],[822.091,-601.816,17.2667,123.969,-68.7063],[781.409,-501.346,16.3667,116.778,-67.127],[737.35,-401.424,15.4,109.039,-65.1824],[688.325,-300.916,14.3333,100.529,-62.6685],[632.695,-200.263,13.1333,91.0697,-59.2523],[567.994,-100.799,11.75,80.4827,-54.2865],[485.365,-0.789177,10,68.0246,-45.7767],[348.442,99.6637,7.13333,52.4873,-23.697],[244.687,122.652,4.98333,48.4532,-0.11457]]], + [46,126.913,[[1197.15,-2001.74,26.5167,192.333,-78.1129],[1175.94,-1902.34,25.9833,188.685,-77.7845],[1153.9,-1801.97,25.4333,184.871,-77.4294],[1131.01,-1700.86,24.8667,180.887,-77.0447],[1107.94,-1602.12,24.3,176.85,-76.6395],[1083.33,-1500.2,23.7,172.517,-76.1861],[1058.52,-1401.03,23.1,168.128,-75.7055],[1032.82,-1301.99,22.4833,163.56,-75.1804],[1005.52,-1200.84,21.8333,158.685,-74.5893],[977.304,-1100.59,21.1667,153.624,-73.9387],[948.149,-1001.56,20.4833,148.376,-73.22],[917.33,-901.822,19.7667,142.813,-72.4027],[884.821,-802.028,19.0167,136.932,-71.4685],[849.865,-700.827,18.2167,130.602,-70.37],[813.156,-601.255,17.3833,123.957,-69.0958],[773.188,-500.52,16.4833,116.742,-67.5436],[729.904,-400.313,15.5167,108.975,-65.6314],[682.495,-300.984,14.4667,100.558,-63.1998],[628.612,-201.102,13.2833,91.1749,-59.8958],[565.063,-100.792,11.9,80.5005,-55.0254],[484.682,-0.525895,10.1667,68.0012,-46.7476],[354.93,99.9309,7.4,52.425,-25.8462],[244.357,126.911,5.06667,47.5929,-0.088572]]], + [47,131.166,[[1180.14,-2000.86,26.6167,192.333,-78.3297],[1159.31,-1901.38,26.0833,188.681,-78.0072],[1137.66,-1800.93,25.5333,184.862,-77.6584],[1115.85,-1702.67,24.9833,180.991,-77.2921],[1092.54,-1600.91,24.4,176.83,-76.8827],[1069.04,-1501.7,23.8167,172.613,-76.4501],[1044.68,-1402.35,23.2167,168.219,-75.9787],[1018.77,-1300.5,22.5833,163.52,-75.4493],[992.65,-1201.8,21.95,158.762,-74.8839],[964.942,-1101.35,21.2833,153.693,-74.2458],[936.317,-1002.13,20.6,148.436,-73.5407],[906.059,-902.176,19.8833,142.862,-72.7389],[874.141,-802.157,19.1333,136.968,-71.8222],[839.82,-700.715,18.3333,130.622,-70.7442],[803.779,-600.89,17.5,123.959,-69.4933],[765.267,-501.684,16.6167,116.855,-67.9992],[722.775,-401.034,15.65,109.058,-66.1253],[676.235,-301.219,14.6,100.603,-63.7411],[623.338,-200.785,13.4167,91.1656,-60.4988],[561.707,-100.933,12.05,80.5361,-55.7774],[483.569,-0.409585,10.3333,67.9992,-47.7354],[360.848,99.8357,7.66667,52.4324,-28.0171],[243.809,131.165,5.15,46.7188,-0.0801113]]], + [48,135.409,[[1162.59,-2000.29,26.7167,192.344,-78.5508],[1142.15,-1900.73,26.1833,188.688,-78.2343],[1120.91,-1800.18,25.6333,184.865,-77.8921],[1099.5,-1701.84,25.0833,180.989,-77.5325],[1077.28,-1602.86,24.5167,176.942,-77.1425],[1053.56,-1500.67,23.9167,172.599,-76.7061],[1029.66,-1401.23,23.3167,168.199,-76.2434],[1004.9,-1301.91,22.7,163.617,-75.7378],[978.598,-1200.46,22.05,158.726,-75.1687],[952.089,-1102.38,21.4,153.775,-74.5584],[923.315,-1000.56,20.7,148.38,-73.8497],[893.621,-900.487,19.9833,142.794,-73.0622],[862.298,-800.339,19.2333,136.886,-72.1617],[829.322,-700.818,18.45,130.657,-71.1255],[793.959,-600.728,17.6167,123.976,-69.8987],[756.171,-501.239,16.7333,116.849,-68.4327],[714.479,-400.276,15.7667,109.023,-66.5934],[668.814,-300.119,14.7167,100.53,-64.2517],[617.647,-200.627,13.55,91.1729,-61.1134],[557.184,-100.112,12.1833,80.4627,-56.4777],[482.021,-0.450041,10.5,68.0202,-48.7392],[365.432,99.8047,7.91667,52.4332,-30.0496],[243.04,135.408,5.23333,45.8313,-0.0904206]]], + [49,139.636,[[1144.51,-2000.04,26.8167,192.367,-78.776],[1124.47,-1900.39,26.2833,188.707,-78.4657],[1104.27,-1802.77,25.75,184.996,-78.1406],[1082.64,-1701.31,25.1833,180.999,-77.7776],[1060.85,-1602.23,24.6167,176.947,-77.3952],[1038.24,-1502.74,24.0333,172.72,-76.9794],[1014.15,-1400.38,23.4167,168.191,-76.5134],[989.868,-1300.96,22.8,163.603,-76.0175],[964.737,-1201.95,22.1667,158.83,-75.474],[938.075,-1101.19,21.5,153.744,-74.8605],[910.531,-1001.62,20.8167,148.468,-74.1824],[881.416,-901.317,20.1,142.871,-73.411],[850.704,-800.924,19.35,136.951,-72.529],[818.37,-701.146,18.5667,130.706,-71.5139],[783.696,-600.779,17.7333,124.007,-70.3117],[746.644,-500.994,16.85,116.858,-68.8748],[706.471,-401.38,15.9,109.138,-67.1045],[661.702,-300.708,14.85,100.607,-64.8129],[611.537,-200.638,13.6833,91.1973,-61.7394],[552.985,-100.568,12.3333,80.5359,-57.2558],[480.036,-0.657659,10.6667,68.0652,-49.7583],[368.719,99.9057,8.15,52.4146,-31.9484],[242.049,139.635,5.31667,44.9305,-0.120935]]], + [50,143.842,[[1125.91,-2000.12,26.9167,192.401,-79.0053],[1106.26,-1900.37,26.3833,188.737,-78.7013],[1086.47,-1802.65,25.85,185.023,-78.3828],[1065.28,-1701.09,25.2833,181.021,-78.0272],[1043.92,-1601.9,24.7167,176.964,-77.6525],[1021.76,-1502.3,24.1333,172.732,-77.2451],[998.79,-1402.56,23.5333,168.32,-76.8012],[974.355,-1300.29,22.9,163.601,-76.3025],[949.726,-1201.16,22.2667,158.821,-75.7699],[923.598,-1100.26,21.6,153.725,-75.1685],[896.605,-1000.56,20.9167,148.439,-74.5037],[868.071,-900.112,20.2,142.831,-73.7475],[838.644,-801.753,19.4667,137.029,-72.9026],[806.963,-701.707,18.6833,130.771,-71.909],[772.988,-601.051,17.85,124.053,-70.7321],[736.683,-500.959,16.9667,116.882,-69.325],[697.321,-401.011,16.0167,109.134,-67.5907],[654.153,-301.492,14.9833,100.702,-65.3831],[605.006,-200.827,13.8167,91.2399,-62.3763],[547.642,-100.061,12.4667,80.4997,-57.9839],[476.89,-0.162181,10.8167,68.015,-50.7048],[371.473,99.7132,8.38333,52.452,-33.8672],[240.833,143.84,5.4,44.0168,-0.173209]]], + [51,148.022,[[1106.77,-2000.54,27.0167,192.447,-79.2386],[1087.54,-1900.68,26.4833,188.78,-78.9411],[1068.15,-1802.86,25.95,185.062,-78.6293],[1047.4,-1701.19,25.3833,181.056,-78.2812],[1026.48,-1601.88,24.8167,176.994,-77.9144],[1004.78,-1502.17,24.2333,172.756,-77.5156],[982.29,-1402.3,23.6333,168.339,-77.081],[958.993,-1302.55,23.0167,163.738,-76.606],[934.243,-1200.64,22.3667,158.825,-76.0711],[909.298,-1102.08,21.7167,153.849,-75.4975],[882.87,-1002.15,21.0333,148.555,-74.8477],[854.933,-901.452,20.3167,142.937,-74.1083],[825.464,-800.646,19.5667,136.991,-73.2626],[794.439,-700.432,18.7833,130.716,-72.289],[761.836,-601.555,17.9667,124.115,-71.1597],[726.29,-501.142,17.0833,116.922,-69.7831],[687.749,-400.846,16.1333,109.147,-68.0859],[645.483,-300.946,15.1,100.679,-65.9242],[598.052,-201.202,13.95,91.3014,-63.0237],[542.588,-100.87,12.6167,80.6145,-58.786],[474.032,-0.719599,10.9833,68.1103,-51.7539],[372.978,99.7266,8.6,52.4557,-35.6569],[238.673,148.022,5.46667,43.0924,-0.031601]]], + [52,152.171,[[1087.11,-2001.31,27.1167,192.506,-79.4758],[1068.29,-1901.34,26.5833,188.835,-79.1849],[1048.73,-1800.38,26.0333,184.996,-78.8701],[1029.01,-1701.62,25.4833,181.104,-78.5395],[1008.55,-1602.19,24.9167,177.038,-78.1807],[987.314,-1502.35,24.3333,172.795,-77.7907],[965.305,-1402.35,23.7333,168.371,-77.3656],[942.508,-1302.47,23.1167,163.764,-76.901],[918.29,-1200.42,22.4667,158.844,-76.3778],[893.881,-1101.72,21.8167,153.86,-75.8165],[868.02,-1001.63,21.1333,148.556,-75.1807],[840.683,-900.771,20.4167,142.926,-74.4572],[812.49,-801.988,19.6833,137.101,-73.6487],[782.136,-701.483,18.9,130.812,-72.6976],[749.585,-600.337,18.0667,124.059,-71.5705],[715.461,-501.554,17.2,116.98,-70.2491],[677.754,-400.896,16.25,109.178,-68.5898],[636.402,-300.599,15.2167,100.673,-66.4754],[589.998,-200.41,14.0667,91.2469,-63.6359],[536.415,-100.715,12.75,80.6195,-59.5399],[470.037,-0.568875,11.1333,68.1092,-52.7326],[373.968,99.4684,8.81667,52.5109,-37.4656],[237.018,152.17,5.55,42.1532,-0.127898]]], + [53,156.283,[[1066.93,-2002.43,27.2167,192.578,-79.7168],[1048.53,-1902.35,26.6833,188.904,-79.4326],[1029.4,-1801.27,26.1333,185.062,-79.1251],[1010.13,-1702.38,25.5833,181.165,-78.802],[990.114,-1602.83,25.0167,177.095,-78.4515],[968.759,-1500.04,24.4167,172.725,-78.0592],[947.835,-1402.72,23.8333,168.418,-77.655],[924.941,-1300.04,23.2,163.679,-77.1883],[901.867,-1200.49,22.5667,158.877,-76.6896],[878.001,-1101.64,21.9167,153.885,-76.1411],[852.716,-1001.39,21.2333,148.572,-75.5196],[825.988,-900.363,20.5167,142.932,-74.8123],[798.423,-801.403,19.7833,137.094,-74.0218],[768.745,-700.708,19,130.79,-73.0917],[737.559,-601.326,18.1833,124.155,-72.0124],[703.555,-500.362,17.3,116.918,-70.696],[667.338,-401.17,16.3667,109.226,-69.1022],[626.912,-300.46,15.3333,100.687,-67.0363],[582.208,-201.18,14.2,91.3482,-64.3043],[529.831,-100.746,12.8833,80.6462,-60.3065],[465.62,-0.600073,11.2833,68.1338,-53.7269],[373.76,99.481,9.01667,52.5197,-39.1517],[234.447,156.283,5.61667,41.2038,-0.0242625]]], + [54,160.355,[[1045.67,-2000.76,27.3,192.548,-79.9531],[1027.69,-1900.62,26.7667,188.87,-79.6752],[1009.57,-1802.51,26.2333,185.14,-79.3839],[990.164,-1700.53,25.6667,181.121,-79.0588],[970.61,-1600.91,25.1,177.045,-78.7161],[950.326,-1500.88,24.5167,172.791,-78.3435],[929.299,-1400.67,23.9167,168.355,-77.9373],[907.52,-1300.58,23.3,163.734,-77.4933],[884.979,-1200.88,22.6667,158.926,-77.0065],[861.665,-1101.86,22.0167,153.926,-76.4709],[836.964,-1001.45,21.3333,148.604,-75.8641],[810.852,-900.235,20.6167,142.953,-75.1734],[783.923,-801.088,19.8833,137.103,-74.4013],[754.931,-700.192,19.1,130.785,-73.4927],[724.464,-600.599,18.2833,124.132,-72.4381],[691.876,-501.251,17.4167,117.011,-71.1772],[656.499,-401.675,16.4833,109.293,-69.6227],[617.013,-300.537,15.45,100.719,-67.6067],[573.346,-200.782,14.3167,91.3333,-64.9386],[522.837,-100.971,13.0167,80.6953,-61.0852],[460.779,-0.821592,11.4333,68.1852,-54.736],[372.397,99.8147,9.2,52.4727,-40.7218],[232.348,160.353,5.7,40.2405,-0.171951]]], + [55,164.381,[[1024.46,-2002.63,27.4,192.645,-80.2015],[1006.91,-1902.36,26.8667,188.965,-79.9305],[988.669,-1801.08,26.3167,185.114,-79.6375],[970.287,-1702,25.7667,181.209,-79.3296],[951.202,-1602.24,25.2,177.13,-78.9954],[931.404,-1502.06,24.6167,172.871,-78.6321],[910.882,-1401.7,24.0167,168.431,-78.236],[889.625,-1301.45,23.4,163.804,-77.803],[867.624,-1201.58,22.7667,158.989,-77.3283],[844.868,-1102.4,22.1167,153.982,-76.806],[820.759,-1001.8,21.4333,148.652,-76.2141],[795.273,-900.399,20.7167,142.99,-75.5403],[768.99,-801.055,19.9833,137.128,-74.7871],[741.296,-702.043,19.2167,130.932,-73.9203],[710.955,-600.13,18.3833,124.127,-72.8712],[679.147,-500.543,17.5167,116.985,-71.6402],[644.618,-400.708,16.5833,109.241,-70.1218],[606.702,-300.84,15.5667,100.772,-68.1861],[564.087,-200.594,14.4333,91.3391,-65.5838],[514.794,-100.213,13.1333,80.632,-61.8207],[454.872,-0.303761,11.5667,68.1354,-55.6814],[370.568,99.9224,9.38333,52.4679,-42.315],[229.363,164.379,5.76667,39.2671,-0.113051]]], + [56,168.355,[[1002.21,-2001.71,27.4833,192.642,-80.4454],[985.089,-1901.37,26.95,188.957,-80.1811],[967.299,-1800.02,26.4,185.103,-79.8953],[949.371,-1700.86,25.85,181.193,-79.5949],[930.757,-1601.02,25.2833,177.108,-79.2689],[911.447,-1500.76,24.7,172.844,-78.9144],[891.431,-1400.32,24.1,168.397,-78.528],[871.261,-1302.66,23.5,163.89,-78.1173],[849.241,-1200.03,22.85,158.941,-77.6422],[827.047,-1100.75,22.2,153.926,-77.1324],[803.532,-1000.05,21.5167,148.585,-76.5547],[779.256,-900.862,20.8167,143.045,-75.9128],[753.626,-801.31,20.0833,137.171,-75.1788],[726.621,-702.08,19.3167,130.961,-74.3341],[697.628,-601.91,18.5,124.276,-73.333],[666.016,-500.087,17.6167,116.978,-72.111],[632.949,-401.698,16.7,109.347,-70.6582],[595.981,-301.378,15.6833,100.845,-68.7741],[554.431,-200.622,14.55,91.3665,-66.2395],[506.988,-100.846,13.2667,80.7281,-62.6233],[449.192,-0.924732,11.7167,68.2426,-56.719],[368.27,99.7932,9.56667,52.5074,-43.9282],[226.176,168.354,5.83333,38.2822,-0.0766285]]], + [57,172.274,[[979.47,-2001.19,27.5667,192.652,-80.693],[962.791,-1900.76,27.0333,188.964,-80.4355],[945.984,-1802.37,26.5,185.223,-80.1656],[927.988,-1700.09,25.9333,181.191,-79.8643],[909.851,-1600.17,25.3667,177.102,-79.5467],[891.576,-1502.65,24.8,172.955,-79.2114],[872.077,-1402.04,24.2,168.504,-78.8354],[851.88,-1301.53,23.5833,163.865,-78.4244],[830.976,-1201.39,22.95,159.036,-77.9736],[809.356,-1101.93,22.3,154.014,-77.4776],[786.449,-1001.03,21.6167,148.666,-76.9154],[762.8,-901.633,20.9167,143.116,-76.2908],[737.831,-801.863,20.1833,137.232,-75.5764],[710.949,-700.296,19.4,130.873,-74.7353],[683.279,-601.985,18.6,124.308,-73.7795],[653.066,-501.755,17.7333,117.128,-72.6134],[620.27,-401.22,16.8,109.334,-71.1742],[584.255,-300.584,15.7833,100.799,-69.3377],[544.376,-200.875,14.6667,91.4161,-66.9053],[498.163,-100.496,13.3833,80.7116,-63.3841],[442.474,-0.8017,11.85,68.2477,-57.695],[365.499,99.4161,9.75,52.5929,-45.5588],[222.788,172.274,5.9,37.2859,-0.0647017]]], + [58,176.133,[[956.254,-2001.06,27.65,192.676,-80.9443],[940.019,-1900.55,27.1167,188.985,-80.6937],[923.66,-1802.07,26.5833,185.24,-80.4311],[906.661,-1702.68,26.0333,181.324,-80.1467],[889.011,-1602.59,25.4667,177.231,-79.8381],[870.702,-1502.07,24.8833,172.958,-79.5024],[851.723,-1401.37,24.2833,168.501,-79.1364],[832.065,-1300.75,23.6667,163.856,-78.7363],[811.718,-1200.51,23.0333,159.021,-78.2975],[790.673,-1100.93,22.3833,153.99,-77.8146],[768.923,-1002.34,21.7167,148.764,-77.281],[745.358,-900.401,21,143.073,-76.6589],[721.055,-800.504,20.2667,137.176,-75.963],[695.448,-700.91,19.5,130.939,-75.1619],[667.957,-600.35,18.6833,124.221,-74.2121],[639.118,-501.835,17.8333,117.16,-73.0986],[607.2,-400.999,16.9,109.341,-71.6984],[572.152,-300.029,15.8833,100.775,-69.9108],[533.923,-201.362,14.7833,91.489,-67.5804],[488.955,-100.36,13.5,80.7195,-64.1572],[435.357,-0.885711,11.9833,68.2815,-58.6857],[361.656,99.4237,9.91667,52.6098,-47.0825],[219.198,176.132,5.96667,36.2786,-0.0797213]]], + [59,179.927,[[932.565,-2001.34,27.7333,192.714,-81.1991],[916.781,-1900.74,27.2,189.02,-80.9556],[900.875,-1802.17,26.6667,185.272,-80.7003],[884.347,-1702.68,26.1167,181.351,-80.4239],[867.187,-1602.49,25.55,177.255,-80.1239],[849.385,-1501.87,24.9667,172.977,-79.7976],[830.932,-1401.05,24.3667,168.515,-79.4419],[811.818,-1300.33,23.75,163.864,-79.0529],[792.557,-1202.57,23.1333,159.149,-78.6379],[771.574,-1100.27,22.4667,153.983,-78.1567],[750.426,-1001.56,21.8,148.748,-77.6378],[728.049,-901.81,21.1,143.18,-77.0474],[704.424,-801.674,20.3667,137.274,-76.372],[679.531,-701.827,19.6,131.024,-75.5943],[652.806,-600.994,18.7833,124.291,-74.6721],[624.219,-500.32,17.9167,117.072,-73.568],[593.743,-401.04,17,109.37,-72.2305],[560.232,-301.308,16,100.913,-70.5241],[522.508,-200.675,14.8833,91.4445,-68.2266],[479.363,-100.445,13.6167,80.7526,-64.9421],[427.265,-0.201453,12.1,68.2097,-59.6206],[356.787,99.8552,10.0667,52.551,-48.507],[215.406,179.925,6.03333,35.2605,-0.124191]]], + [60,183.65,[[908.408,-2002.03,27.8167,192.767,-81.4573],[893.079,-1901.34,27.2833,189.07,-81.221],[877.632,-1802.67,26.75,185.318,-80.9732],[861.092,-1700.09,26.1833,181.275,-80.6965],[844.915,-1602.78,25.6333,177.294,-80.4137],[827.627,-1502.04,25.05,173.012,-80.0969],[809.706,-1401.12,24.45,168.544,-79.7516],[791.144,-1300.27,23.8333,163.888,-79.374],[772.439,-1202.39,23.2167,159.167,-78.971],[752.572,-1102.48,22.5667,154.124,-78.5159],[731.523,-1001.11,21.8833,148.75,-77.9999],[709.791,-901.225,21.1833,143.173,-77.4265],[686.847,-800.94,20.45,137.255,-76.7704],[662.672,-700.936,19.6833,130.992,-76.0149],[637.25,-601.94,18.8833,124.382,-75.138],[609.492,-500.96,18.0167,117.145,-74.0675],[579.899,-401.354,17.1,109.42,-72.7701],[547.359,-301.263,16.1,100.933,-71.1143],[510.729,-200.226,14.9833,91.4233,-68.8833],[469.388,-100.762,13.7333,80.8118,-65.7378],[419.363,-0.71481,12.2333,68.3024,-60.6395],[352.068,99.3983,10.2333,52.6533,-50.0689],[211.411,183.648,6.1,34.2321,-0.20119]]], + [61,187.3,[[883.785,-2003.15,27.9,192.835,-81.7189],[868.917,-1902.35,27.3667,189.134,-81.4897],[853.464,-1800.52,26.8167,185.262,-81.2419],[837.891,-1700.88,26.2667,181.334,-80.9814],[821.723,-1600.55,25.7,177.227,-80.6987],[805.432,-1502.61,25.1333,173.063,-80.4002],[788.049,-1401.56,24.5333,168.591,-80.0654],[770.045,-1300.58,23.9167,163.929,-79.6993],[751.901,-1202.57,23.3,159.202,-79.3086],[732.135,-1100,22.6333,154.021,-78.8556],[712.214,-1001.01,21.9667,148.77,-78.3671],[691.135,-900.972,21.2667,143.183,-77.811],[668.88,-800.527,20.5333,137.255,-77.1747],[645.432,-700.355,19.7667,130.979,-76.4417],[620.773,-601.182,18.9667,124.354,-75.591],[593.848,-500.01,18.1,117.098,-74.5519],[565.145,-400.198,17.1833,109.35,-73.2922],[534.111,-301.481,16.2,100.976,-71.7127],[498.585,-200.021,15.0833,91.4261,-69.5501],[458.492,-100.08,13.8333,80.7564,-66.4976],[410.518,-0.457664,12.35,68.2891,-61.6045],[346.352,99.3756,10.3833,52.6775,-51.5334],[206.661,187.3,6.15,33.1944,-0.0318942]]], + [62,190.872,[[858.255,-2001.52,27.9667,192.802,-81.9768],[843.849,-1900.67,27.4333,189.098,-81.7547],[829.332,-1801.85,26.9,185.34,-81.5219],[814.247,-1702.09,26.35,181.408,-81.2698],[798.586,-1601.63,25.7833,177.299,-80.9961],[782.338,-1500.72,25.2,173.007,-80.6985],[765.966,-1402.39,24.6167,168.654,-80.3831],[748.526,-1301.27,24,163.987,-80.0288],[730.474,-1200.51,23.3667,159.126,-79.64],[711.803,-1100.41,22.7167,154.068,-79.2121],[692.505,-1001.26,22.05,148.809,-78.7391],[672.087,-901.061,21.35,143.213,-78.2007],[650.528,-800.446,20.6167,137.274,-77.5845],[627.814,-700.094,19.85,130.987,-76.8746],[603.927,-600.732,19.05,124.347,-76.0505],[578.349,-501.24,18.2,117.214,-75.0643],[550.548,-401.074,17.2833,109.444,-73.8465],[519.978,-300.366,16.2833,100.9,-72.2908],[486.081,-200.07,15.1833,91.4536,-70.2263],[447.767,-100.874,13.95,80.8698,-67.3145],[401.305,-0.422614,12.4667,68.3061,-62.5838],[339.691,99.8199,10.5167,52.6174,-52.9084],[202.278,190.87,6.21667,32.1457,-0.175278]]], + [63,194.36,[[832.3,-2000.32,28.0333,192.784,-82.2381],[818.799,-1902.54,27.5167,189.193,-82.03],[804.316,-1800.54,26.9667,185.315,-81.7979],[789.721,-1700.72,26.4167,181.379,-81.5539],[774.568,-1600.21,25.85,177.264,-81.289],[759.299,-1502.08,25.2833,173.091,-81.0094],[743.007,-1400.83,24.6833,168.609,-80.6957],[726.59,-1302.35,24.0833,164.063,-80.3622],[709.128,-1201.44,23.45,159.197,-79.9865],[691.067,-1101.18,22.8,154.132,-79.5729],[672.4,-1001.87,22.1333,148.866,-79.1157],[652.648,-901.5,21.4333,143.263,-78.5952],[631.794,-800.703,20.7,137.314,-77.9995],[609.821,-700.159,19.9333,131.015,-77.3132],[586.714,-600.595,19.1333,124.361,-76.5162],[561.971,-500.888,18.2833,117.211,-75.5624],[535.078,-400.486,17.3667,109.42,-74.384],[506.001,-301.129,16.3833,100.99,-72.9053],[473.214,-200.38,15.2833,91.5067,-70.9115],[436.156,-100.671,14.05,80.8684,-68.0967],[391.724,-0.618155,12.5833,68.3544,-63.5762],[333.157,99.3319,10.6667,52.7261,-54.4092],[197.174,194.36,6.26667,31.0883,-0.0610569]]], + [64,197.762,[[806.345,-2002.76,28.1167,192.897,-82.5091],[792.883,-1901.73,27.5833,189.188,-82.3018],[779.317,-1802.72,27.05,185.424,-82.0844],[765.22,-1702.78,26.5,181.486,-81.849],[750.584,-1602.12,25.9333,177.369,-81.5936],[735.4,-1501.01,25.35,173.069,-81.3156],[720.1,-1402.46,24.7667,168.707,-81.0211],[703.802,-1301.13,24.15,164.029,-80.6901],[686.932,-1200.14,23.5167,159.157,-80.327],[669.933,-1102.33,22.8833,154.216,-79.9378],[651.45,-1000.41,22.2,148.811,-79.4852],[632.824,-902.298,21.5167,143.332,-78.9945],[612.681,-801.308,20.7833,137.374,-78.4196],[591.457,-700.561,20.0167,131.064,-77.7572],[569.138,-600.782,19.2167,124.397,-76.988],[545.238,-500.844,18.3667,117.23,-76.067],[519.262,-400.193,17.45,109.418,-74.929],[491.176,-300.566,16.4667,100.962,-73.5003],[459.989,-200.96,15.3833,91.5862,-71.6049],[424.199,-100.717,14.15,80.8949,-68.8897],[381.286,-0.0229057,12.6833,68.2935,-64.5216],[325.711,99.3188,10.8,52.7487,-55.8225],[192.403,197.759,6.33333,30.0207,-0.286039]]], + [65,201.072,[[779.546,-2002.46,28.1833,192.911,-82.7768],[766.561,-1901.36,27.65,189.198,-82.5768],[753.476,-1802.29,27.1167,185.431,-82.3672],[739.879,-1702.27,26.5667,181.489,-82.1401],[725.762,-1601.54,26,177.368,-81.8937],[711.117,-1500.34,25.4167,173.064,-81.6256],[696.36,-1401.72,24.8333,168.697,-81.3415],[680.639,-1300.31,24.2167,164.014,-81.0222],[664.797,-1201.85,23.6,159.264,-80.6814],[647.971,-1101.33,22.95,154.187,-80.2964],[630.581,-1001.76,22.2833,148.907,-79.8707],[612.179,-901.11,21.5833,143.286,-79.3861],[592.75,-800.017,20.85,137.318,-78.8312],[572.726,-701.302,20.1,131.134,-78.2064],[551.202,-601.297,19.3,124.454,-77.4652],[528.155,-501.115,18.45,117.272,-76.5778],[503.104,-400.198,17.5333,109.44,-75.481],[476.018,-300.285,16.55,100.958,-74.1034],[445.943,-200.36,15.4667,91.5474,-72.2747],[411.896,-101.018,14.25,80.9501,-69.6926],[370.989,-0.694746,12.8,68.4065,-65.5387],[317.404,99.8102,10.9167,52.68,-57.1564],[199.966,199.986,6.83333,29.2689,-8.9087],[186.947,201.07,6.38333,28.9447,-0.241161]]], + [66,204.287,[[752.34,-2002.62,28.25,192.94,-83.0474],[739.837,-1901.44,27.7167,189.225,-82.855],[727.238,-1802.29,27.1833,185.455,-82.6532],[714.146,-1702.19,26.6333,181.51,-82.4346],[700.554,-1601.38,26.0667,177.385,-82.1974],[686.453,-1500.1,25.4833,173.076,-81.9393],[672.243,-1401.39,24.9,168.705,-81.6658],[657.517,-1302.59,24.3,164.144,-81.3669],[641.853,-1201.34,23.6667,159.261,-81.0302],[625.651,-1100.72,23.0167,154.178,-80.6594],[608.906,-1001.05,22.35,148.89,-80.2495],[591.188,-900.288,21.65,143.261,-79.7827],[572.908,-801.332,20.9333,137.42,-79.261],[553.201,-700.249,20.1667,131.088,-78.6462],[532.476,-600.118,19.3667,124.394,-77.932],[510.721,-501.709,18.5333,117.337,-77.0945],[486.604,-400.512,17.6167,109.486,-76.0395],[460.529,-300.295,16.6333,100.98,-74.7142],[431.575,-200.033,15.55,91.5351,-72.9538],[398.797,-100.309,14.3333,80.8891,-70.4658],[359.87,-0.57421,12.9,68.4099,-66.5105],[309.205,99.3289,11.05,52.7868,-58.6044],[206.838,199.99,7.35,29.254,-18.1094],[181.326,204.285,6.43333,27.8599,-0.231653]]], + [67,207.403,[[724.362,-2000.05,28.3,192.87,-83.3153],[712.72,-1901.98,27.7833,189.268,-83.1361],[700.612,-1802.75,27.25,185.495,-82.9423],[688.03,-1702.56,26.7,181.547,-82.7323],[674.966,-1601.66,26.1333,177.419,-82.5044],[661.414,-1500.29,25.55,173.106,-82.2564],[647.758,-1401.49,24.9667,168.731,-81.9936],[633.605,-1302.58,24.3667,164.166,-81.7065],[618.55,-1201.23,23.7333,159.278,-81.383],[602.98,-1100.5,23.0833,154.188,-81.0267],[586.886,-1000.72,22.4167,148.894,-80.6328],[570.265,-902.193,21.7333,143.392,-80.1953],[552.289,-800.76,21,137.406,-79.6826],[533.762,-701.693,20.25,131.202,-79.1052],[513.848,-601.309,19.45,124.497,-78.42],[492.523,-500.723,18.6,117.284,-77.5993],[469.769,-401.141,17.7,109.557,-76.6042],[444.712,-300.604,16.7167,101.027,-75.3321],[417.319,-201.452,15.65,91.6963,-73.6703],[385.825,-101.137,14.4333,81.0034,-71.2874],[348.422,-0.699095,13,68.4464,-67.4946],[300.181,99.3577,11.1667,52.801,-59.975],[208.064,199.9,7.7,29.2868,-24.2709],[175.539,207.401,6.48333,26.7666,-0.262118]]], + [68,210.416,[[696.384,-2001.14,28.3667,192.931,-83.5918],[685.218,-1902.99,27.85,189.327,-83.42],[673.24,-1800.59,27.3,185.433,-83.2282],[661.169,-1700.38,26.75,181.481,-83.0267],[649.007,-1602.39,26.2,177.471,-82.8145],[636.009,-1500.91,25.6167,173.155,-82.5768],[622.911,-1402,25.0333,168.776,-82.3249],[608.958,-1300.28,24.4167,164.079,-82.0418],[594.897,-1201.52,23.8,159.313,-81.7395],[579.963,-1100.68,23.15,154.218,-81.3979],[564.527,-1000.77,22.4833,148.917,-81.0202],[548.585,-902.125,21.8,143.408,-80.6007],[531.344,-800.555,21.0667,137.414,-80.1091],[513.574,-701.347,20.3167,131.199,-79.5552],[494.473,-600.812,19.5167,124.482,-78.898],[474.02,-500.063,18.6667,117.254,-78.1106],[452.195,-400.309,17.7667,109.509,-77.1555],[428.571,-301.216,16.8,101.101,-75.9564],[401.888,-200.224,15.7167,91.5926,-74.3372],[372.098,-100.956,14.5167,81.0014,-72.0805],[336.228,-0.0137354,13.0833,68.3709,-68.4394],[290.386,99.9219,11.2667,52.7179,-61.2766],[206.748,199.777,7.98333,29.3376,-29.2822],[169.588,210.413,6.53333,25.6651,-0.338001]]], + [69,213.322,[[668.021,-2002.71,28.4333,193.009,-83.8709],[656.989,-1901.33,27.9,189.286,-83.7012],[645.872,-1801.97,27.3667,185.507,-83.5233],[634.32,-1701.66,26.8167,181.553,-83.3306],[622.326,-1600.62,26.25,177.418,-83.1213],[610.241,-1501.98,25.6833,173.222,-82.9003],[597.346,-1400.17,25.0833,168.713,-82.6523],[584.352,-1301.12,24.4833,164.138,-82.3887],[570.896,-1202.24,23.8667,159.369,-82.0995],[556.604,-1101.27,23.2167,154.268,-81.7729],[541.831,-1001.23,22.55,148.962,-81.4117],[526.2,-900.082,21.85,143.311,-81.0002],[510.073,-800.726,21.1333,137.443,-80.5401],[493.067,-701.365,20.3833,131.22,-80.0103],[474.787,-600.665,19.5833,124.491,-79.3815],[455.598,-501.659,18.75,117.392,-78.6436],[434.714,-401.584,17.85,109.631,-77.7317],[411.717,-300.502,16.8667,101.055,-76.5653],[386.575,-200.756,15.8,91.6638,-75.04],[358.067,-101.048,14.6,81.0299,-72.8831],[324.143,-0.643846,13.1833,68.4755,-69.4461],[280.685,99.4764,11.3833,52.8167,-62.6806],[203.517,199.792,8.21667,29.3457,-33.4839],[163.065,213.322,6.56667,24.5558,-0.0846173]]], + [70,216.119,[[638.953,-2001.57,28.4833,192.988,-84.1475],[628.419,-1900.15,27.95,189.262,-83.9854],[617.803,-1800.75,27.4167,185.48,-83.8154],[606.772,-1700.39,26.8667,181.522,-83.6313],[595.657,-1602.25,26.3167,177.505,-83.4374],[583.778,-1500.62,25.7333,173.182,-83.2203],[571.808,-1401.56,25.15,168.795,-82.9902],[559.402,-1302.39,24.55,164.217,-82.7387],[546.207,-1200.74,23.9167,159.314,-82.4552],[532.91,-1102.27,23.2833,154.339,-82.1513],[518.806,-1002.09,22.6167,149.028,-81.8068],[503.883,-900.79,21.9167,143.37,-81.4143],[488.486,-801.277,21.2,137.495,-80.9754],[472.249,-701.752,20.45,131.263,-80.4698],[454.796,-600.874,19.65,124.524,-79.8698],[436.476,-501.68,18.8167,117.411,-79.1657],[416.536,-401.402,17.9167,109.634,-78.2952],[394.58,-300.097,16.9333,101.037,-77.1814],[370.576,-200.106,15.8667,91.6162,-75.7242],[343.358,-100.121,14.6667,80.9408,-73.6616],[311.352,-0.46323,13.2667,68.4679,-70.4152],[270.25,99.5708,11.4833,52.8172,-64.0174],[198.926,199.914,8.41667,29.3207,-37.1923],[156.807,216.117,6.61667,23.4387,-0.25426]]], + [71,218.801,[[609.55,-2000.92,28.5333,192.983,-84.4267],[599.831,-1902.59,28.0167,189.372,-84.2773],[589.406,-1800,27.4667,185.47,-84.1105],[579.219,-1702.61,26.9333,181.629,-83.9405],[568.314,-1601.4,26.3667,177.489,-83.7504],[557.325,-1502.59,25.8,173.286,-83.5496],[545.6,-1400.6,25.2,168.771,-83.3244],[533.784,-1301.37,24.6,164.188,-83.0847],[521.549,-1202.31,23.9833,159.409,-82.8221],[508.553,-1101.14,23.3333,154.299,-82.5251],[495.12,-1000.89,22.6667,148.98,-82.1968],[481.247,-901.895,21.9833,143.451,-81.8319],[466.585,-802.215,21.2667,137.57,-81.4145],[450.779,-700.35,20.5,131.19,-80.9224],[434.505,-601.443,19.7167,124.58,-80.3628],[416.709,-500.123,18.8667,117.312,-79.6786],[398.072,-401.552,17.9833,109.663,-78.8645],[377.164,-300.006,17,101.045,-77.8042],[354.665,-201.239,15.95,91.7455,-76.4404],[328.75,-100.77,14.75,81.0314,-74.4815],[298.276,-0.541711,13.35,68.495,-71.3953],[259.507,99.4237,11.5833,52.8607,-65.3696],[193.454,199.965,8.6,29.3201,-40.6868],[150.017,218.8,6.65,22.3144,-0.0716146]]], + [72,221.367,[[579.818,-2000.76,28.5833,192.996,-84.7086],[570.589,-1902.38,28.0667,189.382,-84.5666],[560.99,-1802.81,27.5333,185.597,-84.4132],[551.015,-1702.28,26.9833,181.634,-84.2469],[540.658,-1601.02,26.4167,177.49,-84.0663],[530.223,-1502.14,25.85,173.285,-83.8757],[519.088,-1400.09,25.25,168.765,-83.6618],[507.868,-1300.8,24.65,164.178,-83.4342],[496.248,-1201.67,24.0333,159.395,-83.1846],[483.907,-1100.43,23.3833,154.279,-82.9026],[471.15,-1000.11,22.7167,148.955,-82.5907],[457.976,-901.035,22.0333,143.419,-82.2441],[444.053,-801.275,21.3167,137.53,-81.8475],[429.37,-701.488,20.5667,131.28,-81.3905],[413.588,-600.33,19.7667,124.52,-80.848],[397.021,-500.842,18.9333,117.382,-80.2111],[378.99,-400.244,18.0333,109.573,-79.4234],[359.474,-300.237,17.0667,101.081,-78.4332],[338.111,-201.191,16.0167,91.7563,-77.1389],[313.505,-100.402,14.8167,81.0047,-75.2785],[284.915,-0.885917,13.4333,68.5579,-72.3851],[248.108,99.8384,11.6667,52.8016,-66.6641],[187.508,199.658,8.78333,29.4372,-44.2044],[143.457,221.364,6.7,21.1831,-0.365026]]], + [73,223.813,[[549.767,-2001.1,28.6333,193.025,-84.9928],[541.03,-1902.66,28.1167,189.41,-84.8585],[531.944,-1803.03,27.5833,185.622,-84.7133],[522.502,-1702.43,27.0333,181.658,-84.5559],[512.699,-1601.1,26.4667,177.511,-84.385],[502.821,-1502.16,25.9,173.303,-84.2046],[492.281,-1400.04,25.3,168.78,-84.0021],[481.66,-1300.67,24.7,164.189,-83.7867],[470.661,-1201.46,24.0833,159.402,-83.5506],[458.979,-1100.14,23.4333,154.281,-83.2836],[447.207,-1002.2,22.7833,149.085,-82.996],[434.433,-900.579,22.0833,143.408,-82.6603],[421.254,-800.728,21.3667,137.512,-82.2848],[407.356,-700.845,20.6167,131.254,-81.8521],[392.729,-601.637,19.8333,124.626,-81.3496],[377.05,-501.921,19,117.478,-80.7478],[359.985,-401.072,18.1,109.655,-80.0034],[341.513,-300.794,17.1333,101.146,-79.0675],[321.294,-201.451,16.0833,91.797,-77.8439],[298.006,-100.319,14.8833,81.0098,-76.0841],[270.947,-0.405447,13.5,68.5065,-73.3439],[236.772,99.1969,11.7667,52.9329,-68.0422],[180.423,199.714,8.93333,29.4355,-47.2872],[136.406,223.811,6.73333,20.045,-0.281332]]], + [74,226.135,[[519.404,-2001.94,28.6833,193.072,-85.2791],[510.897,-1900.29,28.15,189.338,-85.1484],[502.325,-1800.65,27.6167,185.547,-85.0113],[493.418,-1700.05,27.0667,181.578,-84.8627],[484.443,-1601.67,26.5167,177.551,-84.7063],[475.126,-1502.65,25.95,173.34,-84.5362],[465.185,-1400.44,25.35,168.814,-84.3453],[455.168,-1300.99,24.75,164.22,-84.1422],[444.794,-1201.7,24.1333,159.429,-83.9195],[433.776,-1100.28,23.4833,154.304,-83.6679],[422.673,-1002.26,22.8333,149.103,-83.3967],[410.625,-900.531,22.1333,143.421,-83.0801],[398.194,-800.578,21.4167,137.518,-82.726],[385.086,-700.587,20.6667,131.252,-82.3178],[371.29,-601.265,19.8833,124.614,-81.8438],[356.502,-501.427,19.05,117.455,-81.2761],[340.407,-400.446,18.15,109.618,-80.5736],[322.985,-300.024,17.1833,101.091,-79.6902],[303.915,-200.524,16.1333,91.7184,-78.5345],[282.257,-100.528,14.95,81.0475,-76.8972],[256.739,-0.190526,13.5667,68.4907,-74.3137],[224.509,99.9472,11.8333,52.8115,-69.3021],[172.626,199.853,9.06667,29.4054,-50.1921],[129.235,226.134,6.76667,18.9006,-0.248201]]], + [75,228.332,[[488.494,-2000.09,28.7167,193.021,-85.5639],[480.752,-1901.57,28.2,189.401,-85.4449],[472.7,-1801.86,27.6667,185.609,-85.3161],[464.333,-1701.18,27.1167,181.639,-85.1767],[455.902,-1602.71,26.5667,177.609,-85.0298],[446.892,-1500.73,25.9833,173.271,-84.8653],[437.812,-1401.31,25.4,168.868,-84.6909],[428.402,-1301.77,24.8,164.271,-84.5003],[418.658,-1202.38,24.1833,159.477,-84.2913],[408.307,-1100.87,23.5333,154.348,-84.0549],[397.609,-1000.27,22.8667,149.009,-83.7936],[386.56,-900.902,22.1833,143.456,-83.5031],[374.883,-800.833,21.4667,137.548,-83.1706],[362.57,-700.722,20.7167,131.274,-82.7874],[349.611,-601.272,19.9333,124.629,-82.3423],[335.719,-501.297,19.1,117.459,-81.809],[320.599,-400.167,18.2,109.609,-81.1491],[304.517,-301.248,17.25,101.213,-80.3345],[286.605,-201.413,16.2,91.8199,-79.2515],[266.263,-101.036,15.0167,81.1185,-77.7168],[242.295,-0.247418,13.6333,68.5114,-75.2932],[212.314,99.6277,11.9167,52.8827,-70.6398],[164.47,199.724,9.2,29.4634,-53.1278],[121.948,228.331,6.8,17.7502,-0.275885]]], + [76,230.4,[[457.555,-2001.96,28.7667,193.103,-85.8544],[450.082,-1900.21,28.2333,189.365,-85.7395],[442.552,-1800.48,27.7,185.569,-85.6191],[434.964,-1702.79,27.1667,181.718,-85.4926],[426.841,-1601.28,26.6,177.564,-85.3512],[418.656,-1502.16,26.0333,173.348,-85.2018],[410.167,-1402.65,25.45,168.942,-85.0388],[401.123,-1300.28,24.8333,164.215,-84.8557],[392.009,-1200.87,24.2167,159.416,-84.66],[382.578,-1101.89,23.5833,154.415,-84.4447],[372.575,-1001.17,22.9167,149.072,-84.2006],[362.243,-901.69,22.2333,143.515,-83.9292],[351.325,-801.496,21.5167,137.601,-83.6185],[339.811,-701.251,20.7667,131.322,-83.2604],[327.693,-601.662,19.9833,124.668,-82.8445],[314.703,-501.535,19.15,117.489,-82.3462],[300.566,-400.241,18.25,109.627,-81.7294],[285.527,-301.147,17.3,101.217,-80.9678],[268.779,-201.118,16.25,91.8024,-79.955],[249.757,-100.519,15.0667,81.0712,-78.5188],[227.616,-0.580806,13.7,68.5692,-76.2806],[199.585,99.8911,11.9833,52.8475,-71.9312],[155.678,199.726,9.31667,29.4774,-55.8978],[114.545,230.399,6.83333,16.5941,-0.377425]]], + [77,232.337,[[426.12,-2001.14,28.8,193.086,-86.1433],[419.385,-1902.51,28.2833,189.464,-86.0398],[412.381,-1802.69,27.75,185.668,-85.9279],[405.102,-1701.89,27.2,181.695,-85.8067],[397.545,-1600.35,26.6333,177.538,-85.675],[389.93,-1501.19,26.0667,173.319,-85.5359],[382.032,-1401.65,25.4833,168.91,-85.3843],[373.846,-1301.98,24.8833,164.308,-85.2186],[365.369,-1202.45,24.2667,159.507,-85.0368],[356.365,-1100.79,23.6167,154.371,-84.8313],[347.059,-1000.04,22.95,149.023,-84.604],[337.447,-900.522,22.2667,143.46,-84.3514],[327.289,-800.289,21.55,137.54,-84.0621],[316.578,-700.004,20.8,131.253,-83.7287],[305.305,-600.373,20.0167,124.591,-83.3413],[293.22,-500.202,19.1833,117.402,-82.877],[280.312,-400.673,18.3,109.674,-82.3137],[266.324,-301.386,17.35,101.249,-81.6059],[250.745,-201.143,16.3,91.816,-80.6642],[233.051,-100.301,15.1167,81.0571,-79.3283],[212.456,-0.0801311,13.75,68.5114,-77.2443],[186.637,99.9056,12.05,52.8564,-73.2359],[146.311,199.893,9.41667,29.436,-58.5224],[107.029,232.334,6.86667,15.4328,-0.569743]]], + [78,234.141,[[394.447,-2000.84,28.8333,193.088,-86.4342],[388.219,-1902.17,28.3167,189.464,-86.3385],[381.742,-1802.32,27.7833,185.666,-86.235],[375.012,-1701.48,27.2333,181.69,-86.1228],[368.23,-1602.86,26.6833,177.655,-86.0048],[360.983,-1500.71,26.1,173.31,-85.8725],[353.679,-1401.13,25.5167,168.898,-85.7323],[346.11,-1301.41,24.9167,164.293,-85.5791],[338.271,-1201.85,24.3,159.489,-85.4109],[329.945,-1100.14,23.65,154.349,-85.2208],[321.556,-1001.82,23,149.131,-85.016],[312.669,-902.16,22.3167,143.565,-84.7828],[303.278,-801.778,21.6,137.641,-84.5158],[293.375,-701.335,20.85,131.35,-84.208],[282.953,-601.537,20.0667,124.682,-83.8503],[271.78,-501.187,19.2333,117.486,-83.4217],[259.846,-401.465,18.35,109.748,-82.9016],[246.685,-300.297,17.3833,101.162,-82.2356],[232.509,-201.493,16.35,91.8611,-81.3784],[216.15,-100.385,15.1667,81.0769,-80.1442],[197.342,-0.975716,13.8167,68.6447,-78.2452],[173.472,99.6672,12.1167,52.9101,-74.5509],[136.665,199.824,9.51667,29.4717,-61.1767],[99.1644,234.14,6.88333,14.2657,-0.219272]]], + [79,235.808,[[362.545,-2001.06,28.8667,193.108,-86.7267],[356.827,-1902.36,28.35,189.482,-86.639],[350.881,-1802.46,27.8167,185.683,-86.5439],[344.701,-1701.58,27.2667,181.706,-86.441],[338.475,-1602.91,26.7167,177.668,-86.3326],[331.82,-1500.71,26.1333,173.321,-86.2112],[325.115,-1401.08,25.55,168.908,-86.0824],[318.165,-1301.32,24.95,164.3,-85.9417],[310.968,-1201.7,24.3333,159.493,-85.7874],[303.521,-1102.51,23.7,154.482,-85.6176],[295.621,-1001.57,23.0333,149.128,-85.4248],[287.462,-901.846,22.35,143.558,-85.2107],[278.84,-801.403,21.6333,137.629,-84.9655],[269.748,-700.895,20.8833,131.332,-84.6828],[260.178,-601.029,20.1,124.657,-84.3543],[249.92,-500.605,19.2667,117.452,-83.9606],[238.963,-400.805,18.3833,109.704,-83.4828],[227.089,-301.226,17.4333,101.255,-82.8821],[213.865,-200.655,16.3833,91.7869,-82.0826],[199.058,-100.778,15.2167,81.1312,-80.9653],[181.791,-1.0374,13.8667,68.6624,-79.2237],[160.094,99.1693,12.1833,53.0097,-75.8732],[126.524,199.953,9.6,29.441,-63.7044],[91.4475,235.806,6.91667,13.0948,-0.611441]]], + [80,237.338,[[330.427,-2001.82,28.9,193.145,-87.0209],[325.222,-1903.06,28.3833,189.519,-86.9408],[319.638,-1800.02,27.8333,185.599,-86.8518],[314.182,-1702.18,27.3,181.74,-86.7608],[308.341,-1600.51,26.7333,177.578,-86.6592],[302.455,-1501.21,26.1667,173.353,-86.5517],[296.35,-1401.52,25.5833,168.937,-86.4345],[290.023,-1301.7,24.9833,164.328,-86.3065],[283.471,-1202.02,24.3667,159.518,-86.166],[276.512,-1100.2,23.7167,154.372,-86.0072],[269.499,-1001.76,23.0667,149.148,-85.8361],[262.071,-901.967,22.3833,143.574,-85.6411],[254.221,-801.449,21.6667,137.641,-85.4179],[245.943,-700.864,20.9167,131.339,-85.1606],[237.231,-600.915,20.1333,124.658,-84.8616],[227.892,-500.404,19.3,117.446,-84.5031],[217.917,-400.51,18.4167,109.689,-84.068],[207.107,-300.829,17.4667,101.228,-83.521],[195.067,-200.146,16.4167,91.7446,-82.7925],[181.586,-100.143,15.25,81.0667,-81.7741],[165.867,-0.256292,13.9,68.5633,-80.185],[146.31,99.2713,12.2333,52.9999,-77.1604],[116.147,199.853,9.68333,29.4846,-66.2566],[83.4251,237.337,6.93333,11.9186,-0.394756]]], + [81,238.728,[[298.104,-2003.1,28.9333,193.201,-87.3163],[293.262,-1901.14,28.4,189.456,-87.242],[288.382,-1801.19,27.8667,185.654,-87.1641],[283.311,-1700.27,27.3167,181.673,-87.0796],[278.201,-1601.56,26.7667,177.631,-86.9906],[272.897,-1502.2,26.2,173.405,-86.8937],[267.396,-1402.45,25.6167,168.988,-86.7883],[261.694,-1302.56,25.0167,164.377,-86.6729],[255.629,-1200.15,24.3833,159.435,-86.5429],[249.518,-1100.91,23.75,154.417,-86.4035],[243.198,-1002.39,23.1,149.191,-86.2493],[236.341,-900.133,22.4,143.478,-86.0693],[229.43,-801.918,21.7,137.678,-85.8727],[221.97,-701.242,20.95,131.372,-85.6409],[214.119,-601.199,20.1667,124.686,-85.3715],[205.703,-500.585,19.3333,117.468,-85.0486],[196.713,-400.582,18.45,109.703,-84.6567],[186.971,-300.783,17.5,101.231,-84.1637],[176.294,-201.489,16.4667,91.886,-83.5187],[164.147,-101.159,15.3,81.1905,-82.6039],[149.982,-0.888458,13.95,68.6577,-81.1761],[132.183,99.9831,12.2667,52.8789,-78.421],[105.357,199.979,9.75,29.4527,-68.7033],[75.3371,238.727,6.95,10.7386,-0.24108]]], + [82,239.976,[[265.453,-2001.7,28.95,193.159,-87.6109],[261.278,-1902.9,28.4333,189.531,-87.5469],[256.935,-1802.89,27.9,185.728,-87.4776],[252.423,-1701.9,27.35,181.747,-87.4024],[247.738,-1600.16,26.7833,177.581,-87.3208],[243.017,-1500.8,26.2167,173.352,-87.2346],[238.12,-1401.05,25.6333,168.933,-87.1406],[233.045,-1301.16,25.0333,164.319,-87.038],[227.789,-1201.41,24.4167,159.505,-86.9253],[222.351,-1102.08,23.7833,154.486,-86.8013],[216.582,-1000.99,23.1167,149.123,-86.6605],[210.624,-901.125,22.4333,143.542,-86.5041],[204.327,-800.524,21.7167,137.601,-86.3251],[197.836,-702.036,20.9833,131.43,-86.1233],[190.849,-601.884,20.2,124.741,-85.8838],[183.359,-501.154,19.3667,117.517,-85.5967],[175.359,-401.025,18.4833,109.746,-85.2481],[166.689,-301.09,17.5333,101.266,-84.8098],[157.034,-200.123,16.4833,91.7565,-84.2259],[146.377,-101.147,15.3333,81.1957,-83.4222],[133.772,-0.67855,13.9833,68.6353,-82.1513],[118.088,99.5733,12.3167,52.9599,-79.7269],[94.376,199.883,9.81667,29.4928,-71.1708],[67.1858,239.976,6.96667,9.5551,-0.174443]]], + [83,241.082,[[232.654,-2000.84,28.9667,193.136,-87.9071],[228.996,-1902.03,28.45,189.505,-87.8509],[225.192,-1802.01,27.9167,185.701,-87.7902],[221.239,-1701.01,27.3667,181.718,-87.7242],[217.255,-1602.22,26.8167,177.675,-87.6549],[213.12,-1502.79,26.25,173.446,-87.5795],[208.708,-1400.14,25.65,168.899,-87.4948],[204.263,-1300.24,25.05,164.283,-87.4048],[199.658,-1200.48,24.4333,159.466,-87.306],[194.894,-1101.14,23.8,154.444,-87.1975],[189.841,-1000.04,23.1333,149.078,-87.074],[184.621,-900.167,22.45,143.494,-86.9369],[179.234,-801.848,21.75,137.688,-86.7836],[173.418,-701.059,21,131.374,-86.6031],[167.298,-600.897,20.2167,124.679,-86.3931],[160.736,-500.156,19.3833,117.449,-86.1413],[153.728,-400.017,18.5,109.67,-85.8356],[146.134,-300.071,17.55,101.181,-85.4509],[137.81,-200.616,16.5167,91.8115,-84.9475],[128.34,-100.104,15.35,81.0819,-84.2327],[117.435,-0.758007,14.0167,68.652,-83.132],[103.698,99.7732,12.35,52.9296,-81.0079],[83.2057,199.56,9.88333,29.6061,-73.645],[58.9738,241.081,6.98333,8.36829,-0.232012]]], + [84,242.043,[[199.719,-2000.52,28.9833,193.131,-88.2043],[196.58,-1901.69,28.4667,189.5,-88.1559],[193.316,-1801.66,27.9333,185.694,-88.1038],[189.924,-1700.65,27.3833,181.71,-88.0474],[186.506,-1601.84,26.8333,177.665,-87.9879],[182.959,-1502.39,26.2667,173.435,-87.9232],[179.279,-1402.53,25.6833,169.014,-87.8527],[175.465,-1302.54,25.0833,164.398,-87.7755],[171.408,-1200.03,24.45,159.45,-87.6886],[167.32,-1100.67,23.8167,154.426,-87.5951],[163.093,-1002.04,23.1667,149.192,-87.4921],[158.615,-902.045,22.4833,143.608,-87.3747],[153.884,-801.313,21.7667,137.661,-87.2402],[148.894,-700.502,21.0167,131.343,-87.0852],[143.642,-600.315,20.2333,124.644,-86.9048],[138.125,-501.505,19.4167,117.555,-86.6933],[132.113,-401.209,18.5333,109.772,-86.4315],[125.598,-301.092,17.5833,101.277,-86.1022],[118.457,-201.45,16.55,91.8997,-85.6711],[110.333,-100.723,15.3833,81.1578,-85.0591],[100.977,-1.12945,14.05,68.7079,-84.1164],[89.1916,99.7144,12.3833,52.9453,-82.2962],[71.6112,199.968,9.91667,29.4784,-75.9586],[50.7035,242.042,7,7.17869,-0.476004]]], + [85,242.858,[[166.66,-2000.74,29,193.144,-88.5024],[164.043,-1901.89,28.4833,189.512,-88.4623],[161.32,-1801.84,27.95,185.706,-88.4187],[158.491,-1700.8,27.4,181.721,-88.3716],[155.641,-1601.97,26.85,177.676,-88.322],[152.681,-1502.49,26.2833,173.444,-88.268],[149.612,-1402.61,25.7,169.022,-88.2092],[146.431,-1302.59,25.1,164.405,-88.1449],[143.048,-1200.05,24.4667,159.456,-88.0723],[139.638,-1100.66,23.8333,154.43,-87.9945],[136.113,-1002,23.1833,149.195,-87.9087],[132.378,-901.975,22.5,143.608,-87.8106],[128.432,-801.21,21.7833,137.66,-87.6984],[124.27,-700.363,21.0333,131.339,-87.5691],[119.89,-600.139,20.25,124.636,-87.4187],[115.289,-501.29,19.4333,117.543,-87.2423],[110.274,-400.951,18.55,109.756,-87.0239],[104.84,-300.788,17.6,101.254,-86.749],[98.8842,-201.096,16.5667,91.8686,-86.3893],[92.1084,-100.312,15.4,81.1148,-85.8784],[84.3052,-0.65345,14.0667,68.6466,-85.0911],[74.5746,99.3936,12.4167,53.0074,-83.5888],[60.0125,199.681,9.96667,29.5779,-78.3663],[42.3774,242.856,7.01667,5.98705,-1.01893]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 84.3052; +_maxRange = 485.365; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg1.sqf new file mode 100644 index 0000000000..8812b638c9 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg1.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_wp_pd_chg1 +// Ammo: ace_arty_82mm_wp_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,390.444,[[2514.94,-2001.5,31.75,207.364,-71.3428],[2480.53,-1900.87,31.2333,204.228,-70.8862],[2445.85,-1802.05,30.7167,201.055,-70.4115],[2409.76,-1701.99,30.1833,197.742,-69.9013],[2372.23,-1600.89,29.6333,194.287,-69.3525],[2334.41,-1501.95,29.0833,190.794,-68.779],[2295.12,-1402.29,28.5167,187.158,-68.1606],[2254.34,-1302.17,27.9333,183.378,-67.4929],[2212.05,-1201.84,27.3333,179.453,-66.7708],[2168.23,-1101.55,26.7167,175.383,-65.9883],[2122.84,-1001.6,26.0833,171.169,-65.1387],[2075.88,-902.259,25.4333,166.813,-64.2143],[2026.08,-801.431,24.75,162.207,-63.1801],[1974.64,-702.029,24.05,157.466,-62.0482],[1920.29,-602.177,23.3167,152.486,-60.776],[1861.71,-500.429,22.5333,147.162,-59.3091],[1801.36,-401.833,21.7333,141.737,-57.683],[1735.4,-301.177,20.8667,135.895,-55.758],[1663.69,-200.045,19.9333,129.678,-53.4711],[1586.14,-100.182,18.9333,123.148,-50.7411],[1499.99,-0.635169,17.8333,116.19,-47.3559],[1401.07,99.181,16.5833,108.69,-42.9505],[1281.03,199.977,15.0833,100.491,-36.7632],[1122.92,299.526,13.1333,91.706,-27.078],[765.368,390.444,8.81667,83.9912,-0.00783141]]], + [46,403.836,[[2488.15,-2002.39,31.9667,207.508,-71.699],[2454.35,-1901.47,31.45,204.364,-71.2511],[2420.28,-1802.37,30.9333,201.182,-70.7854],[2384.83,-1702.01,30.4,197.86,-70.2849],[2347.97,-1600.6,29.85,194.394,-69.7464],[2310.82,-1501.34,29.3,190.889,-69.1836],[2272.22,-1401.37,28.7333,187.24,-68.5768],[2232.17,-1300.91,28.15,183.445,-67.9215],[2190.63,-1200.22,27.55,179.504,-67.2126],[2148.75,-1102.25,26.95,175.527,-66.4656],[2104.18,-1001.84,26.3167,171.293,-65.6325],[2058.06,-902.024,25.6667,166.916,-64.7259],[2009.15,-800.691,24.9833,162.285,-63.7114],[1958.63,-700.768,24.2833,157.516,-62.6007],[1905.25,-600.363,23.55,152.502,-61.3517],[1848.95,-500.145,22.7833,147.253,-59.9429],[1789.7,-400.824,21.9833,141.783,-58.3477],[1726.17,-301.265,21.1333,136,-56.4962],[1657.04,-200.893,20.2167,129.826,-54.2955],[1582.19,-101.416,19.2333,123.318,-51.6673],[1497.64,-0.342085,18.1333,116.246,-48.3512],[1401.86,99.9677,16.9,108.689,-44.0876],[1289.32,198.982,15.4667,100.608,-38.2953],[1139.58,299.9,13.5833,91.641,-29.1317],[837.023,399.929,9.85,82.4741,-6.0247],[764.376,403.836,8.96667,82.4723,-0.0119533]]], + [47,417.205,[[2458.95,-2000.58,32.1667,207.57,-72.0471],[2426.84,-1902.67,31.6667,204.519,-71.6219],[2392.32,-1800.1,31.1333,201.226,-71.1504],[2358.6,-1702.6,30.6167,197.997,-70.6748],[2322.42,-1600.87,30.0667,194.521,-70.1469],[2285.94,-1501.29,29.5167,191.005,-69.5952],[2248.05,-1400.98,28.95,187.344,-69.0002],[2208.73,-1300.17,28.3667,183.535,-68.3575],[2169.09,-1201.89,27.7833,179.688,-67.682],[2126.84,-1100.78,27.1667,175.583,-66.9294],[2084.24,-1002.59,26.55,171.442,-66.1342],[2038.97,-902.288,25.9,167.044,-65.2458],[1990.98,-800.436,25.2167,162.387,-64.2514],[1942.57,-702.322,24.5333,157.705,-63.1893],[1890.19,-601.25,23.8,152.659,-61.9664],[1834.95,-500.327,23.0333,147.372,-60.5865],[1776.79,-400.263,22.2333,141.858,-59.0232],[1715.68,-301.815,21.4,136.137,-57.2447],[1647.86,-200.443,20.4833,129.897,-55.0888],[1575.66,-101.515,19.5167,123.417,-52.5575],[1493.98,-0.52458,18.4333,116.342,-49.3592],[1402.58,98.9684,17.2333,108.836,-45.3],[1293.52,199.42,15.8167,100.616,-39.695],[1154.55,299.259,14.0333,91.6934,-31.201],[912.903,399.94,10.9833,82.0633,-12.8496],[762.699,417.204,9.11667,80.9323,-0.0347842]]], + [48,430.536,[[2429.5,-2002.69,32.3833,207.752,-72.415],[2396.94,-1901.23,31.8667,204.592,-71.9846],[2364.12,-1801.59,31.35,201.393,-71.5369],[2329.97,-1700.66,30.8167,198.051,-71.0558],[2295.55,-1601.73,30.2833,194.67,-70.554],[2259.76,-1501.81,29.7333,191.143,-70.0135],[2222.59,-1401.15,29.1667,187.469,-69.4306],[2185.13,-1302.84,28.6,183.756,-68.8193],[2145.13,-1201.33,28,179.784,-68.139],[2104.8,-1102.55,27.4,175.774,-67.4218],[2061.89,-1001.26,26.7667,171.502,-66.6218],[2017.47,-900.536,26.1167,167.082,-65.7507],[1971.54,-800.691,25.45,162.515,-64.8],[1924.06,-702.039,24.7667,157.806,-63.7597],[1872.68,-600.383,24.0333,152.728,-62.5616],[1819.67,-500.999,23.2833,147.521,-61.2395],[1762.64,-400.175,22.4833,141.963,-59.709],[1702.71,-300.926,21.65,136.19,-57.9669],[1637.41,-200.46,20.75,130.001,-55.8937],[1566.62,-100.444,19.7833,123.442,-53.4141],[1489,-1.21109,18.7333,116.481,-50.3793],[1400.65,98.7058,17.55,108.934,-46.4641],[1296.28,199.247,16.1667,100.687,-41.1098],[1165.23,299.242,14.45,91.708,-33.1097],[955.957,399.979,11.75,81.8672,-17.2499],[760.33,430.534,9.26667,79.3715,-0.077615]]], + [49,443.813,[[2397.67,-2002.13,32.5833,207.853,-72.7752],[2365.75,-1900.42,32.0667,204.685,-72.3535],[2333.56,-1800.52,31.55,201.477,-71.9149],[2301.13,-1702.46,31.0333,198.23,-71.4584],[2266.32,-1600.13,30.4833,194.733,-70.9517],[2232.29,-1502.94,29.95,191.303,-70.4384],[2195.85,-1401.92,29.3833,187.617,-69.8679],[2158.03,-1300.37,28.8,183.781,-69.2514],[2119.9,-1201.35,28.2167,179.904,-68.6034],[2080.37,-1102.17,27.6167,175.877,-67.9012],[2038.29,-1000.46,26.9833,171.587,-67.1176],[1995.87,-901.865,26.35,167.26,-66.2869],[1950.84,-801.485,25.6833,162.67,-65.3569],[1904.3,-702.279,25,157.935,-64.3389],[1853.93,-600.023,24.2667,152.826,-63.1662],[1801.97,-500.02,23.5167,147.583,-61.8715],[1747.24,-400.588,22.7333,142.099,-60.4047],[1688.5,-300.52,21.9,136.276,-58.7],[1625.69,-200.973,21.0167,130.14,-56.7093],[1557.52,-101.521,20.0667,123.617,-54.3275],[1481.47,-0.912557,19.0167,116.555,-51.3602],[1396.14,99.2286,17.85,108.978,-47.5826],[1296.37,199.567,16.5,100.727,-42.4689],[1173.03,299.195,14.85,91.7429,-34.9483],[987.286,399.612,12.4,81.7981,-20.9038],[755.968,443.812,9.4,77.798,-0.0215846]]], + [50,457.02,[[2364.53,-2002.23,32.7833,207.974,-73.1414],[2333.25,-1900.26,32.2667,204.798,-72.7286],[2301.71,-1800.1,31.75,201.582,-72.2993],[2269.92,-1701.77,31.2333,198.326,-71.8525],[2236.85,-1602.22,30.7,194.925,-71.3717],[2202.47,-1501.67,30.15,191.377,-70.8538],[2166.76,-1400.35,29.5833,187.678,-70.295],[2130.76,-1301.37,29.0167,183.939,-69.709],[2093.4,-1201.96,28.4333,180.048,-69.0751],[2054.67,-1102.38,27.8333,176.006,-68.3882],[2013.44,-1000.24,27.2,171.697,-67.6215],[1971.88,-901.207,26.5667,167.35,-66.8086],[1927.76,-800.366,25.9,162.737,-65.8983],[1882.17,-700.683,25.2167,157.975,-64.9016],[1833.94,-600.198,24.5,152.952,-63.78],[1784.18,-501.744,23.7667,147.791,-62.5429],[1730.58,-401.531,22.9833,142.267,-61.1101],[1673.05,-300.624,22.15,136.395,-59.4439],[1611.53,-200.179,21.2667,130.199,-57.4967],[1545.94,-101.445,20.3333,123.718,-55.208],[1472.65,-1.13307,19.3,116.671,-52.3538],[1390.29,99.2138,18.15,109.07,-48.715],[1295.04,199.271,16.8333,100.828,-43.8425],[1178,299.204,15.2333,91.7873,-36.7187],[1008.73,399.957,12.95,81.7087,-23.9333],[752.224,457.018,9.55,76.1965,-0.106541]]], + [51,470.143,[[2330.06,-2003.02,32.9833,208.116,-73.5135],[2299.43,-1900.78,32.4667,204.933,-73.1098],[2268.55,-1800.34,31.95,201.708,-72.6899],[2237.42,-1701.73,31.4333,198.444,-72.2529],[2205.03,-1601.9,30.9,195.034,-71.7826],[2171.37,-1501.05,30.35,191.474,-71.276],[2137.43,-1402.37,29.8,187.873,-70.7458],[2101.15,-1300.12,29.2167,184.011,-70.156],[2064.57,-1200.38,28.6333,180.105,-69.5357],[2026.64,-1100.45,28.0333,176.046,-68.8634],[1987.34,-1000.61,27.4167,171.833,-68.1333],[1946.64,-901.13,26.7833,167.467,-67.3385],[1904.53,-802.304,26.1333,162.947,-66.4714],[1859.9,-702.037,25.45,158.161,-65.4981],[1812.7,-600.933,24.7333,153.109,-64.4027],[1763.99,-501.84,24,147.914,-63.194],[1711.51,-400.938,23.2167,142.35,-61.7934],[1656.33,-301.266,22.4,136.548,-60.1978],[1597.26,-201.752,21.5333,130.412,-58.3334],[1531.92,-100.188,20.5833,123.742,-56.0577],[1461.36,-0.340077,19.5667,116.717,-53.3111],[1383.11,98.6303,18.45,109.212,-49.86],[1291.11,199.521,17.15,100.89,-45.1632],[1180.22,299.347,15.6,91.8319,-38.423],[1025.65,399.716,13.4667,81.7171,-26.7711],[746.528,470.141,9.68333,74.5822,-0.0907905]]], + [52,483.166,[[2293.33,-2001.18,33.1667,208.178,-73.8786],[2264.32,-1901.99,32.6667,205.089,-73.4967],[2234.1,-1801.27,32.15,201.857,-73.0865],[2203.65,-1702.38,31.6333,198.585,-72.6595],[2171.95,-1602.24,31.1,195.165,-72.2],[2139.01,-1501.08,30.55,191.595,-71.7049],[2105.8,-1402.09,30,187.983,-71.1868],[2071.32,-1302.39,29.4333,184.218,-70.6271],[2035.53,-1202.24,28.85,180.3,-70.0216],[1998.42,-1101.89,28.25,176.226,-69.3653],[1959.97,-1001.6,27.6333,171.997,-68.6524],[1920.16,-901.662,27,167.611,-67.8763],[1878.97,-802.357,26.35,163.07,-67.0294],[1835.3,-701.582,25.6667,158.258,-66.0785],[1790.2,-602.257,24.9667,153.296,-65.0338],[1741.47,-500.293,24.2167,147.95,-63.8262],[1691.22,-400.899,23.45,142.466,-62.4867],[1637.25,-300.483,22.6333,136.618,-60.9281],[1579.47,-200.171,21.7667,130.426,-59.1055],[1517.81,-101.185,20.85,123.921,-56.9613],[1448.8,-0.0827624,19.8333,116.806,-54.2815],[1373.44,98.8641,18.7333,109.295,-50.9626],[1285.8,199.15,17.4667,101.013,-46.498],[1179.75,299.699,15.95,91.8678,-40.0636],[1037.01,399.88,13.9333,81.7112,-29.3178],[740.173,483.163,9.81667,72.9482,-0.0962681]]], + [53,496.073,[[2255.31,-2000.06,33.35,208.26,-74.25],[2226.94,-1900.65,32.85,205.164,-73.8768],[2198.34,-1802.92,32.35,202.029,-73.4891],[2167.6,-1700.56,31.8167,198.642,-73.0586],[2136.61,-1600.18,31.2833,195.212,-72.6094],[2105.37,-1501.8,30.75,191.74,-72.1404],[2072.91,-1402.48,30.2,188.117,-71.6346],[2039.19,-1302.45,29.6333,184.34,-71.0882],[2004.2,-1201.94,29.05,180.408,-70.4969],[1967.92,-1101.23,28.45,176.319,-69.8559],[1930.32,-1000.56,27.8333,172.072,-69.1595],[1891.4,-900.224,27.2,167.667,-68.4013],[1851.12,-800.512,26.55,163.104,-67.5736],[1809.47,-701.729,25.8833,158.386,-66.6676],[1765.38,-601.863,25.1833,153.396,-65.6478],[1718.81,-501.543,24.45,148.137,-64.4959],[1669.7,-401.438,23.6833,142.615,-63.1897],[1616.94,-300.257,22.8667,136.722,-61.6691],[1561.56,-201.01,22.0167,130.595,-59.9258],[1501.3,-101.016,21.1,124.024,-57.8349],[1434.98,-0.387368,20.1,116.939,-55.2643],[1361.34,99.9577,19,109.314,-52.0256],[1277.97,199.376,17.7667,101.089,-47.7829],[1177.81,299.309,16.3,91.9843,-41.7193],[1045.37,399.454,14.3833,81.7905,-31.7801],[733.154,496.07,9.95,71.2946,-0.124587]]], + [54,508.85,[[2216.93,-2003.04,33.55,208.467,-74.6391],[2188.29,-1900.04,33.0333,205.261,-74.2629],[2160.35,-1802.08,32.5333,202.118,-73.8845],[2131.25,-1702.64,32.0167,198.829,-73.4775],[2100.98,-1601.93,31.4833,195.391,-73.0396],[2069.51,-1500.18,30.9333,191.8,-72.5676],[2037.78,-1400.59,30.3833,188.165,-72.0736],[2004.83,-1300.28,29.8167,184.376,-71.5399],[1971.62,-1202.32,29.25,180.543,-70.9793],[1936.18,-1101.23,28.65,176.439,-70.354],[1899.45,-1000.17,28.0333,172.175,-69.6746],[1862.43,-902.036,27.4167,167.868,-68.9547],[1823.09,-801.817,26.7667,163.285,-68.1481],[1781.39,-700.072,26.0833,158.425,-67.2422],[1739.34,-602.086,25.4,153.527,-66.2708],[1693.85,-501.176,24.6667,148.237,-65.1474],[1645.89,-400.45,23.9,142.679,-63.873],[1595.41,-300.622,23.1,136.863,-62.4203],[1541.32,-200.551,22.25,130.684,-60.7207],[1483.55,-101.429,21.35,124.168,-58.7197],[1419.87,-1.28727,20.3667,117.118,-56.2583],[1349.07,99.024,19.2833,109.497,-53.1545],[1268.79,198.972,18.0667,101.226,-49.0816],[1173.26,299.196,16.6333,92.0827,-43.3133],[1049.67,399.314,14.8,81.8573,-34.0618],[816.815,499.973,11.4,70.3652,-10.7148],[724.308,508.849,10.0667,69.6279,-0.0433657]]], + [55,521.481,[[2175.44,-2000.09,33.7167,208.492,-75.0102],[2148.37,-1900.19,33.2167,205.382,-74.655],[2121.1,-1801.98,32.7167,202.231,-74.2859],[2092.69,-1702.28,32.2,198.934,-73.8891],[2063.13,-1601.31,31.6667,195.486,-73.4619],[2033.34,-1502.34,31.1333,191.995,-73.0159],[2002.38,-1402.4,30.5833,188.35,-72.5347],[1970.22,-1301.72,30.0167,184.549,-72.0147],[1936.85,-1200.55,29.4333,180.59,-71.452],[1903.21,-1101.92,28.85,176.586,-70.8592],[1867.36,-1000.45,28.2333,172.306,-70.1971],[1831.22,-901.909,27.6167,167.982,-69.4955],[1792.82,-801.253,26.9667,163.379,-68.7092],[1753.11,-701.493,26.3,158.614,-67.8481],[1711.08,-600.591,25.6,153.57,-66.8783],[1667.69,-501.431,24.8833,148.37,-65.8081],[1620.88,-400.065,24.1167,142.777,-64.5663],[1572.65,-301.601,23.3333,137.041,-63.1811],[1519.87,-200.685,22.4833,130.811,-61.5263],[1463.5,-100.659,21.5833,124.233,-59.5768],[1402.42,-1.16401,20.6167,117.224,-57.2193],[1334.41,98.9347,19.55,109.616,-54.244],[1257.18,199.208,18.35,101.312,-50.3334],[1166.17,299.424,16.95,92.1553,-44.8484],[1050.07,399.7,15.1833,81.8815,-36.1707],[856.747,499.807,12.2833,70.25,-16.934],[715.979,521.478,10.2,67.9361,-0.120301]]], + [56,533.952,[[2133.58,-2001.28,33.9,208.642,-75.3988],[2107.19,-1901.13,33.4,205.525,-75.0528],[2080.58,-1802.66,32.9,202.368,-74.6933],[2052.87,-1702.7,32.3833,199.063,-74.3067],[2024.05,-1601.44,31.85,195.606,-73.8907],[1994.99,-1502.19,31.3167,192.105,-73.4561],[1964.79,-1401.96,30.7667,188.45,-72.9873],[1933.42,-1300.97,30.2,184.638,-72.4806],[1901.8,-1202.35,29.6333,180.78,-71.9483],[1868.06,-1100.53,29.0333,176.647,-71.3545],[1834.04,-1001.44,28.4333,172.467,-70.727],[1798.8,-902.469,27.8167,168.125,-70.044],[1761.35,-801.362,27.1667,163.502,-69.2785],[1722.63,-701.134,26.5,158.716,-68.4399],[1682.62,-602.105,25.8167,153.767,-67.5186],[1639.32,-500.065,25.0833,148.416,-66.4524],[1594.67,-400.31,24.3333,142.91,-65.2693],[1547.64,-301.166,23.55,137.134,-63.9208],[1497.19,-201.44,22.7167,130.977,-62.3423],[1442.24,-100.488,21.8167,124.339,-60.4457],[1383.72,-1.65075,20.8667,117.376,-58.1922],[1317.43,99.7262,19.8,109.667,-55.2971],[1244.25,198.804,18.6333,101.456,-51.5988],[1157.69,298.938,17.2667,92.3025,-46.3981],[1047.78,399.975,15.55,81.9294,-38.2053],[879.119,499.627,12.95,70.2353,-21.5054],[705.874,533.95,10.3167,66.2314,-0.0850064]]], + [57,546.248,[[2090.45,-2003.29,34.0833,208.816,-75.7927],[2064.73,-1902.88,33.5833,205.693,-75.4561],[2037.94,-1800.88,33.0667,202.423,-75.0945],[2010.93,-1700.7,32.55,199.109,-74.718],[1983.72,-1602.36,32.0333,195.752,-74.3256],[1955.4,-1502.81,31.5,192.243,-73.9027],[1925.97,-1402.27,30.95,188.577,-73.4465],[1895.41,-1300.97,30.3833,184.753,-72.9535],[1864.6,-1202.02,29.8167,180.883,-72.4354],[1832.64,-1102.66,29.2333,176.852,-71.8739],[1798.57,-1000.42,28.6167,172.541,-71.2465],[1764.23,-901.098,28,168.182,-70.5815],[1728.68,-802.17,27.3667,163.658,-69.8556],[1690.95,-701.459,26.7,158.85,-69.0401],[1651.97,-601.93,26.0167,153.877,-68.1439],[1610.75,-501.631,25.3,148.619,-67.1309],[1567.26,-401.213,24.55,143.08,-65.9815],[1521.45,-301.37,23.7667,137.265,-64.6707],[1472.31,-200.893,22.9333,131.061,-63.1355],[1419.77,-100.943,22.05,124.488,-61.3257],[1362.78,-1.094,21.1,117.452,-59.1349],[1299.22,99.9066,20.05,109.768,-56.364],[1228.98,199.079,18.9,101.544,-52.8207],[1145.72,299.99,17.55,92.3058,-47.8237],[1043.94,399.336,15.9167,82.0871,-40.255],[891.472,499.863,13.5,70.217,-25.2239],[695.149,546.246,10.4333,64.5083,-0.0741546]]], + [58,558.353,[[2045.21,-2002.76,34.25,208.91,-76.1812],[2020.17,-1902.13,33.75,205.781,-75.8538],[1994.93,-1803.18,33.25,202.609,-75.5135],[1968.64,-1702.71,32.7333,199.289,-75.1477],[1941.29,-1600.92,32.2,195.815,-74.7538],[1913.72,-1501.13,31.6667,192.296,-74.3423],[1885.07,-1400.34,31.1167,188.62,-73.8984],[1856.19,-1301.74,30.5667,184.897,-73.433],[1826.2,-1202.46,30,181.015,-72.9294],[1795.08,-1102.75,29.4167,176.97,-72.3835],[1761.92,-1000.14,28.8,172.644,-71.7736],[1728.49,-900.444,28.1833,168.268,-71.1269],[1693.88,-801.13,27.55,163.726,-70.421],[1657.16,-700.009,26.8833,158.896,-69.6277],[1619.21,-600.056,26.2,153.898,-68.7557],[1580.02,-501.603,25.5,148.735,-67.7935],[1537.69,-400.608,24.75,143.163,-66.6763],[1493.11,-300.157,23.9667,137.31,-65.4017],[1446.24,-200.99,23.15,131.186,-63.9394],[1395.11,-100.213,22.2667,124.556,-62.181],[1340.63,-1.16633,21.3333,117.575,-60.09],[1279.78,99.4473,20.3,109.921,-57.4433],[1212.43,198.701,19.1667,101.691,-54.0562],[1133.46,299.208,17.85,92.4901,-49.3328],[1036.5,399.59,16.25,82.1547,-42.1454],[898.542,499.7,14,70.2798,-28.597],[683.805,558.352,10.55,62.7669,-0.0900347]]], + [59,570.255,[[1998.74,-2003.09,34.4167,209.028,-76.5752],[1974.38,-1902.23,33.9167,205.893,-76.2571],[1949.83,-1803.04,33.4167,202.715,-75.9266],[1924.27,-1702.33,32.9,199.386,-75.5711],[1897.67,-1600.3,32.3667,195.904,-75.1884],[1870.85,-1500.26,31.8333,192.375,-74.7886],[1843.83,-1402.24,31.3,188.801,-74.3705],[1814.9,-1300.33,30.7333,184.955,-73.9048],[1785.73,-1200.78,30.1667,181.061,-73.4153],[1755.46,-1100.79,29.5833,177.002,-72.8846],[1724.09,-1000.61,28.9833,172.778,-72.308],[1691.58,-900.53,28.3667,168.386,-71.6801],[1657.93,-800.815,27.7333,163.826,-70.9946],[1623.12,-701.763,27.0833,159.097,-70.244],[1586.22,-601.278,26.4,154.076,-69.3982],[1548.12,-502.275,25.7,148.887,-68.4649],[1506.96,-400.683,24.95,143.284,-67.3807],[1464.55,-301.7,24.1833,137.519,-66.1709],[1418.99,-201.756,23.3667,131.351,-64.7534],[1369.29,-100.13,22.4833,124.668,-63.0477],[1316.32,-0.177562,21.55,117.62,-61.0177],[1258.13,99.8851,20.5333,110.003,-58.4895],[1193.64,199.037,19.4167,101.777,-55.2512],[1118.84,298.87,18.1333,92.6339,-50.7889],[1026.61,399.959,16.5667,82.2153,-43.9692],[900.586,499.646,14.45,70.3498,-31.6337],[671.838,570.253,10.6667,61.0079,-0.135114]]], + [60,581.941,[[1950.26,-2000.89,34.5667,209.067,-76.9645],[1927.38,-1903.19,34.0833,206.03,-76.666],[1902.74,-1800.48,33.5667,202.739,-76.3344],[1878.7,-1702.8,33.0667,199.51,-76.0004],[1852.86,-1600.51,32.5333,196.02,-75.6291],[1826.81,-1500.2,32,192.483,-75.2411],[1800.56,-1401.92,31.4667,188.899,-74.8354],[1773.28,-1302.7,30.9167,185.157,-74.397],[1744.95,-1202.79,30.35,181.252,-73.9226],[1715.56,-1102.43,29.7667,177.181,-73.4083],[1685.08,-1001.87,29.1667,172.944,-72.8494],[1653.51,-901.381,28.55,168.537,-72.2407],[1620.83,-801.25,27.9167,163.959,-71.576],[1587.01,-701.768,27.2667,159.21,-70.848],[1551.18,-600.825,26.5833,154.167,-70.0276],[1514.17,-501.349,25.8833,148.952,-69.122],[1475.09,-401.465,25.15,143.443,-68.094],[1433.89,-301.847,24.3833,137.644,-66.9215],[1389.65,-201.221,23.5667,131.433,-65.547],[1342.3,-100.719,22.7,124.824,-63.925],[1291.79,-1.56963,21.7833,117.838,-61.9953],[1235.29,99.6682,20.7667,110.136,-59.5484],[1173.62,198.707,19.6667,101.921,-56.4598],[1101.96,299.029,18.4,92.7318,-52.1955],[1015.31,399.524,16.8833,82.3694,-45.8088],[898.831,499.484,14.8667,70.4498,-34.4589],[658.264,581.94,10.7667,59.2357,-0.0543362]]], + [61,593.393,[[1901.36,-2002.98,34.7333,209.235,-77.3693],[1878.4,-1901.69,34.2333,206.087,-77.07],[1855.26,-1802.07,33.7333,202.896,-76.759],[1831.15,-1700.91,33.2167,199.552,-76.4244],[1806.86,-1601.58,32.7,196.163,-76.0757],[1781.59,-1501,32.1667,192.618,-75.6998],[1756.12,-1402.43,31.6333,189.026,-75.3067],[1729.65,-1302.93,31.0833,185.273,-74.8819],[1702.16,-1202.72,30.5167,181.357,-74.4222],[1673.64,-1102.04,29.9333,177.275,-73.9236],[1644.07,-1001.16,29.3333,173.023,-73.3819],[1613.44,-900.336,28.7167,168.6,-72.7918],[1582.56,-802.461,28.1,164.127,-72.1647],[1548.92,-700.014,27.4333,159.236,-71.4412],[1515,-601.116,26.7667,154.294,-70.6654],[1479.1,-501.15,26.0667,149.054,-69.7882],[1441.18,-400.747,25.3333,143.516,-68.7921],[1401.22,-300.584,24.5667,137.682,-67.6556],[1359.17,-201.379,23.7667,131.558,-66.3511],[1313.25,-100.123,22.9,124.898,-64.7803],[1264.26,-0.169065,21.9833,117.851,-62.9098],[1211.26,98.7668,21,110.323,-60.6187],[1151.46,199.12,19.9,102.001,-57.6313],[1082.88,299.726,18.65,92.7785,-53.5563],[1001.65,399.268,17.1833,82.5072,-47.5835],[893.444,499.465,15.25,70.5424,-37.0805],[645.082,593.39,10.8833,57.4422,-0.162328]]], + [62,604.6,[[1850.51,-2002.58,34.8833,209.325,-77.7696],[1828.26,-1901.09,34.3833,206.17,-77.4798],[1805.83,-1801.27,33.8833,202.972,-77.1786],[1783.22,-1703.13,33.3833,199.73,-76.8652],[1758.92,-1600.35,32.85,196.224,-76.5168],[1735.19,-1502.66,32.3333,192.782,-76.1643],[1709.74,-1400.75,31.7833,189.068,-75.7718],[1684.08,-1301.01,31.2333,185.305,-75.3603],[1657.44,-1200.56,30.6667,181.377,-74.9148],[1630.59,-1102.48,30.1,177.399,-74.4459],[1601.94,-1001.26,29.5,173.134,-73.9216],[1572.26,-900.084,28.8833,168.697,-73.3505],[1542.34,-801.855,28.2667,164.207,-72.7435],[1510.55,-701.55,27.6167,159.42,-72.0612],[1477.69,-602.173,26.95,154.457,-71.3112],[1442.91,-501.7,26.25,149.193,-70.463],[1406.17,-400.761,25.5167,143.627,-69.4996],[1367.45,-300.031,24.75,137.76,-68.3999],[1326.72,-200.229,23.95,131.597,-67.1372],[1283.08,-100.221,23.1,125.018,-65.6465],[1236.49,-1.20323,22.2,118.041,-63.8722],[1185.16,98.7767,21.2167,110.437,-61.659],[1128.12,198.853,20.1333,102.139,-58.8163],[1062.59,299.736,18.9,92.892,-54.933],[985.726,399.249,17.4667,82.6209,-49.2971],[884.595,499.818,15.6,70.5949,-39.5089],[683.096,599.971,11.9333,56.2099,-9.66245],[630.35,604.598,10.9833,55.6358,-0.141182]]], + [63,615.549,[[1798.5,-2003.11,35.0333,209.44,-78.1753],[1776.95,-1901.41,34.5333,206.28,-77.8951],[1755.24,-1801.37,34.0333,203.076,-77.6039],[1733.37,-1703.02,33.5333,199.827,-77.3009],[1709.85,-1600,33,196.314,-76.9639],[1686.88,-1502.09,32.4833,192.863,-76.6231],[1663,-1403,31.95,189.254,-76.2553],[1638.17,-1302.95,31.4,185.482,-75.8579],[1612.39,-1202.17,30.8333,181.545,-75.4277],[1585.64,-1100.9,30.25,177.438,-74.961],[1558.68,-1002.18,29.6667,173.279,-74.4682],[1529.96,-900.647,29.05,168.827,-73.9165],[1501.01,-802.05,28.4333,164.321,-73.33],[1470.25,-701.353,27.7833,159.517,-72.6705],[1438.45,-601.57,27.1167,154.534,-71.9456],[1404.79,-500.667,26.4167,149.246,-71.1255],[1370.05,-401.528,25.7,143.779,-70.2158],[1332.59,-300.212,24.9333,137.88,-69.1539],[1294.01,-201.829,24.15,131.809,-67.9607],[1251.79,-101.036,23.3,125.184,-66.5229],[1206.72,-1.17944,22.4,118.151,-64.8104],[1157.06,99.7257,21.4167,110.474,-62.6721],[1102.73,199.356,20.35,102.208,-59.9675],[1041.07,299.029,19.15,93.0745,-56.3232],[967.611,399.523,17.7333,82.7034,-50.9534],[873.333,499.958,15.9333,70.6808,-41.8546],[709.776,599.884,12.85,56.1845,-18.0449],[615.056,615.547,11.0833,53.8128,-0.151977]]], + [64,626.226,[[1744.64,-2001.17,35.1667,209.477,-78.5772],[1724.51,-1902.67,34.6833,206.417,-78.3156],[1703.53,-1802.41,34.1833,203.207,-78.0346],[1681.68,-1700.57,33.6667,199.843,-77.7322],[1659.66,-1600.57,33.15,196.432,-77.4169],[1637.46,-1502.42,32.6333,192.974,-77.0879],[1613.66,-1400.01,32.0833,189.242,-76.7215],[1590.39,-1302.77,31.55,185.575,-76.3492],[1565.47,-1201.72,30.9833,181.627,-75.9338],[1539.62,-1100.17,30.4,177.509,-75.4832],[1513.57,-1001.18,29.8167,173.337,-75.0073],[1486.56,-902.052,29.2167,168.992,-74.4892],[1457.83,-800.438,28.5833,164.349,-73.9078],[1428.87,-701.967,27.95,159.65,-73.2876],[1398.14,-601.762,27.2833,154.647,-72.5882],[1365.62,-500.411,26.5833,149.337,-71.7969],[1332.06,-400.81,25.8667,143.844,-70.9188],[1296.65,-301.155,25.1167,138.043,-69.9168],[1258.57,-200.097,24.3167,131.806,-68.7408],[1218.59,-100.668,23.4833,125.268,-67.3798],[1175.05,-0.0797226,22.5833,118.18,-65.7268],[1127.89,99.9803,21.6167,110.565,-63.6984],[1076.23,199.16,20.5667,102.337,-61.1322],[1017.51,298.888,19.3833,93.201,-57.6708],[948.236,399.039,18,82.8698,-52.6253],[859.748,499.959,16.25,70.7888,-44.1199],[718.189,599.763,13.4833,56.2452,-23.7235],[598.335,626.225,11.1667,51.9769,-0.0186293]]], + [65,636.618,[[1689.67,-2000.19,35.3,209.54,-78.9847],[1670.24,-1901.52,34.8167,206.474,-78.7324],[1649.99,-1801.08,34.3167,203.258,-78.4613],[1629.59,-1702.32,33.8167,199.996,-78.1791],[1608.34,-1602.07,33.3,196.579,-77.8755],[1586.24,-1500.53,32.7667,193.002,-77.548],[1563.96,-1400.99,32.2333,189.375,-77.2055],[1540.81,-1300.47,31.6833,185.584,-76.8352],[1517.47,-1202.16,31.1333,181.742,-76.4464],[1492.53,-1100.32,30.55,177.613,-76.0122],[1467.39,-1001.02,29.9667,173.429,-75.5536],[1441.33,-901.594,29.3667,169.071,-75.0542],[1414.34,-802.294,28.75,164.536,-74.5089],[1385.66,-700.851,28.1,159.696,-73.8956],[1356.02,-600.296,27.4333,154.674,-73.2211],[1325.39,-500.95,26.75,149.468,-72.4766],[1293.01,-400.867,26.0333,143.95,-71.6309],[1258.85,-300.705,25.2833,138.12,-70.6655],[1222.89,-201.161,24.5,131.978,-69.5568],[1184.32,-101.037,23.6667,125.398,-68.2471],[1143.1,-1.5035,22.7833,118.391,-66.6868],[1097.62,99.5206,21.8167,110.709,-64.7366],[1047.8,199.757,20.7667,102.395,-62.2663],[991.962,299.356,19.6,93.2669,-58.9795],[926.78,398.897,18.25,82.9979,-54.2431],[843.915,499.896,16.55,70.9074,-46.3076],[718.221,599.656,14,56.3357,-28.3416],[581.95,636.617,11.2667,50.1216,-0.0988508]]], + [66,646.714,[[1633.6,-2000.18,35.4333,209.63,-79.3973],[1614.89,-1901.33,34.95,206.559,-79.1544],[1595.38,-1800.7,34.45,203.337,-78.8934],[1575.73,-1701.75,33.95,200.069,-78.6219],[1555.26,-1601.3,33.4333,196.645,-78.3295],[1534.63,-1502.7,32.9167,193.173,-78.0243],[1513.17,-1402.9,32.3833,189.539,-77.6949],[1490.87,-1302.1,31.8333,185.74,-77.3389],[1467.71,-1200.54,31.2667,181.772,-76.9535],[1444.37,-1101.35,30.7,177.751,-76.5475],[1420.16,-1001.75,30.1167,173.556,-76.1064],[1395.06,-901.997,29.5167,169.185,-75.626],[1369.06,-802.365,28.9,164.635,-75.1015],[1341.44,-700.568,28.25,159.78,-74.5115],[1313.6,-602.125,27.6,154.865,-73.8792],[1284.1,-502.307,26.9167,149.639,-73.1639],[1252.92,-401.726,26.2,144.098,-72.3512],[1220.02,-301.035,25.45,138.24,-71.4232],[1185.39,-200.934,24.6667,132.065,-70.3571],[1148.24,-100.213,23.8333,125.445,-69.0971],[1108.55,-0.0409036,22.95,118.388,-67.595],[1066.26,98.3189,22.0167,110.91,-65.7851],[1018.29,199.643,20.9667,102.512,-63.4138],[965.307,299.109,19.8167,93.3999,-60.3029],[903.333,399.139,18.4833,83.0824,-55.8112],[825.924,499.833,16.8333,71.0271,-48.4212],[712.121,599.953,14.4333,56.3771,-32.2441],[564.202,646.714,11.35,48.254,-0.0297014]]], + [67,656.499,[[1576.46,-2001.18,35.5667,209.748,-79.8149],[1558.47,-1902.14,35.0833,206.672,-79.5816],[1539.71,-1801.31,34.5833,203.445,-79.3309],[1520.81,-1702.16,34.0833,200.171,-79.0701],[1501.12,-1601.5,33.5667,196.741,-78.7892],[1481.29,-1502.69,33.05,193.262,-78.496],[1460.65,-1402.67,32.5167,189.621,-78.1796],[1439.21,-1301.64,31.9667,185.813,-77.8375],[1417.6,-1202.8,31.4167,181.953,-77.4783],[1394.5,-1100.41,30.8333,177.803,-77.077],[1371.21,-1000.56,30.25,173.597,-76.6531],[1347.08,-900.549,29.65,169.213,-76.1914],[1322.07,-800.649,29.0333,164.649,-75.6871],[1296.2,-701.142,28.4,159.902,-75.1347],[1269.43,-602.326,27.75,154.97,-74.5277],[1241.07,-502.111,27.0667,149.724,-73.8409],[1211.09,-401.109,26.35,144.159,-73.0603],[1180.17,-302.171,25.6167,138.405,-72.1895],[1146.88,-201.493,24.8333,132.199,-71.1669],[1111.17,-100.151,24,125.54,-69.9579],[1073.73,-1.15387,23.1333,118.569,-68.5445],[1032.36,99.7527,22.1833,110.899,-66.7763],[987.721,198.791,21.1667,102.69,-64.5731],[936.799,299.493,20.0167,93.4691,-61.5909],[877.988,399.804,18.7,83.1179,-57.3337],[805.866,499.829,17.1,71.1386,-50.4649],[702.645,599.791,14.8333,56.504,-35.8841],[546.734,656.496,11.45,46.3685,-0.197387]]], + [68,665.964,[[1518.24,-2003.2,35.7,209.894,-80.2372],[1500.38,-1900.57,35.2,206.707,-80.0058],[1482.97,-1802.93,34.7167,203.582,-79.7735],[1464.23,-1700.28,34.2,200.194,-79.5149],[1445.95,-1602.69,33.7,196.868,-79.2542],[1426.29,-1500.49,33.1667,193.269,-78.964],[1406.49,-1400.29,32.6333,189.62,-78.6602],[1386.53,-1302.12,32.1,185.919,-78.3421],[1365.16,-1200.08,31.5333,181.933,-77.987],[1343.62,-1100.39,30.9667,177.891,-77.6131],[1321.28,-1000.28,30.3833,173.673,-77.2066],[1298.76,-902.741,29.8,169.4,-76.7765],[1274.77,-802.477,29.1833,164.824,-76.2937],[1249.29,-700.008,28.5333,159.937,-75.7505],[1223.6,-600.888,27.8833,154.988,-75.1681],[1196.38,-500.35,27.2,149.721,-74.5091],[1168.29,-401.316,26.5,144.264,-73.778],[1138.62,-301.925,25.7667,138.484,-72.9435],[1106.67,-200.758,24.9833,132.246,-71.9633],[1073.1,-100.871,24.1667,125.685,-70.8282],[1037.19,-1.19754,23.3,118.67,-69.475],[998.197,98.7426,22.3667,111.077,-67.8126],[955.375,198.741,21.35,102.795,-65.7049],[907.24,299.15,20.2167,93.6056,-62.8929],[851.548,399.743,18.9167,83.2311,-58.8734],[783.829,499.941,17.35,71.2336,-52.443],[689.974,599.435,15.2,56.6692,-39.2675],[527.229,665.964,11.5167,44.4732,-0.000787596]]], + [69,675.095,[[1458.4,-2002.81,35.8167,209.962,-80.6567],[1441.29,-1900.01,35.3167,206.771,-80.4352],[1424.62,-1802.21,34.8333,203.64,-80.2128],[1407.25,-1702.69,34.3333,200.356,-79.9735],[1389.16,-1601.63,33.8167,196.913,-79.7158],[1370.93,-1502.43,33.3,193.421,-79.4468],[1351.96,-1401.99,32.7667,189.765,-79.1564],[1332.25,-1300.53,32.2167,185.941,-78.8425],[1312.39,-1201.26,31.6667,182.064,-78.5127],[1291.76,-1101.31,31.1,178.013,-78.1551],[1270.37,-1000.92,30.5167,173.786,-77.7665],[1248.19,-900.345,29.9167,169.378,-77.3431],[1225.84,-802.539,29.3167,164.913,-76.8934],[1202.06,-702.346,28.6833,160.137,-76.3875],[1176.84,-600.311,28.0167,155.045,-75.8166],[1151.42,-501.849,27.35,149.89,-75.2019],[1123.87,-400.049,26.6333,144.281,-74.4861],[1095.46,-300.287,25.9,138.475,-73.687],[1065.53,-200.827,25.1333,132.341,-72.7691],[1033.38,-100.403,24.3167,125.745,-71.6837],[998.999,-0.155593,23.45,118.687,-70.3889],[962.338,98.6805,22.5333,111.177,-68.8276],[921.346,199.516,21.5167,102.825,-66.8123],[875.947,299.462,20.4,93.6751,-64.1631],[824.015,398.928,19.1333,83.4241,-60.4267],[760.594,499.252,17.6,71.4311,-54.4367],[673.592,599.756,15.5167,56.7244,-42.2848],[508.01,675.094,11.6,42.561,-0.0514193]]], + [70,683.882,[[1397,-2000,35.9167,209.954,-81.074],[1381.2,-1900.49,35.4333,206.863,-80.8695],[1365.28,-1802.52,34.95,203.728,-80.6572],[1348.68,-1702.82,34.45,200.439,-80.4287],[1331.39,-1601.59,33.9333,196.99,-80.1827],[1313.98,-1502.2,33.4167,193.492,-79.9259],[1295.86,-1401.56,32.8833,189.829,-79.6487],[1277.6,-1302.95,32.35,186.114,-79.3582],[1258.05,-1200.44,31.7833,182.111,-79.0341],[1238.34,-1100.27,31.2167,178.051,-78.6926],[1218.49,-1002.5,30.65,173.935,-78.3323],[1197.3,-901.628,30.05,169.518,-77.9285],[1175.35,-800.831,29.4333,164.915,-77.4874],[1152.64,-700.395,28.8,160.125,-77.004],[1129.14,-600.617,28.15,155.145,-76.4725],[1104.86,-501.806,27.4833,149.972,-75.886],[1079.16,-401.955,26.7833,144.473,-75.2195],[1052.03,-301.7,26.05,138.645,-74.4582],[1023.44,-201.72,25.2833,132.485,-73.5836],[992.737,-100.736,24.4667,125.855,-72.5489],[960.53,-1.76679,23.6167,118.894,-71.3393],[924.881,99.5863,22.6833,111.196,-69.824],[886.373,199.547,21.6833,102.915,-67.9329],[843.668,299.033,20.5833,93.8125,-65.4467],[794.078,399.795,19.3167,83.4282,-61.8845],[734.84,499.722,17.8167,71.4744,-56.2946],[655.117,599.723,15.8167,56.839,-45.2023],[488.306,683.88,11.6833,40.635,-0.1543]]], + [71,692.316,[[1335.2,-2001.71,36.0333,210.08,-81.5031],[1320.14,-1902.02,35.55,206.986,-81.3085],[1304.44,-1800.52,35.05,203.738,-81.0993],[1288.62,-1700.69,34.55,200.442,-80.8816],[1272.68,-1602.56,34.05,197.099,-80.6548],[1256.08,-1502.98,33.5333,193.595,-80.4103],[1238.81,-1402.14,33,189.926,-80.1465],[1220.87,-1300.27,32.45,186.088,-79.8611],[1202.79,-1200.58,31.9,182.194,-79.5614],[1184.01,-1100.2,31.3333,178.125,-79.2362],[1165.09,-1002.2,30.7667,174,-78.8932],[1144.9,-901.086,30.1667,169.571,-78.5086],[1123.99,-800.04,29.55,164.957,-78.0885],[1102.92,-701.955,28.9333,160.28,-77.6406],[1080.53,-601.823,28.2833,155.286,-77.1352],[1056.81,-500.212,27.6,149.966,-76.5629],[1032.33,-400.069,26.9,144.447,-75.9276],[1007.06,-301.74,26.1833,138.729,-75.2191],[979.819,-201.327,25.4167,132.542,-74.3867],[951.169,-101.89,24.6167,126.017,-73.4227],[919.885,-0.419145,23.75,118.88,-72.2492],[886.529,99.723,22.8333,111.272,-70.8321],[850.46,198.813,21.85,103.068,-69.0647],[809.783,299.28,20.75,93.8804,-66.7019],[763.173,399.937,19.5,83.5082,-63.3596],[708.014,499.435,18.0333,71.613,-58.1707],[634.642,599.41,16.1,56.9988,-48.0205],[467.476,692.315,11.75,38.6971,-0.0755333]]], + [72,700.383,[[1271.92,-2001.04,36.1333,210.129,-81.93],[1257.61,-1901.22,35.65,207.03,-81.7452],[1243.19,-1802.94,35.1667,203.887,-81.5532],[1228.16,-1702.91,34.6667,200.588,-81.3467],[1212.51,-1601.34,34.15,197.128,-81.1242],[1196.74,-1501.6,33.6333,193.618,-80.892],[1180.33,-1400.61,33.1,189.942,-80.6412],[1163.8,-1301.64,32.5667,186.213,-80.3785],[1146.62,-1201.73,32.0167,182.312,-80.0941],[1128.78,-1101.11,31.45,178.236,-79.7856],[1110.27,-1000.02,30.8667,173.98,-79.4502],[1091.62,-901.5,30.2833,169.664,-79.0951],[1071.75,-800.189,29.6667,165.038,-78.6963],[1051.73,-701.836,29.05,160.349,-78.2712],[1030.46,-601.42,28.4,155.34,-77.7913],[1008.48,-501.948,27.7333,150.135,-77.2617],[985.214,-401.397,27.0333,144.599,-76.6595],[960.651,-300.402,26.3,138.727,-75.9715],[935.334,-201.779,25.55,132.65,-75.1984],[908.118,-101.863,24.75,126.095,-74.284],[878.972,-1.76793,23.9,119.06,-73.193],[847.29,99.068,22.9833,111.407,-71.8507],[813.029,198.909,22,103.144,-70.1751],[774.98,298.771,20.9167,94.0169,-67.9699],[731.304,399.331,19.6833,83.6663,-64.8487],[679.52,499.401,18.2333,71.7144,-59.9941],[611.657,599.624,16.35,57.0687,-50.6382],[456.641,699.958,12.1,36.824,-4.36766],[446.234,700.383,11.8167,36.7461,-0.0419169]]], + [73,708.075,[[1207.75,-2001.45,36.2333,210.208,-82.3615],[1194.2,-1901.49,35.75,207.106,-82.1865],[1180.54,-1803.07,35.2667,203.958,-82.0048],[1166.3,-1702.89,34.7667,200.654,-81.8093],[1151.48,-1601.16,34.25,197.189,-81.5987],[1136.54,-1501.26,33.7333,193.674,-81.3789],[1120.99,-1400.11,33.2,189.991,-81.1415],[1105.33,-1300.97,32.6667,186.255,-80.8928],[1089.06,-1200.88,32.1167,182.347,-80.6234],[1072.16,-1100.08,31.55,178.263,-80.3313],[1055.13,-1001.66,30.9833,174.12,-80.023],[1036.96,-900.1,30.3833,169.671,-79.6774],[1018.65,-801.292,29.7833,165.16,-79.3102],[999.173,-700.032,29.15,160.332,-78.8969],[979.545,-601.939,28.5167,155.438,-78.4543],[958.726,-502.155,27.85,150.218,-77.9533],[936.695,-401.273,27.15,144.665,-77.3836],[913.964,-302.182,26.4333,138.907,-76.7479],[889.456,-200.946,25.6667,132.671,-76.0006],[863.681,-100.643,24.8667,126.087,-75.1348],[836.078,-0.13277,24.0167,119.017,-74.1011],[806.62,99.3788,23.1167,111.46,-72.8532],[774.178,199.854,22.1333,103.142,-71.2673],[738.704,298.954,21.0667,94.0819,-69.2128],[697.912,399.232,19.85,83.7636,-66.3033],[649.453,499.658,18.4167,71.7733,-61.7702],[586.926,599.745,16.5833,57.15,-53.175],[469.145,699.856,13.1667,36.8818,-19.9775],[424.585,708.075,11.8833,34.7823,-0.0613647]]], + [74,715.383,[[1142.69,-2002.98,36.3333,210.317,-82.7971],[1129.9,-1902.86,35.85,207.212,-82.6321],[1116.56,-1800.91,35.35,203.951,-82.4548],[1103.12,-1700.63,34.85,200.642,-82.2702],[1089.58,-1602.04,34.35,197.284,-82.0779],[1075.48,-1501.98,33.8333,193.763,-81.8706],[1060.81,-1400.64,33.3,190.076,-81.6468],[1046.03,-1301.33,32.7667,186.334,-81.4123],[1030.67,-1201.06,32.2167,182.419,-81.1583],[1014.72,-1100.06,31.65,178.327,-80.8828],[998.647,-1001.45,31.0833,174.176,-80.592],[981.977,-902.464,30.5,169.843,-80.2753],[964.217,-800.655,29.8833,165.197,-79.9197],[946.32,-701.801,29.2667,160.485,-79.5403],[927.31,-600.852,28.6167,155.45,-79.1121],[907.661,-500.828,27.95,150.215,-78.6392],[887.365,-402.053,27.2667,144.777,-78.1148],[865.414,-300.339,26.5333,138.865,-77.5013],[842.788,-200.975,25.7833,132.742,-76.8115],[818.466,-100.261,24.9833,126.132,-75.9951],[792.931,-1.22999,24.15,119.168,-75.0405],[765.137,98.8837,23.25,111.572,-73.8658],[735.048,198.381,22.2833,103.345,-72.3994],[701.057,299.849,21.2,94.0734,-70.4345],[663.098,399.67,20,83.7971,-67.728],[618.448,499.167,18.6,71.9247,-63.5623],[560.546,599.831,16.8,57.233,-55.6356],[460.361,699.811,13.7167,36.9871,-28.0046],[402.534,715.382,11.95,32.8063,-0.143788]]], + [75,722.296,[[1076.35,-2002.13,36.4167,210.35,-83.2313],[1064.32,-1901.9,35.9333,207.24,-83.0763],[1052.2,-1803.21,35.45,204.085,-82.9152],[1039.57,-1702.76,34.95,200.773,-82.742],[1026.41,-1600.74,34.4333,197.298,-82.5553],[1013.16,-1500.55,33.9167,193.772,-82.3604],[999.798,-1402.23,33.4,190.195,-82.1567],[985.904,-1302.73,32.8667,186.448,-81.9366],[971.466,-1202.26,32.3167,182.528,-81.6981],[956.475,-1101.05,31.75,178.429,-81.4395],[941.369,-1002.23,31.1833,174.271,-81.1665],[925.25,-900.234,30.5833,169.805,-80.8604],[909.007,-800.99,29.9833,165.274,-80.5351],[892.184,-701.902,29.3667,160.552,-80.1789],[874.315,-600.704,28.7167,155.505,-79.7767],[855.846,-500.422,28.05,150.256,-79.3325],[836.768,-401.382,27.3667,144.803,-78.8397],[816.606,-301.648,26.65,139.008,-78.2768],[795.342,-201.881,25.9,132.865,-77.6299],[772.483,-100.734,25.1,126.23,-76.864],[748.484,-1.24735,24.2667,119.237,-75.968],[722.363,99.3628,23.3667,111.603,-74.8649],[694.085,199.398,22.4,103.328,-73.4869],[662.632,299.984,21.3333,94.1333,-71.6696],[627.459,399.36,20.15,83.9079,-69.1668],[586.007,498.998,18.7667,72.0289,-65.3106],[532.617,599.929,17,57.3091,-58.0256],[445.15,699.848,14.1333,37.0816,-34.2373],[380.086,722.294,12.0167,30.8188,-0.301973]]], + [76,728.807,[[1009.21,-2002.42,36.5,210.414,-83.6696],[997.955,-1902.07,36.0167,207.301,-83.5246],[986.614,-1803.26,35.5333,204.142,-83.374],[974.792,-1702.68,35.0333,200.826,-83.2119],[962.482,-1600.53,34.5167,197.347,-83.0374],[950.075,-1500.21,34,193.816,-82.855],[937.575,-1401.76,33.4833,190.233,-82.6645],[924.573,-1302.11,32.95,186.481,-82.4585],[911.061,-1201.49,32.4,182.554,-82.2355],[897.032,-1100.14,31.8333,178.448,-81.9935],[882.896,-1001.16,31.2667,174.283,-81.7381],[868.232,-901.805,30.6833,169.933,-81.4598],[853.034,-802.32,30.0833,165.394,-81.156],[836.868,-700.339,29.45,160.534,-80.8138],[820.576,-601.517,28.8167,155.605,-80.4473],[803.295,-500.96,28.15,150.344,-80.0322],[785.445,-401.635,27.4667,144.877,-79.5717],[766.58,-301.6,26.75,139.065,-79.0455],[746.685,-201.514,26,132.902,-78.4406],[725.297,-100.025,25.2,126.243,-77.7243],[702.843,-0.177953,24.3667,119.221,-76.8859],[678.857,99.0183,23.4833,111.694,-75.8737],[652.402,199.621,22.5167,103.374,-74.5862],[623.439,299.337,21.4667,94.2637,-72.9159],[590.538,399.602,20.2833,83.9527,-70.5793],[552.232,499.181,18.9167,72.0819,-67.0207],[503.714,599.247,17.2,57.5085,-60.4313],[426.222,699.75,14.4833,37.2115,-39.6446],[356.766,728.805,12.0667,28.8208,-0.227495]]], + [77,734.907,[[940.935,-2000.35,36.5667,210.402,-84.1071],[930.818,-1903.36,36.1,207.393,-83.9768],[919.896,-1801.04,35.6,204.121,-83.8318],[908.889,-1700.38,35.1,200.8,-83.6809],[897.798,-1601.41,34.6,197.429,-83.5237],[886.249,-1500.95,34.0833,193.895,-83.3541],[874.613,-1402.35,33.5667,190.307,-83.1769],[862.51,-1302.55,33.0333,186.55,-82.9853],[849.932,-1201.78,32.4833,182.618,-82.7779],[836.874,-1100.26,31.9167,178.506,-82.5527],[823.714,-1001.12,31.35,174.334,-82.3151],[810.064,-901.585,30.7667,169.976,-82.0562],[795.917,-801.922,30.1667,165.429,-81.7735],[781.266,-702.399,29.55,160.689,-81.4638],[765.703,-600.737,28.9,155.62,-81.114],[750.02,-502.452,28.25,150.479,-80.7377],[733,-400.441,27.55,144.864,-80.299],[715.439,-300.183,26.8333,139.036,-79.809],[697.332,-202.041,26.1,132.992,-79.2587],[677.426,-100.186,25.3,126.311,-78.5928],[656.947,-1.90014,24.4833,119.405,-77.8298],[634.204,99.6523,23.5833,111.703,-76.8716],[610.008,199.037,22.6333,103.485,-75.6954],[583.055,299.408,21.5833,94.3196,-74.1436],[552.87,399.084,20.4167,84.0756,-72.0044],[517.225,499.744,19.05,72.08,-68.6981],[472.959,599.475,17.3667,57.5515,-62.6927],[404.417,699.619,14.7833,37.347,-44.4803],[333.127,734.905,12.1167,26.8119,-0.218003]]], + [78,740.588,[[872.294,-2002.92,36.65,210.527,-84.5528],[862.599,-1902.36,36.1667,207.409,-84.4281],[852.83,-1803.33,35.6833,204.243,-84.2985],[842.647,-1702.52,35.1833,200.92,-84.159],[832.042,-1600.13,34.6667,197.433,-84.0088],[821.701,-1502.79,34.1667,194.008,-83.857],[810.587,-1400.88,33.6333,190.301,-83.6879],[799.387,-1300.98,33.1,186.538,-83.5106],[787.748,-1200.1,32.55,182.6,-83.3186],[776.02,-1101.43,32,178.603,-83.1165],[763.845,-1002.11,31.4333,174.425,-82.8969],[751.217,-902.388,30.85,170.061,-82.6576],[738.128,-802.531,30.25,165.507,-82.3963],[724.204,-700.152,29.6167,160.629,-82.102],[710.173,-600.931,28.9833,155.68,-81.7867],[695.664,-502.429,28.3333,150.528,-81.4387],[679.917,-400.184,27.6333,144.9,-81.033],[664.049,-301.972,26.9333,139.194,-80.591],[646.917,-201.292,26.1833,132.996,-80.0709],[628.885,-101.233,25.4,126.435,-79.4683],[609.554,-0.593161,24.5667,119.363,-78.7485],[588.902,99.4516,23.6833,111.773,-77.8786],[566.519,199.311,22.7333,103.517,-76.7916],[541.983,298.688,21.7,94.4469,-75.3813],[514.062,399.136,20.5333,84.1307,-73.4067],[481.496,499.575,19.1833,72.1676,-70.3917],[440.962,599.836,17.5167,57.5665,-64.9024],[380.038,699.783,15.0333,37.4011,-48.801],[309.176,740.585,12.1667,24.793,-0.289739]]], + [79,745.841,[[802.621,-2003.16,36.7167,210.578,-84.9977],[793.713,-1902.5,36.2333,207.457,-84.8832],[784.737,-1803.38,35.75,204.289,-84.7641],[775.381,-1702.47,35.25,200.962,-84.636],[765.954,-1603.25,34.75,197.585,-84.5026],[756.137,-1502.52,34.2333,194.043,-84.3587],[745.926,-1400.5,33.7,190.332,-84.2033],[735.635,-1300.49,33.1667,186.564,-84.0405],[725.267,-1202.52,32.6333,182.741,-83.8696],[714.166,-1100.7,32.0667,178.618,-83.6784],[702.98,-1001.26,31.5,174.434,-83.4767],[691.377,-901.413,30.9167,170.063,-83.2569],[679.351,-801.423,30.3167,165.501,-83.0168],[666.897,-701.562,29.7,160.743,-82.7537],[654.008,-602.114,29.0667,155.786,-82.4645],[640.336,-500.893,28.4,150.491,-82.1368],[626.214,-400.88,27.7167,144.986,-81.7731],[611.289,-300.118,27,139.13,-81.3573],[595.9,-201.455,26.2667,133.053,-80.8902],[579.335,-101.104,25.4833,126.473,-80.337],[561.576,-0.150861,24.65,119.379,-79.676],[542.965,98.3985,23.7833,111.906,-78.8932],[522.406,198.762,22.8333,103.615,-77.8968],[499.869,298.693,21.8,94.4988,-76.6034],[474.224,399.772,20.6333,84.1161,-74.7905],[444.682,499.801,19.3,72.1979,-72.0564],[408.202,599.47,17.6667,57.6948,-67.1306],[354.142,699.511,15.2667,37.5605,-52.978],[284.539,745.841,12.2,22.7645,-0.0539038]]], + [80,750.663,[[732.015,-2001.07,36.7667,210.554,-85.4423],[723.898,-1900.36,36.2833,207.429,-85.3378],[715.719,-1801.18,35.8,204.257,-85.2294],[707.194,-1700.21,35.3,200.926,-85.1126],[698.603,-1600.93,34.8,197.545,-84.9909],[689.658,-1500.15,34.2833,193.998,-84.8598],[680.645,-1401.22,33.7667,190.399,-84.7227],[671.271,-1301.09,33.2333,186.627,-84.5744],[661.826,-1202.99,32.7,182.8,-84.4188],[651.713,-1101.04,32.1333,178.673,-84.2448],[641.522,-1001.46,31.5667,174.483,-84.0611],[630.952,-901.474,30.9833,170.106,-83.861],[619.996,-801.337,30.3833,165.538,-83.6424],[608.65,-701.323,29.7667,160.773,-83.4028],[596.909,-601.717,29.1333,155.807,-83.1394],[584.454,-500.328,28.4667,150.503,-82.8409],[571.589,-400.141,27.7833,144.986,-82.5096],[558.309,-301.495,27.0833,139.254,-82.14],[543.972,-200.344,26.3333,133.025,-81.7051],[529.204,-101.875,25.5667,126.569,-81.2122],[513.028,-0.582924,24.7333,119.454,-80.611],[496.075,98.3214,23.8667,111.956,-79.8987],[477.349,199.077,22.9167,103.634,-78.9917],[456.821,299.439,21.8833,94.4744,-77.8135],[433.796,399.645,20.7333,84.18,-76.1867],[407.228,499.287,19.4167,72.3185,-73.734],[374.347,599.265,17.8,57.7902,-69.3098],[326.148,699.924,15.45,37.5367,-56.7313],[260.017,750.661,12.25,20.7269,-0.324048]]], + [81,755.046,[[660.842,-2000.16,36.8167,210.561,-85.8903],[653.775,-1902.83,36.35,207.542,-85.7994],[646.145,-1800.13,35.85,204.259,-85.6982],[638.713,-1702.44,35.3667,201.036,-85.5966],[630.967,-1603.04,34.8667,197.653,-85.487],[622.902,-1502.12,34.35,194.105,-85.3689],[614.775,-1403.07,33.8333,190.503,-85.2454],[606.322,-1302.79,33.3,186.729,-85.1118],[597.538,-1201.52,32.75,182.778,-84.9672],[588.686,-1102.46,32.2,178.768,-84.815],[579.498,-1002.73,31.6333,174.574,-84.6495],[569.966,-902.584,31.05,170.193,-84.4693],[560.088,-802.284,30.45,165.619,-84.2722],[549.857,-702.101,29.8333,160.848,-84.0565],[539.269,-602.321,29.2,155.875,-83.8191],[528.038,-500.746,28.5333,150.562,-83.5503],[516.437,-400.367,27.85,145.037,-83.2517],[504.463,-301.521,27.15,139.294,-82.9187],[491.535,-200.155,26.4,133.052,-82.5267],[478.218,-101.465,25.6333,126.58,-82.0824],[463.924,-1.90201,24.8167,119.59,-81.5518],[448.345,99.2281,23.9333,111.925,-80.8977],[431.756,198.562,23,103.719,-80.0948],[413.248,299.386,21.9667,94.5219,-79.0339],[392.791,398.74,20.8333,84.324,-77.5917],[368.84,499.188,19.5167,72.3798,-75.3864],[339.503,599.25,17.9167,57.8481,-71.4472],[297.291,699.574,15.6333,37.7008,-60.5115],[234.891,755.044,12.2833,18.6809,-0.264353]]], + [82,758.983,[[589.128,-2000.42,36.8667,210.601,-86.3415],[582.834,-1903.02,36.4,207.58,-86.2605],[576.039,-1800.25,35.9,204.295,-86.1705],[569.421,-1702.48,35.4167,201.07,-86.08],[562.523,-1603,34.9167,197.685,-85.9824],[555.34,-1502.01,34.4,194.133,-85.8772],[548.102,-1402.87,33.8833,190.528,-85.7673],[540.574,-1302.51,33.35,186.75,-85.6484],[532.752,-1201.15,32.8,182.796,-85.5196],[524.869,-1101.99,32.25,178.781,-85.3841],[516.686,-1002.17,31.6833,174.583,-85.2367],[508.198,-901.927,31.1,170.196,-85.0761],[499.4,-801.526,30.5,165.616,-84.9008],[490.289,-701.239,29.8833,160.838,-84.7086],[480.859,-601.35,29.25,155.858,-84.4972],[471.108,-502.159,28.6,150.672,-84.2639],[460.779,-401.569,27.9167,145.138,-83.9984],[449.862,-300.196,27.2,139.248,-83.6949],[438.606,-200.902,26.4667,133.133,-83.3537],[426.748,-101.968,25.7,126.648,-82.9585],[413.76,-0.165963,24.8667,119.498,-82.4763],[400.149,99.2735,24,111.957,-81.9046],[385.378,198.913,23.0667,103.725,-81.1898],[369.165,298.523,22.05,94.6427,-80.2618],[350.683,399.807,20.9,84.2463,-78.9593],[329.627,499.519,19.6,72.3795,-77.0189],[303.781,599.445,18.0167,57.8647,-73.55],[267.028,699.579,15.7833,37.7655,-64.0617],[209.549,758.981,12.3167,16.6271,-0.316962]]], + [83,762.469,[[516.903,-2001.88,36.9167,210.674,-86.7951],[511.19,-1900.95,36.4333,207.543,-86.7217],[505.432,-1801.54,35.95,204.365,-86.6455],[499.431,-1700.34,35.45,201.026,-86.5633],[493.383,-1600.83,34.95,197.637,-86.4778],[487.29,-1503.03,34.45,194.198,-86.3886],[480.742,-1400.62,33.9167,190.473,-86.2891],[474.142,-1300.23,33.3833,186.691,-86.1848],[467.493,-1201.87,32.85,182.853,-86.0753],[460.584,-1102.61,32.3,178.835,-85.9566],[453.412,-1002.68,31.7333,174.633,-85.8276],[445.973,-902.331,31.15,170.243,-85.687],[438.262,-801.814,30.55,165.658,-85.5333],[430.276,-701.407,29.9333,160.875,-85.3649],[422.012,-601.394,29.3,155.889,-85.1798],[413.466,-502.073,28.65,150.696,-84.9753],[404.413,-401.346,27.9667,145.155,-84.7427],[395.068,-302.14,27.2667,139.394,-84.4832],[384.979,-200.385,26.5167,133.13,-84.1777],[374.586,-101.293,25.75,126.632,-83.8313],[363.431,-1.29905,24.9333,119.611,-83.4174],[351.503,98.448,24.0667,112.053,-82.9174],[338.559,198.421,23.1333,103.799,-82.292],[324.117,299.96,22.1,94.5368,-81.465],[308.39,398.716,20.9833,84.4003,-80.3575],[289.94,499.109,19.6833,72.4697,-78.6625],[267.292,599.87,18.1,57.8369,-75.6256],[235.811,699.452,15.9167,37.8554,-67.5236],[183.999,762.467,12.35,14.5663,-0.530154]]], + [84,765.501,[[444.033,-2001.03,36.95,210.672,-87.2488],[439.127,-1900.05,36.4667,207.539,-87.1858],[434.184,-1800.61,35.9833,204.358,-87.1203],[429.204,-1702.71,35.5,201.13,-87.0522],[424.013,-1603.1,35,197.74,-86.9788],[418.609,-1501.96,34.4833,194.184,-86.8997],[413.163,-1402.68,33.9667,190.574,-86.817],[407.498,-1302.18,33.4333,186.791,-86.7276],[401.612,-1200.67,32.8833,182.829,-86.6308],[395.68,-1101.36,32.3333,178.808,-86.5288],[389.522,-1001.38,31.7667,174.602,-86.4179],[383.135,-900.971,31.1833,170.207,-86.2972],[376.515,-800.399,30.5833,165.617,-86.1652],[369.845,-702.612,29.9833,160.959,-86.0246],[362.752,-602.457,29.35,155.969,-85.8658],[355.227,-500.484,28.6833,150.636,-85.6858],[347.645,-402.107,28.0167,145.223,-85.4911],[339.432,-300.424,27.3,139.316,-85.263],[330.963,-200.811,26.5667,133.182,-85.0065],[322.042,-101.539,25.8,126.675,-84.7094],[312.467,-1.35117,24.9833,119.64,-84.3543],[302.228,98.6029,24.1167,112.067,-83.9252],[291.117,198.801,23.1833,103.793,-83.3885],[278.921,299.026,22.1667,94.6547,-82.6909],[265.221,399.619,21.0333,84.3306,-81.7265],[249.587,499.14,19.75,72.4973,-80.2897],[230.354,599.599,18.1833,57.9179,-77.7156],[203.543,699.826,16.0167,37.8094,-70.8231],[158.04,765.5,12.3667,12.4984,-0.235403]]], + [85,768.074,[[370.772,-2001.38,36.9833,210.703,-87.7048],[366.678,-1900.35,36.5,207.569,-87.6523],[362.553,-1800.85,36.0167,204.387,-87.5976],[358.398,-1702.91,35.5333,201.157,-87.5408],[354.066,-1603.24,35.0333,197.766,-87.4796],[349.556,-1502.05,34.5167,194.208,-87.4136],[345.011,-1402.71,34,190.596,-87.3447],[340.284,-1302.15,33.4667,186.81,-87.2701],[335.372,-1200.57,32.9167,182.846,-87.1892],[330.423,-1101.2,32.3667,178.822,-87.1041],[325.284,-1001.16,31.8,174.613,-87.0116],[319.954,-900.683,31.2167,170.215,-86.9108],[314.43,-800.042,30.6167,165.621,-86.8008],[308.864,-702.184,30.0167,160.959,-86.6834],[302.944,-601.954,29.3833,155.964,-86.5508],[296.823,-502.41,28.7333,150.76,-86.4046],[290.339,-401.445,28.05,145.206,-86.2381],[283.645,-301.994,27.35,139.431,-86.0523],[276.579,-202.189,26.6167,133.291,-85.8387],[268.974,-100.608,25.8333,126.633,-85.5855],[260.984,-0.320072,25.0167,119.587,-85.289],[252.439,99.7407,24.15,111.999,-84.9305],[243.334,198.331,23.2333,103.856,-84.4907],[233.158,298.835,22.2167,94.6963,-83.9093],[221.726,399.743,21.0833,84.3413,-83.1051],[208.682,499.623,19.8,72.461,-81.9059],[192.806,599.573,18.25,57.9525,-79.7815],[170.783,699.546,16.1167,37.9221,-74.1446],[131.957,768.074,12.3833,10.425,-0.0298872]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 260.984; +_maxRange = 1499.99; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg2.sqf new file mode 100644 index 0000000000..e57738a87c --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg2.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_wp_pd_chg2 +// Ammo: ace_arty_82mm_wp_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,674.683,[[3628.28,-2000.23,35.9333,220.116,-68.4589],[3589.06,-1901.99,35.45,217.467,-67.9984],[3548.16,-1801.97,34.95,214.698,-67.5062],[3505.55,-1700.33,34.4333,211.806,-66.9795],[3462.59,-1600.48,33.9167,208.885,-66.4337],[3419.27,-1502.44,33.4,205.935,-65.8678],[3372.77,-1400.08,32.85,202.765,-65.242],[3327.3,-1302.85,32.3167,199.664,-64.6108],[3278.59,-1201.74,31.75,196.342,-63.9125],[3228.01,-1100.07,31.1667,192.895,-63.1619],[3177,-1000.88,30.5833,189.423,-62.3774],[3124.08,-901.481,29.9833,185.83,-61.5326],[3069.23,-802.137,29.3667,182.119,-60.6217],[3010.91,-700.559,28.7167,178.19,-59.6116],[2952.07,-602.247,28.0667,174.251,-58.5466],[2888.13,-500.079,27.3667,170.005,-57.3337],[2823.62,-401.812,26.6667,165.762,-56.0472],[2753.87,-300.921,25.9167,161.233,-54.5804],[2680.33,-200.471,25.1333,156.535,-52.9428],[2602.93,-101.186,24.3167,151.69,-51.1107],[2518.39,-0.142747,23.4333,146.537,-48.9729],[2428.16,99.3457,22.5,141.224,-46.5221],[2328.84,199.081,21.4833,135.64,-43.6073],[2216.9,299.479,20.35,129.737,-40.0305],[2088.63,399.224,19.0667,123.58,-35.5303],[1931.64,499.619,17.5167,117.107,-29.4235],[1715.49,599.949,15.4167,110.526,-19.9979],[1303.9,674.681,11.5167,107.225,-0.0860006]]], + [46,697.532,[[3594.49,-2001.24,36.2333,220.354,-68.8936],[3555.99,-1902.6,35.75,217.696,-68.4426],[3515.84,-1802.16,35.25,214.916,-67.9602],[3474,-1700.08,34.7333,212.012,-67.4442],[3433.18,-1602.99,34.2333,209.173,-66.9269],[3389.28,-1501.29,33.7,206.114,-66.3547],[3345.02,-1401.54,33.1667,203.025,-65.7602],[3298.98,-1300.75,32.6167,199.81,-65.1225],[3252.57,-1202.09,32.0667,196.567,-64.4583],[3204.34,-1102.71,31.5,193.199,-63.7447],[3152.85,-1000.03,30.9,189.605,-62.9546],[3100.9,-900.007,30.3,185.988,-62.1268],[3047.05,-800.013,29.6833,182.248,-61.234],[2991.27,-700.325,29.05,178.389,-60.2698],[2933.53,-601.23,28.4,174.415,-59.2267],[2872.28,-500.62,27.7167,170.23,-58.0674],[2808.98,-401.4,27.0167,165.942,-56.808],[2742.06,-301.693,26.2833,161.462,-55.4044],[2669.91,-200.048,25.5,156.701,-53.8018],[2595.53,-101.499,24.7,151.884,-52.0453],[2514.18,-0.827988,23.8333,146.74,-49.9937],[2427.28,98.6562,22.9167,141.414,-47.6396],[2331.5,198.857,21.9167,135.785,-44.8355],[2225,298.884,20.8167,129.876,-41.4399],[2102.56,399.384,19.5667,123.628,-37.1513],[1957.07,499.146,18.1,117.117,-31.496],[1764.08,599.439,16.1833,110.354,-23.0756],[1300.55,697.531,11.7,105.262,-0.0421713]]], + [47,720.333,[[3558.64,-2003.12,36.5333,220.618,-69.3343],[3519.55,-1900.68,36.0333,217.858,-68.8772],[3481.46,-1803.19,35.55,215.16,-68.4206],[3440.41,-1700.67,35.0333,212.245,-67.9153],[3400.35,-1603.14,34.5333,209.394,-67.4088],[3357.28,-1500.96,34,206.321,-66.8485],[3313.84,-1400.73,33.4667,203.217,-66.2662],[3270.04,-1302.48,32.9333,200.083,-65.6609],[3223.12,-1200.28,32.3667,196.724,-64.9909],[3175.8,-1100.37,31.8,193.335,-64.2917],[3128.08,-1002.8,31.2333,189.92,-63.5614],[3077.14,-902.057,30.6333,186.279,-62.7521],[3024.32,-801.32,30.0167,182.513,-61.8791],[2969.61,-700.862,29.3833,178.624,-60.9359],[2912.96,-600.968,28.7333,174.616,-59.9153],[2854.36,-501.939,28.0667,170.495,-58.809],[2792.28,-401.749,27.3667,166.164,-57.5775],[2726.65,-301.014,26.6333,161.632,-56.2043],[2657.41,-200.394,25.8667,156.914,-54.6699],[2584.48,-100.591,25.0667,152.027,-52.9517],[2506.26,-0.447545,24.2167,146.899,-50.9829],[2422.62,98.8628,23.3167,141.57,-48.7223],[2330.31,199.342,22.3333,135.906,-46.0252],[2229.12,298.713,21.2667,130.011,-42.8052],[2112.39,399.637,20.05,123.698,-38.7232],[1976.41,499.126,18.65,117.141,-33.443],[1800.75,599.613,16.8667,110.226,-25.7761],[1504.41,699.945,13.9167,103.559,-11.0287],[1296.1,720.333,11.8833,103.274,-0.0152075]]], + [48,743.061,[[3519.43,-2002.46,36.8167,220.815,-69.7658],[3482.38,-1903.03,36.3333,218.138,-69.3335],[3443.73,-1801.76,35.8333,215.337,-68.8711],[3404.77,-1702.13,35.3333,212.505,-68.3926],[3364.17,-1600.91,34.8167,209.546,-67.8802],[3323.24,-1501.48,34.3,206.556,-67.3488],[3280.65,-1400.76,33.7667,203.437,-66.7791],[3237.7,-1302.01,33.2333,200.288,-66.1867],[3193.04,-1202.27,32.6833,197.01,-65.5507],[3146.64,-1101.76,32.1167,193.603,-64.8671],[3098.48,-1000.71,31.5333,190.067,-64.1315],[3049.91,-902.171,30.95,186.503,-63.3614],[2998.13,-800.754,30.3333,182.71,-62.5074],[2945.9,-702.212,29.7167,178.895,-61.6094],[2890.37,-601.503,29.0667,174.855,-60.6118],[2832.92,-501.63,28.4,170.697,-59.5301],[2772.07,-400.544,27.7,166.323,-58.3255],[2709.2,-301.124,26.9833,161.846,-57.013],[2642.82,-201.557,26.2333,157.174,-55.5464],[2571.35,-100.477,25.4333,152.22,-53.8676],[2496.21,-0.895318,24.6,147.113,-51.9815],[2415.78,98.2047,23.7167,141.786,-49.8143],[2326.9,198.923,22.75,136.095,-47.2249],[2229.34,299.029,21.7,130.136,-44.1281],[2119.75,398.727,20.5333,123.869,-40.3051],[1989.84,499.831,19.1667,117.152,-35.2685],[1829.28,599.836,17.5,110.162,-28.2605],[1587.53,699.957,15.0333,103.076,-16.2106],[1290.53,743.061,12.0667,101.263,-0.0063889]]], + [49,765.693,[[3478.17,-2002.71,37.1,221.037,-70.2034],[3441.84,-1902.91,36.6167,218.351,-69.7804],[3403.96,-1801.24,36.1167,215.54,-69.3281],[3365.77,-1701.2,35.6167,212.697,-68.8598],[3327.26,-1602.81,35.1167,209.822,-68.375],[3287.15,-1502.9,34.6,206.819,-67.8555],[3245.41,-1401.67,34.0667,203.687,-67.2986],[3203.31,-1302.41,33.5333,200.523,-66.7194],[3159.55,-1202.14,32.9833,197.229,-66.0975],[3114.08,-1101.07,32.4167,193.803,-65.429],[3068.23,-1002.33,31.85,190.347,-64.7305],[3019.27,-900.336,31.25,186.659,-63.9561],[2969.9,-801.02,30.65,182.943,-63.1435],[2918.72,-701.776,30.0333,179.1,-62.2657],[2864.31,-600.319,29.3833,175.027,-61.2903],[2809.43,-502.144,28.7333,170.938,-60.2595],[2749.81,-400.144,28.0333,166.523,-59.0824],[2689.66,-302.065,27.3333,162.104,-57.8302],[2624.64,-201.397,26.5833,157.377,-56.3978],[2556.11,-101.206,25.8,152.463,-54.7925],[2482.51,-0.256735,24.9667,147.28,-52.9504],[2405.25,98.4716,24.1,141.962,-50.8732],[2319.72,199.25,23.15,136.255,-48.3878],[2225.73,299.895,22.1167,130.244,-45.4104],[2121.54,399.359,20.9833,123.963,-41.7818],[2000.66,499.159,19.6833,117.289,-37.1049],[1851.54,599.74,18.1,110.176,-30.607],[1642.67,699.969,15.9167,102.827,-20.1909],[1283.83,765.692,12.25,99.2277,-0.0169598]]], + [50,788.2,[[3433.64,-2000.45,37.3667,221.194,-70.6328],[3398.05,-1900.3,36.8833,218.498,-70.2189],[3362.17,-1801.65,36.4,215.771,-69.7912],[3324.76,-1701.19,35.9,212.917,-69.3335],[3287.04,-1602.39,35.4,210.031,-68.8595],[3247.75,-1502.04,34.8833,207.015,-68.3516],[3206.85,-1400.36,34.35,203.869,-67.807],[3165.62,-1300.64,33.8167,200.69,-67.2406],[3124.05,-1202.91,33.2833,197.479,-66.6511],[3079.51,-1101.28,32.7167,194.035,-65.998],[3034.61,-1001.96,32.15,190.56,-65.3155],[2988,-902.172,31.5667,186.952,-64.5802],[2939.65,-802.164,30.9667,183.213,-63.7869],[2889.54,-702.201,30.35,179.343,-62.9298],[2837.63,-602.559,29.7167,175.344,-62.0022],[2782.52,-501.032,29.05,171.115,-60.97],[2725.53,-400.594,28.3667,166.766,-59.8477],[2666.65,-301.572,27.6667,162.302,-58.625],[2604.41,-202.094,26.9333,157.629,-57.2578],[2537.32,-100.718,26.15,152.653,-55.6909],[2466.73,-0.483327,25.3333,147.501,-53.9288],[2391.11,99.7056,24.4667,142.096,-51.9009],[2310.35,198.642,23.55,136.482,-49.5602],[2219.89,299.786,22.5333,130.427,-46.7033],[2120.98,398.893,21.4333,124.148,-43.2689],[2005.81,499.508,20.1667,117.384,-38.8238],[1867.74,599.653,18.6667,110.234,-32.8175],[1682.53,699.869,16.6833,102.714,-23.5867],[1276.01,788.198,12.4333,97.1695,-0.0483588]]], + [51,810.56,[[3388.29,-2002.64,37.65,221.469,-71.0822],[3353.45,-1902.09,37.1667,218.765,-70.6781],[3318.33,-1803.04,36.6833,216.029,-70.2604],[3281.7,-1702.16,36.1833,213.165,-69.8134],[3244.78,-1602.92,35.6833,210.268,-69.3505],[3206.31,-1502.13,35.1667,207.241,-68.8544],[3167.54,-1403.14,34.65,204.18,-68.3394],[3127.18,-1302.89,34.1167,200.987,-67.7867],[3085.22,-1201.57,33.5667,197.66,-67.1931],[3042.91,-1102.4,33.0167,194.3,-66.574],[2998.96,-1002.5,32.45,190.806,-65.9078],[2953.34,-902.103,31.8667,187.177,-65.1899],[2906.02,-801.463,31.2667,183.414,-64.4154],[2856.98,-700.844,30.65,179.517,-63.5782],[2806.17,-600.522,30.0167,175.489,-62.6719],[2753.59,-500.784,29.3667,171.332,-61.689],[2699.19,-401.934,28.7,167.051,-60.6209],[2641.58,-301.951,28,162.545,-59.4285],[2580.68,-201.455,27.2667,157.822,-58.0946],[2516.45,-101.109,26.5,152.893,-56.5985],[2448.81,-1.61948,25.7,147.777,-54.916],[2376.28,98.1597,24.85,142.392,-52.9786],[2297.31,198.815,23.9333,136.675,-50.6978],[2211.77,298.652,22.95,130.687,-48.0054],[2116.55,398.736,21.8667,124.33,-44.7106],[2006.96,499.838,20.6333,117.503,-40.4917],[1878.08,599.88,19.2,110.307,-34.8958],[1712.51,699.253,17.3833,102.727,-26.6578],[1404.19,799.921,14.0667,95.1837,-8.64925],[1265.46,810.56,12.6,95.1,-0.00360711]]], + [52,832.746,[[3339.68,-2002.38,37.9167,221.678,-71.5238],[3305.59,-1901.47,37.4333,218.966,-71.1291],[3271.23,-1802.05,36.95,216.22,-70.7212],[3235.4,-1700.79,36.45,213.346,-70.2846],[3199.27,-1601.16,35.95,210.438,-69.8324],[3162.85,-1503.21,35.45,207.496,-69.3637],[3123.69,-1400.58,34.9167,204.324,-68.8446],[3085.45,-1303.01,34.4,201.216,-68.3218],[3044.4,-1201.2,33.85,197.874,-67.7424],[3003.02,-1101.52,33.3,194.497,-67.1381],[2960.02,-1001.08,32.7333,190.984,-66.4876],[2915.4,-900.132,32.15,187.334,-65.7866],[2870.4,-801.693,31.5667,183.652,-65.0516],[2822.43,-700.401,30.95,179.73,-64.2349],[2774.06,-602,30.3333,175.78,-63.3744],[2722.64,-501.455,29.6833,171.591,-62.4163],[2669.44,-401.768,29.0167,167.274,-61.3749],[2613.11,-300.898,28.3167,162.726,-60.2117],[2554.92,-201.72,27.6,158.062,-58.9404],[2492.12,-100.278,26.8333,153.077,-57.4817],[2427.38,-1.67486,26.05,148.002,-55.8756],[2356.48,99.4646,25.2,142.538,-53.9866],[2280.69,199.81,24.3,136.828,-51.8025],[2198.5,299.745,23.3333,130.821,-49.2215],[2108.33,398.948,22.2833,124.503,-46.1091],[2005.64,498.903,21.1,117.731,-42.1692],[1884.21,599.584,19.7167,110.449,-36.9146],[1731.56,699.883,18,102.706,-29.3316],[1493.43,799.678,15.3667,94.7339,-15.4464],[1255.38,832.744,12.7833,92.996,-0.0793451]]], + [53,854.729,[[3289.04,-2003.18,38.1833,221.915,-71.9712],[3255.72,-1901.9,37.7,219.194,-71.5862],[3222.12,-1802.1,37.2167,216.44,-71.1882],[3187.09,-1700.44,36.7167,213.556,-70.7623],[3151.77,-1600.42,36.2167,210.637,-70.321],[3116.17,-1502.06,35.7167,207.684,-69.8636],[3079.08,-1402.19,35.2,204.598,-69.3731],[3040.49,-1301.02,34.6667,201.377,-68.8467],[3001.58,-1201.81,34.1333,198.12,-68.2986],[2961.12,-1101.61,33.5833,194.727,-67.7093],[2919.1,-1000.63,33.0167,191.196,-67.075],[2876.73,-901.977,32.45,187.631,-66.4112],[2831.49,-800.101,31.85,183.822,-65.6741],[2785.88,-700.914,31.25,179.981,-64.8993],[2738.6,-601.817,30.6333,176.004,-64.0606],[2688.35,-500.531,29.9833,171.784,-63.1265],[2636.37,-400.077,29.3167,167.431,-62.1108],[2582.62,-300.77,28.6333,162.952,-61.0038],[2525.77,-200.655,27.9167,158.242,-59.7648],[2465.75,-100.375,27.1667,153.311,-58.3743],[2402.49,-0.618178,26.3833,148.174,-56.8094],[2334.59,99.8372,25.55,142.741,-55.005],[2261.95,199.842,24.6667,137.045,-52.9176],[2183.07,299.841,23.7167,131.026,-50.4485],[2096.42,399.589,22.6833,124.66,-47.4663],[1999,499.371,21.5333,117.879,-43.7383],[1886.22,598.863,20.2167,110.65,-38.8741],[1746.04,699.131,18.6,102.843,-31.9357],[1542.08,799.982,16.2833,94.5349,-20.0648],[1242.62,854.727,12.95,90.8805,-0.078201]]], + [54,876.488,[[3235.25,-2001.55,38.4333,222.085,-72.4117],[3203.81,-1903.42,37.9667,219.451,-72.0492],[3170.99,-1803.23,37.4833,216.688,-71.6614],[3136.77,-1701.17,36.9833,213.795,-71.2462],[3102.27,-1600.74,36.4833,210.866,-70.8161],[3067.49,-1501.96,35.9833,207.902,-70.3702],[3031.26,-1401.66,35.4667,204.804,-69.8921],[2993.56,-1300.04,34.9333,201.569,-69.3788],[2955.55,-1200.38,34.4,198.298,-68.8444],[2917.23,-1102.72,33.8667,194.992,-68.2875],[2876.19,-1001.18,33.3,191.444,-67.6696],[2834.81,-901.965,32.7333,187.86,-67.023],[2791.86,-802.295,32.15,184.136,-66.3252],[2747.32,-702.422,31.55,180.272,-65.5711],[2701.15,-602.613,30.9333,176.269,-64.7547],[2652.08,-500.57,30.2833,172.018,-63.8452],[2602.59,-401.819,29.6333,167.742,-62.8813],[2550.12,-301.607,28.95,163.224,-61.8043],[2494.62,-200.535,28.2333,158.47,-60.5983],[2437.32,-101.444,27.5,153.598,-59.2755],[2375.58,-0.509828,26.7167,148.4,-57.7531],[2310.62,99.2335,25.9,143.004,-56.0329],[2241.06,198.866,25.0333,137.327,-54.042],[2165.44,298.895,24.1,131.304,-51.6848],[2082.27,399.148,23.0833,124.899,-48.8339],[1990,498.637,21.9667,118.126,-45.3173],[1882.81,599.022,20.6833,110.807,-40.7107],[1753.21,699.081,19.15,102.963,-34.3152],[1574.65,799.736,17.0667,94.5114,-23.9494],[1228.78,876.485,13.1167,88.7425,-0.10031]]], + [55,897.997,[[3179.45,-2001.04,38.6833,222.284,-72.8584],[3148.76,-1902.57,38.2167,219.641,-72.5052],[3116.72,-1802.03,37.7333,216.87,-72.1272],[3084.43,-1703,37.25,214.064,-71.7362],[3050.75,-1602.15,36.75,211.126,-71.3175],[3016.81,-1502.95,36.25,208.152,-70.8834],[2981.45,-1402.21,35.7333,205.043,-70.4178],[2944.65,-1300.12,35.2,201.795,-69.918],[2908.71,-1203.09,34.6833,198.613,-69.4141],[2870.15,-1101.86,34.1333,195.189,-68.8551],[2831.27,-1002.79,33.5833,191.728,-68.2712],[2789.7,-900.091,33,188.02,-67.6231],[2748.98,-802.718,32.4333,184.382,-66.963],[2705.51,-702.219,31.8333,180.495,-66.2289],[2660.46,-601.76,31.2167,176.466,-65.4341],[2613.81,-501.617,30.5833,172.296,-64.5718],[2565.52,-402.082,29.9333,167.987,-63.6342],[2514.33,-301.038,29.25,163.432,-62.5863],[2461.43,-201.408,28.55,158.746,-61.4406],[2405.54,-101.306,27.8167,153.826,-60.1543],[2346.6,-1.39872,27.05,148.681,-58.7058],[2283.25,99.6081,26.2333,143.216,-57.0336],[2216.71,198.714,25.3833,137.566,-55.1354],[2144.29,298.604,24.4667,131.548,-52.8861],[2064.53,399.175,23.4667,125.117,-50.162],[1975.92,499.526,22.3667,118.27,-46.7951],[1875.52,599.035,21.1333,110.993,-42.4936],[1754.77,699.188,19.6667,103.1,-36.5541],[1594.88,799.789,17.75,94.5436,-27.2981],[1212.4,897.996,13.2667,86.5916,-0.0396122]]], + [56,919.232,[[3121.66,-2001.67,38.9333,222.511,-73.311],[3091.73,-1902.86,38.4667,219.861,-72.9671],[3060.48,-1801.97,37.9833,217.082,-72.5991],[3028.98,-1702.57,37.5,214.267,-72.2185],[2996.14,-1601.34,37,211.319,-71.8109],[2963.03,-1501.77,36.5,208.334,-71.3882],[2928.54,-1400.62,35.9833,205.213,-70.9348],[2893.77,-1301.29,35.4667,202.054,-70.4636],[2857.59,-1200.69,34.9333,198.756,-69.9573],[2821.12,-1102.07,34.4,195.421,-69.4296],[2783.21,-1002.49,33.85,191.944,-68.8616],[2743.83,-902.171,33.2833,188.323,-68.2494],[2702.96,-801.351,32.7,184.559,-67.5885],[2660.57,-700.285,32.1,180.649,-66.874],[2617.83,-601.93,31.5,176.705,-66.1215],[2572.34,-501.096,30.8667,172.507,-65.2829],[2525.26,-400.844,30.2167,168.167,-64.3709],[2476.57,-301.478,29.55,163.687,-63.3768],[2425.01,-200.966,28.85,158.961,-62.2632],[2371.76,-102.179,28.1333,154.106,-61.0418],[2314.31,-1.18216,27.3667,148.905,-59.6347],[2253.83,98.9688,26.5667,143.487,-58.0437],[2188.98,199.429,25.7167,137.759,-56.2],[2119.7,299.016,24.8167,131.754,-54.0544],[2043.28,399.727,23.8333,125.306,-51.4527],[1959.58,499.265,22.7667,118.506,-48.2838],[1864.46,598.982,21.5667,111.199,-44.2242],[1750.92,699.728,20.15,103.226,-38.6576],[1606.2,799.977,18.3667,94.6198,-30.3033],[1361.36,899.861,15.4,85.5627,-13.0558],[1195,919.232,13.4167,84.4181,-0.000786759]]], + [57,940.167,[[3061.86,-2003.5,39.1833,222.766,-73.7693],[3031.64,-1900.82,38.7,220.015,-73.4229],[3002.24,-1803.08,38.2333,217.323,-73.0773],[2971.55,-1703.31,37.75,214.5,-72.7073],[2939.54,-1601.69,37.25,211.543,-72.3109],[2907.28,-1501.72,36.75,208.549,-71.8999],[2873.67,-1400.17,36.2333,205.416,-71.459],[2839.79,-1300.43,35.7167,202.245,-71.0007],[2805.64,-1202.52,35.2,199.037,-70.5239],[2769,-1100.34,34.65,195.583,-69.9949],[2732.05,-1000.3,34.1,192.09,-69.4423],[2694.81,-902.441,33.55,188.559,-68.8644],[2654.99,-801.059,32.9667,184.775,-68.2221],[2614.84,-702.196,32.3833,180.953,-67.5473],[2572.05,-600.465,31.7667,176.875,-66.7959],[2528.9,-501.633,31.15,172.761,-66.0024],[2483.04,-400.646,30.5,168.391,-65.1166],[2435.61,-300.518,29.8333,163.877,-64.1506],[2386.59,-201.565,29.15,159.225,-63.0947],[2334.73,-101.846,28.4333,154.325,-61.9088],[2280,-2.00741,27.6833,149.186,-60.5728],[2221.1,99.3169,26.8833,143.704,-59.0288],[2159.21,199.102,26.05,138.014,-57.2748],[2093,298.357,25.1667,132.03,-55.2328],[2019.88,399.176,24.2,125.574,-52.7537],[1939.69,499.307,23.15,118.729,-49.7301],[1849.7,598.932,21.9833,111.416,-45.9047],[1743.15,699.818,20.6167,103.409,-40.7013],[1611.67,799.376,18.95,94.8077,-33.1443],[1410.15,899.937,16.4333,85.416,-19.0223],[1177.93,940.165,13.5833,82.2137,-0.0997688]]], + [58,960.778,[[2999.03,-2002.98,39.4167,222.957,-74.2218],[2970.63,-1903.51,38.95,220.294,-73.8969],[2940.99,-1801.92,38.4667,217.499,-73.5491],[2911.1,-1701.82,37.9833,214.667,-73.1894],[2880.98,-1603.23,37.5,211.8,-72.8171],[2849.57,-1502.86,37,208.796,-72.418],[2816.86,-1400.88,36.4833,205.653,-71.9898],[2783.88,-1300.71,35.9667,202.471,-71.5446],[2750.64,-1202.37,35.45,199.25,-71.0816],[2716.05,-1102.81,34.9167,195.888,-70.5835],[2680.09,-1002.24,34.3667,192.38,-70.0473],[2642.74,-900.892,33.8,188.725,-69.4692],[2605.09,-801.88,33.2333,185.031,-68.8632],[2566.01,-702.435,32.65,181.189,-68.2082],[2524.36,-600.08,32.0333,177.087,-67.4787],[2482.37,-500.62,31.4167,172.948,-66.7082],[2438.88,-401.529,30.7833,168.661,-65.8704],[2392.73,-300.62,30.1167,164.115,-64.9333],[2345.02,-200.859,29.4333,159.425,-63.9086],[2294.56,-100.284,28.7167,154.482,-62.7571],[2242.48,-1.72856,27.9833,149.408,-61.4892],[2186.38,98.603,27.2,143.981,-60.0234],[2126.16,199.648,26.3667,138.22,-58.3229],[2062.98,298.418,25.5,132.263,-56.3804],[1993.09,399.172,24.55,125.81,-54.0196],[1916.35,499.708,23.5167,118.931,-51.1363],[1831.35,598.953,22.3833,111.637,-47.5369],[1731.58,699.549,21.0667,103.637,-42.6859],[1610.24,799.255,19.4833,94.9841,-35.743],[1436.73,899.73,17.25,85.448,-23.6434],[1158.43,960.776,13.7333,79.9964,-0.114373]]], + [59,981.046,[[2933.26,-2000.12,39.6333,223.083,-74.6692],[2905.63,-1900.37,39.1667,220.411,-74.3534],[2877.78,-1801.99,38.7,217.705,-74.0273],[2848.72,-1701.55,38.2167,214.866,-73.678],[2819.42,-1602.61,37.7333,211.989,-73.3166],[2788.87,-1501.87,37.2333,208.976,-72.929],[2758.08,-1402.79,36.7333,205.924,-72.5269],[2726.01,-1302.18,36.2167,202.731,-72.0952],[2692.64,-1200.25,35.6833,199.395,-71.6312],[2659,-1100.28,35.15,196.018,-71.1475],[2625.09,-1002.32,34.6167,192.601,-70.6427],[2588.77,-900.474,34.05,188.93,-70.0818],[2552.15,-800.956,33.4833,185.218,-69.4937],[2514.15,-700.983,32.9,181.355,-68.858],[2474.75,-600.81,32.3,177.343,-68.1695],[2433.92,-500.703,31.6833,173.179,-67.4224],[2391.64,-400.941,31.05,168.864,-66.6099],[2347.89,-301.818,30.4,164.401,-65.7242],[2301.51,-201.228,29.7167,159.676,-64.7314],[2253.6,-102.087,29.0167,154.807,-63.6422],[2201.84,-0.313192,28.2667,149.569,-62.3858],[2148.46,98.8944,27.5,144.202,-60.995],[2091.11,199.122,26.6833,138.489,-59.381],[2029.71,299.243,25.8167,132.45,-57.4996],[1962.99,399.768,24.8833,126.008,-55.2526],[1890.84,498.947,23.8833,119.221,-52.5528],[1809.5,599.114,22.7667,111.855,-49.1233],[1716.29,699.008,21.5,103.899,-44.6124],[1603.47,799.117,19.9833,95.1858,-38.1892],[1450.28,899.42,17.95,85.5713,-27.5621],[1136.59,981.045,13.8667,77.7647,-0.0372562]]], + [60,1000.94,[[2866.54,-2002.14,39.8667,223.333,-75.1337],[2839.7,-1902.05,39.4,220.656,-74.8276],[2812.65,-1803.33,38.9333,217.943,-74.5115],[2784.41,-1702.53,38.45,215.096,-74.1729],[2755.95,-1603.24,37.9667,212.212,-73.8225],[2726.27,-1502.13,37.4667,209.189,-73.4468],[2696.35,-1402.67,36.9667,206.128,-73.0569],[2665.2,-1301.67,36.45,202.924,-72.6383],[2633.79,-1202.49,35.9333,199.68,-72.2027],[2601.11,-1102.05,35.4,196.291,-71.7342],[2567.14,-1000.57,34.85,192.754,-71.2296],[2532.9,-901.242,34.3,189.175,-70.7018],[2497.33,-801.202,33.7333,185.445,-70.1321],[2460.42,-700.686,33.15,181.564,-69.516],[2423.22,-602.711,32.5667,177.642,-68.8677],[2383.56,-501.94,31.95,173.455,-68.1445],[2342.5,-401.49,31.3167,169.115,-67.3579],[2300.01,-301.653,30.6667,164.621,-66.5002],[2254.97,-200.305,29.9833,159.861,-65.5384],[2208.44,-100.38,29.2833,154.953,-64.4828],[2160.41,-2.22096,28.5667,149.903,-63.3207],[2108.59,98.0748,27.8,144.483,-61.9761],[2052.91,199.473,26.9833,138.705,-60.4146],[1994.45,298.961,26.1333,132.706,-58.6296],[1930.84,399.232,25.2167,126.282,-56.4962],[1861.99,498.573,24.2333,119.485,-53.9311],[1784.23,599.462,23.1333,112.063,-50.6663],[1696.19,699.521,21.9,104.083,-46.4209],[1591.57,799.226,20.45,95.3824,-40.4898],[1454.06,899.316,18.5667,85.7247,-30.9981],[1146.48,999.992,14.4333,75.4429,-3.21031],[1115.06,1000.94,14.0167,75.5043,-0.109116]]], + [61,1020.44,[[2796.94,-2001.86,40.0833,223.519,-75.5933],[2770.89,-1901.48,39.6167,220.835,-75.2966],[2744.63,-1802.45,39.15,218.115,-74.9903],[2717.22,-1701.34,38.6667,215.26,-74.6622],[2689.6,-1601.73,38.1833,212.368,-74.3226],[2660.79,-1500.29,37.6833,209.335,-73.9585],[2631.76,-1400.5,37.1833,206.263,-73.5806],[2602.5,-1302.39,36.6833,203.152,-73.1881],[2572.02,-1202.8,36.1667,199.898,-72.7664],[2540.32,-1101.93,35.6333,196.496,-72.3127],[2507.35,-1000,35.0833,192.944,-71.8241],[2474.12,-900.229,34.5333,189.35,-71.3129],[2440.62,-802.643,33.9833,185.714,-70.7776],[2404.81,-701.568,33.4,181.815,-70.1816],[2367.68,-600.251,32.8,177.76,-69.5359],[2330.24,-501.656,32.2,173.664,-68.8545],[2290.41,-400.581,31.5667,169.297,-68.093],[2249.19,-300.096,30.9167,164.774,-67.2626],[2206.56,-200.505,30.25,160.098,-66.3545],[2162.5,-102.128,29.5667,155.27,-65.3585],[2114.83,-0.784035,28.8333,150.058,-64.2087],[2065.66,98.2627,28.0833,144.706,-62.9361],[2012.76,198.707,27.2833,138.985,-61.458],[1956.07,299.454,26.4333,132.912,-59.7332],[1895.52,399.312,25.5333,126.515,-57.7091],[1829.89,498.643,24.5667,119.719,-55.2736],[1756.8,598.579,23.5,112.368,-52.2194],[1672.63,699.991,22.2833,104.277,-48.1796],[1574.76,799.837,20.8833,95.546,-42.6522],[1449.86,899.686,19.1167,85.8642,-34.066],[1239.32,999.848,16.1833,75.0976,-15.397],[1091.26,1020.44,14.15,73.2297,-0.0879056]]], + [62,1039.52,[[2725.42,-2002.92,40.3,223.736,-76.0587],[2700.17,-1902.23,39.8333,221.046,-75.7717],[2674.72,-1802.89,39.3667,218.32,-75.4754],[2648.16,-1701.46,38.8833,215.458,-75.1579],[2621.38,-1601.52,38.4,212.557,-74.8294],[2594.39,-1503.1,37.9167,209.618,-74.489],[2566.26,-1402.91,37.4167,206.538,-74.1237],[2536.95,-1301.14,36.9,203.313,-73.7315],[2507.41,-1201.19,36.3833,200.047,-73.3233],[2477.64,-1103.07,35.8667,196.739,-72.8982],[2445.69,-1000.68,35.3167,193.175,-72.4258],[2413.49,-900.444,34.7667,189.566,-71.9316],[2381.03,-802.388,34.2167,185.915,-71.414],[2346.32,-700.811,33.6333,181.997,-70.8376],[2311.34,-601.763,33.05,178.036,-70.2308],[2275.07,-502.564,32.45,173.918,-69.5725],[2236.47,-400.846,31.8167,169.527,-68.8368],[2197.55,-302.246,31.1833,165.094,-68.0554],[2156.25,-201.876,30.5167,160.386,-67.1789],[2112.53,-100.32,29.8167,155.404,-66.1931],[2067.39,-0.473528,29.1,150.269,-65.1068],[2019.76,99.4763,28.35,144.868,-63.8771],[1969.58,198.836,27.5667,139.21,-62.479],[1915.75,298.808,26.7333,133.187,-60.8471],[1858.19,398.232,25.85,126.823,-58.9319],[1794.64,499.197,24.8833,119.918,-56.5832],[1724.98,599.443,23.8333,112.541,-53.6814],[1646.84,699.143,22.6667,104.585,-49.9486],[1555.52,798.919,21.3167,95.8593,-44.8238],[1440.4,899.525,19.6333,86.0818,-36.9608],[1265.94,999.792,17.1167,75.1312,-21.6257],[1066.51,1039.52,14.2833,70.934,-0.0971598]]], + [63,1058.17,[[2651.15,-2001.72,40.5,223.889,-76.52],[2626.7,-1900.77,40.0333,221.192,-76.2425],[2602.06,-1801.16,39.5667,218.459,-75.956],[2577.22,-1702.92,39.1,215.688,-75.6598],[2551.3,-1602.65,38.6167,212.78,-75.3424],[2524.28,-1500.51,38.1167,209.731,-75.0021],[2497.04,-1400.01,37.6167,206.641,-74.6488],[2469.58,-1301.19,37.1167,203.51,-74.2819],[2440.99,-1200.86,36.6,200.233,-73.8875],[2412.17,-1102.36,36.0833,196.914,-73.4768],[2382.18,-1002.64,35.55,193.445,-73.0344],[2351.02,-901.924,35,189.823,-72.5574],[2318.65,-800.431,34.4333,186.046,-72.0423],[2286.02,-701.286,33.8667,182.223,-71.5015],[2252.16,-601.714,33.2833,178.243,-70.9156],[2217.06,-501.97,32.6833,174.105,-70.2799],[2180.69,-402.324,32.0667,169.806,-69.5886],[2142.04,-300.485,31.4167,165.229,-68.8145],[2103.07,-201.975,30.7667,160.609,-67.9893],[2061.77,-102.055,30.0833,155.712,-67.0613],[2018.1,-1.33143,29.3667,150.538,-66.0143],[1972.02,99.5454,28.6167,145.09,-64.8286],[1923.47,199.883,27.8333,139.377,-63.4795],[1872.44,298.943,27.0167,133.41,-61.9369],[1816.76,399.618,26.1333,126.966,-60.0895],[1757.41,498.574,25.2,120.199,-57.9038],[1691.11,599.107,24.1667,112.805,-55.1553],[1616.64,699.667,23.0167,104.78,-51.6128],[1530.54,799.928,21.7,96.0014,-46.7978],[1425.91,899.133,20.1167,86.34,-39.6873],[1274.25,999.866,17.85,75.2467,-26.4561],[1039.65,1058.17,14.4,68.6234,-0.00379139]]], + [64,1076.35,[[2575.02,-2001.92,40.7,224.073,-76.9873],[2551.38,-1900.68,40.2333,221.371,-76.7196],[2527.56,-1800.79,39.7667,218.631,-76.4429],[2503.56,-1702.27,39.3,215.854,-76.1571],[2478.5,-1601.7,38.8167,212.938,-75.8507],[2453.25,-1502.63,38.3333,209.983,-75.5333],[2426.92,-1401.77,37.8333,206.885,-75.1927],[2400.38,-1302.57,37.3333,203.745,-74.8389],[2372.75,-1201.84,36.8167,200.458,-74.4586],[2344.89,-1102.95,36.3,197.129,-74.0624],[2315.91,-1002.83,35.7667,193.648,-73.6358],[2285.79,-901.677,35.2167,190.012,-73.1757],[2255.42,-802.703,34.6667,186.332,-72.6938],[2222.96,-700.142,34.0833,182.38,-72.1569],[2190.23,-600.101,33.5,178.382,-71.5916],[2157.25,-502.618,32.9167,174.338,-70.9956],[2122.1,-402.388,32.3,170.017,-70.3292],[2085.71,-302.514,31.6667,165.533,-69.6026],[2047.09,-200.791,31,160.766,-68.7871],[2007.18,-100.205,30.3167,155.835,-67.8918],[1965.97,-1.0884,29.6167,150.743,-66.9058],[1922.43,98.4262,28.8833,145.374,-65.7893],[1875.53,199.767,28.1,139.608,-64.4908],[1826.23,299.884,27.2833,133.579,-63.0049],[1773.46,399.854,26.4167,127.181,-61.2591],[1717.16,498.453,25.5,120.441,-59.1934],[1654.17,599.096,24.4833,113.043,-56.5927],[1584.34,698.915,23.3667,105.082,-53.2881],[1503.33,799.556,22.0833,96.2738,-48.7842],[1405.55,899.752,20.55,86.5047,-42.1725],[1272.2,999.687,18.4833,75.4428,-30.6155],[1013.01,1076.35,14.5333,66.2863,-0.0799326]]], + [65,1094.06,[[2497.06,-2003.55,40.9,224.29,-77.4605],[2474.25,-1902.02,40.4333,221.583,-77.2025],[2451.26,-1801.83,39.9667,218.837,-76.936],[2428.09,-1703.02,39.5,216.054,-76.6606],[2403.91,-1602.13,39.0167,213.131,-76.3655],[2379.53,-1502.75,38.5333,210.168,-76.0597],[2354.12,-1401.56,38.0333,207.062,-75.7315],[2328.5,-1302.03,37.5333,203.913,-75.3905],[2301.83,-1200.96,37.0167,200.616,-75.0241],[2274.94,-1101.72,36.5,197.275,-74.6423],[2246.97,-1001.22,35.9667,193.782,-74.2311],[2218.78,-902.742,35.4333,190.244,-73.8013],[2188.58,-800.341,34.8667,186.437,-73.3229],[2158.15,-700.278,34.3,182.582,-72.8204],[2127.47,-602.588,33.7333,178.681,-72.292],[2094.74,-501.779,33.1333,174.503,-71.702],[2060.82,-401.026,32.5167,170.16,-71.0601],[2025.7,-300.61,31.8833,165.65,-70.3599],[1989.37,-200.825,31.2333,160.975,-69.5942],[1951.8,-101.977,30.5667,156.134,-68.7543],[1912.04,-2.0549,29.8667,151.007,-67.8066],[1870.04,98.312,29.1333,145.596,-66.733],[1825.77,198.45,28.3667,139.904,-65.5116],[1778.21,299.651,27.55,133.816,-64.0839],[1728.29,398.899,26.7,127.47,-62.4391],[1673.99,498.873,25.7833,120.641,-60.4548],[1614.24,599.454,24.7833,113.249,-57.9965],[1547.92,699.714,23.6833,105.252,-54.8686],[1472.86,799,22.45,96.564,-50.7158],[1381.7,899.738,20.9667,86.7414,-44.5891],[1261.55,999.936,19.0333,75.618,-34.2422],[984.355,1094.06,14.65,63.9343,-0.0515912]]], + [66,1111.26,[[2416.49,-2002.97,41.0833,224.443,-77.9304],[2394.51,-1901.19,40.6167,221.73,-77.6821],[2372.35,-1800.75,40.15,218.978,-77.4256],[2350.02,-1701.67,39.6833,216.188,-77.1605],[2326.71,-1600.51,39.2,213.258,-76.8764],[2303.22,-1500.86,38.7167,210.287,-76.582],[2279.54,-1402.74,38.2333,207.276,-76.2768],[2254.86,-1302.87,37.7333,204.119,-75.949],[2229.16,-1201.44,37.2167,200.813,-75.5965],[2203.25,-1101.83,36.7,197.462,-75.2294],[2176.3,-1000.96,36.1667,193.957,-74.8339],[2149.14,-902.098,35.6333,190.406,-74.4205],[2120.9,-802.278,35.0833,186.698,-73.9742],[2091.58,-701.732,34.5167,182.829,-73.4914],[2061.16,-600.703,33.9333,178.797,-72.9684],[2030.49,-502.223,33.35,174.716,-72.4167],[1997.82,-400.929,32.7333,170.352,-71.7998],[1964.88,-302.569,32.1167,165.939,-71.145],[1929.88,-202.116,31.4667,161.238,-70.4099],[1892.79,-100.135,30.7833,156.246,-69.5826],[1855.4,-1.92256,30.1,151.207,-68.6931],[1814.94,99.2196,29.3667,145.756,-67.6616],[1773.23,198.034,28.6167,140.142,-66.5139],[1728.36,298.201,27.8167,134.123,-65.1725],[1680.29,398.618,26.9667,127.709,-63.5954],[1628.01,499.864,26.05,120.796,-61.6905],[1572.4,598.591,25.0833,113.545,-59.4116],[1509.52,699.273,24,105.523,-56.4616],[1438.26,799.604,22.7833,96.7462,-52.5363],[1354.48,899.175,21.3667,87.0383,-46.9373],[1245.9,999.262,19.55,75.9215,-37.6659],[1047.86,1099.78,16.2833,62.9115,-13.6855],[954.823,1111.25,14.7667,61.5623,-0.0593783]]], + [67,1127.93,[[2333.4,-2000.21,41.25,224.533,-78.3977],[2313,-1901.83,40.8,221.911,-78.1677],[2291.69,-1801.12,40.3333,219.154,-77.9214],[2270.21,-1701.77,39.8667,216.358,-77.6668],[2247.78,-1600.33,39.3833,213.421,-77.3939],[2225.19,-1500.4,38.9,210.443,-77.1111],[2202.41,-1401.98,38.4167,207.424,-76.8179],[2178.67,-1301.81,37.9167,204.258,-76.503],[2153.95,-1200.07,37.4,200.942,-76.1644],[2129.02,-1100.15,36.8833,197.58,-75.8117],[2103.91,-1002.08,36.3667,194.174,-75.4438],[2077.78,-902.816,35.8333,190.612,-75.0471],[2050.63,-802.583,35.2833,186.891,-74.6187],[2022.43,-701.607,34.7167,183.008,-74.1554],[1993.17,-600.132,34.1333,178.959,-73.6533],[1963.67,-501.201,33.55,174.861,-73.1236],[1933.1,-402.138,32.95,170.595,-72.5476],[1900.57,-300.58,32.3167,166.04,-71.9022],[1867.78,-202.158,31.6833,161.435,-71.2147],[1832.98,-101.996,31.0167,156.536,-70.441],[1796.15,-0.680725,30.3167,151.342,-69.5673],[1758.13,98.8948,29.6,145.977,-68.6003],[1718.03,198.535,28.85,140.319,-67.5],[1674.89,299.59,28.05,134.247,-66.2131],[1629.58,399.033,27.2167,127.896,-64.7301],[1580.24,499.653,26.3167,121.03,-62.9385],[1526.79,599.77,25.35,113.678,-60.7548],[1468.22,699.036,24.3,105.771,-58.0168],[1401.62,798.893,23.1167,97.046,-54.3688],[1323.03,899.238,21.7333,87.2701,-49.148],[1223.55,999.637,20,76.1094,-40.7028],[1064.68,1099.72,17.2667,63.0164,-21.754],[924.418,1127.93,14.8833,59.1705,-0.107818]]], + [68,1144.06,[[2249.34,-2002.61,41.4333,224.753,-78.8793],[2229.03,-1900.34,40.9667,222.029,-78.6506],[2209.3,-1802.98,40.5167,219.365,-78.4229],[2188.68,-1703.35,40.05,216.563,-78.1789],[2167.15,-1601.61,39.5667,213.621,-77.9175],[2145.46,-1501.38,39.0833,210.636,-77.6465],[2123.6,-1402.67,38.6,207.61,-77.3656],[2100.8,-1302.18,38.1,204.437,-77.0638],[2077.07,-1200.11,37.5833,201.111,-76.7393],[2053.92,-1103.06,37.0833,197.85,-76.4123],[2029.03,-1001.45,36.55,194.324,-76.0486],[2003.95,-901.844,36.0167,190.75,-75.6683],[1977.88,-801.249,35.4667,187.016,-75.2576],[1951.61,-702.844,34.9167,183.233,-74.8268],[1923.52,-600.905,34.3333,179.17,-74.346],[1895.21,-501.506,33.75,175.055,-73.8388],[1865.86,-401.956,33.15,170.77,-73.2871],[1835.46,-302.526,32.5333,166.315,-72.6856],[1803.16,-200.936,31.8833,161.564,-72.01],[1769.76,-100.218,31.2167,156.638,-71.2684],[1735.26,-0.693511,30.5333,151.536,-70.4514],[1698.77,99.5883,29.8167,146.135,-69.5256],[1660.28,199.974,29.0667,140.435,-68.4716],[1619.75,299.767,28.2833,134.439,-67.2652],[1577.15,398.223,27.4667,128.157,-65.8756],[1530.69,498.205,26.5833,121.344,-64.1965],[1479.41,599.746,25.6167,113.898,-62.1112],[1424.12,699.051,24.5833,105.994,-59.537],[1361.14,799.521,23.4167,97.2182,-56.101],[1288.51,898.983,22.0833,87.5328,-51.2997],[1196.81,999.905,20.4167,76.3152,-43.5645],[1061.37,1099.77,17.9833,63.1909,-27.582],[892.2,1144.06,14.9833,56.7635,-0.0377789]]], + [69,1159.62,[[2162.84,-2002.87,41.6,224.91,-79.3584],[2143.39,-1900.36,41.1333,222.181,-79.1396],[2124.48,-1802.77,40.6833,219.512,-78.9217],[2104.72,-1702.89,40.2167,216.705,-78.6883],[2084.1,-1600.9,39.7333,213.755,-78.4381],[2063.32,-1500.41,39.25,210.764,-78.1789],[2042.37,-1401.44,38.7667,207.731,-77.91],[2020.53,-1300.68,38.2667,204.549,-77.6212],[1998.53,-1201.6,37.7667,201.322,-77.3208],[1975.61,-1101,37.25,197.942,-76.9976],[1952.51,-1002.25,36.7333,194.516,-76.6605],[1928.49,-902.282,36.2,190.932,-76.297],[1903.52,-801.309,35.65,187.186,-75.9043],[1878.35,-702.522,35.1,183.39,-75.4923],[1851.44,-600.175,34.5167,179.312,-75.0325],[1824.33,-500.363,33.9333,175.18,-74.5473],[1796.21,-400.386,33.3333,170.877,-74.0196],[1767.09,-300.512,32.7167,166.4,-73.444],[1736.94,-201.024,32.0833,161.748,-72.8146],[1705.76,-102.218,31.4333,156.92,-72.1242],[1672.72,-2.00442,30.75,151.79,-71.3446],[1637.78,99.0077,30.0333,146.355,-70.4608],[1601.74,197.968,29.3,140.744,-69.4777],[1562.94,298.685,28.5167,134.702,-68.3274],[1522.15,398.115,27.7,128.364,-67.0017],[1477.66,499.159,26.8167,121.481,-65.3984],[1430.26,598.47,25.8833,114.205,-63.4784],[1377.34,699.352,24.85,106.185,-61.0254],[1318.79,798.87,23.7167,97.5019,-57.8461],[1250.15,899.643,22.4,87.6965,-53.3311],[1166.81,999.37,20.8167,76.6176,-46.3457],[1047.97,1099.55,18.5833,63.4382,-32.4769],[859.202,1159.62,15.0833,54.3373,-0.00632215]]], + [70,1174.61,[[2074.02,-2000.99,41.75,225.004,-79.8358],[2056.08,-1901.92,41.3,222.368,-79.6343],[2037.34,-1800.49,40.8333,219.595,-79.4186],[2018.45,-1700.41,40.3667,216.781,-79.1957],[1999.42,-1601.7,39.9,213.928,-78.965],[1979.55,-1500.94,39.4167,210.93,-78.7176],[1959.53,-1401.7,38.9333,207.89,-78.461],[1938.66,-1300.66,38.4333,204.701,-78.1854],[1917.63,-1201.29,37.9333,201.466,-77.8987],[1895.72,-1100.39,37.4167,198.077,-77.5902],[1873.65,-1001.34,36.9,194.642,-77.2685],[1850.68,-901.053,36.3667,191.046,-76.9214],[1827.54,-802.789,35.8333,187.403,-76.5581],[1802.76,-700.634,35.2667,183.479,-76.1531],[1777.78,-600.832,34.7,179.502,-75.7269],[1751.87,-500.59,34.1167,175.356,-75.2642],[1725,-400.166,33.5167,171.035,-74.7608],[1697.93,-302.502,32.9167,166.662,-74.2271],[1669.12,-202.451,32.2833,161.989,-73.6275],[1638.56,-100.557,31.6167,157.013,-72.9523],[1607.76,-2.2281,30.95,151.98,-72.2268],[1574.38,99.4401,30.2333,146.512,-71.3844],[1539.94,199.078,29.5,140.863,-70.4469],[1503.66,298.421,28.7333,134.906,-69.3738],[1464.69,398.736,27.9167,128.515,-68.1107],[1423,498.885,27.05,121.698,-66.6126],[1377.72,599.364,26.1167,114.339,-64.784],[1327.99,699.979,25.1,106.342,-62.485],[1272.89,799.71,23.9833,97.6417,-59.5022],[1209.84,898.97,22.7167,87.9923,-55.3755],[1132.81,999.094,21.1833,76.8865,-48.965],[1027.05,1099.42,19.1,63.6908,-36.7408],[825.425,1174.61,15.1833,51.8922,-0.0189337]]], + [71,1188.99,[[1983.6,-2000.69,41.9,225.134,-80.3191],[1966.5,-1901.41,41.45,222.493,-80.1272],[1949.27,-1803.37,41,219.814,-79.9292],[1931.27,-1703.02,40.5333,216.997,-79.7171],[1912.47,-1600.54,40.05,214.036,-79.4897],[1894.18,-1503.01,39.5833,211.136,-79.2623],[1874.44,-1400.08,39.0833,207.984,-79.0096],[1855.21,-1302.14,38.6,204.894,-78.7559],[1835.15,-1202.47,38.1,201.653,-78.4832],[1814.27,-1101.26,37.5833,198.256,-78.1897],[1793.23,-1001.89,37.0667,194.811,-77.8835],[1771.34,-901.278,36.5333,191.206,-77.5532],[1749.28,-802.681,36,187.552,-77.2075],[1725.65,-700.169,35.4333,183.616,-76.822],[1701.84,-600.006,34.8667,179.626,-76.4163],[1677.85,-502.229,34.3,175.583,-75.9887],[1652.24,-401.34,33.7,171.247,-75.5102],[1625.72,-300.52,33.0833,166.733,-74.9881],[1598.26,-200.051,32.45,162.039,-74.417],[1569.85,-100.229,31.8,157.163,-73.7902],[1540.49,-1.36317,31.1333,152.104,-73.1],[1509.42,98.5575,30.4333,146.734,-72.3176],[1476.61,198.899,29.7,141.049,-71.4267],[1442.03,298.984,28.9333,135.051,-70.4066],[1405.65,398.09,28.1333,128.741,-69.2309],[1365.93,499.219,27.2667,121.862,-67.8078],[1323.56,599.016,26.35,114.559,-66.1023],[1276.96,699.357,25.35,106.594,-63.9574],[1225.26,799.296,24.25,97.8882,-61.1724],[1166,899.385,23,88.1677,-57.3115],[1095.04,999.271,21.5167,77.0956,-51.4358],[1000.01,1099.59,19.55,63.9027,-40.5348],[790.881,1188.99,15.2833,49.4288,-0.0829029]]], + [72,1202.75,[[1891.6,-2001.98,42.05,225.298,-80.8079],[1875.35,-1902.49,41.6,222.654,-80.6258],[1858.36,-1800.61,41.1333,219.871,-80.4308],[1841.24,-1700.09,40.6667,217.047,-80.2291],[1823.99,-1600.93,40.2,214.182,-80.0205],[1806.6,-1503.16,39.7333,211.277,-79.8047],[1788.46,-1403.39,39.25,208.225,-79.5729],[1769.54,-1301.8,38.75,205.022,-79.3239],[1750.48,-1201.87,38.25,201.773,-79.0649],[1730.63,-1100.4,37.7333,198.368,-78.7862],[1710.63,-1000.76,37.2167,194.914,-78.4954],[1690.47,-902.982,36.7,191.412,-78.1918],[1668.84,-800.978,36.15,187.633,-77.8534],[1647.04,-701.151,35.6,183.801,-77.4982],[1624.41,-600.611,35.0333,179.799,-77.1133],[1601.6,-502.454,34.4667,175.743,-76.7077],[1577.27,-401.157,33.8667,171.392,-76.2536],[1552.74,-302.612,33.2667,166.983,-75.772],[1526.64,-201.623,32.6333,162.271,-75.2308],[1499.65,-101.261,31.9833,157.373,-74.6368],[1471.75,-1.83629,31.3167,152.29,-73.9826],[1442.22,98.6768,30.6167,146.891,-73.2408],[1411.04,199.645,29.8833,141.173,-72.3958],[1378.89,298.253,29.1333,135.266,-71.4498],[1344.33,398.17,28.3333,128.91,-70.3358],[1307.31,498.284,27.4833,122.107,-69.0142],[1267.06,599.162,26.5667,114.733,-67.3995],[1223.52,699.073,25.5833,106.809,-65.4029],[1175.16,799.044,24.5,98.1106,-62.8087],[1119.62,899.767,23.2667,88.3382,-59.2059],[1054.5,999.042,21.8333,77.3461,-53.8437],[968.115,1099.97,19.95,64.0852,-44.005],[789.955,1199.93,16.1167,47.3985,-8.92259],[754.79,1202.75,15.3667,46.9504,-0.00752114]]], + [73,1215.88,[[1797.49,-2001.18,42.1833,225.401,-81.2956],[1782.08,-1901.51,41.7333,222.752,-81.1231],[1766.56,-1803.07,41.2833,220.064,-80.9451],[1750.34,-1702.3,40.8167,217.237,-80.7544],[1733.99,-1602.91,40.35,214.368,-80.5571],[1716.92,-1501.42,39.8667,211.353,-80.3455],[1699.73,-1401.45,39.3833,208.294,-80.1259],[1682.4,-1303.01,38.9,205.192,-79.8981],[1664.34,-1202.81,38.4,201.936,-79.6531],[1645.53,-1101.05,37.8833,198.524,-79.3894],[1626.57,-1001.13,37.3667,195.062,-79.1143],[1607.47,-903.065,36.85,191.552,-78.827],[1586.97,-800.752,36.3,187.762,-78.5068],[1566.32,-700.613,35.75,183.919,-78.1707],[1545.51,-602.682,35.2,180.023,-77.8174],[1523.26,-501.263,34.6167,175.835,-77.4224],[1500.84,-402.403,34.0333,171.59,-77.0049],[1476.95,-300.719,33.4167,167.043,-76.5365],[1452.88,-201.981,32.8,162.436,-76.038],[1427.31,-101.145,32.15,157.518,-75.4763],[1400.87,-1.2278,31.4833,152.411,-74.8575],[1372.89,99.8063,30.7833,146.984,-74.1557],[1344.02,199.067,30.0667,141.364,-73.3749],[1313.57,298.349,29.3167,135.422,-72.481],[1280.83,398.99,28.5167,129.021,-71.4279],[1245.76,499.882,27.6667,122.164,-70.1776],[1208.33,599.821,26.7667,114.858,-68.6783],[1167.79,699.155,25.8,106.984,-66.8244],[1122.7,798.99,24.7333,98.3052,-64.4143],[1071.53,898.861,23.5333,88.6318,-61.1132],[1010.6,999.542,22.1167,77.5008,-56.1233],[933.186,1099.35,20.3333,64.407,-47.3768],[797.798,1199.9,17.25,47.5497,-21.7012],[718.768,1215.87,15.4667,44.4522,-0.191232]]], + [74,1228.35,[[1701.9,-2002.03,42.3167,225.54,-81.7887],[1687.35,-1902.17,41.8667,222.887,-81.6261],[1672.69,-1803.53,41.4167,220.196,-81.4582],[1657.37,-1702.57,40.95,217.364,-81.2783],[1641.93,-1602.96,40.4833,214.49,-81.0922],[1625.82,-1501.27,40,211.47,-80.8926],[1609.58,-1401.08,39.5167,208.406,-80.6855],[1593.22,-1302.42,39.0333,205.297,-80.4706],[1576.16,-1201.99,38.5333,202.034,-80.2394],[1558.97,-1103.26,38.0333,198.725,-79.9988],[1541.07,-1003.04,37.5167,195.256,-79.7396],[1522.45,-901.53,36.9833,191.624,-79.4599],[1503.69,-802.034,36.45,187.94,-79.1671],[1484.19,-701.567,35.9,184.087,-78.8504],[1463.94,-600.361,35.3333,180.062,-78.5071],[1443.53,-501.531,34.7667,175.98,-78.1452],[1422.36,-402.313,34.1833,171.722,-77.7515],[1399.81,-300.246,33.5667,167.158,-77.31],[1377.08,-201.122,32.95,162.534,-76.8399],[1353.56,-102.43,32.3167,157.723,-76.3242],[1328.6,-1.99924,31.65,152.594,-75.7415],[1302.19,99.5797,30.95,147.142,-75.0805],[1274.94,199.404,30.2333,141.493,-74.3448],[1246.19,299.28,29.4833,135.516,-73.5023],[1215.93,398.507,28.7,129.208,-72.5311],[1183.48,498.273,27.8667,122.437,-71.3784],[1148.15,599.209,26.9667,115.069,-69.9692],[1109.89,699.623,26,107.116,-68.225],[1068,799.162,24.95,98.4684,-65.9927],[1020.39,899.264,23.7667,88.7797,-62.9314],[964.26,999.809,22.3833,77.6727,-58.3531],[893.968,1099.5,20.6667,64.6093,-50.4595],[780.863,1199.96,17.9333,47.7606,-29.4044],[680.598,1228.35,15.5333,41.9412,-0.011161]]], + [75,1240.15,[[1604.36,-2000.81,42.4333,225.617,-82.2814],[1590.67,-1900.79,41.9833,222.961,-82.1284],[1576.88,-1802,41.5333,220.265,-81.9706],[1562.47,-1700.87,41.0667,217.428,-81.8015],[1547.95,-1601.1,40.6,214.549,-81.6265],[1533.31,-1502.72,40.1333,211.628,-81.4454],[1518.04,-1402.3,39.65,208.559,-81.2509],[1502.12,-1300.03,39.15,205.336,-81.042],[1486.61,-1202.75,38.6667,202.176,-80.832],[1469.9,-1100.5,38.15,198.749,-80.5984],[1453.06,-1000.08,37.6333,195.271,-80.3546],[1436.1,-901.521,37.1167,191.744,-80.0999],[1418.45,-801.758,36.5833,188.051,-79.8248],[1400.11,-701.013,36.0333,184.189,-79.5273],[1381.63,-602.47,35.4833,180.271,-79.2145],[1361.87,-500.397,34.9,176.058,-78.8647],[1341.96,-400.876,34.3167,171.786,-78.4948],[1321.33,-301.215,33.7167,167.331,-78.0913],[1299.96,-201.686,33.1,162.691,-77.6501],[1277.25,-100.007,32.45,157.734,-77.1529],[1254.37,-1.69505,31.8,152.713,-76.6191],[1230.13,97.9742,31.1167,147.367,-76.0138],[1204.5,198.386,30.4,141.692,-75.3242],[1177.47,298.884,29.65,135.683,-74.5342],[1149.02,398.766,28.8667,129.337,-73.6231],[1118.51,499.236,28.0333,122.519,-72.5411],[1085.91,599.12,27.15,115.231,-71.2435],[1050.57,698.83,26.2,107.342,-69.6379],[1011.2,799.594,25.15,98.5974,-67.5468],[967.08,899.75,23.9833,88.9084,-64.718],[915.599,999.897,22.6333,77.8552,-60.5358],[851.48,1099.87,20.9667,64.7704,-53.374],[754.341,1199.99,18.4667,47.9915,-35.5364],[642.515,1240.15,15.6167,39.4117,-0.110964]]], + [76,1251.27,[[1505.46,-2001.28,42.55,225.732,-82.7793],[1492.65,-1901.09,42.1,223.072,-82.6363],[1479.73,-1802.13,41.65,220.372,-82.4886],[1466.24,-1700.82,41.1833,217.531,-82.3304],[1452.64,-1600.88,40.7167,214.648,-82.1668],[1438.94,-1502.31,40.25,211.722,-81.9973],[1424.64,-1401.71,39.7667,208.648,-81.8154],[1410.23,-1302.63,39.2833,205.528,-81.6266],[1395.21,-1201.77,38.7833,202.253,-81.4235],[1380.07,-1102.59,38.2833,198.93,-81.2121],[1364.31,-1001.9,37.7667,195.447,-80.9842],[1348.43,-903.073,37.25,191.913,-80.7463],[1331.91,-803.028,36.7167,188.212,-80.4892],[1314.74,-701.989,36.1667,184.341,-80.2111],[1296.91,-600.189,35.6,180.295,-79.9097],[1278.94,-500.758,35.0333,176.19,-79.5919],[1260.31,-400.916,34.45,171.906,-79.2461],[1240.99,-300.922,33.85,167.438,-78.8689],[1220.98,-201.047,33.2333,162.782,-78.4563],[1200.27,-101.576,32.6,157.935,-78.0037],[1178.3,-0.318407,31.9333,152.766,-77.492],[1155.61,99.7439,31.25,147.397,-76.9256],[1132.18,198.275,30.55,141.828,-76.2958],[1106.88,299.317,29.8,135.788,-75.5577],[1080.25,399.771,29.0167,129.407,-74.706],[1052.26,498.893,28.2,122.683,-73.7155],[1021.76,599.563,27.3167,115.341,-72.5039],[989.265,698.431,26.3833,107.525,-71.0316],[953.004,798.766,25.35,98.8299,-69.1139],[912.318,898.981,24.2,89.1541,-66.5185],[864.75,999.842,22.8667,78.0424,-62.6747],[806.574,1099.71,21.25,64.9949,-56.2178],[721.809,1199.82,18.9167,48.2594,-40.8565],[603.172,1251.27,15.6833,36.8679,-0.0410738]]], + [77,1261.69,[[1405.23,-2003.45,42.6667,225.884,-83.2821],[1393.3,-1903.08,42.2167,223.221,-83.1491],[1380.83,-1800.29,41.75,220.418,-83.0066],[1368.71,-1702.45,41.3,217.675,-82.8646],[1356.04,-1602.31,40.8333,214.788,-82.7124],[1342.82,-1500.05,40.35,211.753,-82.5491],[1329.96,-1402.75,39.8833,208.78,-82.3856],[1316.08,-1300.07,39.3833,205.547,-82.2038],[1302.55,-1202.4,38.9,202.375,-82.021],[1288.45,-1103.01,38.4,199.047,-81.8244],[1273.77,-1002.1,37.8833,195.557,-81.6124],[1258.98,-903.042,37.3667,192.016,-81.391],[1243.59,-802.762,36.8333,188.308,-81.1519],[1227.6,-701.48,36.2833,184.428,-80.8931],[1211.49,-602.394,35.7333,180.491,-80.6211],[1194.76,-502.637,35.1667,176.378,-80.3257],[1177.4,-402.456,34.5833,172.083,-80.0044],[1159.41,-302.11,33.9833,167.603,-79.6539],[1140.78,-201.869,33.3667,162.934,-79.2705],[1121.5,-102.019,32.7333,158.072,-78.8497],[1101.04,-0.358339,32.0667,152.884,-78.374],[1080.42,97.7154,31.4,147.626,-77.8607],[1058.09,199.083,30.6833,141.901,-77.2616],[1035.06,298.386,29.95,135.968,-76.5908],[1010.26,399.442,29.1667,129.554,-75.7997],[984.206,499.196,28.35,122.791,-74.8793],[956.338,598.708,27.4833,115.539,-73.7755],[926.09,698.45,26.55,107.662,-72.409],[892.332,799.762,25.5167,98.8847,-70.627],[855.006,899.693,24.3833,89.2359,-68.2496],[811.838,999.687,23.0833,78.2289,-64.7732],[759.376,1099.1,21.5167,65.2727,-58.9915],[684.468,1199.74,19.3,48.5024,-45.5799],[563.277,1261.69,15.75,34.3086,-0.0372763]]], + [78,1271.39,[[1303.3,-2003.6,42.7667,225.976,-83.7848],[1292.25,-1903.09,42.3167,223.31,-83.6618],[1280.7,-1800.16,41.85,220.504,-83.53],[1269.48,-1702.16,41.4,217.757,-83.3986],[1257.75,-1601.88,40.9333,214.866,-83.2578],[1245.94,-1502.97,40.4667,211.932,-83.1119],[1233.61,-1402,39.9833,208.849,-82.9554],[1221.18,-1302.56,39.5,205.719,-82.7929],[1208.23,-1201.32,39,202.433,-82.618],[1195.18,-1101.75,38.5,199.099,-82.4361],[1181.58,-1000.67,37.9833,195.602,-82.2399],[1167.89,-901.433,37.4667,192.053,-82.035],[1153.64,-800.968,36.9333,188.337,-81.8137],[1139.29,-702.534,36.4,184.566,-81.5816],[1123.92,-600.21,35.8333,180.502,-81.3223],[1108.43,-500.25,35.2667,176.377,-81.0489],[1092.82,-402.691,34.7,172.194,-80.7601],[1076.17,-302.05,34.1,167.702,-80.4361],[1058.92,-201.504,33.4833,163.02,-80.0815],[1041.07,-101.336,32.85,158.143,-79.6924],[1022.6,-1.84567,32.2,153.068,-79.2638],[1003.05,99.074,31.5167,147.66,-78.7775],[982.853,198.492,30.8167,142.046,-78.2366],[961.535,298.276,30.0833,136.088,-77.6169],[938.585,399.852,29.3,129.643,-76.8859],[914.964,498.163,28.5,122.982,-76.0534],[889.176,598.387,27.6333,115.686,-75.0348],[861.184,698.902,26.7,107.752,-73.7728],[830.449,799.506,25.6833,99.0418,-72.1544],[796.421,899.164,24.5667,89.4324,-69.9953],[756.996,999.463,23.2833,78.4103,-66.8349],[708.98,1100,21.7333,65.318,-61.5606],[643.349,1199.66,19.6333,48.7296,-49.8986],[522.842,1271.39,15.8167,31.7345,-0.116551]]], + [79,1280.37,[[1199.79,-2001.72,42.85,226.008,-84.288],[1189.63,-1901.11,42.4,223.338,-84.1749],[1179.4,-1801.72,41.95,220.629,-84.0581],[1169.08,-1703.57,41.5,217.879,-83.9375],[1158.3,-1603.12,41.0333,214.986,-83.8082],[1147.05,-1500.53,40.55,211.943,-83.6695],[1136.11,-1402.9,40.0833,208.961,-83.5306],[1124.69,-1303.29,39.6,205.827,-83.3813],[1112.78,-1201.86,39.1,202.537,-83.2208],[1100.78,-1102.12,38.6,199.198,-83.0537],[1088.29,-1000.84,38.0833,195.695,-82.8736],[1075.7,-901.414,37.5667,192.141,-82.6854],[1062.6,-800.746,37.0333,188.418,-82.4821],[1049.41,-702.109,36.5,184.64,-82.2689],[1035.69,-602.549,35.95,180.687,-82.038],[1021.46,-502.299,35.3833,176.555,-81.7872],[1006.69,-401.606,34.8,172.239,-81.5143],[991.383,-300.727,34.2,167.736,-81.2165],[975.959,-202.62,33.6,163.168,-80.8999],[959.553,-102.115,32.9667,158.277,-80.5429],[942.585,-2.2745,32.3167,153.188,-80.1496],[924.608,99.0165,31.6333,147.762,-79.7033],[906.05,198.818,30.9333,142.128,-79.2068],[886.457,299.008,30.2,136.146,-78.6378],[865.815,398.905,29.4333,129.81,-77.9814],[843.655,499.783,28.6167,122.977,-77.2014],[820.41,598.623,27.7667,115.78,-76.284],[794.687,699.81,26.8333,107.794,-75.1257],[766.908,799.565,25.8333,99.1589,-73.6653],[736.11,898.792,24.7333,89.6009,-71.7172],[700.361,999.212,23.4667,78.5822,-68.8634],[657.202,1099.66,21.95,65.5274,-64.1495],[598.841,1199.95,19.9167,48.8712,-53.8579],[481.878,1280.37,15.8833,29.1466,-0.301339]]], + [80,1288.61,[[1095.2,-2001.6,42.9333,226.078,-84.796],[1085.94,-1900.87,42.4833,223.406,-84.6929],[1076.6,-1801.36,42.0333,220.694,-84.5865],[1067.2,-1703.09,41.5833,217.941,-84.4767],[1057.37,-1602.51,41.1167,215.044,-84.3588],[1047.47,-1503.31,40.65,212.103,-84.2369],[1037.14,-1402.04,40.1667,209.011,-84.1059],[1026.73,-1302.29,39.6833,205.873,-83.9699],[1015.87,-1200.73,39.1833,202.578,-83.8236],[1004.94,-1100.84,38.6833,199.233,-83.6713],[993.914,-1002.66,38.1833,195.839,-83.5126],[982.44,-903.023,37.6667,192.279,-83.3413],[970.504,-802.138,37.1333,188.551,-83.1563],[958.1,-700.226,36.5833,184.648,-82.9561],[945.6,-600.504,36.0333,180.686,-82.7456],[932.622,-500.086,35.4667,176.545,-82.5169],[919.546,-402.065,34.9,172.343,-82.2754],[905.594,-300.93,34.3,167.83,-82.0044],[891.536,-202.564,33.7,163.251,-81.716],[876.582,-101.783,33.0667,158.348,-81.391],[861.117,-1.65683,32.4167,153.244,-81.0328],[844.732,99.9371,31.7333,147.801,-80.6263],[828.222,197.715,31.05,142.283,-80.1851],[810.367,298.338,30.3167,136.28,-79.6677],[791.556,398.691,29.55,129.92,-79.0707],[771.775,498.048,28.75,123.196,-78.3762],[750.179,599.415,27.8833,115.822,-77.5257],[727.157,699.423,26.9667,107.931,-76.4908],[701.846,799.945,25.9667,99.2349,-75.1627],[674.209,898.589,24.8833,89.7394,-73.4188],[642.068,998.952,23.6333,78.7411,-70.8624],[603.618,1099.06,22.15,65.7597,-66.687],[552.208,1199.5,20.1833,49.1404,-57.7143],[439.955,1288.61,15.9333,26.5459,-0.271236]]], + [81,1296.11,[[989.545,-2003.24,43.0167,226.187,-85.3082],[981.188,-1902.38,42.5667,223.513,-85.2153],[972.768,-1802.74,42.1167,220.799,-85.1195],[963.969,-1700.72,41.65,217.941,-85.0167],[955.101,-1600.05,41.1833,215.04,-84.9103],[946.166,-1500.76,40.7167,212.095,-84.8002],[937.163,-1402.87,40.25,209.106,-84.6861],[927.769,-1302.97,39.7667,205.964,-84.5635],[917.975,-1201.26,39.2667,202.665,-84.4317],[908.106,-1101.22,38.7667,199.316,-84.2944],[898.163,-1002.88,38.2667,195.917,-84.1513],[887.81,-903.081,37.75,192.353,-83.9969],[877.04,-802.027,37.2167,188.619,-83.8301],[866.189,-703,36.6833,184.829,-83.6552],[854.57,-600.038,36.1167,180.741,-83.4597],[843.206,-502.36,35.5667,176.715,-83.2597],[831.062,-401.228,34.9833,172.382,-83.0357],[818.824,-302.671,34.4,167.985,-82.7982],[805.789,-201.327,33.7833,163.269,-82.5312],[792.297,-100.333,33.15,158.354,-82.2379],[778.702,-2.51598,32.5167,153.368,-81.9234],[763.921,99.4044,31.8333,147.911,-81.5572],[748.661,199.857,31.1333,142.24,-81.1496],[732.919,298.491,30.4167,136.354,-80.6936],[715.949,399.221,29.65,129.97,-80.1554],[698.104,498.975,28.85,123.219,-79.5293],[678.997,598.879,28,115.953,-78.7778],[658.232,699.484,27.0833,108.02,-77.8462],[635.782,799.051,26.1,99.415,-76.6715],[610.857,898.577,25.0167,89.8458,-75.1033],[581.869,999.967,23.7667,78.7359,-72.8004],[547.973,1099.25,22.3167,65.862,-69.1257],[502.797,1199.81,20.4,49.242,-61.2771],[397.613,1296.11,15.9833,23.9326,-0.348575]]], + [82,1302.84,[[882.609,-2002.91,43.0833,226.238,-85.8211],[875.163,-1901.95,42.6333,223.562,-85.7383],[867.659,-1802.22,42.1833,220.845,-85.6529],[859.818,-1700.1,41.7167,217.984,-85.5614],[852.199,-1602.91,41.2667,215.184,-85.4701],[844.239,-1503.47,40.8,212.237,-85.3722],[835.932,-1401.95,40.3167,209.139,-85.267],[827.56,-1301.95,39.8333,205.994,-85.1578],[818.833,-1200.12,39.3333,202.69,-85.0403],[810.333,-1103.28,38.85,199.449,-84.9222],[801.178,-1001.52,38.3333,195.933,-84.7905],[791.952,-901.602,37.8167,192.363,-84.6529],[782.356,-800.426,37.2833,188.623,-84.5043],[772.686,-701.276,36.75,184.826,-84.3484],[762.638,-601.181,36.2,180.853,-84.1795],[752.206,-500.376,35.6333,176.698,-83.996],[741.694,-401.964,35.0667,172.481,-83.8022],[730.479,-300.411,34.4667,167.95,-83.5846],[719.178,-201.624,33.8667,163.351,-83.3531],[707.158,-100.394,33.2333,158.426,-83.0922],[695.046,-2.34032,32.6,153.428,-82.8122],[681.878,99.8383,31.9167,147.958,-82.4861],[668.608,198.206,31.2333,142.408,-82.1323],[654.258,299.468,30.5,136.368,-81.717],[639.469,398.352,29.75,130.102,-81.2486],[623.573,498.532,28.95,123.327,-80.6919],[606.553,598.893,28.1,116.031,-80.0236],[588.055,699.997,27.1833,108.061,-79.1945],[568.397,798.479,26.2167,99.554,-78.1677],[546.197,898.768,25.1333,89.9189,-76.7741],[520.723,999.78,23.9,78.8593,-74.7553],[490.883,1099.29,22.4667,65.9719,-71.5313],[451.706,1199.61,20.6,49.4245,-64.7666],[370.481,1299.98,16.7667,22.5312,-19.1755],[354.51,1302.84,16.0167,21.3075,-0.135029]]], + [83,1308.81,[[774.54,-2000.59,43.1333,226.229,-86.3351],[768.251,-1903.29,42.7,223.65,-86.2653],[761.672,-1803.45,42.25,220.931,-86.1904],[754.796,-1701.23,41.7833,218.069,-86.1102],[747.867,-1600.35,41.3167,215.163,-86.0272],[740.885,-1500.85,40.85,212.212,-85.9413],[733.85,-1402.74,40.3833,209.218,-85.8522],[726.509,-1302.62,39.9,206.07,-85.7566],[718.856,-1200.67,39.4,202.763,-85.6536],[711.144,-1100.39,38.9,199.406,-85.5464],[703.374,-1001.82,38.4,195.999,-85.4347],[695.284,-901.768,37.8833,192.425,-85.3142],[686.869,-800.455,37.35,188.68,-85.1839],[678.389,-701.166,36.8167,184.879,-85.0473],[669.577,-600.928,36.2667,180.9,-84.8992],[660.699,-502.908,35.7167,176.862,-84.7433],[651.211,-401.409,35.1333,172.515,-84.5686],[641.65,-302.484,34.55,168.103,-84.3833],[631.466,-200.745,33.9333,163.369,-84.1749],[621.203,-101.971,33.3167,158.565,-83.9522],[610.304,-1.1143,32.6667,153.426,-83.7005],[599.038,98.8023,32,148.077,-83.4218],[587.119,199.813,31.3,142.378,-83.1041],[574.822,299.025,30.5833,136.459,-82.7484],[561.855,398.227,29.8333,130.176,-82.3383],[547.918,498.75,29.0333,123.379,-81.8506],[532.994,599.479,28.1833,116.057,-81.265],[517.072,699.203,27.2833,108.198,-80.5525],[499.54,799.888,26.3,99.502,-79.6374],[480.375,899.187,25.2333,89.9571,-78.4343],[458.346,999.656,24.0167,78.9621,-76.6916],[432.493,1099.2,22.6,66.0854,-73.9072],[398.769,1199.72,20.7667,49.5297,-68.11],[335.975,1299.98,17.3833,22.7575,-35.036],[311.104,1308.81,16.05,18.6714,-0.00878355]]], + [84,1313.99,[[665.698,-2000.06,43.1833,226.26,-86.853],[660.296,-1902.7,42.75,223.679,-86.793],[654.645,-1802.79,42.3,220.959,-86.7287],[648.738,-1700.49,41.8333,218.094,-86.6599],[643,-1603.12,41.3833,215.29,-86.5911],[637.004,-1503.5,40.9167,212.338,-86.5174],[630.746,-1401.78,40.4333,209.235,-86.4383],[624.441,-1301.58,39.95,206.083,-86.3562],[618.087,-1202.93,39.4667,202.885,-86.2707],[611.465,-1102.51,38.9667,199.526,-86.1788],[604.569,-1000.53,38.45,196.002,-86.0796],[597.62,-900.4,37.9333,192.424,-85.9762],[590.618,-802.136,37.4167,188.792,-85.8678],[583.336,-702.693,36.8833,184.987,-85.7506],[575.769,-602.294,36.3333,181.004,-85.6237],[567.913,-501.172,35.7667,176.839,-85.4857],[559.997,-402.441,35.2,172.61,-85.3399],[551.551,-300.546,34.6,168.065,-85.1763],[543.04,-201.414,34,163.452,-85.0023],[534.227,-102.45,33.3833,158.64,-84.8113],[524.866,-1.39252,32.7333,153.493,-84.5952],[515.191,98.7324,32.0667,148.134,-84.3561],[504.955,199.964,31.3667,142.424,-84.0835],[494.394,299.403,30.65,136.491,-83.7782],[483.259,398.846,29.9,130.192,-83.4261],[471.289,499.628,29.1,123.376,-83.0074],[458.726,598.714,28.2667,116.174,-82.5148],[445.053,698.866,27.3667,108.288,-81.9041],[430.255,798.381,26.4,99.7037,-81.1339],[413.543,899.839,25.3167,89.9599,-80.0869],[394.887,999.611,24.1167,79.043,-78.6126],[372.952,1099,22.7167,66.1998,-76.2569],[344.527,1199.44,20.9167,49.6912,-71.3974],[294.355,1299.97,17.7667,22.969,-45.8891],[267.409,1313.99,16.0833,16.0253,-0.0149978]]], + [85,1318.4,[[556.14,-2001.35,43.2333,226.332,-87.3741],[551.457,-1900.19,42.7833,223.649,-87.3221],[546.737,-1800.24,42.3333,220.926,-87.2684],[541.982,-1701.54,41.8833,218.162,-87.2129],[537.014,-1600.51,41.4167,215.252,-87.1535],[532.007,-1500.84,40.95,212.297,-87.0918],[526.962,-1402.57,40.4833,209.298,-87.0282],[521.698,-1302.28,40,206.145,-86.9595],[516.211,-1200.16,39.5,202.833,-86.8857],[510.865,-1103.03,39.0167,199.583,-86.8116],[505.108,-1000.95,38.5,196.056,-86.7289],[499.307,-900.713,37.9833,192.476,-86.6425],[493.462,-802.348,37.4667,188.841,-86.5521],[487.382,-702.799,36.9333,185.032,-86.4543],[481.065,-602.29,36.3833,181.046,-86.3484],[474.507,-501.054,35.8167,176.875,-86.2333],[467.898,-402.206,35.25,172.642,-86.1117],[460.847,-300.188,34.65,168.091,-85.9751],[453.742,-200.932,34.05,163.472,-85.8298],[446.384,-101.839,33.4333,158.653,-85.6704],[438.569,-0.644074,32.7833,153.497,-85.4901],[430.493,99.6226,32.1167,148.13,-85.2904],[422.151,198.637,31.4333,142.546,-85.0685],[413.336,298.331,30.7167,136.603,-84.814],[404.041,398.042,29.9667,130.292,-84.5206],[394.05,499.114,29.1667,123.46,-84.1716],[383.563,598.504,28.3333,116.239,-83.761],[372.151,698.988,27.4333,108.329,-83.2517],[359.799,798.862,26.4667,99.714,-82.6091],[346.064,899.24,25.4,90.0783,-81.7499],[330.493,999.65,24.2,79.1009,-80.522],[312.186,1099.79,22.8,66.1581,-78.5563],[288.903,1199.61,21.0333,49.7484,-74.5794],[249.258,1299.82,18.05,23.2042,-54.9174],[223.438,1318.39,16.1167,13.3701,-0.235123]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 438.569; +_maxRange = 2518.39; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg3.sqf new file mode 100644 index 0000000000..8fe723bd3a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_HA_chg3.sqf @@ -0,0 +1,57 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_82mm_wp_pd_chg3 +// Ammo: ace_arty_82mm_wp_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,955.532,[[4612.28,-2003.12,39.45,230.604,-67.1076],[4568.74,-1901.13,38.9667,228.172,-66.6426],[4524.84,-1800.58,38.4833,225.715,-66.1636],[4480.58,-1701.5,38,223.233,-65.6699],[4434.4,-1600.57,37.5,220.641,-65.143],[4387.84,-1501.26,37,218.025,-64.599],[4339.32,-1400.35,36.4833,215.297,-64.0181],[4290.39,-1301.22,35.9667,212.545,-63.4172],[4239.46,-1200.78,35.4333,209.682,-62.7749],[4188.09,-1102.29,34.9,206.798,-62.1091],[4134.66,-1002.78,34.35,203.803,-61.3966],[4079.13,-902.49,33.7833,200.699,-60.6338],[4021.47,-801.647,33.2,197.486,-59.8162],[3961.64,-700.496,32.6,194.165,-58.9392],[3901.28,-601.995,32,190.834,-58.0236],[3836.99,-500.937,31.3667,187.31,-57.0129],[3770.4,-400.379,30.7167,183.691,-55.9253],[3701.48,-300.618,30.05,179.984,-54.7537],[3630.18,-201.961,29.3667,176.196,-53.4902],[3552.94,-100.198,28.6333,172.155,-52.059],[3473.18,-0.592057,27.8833,168.06,-50.5096],[3389.05,98.5432,27.1,163.84,-48.7923],[3298.65,198.43,26.2667,159.433,-46.8471],[3199.99,299.753,25.3667,154.795,-44.6],[3094.71,399.206,24.4167,150.074,-42.0525],[2978.9,498.503,23.3833,145.189,-39.0643],[2846.56,599.312,22.2167,140.06,-35.4047],[2693.29,699.605,20.8833,134.817,-30.8387],[2504.63,799.486,19.2667,129.552,-24.7578],[2231.04,899.717,16.9667,124.63,-15.1923],[1819.69,955.53,13.6,124.131,-0.0752641]]], + [46,987.502,[[4571.27,-2000.41,39.8,230.843,-67.5765],[4530.02,-1901.47,39.3333,228.485,-67.137],[4486.94,-1800.41,38.85,226.016,-66.6681],[4443.5,-1700.81,38.3667,223.523,-66.1849],[4399.71,-1602.69,37.8833,221.004,-65.6866],[4354.03,-1502.77,37.3833,218.374,-65.1547],[4306.42,-1401.24,36.8667,215.63,-64.5865],[4258.42,-1301.47,36.35,212.862,-63.9987],[4208.44,-1200.36,35.8167,209.98,-63.3703],[4158.04,-1101.2,35.2833,207.076,-62.7189],[4105.62,-1000.99,34.7333,204.058,-62.0217],[4052.75,-902.913,34.1833,201.021,-61.2973],[3996.19,-801.242,33.6,197.78,-60.4978],[3939.13,-702.03,33.0167,194.522,-59.6644],[3879.93,-602.586,32.4167,191.158,-58.7696],[3816.88,-500.524,31.7833,187.596,-57.7815],[3753.26,-401.489,31.15,184.028,-56.7458],[3685.68,-300.562,30.4833,180.273,-55.601],[3615.77,-200.697,29.8,176.432,-54.3657],[3543.49,-102.217,29.1,172.514,-53.031],[3465.31,-1.05541,28.35,168.346,-51.5181],[3382.85,99.7217,27.5667,164.042,-49.8398],[3296.03,199.398,26.75,159.626,-47.9761],[3202.94,299.068,25.8833,155.043,-45.862],[3101.63,399.264,24.95,150.258,-43.4174],[2990.04,499.848,23.9333,145.269,-40.5433],[2866.03,599.879,22.8167,140.122,-37.1178],[2723.57,699.891,21.55,134.806,-32.8759],[2552.47,799.513,20.05,129.399,-27.3557],[2322.35,899.322,18.0667,124.093,-19.2764],[1814.63,987.5,13.8167,121.824,-0.0462183]]], + [47,1019.4,[[4529.06,-2002.36,40.1667,231.195,-68.0661],[4488.6,-1902.91,39.7,228.827,-67.6363],[4446.35,-1801.33,39.2167,226.348,-67.1778],[4403.75,-1701.19,38.7333,223.843,-66.7052],[4360.79,-1602.54,38.25,221.312,-66.2179],[4315.99,-1502.06,37.75,218.668,-65.6976],[4270.81,-1403.2,37.25,215.998,-65.16],[4223.74,-1302.78,36.7333,213.214,-64.5856],[4174.73,-1201,36.2,210.314,-63.9714],[4125.31,-1101.15,35.6667,207.39,-63.3346],[4073.9,-1000.23,35.1167,204.351,-62.6529],[4022.06,-901.433,34.5667,201.29,-61.9446],[3968.19,-801.883,34,198.116,-61.1854],[3912.25,-701.82,33.4167,194.829,-60.3709],[3854.21,-601.493,32.8167,191.433,-59.4964],[3794.03,-501.159,32.2,187.929,-58.5563],[3731.67,-401.092,31.5667,184.321,-57.5445],[3667.09,-301.575,30.9167,180.615,-56.4543],[3598.58,-200.485,30.2333,176.722,-55.248],[3527.74,-100.735,29.5333,172.746,-53.9439],[3452.83,-0.428144,28.8,168.604,-52.4985],[3373.76,99.7812,28.0333,164.313,-50.8944],[3290.45,199.196,27.2333,159.895,-49.112],[3201.04,298.974,26.3833,155.289,-47.088],[3103.61,399.718,25.4667,150.453,-44.7439],[2997.95,499.754,24.4833,145.458,-42.0299],[2882.04,598.716,23.4167,140.321,-38.837],[2748.22,699.266,22.2,134.907,-34.8614],[2590.29,799.51,20.7833,129.346,-29.7689],[2388.35,899.481,19,123.767,-22.6626],[2042.91,999.917,16.0167,118.959,-9.36116],[1808.04,1019.4,14.0333,119.493,-0.0346797]]], + [48,1051.18,[[4482.68,-2001.88,40.5167,231.493,-68.5458],[4443.01,-1901.97,40.05,229.115,-68.1254],[4403.02,-1803.4,39.5833,226.712,-67.6927],[4361.26,-1702.72,39.1,224.195,-67.231],[4317.7,-1600.12,38.6,221.565,-66.7382],[4275.24,-1502.46,38.1167,218.995,-66.2464],[4230.96,-1403.03,37.6167,216.311,-65.721],[4184.82,-1302.01,37.1,213.511,-65.1595],[4138.29,-1202.76,36.5833,210.685,-64.5782],[4089.85,-1102.22,36.05,207.743,-63.9563],[4039.48,-1000.57,35.5,204.683,-63.2904],[3988.67,-901.035,34.95,201.599,-62.5985],[3935.87,-800.721,34.3833,198.4,-61.8566],[3882.62,-702.71,33.8167,195.181,-61.0838],[3825.76,-601.482,33.2167,191.753,-60.2299],[3766.79,-500.214,32.6,188.215,-59.3116],[3707.3,-401.796,31.9833,184.664,-58.3497],[3644.04,-301.191,31.3333,180.915,-57.2855],[3578.56,-201.393,30.6667,177.068,-56.1369],[3509.18,-100.354,29.9667,173.036,-54.8643],[3437.49,-0.945073,29.25,168.924,-53.4858],[3361.75,98.6494,28.5,164.652,-51.9553],[3280.18,199.805,27.7,160.146,-50.2166],[3194.36,299.518,26.8667,155.527,-48.28],[3102.47,398.814,25.9833,150.741,-46.0769],[3000.85,499.815,25.0167,145.671,-43.4752],[2891.01,598.79,23.9833,140.495,-40.4579],[2765.53,699.189,22.8167,135.031,-36.7387],[2620.29,798.955,21.4833,129.403,-32.0627],[2437.91,899.912,19.8333,123.582,-25.641],[2173.26,999.862,17.4833,118.066,-15.3951],[1799.91,1051.18,14.25,117.138,-0.0419397]]], + [49,1082.82,[[4433.61,-2002.58,40.8667,231.819,-69.0308],[4394.74,-1902.2,40.4,229.433,-68.6201],[4355.55,-1803.14,39.9333,227.019,-68.1972],[4314.64,-1701.96,39.45,224.492,-67.746],[4273.38,-1602.25,38.9667,221.938,-67.2807],[4230.35,-1500.67,38.4667,219.267,-66.7837],[4186.96,-1400.7,37.9667,216.569,-66.2701],[4143.21,-1302.36,37.4667,213.844,-65.7393],[4097.63,-1202.5,36.95,211.002,-65.1715],[4050.18,-1101.3,36.4167,208.041,-64.564],[4002.33,-1002.05,35.8833,205.054,-63.9337],[3952.57,-901.761,35.3333,201.949,-63.2583],[3900.86,-800.666,34.7667,198.725,-62.5342],[3848.71,-701.868,34.2,195.48,-61.7797],[3794.56,-602.597,33.6167,192.119,-60.9695],[3736.82,-500.377,33,188.547,-60.0736],[3678.56,-400.998,32.3833,184.96,-59.1348],[3618.21,-301.935,31.75,181.266,-58.1231],[3554.11,-200.991,31.0833,177.373,-57.0027],[3487.81,-101.124,30.4,173.383,-55.791],[3417.63,-0.360793,29.6833,169.211,-54.4467],[3345.15,98.4707,28.95,164.965,-52.9873],[3266.98,199.193,28.1667,160.469,-51.3279],[3184.7,298.788,27.35,155.845,-49.4785],[3096.51,398.348,26.4833,151.032,-47.3724],[3000.54,498.394,25.55,145.989,-44.9259],[2894.88,598.78,24.5333,140.709,-42.0342],[2775.74,699.956,23.4,135.155,-38.5115],[2640.93,799.434,22.1333,129.467,-34.1783],[2477.3,899.335,20.6167,123.569,-28.4214],[2254.27,999.806,18.5833,117.643,-19.7678],[1790.22,1082.81,14.4667,114.759,-0.0691593]]], + [50,1114.28,[[4380.45,-2000.9,41.2,232.091,-69.5067],[4342.39,-1900.08,40.7333,229.695,-69.1053],[4304.01,-1800.58,40.2667,227.272,-68.6921],[4265.32,-1702.42,39.8,224.822,-68.2666],[4224.92,-1602.19,39.3167,222.256,-67.8122],[4182.78,-1500.06,38.8167,219.573,-67.327],[4141.72,-1402.86,38.3333,216.952,-66.8425],[4097.45,-1300.65,37.8167,214.121,-66.307],[4052.82,-1200.2,37.3,211.263,-65.7524],[4007.81,-1101.55,36.7833,208.377,-65.1779],[3960.97,-1001.63,36.25,205.371,-64.5627],[3912.25,-900.646,35.7,202.245,-63.9035],[3863.12,-801.786,35.15,199.094,-63.2178],[3812.07,-702.185,34.5833,195.823,-62.4819],[3759.07,-602.079,34,192.434,-61.6915],[3704.09,-501.718,33.4,188.927,-60.8416],[3647.08,-401.36,32.7833,185.306,-59.9264],[3588.02,-301.281,32.15,181.573,-58.9399],[3526.86,-201.766,31.5,177.733,-57.8749],[3461.99,-100.692,30.8167,173.693,-56.6939],[3394.93,-0.97527,30.1167,169.56,-55.4142],[3324.02,99.2782,29.3833,165.248,-53.992],[3249.19,199.412,28.6167,160.77,-52.409],[3170.36,298.726,27.8167,156.149,-50.6441],[3085.78,398.371,26.9667,151.319,-48.6321],[2993.64,498.943,26.05,146.231,-46.2914],[2893.76,598.76,25.0667,140.954,-43.5671],[2782.49,698.908,23.9833,135.42,-40.2897],[2656.05,798.912,22.7667,129.645,-36.2394],[2505.14,899.517,21.3333,123.601,-30.94],[2310.95,999.8,19.5167,117.445,-23.4015],[1966.74,1099.92,16.3667,112.001,-8.53356],[1777.1,1114.28,14.6667,112.371,-0.0345871]]], + [51,1145.52,[[4324.62,-2000.48,41.5333,232.393,-69.9882],[4288.7,-1902.81,41.0833,230.075,-69.6106],[4251.15,-1802.8,40.6167,227.643,-69.2076],[4211.93,-1700.64,40.1333,225.095,-68.7775],[4173.76,-1603.37,39.6667,222.607,-68.3494],[4132.53,-1500.69,39.1667,219.912,-67.876],[4092.34,-1402.95,38.6833,217.279,-67.4033],[4049.03,-1300.15,38.1667,214.434,-66.8809],[4006.77,-1202.35,37.6667,211.653,-66.3575],[3962.74,-1103.04,37.15,208.751,-65.7975],[3916.91,-1002.43,36.6167,205.728,-65.1978],[3869.25,-900.736,36.0667,202.582,-64.5551],[3821.18,-801.155,35.5167,199.408,-63.8864],[3771.24,-700.804,34.95,196.113,-63.1686],[3720.87,-602.766,34.3833,192.794,-62.42],[3667.09,-501.519,33.7833,189.258,-61.5916],[3611.33,-400.244,33.1667,185.603,-60.6995],[3555.08,-301.832,32.55,181.931,-59.7633],[3495.27,-201.245,31.9,178.049,-58.7256],[3433.38,-101.482,31.2333,174.06,-57.6033],[3367.8,-0.49512,30.5333,169.872,-56.357],[3300.06,98.8425,29.8167,165.595,-55.0035],[3228.5,198.343,29.0667,161.142,-53.4964],[3151.45,299.376,28.2667,156.434,-51.7785],[3070.4,398.936,27.4333,151.596,-49.8577],[2982,499.848,26.5333,146.475,-47.6199],[2887.73,598.802,25.5833,141.223,-45.0579],[2782.41,698.996,24.5333,135.655,-41.9671],[2664.04,798.842,23.3667,129.842,-38.1883],[2525.38,899.05,22.0167,123.742,-33.333],[2351.75,999.69,20.35,117.398,-26.6019],[2093.61,1099.93,17.9167,111.204,-15.4216],[1762.48,1145.52,14.8667,109.959,-0.0195233]]], + [52,1176.51,[[4266.08,-2001.39,41.8667,232.725,-70.4752],[4230.95,-1903.27,41.4167,230.399,-70.1069],[4194.22,-1802.8,40.95,227.959,-69.7139],[4155.86,-1700.15,40.4667,225.401,-69.2943],[4118.53,-1602.41,40,222.903,-68.8767],[4079.55,-1502.62,39.5167,220.287,-68.4306],[4038.89,-1400.97,39.0167,217.55,-67.9538],[3997.9,-1300.94,38.5167,214.784,-67.4608],[3956.58,-1202.55,38.0167,211.989,-66.9507],[3913.52,-1102.63,37.5,209.071,-66.4048],[3868.71,-1001.38,36.9667,206.03,-65.8201],[3823.52,-902.092,36.4333,202.96,-65.2127],[3776.53,-801.776,35.8833,199.766,-64.5614],[3727.7,-700.659,35.3167,196.447,-63.8621],[3678.46,-601.847,34.75,193.103,-63.1326],[3627.34,-502.573,34.1667,189.637,-62.3482],[3572.83,-400.362,33.55,185.949,-61.4795],[3517.85,-301.004,32.9333,182.242,-60.5677],[3460.9,-201.974,32.3,178.42,-59.5832],[3400.41,-101.081,31.6333,174.385,-58.4907],[3337.86,-1.28324,30.95,170.246,-57.3066],[3271.66,99.3905,30.2333,165.909,-55.9894],[3203.3,198.111,29.5,161.487,-54.5555],[3129.6,298.692,28.7167,156.795,-52.9196],[3052.03,398.117,27.9,151.958,-51.0898],[2967.3,499.316,27.0167,146.812,-48.955],[2876.87,598.971,26.0833,141.506,-46.5082],[2777.33,698.893,25.0667,135.93,-43.5989],[2665.13,799.504,23.9333,130.034,-40.0296],[2536.57,899.494,22.65,123.884,-35.5404],[2380.91,999.23,21.1167,117.478,-29.5197],[2166.01,1099.68,19.0333,110.914,-20.2119],[1746.35,1176.51,15.0667,107.523,-0.0255023]]], + [53,1207.22,[[4204.83,-2003.65,42.2,233.088,-70.9672],[4169.22,-1901.45,41.7333,230.668,-70.5949],[4133.32,-1800.55,41.2667,228.219,-70.2116],[4097.12,-1700.98,40.8,225.74,-69.8167],[4060.63,-1602.76,40.3333,223.232,-69.4098],[4022.54,-1502.46,39.85,220.605,-68.9751],[3982.8,-1400.28,39.35,217.856,-68.5104],[3944.08,-1303.03,38.8667,215.17,-68.0462],[3902.35,-1200.77,38.35,212.268,-67.5327],[3860.27,-1100.29,37.8333,209.334,-67.0005],[3817.84,-1001.61,37.3167,206.371,-66.4485],[3773.69,-901.659,36.7833,203.283,-65.857],[3727.77,-800.657,36.2333,200.068,-65.2225],[3681.47,-701.789,35.6833,196.826,-64.5617],[3633.36,-602.188,35.1167,193.457,-63.8517],[3583.43,-502.094,34.5333,189.964,-63.088],[3531.62,-401.755,33.9333,186.345,-62.2656],[3477.92,-301.434,33.3167,182.605,-61.3786],[3422.28,-201.406,32.6833,178.744,-60.4207],[3364.69,-101.957,32.0333,174.768,-59.3845],[3303.6,-0.967984,31.35,170.579,-58.233],[3240.46,98.6434,30.65,166.287,-56.982],[3173.72,198.767,29.9167,161.8,-55.5878],[3103.29,298.744,29.15,157.132,-54.031],[3027.56,399.879,28.3333,152.203,-52.2513],[2947.98,499.178,27.4833,147.144,-50.2541],[2861.31,599.343,26.5667,141.799,-47.9192],[2767.39,698.687,25.5833,136.235,-45.1859],[2661.18,799.719,24.4833,130.286,-41.8216],[2542.36,898.85,23.2667,124.142,-37.69],[2398.97,999.399,21.8167,117.596,-32.1623],[2213.32,1099.42,19.9667,110.843,-24.1334],[1854.18,1199.97,16.4667,104.734,-6.4752],[1728.72,1207.22,15.2667,105.063,-0.0541257]]], + [54,1237.61,[[4139.61,-2003.66,42.5167,233.397,-71.4514],[4104.83,-1901.02,42.05,230.969,-71.0888],[4071.01,-1803.28,41.6,228.599,-70.7288],[4035.67,-1703.22,41.1333,226.112,-70.3445],[3998.76,-1600.99,40.65,223.505,-69.9341],[3961.55,-1500.23,40.1667,220.867,-69.5105],[3924.03,-1400.95,39.6833,218.199,-69.073],[3886.22,-1303.18,39.2,215.501,-68.621],[3845.47,-1200.34,38.6833,212.584,-68.1211],[3805.7,-1102.51,38.1833,209.731,-67.6199],[3762.94,-1000.01,37.65,206.657,-67.0654],[3721.17,-902.564,37.1333,203.648,-66.5076],[3676.34,-800.862,36.5833,200.414,-65.8902],[3631.13,-701.286,36.0333,197.15,-65.2472],[3584.16,-600.949,35.4667,193.758,-64.5562],[3535.4,-500.089,34.8833,190.237,-63.8128],[3486.23,-401.727,34.3,186.691,-63.0347],[3433.8,-300.503,33.6833,182.918,-62.172],[3380.93,-202.155,33.0667,179.123,-61.265],[3324.72,-101.65,32.4167,175.106,-60.2578],[3266.55,-1.98741,31.75,170.973,-59.166],[3204.94,98.8774,31.05,166.627,-57.9506],[3141.29,198.071,30.3333,162.181,-56.627],[3072.58,299.554,29.5667,157.441,-55.1147],[3001.73,398.226,28.7833,152.629,-53.4574],[2924.11,499.471,27.9333,147.466,-51.5191],[2841.12,599.963,27.0333,142.093,-49.293],[2752.65,698.438,26.0833,136.564,-46.7299],[2652.26,799.561,25.0167,130.587,-43.5652],[2539.66,899.871,23.8333,124.332,-39.665],[2408.04,999.925,22.4667,117.749,-34.6065],[2243.7,1099.5,20.7833,110.881,-27.5161],[1990.32,1199.59,18.2333,103.969,-15.0696],[1707.85,1237.61,15.45,102.592,-0.0160926]]], + [55,1267.65,[[4070.51,-2001.41,42.8167,233.65,-71.9286],[4037.77,-1902.03,42.3667,231.301,-71.5881],[4003.54,-1800.24,41.9,228.836,-71.2247],[3970.27,-1703.34,41.45,226.429,-70.8638],[3934.25,-1600.64,40.9667,223.813,-70.4644],[3899.19,-1502.86,40.5,221.256,-70.0665],[3862.59,-1403.04,40.0167,218.578,-69.6412],[3824.42,-1301.36,39.5167,215.775,-69.1863],[3785.93,-1201.3,39.0167,212.94,-68.7155],[3747.13,-1102.9,38.5167,210.073,-68.2281],[3706.72,-1002.97,38,207.08,-67.7059],[3664.65,-901.728,37.4667,203.957,-67.1461],[3622.23,-802.445,36.9333,200.803,-66.5641],[3578.13,-702.146,36.3833,197.519,-65.9392],[3532.31,-601.057,35.8167,194.105,-65.2676],[3486.11,-502.283,35.25,190.661,-64.5659],[3436.77,-400.261,34.65,186.985,-63.7882],[3387.01,-300.914,34.05,183.283,-62.9722],[3335.44,-201.634,33.4333,179.454,-62.091],[3280.61,-100.138,32.7833,175.397,-61.112],[3225.3,-1.92273,32.1333,171.324,-60.0776],[3166.65,97.74,31.45,167.032,-58.9258],[3104.59,198.253,30.7333,162.528,-57.6411],[3039.06,298.976,29.9833,157.822,-56.2053],[2969.98,399.229,29.2,152.931,-54.5968],[2897.29,498.283,28.3833,147.876,-52.7902],[2817.92,599.05,27.5,142.484,-50.6728],[2731.71,699.916,26.55,136.809,-48.1868],[2638.5,799.111,25.5333,130.928,-45.2614],[2533.48,898.86,24.4,124.682,-41.6442],[2411.63,998.998,23.1,118.048,-36.9872],[2262.9,1099.06,21.5333,111.046,-30.5988],[2053.96,1199.65,19.3667,103.76,-20.3561],[1685.54,1267.65,15.6333,100.097,-0.000151594]]], + [56,1297.3,[[3998.76,-2000.62,43.1167,233.934,-72.4117],[3966.83,-1900.84,42.6667,231.579,-72.0804],[3934.64,-1802.27,42.2167,229.194,-71.7396],[3901,-1701.34,41.75,226.69,-71.3756],[3867.08,-1601.73,41.2833,224.155,-71.0005],[3832.89,-1503.48,40.8167,221.59,-70.6137],[3797.2,-1403.16,40.3333,218.901,-70.2002],[3759.98,-1300.96,39.8333,216.086,-69.758],[3722.45,-1200.38,39.3333,213.238,-69.3002],[3684.62,-1101.44,38.8333,210.358,-68.8262],[3645.21,-1000.96,38.3167,207.35,-68.3184],[3605.47,-902.289,37.8,204.309,-67.7913],[3564.12,-802.36,37.2667,201.137,-67.2257],[3521.12,-701.389,36.7167,197.833,-66.6185],[3477.77,-602.559,36.1667,194.498,-65.9853],[3431.4,-500.117,35.5833,190.929,-65.2836],[3384.65,-400.157,35,187.329,-64.5489],[3337.5,-302.717,34.4167,183.701,-63.7789],[3287.24,-202.488,33.8,179.84,-62.9239],[3235.18,-102.569,33.1667,175.85,-61.9988],[3179.9,-0.743956,32.5,171.63,-60.9695],[3124.14,97.5904,31.8333,167.396,-59.8788],[3063.67,199.348,31.1167,162.835,-58.6321],[3001.24,299.171,30.3833,158.171,-57.2698],[2935.38,398.809,29.6167,153.309,-55.7434],[2864.58,499.556,28.8,148.165,-53.9916],[2790.2,598.421,27.95,142.87,-52.0165],[2707.73,699.828,27.0167,137.158,-49.6509],[2619.97,798.45,26.0333,131.3,-46.9116],[2520.79,898.624,24.9333,125.009,-43.5139],[2406.81,999.246,23.6833,118.306,-39.1794],[2271.45,1099.09,22.2167,111.247,-33.3905],[2092.02,1199.41,20.3,103.782,-24.6245],[1661.79,1297.3,15.8167,97.5774,-0.00832735]]], + [57,1326.54,[[3924.36,-2001.35,43.4167,234.25,-72.9003],[3893.25,-1901.17,42.9667,231.889,-72.5784],[3861.89,-1802.19,42.5167,229.497,-72.2472],[3829.1,-1700.82,42.05,226.985,-71.8935],[3796.06,-1600.78,41.5833,224.441,-71.5289],[3762.75,-1502.09,41.1167,221.866,-71.153],[3727.97,-1401.32,40.6333,219.167,-70.751],[3692.91,-1302.03,40.15,216.435,-70.3357],[3656.35,-1200.91,39.65,213.576,-69.8912],[3619.49,-1101.43,39.15,210.683,-69.4308],[3581.1,-1000.38,38.6333,207.66,-68.9376],[3542.39,-901.133,38.1167,204.603,-68.4256],[3502.1,-800.606,37.5833,201.414,-67.8762],[3461.49,-702.057,37.05,198.193,-67.3044],[3419.26,-602.533,36.5,194.837,-66.6899],[3375.39,-502.259,35.9333,191.347,-66.0286],[3329.86,-401.475,35.35,187.723,-65.3162],[3282.63,-300.431,34.75,183.963,-64.5476],[3235,-202.083,34.15,180.175,-63.74],[3184.3,-101.241,33.5167,176.15,-62.8423],[3131.82,-0.962258,32.8667,171.995,-61.8688],[3077.53,98.4514,32.2,167.716,-60.8111],[3020.03,199.035,31.5,163.21,-59.6305],[2960.64,297.919,30.7833,158.592,-58.341],[2896.53,399.047,30.0167,153.659,-56.8627],[2829.03,499.365,29.2167,148.536,-55.2005],[2758.07,598.123,28.3833,143.245,-53.3259],[2679.26,699.888,27.4667,137.509,-51.0772],[2595.34,799.291,26.5,131.595,-48.4701],[2501.8,899.404,25.4333,125.29,-45.2803],[2395.42,999.837,24.2333,118.571,-41.2533],[2271.36,1099.34,22.85,111.482,-35.9724],[2112.34,1199.81,21.1,103.876,-28.2333],[1856.46,1299.64,18.3333,96.1799,-13.6891],[1636.58,1326.54,16,95.0339,-0.0426972]]], + [58,1355.32,[[3847.3,-2003.66,43.7167,234.599,-73.3944],[3817.02,-1903.07,43.2667,232.232,-73.082],[3785.36,-1800,42.8,229.744,-72.7485],[3754.58,-1701.86,42.35,227.314,-72.4173],[3722.41,-1601.37,41.8833,224.763,-72.0634],[3689.99,-1502.23,41.4167,222.179,-71.6985],[3656.13,-1400.99,40.9333,219.47,-71.3083],[3622,-1301.22,40.45,216.728,-70.9051],[3587.6,-1202.97,39.9667,213.953,-70.4882],[3551.73,-1102.93,39.4667,211.049,-70.0417],[3514.37,-1001.29,38.95,208.012,-69.5634],[3476.69,-901.46,38.4333,204.941,-69.0667],[3437.48,-800.318,37.9,201.736,-68.5337],[3397.96,-701.15,37.3667,198.496,-67.979],[3356.86,-600.979,36.8167,195.121,-67.3826],[3314.16,-500.033,36.25,191.609,-66.7408],[3271.12,-401.415,35.6833,188.063,-66.0695],[3226.44,-302.363,35.1,184.382,-65.3454],[3178.81,-200.414,34.4833,180.459,-64.5409],[3130.78,-101.347,33.8667,176.506,-63.6935],[3079.72,-0.0903132,33.2167,172.313,-62.75],[3028.22,97.8683,32.5667,168.099,-61.751],[2972.29,199.619,31.8667,163.543,-60.6075],[2914.52,299.711,31.15,158.868,-59.3579],[2853.52,399.969,30.4,153.976,-57.9566],[2789.25,499.707,29.6167,148.882,-56.3808],[2721.63,598.197,28.8,143.605,-54.6031],[2647.81,698.317,27.9167,137.961,-52.5088],[2567.65,798.448,26.9667,132.003,-50.0348],[2478.17,899.882,25.9167,125.606,-47.0007],[2379.14,999.672,24.7667,118.91,-43.2722],[2264.48,1099.18,23.45,111.784,-38.4197],[2121.95,1199.49,21.8333,104.107,-31.5217],[1916.04,1299.88,19.5333,96.0168,-19.8684],[1608.38,1355.32,16.1667,92.4777,-0.00457596]]], + [59,1383.61,[[3765.41,-2000.08,43.9833,234.806,-73.8715],[3737.04,-1902.86,43.55,232.52,-73.5794],[3707.35,-1803.07,43.1,230.115,-73.2676],[3676.31,-1700.86,42.6333,227.588,-72.9345],[3646.14,-1603.55,42.1833,225.12,-72.6036],[3613.48,-1500.41,41.7,222.436,-72.237],[3581.69,-1402.22,41.2333,219.811,-71.8716],[3548.51,-1301.97,40.75,217.059,-71.4807],[3515.05,-1203.21,40.2667,214.274,-71.0765],[3480.17,-1102.66,39.7667,211.358,-70.6437],[3443.84,-1000.49,39.25,208.308,-70.1798],[3407.2,-900.11,38.7333,205.222,-69.6982],[3370.27,-801.55,38.2167,202.102,-69.1978],[3331.84,-701.746,37.6833,198.845,-68.6603],[3291.88,-600.913,37.1333,195.451,-68.0826],[3251.59,-502.234,36.5833,192.022,-67.4793],[3209.75,-402.851,36.0167,188.455,-66.8295],[3165.08,-300.188,35.4167,184.643,-66.108],[3120.02,-200.205,34.8167,180.796,-65.3496],[3073.33,-100.279,34.2,176.812,-64.5287],[3024.98,-0.687073,33.5667,172.691,-63.6387],[2974.93,98.2799,32.9167,168.436,-62.6718],[2921.87,198.724,32.2333,163.942,-61.5919],[2867.04,297.738,31.5333,159.323,-60.4122],[2807.78,399.401,30.7833,154.368,-59.0581],[2746.66,498.521,30.0167,149.309,-57.5679],[2680.98,598.687,29.2,143.944,-55.8501],[2610.62,698.778,28.3333,138.301,-53.8638],[2534.14,799.312,27.4,132.314,-51.5146],[2451.4,898.55,26.4,126.05,-48.7257],[2358.07,998.84,25.2833,119.313,-45.2364],[2251.06,1098.95,24.0167,112.122,-40.7368],[2121.4,1199.41,22.5,104.375,-34.4995],[1946.59,1299.68,20.4833,96.1093,-24.6605],[1580.3,1383.61,16.35,89.8871,-0.096346]]], + [60,1411.39,[[3682.01,-2001.89,44.2667,235.133,-74.3656],[3653.39,-1900.56,43.8167,232.753,-74.0716],[3624.53,-1800.41,43.3667,230.341,-73.7691],[3595.45,-1701.48,42.9167,227.897,-73.4578],[3565.05,-1600.16,42.45,225.33,-73.1251],[3534.41,-1500.18,41.9833,222.729,-72.782],[3503.53,-1401.56,41.5167,220.096,-72.4279],[3471.29,-1300.85,41.0333,217.334,-72.0491],[3438.79,-1201.65,40.55,214.538,-71.6574],[3404.9,-1100.62,40.05,211.609,-71.2379],[3370.74,-1001.24,39.55,208.645,-70.803],[3335.15,-900.3,39.0333,205.546,-70.3367],[3299.28,-801.176,38.5167,202.411,-69.8521],[3261.94,-700.784,37.9833,199.138,-69.3316],[3224.31,-602.381,37.45,195.829,-68.7893],[3184,-500.04,36.8833,192.276,-68.1876],[3143.35,-400.012,36.3167,188.686,-67.558],[3102.38,-302.333,35.75,185.062,-66.8985],[3058.63,-201.505,35.15,181.189,-66.1653],[3013.3,-100.701,34.5333,177.175,-65.3717],[2966.34,-0.198066,33.9,173.019,-64.5109],[2917.74,99.7132,33.25,168.726,-63.5753],[2867.48,198.73,32.5833,164.298,-62.5564],[2814.25,298.875,31.8833,159.628,-61.4158],[2758,399.526,31.15,154.725,-60.1359],[2699.97,497.884,30.4,149.708,-58.7279],[2636.22,599.639,29.5833,144.26,-57.0689],[2569.26,699.538,28.7333,138.626,-55.187],[2497.71,798.531,27.8333,132.731,-53.0011],[2418.78,898.593,26.85,126.414,-50.3571],[2330.97,998.894,25.7667,119.668,-47.0935],[2231.32,1098.92,24.55,112.466,-42.9293],[2112.59,1199.37,23.1167,104.682,-37.2536],[1958.76,1299.96,21.2833,96.2761,-28.6455],[1681.02,1399.76,18.0333,87.6993,-9.83075],[1547.85,1411.39,16.5,87.2926,-0.00796038]]], + [61,1438.62,[[3594.97,-2001.6,44.5333,235.405,-74.8546],[3568.22,-1903.66,44.1,233.108,-74.5806],[3540.22,-1803.11,43.65,230.691,-74.288],[3510.95,-1700.1,43.1833,228.15,-73.9755],[3482.51,-1602.01,42.7333,225.668,-73.665],[3452.77,-1501.59,42.2667,223.06,-73.333],[3422.8,-1402.53,41.8,220.418,-72.9905],[3391.52,-1301.36,41.3167,217.647,-72.624],[3359.98,-1201.69,40.8333,214.841,-72.2449],[3327.09,-1100.17,40.3333,211.902,-71.8389],[3293.94,-1000.3,39.8333,208.926,-71.4181],[3260.53,-902.092,39.3333,205.914,-70.9816],[3225.72,-802.389,38.8167,202.765,-70.5131],[3189.51,-701.393,38.2833,199.477,-70.0099],[3152.99,-602.38,37.75,196.152,-69.4855],[3115.04,-502.381,37.2,192.685,-68.9211],[3075.61,-401.624,36.6333,189.075,-68.3129],[3034.69,-300.348,36.05,185.32,-67.6566],[2993.43,-201.59,35.4667,181.529,-66.9673],[2950.64,-102.676,34.8667,177.595,-66.2215],[2905.11,-1.24225,34.2333,173.408,-65.3905],[2857.97,99.6345,33.5833,169.078,-64.4871],[2809.22,199.652,32.9167,164.608,-63.5027],[2758.83,298.494,32.2333,160.003,-62.4275],[2705.53,398.101,31.5167,155.155,-61.221],[2648.02,499.989,30.75,149.961,-59.8317],[2588.73,599.032,29.9667,144.66,-58.2957],[2525.09,698.7,29.1333,139.044,-56.5176],[2455.74,799.643,28.2333,133.034,-54.4102],[2381.84,898.533,27.2833,126.789,-51.9476],[2299.39,998.539,26.2333,120.061,-48.9023],[2205.51,1099.37,25.05,112.79,-45.0039],[2095.9,1199.91,23.6833,104.971,-39.7951],[1959.26,1299.92,22,96.5407,-32.1969],[1750.45,1399.95,19.4667,87.5085,-18.1719],[1515.52,1438.62,16.6667,84.6644,-0.0549473]]], + [62,1465.27,[[3505.36,-2003.05,44.8,235.712,-75.3495],[3478.43,-1900.99,44.35,233.32,-75.0742],[3451.28,-1800.11,43.9,230.896,-74.7911],[3423.92,-1700.43,43.45,228.439,-74.4995],[3396.34,-1601.96,43,225.95,-74.1993],[3367.52,-1501.14,42.5333,223.335,-73.8783],[3338.47,-1401.67,42.0667,220.685,-73.547],[3308.14,-1300.08,41.5833,217.905,-73.1926],[3278.63,-1203.41,41.1167,215.186,-72.8388],[3246.76,-1101.39,40.6167,212.237,-72.4466],[3214.63,-1001,40.1167,209.25,-72.0401],[3182.24,-902.285,39.6167,206.226,-71.6183],[3148.51,-802.048,39.1,203.064,-71.1656],[3113.41,-700.495,38.5667,199.76,-70.6793],[3078.03,-600.919,38.0333,196.418,-70.1725],[3041.24,-500.333,37.4833,192.932,-69.6269],[3004.15,-401.914,36.9333,189.408,-69.0566],[2965.64,-302.812,36.3667,185.74,-68.4414],[2924.52,-200.461,35.7667,181.816,-67.7571],[2883.06,-100.806,35.1667,177.854,-67.0366],[2840.1,-1.23407,34.55,173.746,-66.2553],[2795.61,97.9765,33.9167,169.493,-65.4063],[2748.39,199.016,33.25,164.983,-64.4573],[2699.58,298.918,32.5667,160.333,-63.4203],[2647.95,399.646,31.85,155.433,-62.256],[2594.66,498.365,31.1167,150.406,-60.9751],[2537.25,598.878,30.3333,145.032,-59.496],[2476.87,698.159,29.5167,139.442,-57.8179],[2410.97,799.115,28.6333,133.437,-55.8272],[2340.7,898.416,27.7,127.169,-53.4995],[2262.15,999.391,26.6667,120.374,-50.6151],[2175.16,1099.13,25.5333,113.175,-47.0245],[2074.32,1199.15,24.2333,105.385,-42.2685],[1950.09,1299.85,22.65,96.8548,-35.4138],[1777.75,1399.43,20.4833,87.6767,-23.9359],[1480.45,1465.27,16.8167,82.0213,-0.0224548]]], + [63,1491.3,[[3412.22,-2002.46,45.05,235.964,-75.8402],[3386.15,-1900.06,44.6,233.567,-75.5743],[3360.84,-1802.56,44.1667,231.227,-75.3109],[3334.35,-1702.49,43.7167,228.765,-75.0295],[3307.66,-1603.62,43.2667,226.27,-74.7397],[3279.76,-1502.39,42.8,223.648,-74.4298],[3251.64,-1402.5,42.3333,220.991,-74.1101],[3222.28,-1300.48,41.85,218.202,-73.7679],[3193.71,-1203.38,41.3833,215.475,-73.4264],[3162.86,-1100.9,40.8833,212.515,-73.0478],[3131.76,-1000.05,40.3833,209.517,-72.6552],[3100.41,-900.864,39.8833,206.481,-72.2479],[3067.75,-800.136,39.3667,203.305,-71.8108],[3034.84,-701.231,38.85,200.09,-71.356],[3000.59,-601.076,38.3167,196.732,-70.8671],[2966.07,-502.922,37.7833,193.336,-70.357],[2929.09,-400.859,37.2167,189.686,-69.7904],[2891.81,-301.123,36.65,185.996,-69.1966],[2853.13,-200.92,36.0667,182.158,-68.5548],[2813.01,-100.505,35.4667,178.17,-67.8602],[2771.43,-0.144061,34.85,174.032,-67.1067],[2728.38,99.8848,34.2167,169.746,-66.2877],[2683.83,199.29,33.5667,165.312,-65.3955],[2637.76,297.766,32.9,160.734,-64.4211],[2587.81,399.641,32.1833,155.784,-63.3002],[2536.27,499.545,31.45,150.699,-62.0662],[2481.91,599.226,30.6833,145.372,-60.6719],[2423.51,699.968,29.8667,139.702,-59.0556],[2362.18,798.774,29.0167,133.826,-57.212],[2295.45,898.311,28.1,127.548,-55.0146],[2221.98,998.463,27.1,120.813,-52.3343],[2139.13,1099.74,25.9833,113.504,-48.9377],[2045.45,1199.69,24.7333,105.708,-44.5461],[1933.06,1299.6,23.25,97.2174,-38.3894],[1783.45,1399.57,21.3,87.9019,-28.5042],[1444.1,1491.3,16.9667,79.3542,-0.0206544]]], + [64,1516.7,[[3316.58,-2003.65,45.3,236.251,-76.3367],[3291.37,-1900.91,44.85,233.849,-76.0803],[3266.9,-1803.07,44.4167,231.504,-75.8262],[3241.3,-1702.64,43.9667,229.036,-75.5548],[3215.49,-1603.42,43.5167,226.535,-75.2753],[3188.52,-1501.81,43.05,223.905,-74.9764],[3161.33,-1401.54,42.5833,221.241,-74.668],[3133.92,-1302.63,42.1167,218.54,-74.3495],[3105.32,-1201.63,41.6333,215.707,-74.0084],[3076.49,-1102.14,41.15,212.836,-73.6555],[3046.42,-1000.81,40.65,209.827,-73.2772],[3016.12,-901.135,40.15,206.78,-72.8846],[2985.58,-803.138,39.65,203.695,-72.4771],[2952.74,-700.485,39.1167,200.363,-72.0249],[2920.67,-602.914,38.6,197.096,-71.5686],[2886.26,-501.106,38.05,193.577,-71.0617],[2851.57,-401.451,37.5,190.016,-70.5317],[2815.54,-301.063,36.9333,186.306,-69.9598],[2778.15,-200.183,36.35,182.445,-69.3416],[2740.46,-101.837,35.7667,178.544,-68.6913],[2700.29,-0.666575,35.15,174.379,-67.9662],[2659.79,97.5871,34.5333,170.175,-67.1992],[2616.75,197.947,33.8833,165.707,-66.3415],[2571.12,299.854,33.2,160.972,-65.3802],[2525.11,398.016,32.5167,156.208,-64.3519],[2475.32,499.132,31.7833,151.069,-63.1662],[2423.96,597.949,31.0333,145.796,-61.8557],[2368.71,698.154,30.2333,140.166,-60.3362],[2309.49,798.65,29.3833,134.198,-58.5667],[2246.22,898.251,28.4833,127.922,-56.4953],[2176.47,998.948,27.5,121.154,-53.9653],[2098.88,1099.91,26.4167,113.868,-50.8036],[2012.1,1199.35,25.2167,106.11,-46.7643],[1908.56,1299.71,23.8,97.5688,-41.1362],[1776.68,1399.38,22.0167,88.2236,-32.4961],[1546.26,1500,18.95,77.944,-13.3176],[1406.46,1516.7,17.1167,76.6635,-0.0532987]]], + [65,1541.43,[[3217.54,-2002.86,45.5333,236.483,-76.8299],[3194.1,-1903.59,45.1,234.166,-76.592],[3169.57,-1801.65,44.65,231.726,-76.338],[3144.85,-1700.9,44.2,229.252,-76.0764],[3119.93,-1601.35,43.75,226.744,-75.807],[3094.82,-1503.02,43.3,224.202,-75.5294],[3068.58,-1402.36,42.8333,221.53,-75.2325],[3042.12,-1303.05,42.3667,218.822,-74.9258],[3014.51,-1201.64,41.8833,215.98,-74.5975],[2986.68,-1101.72,41.4,213.1,-74.2576],[2958.63,-1003.32,40.9167,210.182,-73.9056],[2929.39,-903.15,40.4167,207.125,-73.5281],[2898.92,-801.395,39.9,203.925,-73.1228],[2868.22,-701.453,39.3833,200.684,-72.7011],[2836.27,-600.218,38.85,197.297,-72.2476],[2804.06,-500.972,38.3167,193.869,-71.7744],[2770.58,-400.74,37.7667,190.291,-71.2644],[2736.83,-302.688,37.2167,186.671,-70.7305],[2700.75,-201.112,36.6333,182.789,-70.1363],[2664.38,-102.062,36.05,178.865,-69.5111],[2625.62,-0.140848,35.4333,174.673,-68.8139],[2586.54,98.8715,34.8167,170.44,-68.0761],[2546.07,197.486,34.1833,166.053,-67.2727],[2503.13,297.877,33.5167,161.396,-66.3722],[2457.66,399.461,32.8167,156.471,-65.3604],[2410.72,499.341,32.1,151.398,-64.2468],[2361.18,599.333,31.35,146.066,-62.9878],[2308.99,698.745,30.5667,140.484,-61.5586],[2253,798.781,29.7333,134.548,-59.8936],[2193.12,898.282,28.85,128.284,-57.9439],[2127,999.343,27.8833,121.496,-55.5595],[2054.52,1099.71,26.8333,114.259,-52.6242],[1973.2,1199.56,25.6667,106.471,-48.8657],[1878.15,1299.52,24.3167,97.958,-43.7383],[1759.49,1399.53,22.65,88.5508,-36.0295],[1580.24,1499.71,20.1667,78.0722,-21.3025],[1367.54,1541.42,17.2667,73.9498,-0.124529]]], + [66,1565.45,[[3115.19,-2000.08,45.75,236.663,-77.3204],[3092.6,-1900.54,45.3167,234.34,-77.0914],[3069.83,-1802.08,44.8833,231.985,-76.856],[3046,-1700.99,44.4333,229.505,-76.6045],[3021.98,-1601.1,43.9833,226.991,-76.3454],[2997.78,-1502.43,43.5333,224.443,-76.0784],[2972.48,-1401.41,43.0667,221.764,-75.7928],[2946.99,-1301.74,42.6,219.048,-75.4978],[2921.29,-1203.44,42.1333,216.296,-75.1931],[2894.47,-1103.09,41.65,213.408,-74.8665],[2866.51,-1000.88,41.15,210.38,-74.5164],[2838.32,-900.302,40.65,207.311,-74.1532],[2809.9,-801.396,40.15,204.202,-73.776],[2780.31,-700.972,39.6333,200.949,-73.3708],[2750.48,-602.383,39.1167,197.655,-72.9488],[2719.46,-502.567,38.5833,194.212,-72.4945],[2687.2,-401.742,38.0333,190.618,-72.0048],[2653.7,-300.135,37.4667,186.87,-71.4763],[2619.92,-200.87,36.9,183.079,-70.9215],[2584.88,-101.171,36.3167,179.132,-70.321],[2548.54,-1.29135,35.7167,175.028,-69.6697],[2510.9,98.5005,35.1,170.767,-68.9618],[2471.92,197.924,34.4667,166.349,-68.1907],[2430.55,299.174,33.8,161.656,-67.3262],[2387.79,399.275,33.1167,156.807,-66.3783],[2343.63,497.896,32.4167,151.805,-65.3358],[2295.92,599.091,31.6667,146.417,-64.1295],[2245.67,699.772,30.8833,140.769,-62.7592],[2192.82,799.201,30.0667,134.873,-61.195],[2136.26,898.444,29.2,128.631,-59.3626],[2073.71,999.696,28.25,121.837,-57.1192],[2006.16,1099.19,27.2333,114.669,-54.4012],[1930.15,1199.14,26.1,106.882,-50.9143],[1842.1,1299.33,24.8,98.3543,-46.2029],[1734.86,1399.22,23.2333,88.9466,-39.2987],[1583.52,1499.78,21.05,78.3248,-27.0011],[1326.16,1565.45,17.4,71.2195,-0.1076]]], + [67,1588.74,[[3011.31,-2003.05,45.9833,236.966,-77.8257],[2989.57,-1903.19,45.55,234.64,-77.606],[2966.82,-1800.62,45.1,232.189,-77.3713],[2944.74,-1702.97,44.6667,229.797,-77.1387],[2921.64,-1602.73,44.2167,227.278,-76.8901],[2897.49,-1500.07,43.75,224.628,-76.6243],[2874.02,-1402.32,43.3,222.038,-76.3598],[2849.49,-1302.28,42.8333,219.316,-76.0767],[2823.88,-1200.1,42.35,216.457,-75.7736],[2798.97,-1102.86,41.8833,213.659,-75.4708],[2772.06,-1000.23,41.3833,210.622,-75.1348],[2745.85,-902.578,40.9,207.646,-74.798],[2718.52,-803.196,40.4,204.527,-74.4363],[2690.06,-702.275,39.8833,201.263,-74.0477],[2660.44,-600.017,39.35,197.848,-73.6297],[2631.52,-502.843,38.8333,194.499,-73.2074],[2600.49,-401.472,38.2833,190.889,-72.7378],[2569.22,-302.268,37.7333,187.235,-72.246],[2536.74,-202.361,37.1667,183.425,-71.7145],[2503.04,-101.993,36.5833,179.458,-71.1392],[2468.09,-1.41857,35.9833,175.33,-70.515],[2431.88,99.0946,35.3667,171.043,-69.8365],[2394.4,199.266,34.7333,166.594,-69.0972],[2355.61,298.804,34.0833,161.985,-68.2894],[2314.5,399.819,33.4,157.096,-67.3815],[2272.03,499.386,32.7,152.05,-66.3825],[2227.18,599.384,31.9667,146.729,-65.2527],[2179.89,699.14,31.2,141.14,-63.9695],[2129.09,799.937,30.3833,135.17,-62.4731],[2075.77,898.771,29.5333,128.959,-60.7538],[2017.77,998.305,28.6167,122.29,-58.6866],[1953.92,1098.41,27.6167,115.093,-56.1369],[1881.98,1199.59,26.5,107.219,-52.859],[1800.66,1299.37,25.25,98.7305,-48.5387],[1703.18,1399,23.7667,89.346,-42.3175],[1571.31,1499.85,21.7833,78.6447,-31.7141],[1283.6,1588.74,17.5333,68.466,-0.129467]]], + [68,1611.28,[[2903.39,-2000.25,46.1833,237.128,-78.3204],[2882.51,-1900.13,45.75,234.796,-78.1096],[2861.47,-1801.09,45.3167,232.432,-77.893],[2840.27,-1703.13,44.8833,230.034,-77.6701],[2818.08,-1602.58,44.4333,227.51,-77.4318],[2795.72,-1503.24,43.9833,224.95,-77.1863],[2772.35,-1401.52,43.5167,222.258,-76.9236],[2748.79,-1301.14,43.05,219.528,-76.6522],[2725.05,-1202.12,42.5833,216.76,-76.3719],[2700.27,-1101.02,42.1,213.855,-76.0714],[2675.3,-1001.43,41.6167,210.909,-75.7603],[2649.26,-900.007,41.1167,207.821,-75.4264],[2623.01,-800.246,40.6167,204.691,-75.0797],[2596.56,-702.169,40.1167,201.52,-74.7193],[2569.02,-602.619,39.6,198.201,-74.3317],[2540.36,-501.801,39.0667,194.73,-73.9144],[2511.47,-402.987,38.5333,191.215,-73.4785],[2480.54,-300.226,37.9667,187.433,-72.9934],[2450.27,-202.716,37.4167,183.717,-72.4995],[2417.92,-101.732,36.8333,179.729,-71.9488],[2384.37,-0.517407,36.2333,175.579,-71.3514],[2350.55,97.9637,35.6333,171.383,-70.7199],[2314.57,198.906,35,166.906,-70.013],[2277.34,299.242,34.35,162.264,-69.2404],[2238.85,398.666,33.6833,157.459,-68.3938],[2198.1,499.205,32.9833,152.37,-67.4393],[2156.03,597.985,32.2667,147.123,-66.3848],[2110.66,698.934,31.5,141.476,-65.1598],[2062.92,798.988,30.7,135.559,-63.7607],[2011.76,899.293,29.85,129.264,-62.1199],[1957.13,998.656,28.95,122.613,-60.1825],[1896.91,1099.05,27.9667,115.402,-57.7905],[1829.97,1199.63,26.8833,107.583,-54.7594],[1754.08,1299.86,25.6667,99.0624,-50.7552],[1664.84,1399.34,24.25,89.6927,-45.1032],[1549.16,1499.35,22.4333,79.0639,-35.8986],[1338.02,1599.81,19.1667,66.8742,-12.8542],[1238.76,1611.28,17.65,65.6949,-0.052743]]], + [69,1633.03,[[2793.96,-2003.28,46.4,237.415,-78.8292],[2773.95,-1902.86,45.9667,235.08,-78.6278],[2753.79,-1803.51,45.5333,232.712,-78.4206],[2732.69,-1701.49,45.0833,230.217,-78.1993],[2711.43,-1600.65,44.6333,227.687,-77.9713],[2689.99,-1501.03,44.1833,225.121,-77.7363],[2668.4,-1402.63,43.7333,222.519,-77.494],[2645.82,-1301.9,43.2667,219.783,-77.2346],[2623.08,-1202.53,42.8,217.008,-76.9665],[2599.33,-1101.06,42.3167,214.095,-76.6793],[2575.4,-1001.09,41.8333,211.141,-76.3818],[2551.28,-902.648,41.35,208.147,-76.0734],[2526.14,-802.438,40.85,205.008,-75.7422],[2499.95,-700.652,40.3333,201.721,-75.3864],[2473.55,-600.687,39.8167,198.389,-75.0157],[2446.95,-502.57,39.3,195.014,-74.6293],[2418.41,-400.185,38.75,191.374,-74.1995],[2390.52,-302.964,38.2167,187.799,-73.7633],[2360.64,-201.923,37.65,183.954,-73.2774],[2329.65,-100.376,37.0667,179.946,-72.7511],[2298.4,-1.36777,36.4833,175.89,-72.1963],[2266.01,97.78,35.8833,171.67,-71.5935],[2231.54,199.433,35.25,167.166,-70.9185],[2196.8,297.956,34.6167,162.614,-70.2002],[2159.93,398.231,33.95,157.774,-69.3927],[2120.9,499.674,33.25,152.646,-68.482],[2080.61,599.387,32.5333,147.352,-67.4754],[2038.11,699.18,31.7833,141.774,-66.332],[1993.34,798.357,31,135.917,-65.0264],[1945.32,898.111,30.1667,129.668,-63.4952],[1893.02,999.084,29.2667,122.921,-61.6509],[1836.35,1099.6,28.3,115.708,-59.4115],[1774.25,1199.31,27.25,107.967,-56.6173],[1703.63,1299.7,26.0667,99.4469,-52.9188],[1621.28,1399.58,24.7,90.049,-47.7449],[1517.77,1499.43,23,79.4333,-39.5875],[1355.37,1599.77,20.3667,67.0845,-22.2033],[1192.85,1633.03,17.7667,62.9008,-0.0136976]]], + [70,1653.97,[[2680.73,-2000.56,46.5833,237.56,-79.3288],[2662.33,-1903.75,46.1667,235.311,-79.1439],[2642.31,-1800.31,45.7167,232.847,-78.9385],[2622.88,-1701.81,45.2833,230.44,-78.735],[2602.55,-1600.69,44.8333,227.905,-78.5174],[2582.05,-1500.77,44.3833,225.333,-78.2932],[2561.4,-1402.07,43.9333,222.725,-78.0619],[2539.82,-1301.02,43.4667,219.982,-77.8144],[2518.07,-1201.33,43,217.201,-77.5585],[2496.15,-1103.02,42.5333,214.381,-77.294],[2473.28,-1002.67,42.05,211.42,-77.0103],[2449.42,-900.451,41.55,208.314,-76.706],[2426.19,-803.213,41.0667,205.27,-76.4005],[2401.15,-701,40.55,201.972,-76.0612],[2375.92,-600.604,40.0333,198.629,-75.7077],[2350.49,-502.053,39.5167,195.241,-75.3392],[2324.03,-402.285,38.9833,191.699,-74.942],[2296.54,-301.52,38.4333,187.998,-74.5132],[2268.82,-202.941,37.8833,184.249,-74.0636],[2239.2,-100.811,37.3,180.223,-73.5622],[2209.33,-1.21489,36.7167,176.147,-73.0335],[2178.37,98.5442,36.1167,171.905,-72.4589],[2146.3,198.196,35.5,167.494,-71.8329],[2113.09,297.46,34.8667,162.914,-71.1491],[2077.86,398.523,34.2,158.042,-70.3801],[2041.46,498.411,33.5167,152.999,-69.534],[2002.96,599.086,32.8,147.662,-68.5766],[1962.35,699.895,32.05,142.033,-67.4883],[1920.49,798.064,31.2833,136.242,-66.2727],[1874.62,899.088,30.45,129.921,-64.8161],[1825.58,999.615,29.5667,123.209,-63.0943],[1773.32,1098.39,28.6333,116.133,-61.0417],[1714.96,1198.68,27.6,108.364,-58.4351],[1649.43,1298.93,26.45,99.8751,-55.0311],[1572.74,1399.95,25.1167,90.3868,-50.2523],[1479.79,1499.26,23.5167,79.8367,-42.9959],[1343.62,1599.98,21.2,67.3865,-28.6282],[1145.87,1653.97,17.8833,60.084,-0.018084]]], + [71,1674.08,[[2565.99,-2003.75,46.7833,237.832,-79.8419],[2547.75,-1902.81,46.35,235.49,-79.6588],[2529.36,-1802.94,45.9167,233.113,-79.4705],[2510.12,-1700.36,45.4667,230.609,-79.2694],[2491.44,-1602.71,45.0333,228.163,-79.0699],[2471.9,-1502.48,44.5833,225.587,-78.8565],[2452.21,-1403.47,44.1333,222.974,-78.6365],[2431.63,-1302.1,43.6667,220.226,-78.401],[2410.89,-1202.08,43.2,217.438,-78.1576],[2389.99,-1103.44,42.7333,214.612,-77.9058],[2368.17,-1002.74,42.25,211.643,-77.6359],[2345.43,-900.157,41.75,208.528,-77.3463],[2323.27,-802.563,41.2667,205.475,-77.0556],[2300.17,-703.248,40.7667,202.274,-76.7432],[2276.11,-602.406,40.25,198.922,-76.4073],[2251.08,-500.241,39.7167,195.413,-76.0454],[2225.85,-400.065,39.1833,191.856,-75.6672],[2200.43,-301.91,38.65,188.253,-75.2716],[2174,-202.836,38.1,184.489,-74.844],[2145.76,-100.176,37.5167,180.446,-74.3672],[2117.28,-0.0443873,36.9333,176.35,-73.8643],[2088.58,97.5212,36.35,172.205,-73.3333],[2058.01,197.83,35.7333,167.77,-72.7386],[2026.36,297.774,35.1,163.164,-72.0888],[1992.77,399.56,34.4333,158.26,-71.3578],[1958.91,497.787,33.7667,153.306,-70.5737],[1922.23,599.352,33.05,147.928,-69.6645],[1884.38,698.892,32.3167,142.377,-68.6546],[1844.49,798.14,31.55,136.532,-67.5014],[1801.65,898.363,30.7333,130.27,-66.1478],[1755.8,998.425,29.8667,123.602,-64.5477],[1706.02,1098.82,28.9333,116.423,-62.6031],[1651.31,1199.36,27.9167,108.643,-60.1724],[1590.7,1299.04,26.8,100.214,-57.0429],[1520.41,1399.46,25.5167,90.8009,-52.6985],[1435.62,1499.32,23.9833,80.2107,-46.1429],[1318.21,1599.98,21.8833,67.7589,-33.9152],[1097.83,1674.08,18,57.2449,-0.0727181]]], + [72,1693.32,[[2447.69,-2001.22,46.95,237.963,-80.3471],[2430.33,-1900.06,46.5167,235.616,-80.1731],[2413.52,-1803.81,46.1,233.327,-80.0012],[2395.22,-1700.97,45.65,230.819,-79.8102],[2377.46,-1603.05,45.2167,228.369,-79.6209],[2358.87,-1502.55,44.7667,225.788,-79.4183],[2340.15,-1403.26,44.3167,223.169,-79.2095],[2320.57,-1301.6,43.85,220.415,-78.9858],[2300.85,-1201.29,43.3833,217.621,-78.7547],[2280.97,-1102.34,42.9167,214.787,-78.5157],[2260.22,-1001.33,42.4333,211.811,-78.2594],[2239.31,-901.831,41.95,208.792,-77.9937],[2217.51,-800.517,41.45,205.625,-77.7084],[2195.55,-700.872,40.95,202.414,-77.4117],[2173.41,-602.921,40.45,199.159,-77.1031],[2149.61,-500.335,39.9167,195.639,-76.7598],[2126.37,-402.848,39.4,192.182,-76.4125],[2101.44,-301.15,38.85,188.453,-76.0257],[2076.32,-201.629,38.3,184.675,-75.62],[2050.23,-101.403,37.7333,180.73,-75.1807],[2023.16,-0.715235,37.15,176.617,-74.7041],[1995.88,97.4116,36.5667,172.452,-74.2008],[1966.81,198.319,35.95,167.995,-73.6369],[1936.72,298.885,35.3167,163.362,-73.0208],[1905.59,398.813,34.6667,158.553,-72.3454],[1873.41,497.797,34,153.566,-71.6027],[1839.35,597.849,33.3,148.276,-70.7621],[1803.38,698.339,32.5667,142.682,-69.8066],[1765.47,798.589,31.8,136.785,-68.715],[1724.75,899.89,30.9833,130.459,-67.4327],[1682.02,999.222,30.1333,123.844,-65.9464],[1635.56,1099.26,29.2167,116.697,-64.1396],[1584.44,1199.88,28.2167,108.921,-61.8792],[1528.58,1298.72,27.1333,100.577,-59.0131],[1463.56,1399.41,25.8833,91.1581,-55.0252],[1386.55,1499.03,24.4167,80.6168,-49.1274],[1283.99,1599.3,22.4833,68.2345,-38.5946],[1047.84,1693.32,18.1,54.3878,-0.014407]]], + [73,1711.68,[[2327.3,-2000.77,47.1167,238.132,-80.8586],[2311.48,-1903.28,46.7,235.872,-80.7004],[2294.9,-1802.92,46.2667,233.488,-80.5312],[2278.2,-1703.64,45.8333,231.069,-80.3571],[2260.71,-1601.7,45.3833,228.52,-80.171],[2243.09,-1500.95,44.9333,225.934,-79.9792],[2225.34,-1401.42,44.4833,223.31,-79.7814],[2207.44,-1303.12,44.0333,220.649,-79.5774],[2188.75,-1202.5,43.5667,217.85,-79.3587],[2169.9,-1103.25,43.1,215.01,-79.1327],[2150.23,-1001.91,42.6167,212.027,-78.8902],[2130.41,-902.087,42.1333,209.001,-78.6389],[2109.75,-800.431,41.6333,205.826,-78.3689],[2088.92,-700.44,41.1333,202.606,-78.0882],[2067.94,-602.14,40.6333,199.341,-77.7962],[2046.08,-502.366,40.1167,195.921,-77.4817],[2023.35,-401.324,39.5833,192.341,-77.1427],[2000.44,-302.293,39.05,188.712,-76.7879],[1976.62,-202.307,38.5,184.92,-76.4044],[1951.9,-101.596,37.9333,180.961,-75.9892],[1926.24,-0.405734,37.35,176.83,-75.5386],[1900.38,98.2292,36.7667,172.646,-75.0627],[1872.83,199.679,36.15,168.167,-74.5294],[1845.07,298.186,35.5333,163.633,-73.9623],[1815.57,398.782,34.8833,158.797,-73.3244],[1785.07,498.457,34.2167,153.779,-72.6226],[1752.79,599.243,33.5167,148.453,-71.8281],[1719.49,698.256,32.8,142.945,-70.946],[1683.56,799.432,32.0333,136.999,-69.9152],[1645.78,899.698,31.2333,130.744,-68.7296],[1606.09,998.288,30.4,124.19,-67.3562],[1562.08,1099.73,29.4833,116.954,-65.6532],[1515.28,1198.65,28.5167,109.325,-63.596],[1462.39,1299.5,27.4333,100.827,-60.8987],[1402.46,1399.98,26.2167,91.4384,-57.244],[1332.04,1499.68,24.8,80.9034,-51.8883],[1240.86,1599.84,22.9833,68.5465,-42.6104],[1076.49,1699.78,19.75,53.3924,-16.4951],[996.895,1711.68,18.2,51.5092,-0.00643602]]], + [74,1729.12,[[2204.85,-2002.46,47.2833,238.339,-81.3762],[2189.3,-1900.85,46.85,235.986,-81.2208],[2173.64,-1800.3,46.4167,233.597,-81.0611],[2157.85,-1700.82,45.9833,231.173,-80.8968],[2141.94,-1602.43,45.55,228.715,-80.7277],[2125.3,-1501.43,45.1,226.124,-80.5468],[2108.52,-1401.65,44.65,223.496,-80.3603],[2091.62,-1303.09,44.2,220.829,-80.1678],[2073.96,-1202.2,43.7333,218.024,-79.9616],[2056.16,-1102.67,43.2667,215.178,-79.7484],[2037.58,-1001.05,42.7833,212.188,-79.5197],[2018.85,-900.934,42.3,209.155,-79.2826],[1999.98,-802.349,41.8167,206.078,-79.0366],[1980.31,-701.997,41.3167,202.85,-78.7721],[1959.83,-600.074,40.8,199.467,-78.4876],[1939.85,-503.178,40.3,196.147,-78.2007],[1918.38,-401.74,39.7667,192.557,-77.8811],[1896.74,-302.309,39.2333,188.917,-77.5468],[1874.25,-201.905,38.6833,185.111,-77.1854],[1850.89,-100.761,38.1167,181.137,-76.7939],[1827.35,-1.988,37.55,177.109,-76.3816],[1802.24,99.9711,36.95,172.787,-75.9204],[1776.92,199.19,36.35,168.409,-75.4315],[1750.7,298.267,35.7333,163.853,-74.8975],[1722.84,399.47,35.0833,158.991,-74.2966],[1694.04,499.774,34.4167,153.944,-73.6353],[1664.29,598.857,33.7333,148.712,-72.905],[1632.84,698.656,33.0167,143.166,-72.0748],[1599.66,798.516,32.2667,137.304,-71.1264],[1563.98,899.791,31.4667,130.996,-70.0117],[1526.52,999.442,30.6333,124.377,-68.7195],[1486.48,1098.46,29.75,117.324,-67.1777],[1442.31,1198.92,28.7833,109.591,-65.2469],[1393.93,1298.52,27.7333,101.216,-62.7952],[1338.93,1398.71,26.55,91.8847,-59.4709],[1274.07,1499.4,25.1667,81.2791,-54.5853],[1192.81,1599.33,23.45,68.9899,-46.4167],[1062.76,1699.86,20.7333,53.7207,-26.2982],[945.019,1729.12,18.3,48.6093,-0.0583974]]], + [75,1745.63,[[2079.81,-2002.36,47.4333,238.496,-81.8936],[2065.18,-1900.55,47,236.139,-81.7477],[2051.01,-1803.65,46.5833,233.84,-81.6034],[2035.58,-1700.11,46.1333,231.32,-81.4431],[2020.61,-1601.51,45.7,228.857,-81.2842],[2004.95,-1500.29,45.25,226.261,-81.1142],[1989.16,-1400.28,44.8,223.628,-80.9389],[1973.26,-1301.5,44.35,220.956,-80.758],[1956.63,-1200.37,43.8833,218.145,-80.5641],[1939.88,-1100.61,43.4167,215.293,-80.3637],[1923,-1002.23,42.95,212.399,-80.1562],[1905.39,-901.807,42.4667,209.359,-79.9336],[1887.63,-802.915,41.9833,206.276,-79.7026],[1869.13,-702.244,41.4833,203.04,-79.4542],[1850.48,-603.257,40.9833,199.759,-79.1959],[1831.06,-502.765,40.4667,196.319,-78.9176],[1810.85,-400.975,39.9333,192.719,-78.6175],[1790.49,-301.189,39.4,189.067,-78.3034],[1769.33,-200.417,38.85,185.248,-77.9639],[1748.01,-101.841,38.3,181.377,-77.6072],[1725.87,-2.6098,37.7333,177.334,-77.2204],[1702.24,99.8388,37.1333,172.996,-76.7875],[1678.42,199.552,36.5333,168.599,-76.3287],[1653.76,299.142,35.9167,164.022,-75.8275],[1628.23,398.324,35.2833,159.261,-75.2782],[1601.14,499.282,34.6167,154.188,-74.6583],[1573.16,599.041,33.9333,148.925,-73.9735],[1543.57,699.558,33.2167,143.343,-73.1948],[1513.06,797.99,32.4833,137.57,-72.3254],[1480.22,898.119,31.7,131.345,-71.3039],[1444.99,998.867,30.8667,124.666,-70.0949],[1407.35,1099.06,29.9833,117.539,-68.6512],[1366.53,1199.13,29.0333,109.845,-66.8745],[1321.77,1298.78,28,101.478,-64.6175],[1270.8,1399.6,26.8333,92.1003,-61.552],[1212.04,1499.42,25.5,81.6048,-57.1553],[1138.67,1599.83,23.85,69.2828,-49.8442],[1030.06,1700,21.4333,54.0815,-33.3375],[892.225,1745.63,18.4,45.6893,-0.182482]]], + [76,1761.19,[[1952.3,-2000.52,47.5667,238.602,-82.4117],[1939.12,-1902.43,47.15,236.333,-82.2804],[1925.31,-1801.46,46.7167,233.939,-82.1401],[1911.4,-1701.56,46.2833,231.508,-81.9957],[1897.38,-1602.74,45.85,229.042,-81.8471],[1882.71,-1501.29,45.4,226.443,-81.6881],[1867.92,-1401.04,44.95,223.806,-81.5241],[1853.02,-1302.02,44.5,221.13,-81.3549],[1837.45,-1200.65,44.0333,218.313,-81.1737],[1821.76,-1100.64,43.5667,215.456,-80.9862],[1805.95,-1002,43.1,212.557,-80.7922],[1789.45,-901.315,42.6167,209.51,-80.5839],[1772.82,-802.156,42.1333,206.42,-80.3678],[1755.49,-701.206,41.6333,203.176,-80.1356],[1738.02,-601.936,41.1333,199.886,-79.8938],[1719.83,-501.151,40.6167,196.437,-79.6335],[1701.5,-402.214,40.1,192.939,-79.3617],[1682.43,-302.056,39.5667,189.277,-79.0683],[1662.61,-200.895,39.0167,185.447,-78.751],[1642.64,-101.928,38.4667,181.564,-78.4176],[1621.91,-2.28937,37.9,177.507,-78.0561],[1600.39,97.7738,37.3167,173.274,-77.6631],[1578.1,198.004,36.7167,168.861,-77.2348],[1555,298.129,36.1,164.265,-76.7669],[1531.1,397.867,35.4667,159.483,-76.2541],[1505.73,499.416,34.8,154.384,-75.6752],[1479.53,599.787,34.1167,149.092,-75.0355],[1452.48,698.646,33.4167,143.608,-74.3255],[1423.92,797.85,32.6833,137.797,-73.5145],[1393.17,898.81,31.9,131.525,-72.561],[1360.85,998.476,31.0833,124.925,-71.4557],[1325.61,1099.75,30.2,117.73,-70.1092],[1288.08,1199.29,29.2667,110.084,-68.4816],[1246.86,1298.83,28.25,101.739,-66.4132],[1200.53,1398.72,27.1167,92.4702,-63.6451],[1146.24,1499.88,25.8,81.8599,-59.6123],[1081.07,1599.07,24.2333,69.7253,-53.1842],[987.954,1699.48,22.0167,54.5569,-39.2995],[837.807,1761.19,18.4833,42.7515,-0.175399]]], + [77,1775.78,[[1822.96,-2000.86,47.7,238.748,-82.9358],[1810.68,-1902.6,47.2833,236.477,-82.8136],[1797.81,-1801.44,46.85,234.079,-82.6829],[1784.85,-1701.35,46.4167,231.645,-82.5485],[1771.78,-1602.34,45.9833,229.175,-82.4102],[1758.11,-1500.69,45.5333,226.573,-82.2622],[1744.33,-1400.24,45.0833,223.931,-82.1096],[1730.45,-1301.02,44.6333,221.25,-81.9521],[1716.46,-1203.04,44.1833,218.53,-81.7895],[1701.84,-1102.76,43.7167,215.668,-81.6152],[1686.58,-1000.35,43.2333,212.66,-81.4282],[1671.74,-902.894,42.7667,209.713,-81.2411],[1655.71,-800.051,42.2667,206.509,-81.0331],[1640.09,-702.208,41.7833,203.367,-80.8242],[1623.82,-602.641,41.2833,200.069,-80.5994],[1606.87,-501.544,40.7667,196.612,-80.3573],[1589.79,-402.295,40.25,193.106,-80.1045],[1572.03,-301.81,39.7167,189.434,-79.8316],[1553.56,-200.309,39.1667,185.593,-79.5364],[1534.96,-100.997,38.6167,181.697,-79.2263],[1515.64,-1.00185,38.05,177.627,-78.8899],[1495.59,99.4324,37.4667,173.378,-78.5242],[1475.4,197.29,36.8833,169.072,-78.137],[1453.88,297.895,36.2667,164.458,-77.7022],[1431.61,398.129,35.6333,159.655,-77.2256],[1408.58,497.697,34.9833,154.661,-76.7014],[1384.18,598.707,34.3,149.344,-76.1077],[1358.98,698.227,33.6,143.829,-75.4485],[1332.38,798.129,32.8667,137.983,-74.6952],[1303.73,899.843,32.0833,131.668,-73.8093],[1274.25,998.309,31.2833,125.153,-72.8038],[1242.06,1098.71,30.4167,118.031,-71.579],[1207.11,1199.45,29.4833,110.306,-70.0704],[1169.35,1298.73,28.4833,101.996,-68.1847],[1126.85,1398.86,27.3667,92.7206,-65.6588],[1077.6,1499.75,26.0833,82.1622,-62.0237],[1018.88,1599.1,24.5667,70.0426,-56.282],[937.468,1699.91,22.4833,54.8557,-44.2927],[781.929,1775.78,18.55,39.7959,-0.00850141]]], + [78,1789.37,[[1691.84,-2003.45,47.8333,238.935,-83.4653],[1680.01,-1901.08,47.4,236.57,-83.3477],[1668.55,-1803.65,46.9833,234.262,-83.2315],[1656.54,-1703.35,46.55,231.826,-83.1072],[1643.97,-1600.35,46.1,229.258,-82.9743],[1631.78,-1502.28,45.6667,226.748,-82.8425],[1619.02,-1401.62,45.2167,224.103,-82.7013],[1606.16,-1302.19,44.7667,221.418,-82.5556],[1592.72,-1200.38,44.3,218.593,-82.3996],[1579.66,-1103.48,43.85,215.828,-82.2441],[1565.53,-1000.83,43.3667,212.815,-82.0712],[1551.78,-903.146,42.9,209.863,-81.8981],[1536.94,-800.052,42.4,206.653,-81.7058],[1522.48,-701.963,41.9167,203.504,-81.5125],[1507.4,-602.139,41.4167,200.199,-81.3046],[1491.71,-500.775,40.9,196.734,-81.0807],[1475.89,-401.255,40.3833,193.219,-80.8468],[1459.43,-300.489,39.85,189.537,-80.5943],[1442.85,-201.747,39.3167,185.802,-80.3297],[1425.63,-102.074,38.7667,181.896,-80.0432],[1407.74,-1.70062,38.2,177.814,-79.7324],[1389.18,99.1259,37.6167,173.553,-79.3944],[1370.47,197.379,37.0333,169.231,-79.0366],[1350.55,298.407,36.4167,164.6,-78.6347],[1329.93,399.08,35.7833,159.778,-78.194],[1308.6,499.101,35.1333,154.762,-77.7093],[1286.55,598.162,34.4667,149.55,-77.174],[1263.23,698.275,33.7667,144.008,-76.5654],[1238.6,798.804,33.0333,138.129,-75.8695],[1212.64,899.07,32.2667,131.91,-75.0691],[1185.35,998.348,31.4667,125.348,-74.1414],[1155.54,1099.64,30.6,118.169,-73.0107],[1123.77,1199.59,29.6833,110.51,-71.6433],[1089.41,1298.46,28.7,102.246,-69.9344],[1050.66,1398.68,27.6,92.9816,-67.6439],[1006.27,1499.04,26.35,82.5063,-64.3908],[953.141,1599.18,24.8667,70.3283,-59.2399],[882.06,1699.75,22.9,55.2352,-48.9056],[725.985,1789.37,18.6333,36.8197,-0.153962]]], + [79,1801.94,[[1558.13,-2000.38,47.9333,238.982,-83.9915],[1547.67,-1901.81,47.5167,236.705,-83.8875],[1536.7,-1800.33,47.0833,234.302,-83.7764],[1526.08,-1703.75,46.6667,231.956,-83.6666],[1514.53,-1600.57,46.2167,229.385,-83.5445],[1503.31,-1502.33,45.7833,226.872,-83.4234],[1491.57,-1401.49,45.3333,224.223,-83.2938],[1479.75,-1301.88,44.8833,221.535,-83.16],[1467.83,-1203.49,44.4333,218.807,-83.0218],[1455.38,-1102.79,43.9667,215.936,-82.8737],[1442.83,-1003.47,43.5,213.022,-82.7204],[1429.74,-902.061,43.0167,209.96,-82.5558],[1416.54,-802.172,42.5333,206.851,-82.3851],[1402.78,-700.459,42.0333,203.588,-82.2015],[1388.92,-600.42,41.5333,200.276,-82.0104],[1374.95,-502.079,41.0333,196.916,-81.8113],[1360.41,-402.272,40.5167,193.393,-81.5967],[1345.28,-301.206,39.9833,189.703,-81.3649],[1330.03,-202.163,39.45,185.96,-81.122],[1314.19,-102.174,38.9,182.044,-80.859],[1297.74,-1.47402,38.3333,177.95,-80.5737],[1280.67,99.6928,37.75,173.676,-80.2634],[1263.47,198.29,37.1667,169.34,-79.9348],[1245.15,299.683,36.55,164.693,-79.5656],[1226.69,398.117,35.9333,159.981,-79.1718],[1207.08,498.618,35.2833,154.945,-78.7273],[1186.81,598.175,34.6167,149.711,-78.2363],[1165.36,698.814,33.9167,144.143,-77.6778],[1142.72,799.9,33.1833,138.233,-77.0391],[1119.38,898.613,32.4333,132.114,-76.3209],[1094.29,998.622,31.6333,125.51,-75.4706],[1067.42,1098.81,30.7833,118.417,-74.4547],[1038.21,1199.75,29.8667,110.694,-73.2026],[1006.63,1299.69,28.8833,102.346,-71.6361],[971.559,1399.66,27.8,93.1072,-69.5676],[931.851,1499.07,26.5833,82.7445,-66.6705],[884.133,1599.5,25.1333,70.5593,-62.0739],[822.165,1699.42,23.2667,55.6167,-53.1678],[689.549,1799.98,19.3167,34.3239,-10.2804],[668.706,1801.94,18.7,33.8266,-0.140652]]], + [80,1813.49,[[1423.26,-2003.53,48.05,239.161,-84.5271],[1413.34,-1900.87,47.6167,236.791,-84.4287],[1403.73,-1803.14,47.2,234.478,-84.3314],[1393.65,-1702.54,46.7667,232.036,-84.2274],[1383.5,-1603.02,46.3333,229.557,-84.1202],[1372.88,-1500.84,45.8833,226.945,-84.0056],[1362.57,-1403.57,45.45,224.391,-83.8919],[1351.39,-1300.08,44.9833,221.6,-83.7655],[1340.52,-1201.55,44.5333,218.867,-83.6396],[1329.16,-1100.7,44.0667,215.991,-83.5045],[1317.72,-1001.21,43.6,213.073,-83.3648],[1306.19,-903.119,43.1333,210.111,-83.22],[1294.15,-803.011,42.65,206.998,-83.0645],[1281.61,-701.069,42.15,203.729,-82.8973],[1268.97,-600.798,41.65,200.411,-82.7233],[1256.23,-502.224,41.15,197.044,-82.5421],[1242.96,-402.173,40.6333,193.515,-82.3466],[1229.17,-300.854,40.1,189.817,-82.1355],[1215.26,-201.554,39.5667,186.065,-81.9143],[1200.82,-101.298,39.0167,182.139,-81.6747],[1185.81,-0.320385,38.45,178.034,-81.4147],[1170.7,98.2714,37.8833,173.871,-81.1403],[1155.02,197.233,37.3,169.524,-80.8414],[1138.32,299.016,36.6833,164.862,-80.5055],[1121.48,397.843,36.0667,160.135,-80.1472],[1103.61,498.762,35.4167,155.081,-79.7426],[1085.13,598.752,34.75,149.827,-79.2957],[1065.57,699.85,34.05,144.234,-78.7872],[1045.39,799.162,33.3333,138.431,-78.2194],[1024.12,898.481,32.5833,132.281,-77.5665],[1001.24,999.143,31.7833,125.639,-76.7931],[977.232,1098.12,30.95,118.639,-75.8878],[950.61,1199.95,30.0333,110.857,-74.7503],[922.314,1299.23,29.0667,102.575,-73.352],[890.843,1398.96,28,93.3771,-71.5055],[854.658,1499.97,26.7833,82.8647,-68.877],[812.677,1599.11,25.3833,70.8585,-64.857],[758.244,1699.3,23.5833,55.9355,-57.1189],[661.528,1799.82,20.4167,34.7382,-27.9276],[610.783,1813.49,18.7667,30.8164,-0.227024]]], + [81,1823.99,[[1286.12,-2001.05,48.1333,239.201,-85.0606],[1277.51,-1902.22,47.7167,236.92,-84.9752],[1268.48,-1800.45,47.2833,234.511,-84.8839],[1259.74,-1703.6,46.8667,232.161,-84.7936],[1250.22,-1600.12,46.4167,229.584,-84.6932],[1240.99,-1501.59,45.9833,227.065,-84.5937],[1231.33,-1400.45,45.5333,224.41,-84.4871],[1221.59,-1300.52,45.0833,221.714,-84.3771],[1211.78,-1201.83,44.6333,218.978,-84.2636],[1201.53,-1100.8,44.1667,216.099,-84.1418],[1191.19,-1001.14,43.7,213.176,-84.0158],[1180.79,-902.877,43.2333,210.21,-83.8852],[1169.92,-802.588,42.75,207.092,-83.745],[1158.6,-700.458,42.25,203.818,-83.5942],[1147.57,-603.318,41.7667,200.606,-83.4426],[1135.69,-501.229,41.25,197.121,-83.2737],[1123.71,-400.978,40.7333,193.584,-83.0974],[1111.65,-302.592,40.2167,189.995,-82.9131],[1099.1,-203.017,39.6833,186.236,-82.7138],[1086.06,-102.476,39.1333,182.302,-82.4979],[1072.52,-1.20035,38.5667,178.189,-82.2637],[1058.88,97.6919,38,174.016,-82.0165],[1044.32,199.764,37.4,169.532,-81.7392],[1029.66,299.082,36.8,164.983,-81.4445],[1014.46,398.246,36.1833,160.241,-81.1216],[998.326,499.523,35.5333,155.171,-80.7569],[981.647,599.884,34.8667,149.897,-80.3539],[964.419,699.004,34.1833,144.416,-79.9067],[946.213,798.82,33.4667,138.59,-79.3955],[927.011,898.672,32.7167,132.41,-78.8075],[906.37,999.908,31.9167,125.733,-78.1108],[884.702,1099.48,31.0833,118.691,-77.2949],[861.555,1198.39,30.2,111.14,-76.3088],[836.027,1298.67,29.2333,102.792,-75.0532],[807.634,1399.52,28.1667,93.5034,-73.3931],[775.885,1499.18,26.9833,83.1489,-71.0981],[738.471,1599.15,25.6,71.0747,-67.539],[690.744,1699.68,23.85,56.1384,-60.8042],[612.752,1800,21.0167,35.0696,-37.9606],[551.763,1823.99,18.8167,27.7902,-0.110879]]], + [82,1833.43,[[1147.63,-2000.88,48.2167,239.283,-85.5992],[1139.95,-1901.93,47.8,236.999,-85.5231],[1131.9,-1800.05,47.3667,234.589,-85.4417],[1124.11,-1703.09,46.95,232.236,-85.3613],[1115.94,-1603.3,46.5167,229.753,-85.2753],[1107.39,-1500.83,46.0667,227.135,-85.1832],[1099.1,-1403.29,45.6333,224.576,-85.0918],[1090.42,-1303.19,45.1833,221.878,-84.9939],[1081.35,-1200.69,44.7167,219.038,-84.8891],[1072.53,-1103.12,44.2667,216.259,-84.7845],[1063.33,-1003.28,43.8,213.333,-84.6724],[1053.72,-901.333,43.3167,210.257,-84.5519],[1044.03,-800.901,42.8333,207.134,-84.427],[1034.27,-702.004,42.35,203.965,-84.2972],[1024.1,-601.337,41.85,200.637,-84.1575],[1013.85,-502.362,41.35,197.259,-84.0119],[1003.18,-401.893,40.8333,193.717,-83.855],[992.081,-300.138,40.3,190.005,-83.6855],[980.895,-200.398,39.7667,186.238,-83.5079],[969.623,-102.705,39.2333,182.415,-83.3214],[957.556,-1.18142,38.6667,178.293,-83.1129],[945.396,97.9611,38.1,174.111,-82.8928],[932.783,197.495,37.5167,169.742,-82.6529],[919.346,299.889,36.9,165.055,-82.3834],[905.805,399.332,36.2833,160.3,-82.0958],[891.792,498.344,35.65,155.345,-81.7796],[876.928,599.102,34.9833,150.055,-81.4213],[861.575,698.634,34.3,144.556,-81.0236],[845.35,798.886,33.5833,138.708,-80.5688],[828.238,899.197,32.8333,132.503,-80.0456],[810.228,998.864,32.05,125.934,-79.4391],[790.919,1099.08,31.2167,118.855,-78.7142],[770.294,1198.67,30.3333,111.259,-77.8378],[747.547,1299.7,29.3667,102.851,-76.7207],[722.644,1399.89,28.3167,93.6267,-75.2675],[694.756,1499.35,27.15,83.3046,-73.2581],[661.827,1599.74,25.7833,71.1938,-70.1373],[620.531,1699.98,24.0833,56.3258,-64.3425],[556.815,1799.59,21.4833,35.528,-46.16],[492.23,1833.43,18.8667,24.7482,-0.0968037]]], + [83,1841.79,[[1007.83,-2003.04,48.3,239.407,-86.1423],[1000.82,-1900.03,47.8667,237.031,-86.0729],[994.031,-1801.96,47.45,234.711,-86.0044],[986.918,-1701.01,47.0167,232.262,-85.9311],[979.75,-1601.14,46.5833,229.776,-85.8555],[972.528,-1502.36,46.15,227.253,-85.7778],[964.971,-1400.95,45.7,224.593,-85.6946],[957.355,-1300.76,45.25,221.892,-85.6087],[949.682,-1201.79,44.8,219.15,-85.52],[941.664,-1100.49,44.3333,216.264,-85.4249],[933.584,-1000.55,43.8667,213.334,-85.3265],[925.443,-901.996,43.4,210.36,-85.2245],[916.948,-801.408,42.9167,207.234,-85.115],[908.387,-702.352,42.4333,204.061,-85.0013],[899.464,-601.519,41.9333,200.728,-84.8789],[890.472,-502.377,41.4333,197.346,-84.7513],[881.11,-401.734,40.9167,193.798,-84.6138],[871.676,-302.952,40.4,190.198,-84.4699],[861.865,-202.966,39.8667,186.426,-84.3144],[851.668,-101.995,39.3167,182.477,-84.146],[841.082,-0.273972,38.75,178.347,-83.9632],[830.414,99.0686,38.1833,174.156,-83.7701],[819.349,198.81,37.6,169.777,-83.5598],[807.88,298.691,37,165.207,-83.3301],[796.003,398.437,36.3833,160.441,-83.0783],[783.711,497.765,35.75,155.474,-82.8013],[770.674,598.857,35.0833,150.17,-82.4876],[757.208,698.735,34.4,144.654,-82.1392],[742.976,799.354,33.6833,138.786,-81.7408],[728.301,897.866,32.95,132.697,-81.2931],[712.506,998.052,32.1667,126.102,-80.7626],[695.573,1098.83,31.3333,118.991,-80.1285],[677.484,1199.01,30.45,111.354,-79.3614],[657.879,1299.02,29.5,103.04,-78.4012],[636.389,1398.56,28.4667,93.8942,-77.153],[611.936,1499.19,27.3,83.4737,-75.3998],[583.415,1599.83,25.95,71.354,-72.7087],[548.277,1699.45,24.3,56.6229,-67.8171],[495.3,1799.66,21.8333,35.8159,-52.9827],[432.204,1841.79,18.9167,21.6917,-0.229853]]], + [84,1849.06,[[866.571,-2003.55,48.3667,239.484,-86.687],[860.551,-1900.44,47.9333,237.106,-86.6273],[854.718,-1802.28,47.5167,234.785,-86.5685],[848.606,-1701.24,47.0833,232.335,-86.5055],[842.446,-1601.27,46.65,229.847,-86.4407],[836.241,-1502.38,46.2167,227.321,-86.3739],[829.747,-1400.87,45.7667,224.659,-86.3025],[823.203,-1300.57,45.3167,221.956,-86.2288],[816.61,-1201.51,44.8667,219.212,-86.1526],[809.72,-1100.09,44.4,216.323,-86.0709],[802.777,-1000.04,43.9333,213.39,-85.9864],[795.782,-901.371,43.4667,210.413,-85.8989],[788.482,-800.664,42.9833,207.283,-85.8047],[781.126,-701.489,42.5,204.105,-85.7071],[773.458,-600.532,42,200.769,-85.6019],[765.731,-501.264,41.5,197.382,-85.4923],[757.687,-400.49,40.9833,193.829,-85.3742],[749.581,-301.576,40.4667,190.223,-85.2506],[741.149,-201.452,39.9333,186.444,-85.117],[732.388,-100.338,39.3833,182.489,-84.9723],[723.56,-1.43035,38.8333,178.474,-84.8199],[714.395,98.1325,38.2667,174.276,-84.6543],[704.888,198.103,37.6833,169.89,-84.4739],[695.036,298.221,37.0833,165.311,-84.2768],[684.832,398.215,36.4667,160.535,-84.0608],[674.272,497.798,35.8333,155.558,-83.8231],[663.071,599.163,35.1667,150.241,-83.5538],[651.502,699.322,34.4833,144.71,-83.2548],[639.56,797.939,33.7833,138.962,-82.921],[626.667,899.057,33.0333,132.715,-82.5282],[613.097,999.573,32.25,126.096,-82.0726],[598.841,1098.74,31.4333,119.098,-81.5391],[583.303,1199.43,30.55,111.426,-80.8812],[566.462,1299.99,29.6,103.066,-80.0572],[548.301,1398.6,28.5833,94.0092,-79.0039],[527.599,1498.73,27.4333,83.654,-77.5247],[503.409,1599.44,26.1,71.552,-75.2536],[473.54,1699.94,24.4667,56.7197,-71.1156],[430.208,1799.65,22.1167,36.0847,-59.1395],[371.396,1849.06,18.95,18.6219,-0.0801955]]], + [85,1855.23,[[724.05,-2002.43,48.4167,239.513,-87.2335],[719.215,-1903.21,48,237.226,-87.1856],[714.149,-1801.04,47.5667,234.811,-87.1345],[709.24,-1703.8,47.15,232.454,-87.084],[704.097,-1603.71,46.7167,229.965,-87.0299],[698.715,-1500.94,46.2667,227.341,-86.972],[693.492,-1403.1,45.8333,224.776,-86.9147],[688.028,-1302.68,45.3833,222.071,-86.853],[682.522,-1203.49,44.9333,219.326,-86.7895],[676.769,-1101.95,44.4667,216.436,-86.7214],[670.971,-1001.78,44,213.501,-86.6509],[665.129,-902.983,43.5333,210.522,-86.5779],[659.033,-802.144,43.05,207.39,-86.4994],[652.89,-702.835,42.5667,204.21,-86.4179],[646.487,-601.737,42.0667,200.871,-86.3302],[640.034,-502.328,41.5667,197.481,-86.2388],[633.316,-401.406,41.05,193.925,-86.1401],[626.547,-302.343,40.5333,190.315,-86.0372],[619.506,-202.063,40,186.532,-85.9256],[612.189,-100.788,39.45,182.572,-85.8049],[604.817,-1.71622,38.9,178.552,-85.6778],[597.163,98.0168,38.3333,174.348,-85.5397],[589.224,198.164,37.75,169.955,-85.3891],[580.996,298.466,37.15,165.369,-85.2245],[572.475,398.65,36.5333,160.584,-85.0442],[563.656,498.431,35.9,155.597,-84.8459],[554.537,597.509,35.25,150.402,-84.6269],[544.877,697.978,34.5667,144.86,-84.3778],[534.667,799.221,33.85,138.961,-84.0928],[524.14,898.379,33.1167,132.836,-83.7723],[512.81,999.261,32.3333,126.198,-83.3925],[500.906,1098.81,31.5167,119.177,-82.9478],[487.932,1199.93,30.6333,111.475,-82.399],[474.117,1299.24,29.7,103.224,-81.7244],[458.955,1398.49,28.6833,94.1186,-80.8474],[441.671,1499.36,27.5333,83.6927,-79.6145],[421.728,1599.76,26.2167,71.6323,-77.7452],[397.303,1699.75,24.6167,56.8992,-74.3768],[362.164,1799.96,22.3333,36.2217,-64.757],[310.238,1855.23,18.9833,15.5398,-0.086397]]] +]; + +_minHeight = -2000; +_maxHeight = 2000; +_hstep = 100; +_minRange = 604.817; +_maxRange = 3473.18; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg0.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg0.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg0.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg1.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg1.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg1.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg2.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg2.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg2.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg3.sqf b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg3.sqf new file mode 100644 index 0000000000..ab93160422 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/82mm/tables/ace_arty_82mm_wpBtab_LA_chg3.sqf @@ -0,0 +1,21 @@ +// ARTY+ACE Module ballistics table. +// Magazine: ace_arty_81mm_fakecharge +// Ammo: ace_arty_81mm_m821a2_m734_pd +// AirFriction: -7.58e-005 + +private ["_btab", "_minRange", "_maxRange", "_minHeight", "_maxHeight", "_hstep"]; + +_btab = [ + [45,0.708123,[[23.8035,-200.02,6.75,62.2889,-86.7961],[17.2793,-100.445,4.88333,44.4293,-85.4718],[2.59242,-0.00421638,0.716667,5.08535,-45.9663],[1.29628,0.707115,0.35,3.53565,-0.979783]]], + [55,0.921162,[[19.4999,-200.404,6.81667,62.3473,-87.4039],[14.2076,-100.657,4.95,44.4746,-86.3319],[2.43741,-0.0308853,0.833333,5.11836,-55.9317],[1.24266,0.918594,0.416667,2.87167,-3.07536]]], + [65,1.10939,[[14.4738,-200.566,6.86667,62.3718,-88.0882],[10.5743,-100.718,5,44.4873,-87.2988],[1.97199,-0.0183903,0.916667,5.08133,-65.433],[0.986041,1.10864,0.45,2.11333,-1.22584]]], + [75,1.24923,[[8.90748,-200.612,6.9,62.3788,-88.8293],[6.51923,-100.71,5.03333,44.4852,-88.3459],[1.29395,-0.0556626,0.983333,5.14244,-75.4281],[0.647003,1.248,0.483333,1.29607,-3.27438]]], + [85,1.32367,[[3.00688,-200.615,6.91667,62.3793,-89.6058],[2.20263,-100.691,5.05,44.481,-89.4429],[0.450259,-0.0733638,1.01667,5.17095,-85.1667],[0.225137,1.32223,0.5,0.444167,-11.1819]]] +]; + +_minHeight = -200; +_maxHeight = 200; +_hstep = 100; +_minRange = 0.450259; +_maxRange = 2.59242; +[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep] diff --git a/TO_MERGE/ace/arty_ammunition/CfgAmmo.hpp b/TO_MERGE/ace/arty_ammunition/CfgAmmo.hpp new file mode 100644 index 0000000000..9f8234f47e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgAmmo.hpp @@ -0,0 +1,53 @@ +//cfgAmmo.hpp + +class CfgAmmo { + class ShellBase; + class ace_arty_howitzer_base: ShellBase { + whistleOnFire = 200; + artilleryLock = 0; + }; + + class ace_arty_baseEject : ShellBase { + hit = 20; + indirectHit = 20; + indirectHitRange = 10; + typicalSpeed = 100; + explosive = 1; + cost = 300; + model = "\ca\weapons\empty"; + airFriction = 0; + timeToLive = 1; + explosionTime = 0.001; + soundFly[] = {"",1,1}; + soundEngine[] = {"",1,4}; + CraterEffects = "GrenadeCrater"; + explosionEffects = "GrenadeExplosion"; + muzzleEffect = "BIS_Effects_Rifle"; + soundHit[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject",56.23413,1,1800}; + soundDefault1[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject",56.2341,1,1800}; + soundDefault2[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject",56.2341,1,1800}; + soundDefault3[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject",56.2341,1,1800}; + hitGroundSoft[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitGroundHard[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitMan[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitArmor[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitIron[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitBuilding[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitFoliage[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitWood[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitGlass[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitGlassArmored[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitConcrete[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitRubber[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitPlastic[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitDefault[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitMetal[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + hitMetalplate[] = {"soundDefault1",0.33,"soundDefault2",0.33,"soundDefault3",0.33}; + }; + #include "60mm\CfgAmmo.hpp" + #include "81mm\CfgAmmo.hpp" + #include "82mm\CfgAmmo.hpp" + #include "105mm\CfgAmmo.hpp" + #include "120mm\CfgAmmo.hpp" + #include "155mm\CfgAmmo.hpp" +}; diff --git a/TO_MERGE/ace/arty_ammunition/CfgAmmoBoxes.hpp b/TO_MERGE/ace/arty_ammunition/CfgAmmoBoxes.hpp new file mode 100644 index 0000000000..4c008d7add --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgAmmoBoxes.hpp @@ -0,0 +1,169 @@ +class USOrdnanceBox_EP1; +class ACE_Arty_OrdnanceBox: USOrdnanceBox_EP1 { scope = 1; }; // USE this to inherit from in the future +class ace_arty_105mm_ammo_m1: ACE_Arty_OrdnanceBox { + scope = 2; + displayName = "105mm Ammo M1 HE w/Fuze M782"; + model = QPATHTO_M(105mm\ace_arty_105mm_Box.p3d); + vehicleClass = "ACE_Arty_Ammunition"; + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_105mm_m1,5); + }; +}; +class ace_arty_105mm_ammo_m84a1: ace_arty_105mm_ammo_m1 { + displayName = "105mm M84A1 BE HC Smoke w/Fuze M782"; + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_105mm_m84a1,5); + }; +}; +class ace_arty_105mm_ammo_m916: ace_arty_105mm_ammo_m1 { + displayName = "105mm M916 BE DPICM w/Fuze M782"; + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_105mm_m916,5); + }; +}; +class ace_arty_105mm_ammo_m314a3: ace_arty_105mm_ammo_m1 { + displayName = "105mm M314A3 Illum w/Fuze M782"; + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_105mm_m314a3,5); + }; +}; +class ace_arty_105mm_ammo_m60a2: ace_arty_105mm_ammo_m1 { + displayName = "105mm M60A2 Bursting WP Smoke w/Fuze M782"; + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_105mm_m60a2,5); + }; +}; + + // Mortars + // 81mm + class ACE_Tbox_GP_W; + class ACE_Tbox_GP_R; + class ACE_Tbox_Mortar_81mmHE: ACE_Tbox_GP_W { + vehicleClass = "ACE_Arty_Ammunition"; + displayName = "81mm M821A2 HE w/Fuze M734"; + transportMaxWeapons = 0; + transportMaxMagazines = 8; + class TransportMagazines { + ACE_M_MAG(ACE_M252HE_CSWDM,4); + ACE_M_MAG(ace_arty_81mm_m821a2,4); + }; + }; + class ACE_Tbox_Mortar_81mmWP: ACE_Tbox_Mortar_81mmHE { + displayName = "81mm M375A3 Bursting WP Smoke w/Fuze M524"; + class TransportMagazines { + ACE_M_MAG(ACE_M252WP_CSWDM,4); + ACE_M_MAG(ace_arty_81mm_m375a3,4); + }; + }; + class ACE_Tbox_Mortar_81mmIL: ACE_Tbox_Mortar_81mmHE { + displayName = "81mm M853A1 Illum w/Fuze M772"; + class TransportMagazines { + ACE_M_MAG(ACE_M252IL_CSWDM,4); + ACE_M_MAG(ace_arty_81mm_m853a1,4); + }; + }; + + // 60mm + class ACE_Tbox_Mortar_60mmHE: ACE_Tbox_GP_W { + scope = 2; + vehicleClass = "ACE_Arty_Ammunition"; + displayName = "60mm M720A1 HE w/Fuze M734"; + transportMaxWeapons = 0; + transportMaxMagazines = 8; + class TransportMagazines { + ACE_M_MAG(ACE_M224HE_CSWDM,4); + ACE_M_MAG(ace_arty_60mm_m720a1,4); + }; + }; + class ACE_Tbox_Mortar_60mmWP: ACE_Tbox_Mortar_81mmHE { + scope = 2; + displayName = "60mm M722A1 Bursting WP Smoke w/Fuze M745"; + class TransportMagazines { + ACE_M_MAG(ACE_M224WP_CSWDM,4); + ACE_M_MAG(ace_arty_60mm_m722a1,4); + }; + }; + class ACE_Tbox_Mortar_60mmIL: ACE_Tbox_Mortar_81mmHE { + scope = 2; + displayName = "60mm M721 Illum w/Fuze M776"; + class TransportMagazines { + ACE_M_MAG(ACE_M224IL_CSWDM,4); + ACE_M_MAG(ace_arty_60mm_m721,4); + }; + }; + + + // 82mm + class ACE_Tbox_Mortar_82mmHE: ACE_Tbox_GP_R { + vehicleClass = "ACE_Arty_Ammunition"; + displayName = $STR_DN_ACE_CSW_BOX_2B14_AMMOHE; + transportMaxWeapons = 0; + transportMaxMagazines = 8; + class TransportMagazines { + ACE_M_MAG(ACE_2B14HE_CSWDM,4); + ACE_M_MAG(ace_arty_82mm_he,4); + }; + }; + class ACE_Tbox_Mortar_82mmWP: ACE_Tbox_Mortar_82mmHE { + displayName = $STR_DN_ACE_CSW_BOX_2B14_AMMOWP; + class TransportMagazines { + ACE_M_MAG(ACE_2B14WP_CSWDM,4); + ACE_M_MAG(ace_arty_82mm_wp,4); + + }; + }; + class ACE_Tbox_Mortar_82mmIL: ACE_Tbox_Mortar_82mmHE { + displayName = $STR_DN_ACE_CSW_BOX_2B14_AMMOIL; + class TransportMagazines { + ACE_M_MAG(ACE_2B14IL_CSWDM,4); + ACE_M_MAG(ace_arty_82mm_illum,4); + }; + }; + // + class ace_arty_120mm_ammo_dm11: ACE_Arty_OrdnanceBox { + scope = 2; + displayName = "120mm DM11A5 HE w/Fuze DM111A1"; + model = QPATHTO_M(120mm\ace_box_dm11.p3d); + icon = QPATHTO_C(120mm\data\icomap_dm11_ca.paa); + vehicleClass = "ACE_Arty_Ammunition"; + transportMaxMagazines = 2; + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_120mm_dm11a5,2); + }; + ACE_Weight = 1.5; + }; + class ace_arty_120mm_ammo_dm61: ace_arty_120mm_ammo_dm11 { + displayName = "120mm DM61 HE w/Fuze PPD324-B3"; + model = QPATHTO_M(120mm\ace_box_dm61.p3d); + icon = QPATHTO_C(120mm\data\icomap_dm61_ca.paa); + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_120mm_dm61,2); + }; + }; + class ace_arty_120mm_ammo_dm26: ace_arty_120mm_ammo_dm11 { + displayName = "120mm DM26 Illum w/Fuze DM93"; + model = QPATHTO_M(120mm\ace_box_dm26.p3d); + icon = QPATHTO_C(120mm\data\icomap_dm26_ca.paa); + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_120mm_dm26,2); + }; + }; + class ace_arty_120mm_ammo_dm35: ace_arty_120mm_ammo_dm11 { + displayName = "120mm DM35 BE HC Smoke w/Fuze DM93"; + model = QPATHTO_M(120mm\ace_box_dm35.p3d); + icon = QPATHTO_C(120mm\data\icomap_dm35_ca.paa); + class TransportWeapons {}; + class TransportMagazines { + ACE_M_MAG(ace_arty_120mm_dm35,2); + }; + }; + // 1 Rnd Collies + \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/CfgCloudlets.hpp b/TO_MERGE/ace/arty_ammunition/CfgCloudlets.hpp new file mode 100644 index 0000000000..e843c63b25 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgCloudlets.hpp @@ -0,0 +1,152 @@ +//CfgCloudlets.hpp + +class CfgCloudlets { + class ARTY_ExplosionSmoke; + class ace_arty_105mm_m84a1_m782_smokeCanisterHC_cloudlet1: ARTY_ExplosionSmoke { + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 8; + particleFSLoop = 0; + animationSpeedCoef = 1; + colorCoef[]={"colorR","colorG","colorB","colorA"}; + sizeCoef=1; + position[]={0,0,0}; + interval=0.05; + weight=10; + volume=7.5; + rubbing=0.05; + lifeTime = 30; + moveVelocity[] = {1, 0.5, 0.000}; + size[] = {0.75, 2, 12, 16, 32, 33, 34, 35}; + color[] = { + {1, 1, 1, 0.5}, + {1, 1, 1, 1}, + {1, 1, 1,0.5}, + {1, 1, 1,0.25}, + {1, 1, 1,0} + }; + lifeTimeVar = 1.5; + positionVar[] = {0, 0, 0}; + rotationVelocityVar = 1; + sizeVar = 1.2; + colorVar[] = {0.1, 0.1, 0.1, 0.2}; + randomDirectionPeriod = 0.025; + randomDirectionIntensity = 0.05; + randomDirectionPeriodVar = 0.025; + randomDirectionIntensityVar = 0.025; + }; + class ace_arty_105mm_m84a1_m782_smokeCanisterHC_cloudlet2: ace_arty_105mm_m84a1_m782_smokeCanisterHC_cloudlet1 { + lifeTime = 60; + interval=0.15; + weight=10; + moveVelocity[] = {1, 0.5, 0.000}; + size[] = {0.5, 1, 10, 24, 24, 24, 24}; + color[] = { + {0.9, 0.9, 0.9, 0.5}, + {0.9,0.9,0.9, 0.75}, + {0.9, 0.9, 0.9,0.5}, + {0.9, 0.91, 0.9,0.25}, + {1, 1, 1,0} + }; + }; + + class Default; + class ace_arty_WPTrails: Default { + interval = 0.1; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + particleShape = "\ca\Data\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 13; + particleFSFrameCount = 2; + particleFSLoop = 0; + angleVar = 1; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 0.07; + lifeTime = 5; + moveVelocity[] = {0,6,0}; + rotationVelocity = 0; + weight = 15; + volume = 7.9; + rubbing = 0.1; + size[] = {0.5}; + color[] = {{ 1,1,1,1 }}; + animationSpeed[] = {1}; + randomDirectionPeriod = 1; + randomDirectionIntensity = 0; + onTimerScript = "\x\ace\addons\sys_arty_ammunition\effects\scripts\WPTrails.sqf"; + beforeDestroyScript = "\x\ace\addons\sys_arty_ammunition\effects\scripts\WPTrails_END.sqf"; + lifeTimeVar = 3; + positionVar[] = {2,2,2}; + MoveVelocityVar[] = {12,6,12}; + rotationVelocityVar = 20; + sizeVar = 0; + colorVar[] = {0,0,0,0}; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + }; + class ace_arty_WPTrails2: ace_arty_WPTrails { + interval = 0.01; + lifeTime = 6; + lifeTimeVar = 4; + MoveVelocityVar[] = {2,15,2}; + rotationVelocityVar = 30; + moveVelocity[] = {0,8,0}; + onTimerScript = "\x\ace\addons\sys_arty_ammunition\effects\scripts\WPTrails2.sqf"; + beforeDestroyScript = "\x\ace\addons\sys_arty_ammunition\effects\scripts\WPTrails2.sqf"; + }; + class ace_arty_WPCloud: Default { + interval = 0.02; + circleRadius = 0; + circleVelocity[] = {0,0,0}; + particleShape = "\ca\Data\ParticleEffects\Universal\Universal"; + particleFSNtieth = 16; + particleFSIndex = 12; + particleFSFrameCount = 13; + particleFSLoop = 0; + angleVar = 1; + animationName = ""; + particleType = "Billboard"; + timerPeriod = 1; + lifeTime = 60; + moveVelocity[] = {0,0,0}; + rotationVelocity = 0; + weight = 8.9; + volume = 7; + rubbing = 0.1; + size[] = {5,10,13,16,18,20,21,22}; + color[] = { + { 1,1,1,1 }, + { 1,1,1,0 } + }; + animationSpeed[] = {1000}; + randomDirectionPeriod = 1; + randomDirectionIntensity = 0; + onTimerScript = ""; + beforeDestroyScript = ""; + lifeTimeVar = 20; + positionVar[] = {4,3,4}; + MoveVelocityVar[] = {0.2,0.2,0.2}; + rotationVelocityVar = 20; + sizeVar = 0.3; + colorVar[] = {0,0,0,0}; + randomDirectionPeriodVar = 0; + randomDirectionIntensityVar = 0; + }; + class ace_arty_WPCloud2: ace_arty_WPCloud { + interval = 0.001; + lifeTime = 5; + lifeTimeVar = 5; + weight = 32; + volume = 20; + color[] = { + { 1,1,1,1 }, + { 1,1,1,0 } + }; + colorVar[] = {0.1, 0.1, 0.1, 0}; + size[] = {5,10,13,16,18,20,21,22}; + moveVelocity[] = {0,5,0}; + MoveVelocityVar[] = {0.2,5,0.2}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/CfgEffects.hpp b/TO_MERGE/ace/arty_ammunition/CfgEffects.hpp new file mode 100644 index 0000000000..7a361b7478 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgEffects.hpp @@ -0,0 +1,98 @@ +//CfgEffects.hpp + +class ace_arty_105mm_m84a1_m782_smokeCanisterHC_effect { + class Smoke1 { + simulation = "particles"; + type = "ace_arty_105mm_m84a1_m782_smokeCanisterHC_cloudlet1"; + position[] = {0, 0, 0}; + intensity = 0.25; + interval = 0.05; + lifeTime = 60; + }; + class Smoke2 { + simulation = "particles"; + type = "ace_arty_105mm_m84a1_m782_smokeCanisterHC_cloudlet2"; + position[] = {0, 0, 0}; + intensity = 0.5; + interval = 0.25; + lifeTime = 30; + }; +}; + +class ace_arty_WPExplosion { + class LightExp { + simulation = "light"; + type = "ExploLight"; + position[] = {0,0,0}; + intensity = 0.001; + interval = 1; + lifeTime = 1; + }; + class ExplosionFlame { + simulation = "particles"; + type = "ExplosionParticles"; + position[] = {0,0,0}; + intensity = 3; + interval = 1; + lifeTime = 0.25; + }; + class Explosion1 { + simulation = "particles"; + type = "ace_arty_WPCloud"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class Explosion2 { + simulation = "particles"; + type = "ace_arty_WPCloud2"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class Trails { + simulation = "particles"; + type = "ace_arty_WPTrails"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class Trails2 { + simulation = "particles"; + type = "ace_arty_WPTrails2"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; +}; + +class ace_arty_dpicmEffects { + class LightExp { + simulation = "light"; + type = "ExploLight"; + position[] = {0,0,0}; + intensity = 0.001; + interval = 1; + lifeTime = 0.25; + }; + class ExploAmmoFlash { + simulation = "particles"; + type = "ExploAmmoFlash"; + position[] = {0,0,0}; + intensity = 1; + interval = 1; + lifeTime = 1; + }; + class ExploAmmoSmoke { + simulation = "particles"; + type = "ExploAmmoSmoke"; + position[] = {0,0,0}; + intensity = 0.5; + interval = 2; + lifeTime = 0.5; + }; +}; diff --git a/TO_MERGE/ace/arty_ammunition/CfgEventHandlers.hpp b/TO_MERGE/ace/arty_ammunition/CfgEventHandlers.hpp new file mode 100644 index 0000000000..4083db67b4 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgEventHandlers.hpp @@ -0,0 +1,63 @@ +#include "script_component.hpp" + +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + clientInit = QUOTE(call COMPILE_FILE(XEH_preClientInit)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; + +// extended object-based handlers +class Extended_FiredBIS_EventHandlers { + class ace_arty_m119_base { + ADDON = QUOTE(_this call FUNC(onFired_cartEject)); + }; +}; +/* +class Extended_Init_EventHandlers { + class Helicopter { + class ADDON { + clientInit = QUOTE(if (local (_this select 0)) then {_this call FUNC(ffar_fix_init)}); + }; + }; +}; +*/ +class Extended_Init_EventHandlers { + class ace_arty_60mm_m721_m766_parachute { + // TODO: Nou - _this call FUNC(...) + class ADDON { + init = QUOTE(_this call COMPILE_FILE(60mm\XEH_illum_init)); + }; + }; + class ace_arty_81mm_m853a1_m772_parachute { + // TODO: Nou - _this call FUNC(...) + class ADDON { + init = QUOTE(_this call COMPILE_FILE(81mm\XEH_illum_init)); + }; + }; + class ace_arty_82mm_illum_ftsq_parachute { + // TODO: Nou - _this call FUNC(...) + class ADDON { + init = QUOTE(_this call COMPILE_FILE(82mm\XEH_illum_init)); + }; + }; + class ace_arty_105mm_m314a3_m782_parachute { + // TODO: Nou - _this call FUNC(...) + class ADDON { + init = QUOTE(_this call COMPILE_FILE(105mm\XEH_illum_init)); + }; + }; + class ace_arty_120mm_dm26_dm93_parachute { + // TODO: Nou - _this call FUNC(...) + class ADDON { + init = QUOTE(_this call COMPILE_FILE(120mm\XEH_illum_init)); + }; + }; + +}; diff --git a/TO_MERGE/ace/arty_ammunition/CfgMagazines.hpp b/TO_MERGE/ace/arty_ammunition/CfgMagazines.hpp new file mode 100644 index 0000000000..7fded7b650 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgMagazines.hpp @@ -0,0 +1,21 @@ +class CfgMagazines { + class CA_Magazine; + class VehicleMagazine; + class ace_arty_howitzer_default : CA_Magazine { + nameSound = "heat"; + ammo = "ace_arty_howitzer_base"; + initSpeed = 0; + scope = 2; + count = 1; + }; + class ace_arty_howitzer_mag : VehicleMagazine { + nameSound = "heat"; + scope = 2; + count = 1; + }; + #include "60mm\CfgMagazines.hpp" + #include "81mm\CfgMagazines.hpp" + #include "82mm\CfgMagazines.hpp" + #include "105mm\CfgMagazines.hpp" + #include "120mm\CfgMagazines.hpp" +}; diff --git a/TO_MERGE/ace/arty_ammunition/CfgSfx.hpp b/TO_MERGE/ace/arty_ammunition/CfgSfx.hpp new file mode 100644 index 0000000000..d8cc5dd25b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgSfx.hpp @@ -0,0 +1,9 @@ +//CfgSfx.hpp +class CfgSfx { + class ace_arty_roundSoundSourceSound { + sounds[] = {"Factory15"}; + name = "$STR_DN_FACTORY15"; + Factory15[] = {"\ca\Sounds\sfx\factory9",10.0,2,900,1,0,0,0}; + empty[] = {"",0,0,0,0,0,0,0}; + }; +}; diff --git a/TO_MERGE/ace/arty_ammunition/CfgVehicles.hpp b/TO_MERGE/ace/arty_ammunition/CfgVehicles.hpp new file mode 100644 index 0000000000..c5713e8476 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/CfgVehicles.hpp @@ -0,0 +1,18 @@ +#include "\x\cba\addons\xeh\script_xeh.hpp" +class CfgVehicles { + class ACE_Arty_BaseThing; + class ACE_Arty_ShellHolder; + #include "60mm\CfgVehicles.hpp" + #include "81mm\CfgVehicles.hpp" + #include "82mm\CfgVehicles.hpp" + #include "105mm\CfgVehicles.hpp" + #include "120mm\CfgVehicles.hpp" + #include "155mm\CfgVehicles.hpp" + #include "CfgAmmoBoxes.hpp" + class Sound; + class ace_arty_roundSoundSource:Sound { + scope = 2; + sound = "ace_arty_roundSoundSourceSound"; + displayName = "arty sound"; + }; +}; diff --git a/TO_MERGE/ace/arty_ammunition/Sounds/arty_flightsound.wss b/TO_MERGE/ace/arty_ammunition/Sounds/arty_flightsound.wss new file mode 100644 index 0000000000..f034cc54e9 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/Sounds/arty_flightsound.wss differ diff --git a/TO_MERGE/ace/arty_ammunition/Sounds/base_eject.wss b/TO_MERGE/ace/arty_ammunition/Sounds/base_eject.wss new file mode 100644 index 0000000000..1cafccaa91 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/Sounds/base_eject.wss differ diff --git a/TO_MERGE/ace/arty_ammunition/Sounds/whine_clank.ogg b/TO_MERGE/ace/arty_ammunition/Sounds/whine_clank.ogg new file mode 100644 index 0000000000..981243f2e6 Binary files /dev/null and b/TO_MERGE/ace/arty_ammunition/Sounds/whine_clank.ogg differ diff --git a/TO_MERGE/ace/arty_ammunition/XEH_postInit.sqf b/TO_MERGE/ace/arty_ammunition/XEH_postInit.sqf new file mode 100644 index 0000000000..788cc4c3e4 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/XEH_postInit.sqf @@ -0,0 +1,12 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +ADDON = false; + +if (!isDedicated) then { + [["StaticCannon", "StaticMortar", "ACE_Arty_ShellHolder", "ACE_Arty_OrdnanceBox","ACE_Tbox_Mortar_81mmHE","ACE_Tbox_Mortar_60mmHE","ACE_Tbox_Mortar_82mmHE"], [ace_sys_interaction_key], 2, [QUOTE(PATHTO(fnc_menuDef)), "main"]] call CBA_ui_fnc_add; +}; + +["ace_arty_ammo_105mmSmokeEvent", { _this call FUNC(attachSmokeEffects) }] call CBA_fnc_addEventHandler; + +ADDON = true; diff --git a/TO_MERGE/ace/arty_ammunition/XEH_preClientInit.sqf b/TO_MERGE/ace/arty_ammunition/XEH_preClientInit.sqf new file mode 100644 index 0000000000..90230cc0ed --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/XEH_preClientInit.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +ADDON = false; + +LOG(MSG_INIT); + +["player", [ace_sys_interaction_key_self], -9, [QPATHTO_F(fnc_menuDef_Self), "main"]] call CBA_ui_fnc_add; + +ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/XEH_preInit.sqf b/TO_MERGE/ace/arty_ammunition/XEH_preInit.sqf new file mode 100644 index 0000000000..03bf152ee8 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/XEH_preInit.sqf @@ -0,0 +1,158 @@ +#include "script_component.hpp" + +ADDON = false; + +// core functionality functions +PREP(openPrepDialog); +PREP(onLoadGun); +PREP(onUnloadGun); +PREP(onPickupShell); +PREP(onDropShell); +PREP(onPrepShell); + +// random functionality stuff +PREP(dropShell); +PREP(spawnShell); + +PREP(convertShell); // Converts a traditional CSWDM into a useable ACE mortar shell, wicked eh?!11 + +// object events +PREP(onShellDestroyed); + +// dialog populators and setters +PREP(populateRoundsList); +PREP(populateChargeList); +PREP(setDialogParameters); + +// dialog events +PREP(onDialogOpen); +PREP(onDialogClose); +PREP(onDoPrep); + +// dialog events +PREP(onSelectRound); +PREP(onSelectFuze); +PREP(onSelectCharge); +PREP(onSelectProx); + +// misc functionality helpers/libs +PREP(isKindOf); +PREP(menuDef); + +// cart ejection +PREP(onFired_cartEject); + +//GVARS +GVAR(isDialogOpen) = false; +GVAR(currentCharge) = -1; +GVAR(currentFuze) = ""; +GVAR(fuzeTime) = ""; + +GVAR(wpCount) = 0; + +FUNC(changeCharge) = { + private["_magData", "_maxCharge", "_minCharge", "_newCharge"]; + PARAMS_1(_dir); + _magData = configFile >> "CfgMagazines" >> GVAR(currentRoundType); + _maxCharge = getNumber(_magData >> "ACE_ARTY_MAXCHARGE"); + _minCharge = getNumber(_magData >> "ACE_ARTY_MINCHARGE"); + _newCharge = ((GVAR(currentCharge) + _dir) max _minCharge) min _maxCharge; + GVAR(currentCharge) = _newCharge; + TRACE_1("New Charge",GVAR(currentCharge)); + ctrlSetText [12556, format["Current Charge: %1", GVAR(currentCharge)]]; + ctrlSetText [12559, format[getText(_magData >> "ACE_ARTY_CHARGE_IMAGE_FORMAT"), GVAR(currentCharge)]]; +}; + +FUNC(attachSmokeEffects) = { + PARAMS_1(_grenades); + { + private ["_g", "_light", "_sp", "_sm"]; + _g = _x select 0; + _v = _x select 1; + _g setVelocity _v; + _light = "#lightpoint" createVehicle getPos _g; + _light setPos getPos _g; + _light setLightBrightness 0.05; + _light setLightAmbient[1,1,1]; + _light setLightColor[1,1,1]; + _light lightAttachObject [_g, [0,0,0]]; + + _sp = "#particlesource" createVehicle getPos _g; + _sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; + _sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.5,0], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_g,360]; + _sp setDropInterval 0.001; + + _sm = "#particlesource" createVehicle getPos _g; + _sm setParticleRandom [0.5, [0, 0, 0], [0, 0, 0], 0, 0.3, [0, 0, 0, 0], 0, 0, 360]; + _sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 30, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [1.3,4], + [[0.9,0.9,0.9,0.6], [1,1,1,0.3], [1,1,1,0]],[1],0.1,0.1,"","",_g]; + _sm setDropInterval 0.02; + + [_g, _sp, _sm, _light] spawn { + private["_time"]; + _time = time; + waitUntil { + sleep 0.1; + if (time-_time > getNumber(configFile >> "CfgAmmo" >> "ace_arty_105mm_m84a1_m782_smokeCanisterHC" >> "explosionTime")) then { + deleteVehicle (_this select 2); + }; + !(alive (_this select 0)); + }; + deleteVehicle (_this select 1); + deleteVehicle (_this select 3); + }; + } forEach _grenades; +}; + +FUNC(AddModelIncrements) = { + private ["_selection","_charge","_chargecount"]; + PARAMS_1(_shell); + for "_i" from 1 to 10 do { + _selection = format["hide_inc%1",_i]; + _shell animate [_selection,1]; + }; + _charge = _shell getVariable ["ACE_ARTY_PREP",[]]; + _chargecount = if (count _charge == 0) then { 0 } else { _charge select 3 }; + for "_i" from 1 to _chargecount do { + _selection = format["hide_inc%1",_i]; + _shell animate [_selection,0]; + }; +}; + +FUNC(packShell) = { + PARAMS_3(_shell,_box,_magazine); + deleteVehicle _shell; + _box addMagazineCargoGlobal [_magazine,1]; +}; + +FUNC(reload) = { + private ["_magazine","_weapon"]; + PARAMS_1(_gun); + _magazine = (_gun getVariable "ace_sys_arty_currentRound") select 0; + _weapon = (weapons _gun) select 0; + _gun removeWeapon _weapon; + _gun addMagazine _magazine; + _gun addWeapon _weapon; + _gun selectWeapon _weapon; + reload _gun; +}; +[QGVAR(reload), { _this call FUNC(reload) }] call CBA_fnc_addEventHandler; + +FUNC(unload) = { + private ["_magazine","_weapon"]; + PARAMS_1(_gun); + _weapon = (weapons _gun) select 0; + _magazine = (magazines _gun) select 0; + _gun removeWeapon _weapon; + _gun removeMagazines _magazine; + _gun addWeapon _weapon; + _gun selectWeapon _weapon; +}; +[QGVAR(unload), { _this call FUNC(unload) }] call CBA_fnc_addEventHandler; + +ADDON = true; diff --git a/TO_MERGE/ace/arty_ammunition/config.cpp b/TO_MERGE/ace/arty_ammunition/config.cpp new file mode 100644 index 0000000000..f046e4ef24 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/config.cpp @@ -0,0 +1,24 @@ + +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"CAWeapons", "ace_sys_arty", "ace_main", "ace_sys_interaction", "ace_sys_huntir", "ace_sys_disposal", "ace_sys_crewserved"}; + VERSION_CONFIG; + author[] = {"Falcone","Nou","Rocko"}; + }; +}; + +PRELOAD_ADDONS; + +#include "CfgAmmo.hpp" +#include "CfgMagazines.hpp" +#include "CfgSfx.hpp" +#include "CfgEffects.hpp" +#include "CfgCloudlets.hpp" +#include "CfgEventHandlers.hpp" +#include "CfgVehicles.hpp" +#include "prep_dialog.hpp" diff --git a/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails.sqf b/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails.sqf new file mode 100644 index 0000000000..e97ac9e5fc --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails.sqf @@ -0,0 +1,58 @@ +_rand=random 0.5; +if((_this select 2) >= -1) then { + drop [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 3.5, _this, [0, 0, 0.5], + 0, 10, 7.9, 0.075, [0.5+_rand,1.5+_rand], + [[1, 1, 1, 0],[1, 1, 1, 1],[1, 1, 1, 0.8],[1, 1, 1, 0.7], [1, 1, 1, 0.35], [1, 1, 1, 0]], + [1], 1, 0, "", "", ""]; + drop [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, _this, + [0,0,0], 1, 1, 0.80, 0.5, [0.5+_rand,1.5+_rand], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",""]; +}; +if((_this select 2) <= 0 && {(_this select 2) >= -1}) then { + _nearLogics = nearestObjects [_this, ["logic","#lightpoint","#particlesource"], 15]; + //player sideChat format["o: %1", _nearLogics]; + if((count _nearLogics) == 0 && {ace_sys_arty_ammunition_wpCount < 50}) then { + ace_sys_arty_ammunition_wpCount = ace_sys_arty_ammunition_wpCount + 1; + //player sideChat format["SMOKEY AND TEH BANDIZ %1", _this]; + _this spawn { + _pos = _this; + _pos set[2, 0]; + _logic = "logic" createVehicleLocal _pos; + + _light = "#lightpoint" createVehicleLocal _pos; + _light setPos _pos; + _light setLightBrightness 0.125; + _light setLightAmbient[1, 1, 1]; + _light setLightColor[1, 1, 1]; + _light lightAttachObject [_logic, [0,0,0]]; + + _wind = ([] call ace_sys_wind_deflection_fnc_wind); + _sm = "#particlesource" createVehicleLocal _pos; + _sm setParticleRandom [0.5, [1, 1, 1], [3, 3, 0.5], 0, 0.0, [0, 0, 0, 0], 0, 0, 360]; + _sm setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 13,0], + "", "Billboard", 1, 20, [0, 0, 0], + [_wind select 0,_wind select 1,0], 1, 8.9, 7, 0.1, [1.3,10,20,35], + [[1, 1, 1, 0],[1, 1, 1, 1],[1, 1, 1, 0.8],[1, 1, 1, 0.7], [1, 1, 1, 0.35], [1, 1, 1, 0]], + [1],1,0,"","",_logic]; + _sm setDropInterval 0.25; + + _sp = "#particlesource" createVehicleLocal _pos; + _sp setParticleRandom [0.03, [0, 0, 0], [0, 0, 0], 0, 0.2, [0, 0, 0, 0], 0, 0, 360]; + _sp setParticleParams [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, [0, 0, 0], + [0,0,0], 1, 1, 0.80, 0.5, [0.5+(random 0.5),1.5+(random 0.5)], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",_logic,360]; + _sp setDropInterval 0.01; + sleep (10+(random 10)); + deleteVehicle _light; + deleteVehicle _sp; + sleep (20+random(10)); + deleteVehicle _sm; + + deleteVehicle _logic; + ace_sys_arty_ammunition_wpCount = ace_sys_arty_ammunition_wpCount - 1; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails2.sqf b/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails2.sqf new file mode 100644 index 0000000000..e34089c688 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails2.sqf @@ -0,0 +1,12 @@ +_rand=random 0.5; +if((_this select 2) >= -1) then { + drop [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 3.5, _this, [0, 0, 0.5], + 0, 10, 7.9, 0.075, [0.5+_rand,1.5+_rand], + [[1, 1, 1, 0],[1, 1, 1, 1],[1, 1, 1, 0.8],[1, 1, 1, 0.7], [1, 1, 1, 0.35], [1, 1, 1, 0]], + [1], 1, 0, "", "", ""]; + drop [["\ca\Data\ParticleEffects\Universal\Universal", 16, 13, 2,0], + "", "Billboard", 1, 0.1, _this, + [0,0,0], 1, 1, 0.80, 0.5, [0.5+_rand,1.5+_rand], + [[1,1,1,-4], [1,1,1,-4], [1,1,1,-2],[1,1,1,0]],[1000],0.1,0.1,"","",""]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails_END.sqf b/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails_END.sqf new file mode 100644 index 0000000000..a53bfbec16 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/effects/scripts/WPTrails_END.sqf @@ -0,0 +1,7 @@ +_rand=random 0.5; +drop [["\ca\Data\ParticleEffects\Universal\Universal", 16, 12, 8,0], + "", "Billboard", 1, 3.5, _this, [0, 0, 0.5], + 0, 10, 7.9, 0.075, [0.5+_rand,1.5+_rand], + [[1, 1, 1, 0],[1, 1, 1, 1],[1, 1, 1, 0.8],[1, 1, 1, 0.7], [1, 1, 1, 0.35], [1, 1, 1, 0]], + [1], 1, 0, "", "", ""]; + \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_convertShell.sqf b/TO_MERGE/ace/arty_ammunition/fnc_convertShell.sqf new file mode 100644 index 0000000000..710f2f4667 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_convertShell.sqf @@ -0,0 +1,19 @@ +// #define DEBUG_MODE_FULL +#include "script_component.hpp" + +_unit = _this; + +{ + if (isText(configFile >> "CfgMagazines" >> _x >> "ACE_ARTY_SHELL_VEHICLE")) then { + _convertTo = getText(configFile >> "CfgMagazines" >> _x >> "ACE_ARTY_SHELL_VEHICLE"); + _unit removeMagazine _x; + _shell = _convertTo createVehicle (getpos _unit); + _shell setPos [(getPos _unit select 0) + random 0.75,(getPos _unit select 1) + random 0.75,getPos _unit select 2]; + if (isArray(configFile >> "CfgVehicles" >> _convertTo >> "ACE_ARTY_SHELL_PREP")) then { + _prep = getArray(configFile >> "CfgVehicles" >> _convertTo >> "ACE_ARTY_SHELL_PREP"); + _prep set [2,abs(random 10000)]; + _shell setVariable ["ACE_ARTY_PREP",_prep,true]; + _shell call FUNC(AddModelIncrements); + }; + }; +} foreach magazines _unit; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_dropShell.sqf b/TO_MERGE/ace/arty_ammunition/fnc_dropShell.sqf new file mode 100644 index 0000000000..60ae9834bf --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_dropShell.sqf @@ -0,0 +1,18 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +TRACE_1("", _this); +PARAMS_1(_shell); + +// we already are carrying one, drop it and pick up the new one +_shell setVariable ["ACE_ARTY_OWNER", nil, true]; + +detach _shell; +_pos = [(getPos player select 0) + sin (getDir player) * 1, (getpos player select 1) + cos (getdir player) * 1, 0]; +_shell setPos _pos; +// we need to reveal the shell to all players +{ + _x reveal _shell; +} forEach playableUnits; + +player setVariable ["ACE_ARTY_CARRY_SHELL", nil, false]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_isKindOf.sqf b/TO_MERGE/ace/arty_ammunition/fnc_isKindOf.sqf new file mode 100644 index 0000000000..cb040cd827 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_isKindOf.sqf @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +private["_ret", "_parent"]; + +PARAMS_3(_mag,_type,_superclass); + +_ret = false; + +_parent = configName (inheritsFrom ( configFile >> _superClass >> _mag)); +while { _parent != "" } do { + if (_parent == _type) exitWith { + _ret = true; + }; + _parent = configName (inheritsFrom ( configFile >> _superClass >> _parent)); +}; + +_ret \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_jam.sqf b/TO_MERGE/ace/arty_ammunition/fnc_jam.sqf new file mode 100644 index 0000000000..33e091520f --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_jam.sqf @@ -0,0 +1,25 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_cartridge", "_speed", "_dir", "_vel"]; +//TRACE_1("", _this); +PARAMS_1(_gun); + +// check to see if ACE cart is enabled +// if(!ace_sys_cartridges_enabled) exitWith { false }; + +// find the back of the gun and spawn the cartridge locally behind it + +_cartridge = "ace_arty_m14_casing" createVehicleLocal (getPos _gun); +_cartridge setPos ( _gun modelToWorld [0,-1.3,1.1]); +_cartridge setDir (getDir _gun); +//_vel = velocity _cartridge; +_dir = abs ((getDir _gun) + 180 % 360); +_speed = 3; + +_cartridge setVelocity [(_vel select 0) + (sin _dir * _speed), (_vel select 1) + (cos _dir * _speed), _vel select 2]; +//_vel = velocity _cartridge; +TRACE_5("", _dir, _vel, _speed, _cartridge, _gun); + +// add to cleanup FIFO? +[_cartridge, 300] call ACE_fnc_add2fifo; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_menuDef.sqf b/TO_MERGE/ace/arty_ammunition/fnc_menuDef.sqf new file mode 100644 index 0000000000..3ac7c43e4c --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_menuDef.sqf @@ -0,0 +1,157 @@ +// #define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +#define TARGET_TYPE_INVALID -1 +#define TARGET_TYPE_CRATE 1 +#define TARGET_TYPE_GUN 2 +#define TARGET_TYPE_SHELL 3 + +private ["_menuDef","_menuName", "_roundData", "_menuRsc", "_menus", "_typeOfTarget", "_hasShell", "_carryShell"]; + +PARAMS_2(_target,_params); +TRACE_1("", _this); +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; +//----------------------------------------------------------------------------- +// check to see if its either one of our vehicle shells, a cannon, or an ammobox with shells +_hasShell = false; +_typeOfTarget = TARGET_TYPE_INVALID; + +if ([typeOf _target, "ReammoBox", "CfgVehicles"] call FUNC(isKindOf)) then { + _typeOfTarget = TARGET_TYPE_CRATE; +} else { + if ([typeOf _target, "StaticCannon", "CfgVehicles"] call FUNC(isKindOf)) then { + _typeOfTarget = TARGET_TYPE_GUN; + } else { + if ([typeOf _target, "StaticMortar", "CfgVehicles"] call FUNC(isKindOf)) then { + _typeOfTarget = TARGET_TYPE_GUN; + } else { + // TODO: check for a weaponholder with a shell in it here right? + if ([typeOf _target, "ACE_Arty_ShellHolder", "CfgVehicles"] call FUNC(isKindOf)) then { + _typeOfTarget = TARGET_TYPE_SHELL; + }; + }; + }; +}; +// Bail if its an inalid target +_carryShell = player getVariable "ACE_ARTY_CARRY_SHELL"; +if (!isNil "_carryShell") then { + _hasShell = true; +}; +if (!_hasShell && {_typeOfTarget == TARGET_TYPE_INVALID}) exitWith {}; + +GVAR(target) = _target; + +private "_ali_tar"; +_ali_tar = alive _target; + +// fire off a hint if its a shell with variables, so they can see what kind of shell they are picking up +if (_ali_tar && {_typeOfTarget == TARGET_TYPE_SHELL}) then { + _roundData = _target getVariable "ACE_ARTY_PREP"; + if !(isNil "_roundData") then { + _name = getText(configFile >> "CfgMagazines" >> (_roundData select 0) >> "displayName"); + hintSilent _name; + }; +}; + +_loaded = false; +if (_ali_tar && {_typeOfTarget == TARGET_TYPE_GUN} && {!_hasShell}) then { + _count = count(_target getVariable ["ace_sys_arty_currentRound", []]); + if (_count > 0) then { + _loaded = true; + }; +}; + +_hell = "hot"; +_BoxShellBelongsTo = _target getVariable [QGVAR(belongsToBox),objNull]; +_distance = 100; +_inRange = false; +_hasRoom = false; +_magazineToStore = ""; +if (!isNull _BoxShellBelongsTo) then { + _inRange = (_BoxShellBelongsTo distance player) < 6; + _true_capacity = getNumber(configFile >> "CfgVehicles" >> typeOf _BoxShellBelongsTo >> "transportMaxMagazines"); + _cur_capacity_ar = (getMagazineCargo _BoxShellBelongsTo) select 1; + _capacity = 0; + { + _capacity = _capacity + _x; + } foreach _cur_capacity_ar; + _hasRoom = (_true_capacity - _capacity) > 0; + _magazineToStore = getText(configFile >> "CfgVehicles" >> typeOf _target >> "ACE_ARTY_MAGAZINE_CLASS"); + GVAR(packArray) = [_target,_BoxShellBelongsTo,_magazineToStore]; +}; + +// Automatically convert BIS magazines in the boxes IF an ACE mortar is found nearby when BOX is accessed +if (_typeOfTarget == TARGET_TYPE_CRATE) then { + _nearACEmortar = (position _target) nearEntities [["ACE_M252","ACE_M224_1","ACE_2b14_82mm"], 30]; + if (count _nearACEmortar > 0) then { + _magazines = (getMagazineCargo _target) select 0; + _count = (getMagazineCargo _target) select 1; + if (count _magazines > 0) then { + for "_i" from 0 to (count _magazines - 1) do { + _magazine_x = _magazines select _i; + _count_x = _count select _i; + _isBISArtyShell = isText(configFile >> "CfgMagazines" >> _magazine_x >> "ACE_ARTY_SHELL_MAGAZINE"); + if (_isBISArtyShell) then { + _convert = getText(configFile >> "CfgMagazines" >> _magazine_x >> "ACE_ARTY_SHELL_MAGAZINE"); + [_target,_magazine_x, _count_x] call ACE_fnc_removemagazinecargo; + _target addMagazineCargoGlobal [_convert,_count_x]; + }; + }; + }; + }; +}; + +_menus = [ + [ + ["main", "", _menuRsc], + [ + [localize "STR_ACE_ARTY_AMMUNITION_PREP", + { [GVAR(target)] spawn FUNC(openPrepDialog) }, + "", "", "", -1, + 1, _ali_tar && {_typeOfTarget == TARGET_TYPE_CRATE}], + [localize "STR_ACE_ARTY_AMMUNITION_STOCKPILE_BOXES", + { [GVAR(target)] spawn FUNC(stockpileBoxes) }, + "", "", "", -1, + 1, _ali_tar && {_typeOfTarget == TARGET_TYPE_CRATE} && {_hell == "frozen"}], + [localize "STR_ACE_ARTY_AMMUNITION_LOAD_GUN", + { [GVAR(target)] call FUNC(onLoadGun) }, + "", "", "", -1, + 1, _ali_tar && {_hasShell} && {_typeOfTarget == TARGET_TYPE_GUN} && {count (magazines _target) == 0}], + [localize "STR_ACE_ARTY_AMMUNITION_UNLOAD_GUN", + { [GVAR(target)] spawn FUNC(onUnLoadGun) }, + "", "", "", -1, + 1, _loaded], + [localize "STR_ACE_ARTY_AMMUNITION_PREP_SHELL", + { [GVAR(target)] spawn FUNC(onPrepShell) }, + "", "", "", -1, + 1, _ali_tar && {_typeOfTarget == TARGET_TYPE_SHELL}], + [localize "STR_ACE_ARTY_AMMUNITION_PACK", + { GVAR(packArray) spawn FUNC(packShell) }, + "", "", "", -1, + 1, _ali_tar && {_hasRoom} && {_inRange} && {_typeOfTarget == TARGET_TYPE_SHELL} && {!isNull _BoxShellBelongsTo} && {_magazineToStore != ""}] + ] + ] +]; + +//----------------------------------------------------------------------------- +_menuDef = []; +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this}else{""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _this, __FILE__]; +}; + +_menuDef // return value \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_menuDef_Self.sqf b/TO_MERGE/ace/arty_ammunition/fnc_menuDef_Self.sqf new file mode 100644 index 0000000000..c74d68920b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_menuDef_Self.sqf @@ -0,0 +1,49 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus"]; + +PARAMS_2(_target,_params); + +_menuName = ""; +_menuRsc = "buttonList"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__]}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; +_mortarshell_menu = false; +{ + if (isText(configFile >> "CfgMagazines" >> _x >> "ACE_ARTY_SHELL_VEHICLE")) then { + _mortarshell_menu = true; + if (_mortarshell_menu) exitWith {}; + }; +} forEach (magazines player); + +_menus = +[ + [ + ["main", localize "STR_ACE_MENU_EQUIPPLAYER", _menuRsc], + [ + [localize "STR_ACE_ARTY_AMMUNITION_PREP_SHELL", + { player call ace_sys_arty_ammunition_fnc_convertShell }, + "","","", -1, 1, _mortarshell_menu && {ACE_SELFINTERACTION_RESTRICTED}] + ] + ] +]; + +_menuDef = []; +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this} else {""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _this, __FILE__]; +}; + +_menuDef diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onDialogClose.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onDialogClose.sqf new file mode 100644 index 0000000000..1663bfedbb --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onDialogClose.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" + +GVAR(currentCharge) = -1; +GVAR(currentFuze) = ""; +GVAR(fuzeTime) = ""; +GVAR(currentAmmoCrate) = nil; +GVAR(isDialogOpen) = false; diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onDialogOpen.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onDialogOpen.sqf new file mode 100644 index 0000000000..2c7197f4d7 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onDialogOpen.sqf @@ -0,0 +1,16 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +uinamespace setVariable ["ace_arty_ammoprep_Display", _this select 0]; + +[_this, GVAR(currentAmmoCrate)] spawn { + waitUntil { + !isNull (findDisplay 754) + }; + call FUNC(populateRoundsList); + call FUNC(populateChargeList); + call FUNC(setDialogParameters); +}; + +GVAR(shellSpawnDir) = 1; +GVAR(isDialogOpen) = true; diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onDoPrep.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onDoPrep.sqf new file mode 100644 index 0000000000..325b976cd0 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onDoPrep.sqf @@ -0,0 +1,26 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +#define __CTRL_PREP (uiNamespace getVariable "ace_arty_ammoprep_Display") displayCtrl 31337 +__CTRL_PREP ctrlShow false; __CTRL_PREP ctrlCommit 0; + +private "_fuzeTime"; + +_ok = true; +_fuzeTime = 0; +if (GVAR(currentFuze) == "time") then { + _fuzeTimeTxt = ctrlText 12560; + _fuzeTime = parseNumber _fuzeTimeTxt; + + if (_fuzeTime == 0) then { + hintSilent "Fuze time must be a number greater than 0!"; + _ok = false; + }; +}; +if (!_ok) exitWith { + false +}; + +// now do the spawn +// this function doesnt return a shell anymore +[position player, GVAR(currentRoundType), GVAR(currentCharge), _fuzeTime] call FUNC(spawnShell); diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onDropShell.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onDropShell.sqf new file mode 100644 index 0000000000..216fba5e08 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onDropShell.sqf @@ -0,0 +1,6 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +TRACE_1("", _this); + +_this call FUNC(dropShell); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onFired_cartEject.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onFired_cartEject.sqf new file mode 100644 index 0000000000..f9d6a8c137 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onFired_cartEject.sqf @@ -0,0 +1,27 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +/* +private["_gun", "_cartridge", "_speed", "_dir", "_vel"]; +TRACE_1("", _this); +_gun = _this select 0; + +// check to see if ACE cart is enabled +// if(!ace_sys_cartridges_enabled) exitWith { false }; + +// find the back of the gun and spawn the cartridge locally behind it + +_cartridge = "ace_arty_m14_casing" createVehicleLocal (getPos _gun); +_cartridge setPos ( _gun modelToWorld [0,-1.3,1.1]); + +_cartridge setDir (getDir _gun); +_vel = velocity _cartridge; +_dir = abs ((getDir _gun) + 180 + (-15+(random 30)) % 360); +_speed = 4; + +_cartridge setVelocity [(_vel select 0)+(sin _dir*_speed),(_vel select 1)+ (cos _dir*_speed),(_vel select 2)]; +_vel = velocity _cartridge; +TRACE_5("", _dir, _vel, _speed, _cartridge, _gun); + +// add to cleanup FIFO? +[_cartridge, 300] call ACE_fnc_add2fifo; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onLoadGun.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onLoadGun.sqf new file mode 100644 index 0000000000..f95227d7dc --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onLoadGun.sqf @@ -0,0 +1,118 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +/* +private["_shell", "_prepArray"]; +PARAMS_1(_gun); + +_shell = player getVariable "ACE_ARTY_CARRY_SHELL"; +_prepArray = _shell getVariable "ACE_ARTY_PREP"; + +// Drop carried shell +player setVariable ["ACE_ARTY_CARRY_SHELL", nil, false]; +detach _shell; +["","","",["stop",player getVariable "ace_sys_cargo_carried_object"]] call ace_sys_cargo_fnc_carry; TRACE_1("Dropped shell from player into gun",""); +deleteVehicle _shell; + +_gun setVariable ["ace_sys_arty_currentRound", _prepArray, true]; + +// Call GlobalEvent +[QGVAR(reload), [_gun]] call CBA_fnc_globalEvent; + +*/ +// Why is this function so complicated, a simple reload and addmagazine should do? +// Because it needs to be. This function delegates loading to whoever is local to the gun +// and if no one is local to the gun then we handle the loading on our client. The reason it +// is handled this way is to prevent network data race conditions with the round data, on the +// M119 the gunner is waiting for the round info to populate before he loads the round. + +private["_shell", "_prepArray"]; +PARAMS_1(_gun); + +// remove the shell from the person and save its variables +_shell = player getVariable "ACE_ARTY_CARRY_SHELL"; +_prepArray = _shell getVariable "ACE_ARTY_PREP"; + +TRACE_2("START LOAD",_shell,_prepArray); + +// we now have roundtype, charge and fuze in the preparray and we are ready to give it to the gun +// play the action, give the "working" hint, and then laod it + +//PARAMS_3(_gun,_prepArray,_shell); +if (count (magazines _gun) == 0) then { + // remove it from player so he is not carrying anymore + player setVariable ["ACE_ARTY_CARRY_SHELL", nil, false]; + _shellType = typeOf _shell; + detach _shell; + ["","","",["stop",player getVariable "ace_sys_cargo_carried_object"]] call ace_sys_cargo_fnc_carry; + TRACE_1("Dropped shell from player into gun",""); + deleteVehicle _shell; + + TRACE_2("Setting ace_sys_arty_currentRound on gun", _gun, _prepArray); + _gun setVariable ["ace_sys_arty_currentRound", _prepArray, true]; + [_shellType, _gun, _prepArray] spawn { + PARAMS_3(_shellType,_gun,_prepArray); + _uniqueNumber = _prepArray select 2; + waitUntil { + _exit = false; + _roundList = _gun getVariable ["ace_sys_arty_roundData", []]; TRACE_1("Roundlist",_roundList); + { + _firedShell = _x; + if ((_firedShell select 3) == _uniqueNumber) then { + _exit = true; + TRACE_1("FiredShell == UniqueNumber",""); + }; + } forEach _roundList; + /* + This checks to make sure that two rounds were not loaded at once. + If you have entered this loop it is assumed you have loaded a round, + and the check below checks to make sure that the currently loaded + round is the same round (via the unique number) that you loaded. If its + been fired, then the check above this comment will see it in the list of + fired rounds. If its not in the fired rounds, and the unique id of the + loaded round is not the same as the one you are checking for then that + means that two rounds were loaded at once and we should unload our round + so we do not lose it. This happens very very rarely, but its a good case + to handle. + */ + if (!_exit) then { + TRACE_1("FiredShell =! UniqueNumber",""); + _currentRound = _gun getVariable ["ace_sys_arty_currentRound", []]; + if ((count _currentRound) != 0) then { + if ((_currentRound select 2) != _uniqueNumber) then { + _exit = true; + _shell = _shellType createVehicle (getPos _gun); + _shell setVariable ["ACE_ARTY_PREP", _prepArray, true]; + { + (group _x) reveal _shell; + } forEach playableUnits; + (group player) reveal _shell; + }; + } else { + _exit = true; + }; + }; + sleep 0.25; + _exit + }; + }; + + // TODO: does the gun have a gunner? if it doesnt, then *we* add the magazine + if (isNull (gunner _gun)) then { + _mag = _prepArray select 0; + _weapon = (weapons _gun) select 0; // remove, re-add, select, reload the weapon so that it's reloaded + _gun removeWeapon _weapon; + _gun addMagazine _mag; // load Magazine + _gun addWeapon _weapon; + _gun selectWeapon _weapon; + reload _gun; + + // Send Event to Server to create a monitoring trigger if FOR is enabled for M224 + // Create trigger for the other mortars on init (send the event immediately) + // On disassemble or destroy, remove trigger + // / Trigger checks wether gun is loaded and FOR is enabled or autoenabled + // / Then call a FUNC to make the AI fire + // / Add failsafe, if AI is not there create a new one + }; +} else { + hintSilent "Gun is already loaded!"; // TODO: Fix this ! +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onPickupShell.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onPickupShell.sqf new file mode 100644 index 0000000000..28763591a7 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onPickupShell.sqf @@ -0,0 +1,24 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_curShell", "_pos"]; +TRACE_1("", _this); +PARAMS_1(_targetShell); + +// are we already carrying a shell? if so, drop it first and re-assign +_curShell = player getVariable "ACE_ARTY_CARRY_SHELL"; +if (!isNil "_curShell") then { + [_curShell] call FUNC(dropShell); +}; + +//player playMove "AinvPknlMstpSlayWrflDnon_medic"; +//sleep 3; + +// take ownership of it, and give it to ourselves +_targetShell setVariable ["ACE_ARTY_OWNER", player, true]; +player setVariable ["ACE_ARTY_CARRY_SHELL", _targetShell, false]; +_targetShell attachTo [player, [0,0.25,1.15]]; + +// force player down weapon +player switchMove "amovpercmstpslowwrfldnon_player_idlesteady03"; +player selectWeapon (primaryWeapon player); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onPrepShell.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onPrepShell.sqf new file mode 100644 index 0000000000..42580d6642 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onPrepShell.sqf @@ -0,0 +1,30 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private ["_t","_mag","_maxCharge","_magazineFormat","_magazineClass"]; + +TRACE_1("", _this); +// dont open the dialog if there are no arty rounds in thebox + +PARAMS_1(_shell); +GVAR(currentAmmoCrate) = _shell; + +_t = _shell getVariable "ACE_ARTY_PREP"; +if (isNil "_t") then { + private["_magazineFormat", "_magazineClass", "_maxCharge"]; + // gdi, we have to FIND the fucking mag class now and then just default all the data. + _mag = getText (configFile >> "CfgVehicles" >> typeOf _shell >> "ACE_ARTY_MAGAZINE_CLASS"); + _maxCharge = getNumber (configFile >> "CfgMagazines" >> _mag >> "ACE_ARTY_MAXCHARGE"); + _magazineFormat = getText(configFile >> "CfgMagazines" >> _mag >> "ACE_ARTY_MAGAZINE_FORMAT"); + _fuzes = getArray(configFile >> "CfgMagazines" >> _mag >> "ACE_ARTY_FUZE_TYPES"); + + _magazineClass = format[_magazineFormat, "pd", _maxCharge]; + _t = [_magazineClass, [200], abs (random 10000), _maxCharge, _fuzes select 0]; + _shell setVariable ["ACE_ARTY_PREP", _t, true]; +}; + +GVAR(currentCharge) = _t select 3; +GVAR(currentFuze) = _t select 4; +GVAR(fuzeTime) = (_t select 1) select 0; + +createDialog "ace_arty_ammoprep_Display"; diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onSelectCharge.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onSelectCharge.sqf new file mode 100644 index 0000000000..406c6fd77e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onSelectCharge.sqf @@ -0,0 +1 @@ +#include "script_component.hpp" diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onSelectFuze.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onSelectFuze.sqf new file mode 100644 index 0000000000..38ce70c3c5 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onSelectFuze.sqf @@ -0,0 +1,17 @@ +#include "script_component.hpp" +private["_fuzeType"]; + +PARAMS_2(_nil,_index); + +_fuzeType = lbData [12557, _index]; +GVAR(currentFuze) = _fuzeType; +if (_fuzeType == "time") then { + ctrlShow [12560, true]; + ctrlShow [12561, true]; + ctrlShow [12562, true]; + ctrlSetText [12560,format["%1", GVAR(fuzeTime)]]; +} else { + ctrlShow [12560, false]; + ctrlShow [12561, false]; + ctrlShow [12562, false]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onSelectProx.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onSelectProx.sqf new file mode 100644 index 0000000000..406c6fd77e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onSelectProx.sqf @@ -0,0 +1 @@ +#include "script_component.hpp" diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onSelectRound.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onSelectRound.sqf new file mode 100644 index 0000000000..e6bc9f0430 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onSelectRound.sqf @@ -0,0 +1,39 @@ +#include "script_component.hpp" + +private["_mag", "_magData", "_displayName", "_maxCharge", "_fuzeType", "_fuzeDesc"]; + +PARAMS_2(_nil,_index); + +_mag = lbData [ROUNDS_LISTBOX_ID, _index]; +GVAR(currentRoundType) = _mag; +_magData = configFile >> "CfgMagazines" >> _mag; + +_displayName = getText(_magData >> "displayName"); + +ctrlSetText [12558, getText(_magData >> "ACE_ARTY_SHELL_IMAGE")]; + +ctrlSetText [12555, format["Prepare %1", _displayName]]; + +_maxCharge = getNumber(_magData >> "ACE_ARTY_MAXCHARGE"); +GVAR(currentCharge) = _maxCharge; +ctrlSetText [12556, format["Current Charge: %1", _maxCharge]]; +ctrlSetText [12559, format[getText(_magData >> "ACE_ARTY_CHARGE_IMAGE_FORMAT"), GVAR(currentCharge)]]; + + +_fuzeType = getArray(_magData >> "ACE_ARTY_FUZE_TYPES"); +_fuzeDesc = getArray(_magData >> "ACE_ARTY_FUZE_DESC"); +if (GVAR(currentFuze) == "") then { + GVAR(currentFuze) = _fuzeType select 0; +}; +lbClear 12557; +_selectFuzeIndex = 0; +{ + private["_desc", "_index"]; + _desc = _fuzeDesc select _forEachIndex; + _index = lbAdd [12557, format["%1", _desc]]; + lbSetData [12557, _index, _x]; + if (_x == GVAR(currentFuze)) then { + _selectFuzeIndex = _index; + }; +} forEach(_fuzeType); +lbSetCurSel [12557, _selectFuzeIndex]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onShellDestroyed.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onShellDestroyed.sqf new file mode 100644 index 0000000000..6dd6ba7b0d --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onShellDestroyed.sqf @@ -0,0 +1,4 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +TRACE_1("", _this); diff --git a/TO_MERGE/ace/arty_ammunition/fnc_onUnloadGun.sqf b/TO_MERGE/ace/arty_ammunition/fnc_onUnloadGun.sqf new file mode 100644 index 0000000000..1c5f9c6843 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_onUnloadGun.sqf @@ -0,0 +1,14 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private ["_shell","_prepArray","_shellClass","_defaultClass"]; +PARAMS_1(_gun); + +_prepArray = _gun getVariable ["ace_sys_arty_currentRound", []]; +if (count _prepArray > 0) then { + _defaultClass = getText(configFile >> "CfgMagazines" >> (_prepArray select 0) >> "ACE_ARTY_DEFAULT_CLASS"); + _shellClass = getText(configFile >> "CfgMagazines" >> _defaultClass >> "ACE_ARTY_SHELL_VEHICLE"); + _gun setVariable ["ace_sys_arty_currentRound",[],true]; + _shell = _shellClass createVehicle getPos _gun; + _shell setVariable ["ACE_ARTY_PREP",_prepArray,true]; +}; diff --git a/TO_MERGE/ace/arty_ammunition/fnc_openPrepDialog.sqf b/TO_MERGE/ace/arty_ammunition/fnc_openPrepDialog.sqf new file mode 100644 index 0000000000..a0b3e75913 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_openPrepDialog.sqf @@ -0,0 +1,23 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +private["_cargoArray", "_isRound"]; + +TRACE_1("", _this); +// dont open the dialog if there are no arty rounds in thebox + +PARAMS_1(_ammoCrate); + +GVAR(currentAmmoCrate) = _ammoCrate; +_cargoArray = getMagazineCargo _ammoCrate; +_isRound = false; +{ + _isRound = [_x, "ace_arty_howitzer_default", "CfgMagazines"] call FUNC(isKindOf); + if (_isRound) exitWith { }; +} foreach (_cargoArray select 0); +if (_isRound) then { + createDialog "ace_arty_ammoprep_Display"; +} else { + hintSilent "No artillery munitions in this box."; + GVAR(currentAmmoCrate) = nil; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fnc_populateChargeList.sqf b/TO_MERGE/ace/arty_ammunition/fnc_populateChargeList.sqf new file mode 100644 index 0000000000..db26a0c2fd --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_populateChargeList.sqf @@ -0,0 +1,36 @@ +#include "script_component.hpp" + +private "_index"; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 1"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "1"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 3"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "2"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 3"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "3"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 4"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "4"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 5"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "5"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 6"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "6"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 7"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "7"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + +_index = lbAdd [CHARGE_LISTBOX_ID, "Charge 8"]; +lbSetData [CHARGE_LISTBOX_ID, _index, "8"]; +lbSetColor [CHARGE_LISTBOX_ID, _index, [1,0,0,1]]; + diff --git a/TO_MERGE/ace/arty_ammunition/fnc_populateRoundsList.sqf b/TO_MERGE/ace/arty_ammunition/fnc_populateRoundsList.sqf new file mode 100644 index 0000000000..b447d4ef41 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_populateRoundsList.sqf @@ -0,0 +1,30 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +private["_cargoArray", "_mag", "_count", "_displayName", "_ammoCrate", "_isRound", "_index"]; + +_ammoCrate = GVAR(currentAmmoCrate); +if (_ammoCrate isKindOf "ACE_Arty_ShellHolder") then { + _mag = getText (configFile >> "CfgVehicles" >> (typeOf _ammoCrate) >> "ACE_ARTY_MAGAZINE_CLASS"); + _cargoArray = [[_mag], [1]]; +} else { + _cargoArray = getMagazineCargo _ammoCrate; +}; + +TRACE_2("AMMMMOOOO CRATE", _ammoCrate, _cargoArray); +{ + _mag = _x; + _isRound = [_mag, "ace_arty_howitzer_default", "CfgMagazines"] call FUNC(isKindOf); + TRACE_2("", _mag,_isRound); + if (_isRound) then { + _count = (_cargoArray select 1) select _forEachIndex; + _displayName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); + _index = lbAdd [ROUNDS_LISTBOX_ID, format["%1 -- %2", _count, _displayName]]; + TRACE_2("",_count,_displayName); + lbSetData [ROUNDS_LISTBOX_ID, _index, _mag]; + }; + +} forEach (_cargoArray select 0); +if (count (_cargoArray select 0) > 0) then { + lbSetCurSel [ROUNDS_LISTBOX_ID, 0]; + [ROUNDS_LISTBOX_ID, 0] call FUNC(onSelectRound); +}; diff --git a/TO_MERGE/ace/arty_ammunition/fnc_setDialogParameters.sqf b/TO_MERGE/ace/arty_ammunition/fnc_setDialogParameters.sqf new file mode 100644 index 0000000000..c61edcfb04 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_setDialogParameters.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" + +sliderSetRange [FUZE_SLIDER_ID, 0, 199]; diff --git a/TO_MERGE/ace/arty_ammunition/fnc_spawnMultiShellSpread.sqf b/TO_MERGE/ace/arty_ammunition/fnc_spawnMultiShellSpread.sqf new file mode 100644 index 0000000000..29f1787771 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_spawnMultiShellSpread.sqf @@ -0,0 +1,2 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" diff --git a/TO_MERGE/ace/arty_ammunition/fnc_spawnShell.sqf b/TO_MERGE/ace/arty_ammunition/fnc_spawnShell.sqf new file mode 100644 index 0000000000..55359a86a7 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fnc_spawnShell.sqf @@ -0,0 +1,94 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +#define __CTRL_PREP (uiNamespace getVariable "ace_arty_ammoprep_Display") displayCtrl 31337 +#define __roundData configFile >> "CfgMagazines" >> _roundClass + +_this spawn { + private ["_shell", "_shells", "_finalPos", "_distGood", "_dis"]; + PARAMS_4(_pos,_roundClass,_charge,_fuzeTime); + + GVAR(fuzeTime) = _fuzeTime; + + _magazineFormat = getText(__roundData >> "ACE_ARTY_MAGAZINE_FORMAT"); + _magazineClass = format[_magazineFormat, GVAR(currentFuze), _charge]; + _vehicleClass = getText(__roundData >> "ACE_ARTY_SHELL_VEHICLE"); + + [1,[localize "STR_ACE_ARTY_PREP_PROGRESS"],true,true] spawn ace_progressbar; + + if !(GVAR(currentAmmoCrate) isKindOf "ACE_Arty_ShellHolder") then { + // TODO: Player animation + + [GVAR(currentAmmoCrate), _roundClass, 1] call ACE_fnc_removemagazinecargo; // Fancy remove magazines from box, yay + sleep 0.2; + + _cargoArray = getMagazineCargo GVAR(currentAmmoCrate); + _selIndex = 0; + lbClear ROUNDS_LISTBOX_ID; + { + _mag = _x; + _isRound = [_mag, "ace_arty_howitzer_default", "CfgMagazines"] call FUNC(isKindOf); + TRACE_2("", _mag,_isRound); + if (_isRound) then { + _count = (_cargoArray select 1) select _forEachIndex; + _displayName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); + _index = lbAdd [ROUNDS_LISTBOX_ID, format["%1 -- %2", _count, _displayName]]; + TRACE_2("",_count,_displayName); + lbSetData [ROUNDS_LISTBOX_ID, _index, _mag]; + if (_roundClass == _mag) then { + _selIndex = _index; + }; + }; + } forEach (_cargoArray select 0); + lbSetCurSel [ROUNDS_LISTBOX_ID, _selIndex]; + + // this spawns the rounds directly ontop of eaachother. handle collision? + _shells = (player modelToWorld [0,-1,0]) nearObjects ["ACE_Arty_ShellHolder",5]; + _finalPos = player modelToWorld [0,-1,0]; + _distGood = false; + _dis = 0.1; + while { !_distGood } do { + _distGood = true; + { + TRACE_1("dist", (_finalPos distance _x)); + if (_finalPos distance _x < 0.5) exitWith { + _distGood = false; + }; + } forEach _shells; + _finalPos = [_finalPos select 0, (_finalPos select 1) + (_dis * GVAR(shellSpawnDir)), _finalPos select 2]; + }; + GVAR(shellSpawnDir) = GVAR(shellSpawnDir) * -1; + _shell = _vehicleClass createVehicle _finalPos; + _shell setPos _finalPos; + _shell setVariable [QGVAR(belongsToBox),GVAR(currentAmmoCrate),true]; + + + { + (group _x) reveal _shell; + } forEach playableUnits; + (group player) reveal _shell; // reveal it after its positioned correctly. + + __CTRL_PREP ctrlShow true; __CTRL_PREP ctrlCommit 0; + } else { + sleep 1; + __CTRL_PREP ctrlShow true; __CTRL_PREP ctrlCommit 0; + closeDialog 0; + _shell = GVAR(currentAmmoCrate); + }; + + _shell setVariable ["ACE_ARTY_PREP",[_magazineClass,[_fuzeTime],abs(random 10000),_charge,GVAR(currentFuze)], true]; + + _confirm_data = _shell getVariable "ACE_ARTY_PREP"; + TRACE_1("",_confirm_data); + // Check if there is ammo left that fits the scheme + _cargoArray = getMagazineCargo GVAR(currentAmmoCrate); + _isRound = false; + { + _isRound = [_x, "ace_arty_howitzer_default", "CfgMagazines"] call FUNC(isKindOf); + if (_isRound) exitWith {}; + } foreach (_cargoArray select 0); + if (!_isRound) then { + __CTRL_PREP ctrlShow false; __CTRL_PREP ctrlCommit 0; + }; + _shell call FUNC(AddModelIncrements); // Animate Mortarshell if increments added +}; diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m524/fuze_time.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m524/fuze_time.sqf new file mode 100644 index 0000000000..4b327b40fd --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m524/fuze_time.sqf @@ -0,0 +1,108 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" + +private["_shell", "_time", "_endTime", "_roundData", "_action", "_baseEjectFnc", "_timeFunc"]; + +_shell = _this select 6; +_time = time; +_endTime = 100000; +_roundData = (_this select 0) getVariable "ace_sys_arty_roundData"; +{ + if ((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; +} forEach _roundData; +_baseEjectFnc = {}; +_action = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_BASE_EJECT_HANDLER"); +if (!isNil "_action" && {_action != ""}) then { + _baseEjectFnc = COMPILE_FILE2_SYS(_action); +}; + +_shell = _this select 6; +[ + { + if (alive _shell) then { + _lastPos = getPos _shell; + _lastVel = velocity _shell; + }; + if (_endTime == 100000) then { + _roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; + { + if((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; + } forEach _roundData; + if(_endTime != 100000) then { + (_this select 0) set [2, _endTime]; + }; + }; + + if (_timeStart + _endTime <= time) then { + _timeExpired = true; + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + _baseEjectFnc = {}; + + if (isNil "_result") then { + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + + if (_delete) then { + deleteVehicle _shell; + } else { + _lastVel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _lastVel; + deleteVehicle _shell; + }; + }; + }, + [_shell, _time, _endTime, _baseEjectFnc, _this], + 0.0, // delay + { + //init + _shell = _this select 0; + _timeStart = _this select 1; + _endTime = _this select 2; + _baseEjectFnc = _this select 3; + _fireEHParams = _this select 4; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _timeExpired = false; + }, + { + if (!_timeExpired) then { + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + + if (isNil "_result") then { // || isNull _result // isNull throws script error, as we are processing a bool here. + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + if (_delete) then { + deleteVehicle _shell; + } else { + _explosionClass = getText(configFile >> "CfgAmmo" >> _shellType >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _lastPos; + _exp setVectorDir _lastVel; + }; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_timeStart", "_endTime", "_baseEjectFnc", "_fireEHParams", "_lastPos", "_lastVel", "_timeExpired", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_delay.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_delay.sqf new file mode 100644 index 0000000000..d6d4ab533a --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_delay.sqf @@ -0,0 +1,47 @@ +//fuze_delay.sqf +_shell = _this select 6; +[ + { + if (alive _shell) then { + _pvel = _lastVel; + _ppos = _lastPos; + _lastPos = getPosASL _shell; + _lastVel = velocity _shell; + }; + + }, + [_shell,_gun], + 0, // delay + { + _shell = _this select 0; + _lastPos = []; + _lastVel = []; + _pvel = []; + _ppos = []; + }, + { + _v = "ace_arty_60mm_m720a1_delay_action" createVehicle [0,0,10000]; + _v setPosASL _lastPos; + [_v] call ace_sys_frag_fnc_addManualTrack; + _vel = [_pvel,0.75] call ACE_fnc_vectorMultiply; + _unitVec = _vel call ACE_fnc_unitVector; + _minPen = 0.01; + _maxPen = 0.100; + _pen = ((random 1)*_maxPen) max _minPen; + _vadd = [_unitVec,_pen] call ACE_fnc_vectorMultiply; + _pos = [_lastPos,_vadd] call ACE_fnc_vectorAdd; + _pos set[2, (_pos select 2) max 0]; + _v setPosASL _pos; + _vel set[0, (_vel select 0) + random (0.5)]; + _vel set[1, (_vel select 1) + random (0.5)]; + _vel set[2, (_vel select 2) + random (0.5)]; + _v setVelocity _vel; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_pvel", "_ppos" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_nsb.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_nsb.sqf new file mode 100644 index 0000000000..37070c3e58 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_nsb.sqf @@ -0,0 +1,49 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" +private["_shell"]; + +_shell = _this select 6; +[ + { + _vel = velocity _shell; + if ((_vel select 2) < 0) then { + if ((getPosATL _shell) select 2 <= 2) then { + _fuzed = true; + _vel = velocity _shell; + _pos = getPosASL _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle [0,0,10000]; + _exp setPosASL _pos; + _exp setVectorDir _vel; + deleteVehicle _shell; + }; + }; + }, + [_shell], + 0.00, // delay + { + //init + _shell = _this select 0; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _fuzed = false; + }, + { + if (!_fuzed) then { + _vel = velocity _shell; + _pos = getPosASL _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle [0,0,10000]; + _exp setPosASL _pos; + _exp setVectorDir _vel; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_fuzed", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_prox.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_prox.sqf new file mode 100644 index 0000000000..d010be2b49 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m734/fuze_prox.sqf @@ -0,0 +1,47 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" +private["_shell"]; + +_shell = _this select 6; +[ + { + _vel = velocity _shell; + if ((_vel select 2) < 0) then { + if (getPosATL _shell select 2 <= 5) then { + _fuzed = true; + _vel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _vel; + deleteVehicle _shell; + }; + }; + }, + [_shell], + 0.00, // delay + { + //init + _shell = _this select 0; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _fuzed = false; + }, + { + if (!_fuzed) then { + _vel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _vel; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_fuzed", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m734a1/fuze_delay.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m734a1/fuze_delay.sqf new file mode 100644 index 0000000000..7f0510e385 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m734a1/fuze_delay.sqf @@ -0,0 +1,47 @@ +//fuze_delay.sqf +_shell = _this select 6; +[ + { + if (alive _shell) then { + _pvel = _lastVel; + _ppos = _lastPos; + _lastPos = getPosASL _shell; + _lastVel = velocity _shell; + }; + + }, + [_shell,_gun], + 0, // delay + { + _shell = _this select 0; + _lastPos = []; + _lastVel = []; + _pvel = []; + _ppos = []; + }, + { + _v = "ace_arty_81mm_m821a2_delay_action" createVehicle [0,0,10000]; + _v setPosASL _lastPos; + [_v] call ace_sys_frag_fnc_addManualTrack; + _vel = [_pvel,0.75] call ACE_fnc_vectorMultiply; + _unitVec = _vel call ACE_fnc_unitVector; + _minPen = 0.01; + _maxPen = 0.100; + _pen = ((random 1)*_maxPen) max _minPen; + _vadd = [_unitVec,_pen] call ACE_fnc_vectorMultiply; + _pos = [_lastPos,_vadd] call ACE_fnc_vectorAdd; + _pos set[2, (_pos select 2) max 0]; + _v setPosASL _pos; + _vel set[0, (_vel select 0) + random (0.5)]; + _vel set[1, (_vel select 1) + random (0.5)]; + _vel set[2, (_vel select 2) + random (0.5)]; + _v setVelocity _vel; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_pvel", "_ppos" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m734a1/fuze_prox.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m734a1/fuze_prox.sqf new file mode 100644 index 0000000000..3609adfc99 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m734a1/fuze_prox.sqf @@ -0,0 +1,47 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" +private["_shell"]; + +_shell = _this select 6; +[ + { + _vel = velocity _shell; + if ((_vel select 2) < 0) then { + if (getPosATL _shell select 2 <= 10) then { + _fuzed = true; + _vel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _vel; + deleteVehicle _shell; + }; + }; + }, + [_shell], + 0.0, // delay + { + //init + _shell = _this select 0; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _fuzed = false; + }, + { + if (!_fuzed) then { + _vel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _vel; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_fuzed", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m772/fuze_time.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m772/fuze_time.sqf new file mode 100644 index 0000000000..4b327b40fd --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m772/fuze_time.sqf @@ -0,0 +1,108 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" + +private["_shell", "_time", "_endTime", "_roundData", "_action", "_baseEjectFnc", "_timeFunc"]; + +_shell = _this select 6; +_time = time; +_endTime = 100000; +_roundData = (_this select 0) getVariable "ace_sys_arty_roundData"; +{ + if ((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; +} forEach _roundData; +_baseEjectFnc = {}; +_action = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_BASE_EJECT_HANDLER"); +if (!isNil "_action" && {_action != ""}) then { + _baseEjectFnc = COMPILE_FILE2_SYS(_action); +}; + +_shell = _this select 6; +[ + { + if (alive _shell) then { + _lastPos = getPos _shell; + _lastVel = velocity _shell; + }; + if (_endTime == 100000) then { + _roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; + { + if((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; + } forEach _roundData; + if(_endTime != 100000) then { + (_this select 0) set [2, _endTime]; + }; + }; + + if (_timeStart + _endTime <= time) then { + _timeExpired = true; + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + _baseEjectFnc = {}; + + if (isNil "_result") then { + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + + if (_delete) then { + deleteVehicle _shell; + } else { + _lastVel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _lastVel; + deleteVehicle _shell; + }; + }; + }, + [_shell, _time, _endTime, _baseEjectFnc, _this], + 0.0, // delay + { + //init + _shell = _this select 0; + _timeStart = _this select 1; + _endTime = _this select 2; + _baseEjectFnc = _this select 3; + _fireEHParams = _this select 4; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _timeExpired = false; + }, + { + if (!_timeExpired) then { + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + + if (isNil "_result") then { // || isNull _result // isNull throws script error, as we are processing a bool here. + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + if (_delete) then { + deleteVehicle _shell; + } else { + _explosionClass = getText(configFile >> "CfgAmmo" >> _shellType >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _lastPos; + _exp setVectorDir _lastVel; + }; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_timeStart", "_endTime", "_baseEjectFnc", "_fireEHParams", "_lastPos", "_lastVel", "_timeExpired", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m776/fuze_time.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m776/fuze_time.sqf new file mode 100644 index 0000000000..4b327b40fd --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m776/fuze_time.sqf @@ -0,0 +1,108 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" + +private["_shell", "_time", "_endTime", "_roundData", "_action", "_baseEjectFnc", "_timeFunc"]; + +_shell = _this select 6; +_time = time; +_endTime = 100000; +_roundData = (_this select 0) getVariable "ace_sys_arty_roundData"; +{ + if ((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; +} forEach _roundData; +_baseEjectFnc = {}; +_action = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_BASE_EJECT_HANDLER"); +if (!isNil "_action" && {_action != ""}) then { + _baseEjectFnc = COMPILE_FILE2_SYS(_action); +}; + +_shell = _this select 6; +[ + { + if (alive _shell) then { + _lastPos = getPos _shell; + _lastVel = velocity _shell; + }; + if (_endTime == 100000) then { + _roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; + { + if((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; + } forEach _roundData; + if(_endTime != 100000) then { + (_this select 0) set [2, _endTime]; + }; + }; + + if (_timeStart + _endTime <= time) then { + _timeExpired = true; + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + _baseEjectFnc = {}; + + if (isNil "_result") then { + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + + if (_delete) then { + deleteVehicle _shell; + } else { + _lastVel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _lastVel; + deleteVehicle _shell; + }; + }; + }, + [_shell, _time, _endTime, _baseEjectFnc, _this], + 0.0, // delay + { + //init + _shell = _this select 0; + _timeStart = _this select 1; + _endTime = _this select 2; + _baseEjectFnc = _this select 3; + _fireEHParams = _this select 4; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _timeExpired = false; + }, + { + if (!_timeExpired) then { + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + + if (isNil "_result") then { // || isNull _result // isNull throws script error, as we are processing a bool here. + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + if (_delete) then { + deleteVehicle _shell; + } else { + _explosionClass = getText(configFile >> "CfgAmmo" >> _shellType >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _lastPos; + _exp setVectorDir _lastVel; + }; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_timeStart", "_endTime", "_baseEjectFnc", "_fireEHParams", "_lastPos", "_lastVel", "_timeExpired", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_delay.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_delay.sqf new file mode 100644 index 0000000000..e2bf55c040 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_delay.sqf @@ -0,0 +1,67 @@ +//fuze_delay.sqf +_shell = _this select 6; +[ + { + if(alive _shell) then { + _pvel = _lastVel; + _ppos = _lastPos; + _lastPos = getPosASL _shell; + _lastVel = velocity _shell; + }; + + }, + [_shell,_gun], + 0, // delay + { + //init + _shell = _this select 0; + _lastPos = []; + _lastVel = []; + _pvel = []; + _ppos = []; + }, + { + //player sideChat format["lastPos: %1 lastVel: %2", _lastPos, _lastVel]; + _v = "ace_arty_105mm_m1_delay_action" createVehicle [0,0,10000]; + _v setPosASL _lastPos; + [_v] call ace_sys_frag_fnc_addManualTrack; + //STARTPOS = _lastPos; + _vel = [_pvel,0.75] call ACE_fnc_vectorMultiply; + _unitVec = _vel call ACE_fnc_unitVector; + _minPen = 0.01; + _maxPen = 0.100; + _pen = ((random 1)*_maxPen) max _minPen; + _vadd = [_unitVec,_pen] call ACE_fnc_vectorMultiply; + _pos = [_lastPos,_vadd] call ACE_fnc_vectorAdd; + _pos set[2, (_pos select 2) max 0]; + _v setPosASL _pos; + _vel set[0, (_vel select 0) + random (0.5)]; + _vel set[1, (_vel select 1) + random (0.5)]; + _vel set[2, (_vel select 2) + random (0.5)]; + + _v setVelocity _vel; + // STARTTIME = diag_tickTime; + // setAccTime 0.01; + // _func = { + // _shell = (_this select 0) select 0; + // drop ["\Ca\Data\Cl_basic","","Billboard",1,20,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[0.25],[[1,0,0,0.5]],[0],0.0,2.0,"","",""]; + // if(alive _shell) then { + // FINALPOS = getPosASL _shell; + // player sideChat format["p: %1 %2 %3", FINALPOS, (velocity _shell)]; + // }; + // if(!(alive _shell)) then { + // [(_this select 1)] call cba_fnc_removePerFrameHandler; + // setAccTime 1; + // player sideChat format["d: %1 t: %2 v: %3", (STARTPOS distance FINALPOS), diag_tickTime-STARTTIME, (velocity _shell)]; + // }; + // }; + // [_func, 0, [_v]] call CBA_fnc_addPerFrameHandler; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_pvel", "_ppos" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_prox.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_prox.sqf new file mode 100644 index 0000000000..78e40e5220 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_prox.sqf @@ -0,0 +1,48 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" +private["_shell"]; + +_shell = _this select 6; +[ + { + _vel = velocity _shell; + if((_vel select 2) < 0) then { + if((getPosATL _shell) select 2 <= 10) then { + _fuzed = true; + //player sideChat format["FIRING!!!! %1", (getPos _shell) select 2]; + _vel = (velocity _shell); + _pos = (getPos _shell); + _explosionClass = getText(configFile >> "CfgAmmo" >> (typeOf _shell) >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _vel; + deleteVehicle _shell; + }; + }; + }, + [_shell], + 0.00, // delay + { + //init + _shell = _this select 0; + _shellType = (typeOf _shell); + _lastPos = []; + _lastVel = []; + _fuzed = false; + }, + { + if(!_fuzed) then { + _vel = (velocity _shell); + _pos = (getPos _shell); + _explosionClass = getText(configFile >> "CfgAmmo" >> (typeOf _shell) >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _vel; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_lastPos", "_lastVel", "_fuzed", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_time.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_time.sqf new file mode 100644 index 0000000000..4c0c95e76e --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/m782/fuze_time.sqf @@ -0,0 +1,108 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" + +private["_shell", "_time", "_endTime", "_roundData", "_action", "_baseEjectFnc", "_timeFunc"]; + +_shell = _this select 6; +_time = time; +_endTime = 100000; +_roundData = (_this select 0) getVariable "ace_sys_arty_roundData"; +{ + if((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; +} forEach _roundData; +_baseEjectFnc = {}; +_action = getText(configFile >> "CfgAmmo" >> (typeOf _shell) >> "ACE_ARTY_BASE_EJECT_HANDLER"); +if (!isNil "_action" && {_action != ""}) then { + _baseEjectFnc = COMPILE_FILE2_SYS(_action); +}; + +_shell = _this select 6; +[ + { + if(alive _shell) then { + _lastPos = getPos _shell; + _lastVel = velocity _shell; + }; + if(_endTime == 100000) then { + _roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; + { + if((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; + } forEach _roundData; + if(_endTime != 100000) then { + (_this select 0) set[2, _endTime]; + }; + }; + + if((_timeStart + _endTime) <= time) then { + _timeExpired = true; + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + _baseEjectFnc = {}; + + if(isNil "_result") then { + _delete = false; + } else { + if(_result) then { + _delete = true; + }; + }; + + if(_delete) then { + deleteVehicle _shell; + } else { + _lastVel = (velocity _shell); + _pos = (getPos _shell); + _explosionClass = getText(configFile >> "CfgAmmo" >> (typeOf _shell) >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _lastVel; + deleteVehicle _shell; + }; + }; + }, + [_shell, _time, _endTime, _baseEjectFnc, _this], + 0.00, // delay + { + //init + _shell = _this select 0; + _timeStart = _this select 1; + _endTime = _this select 2; + _baseEjectFnc = _this select 3; + _fireEHParams = _this select 4; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _timeExpired = false; + }, + { + if(!_timeExpired) then { + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + + if(isNil "_result") then { // || isNull _result // isNull throws script error, as we are processing a bool here. + _delete = false; + } else { + if(_result) then { + _delete = true; + }; + }; + if(_delete) then { + deleteVehicle _shell; + } else { + _explosionClass = getText(configFile >> "CfgAmmo" >> _shellType >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _lastPos; + _exp setVectorDir _lastVel; + }; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_timeStart", "_endTime", "_baseEjectFnc", "_fireEHParams", "_lastPos", "_lastVel", "_timeExpired", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; diff --git a/TO_MERGE/ace/arty_ammunition/fuzes/time/fuze_time.sqf b/TO_MERGE/ace/arty_ammunition/fuzes/time/fuze_time.sqf new file mode 100644 index 0000000000..4b327b40fd --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/fuzes/time/fuze_time.sqf @@ -0,0 +1,108 @@ +//fuze_prox.sqf +#include "\x\ace\addons\sys_arty_ammunition\script_component.hpp" + +private["_shell", "_time", "_endTime", "_roundData", "_action", "_baseEjectFnc", "_timeFunc"]; + +_shell = _this select 6; +_time = time; +_endTime = 100000; +_roundData = (_this select 0) getVariable "ace_sys_arty_roundData"; +{ + if ((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; +} forEach _roundData; +_baseEjectFnc = {}; +_action = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_BASE_EJECT_HANDLER"); +if (!isNil "_action" && {_action != ""}) then { + _baseEjectFnc = COMPILE_FILE2_SYS(_action); +}; + +_shell = _this select 6; +[ + { + if (alive _shell) then { + _lastPos = getPos _shell; + _lastVel = velocity _shell; + }; + if (_endTime == 100000) then { + _roundData = (_fireEHParams select 0) getVariable "ace_sys_arty_roundData"; + { + if((_x select 0) == _shell) exitWith { + _endTime = (_x select 2) select 0; + }; + } forEach _roundData; + if(_endTime != 100000) then { + (_this select 0) set [2, _endTime]; + }; + }; + + if (_timeStart + _endTime <= time) then { + _timeExpired = true; + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + _baseEjectFnc = {}; + + if (isNil "_result") then { + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + + if (_delete) then { + deleteVehicle _shell; + } else { + _lastVel = velocity _shell; + _pos = getPos _shell; + _explosionClass = getText(configFile >> "CfgAmmo" >> typeOf _shell >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _pos; + _exp setVectorDir _lastVel; + deleteVehicle _shell; + }; + }; + }, + [_shell, _time, _endTime, _baseEjectFnc, _this], + 0.0, // delay + { + //init + _shell = _this select 0; + _timeStart = _this select 1; + _endTime = _this select 2; + _baseEjectFnc = _this select 3; + _fireEHParams = _this select 4; + _shellType = typeOf _shell; + _lastPos = []; + _lastVel = []; + _timeExpired = false; + }, + { + if (!_timeExpired) then { + _delete = false; + _result = _fireEHParams call _baseEjectFnc; + + if (isNil "_result") then { // || isNull _result // isNull throws script error, as we are processing a bool here. + _delete = false; + } else { + if (_result) then { + _delete = true; + }; + }; + if (_delete) then { + deleteVehicle _shell; + } else { + _explosionClass = getText(configFile >> "CfgAmmo" >> _shellType >> "ACE_ARTY_EXPLOSION"); + _exp = _explosionClass createVehicle _lastPos; + _exp setVectorDir _lastVel; + }; + }; + }, + { + true + }, + {!alive _shell}, + [ + "_shell", "_timeStart", "_endTime", "_baseEjectFnc", "_fireEHParams", "_lastPos", "_lastVel", "_timeExpired", "_shellType" + ] +] call cba_common_fnc_addPerFrameHandlerLogic; diff --git a/TO_MERGE/ace/arty_ammunition/license.txt b/TO_MERGE/ace/arty_ammunition/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/arty_ammunition/prep_dialog.hpp b/TO_MERGE/ace/arty_ammunition/prep_dialog.hpp new file mode 100644 index 0000000000..f61b0a65d9 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/prep_dialog.hpp @@ -0,0 +1,437 @@ + +#define FontM "Zeppelin32" +#define ClrWhite 1,1,1 +#define ClrBlack 0,0,0 +#define ClrGray 0.5,0.5,0.5 +#define ClrBlue 0.2,0.5,1 + +#define ROUNDS_LISTBOX_ID 20100 +#define CHARGE_LISTBOX_ID 20101 +#define FUZE_SLIDER_ID 20201 + +#define ROWPOS(y) ((0.0219*y)*SafeZoneH) +#define COLPOS(x) ((0.029075*x)*SafeZoneW) + +class ace_arty_ammoprep_RscText { + idc = -1; + type = CT_STATIC; + style = ST_LEFT; + font = FontM; + colorText[] = {1,1,1,1}; + colorBackground[] = {0, 0, 0, 0}; + sizeEx = 0.02*SafeZoneH; + __SW(0.5815); + __SH(0.02); + lineSpacing = 1; +}; + +class ace_arty_ammoprep_RscTextBox { + idc = -1; + type = CT_EDIT; + style = ST_LEFT; + __SW(0.5815); + __SH(0.02); + sizeEx = .02; + font = FontM; + + text = ""; + colorText[] = {1,1,1,1}; + + autocomplete = false; + colorSelection[] = {0,0,0,1}; +}; + +class ace_arty_ammoprep_RscButton { + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + + x = 0.0; + y = 0.0; + __SW(0.2); + __SH(0.03); + sizeEx = 0.015*SafeZoneH; + offsetX = 0; + offsetY = 0.002; + offsetPressedX = 0; + offsetPressedY = 0.002; + borderSize = 0; + + colorText[] = {ClrWhite,1}; + colorBackground[] = {ClrGray, 0.75}; + colorFocused[] = {ClrGray,0}; + + colorShadow[] = {ClrBlack,0}; + colorBorder[] = {ClrWhite,0}; + colorBackgroundActive[] = {ClrGray,0}; + colorDisabled[] = {ClrGray, 0}; + colorBackgroundDisabled[] = {ClrGray,0}; + font = FontM; + + soundEnter[] = {"", 0.2, 1}; + soundPush[] = {"", 0.2, 1}; + soundClick[] = {"", 0.2, 1}; + soundEscape[] = {"", 0.2, 1}; + + default = false; + text = ""; + action = ""; +}; +class RscListNBox; +class ace_arty_ammoprep_RscListNBox: RscListNBox { + type = 102; + idc = -1; + style = ST_SINGLE; + color[] = {1,1,1,1}; + colorText[] = {1,1,1,0.75}; + colorScrollbar[] = {0.95,0.95,0.95,1}; + colorSelect[] = {0.95,0.95,0.95,1}; + colorSelect2[] = {0.95,0.95,0.95,1}; + colorSelectBackground[] = {0.6,0.8392,0.4706,1.0}; + colorSelectBackground2[] = {0.6,0.8392,0.4706,1.0}; + period = 0; + font = FontM; + sizeEx = 0.015*SafeZoneH; + colorBackground[] = {1,0,0,1}; + columns[] = {0.1,0.7}; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + rowHeight = ROWPOS(1); + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 0; + drawSideArrows = 0; + idcLeft = 10001; + idcRight = 10002; + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; + border = "\ca\ui\data\igui_border_scroll_ca.paa"; + }; +}; + +class ace_arty_ammoprep_RscComboBox { + type = 4; + style = "0 + 0x10"; + font = FontM; + sizeEx =0.02*SafeZoneH; + color[] = {1,1,1,1 }; + colorText[] = {1,1,1,1 }; + colorScrollbar[] = {1,1,1,1 }; + colorSelect[] = {1,1,1,1 }; + colorSelect2[] = {90/255, 74/255, 36/255, 0.75}; + colorSelectBackground[] = {0,0,0,1 }; + colorSelectBackground2[] = {90/255, 74/255, 36/255, 0.75}; + period = 1.200000; + colorBackground[] = {90/255, 74/255, 36/255, 0.75}; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + wholeHeight = ROWPOS(4.1); + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + class ScrollBar { + color[] = {0,1,0,1 }; + colorActive[] = {1,1,1,1 }; + colorDisabled[] = {1,1,1,0.300000 }; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; + +class ace_arty_ammoprep_RscListBox { + type = 5; + style = "0 + 0x10"; + font = "Zeppelin32"; + sizeEx = 0.039210; + color[] = {1,1,1,1 }; + colorText[] = {0.543000,0.574200,0.410200,1.000000 }; + colorScrollbar[] = {0,1,0,1 }; + colorSelect[] = {0.950000,0.950000,0.950000,1 }; + colorSelect2[] = {0.950000,0.950000,0.950000,1 }; + colorSelectBackground[] = {0,0,0,1 }; + colorSelectBackground2[] = {0.543000,0.574200,0.410200,1.000000 }; + period = 1.200000; + colorBackground[] = {0,0,0,1 }; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + rowHeight = ROWPOS(1); + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + class ScrollBar { + color[] = {0,1,0,1 }; + colorActive[] = {1,1,1,1 }; + colorDisabled[] = {1,1,1,0.300000 }; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; + +class ace_arty_ammoprep_CheckBox { + idc = -1; + type = CT_TOOLBOX; //defined constant (6) + style = ST_LEFT; //defined constant (2) + + x = 0; + y = 0; + w = COLPOS(2); + h = ROWPOS(1); + + colorText[] = {1, 1, 1, 1}; + color[] = {0, 0, 0, 1}; // seems nothing to change, but define it to avoid error! + colorTextSelect[] = {1, 0, 0, 1}; + colorSelect[] = {0, 0, 1, 1}; + colorTextDisable[] = {0.4, 0.4, 0.4, 1}; + colorDisable[] = {0.4, 0.4, 0.4, 1}; + coloSelectedBg[] = {0.4, 0.4, 0.4, 1}; + font = FontM; + sizeEx = 0.015*SafeZoneH; + + rows = 1; + columns = 2; + strings[] = {"No","Yes"}; + values[] = {0,1}; +}; + +class ace_arty_ammoprep_RscPicture : ace_arty_ammoprep_RscButton +{ + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + text = ""; +}; +class RscControlsGroup; +class ace_arty_ammoprep_ControlGroup:RscControlsGroup { + type = 15; + idc = -1; + style = 16; + __SX(0.125); + __SY(0); + __SW(0.75); + __SH(1); + class VScrollbar { + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + color[] = {1,1,1,1}; + width = 0.001; + }; + class HScrollbar { + color[] = {1,1,1,0}; + height = 0.001; + }; + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; + class controls { }; +}; + +class ace_arty_ammoprep_Display { + idd = 754; + movingEnable = 0; + name = "ace_arty_ammoprep_Display"; + onUnload = QUOTE(_this call FUNC(onDialogClose)); + onLoad = QUOTE(_this call FUNC(onDialogOpen)); + + class controlsBackground { + class ace_arty_ammoprep_Background { + idc = -1; + access = 0; + type = CT_STATIC; + style = ST_LEFT; + colorText[] = { 0, 0, 0, 1 }; + colorBackground[] = {90/255, 74/255, 36/255, 0.75}; + font = FontM; // defined constant + sizeEx = 1*SafeZoneH; + __SX(0.125); + __SY(0); + __SW(0.75); + __SH(1); + + text = ""; + }; + }; + class objects { + // define controls here + }; + class controls { + + class ace_arty_ammoprep_main:ace_arty_ammoprep_ControlGroup { + idc = -1; + class controls { + class GVAR(ammoAvailable):ace_arty_ammoprep_RscText { + x = COLPOS(0); + y = ROWPOS(0); + w = COLPOS(5); + h = ROWPOS(1); + text = "Available Rounds"; + }; + class GVAR(availabeAmmoBG):ace_arty_ammoprep_RscText { + x = COLPOS(0); + y = ROWPOS(1); + w = COLPOS(7); + h = 1*SafeZoneH; + colorBackground[] = {90/255, 74/255, 36/255, 0.75}; + text = ""; + }; + class GVAR(availabeAmmo):ace_arty_ammoprep_RscListBox { + idc = ROUNDS_LISTBOX_ID; + x = COLPOS(0); + y = ROWPOS(1); + w = COLPOS(7); + h = 1*SafeZoneH; + onLBSelChanged = QUOTE(_this call FUNC(onSelectRound)); + }; + + class GVAR(ammoPrepTitle):ace_arty_ammoprep_RscText { + idc = 12555; + x = COLPOS(7); + y = ROWPOS(0); + w = COLPOS(20); + h = ROWPOS(2); + sizeEx = (0.02*SafeZoneH)*2; + text = "Prepare Ammo"; + }; + + class GVAR(ammoCharge):ace_arty_ammoprep_RscText { + x = COLPOS(7); + y = ROWPOS(3); + w = COLPOS(6); + h = ROWPOS(2); + sizeEx = (0.02*SafeZoneH)*2; + text = "Charge"; + }; + + class GVAR(ammoCurrentCharge):ace_arty_ammoprep_RscText { + idc = 12556; + x = COLPOS(7.5); + y = ROWPOS(5); + w = COLPOS(4); + h = ROWPOS(1); + text = "Current Charge:"; + }; + + class GVAR(ammoChargeUp):ace_arty_ammoprep_RscButton { + text = "CHARGE UP"; + x = COLPOS(12); + y = ROWPOS(5); + w = COLPOS(3); + h = ROWPOS(1); + action = QUOTE([1] call FUNC(changeCharge)); + }; + + class GVAR(ammoChargeDown):ace_arty_ammoprep_RscButton { + text = "CHARGE DOWN"; + x = COLPOS(15); + y = ROWPOS(5); + w = COLPOS(3); + h = ROWPOS(1); + action = QUOTE([-1] call FUNC(changeCharge)); + }; + + class GVAR(ammoFuze):ace_arty_ammoprep_RscText { + x = COLPOS(7); + y = ROWPOS(7); + w = COLPOS(6); + h = ROWPOS(2); + sizeEx = (0.02*SafeZoneH)*2; + text = "Fuze"; + }; + + class GVAR(ammoFuzeSelect):ace_arty_ammoprep_RscComboBox { + idc = 12557; + x = COLPOS(7.5); + y = ROWPOS(9); + w = COLPOS(5); + h = ROWPOS(1); + onLBSelChanged = QUOTE(_this call FUNC(onSelectFuze)); + }; + + class GVAR(ammoFuzeTimeLabel):ace_arty_ammoprep_RscText { + idc = 12561; + x = COLPOS(7.5); + y = ROWPOS(11); + w = COLPOS(3); + h = ROWPOS(1); + text = "Fuze Time:"; + }; + + class GVAR(ammoFuzeTime):ace_arty_ammoprep_RscTextBox { + idc = 12560; + x = COLPOS(10.5); + y = ROWPOS(11); + w = COLPOS(2); + h = ROWPOS(1); + text = ""; + }; + + class GVAR(ammoFuzeTimeFormat):ace_arty_ammoprep_RscText { + idc = 12562; + x = COLPOS(12.5); + y = ROWPOS(11); + w = COLPOS(3); + h = ROWPOS(1); + text = "##.#"; + }; + + class GVAR(ammoPrepRoundButton):ace_arty_ammoprep_RscButton { + idc = 31337; + text = "PREP ROUND"; + x = COLPOS(20); + y = ROWPOS(5); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([] call FUNC(onDoPrep)); + }; + + class GVAR(ammoShellImage):ace_arty_ammoprep_RscText { + idc = 12558; + x = (0.75*SafeZoneW)-(0.0675*SafeZoneW); + y = 0*SafeZoneH; + w = 0.0875*SafeZoneW; + h = .5*SafeZoneH; + style = ST_PICTURE; + text = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m1.paa"; + }; + + class GVAR(ammoChargeImage):ace_arty_ammoprep_RscText { + idc = 12559; + x = (0.75*SafeZoneW)-(0.0675*SafeZoneW); + y = .5*SafeZoneH; + w = 0.0875*SafeZoneW; + h = .5*SafeZoneH; + style = ST_PICTURE; + text = "\x\ace\Addons\sys_arty_ammunition\105mm\data\images\m14_chg1.paa"; + }; + + }; + }; + }; +}; + + diff --git a/TO_MERGE/ace/arty_ammunition/script_component.hpp b/TO_MERGE/ace/arty_ammunition/script_component.hpp new file mode 100644 index 0000000000..fe259c01d5 --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/script_component.hpp @@ -0,0 +1,18 @@ +#define COMPONENT sys_arty_ammunition +#include "\x\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_AMMUNITION + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_AMMUNITION + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_AMMUNITION +#endif + +#include "\x\ace\addons\main\script_macros.hpp" +#include "\x\ace\addons\main\script_dialog_defines.hpp" + + +#define ROUNDS_LISTBOX_ID 20100 +#define CHARGE_LISTBOX_ID 20101 +#define FUZE_SLIDER_ID 20201 \ No newline at end of file diff --git a/TO_MERGE/ace/arty_ammunition/stringtable.xml b/TO_MERGE/ace/arty_ammunition/stringtable.xml new file mode 100644 index 0000000000..cff911981b --- /dev/null +++ b/TO_MERGE/ace/arty_ammunition/stringtable.xml @@ -0,0 +1,106 @@ + + + + + +Geschoss vorbereiten +Prepare Shell +Prepare Shell +Připravit náboj +Prepare Shell +Przygotuj nabój +Prepare Shell +Подготовить снаряд +Prepare Shell + + +Geschosse vorbereiten +Prep Arty Rounds +Prep Arty Rounds +Připravit dělostřelecký granát +Prep Arty Rounds +Przygotuj pociski artyleryjskie +Prep Arty Rounds +Подготовить заряды +Prep Arty Rounds + + +Geschütz laden +Load Gun +Load Gun +Nabít dělo +Load Gun +Załaduj działo +Load Gun +Зарядить орудие +Load Gun + + +Geschoss aufnehmen +Pickup Shell +Pickup Shell +Seber náboj +Pickup Shell +Zabierz nabój +Pickup Shell +Поднять снаряд +Pickup Shell + + +Geschoss ablegen +Drop Shell +Drop Shell +Polož náboj +Drop Shell +Zostaw nabój +Drop Shell +Бросить снаряд +Drop Shell + + +Geschoss vorbereiten ... +Preparing Shell.... +Preparing Shell.... +Připravuji náboj.... +Preparing Shell.... +Przygotowanie pocisku... +Preparing Shell.... +Подготавливаем снаряд.... +Preparing Shell.... + + +Geschütz entladen +Unload Gun +Unload Gun +Vybít dělo +Unload Gun +Rozładuj działo +Unload Gun +Разрядить Орудие +Unload Gun + + +Kiste stapeln +Stockpile crates +Stockpile crates +Shromaždit bedny +Stockpile crates +Ułóż skrzynie +Stockpile crates +Сложить ящики +Stockpile crates + + +Geschoss einpacken +Repack shell +Repack shell +Zabalit náboj +Repack shell +Zapakuj pocisk +Repack shell +Переупаковать снаряд +Repack shell + + + + diff --git a/TO_MERGE/ace/arty_computers/$NOBIN$ b/TO_MERGE/ace/arty_computers/$NOBIN$ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/ace/arty_computers/$PBOPREFIX$ b/TO_MERGE/ace/arty_computers/$PBOPREFIX$ new file mode 100644 index 0000000000..7e3b4a7937 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/$PBOPREFIX$ @@ -0,0 +1 @@ +x\ace\Addons\sys_arty_computers \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/CfgVehicles.hpp b/TO_MERGE/ace/arty_computers/CfgVehicles.hpp new file mode 100644 index 0000000000..fa3e1b09e1 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/CfgVehicles.hpp @@ -0,0 +1,52 @@ +class CfgVehicles { + // class Logic; + // class ace_sys_arty_computers_battery: Logic + // { + // displayName = "ACE Artillery Battery"; + // icon = "\ca\modules\ARTY\data\ui\icon_ARTY_ca.paa"; + // vehicleClass = "Modules"; + // class Eventhandlers + // { + // init = "_script = _this execVM '\x\ace\addons\sys_arty_computers\fnc_addBattery.sqf'"; + // }; + // }; + class HMMWV_M1035_DES_EP1; + class ACE_BCS_HMMV: HMMWV_M1035_DES_EP1 { + displayName = $STR_ACE_ARTY_COMPUTERS_BCS_HMMV; + vehicleClass = "ACE_Arty_Equipment"; + class UserActions { + class useGyk37 { + displayName = $STR_ACE_ARTY_COMPUTERS_BCS_HMMV_USECOMP; + displayNameDefault = $STR_ACE_ARTY_COMPUTERS_BCS_HMMV_USECOMP; + priority = -10; + radius = 5; + position = "camera"; + showWindow = 0; + onlyForPlayer = 1; + shortcut = ""; + condition = "(player in this) && {alive this}"; + statement = "[this] call ace_sys_arty_computers_gyk37_fnc_startBCS"; + }; + }; + }; + + class HMMWV; + class ACE_BCS_HMMV_WOODLAND: HMMWV { + displayName = $STR_ACE_ARTY_COMPUTERS_BCS_HMMV_WOODLAND; + vehicleClass = "ACE_Arty_Equipment"; + class UserActions { + class useGyk37 { + displayName = $STR_ACE_ARTY_COMPUTERS_BCS_HMMV_USECOMP; + displayNameDefault = $STR_ACE_ARTY_COMPUTERS_BCS_HMMV_USECOMP; + priority = -10; + radius = 5; + position = "camera"; + showWindow = 0; + onlyForPlayer = 1; + shortcut = ""; + condition = "(player in this) && {alive this}"; + statement = "[this] call ace_sys_arty_computers_gyk37_fnc_startBCS"; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/cfgEventhandlers.hpp b/TO_MERGE/ace/arty_computers/cfgEventhandlers.hpp new file mode 100644 index 0000000000..feae0da8a0 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/cfgEventhandlers.hpp @@ -0,0 +1,5 @@ +// class Extended_PreInit_EventHandlers { + // class ADDON { + // init = QUOTE(call COMPILE_FILE(XEH_preinit)); + // }; +// }; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/config.cpp b/TO_MERGE/ace/arty_computers/config.cpp new file mode 100644 index 0000000000..e855bdb718 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"CAWeapons", "ace_sys_arty", "ace_main"}; + VERSION_CONFIG; + }; +}; + +PRELOAD_ADDONS; + +#include "CfgVehicles.hpp" diff --git a/TO_MERGE/ace/arty_computers/gyk-37/IDC.hpp b/TO_MERGE/ace/arty_computers/gyk-37/IDC.hpp new file mode 100644 index 0000000000..00bf9a2cb7 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/IDC.hpp @@ -0,0 +1,134 @@ +//IDC.hpp + +#define MAIN_ID 1787 +#define MISSION_ID 1788 +#define ADJUST_ID 1789 +#define FFE_ID 1790 + +#define ACRE_CONTROLS 1791 + +#define MAIN_ID_GRID 1880 +#define MAIN_ID_POLAR 1881 +#define MAIN_ID_SHIFT 1882 +#define MAIN_ID_SUPR 1883 +#define MAIN_ID_SMOKE 1884 + +#define IDC_Main_BatteryNameInput 12666 +#define IDC_Main_FDCCallsignInput 12667 +#define IDC_Main_BatteryGridInput 12668 +#define IDC_Main_BatteryAltInput 12669 +#define IDC_Main_BatteryDOFInput 12670 +#define IDC_Main_TargetPrefix 12671 +#define IDC_Main_TargetNumStart 12672 +#define IDC_Main_BatteryType 12673 + +#define IDC_Mission_MissionGridGridInput 13600 +#define IDC_Mission_MissionGridAltInput 13601 + +#define IDC_Mission_MissionPolarObserverSelect 13602 +#define IDC_Mission_MissionPolarObserverInput 13603 +#define IDC_Mission_MissionPolarObserverPosInput 13604 +#define IDC_Mission_MissionPolarOTDirInput 13605 +#define IDC_Mission_MissionPolarRangeInput 13606 +#define IDC_Mission_MissionPolarObserverAltInput 13607 +#define IDC_Mission_MissionPolarAltDifInput 13670 + +#define IDC_Mission_MissionShiftKnowPointSelect 13608 +#define IDC_Mission_MissionShiftAddDropInput 13609 +#define IDC_Mission_MissionShiftLeftRightInput 13610 +#define IDC_Mission_MissionShiftOTDirInput 13611 +#define IDC_Mission_MissionShiftUpDownInput 13612 + +#define IDC_Mission_TargetDescInput 13613 +#define IDC_Mission_TargetRadiusWidthInput 13614 +#define IDC_Mission_TargetLengthInput 13615 +#define IDC_Mission_TargetAttitudeInput 13616 + +#define IDC_Mission_EngageDangerCloseInput 13617 +#define IDC_Mission_EngageAmmunitionTypeSelect 13619 +#define IDC_Mission_EngageFuzeTypeSelect 13620 +#define IDC_Mission_EngageFuzeTimeInput 13621 +#define IDC_Mission_EngageRoundCountInput 13622 +#define IDC_Mission_EngageSheafTypeSelect 13623 + +#define IDC_Mission_ControlMethodOfControlSelect 13624 +#define IDC_Mission_ControlTimeFromNowInput 13625 +#define IDC_Mission_ControlTimeClockInput 13626 + +#define IDC_Adjust_lowDeflectionDisplay 13627 +#define IDC_Adjust_lowElevationDisplay 13628 +#define IDC_Adjust_lowRoundCountDisplay 13629 +#define IDC_Adjust_lowAmmunitionDisplay 13630 +#define IDC_Adjust_lowFuzeDisplay 13631 +#define IDC_Adjust_lowMOCDisplay 13632 + +#define IDC_Adjust_highDeflectionDisplay 13633 +#define IDC_Adjust_highElevationDisplay 13634 +#define IDC_Adjust_highRoundCountDisplay 13635 +#define IDC_Adjust_highAmmunitionDisplay 13636 +#define IDC_Adjust_highFuzeDisplay 13637 +#define IDC_Adjust_highMOCDisplay 13638 + +#define IDC_Adjust_MTODisplay 13639 +#define IDC_Adjust_TTIDisplay 13640 +#define IDC_Adjust_AdjustObserverSelect 13641 +#define IDC_Adjust_AdjustObserver 13642 +#define IDC_Adjust_AdjustObserverPosInput 13643 +#define IDC_Adjust_AdjustObserverAltInput 13644 + +#define IDC_Adjust_AdjustOTDirInput 13645 +#define IDC_Adjust_AdjustLeftRightInput 13646 +#define IDC_Adjust_AdjustAddDropInput 13647 +#define IDC_Adjust_AdjustUpDownInput 13648 + +#define IDC_Adjust_AdjustAmmunitionTypeSelect 13649 +#define IDC_Adjust_AdjustFuzeTypeSelect 13650 +#define IDC_Adjust_AdjustFuzeTimeInput 13651 +#define IDC_Adjust_AdjustRoundCountInput 13652 +#define IDC_Adjust_AdjustSheafTypeSelect 13653 + +#define IDC_FFE_lowDeflectionDisplay 13654 +#define IDC_FFE_lowElevationDisplay 13655 +#define IDC_FFE_lowRoundCountDisplay 13656 +#define IDC_FFE_lowAmmunitionDisplay 13657 +#define IDC_FFE_lowFuzeDisplay 13658 +#define IDC_FFE_lowMOCDisplay 13659 + +#define IDC_FFE_highDeflectionDisplay 13660 +#define IDC_FFE_highElevationDisplay 13661 +#define IDC_FFE_highRoundCountDisplay 13662 +#define IDC_FFE_highAmmunitionDisplay 13663 +#define IDC_FFE_highFuzeDisplay 13664 +#define IDC_FFE_highMOCDisplay 13665 + +#define IDC_FFE_MTODisplayLow 13666 +#define IDC_FFE_TTIDisplay 13667 +#define IDC_FFE_BDAInput 13668 +#define IDC_Mission_EngageNotesInput 13669 + +#define IDC_FFE_highDisplay 13671 +#define IDC_FFE_lowDisplay 13672 +#define IDC_FFE_MTODisplayHigh 13673 + +#define IDC_Mission_EngageAdjustRoundCountInput 13674 +#define IDC_Mission_EngageAdjustPieceInput 13675 + +#define IDC_Main_ObserverSelect 13676 +#define IDC_Main_Observer 13677 +#define IDC_Main_ObserverPosInput 13678 +#define IDC_Main_ObserverAltInput 13679 + +#define IDC_Main_KnownPointSelect 13680 +#define IDC_Main_KnownPoint 13681 +#define IDC_Main_KnownPointPosInput 13682 +#define IDC_Main_KnownPointAltInput 13683 + +#define IDC_Adjust_lowDisplay 13684 +#define IDC_Adjust_highDisplay 13685 +#define IDC_Adjust_MTODisplayLow 13686 +#define IDC_Adjust_MTODisplayHigh 13687 + +#define IDC_FFE_Notes 13688 + +#define IDC_ACRE_RadioName 13689 +#define IDC_ACRE_RadioNet 13690 diff --git a/TO_MERGE/ace/arty_computers/gyk-37/XEH_post_init.sqf b/TO_MERGE/ace/arty_computers/gyk-37/XEH_post_init.sqf new file mode 100644 index 0000000000..f51d3dd629 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/XEH_post_init.sqf @@ -0,0 +1,2 @@ +//XEH_post_init.sqf +#include "script_component.hpp" diff --git a/TO_MERGE/ace/arty_computers/gyk-37/XEH_pre_init.sqf b/TO_MERGE/ace/arty_computers/gyk-37/XEH_pre_init.sqf new file mode 100644 index 0000000000..b7adb3f01a --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/XEH_pre_init.sqf @@ -0,0 +1,67 @@ +#include "script_component.hpp" +#define BCSVER QUOTE(0.1) +#define __arty_vec_lerp COMPILE_FILE2(\ca\modules\ARTY\data\scripts\ARTY_vec_lerp.sqf) + + + +ADDON = false; +// actual work goes here +PREP(startBCS); +PREP(calcBallistics); +PREP(calcFiringSolution); +PREP(getBTable); +PREP(firingSolution); +PREP(formattedBTab); +PREP(switchMenu); +PREP(bcsUnload); +PREP(bcsLoad); +PREP(startMission); +PREP(parseGrid); +PREP(doCompute); +PREP(validateData); +PREP(validateTextField); +PREP(generateSolutions); +PREP(doFFE); +PREP(initMainScreen); +PREP(initMissionScreen); +PREP(populateObserverList); +PREP(returnMainScreen); +PREP(ammoSelectChange); +PREP(setFuzeSelection); +PREP(setFuzeSelectionMission); +PREP(loopRestoreControls); +PREP(bcsLog); +PREP(bcsLogWarn); +PREP(bcsLogError); +PREP(loopSaveControls); +PREP(ffeBack); +PREP(formatFireCommands); +PREP(modifyObserver); +PREP(simpleBallistics); +PREP(populateKnownPointList); +PREP(selectObserver); +PREP(selectKnownPoint); +PREP(modifyKnownPoint); +PREP(loopResetControls); +PREP(callShot); +PREP(doAdjustment); +PREP(initAdjust); +PREP(doComputeAdjust); +PREP(endMission); +PREP(openMap); +PREP(adjustBack); +PREP(cycleRadio); +PREP(openRadio); + + +BIS_ARTY_VEC_LERP = __arty_vec_lerp; +GVAR(currentState) = []; +GVAR(currentScreen) = MAIN_ID; +GVAR(validateError) = false; +GVAR(missionCount) = 0; +GVAR(adjustCount) = 0; +GVAR(missionComputed) = false; +GVAR(openingMap) = false; +GVAR(countDown) = false; + +ADDON = true; diff --git a/TO_MERGE/ace/arty_computers/gyk-37/acre_controls.hpp b/TO_MERGE/ace/arty_computers/gyk-37/acre_controls.hpp new file mode 100644 index 0000000000..b46b8c92fb --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/acre_controls.hpp @@ -0,0 +1,94 @@ +//acre_controls.hpp +#define RGB_GREEN 0, 0.5, 0, 1 +#define RGB_BLUE 0, 0, 1, 1 +#define RGB_ORANGE 0.5, 0.5, 0, 1 +#define RGB_RED 1, 0, 0, 1 +#define RGB_YELLOW 1, 1, 0, 1 +#define RGB_WHITE 1, 1, 1, 1 +#define RGB_GRAY 0.5, 0.5, 0.5, 1 +#define RGB_BLACK 0, 0, 0, 1 +#define RGB_MAROON 0.5, 0, 0, 1 +#define RGB_OLIVE 0.5, 0.5, 0, 1 +#define RGB_NAVY 0, 0, 0.5, 1 +#define RGB_PURPLE 0.5, 0, 0.5, 1 +#define RGB_FUCHSIA 1, 0, 1, 1 +#define RGB_AQUA 0, 1, 1, 1 +#define RGB_TEAL 0, 0.5, 0.5, 1 +#define RGB_LIME 0, 1, 0, 1 +#define RGB_SILVER 0.75, 0.75, 0.75, 1 + +class ace_arty_bcs_acre_controls:ace_arty_bcs_ControlGroup { + idc = ACRE_CONTROLS; + __SX(0.815); + __SY(0.3); + h = ROWPOS(10.1); + w = COLPOS(5.1); + class controls { + class GVAR(CycleDialogBackgroundYellow) { + idc = -1; + type = CT_STATIC; // defined constant + style = ST_CENTER; // defined constant + colorText[] = { 0, 0, 0, 1 }; + colorBackground[] = { RGB_YELLOW }; + font = FontM; // defined constant + sizeEx = 0.023; + x = 0; + y = 0; + h = ROWPOS(10.07); + w = COLPOS(5.12); + text = ""; + }; + class GVAR(CycleDialogBackgroundBlack) { + idc = -1; + type = CT_STATIC; // defined constant + style = ST_CENTER; // defined constant + colorText[] = { 0, 0, 0, 1 }; + colorBackground[] = { RGB_BLACK }; + font = FontM; // defined constant + sizeEx = 0.023; + x = COLPOS(0.05); + y = ROWPOS(0.05); + h = ROWPOS(10); + w = COLPOS(5); + text = ""; + }; + class GVAR(acreControls):ace_arty_bcs_RscText { + text = "ACRE CONTROLS"; + colorText[] = { RGB_YELLOW }; + x = COLPOS(0.05); + y = ROWPOS(0.05); + }; + class GVAR(acreRadio):ace_arty_bcs_RscText { + idc = IDC_ACRE_RadioName; + text = ""; + colorText[] = { RGB_YELLOW }; + x = COLPOS(0.05); + y = ROWPOS(1.05); + }; + class GVAR(acreRadioNet):ace_arty_bcs_RscText { + idc = IDC_ACRE_RadioNet; + text = ""; + colorText[] = { RGB_YELLOW }; + x = COLPOS(0.05); + y = ROWPOS(2.05); + }; + class GVAR(acreCycle):ace_arty_bcs_RscButton { + text = "Cycle"; + x = COLPOS(0.05); + y = ROWPOS(4.05); + w = COLPOS(5); + h = ROWPOS(2); + colorText[] = { RGB_YELLOW }; + action = QUOTE([] call FUNC(cycleRadio)); + }; + class GVAR(acreOpen):ace_arty_bcs_RscButton { + text = "Open"; + x = COLPOS(0.05); + y = ROWPOS(7.05); + w = COLPOS(5); + h = ROWPOS(2); + colorText[] = { RGB_YELLOW }; + action = QUOTE([] call FUNC(openRadio)); + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/adjust.hpp b/TO_MERGE/ace/arty_computers/gyk-37/adjust.hpp new file mode 100644 index 0000000000..2dcdb0133d --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/adjust.hpp @@ -0,0 +1,340 @@ +class ace_arty_bcs_adjust:ace_arty_bcs_ControlGroup { + idc = ADJUST_ID; + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "AN/GYK-37 Battery Computer System (BCS)"; + x = 0; + y = ROWPOS(0); + }; + + class GVAR(batteryInformation):ace_arty_bcs_RscText { + text = "BATTERY INFORMATION"; + x = 0; + y = ROWPOS(1); + }; + + class GVAR(LowSolutionDisplay):ace_arty_bcs_RscText { + idc = IDC_Adjust_lowDisplay; + style = ST_MULTI; + text = "low low low low"; + x = COLPOS(1); + y = ROWPOS(2); + w = COLPOS(18); + h = COLPOS(1.2); + }; + + class GVAR(adjustSolutionUp):ace_arty_bcs_RscButton { + text = "PREV."; + x = COLPOS(1); + y = ROWPOS(4); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_2(-1,true)] call FUNC(changeSolution)); + }; + + class GVAR(adjustSolutionDown):ace_arty_bcs_RscButton { + text = "NEXT"; + x = COLPOS(4); + y = ROWPOS(4); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_2(1,true)] call FUNC(changeSolution)); + }; + + // MESSAGE TO OBSERVER + class GVAR(MTOlow):ace_arty_bcs_RscText { + text = "MESSAGE TO OBSERVER"; + x = COLPOS(0); + y = ROWPOS(5); + w = COLPOS(5); + }; + class GVAR(MTODisplayLow):ace_arty_bcs_RscText { + idc = IDC_Adjust_MTODisplayLow; + style = ST_MULTI; + text = "Message to Observer Message Goes Here Noobs"; + x = COLPOS(1); + y = ROWPOS(6); + w = COLPOS(18); + h = COLPOS(.75); + }; + + class GVAR(TTIShotLow):ace_arty_bcs_RscButton { + text = "SHOT"; + x = COLPOS(1); + y = ROWPOS(9); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_2(0,IDC_Adjust_TTIDisplay)] call FUNC(callShot)); + }; + + class GVAR(TTI):ace_arty_bcs_RscText { + text = "TTI:"; + x = COLPOS(7); + y = ROWPOS(9); + w = COLPOS(2); + }; + class GVAR(TTIDisplay):ace_arty_bcs_RscText { + idc = IDC_Adjust_TTIDisplay; + text = "00.0"; + x = COLPOS(8); + y = ROWPOS(9); + w = COLPOS(2); + }; + + // ADJUST + class GVAR(Adjust):ace_arty_bcs_RscText { + text = "ADJUST"; + x = COLPOS(0); + y = ROWPOS(15); + w = COLPOS(5); + }; + /* + class GVAR(AdjustObserverSelect):ace_arty_bcs_RscText { + text = "Select:"; + x = COLPOS(1); + y = ROWPOS(16); + w = COLPOS(2); + }; + class GVAR(AdjustObserverSelectInput):ace_arty_bcs_RscComboBox { + idc = IDC_Adjust_AdjustObserverSelect; + x = COLPOS(4); + y = ROWPOS(16); + w = COLPOS(5); + h = ROWPOS(1); + onLBSelChanged = QUOTE([ARR_4(IDC_Adjust_AdjustObserverSelect,IDC_Adjust_AdjustObserver,IDC_Adjust_AdjustObserverPosInput,IDC_Adjust_AdjustObserverAltInput)] call FUNC(selectObserver)); + }; + + // Observer Callsign + class GVAR(AdjustObserver):ace_arty_bcs_RscText { + text = "Observer:"; + x = COLPOS(1); + y = ROWPOS(17); + w = COLPOS(2); + }; + class GVAR(AdjustObserverInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustObserver; + x = COLPOS(4); + y = ROWPOS(17); + w = COLPOS(2); + }; + + // Observer Pos + class GVAR(AdjustObserverPos):ace_arty_bcs_RscText { + text = "Observer Pos.:"; + x = COLPOS(1); + y = ROWPOS(18); + w = COLPOS(3); + }; + class GVAR(AdjustObserverPosInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustObserverPosInput; + x = COLPOS(4); + y = ROWPOS(18); + w = COLPOS(2); + }; + + // Observer Alt + class GVAR(AdjustObserverAlt):ace_arty_bcs_RscText { + text = "Observer Alt.:"; + x = COLPOS(1); + y = ROWPOS(19); + w = COLPOS(3); + }; + class GVAR(AdjustObserverAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustObserverAltInput; + x = COLPOS(4); + y = ROWPOS(19); + w = COLPOS(2); + }; + + class GVAR(AdjustUpdateAddObserver):ace_arty_bcs_RscButton { + text = "Add/Update"; + x = COLPOS(7); + y = ROWPOS(19); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_5(IDC_Adjust_AdjustObserverSelect,IDC_Adjust_AdjustObserver,IDC_Adjust_AdjustObserverPosInput,IDC_Adjust_AdjustObserverAltInput,true)] call FUNC(modifyObserver)); + }; + */ + class GVAR(AdjustOTDir):ace_arty_bcs_RscText { + text = "OT. Dir:"; + x = COLPOS(1); + y = ROWPOS(16); + w = COLPOS(2); + }; + class GVAR(AdjustOTDirInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustOTDirInput; + x = COLPOS(4); + y = ROWPOS(16); + w = COLPOS(2); + ACE_BCS_InputName = "Observer Target Direction"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + ACE_BCS_MinNumber = 0; + ACE_BCS_MaxNumber = 6400; + }; + + // Left/Right + class GVAR(AdjustLeftRight):ace_arty_bcs_RscText { + text = "Left/Right:"; + x = COLPOS(1); + y = ROWPOS(17); + w = COLPOS(2); + }; + class GVAR(AdjustLeftRightInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustLeftRightInput; + x = COLPOS(4); + y = ROWPOS(17); + w = COLPOS(2); + text = "0"; + ACE_BCS_InputName = "Adjust left/Right"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Add/Drop + class GVAR(AdjustAddDrop):ace_arty_bcs_RscText { + text = "Add/Drop:"; + x = COLPOS(1); + y = ROWPOS(18); + w = COLPOS(2); + }; + class GVAR(AdjustAddDropInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustAddDropInput; + x = COLPOS(4); + y = ROWPOS(18); + w = COLPOS(2); + text = "0"; + ACE_BCS_InputName = "Adjust Add/Drop"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Up/Down + class GVAR(AdjustUpDown):ace_arty_bcs_RscText { + text = "Up/Down:"; + x = COLPOS(1); + y = ROWPOS(19); + w = COLPOS(2); + }; + class GVAR(AdjustUpDownInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustUpDownInput; + x = COLPOS(4); + y = ROWPOS(19); + w = COLPOS(2); + text = "0"; + ACE_BCS_InputName = "Adjust Up/Down"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + /* + class GVAR(AdjustAmmo):ace_arty_bcs_RscText { + text = "ADJUST AMMO"; + x = COLPOS(10); + y = ROWPOS(15); + w = COLPOS(5); + }; + + // Ammo Type + class GVAR(AdjustAmmunitionType):ace_arty_bcs_RscText { + text = "Ammunition:"; + x = COLPOS(11); + y = ROWPOS(16); + w = COLPOS(3); + }; + class GVAR(AdjustAmmunitionTypeInput):ace_arty_bcs_RscComboBox { + idc = IDC_Adjust_AdjustAmmunitionTypeSelect; + x = COLPOS(14); + y = ROWPOS(16); + w = COLPOS(5); + h = ROWPOS(1); + }; + + // Fuze Type + class GVAR(AdjustFuzeType):ace_arty_bcs_RscText { + text = "Fuze:"; + x = COLPOS(11); + y = ROWPOS(17); + w = COLPOS(3); + }; + class GVAR(AdjustFuzeTypeInput):ace_arty_bcs_RscComboBox { + idc = IDC_Adjust_AdjustFuzeTypeSelect; + x = COLPOS(14); + y = ROWPOS(17); + w = COLPOS(5); + h = ROWPOS(1); + }; + + // Fuze Time + class GVAR(AdjustFuzeTime):ace_arty_bcs_RscText { + text = "Fuze-Time:"; + x = COLPOS(11); + y = ROWPOS(18); + w = COLPOS(3); + }; + class GVAR(AdjustFuzeTimeInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustFuzeTimeInput; + x = COLPOS(14); + y = ROWPOS(18); + w = COLPOS(2); + }; + + // Round Count + class GVAR(AdjustRoundCount):ace_arty_bcs_RscText { + text = "Round Count:"; + x = COLPOS(11); + y = ROWPOS(19); + w = COLPOS(3); + }; + class GVAR(AdjustRoundCountInput):ace_arty_bcs_RscTextBox { + idc = IDC_Adjust_AdjustRoundCountInput; + x = COLPOS(14); + y = ROWPOS(19); + w = COLPOS(2); + }; + + // Sheaf + class GVAR(AdjustSheafType):ace_arty_bcs_RscText { + text = "Sheaf:"; + x = COLPOS(11); + y = ROWPOS(20); + w = COLPOS(3); + }; + class GVAR(AdjustSheafTypeInput):ace_arty_bcs_RscComboBox { + idc = IDC_Adjust_AdjustSheafTypeSelect; + x = COLPOS(14); + y = ROWPOS(20); + w = COLPOS(5); + h = ROWPOS(1); + };*/ + + class GVAR(AdjustFFEButton):ace_arty_bcs_RscButton { + text = "FFE"; + x = COLPOS(16); + y = ROWPOS(23); + w = COLPOS(3); + h = ROWPOS(2); + colorBackground[] = {1, 0, 0, 1}; + action = QUOTE([1] call FUNC(doComputeAdjust)); + }; + + class GVAR(AdjustAdjustButton):ace_arty_bcs_RscButton { + text = "ADJUST"; + x = COLPOS(12); + y = ROWPOS(23); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([0] call FUNC(doComputeAdjust)); + }; + + class GVAR(AdjustBackButton):ace_arty_bcs_RscButton { + text = "BACK"; + x = COLPOS(8); + y = ROWPOS(23); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([] call FUNC(adjustBack)); + }; + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/cfgEventhandlers.hpp b/TO_MERGE/ace/arty_computers/gyk-37/cfgEventhandlers.hpp new file mode 100644 index 0000000000..6647a6e8d5 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/cfgEventhandlers.hpp @@ -0,0 +1,5 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE2(\x\ace\addons\sys_arty_computers\gyk-37\XEH_pre_init.sqf)); + }; +}; diff --git a/TO_MERGE/ace/arty_computers/gyk-37/config.cpp b/TO_MERGE/ace/arty_computers/gyk-37/config.cpp new file mode 100644 index 0000000000..9d9a7c2c19 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"CAWeapons", "ace_main", "ace_sys_arty"}; + VERSION_CONFIG; + }; +}; + +#include "cfgEventhandlers.hpp" +#include "dialogs.hpp" diff --git a/TO_MERGE/ace/arty_computers/gyk-37/data/BCS_FDC.paa b/TO_MERGE/ace/arty_computers/gyk-37/data/BCS_FDC.paa new file mode 100644 index 0000000000..8e015d826a Binary files /dev/null and b/TO_MERGE/ace/arty_computers/gyk-37/data/BCS_FDC.paa differ diff --git a/TO_MERGE/ace/arty_computers/gyk-37/dialogs.hpp b/TO_MERGE/ace/arty_computers/gyk-37/dialogs.hpp new file mode 100644 index 0000000000..9cb52a75a3 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/dialogs.hpp @@ -0,0 +1,322 @@ +#include "script_component.hpp" +#include "\x\ace\addons\main\script_dialog_defines.hpp" +#define FontM "Zeppelin32" +#define ClrWhite 1,1,1 +#define ClrBlack 0,0,0 +#define ClrGray 0.5,0.5,0.5 +#define ClrBlue 0.2,0.5,1 + + + + + +#define ROWPOS(y) ((0.016*y)*SafeZoneW) +#define COLPOS(x) ((0.029075*x)*SafeZoneW) + +#define __SX(var1) x = QUOTE((var1 * safeZoneW) + safeZoneX) +#define __SY(var1) y = QUOTE((var1 * safeZoneW) + safeZoneY) +#define __SW(var1) w = QUOTE(var1 * safeZoneW) +#define __SH(var1) h = QUOTE(var1 * safeZoneW) + +#define BGSIZEH 0.976 +#define BGSIZEW 0.81 +#define CGSIZE 0.59 + +#include "IDC.hpp" + +class ace_arty_bcs_RscText +{ + idc = -1; + type = CT_STATIC; + style = ST_LEFT; + font = FontM; + colorText[] = {1,1,1,1}; + colorBackground[] = {0, 0, 0, 0}; + sizeEx = 0.012*SafeZoneW; + w = COLPOS(5); + h = ROWPOS(0.8); + lineSpacing = 1; +}; + +class ace_arty_bcs_RscTextBox +{ + idc = -1; + type = CT_EDIT; + style = ST_LEFT; + w = COLPOS(5); + h = ROWPOS(0.8); + sizeEx = .02; + font = FontM; + + text = ""; + colorText[] = {1,1,1,1}; + + autocomplete = false; + colorSelection[] = {0.5,0.5,0.5,1}; +}; + +class ace_arty_bcs_RscButton +{ + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + + x = 0.0; + y = 0.0; + w = COLPOS(5); + h = ROWPOS(0.8); + sizeEx = 0.012*SafeZoneW; + offsetX = 0; + offsetY = 0.002; + offsetPressedX = 0; + offsetPressedY = 0.002; + borderSize = 0; + + + + colorText[] = {ClrWhite,1}; + colorBackground[] = {ClrGray, 0.75}; + colorFocused[] = {ClrGray,0}; + + colorShadow[] = {ClrBlack,0}; + colorBorder[] = {ClrWhite,0}; + colorBackgroundActive[] = {ClrGray,0}; + colorDisabled[] = {ClrGray, 0}; + colorBackgroundDisabled[] = {ClrGray,0}; + font = FontM; + + soundEnter[] = {"", 0.2, 1}; + soundPush[] = {"", 0.2, 1}; + soundClick[] = {"", 0.2, 1}; + soundEscape[] = {"", 0.2, 1}; + + default = false; + text = ""; + action = ""; +}; +class RscListNBox; +class ace_arty_bcs_RscListNBox: RscListNBox +{ + type = 102; + idc = -1; + style = ST_SINGLE; + color[] = {1,1,1,1}; + colorText[] = {1,1,1,0.75}; + colorScrollbar[] = {0.95,0.95,0.95,1}; + colorSelect[] = {0.95,0.95,0.95,1}; + colorSelect2[] = {0.95,0.95,0.95,1}; + colorSelectBackground[] = {0.6,0.8392,0.4706,1.0}; + colorSelectBackground2[] = {0.6,0.8392,0.4706,1.0}; + period = 0; + font = FontM; + sizeEx = 0.012*SafeZoneW; + colorBackground[] = {1,0,0,1}; + columns[] = {0.1,0.7}; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + rowHeight = ROWPOS(1); + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 0; + drawSideArrows = 0; + idcLeft = 10001; + idcRight = 10002; + class ScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; + border = "\ca\ui\data\igui_border_scroll_ca.paa"; + }; +}; + +class ace_arty_bcs_RscComboBox { + type = 4; + style = "0 + 0x10"; + font = FontM; + sizeEx = 0.012*SafeZoneW; + color[] = {1,1,1,1 }; + colorText[] = {1,1,1,1 }; + colorScrollbar[] = {1,1,1,1 }; + colorSelect[] = {1,0,1,1 }; + colorSelect2[] = {1,1,0,1 }; + colorSelectBackground[] = {0,0,0,1 }; + colorSelectBackground2[] = {1,1,1,1 }; + period = 1.200000; + colorBackground[] = {0,0,0,1 }; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + wholeHeight = ROWPOS(4.1); + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + class ScrollBar { + color[] = {0,1,0,1 }; + colorActive[] = {1,1,1,1 }; + colorDisabled[] = {1,1,1,0.300000 }; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; + +class ace_arty_bcs_RscListBox : ace_arty_bcs_RscComboBox { + type = 5; + rowHeight = ROWPOS(1); +}; + +class ace_arty_bcs_CheckBox { + idc = -1; + type = CT_TOOLBOX; //defined constant (6) + style = ST_LEFT; //defined constant (2) + + x = 0; + y = 0; + w = COLPOS(2); + h = ROWPOS(0.8); + + colorText[] = {1, 1, 1, 1}; + color[] = {0, 0, 0, 1}; // seems nothing to change, but define it to avoid error! + colorTextSelect[] = {1, 0, 0, 1}; + colorSelect[] = {0, 0, 1, 1}; + colorTextDisable[] = {0.4, 0.4, 0.4, 1}; + colorDisable[] = {0.4, 0.4, 0.4, 1}; + coloSelectedBg[] = {0.4, 0.4, 0.4, 1}; + font = FontM; + sizeEx = 0.012*SafeZoneW; + + rows = 1; + columns = 2; + strings[] = {"No","Yes"}; + values[] = {0,1}; +}; + +class ace_arty_bcs_RscPicture : ace_arty_bcs_RscButton +{ + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + text = ""; +}; +class RscControlsGroup; +class ace_arty_bcs_ControlGroup:RscControlsGroup { + type = 15; + idc = -1; + style = 16; + x = 0.5-((CGSIZE/2)*SafeZoneW); + y = 0.5-(((CGSIZE/2)-0.05)*SafeZoneW); + w = (CGSIZE*SafeZoneW); + h = (CGSIZE*SafeZoneW); + class VScrollbar + { + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + color[] = {1,1,1,1}; + width = 0.001; + }; + class HScrollbar + { + color[] = {1,1,1,0}; + height = 0.001; + }; + class ScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; + class controls { }; +}; + +class ace_arty_bcs_Display { + idd = 754; + movingEnable = 0; + name = "ace_arty_bcs_Display"; + onload = QUOTE([] call FUNC(bcsLoad)); + onUnload = QUOTE([] call FUNC(bcsUnload)); + + class controlsBackground { + class ace_arty_bcs_Background { + idc = -1; + access = 0; + type = CT_STATIC; // defined constant + colorText[] = { 1, 1, 1, 1 }; + colorBackground[] = {0, 0, 0, 0 }; + font = FontM; // defined constant + sizeEx = 1*SafeZoneW; + x = 0.5-((BGSIZEW/2)*SafeZoneW); + y = 0.5-((BGSIZEH/2)*SafeZoneW); + w = (BGSIZEW*SafeZoneW); + h = (BGSIZEH*SafeZoneW); + style = ST_PICTURE; + text = "\x\ace\addons\sys_arty_computers\gyk-37\data\BCS_FDC.paa"; + }; + }; + class objects { + // define controls here + }; + class controls { + + + #include "main.hpp" + #include "mission.hpp" + #include "adjust.hpp" + #include "ffe.hpp" + + + + + class GVAR(log) : ace_arty_bcs_RscListBox { + idc = 10021; + __SX(0.208); + __SY(0.72); + __SW(0.5815); + __SH(0.09); + rowHeight = ROWPOS(0.75); + colorBackground[] = {0,1,0,1 }; + colorText[] = {1,1,1,1 }; + colorScrollbar[] = {1,1,1,1 }; + colorSelect[] = {1,1,1,1 }; + colorSelect2[] = {1,1,1,1 }; + colorSelectBackground[] = {0,0,0,1 }; + colorSelectBackground2[] = {0,0,0,1 }; + }; + + class GVAR(logDivideBar) : ace_arty_bcs_RscText { + text = ""; + __SX(0.208); + __SY(0.715); + __SW(0.5815); + __SH(0.0025); + colorBackground[] = {1,1,1,1}; + }; + + class GVAR(showMapButton): ace_arty_bcs_RscButton { + __SX(0.815); + __SY(0.8); + h = ROWPOS(2); + w = COLPOS(3); + text = "Open Map"; + action = QUOTE([] call FUNC(openMap)); + }; + + #include "acre_controls.hpp" + }; +}; + + diff --git a/TO_MERGE/ace/arty_computers/gyk-37/ffe.hpp b/TO_MERGE/ace/arty_computers/gyk-37/ffe.hpp new file mode 100644 index 0000000000..170d3b19f5 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/ffe.hpp @@ -0,0 +1,137 @@ +class ace_arty_bcs_ffe:ace_arty_bcs_ControlGroup { + idc = FFE_ID; + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "AN/GYK-37 Battery Computer System (BCS)"; + x = 0; + y = ROWPOS(0); + }; + + class GVAR(batteryInformation):ace_arty_bcs_RscText { + text = "BATTERY INFORMATION"; + x = 0; + y = ROWPOS(1); + }; + + class GVAR(LowSolutionDisplay):ace_arty_bcs_RscText { + idc = IDC_FFE_lowDisplay; + style = ST_MULTI; + text = "low low low low"; + x = COLPOS(1); + y = ROWPOS(2); + w = COLPOS(18); + h = COLPOS(1.2); + }; + + class GVAR(SolutionUp):ace_arty_bcs_RscButton { + text = "PREV."; + x = COLPOS(1); + y = ROWPOS(4); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_2(-1,false)] call FUNC(changeSolution)); + }; + + class GVAR(SolutionDown):ace_arty_bcs_RscButton { + text = "NEXT"; + x = COLPOS(4); + y = ROWPOS(4); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_2(1,false)] call FUNC(changeSolution)); + }; + + // MESSAGE TO OBSERVER + class GVAR(MTOlow):ace_arty_bcs_RscText { + text = "MESSAGE TO OBSERVER"; + x = COLPOS(0); + y = ROWPOS(5); + w = COLPOS(5); + }; + + class GVAR(MTODisplayLow):ace_arty_bcs_RscText { + idc = IDC_FFE_MTODisplayLow; + style = ST_MULTI; + text = "Message to Observer Message Goes Here Noobs"; + x = COLPOS(1); + y = ROWPOS(6); + w = COLPOS(18); + h = COLPOS(.75); + }; + + class GVAR(TTIShotLow):ace_arty_bcs_RscButton { + text = "SHOT"; + x = COLPOS(1); + y = ROWPOS(9); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_2(0,IDC_FFE_TTIDisplay)] call FUNC(callShot)); + }; + + class GVAR(TTI):ace_arty_bcs_RscText { + text = "TTI:"; + x = COLPOS(7); + y = ROWPOS(9); + w = COLPOS(1); + }; + class GVAR(TTIDisplay):ace_arty_bcs_RscText { + idc = IDC_FFE_TTIDisplay; + text = "00.0"; + x = COLPOS(8); + y = ROWPOS(9); + w = COLPOS(2); + }; + + // ADJUST + class GVAR(BDA):ace_arty_bcs_RscText { + text = "BATTLE DAMAGE ASSESSMENT"; + x = COLPOS(0); + y = ROWPOS(15); + w = COLPOS(5); + }; + + class GVAR(BDAInput):ace_arty_bcs_RscTextBox { + idc = IDC_FFE_BDAInput; + style = ST_MULTI; + x = COLPOS(1); + y = ROWPOS(16); + w = COLPOS(18); + h = ROWPOS(3); + }; + + class GVAR(Adjust):ace_arty_bcs_RscText { + text = "NOTES"; + x = COLPOS(0); + y = ROWPOS(19); + w = COLPOS(5); + }; + + class GVAR(EngageNotesInput):ace_arty_bcs_RscTextBox { + idc = IDC_FFE_Notes; + style = ST_MULTI; + x = COLPOS(1); + y = ROWPOS(20); + w = COLPOS(18); + h = ROWPOS(2); + }; + + class GVAR(CloseMissionButton):ace_arty_bcs_RscButton { + text = "CLOSE MISSION"; + x = COLPOS(16); + y = ROWPOS(23); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([] call FUNC(endMission)); + }; + + class GVAR(FFEBackButton):ace_arty_bcs_RscButton { + text = "BACK"; + x = COLPOS(1); + y = ROWPOS(23); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([] call FUNC(ffeBack)); + }; + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_adjustBack.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_adjustBack.sqf new file mode 100644 index 0000000000..47a16047ac --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_adjustBack.sqf @@ -0,0 +1,7 @@ +//fnc_adjustBack.sqf +#include "script_component.hpp" +[MISSION_ID] call FUNC(switchMenu); +_missionType = GVAR(currentComputer) getVariable QGVAR(currentMissionType); +(_missionType select 0) call FUNC(initMissionScreen); +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_mission" >> "controls"; +[_controls, GVAR(lastPage)] call FUNC(loopRestoreControls); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_ammoSelectChange.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_ammoSelectChange.sqf new file mode 100644 index 0000000000..6fa736a72f --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_ammoSelectChange.sqf @@ -0,0 +1,6 @@ +//fnc_ammoSelectChange.sqf +#include "script_component.hpp" + +_index = _this select 1; +_data = lbData [IDC_Mission_EngageAmmunitionTypeSelect, _index]; +[_data, ""] call FUNC(setFuzeSelection); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLoad.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLoad.sqf new file mode 100644 index 0000000000..b3ec1bac2c --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLoad.sqf @@ -0,0 +1,165 @@ +//fnc_bcsLoad.sqf +#include "script_component.hpp" + +/* +PREP(calcBallistics); +PREP(calcFiringSolution); +PREP(getBTable); +PREP(firingSolution); +PREP(formattedBTab); +PREP(switchMenu); +PREP(bcsUnload); +PREP(bcsLoad); +PREP(startMission); +PREP(parseGrid); +PREP(doCompute); +PREP(validateData); +PREP(validateTextField); +PREP(generateSolutions); +PREP(doFFE); +PREP(initMainScreen); +PREP(initMissionScreen); +PREP(populateObserverList); +PREP(returnMainScreen); +PREP(ammoSelectChange); +PREP(setFuzeSelection); +PREP(setFuzeSelectionMission); +PREP(loopRestoreControls); +PREP(bcsLog); +PREP(bcsLogWarn); +PREP(bcsLogError); +PREP(loopSaveControls); +PREP(ffeBack); +PREP(modifyObserver); +PREP(simpleBallistics); +PREP(populateKnownPointList); +PREP(selectObserver); +PREP(selectKnownPoint); +PREP(modifyKnownPoint); +PREP(loopResetControls); +PREP(callShot); +PREP(doAdjustment); +PREP(initAdjust); +PREP(doComputeAdjust); +PREP(endMission); +PREP(openMap); +PREP(adjustBack); +PREP(formatFireCommands); +*/ +FUNC(changeSolution) = { + _dir = _this select 0; + _isAdjust = _this select 1; + + _solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; + _solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; + + _solutionsIndexNew = ((_solutionsIndex + _dir) max 0) min ((count _solutions)-1); + GVAR(currentComputer) setVariable [QGVAR(currentSolutionsIndex),_solutionsIndexNew,true]; + if(_solutionsIndexNew != _solutionsIndex) then { + _textLog = format["Selecting solution %1 of %2.", _solutionsIndexNew+1, (count _solutions)]; + BCSLOG(_textLog); + }; + if(_isAdjust) then { + [] call FUNC(doAdjustment); + } else { + [] call FUNC(doFFE); + }; + +}; + + +[] spawn { + waitUntil { + !(isNull (findDisplay 754)) + }; + waitUntil { + !isNil QGVAR(currentComputer) + }; + GVAR(currentScreen) = GVAR(currentComputer) getVariable[QGVAR(currentScreen), MAIN_ID]; + GVAR(lastPage) = GVAR(currentComputer) getVariable[QGVAR(lastPage), [[],[],0]]; + GVAR(missionCount) = GVAR(currentComputer) getVariable[QGVAR(missionCount), 0]; + GVAR(adjustCount) = GVAR(currentComputer) getVariable[QGVAR(adjustCount), 0]; + GVAR(currentState) = GVAR(currentComputer) getVariable [QGVAR(currentState), [[],[],0]]; + + + [GVAR(currentScreen)] call FUNC(switchMenu); + _batteryData = GVAR(currentComputer) getVariable [QGVAR(batteryData), []]; + _logData = GVAR(currentComputer) getVariable [QGVAR(logData), []]; + + _controls = configNamespace >> "ace_arty_bcs_Display" >> "controls"; + switch(GVAR(currentScreen)) do { + case MAIN_ID: { + _controls = _controls >> "ace_arty_bcs_main"; + [] call FUNC(initMainScreen); + }; + case MISSION_ID: { + _controls = _controls >> "ace_arty_bcs_mission"; + _currentMission = GVAR(currentComputer) getVariable QGVAR(currentMissionType); + (_currentMission select 0) call FUNC(initMissionScreen); + }; + case ADJUST_ID: { + _controls = _controls >> "ace_arty_bcs_adjust"; + }; + case FFE_ID: { + _controls = _controls >> "ace_arty_bcs_ffe"; + }; + }; + _controls = _controls >> "controls"; + + if(count(_logData) == 0) then { + BCSLOG("Initializing BCS v." + BCSVER + " Software"); + if(count(_batteryData) == 0) then { + BCSWARN("Battery data is not initialized!"); + }; + } else { + { + [_x] call FUNC(bcsLog); + } forEach _logData; + + if((count GVAR(currentState)) > 1) then { + [_controls] call FUNC(loopRestoreControls); + }; + }; + + if((isClass(configFile >> "CfgPatches" >> "acre_main"))) then { + ctrlShow [ACRE_CONTROLS, true]; + _activeRadio = player getVariable "acre_active_radio"; + + _oblix = [_activeRadio] call acre_sys_radio_fnc_getRadioState; + + _freq = ((_oblix select 0) select 0); + + _baseConfig = inheritsFrom (configFile >> "CfgWeapons" >> _activeRadio); + _realRadio = configName ( _baseConfig ); + _typeName = getText (configFile >> "CfgAcreRadios" >> _realRadio >> "name"); + + ctrlSetText [IDC_ACRE_RadioName, _typeName]; + ctrlSetText [IDC_ACRE_RadioNet, format["%1MHz", _freq]]; + } else { + ctrlShow [ACRE_CONTROLS, false]; + }; + [] spawn { + _startTime = time; + _xSpeed = 0; + _ySpeed = 0; + _sampleSize = 0; + waitUntil { + _wind = ACE_wind; + _xSpeed = _xSpeed + (_wind select 0); + _ySpeed = _ySpeed + (_wind select 1); + _sampleSize = _sampleSize + 1; + if(time - _startTime > 15) then { + GVAR(averageWind) = [_xSpeed/_sampleSize, _ySpeed/_sampleSize, 0]; + _xSpeed = 0; + _ySpeed = 0; + _sampleSize = 0; + _startTime = time; + _p = GVAR(averageWind) call CBA_fnc_vect2polar; + _logTxt = format["Average wind last 15 secs: %1m/s at %2 degrees", (_p select 0), (_p select 1)]; + //BCSLOG(_logTxt); + }; + sleep 0.25; + (isNil QGVAR(currentComputer)) + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLog.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLog.sqf new file mode 100644 index 0000000000..b7faa56fb5 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLog.sqf @@ -0,0 +1,25 @@ +//fnc_bcsLog.sqf +#include "script_component.hpp" +disableSerialization; +_logText = ""; +_refill = false; +if(IS_ARRAY(_this)) then { + _logText = _this select 0; + _refill = true; +} else { + _logText = _this; +}; +_log = ""; +if(!_refill) then { + _dateAr = ["%1-%2-%3 %4:%5"] + date; + _date = format _dateAr; + _log = format["%1: %2", _date, _logText]; + _logData = GVAR(currentComputer) getVariable [QGVAR(logData), []]; + _logData set[(count _logData), _log]; + GVAR(currentComputer) setVariable [QGVAR(logData), _logData]; + TRACE_1("BCS LOG DATA", _log); +} else { + _log = _logText; +}; +_index = lbAdd [10021, _log]; +lbSetCurSel [10021, _index]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLogError.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLogError.sqf new file mode 100644 index 0000000000..266f898b26 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLogError.sqf @@ -0,0 +1,6 @@ +//fnc_bcsLogError.sqf +#include "script_component.hpp" + +_logText = _this; +_format = format["ERROR: %1", _logText]; +_format call FUNC(bcsLog); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLogWarn.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLogWarn.sqf new file mode 100644 index 0000000000..f858b55dcf --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsLogWarn.sqf @@ -0,0 +1,6 @@ +//fnc_bcsLogWarn.sqf +#include "script_component.hpp" + +_logText = _this; +_format = format["WARNING: %1", _logText]; +_format call FUNC(bcsLog); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsUnload.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsUnload.sqf new file mode 100644 index 0000000000..008b31aa12 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_bcsUnload.sqf @@ -0,0 +1,38 @@ +//fnc_bcsUnload.sqf +#include "script_component.hpp" + + +PREP(bcsLoad); + + +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls"; + +switch(GVAR(currentScreen)) do { + case MAIN_ID: { + _controls = _controls >> "ace_arty_bcs_main"; + }; + case MISSION_ID: { + _controls = _controls >> "ace_arty_bcs_mission"; + }; + case ADJUST_ID: { + _controls = _controls >> "ace_arty_bcs_adjust"; + }; + case FFE_ID: { + _controls = _controls >> "ace_arty_bcs_ffe"; + }; +}; + +_controls = _controls >> "controls"; + + +GVAR(currentState) = [] call CBA_fnc_hashCreate; + + +[_controls] call FUNC(loopSaveControls); +if(!GVAR(openingMap)) then { + GVAR(currentComputer) setVariable [QGVAR(currentState), GVAR(currentState), true]; + GVAR(currentComputer) setVariable [QGVAR(currentUser), GVAR(currentComputer), true]; +} else { + GVAR(currentComputer) setVariable [QGVAR(currentState), GVAR(currentState)]; +}; +GVAR(currentComputer) = nil; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_calcBallistics.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_calcBallistics.sqf new file mode 100644 index 0000000000..56af19584c --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_calcBallistics.sqf @@ -0,0 +1,122 @@ +// Ballistic table generator +// +// Creates pre-rendered ballistic data for use with ARTY. +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +private ["_offsetTable", "_offsetIdx", "_useElevation", "_addTab", "_offsetEntry"]; + +_magazine = _this select 0; +_emin = _this select 1; +_emax = _this select 2; +_estep = _this select 3; +_hmin = _this select 4; +_hmax = _this select 5; +_hstep = _this select 6; +_muzzle_velocity = _this select 7; + +_ammo = getText(configFile >> "CfgMagazines" >> _magazine >> "ammo"); +if((count _this) > 6) then { + _muzzle_velocity = getNumber(configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); +}; +_airFriction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction"); + +// Grab offset table if it exists. Offsets are used for calculating rocket artillery trajectories. +// The number of entries in the offset table must match the number of entries in the generated ballistic table, +// based on the elevation step value. + + +_grav = -9.80665; // Gravity constant. +_fps = 60; // Frames per second for calculation. + +// Stops +_minrange = 99999999; +_maxrange = 0; + +// Initialize resultant set of data +_btab = []; +_elevation = 0; + +for [{_elevation=_emin},{_elevation<=_emax},{_elevation=_elevation+_estep}] do { + // Initial params + _vgate = 0; + _gaterng = 0; + _x = 0; + _y = 0.1; + _vx = 0; + _vy = 0; + _ymax = 0; + _xmax = 0; + _vel = _muzzle_velocity; + _fc = 0; + _tof = 0; + + + _useElevation = _elevation; + + // Set t0 parameters + _vx = _vel * cos(_useElevation); + _vy = _vel * sin(_useElevation); + _frame = 1 / _fps; + + _slices = []; + _agate = _hmax; + + while {_y >= _hmin} do + { + // Calculate next velocity frame + _vx = _vx + (_vx * _vel * _airFriction * _frame); + _vy = _vy + (_vy * _vel * _airFriction * _frame); + _vy = _vy + (_grav * _frame); + _vel = sqrt(_vx*_vx + _vy*_vy); + _elev = asin (_vy / _vel); + // Increment positions + _y = _y + (_vy * _frame); + _x = _x + (_vx * _frame); + + // Record max altitude and range + if (_y > _ymax) then + { + _ymax = _y; + }; + if (_x > _xmax) then + { + _xmax = _x; + }; + + // Take slices + + if ((_y < _agate) && (_vy < 0) && (_agate >= _hmin)) then + { + while {_agate > _y} do {_agate = _agate - _hstep;}; + _slices = _slices + [[_x, _y, _fc*_frame, _vel, _elev]]; + }; + + // Increment frame count. + _fc = _fc + 1; + }; + _xmax = _x; + + if (_xmax < _minrange) then + { + _minrange = _xmax; + }; + if (_xmax > _maxrange) then + { + _maxrange = _xmax; + }; + + // Order slices lowest to highest + _rSlices = []; + for [{_a = count(_slices)-1;},{_a >= 0},{_a = _a - 1}] do + { + _rSlices = _rSlices + [_slices select _a]; + }; + + // Put calculated rocket decay points into table if offsets are used. + _addTab = [_elevation, _ymax, _rSlices]; + _btab set [count _btab, _addTab]; +}; + +[_btab, _minrange, _maxrange] diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_calcFiringSolution.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_calcFiringSolution.sqf new file mode 100644 index 0000000000..bad7cceb09 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_calcFiringSolution.sqf @@ -0,0 +1,140 @@ +scriptName format ["%1ARTY\data\scripts\ARTY_tof.sqf (_this: %1)",_this]; +// ARTY_firingSolution.sqf +// +// Use the ballistics table to calculate a firing solution + +#define GETELEV(T,I) ((##T## select ##I##) select 0) +#define GETMAXHEIGHT(T,I) ((##T## select ##I##) select 1) +#define GETSLICES(T,I) ((##T## select ##I##) select 2) + +// Rocket ballistics values +#define GETOFFSETH(T,I) ((##T## select ##I##) select 3) +#define GETOFFSETV(T,I) ((##T## select ##I##) select 4) +#define GETDECAYELEV(T,I) ((##T## select ##I##) select 5) +#define GETDECAYSPD(T,I) ((##T## select ##I##) select 6) + +private ["_firingPos", "_targetPos", "_btab", "_position", "_btab", "_i", "_sliceN", "_sliceNN", "_hmin", "_hmax", "_hstep", "_deltaX", "_deltaY", "_fs"]; + +_deltaX = _this select 0; +_deltaY = _this select 1; +_ballistics = _this select 2; + +_btab = _ballistics select 0; +_minRange = _ballistics select 1; +_maxRange = _ballistics select 2; +_hmin = _ballistics select 3; +_hmax = _ballistics select 4; +_hstep = _ballistics select 5; + +// Blank fs to return if there is an error (i.e. out of range) +_blank = []; + +// _deltaX = [_firingPos select 0, _firingPos select 1, 0] distance [_targetPos select 0, _targetPos select 1, 0]; +// _deltaY = (_targetPos select 2) - (_firingPos select 2); + +// Out of range if height deltaY exceeds height differential in either direction. +if (_deltaY < _hmin || _deltaY > _hmax) exitWith { + if (BIS_ARTY_DEBUG==1) then {textLogFormat ["dY of %1 exceeds vertical range of artillery.", _deltaY];}; + _blank +}; + +_hrange = _hmax - _hmin; +_colL = floor((_deltaY - _hmin)/_hstep); +_colH = ceil((_deltaY - _hmin)/_hstep); + +// deltaY is on a boundary +if (_colL == _colH) then {_colH = _colH + 1}; + +_muY = ((_deltaY - _hmin) - _colL*_hstep) / (_colH*_hstep - _colL*_hstep); + +_distN = 9999999; +_rowN = -1; +_rowNN = -1; +for [{_i=1},{_i < ((count _btab) - 1)},{_i=_i+1}] do +{ + _prevSliceCount = count (GETSLICES(_btab, _i-1)); // Enforce boundary conditions that will come in when picking NN + _slices = GETSLICES(_btab, _i); + _nextSliceCount = count (GETSLICES(_btab, _i+1)); + if ((count _slices) > _colH && + _prevSliceCount > _colH && + _nextSliceCount > _colH) then + { + _v1 = _slices select _colL; // Select data vectors + _v2 = _slices select _colH; + _testVec = [[_v1 select 0], [_v2 select 0], _muY] call BIS_ARTY_VEC_LERP; // Interpolate + _testDist = _testVec select 0; + + if (abs(_testDist - _deltaX) < _distN) then + { + _distN = abs(_testDist - _deltaX); + _rowN = _i; + }; + }; +}; + +// Select nearest neighbor. +_n1 = GETSLICES(_btab,_rowN-1); +_v11 = _n1 select _colL; +_v12 = _n1 select _colH; +_n2 = GETSLICES(_btab,_rowN+1);; +_v21 = _n2 select _colL; +_v22 = _n2 select _colH; +_s1 = [_v11, _v12, _muY] call BIS_ARTY_VEC_LERP; +_s2 = [_v21, _v22, _muY] call BIS_ARTY_VEC_LERP; + +_d1 = _s1 select 0; +_d2 = _s2 select 0; +if (abs(_d1 - _deltaX) < abs(_d2 - _deltaX)) then +{ + _rowNN = (_rowN - 1); + _sliceNN = _s1; +} else { + _rowNN = (_rowN + 1); + _sliceNN = _s2; +}; + +// Check out of range condition in the horizontal +if ((_deltaX < _d1 && _deltaX < _d2) || + (_deltaX > _d1 && _deltaX > _d2)) exitWith { + if (BIS_ARTY_DEBUG==1) then {textLogFormat ["dY = %1, dX = %2 out of firing envelope.", _deltaY, _deltaX];}; + _blank +}; + +_n0 = GETSLICES(_btab,_rowN); +_v1 = _n0 select _colL; +_v2 = _n0 select _colH; +_sliceN = [_v1, _v2, _muY] call BIS_ARTY_VEC_LERP; + +_elevN = GETELEV(_btab,_rowN); +_elevNN = GETELEV(_btab,_rowNN); + +_muX = (_deltaX - (_sliceN select 0)) / ((_sliceNN select 0) - (_sliceN select 0)); + +// Check the type of ballistics table being worked with (single or rocket) +if (count (_btab select 0) >= 7) then +{ + // Load rocket parameters + _offHN = GETOFFSETH(_btab,_rowN); + _offVN = GETOFFSETV(_btab,_rowN); + _decayElevN = GETDECAYELEV(_btab,_rowN); + _decaySpdN = GETDECAYSPD(_btab,_rowN); + _offHNN = GETOFFSETH(_btab,_rowNN); + _offVNN = GETOFFSETV(_btab,_rowNN); + _decayElevNN = GETDECAYELEV(_btab,_rowNN); + _decaySpdNN = GETDECAYSPD(_btab,_rowNN); + + // Rocket-based firing solution. + _fs = [[_elevN, (_sliceN select 0), (_sliceN select 2), (_sliceN select 1), _offHN, _offVN, _decayElevN, _decaySpdN], + [_elevNN, (_sliceNN select 0), (_sliceNN select 2), (_sliceNN select 1), _offHNN, _offVNN, _decayElevNN, _decaySpdNN], + _muX] call BIS_ARTY_VEC_LERP; +} +else +{ + // Single projectile firing solution. + _fs = [[_elevN, (_sliceN select 0), (_sliceN select 2), (_sliceN select 1), (_sliceN select 3), (_sliceN select 4)], + [_elevNN, (_sliceNN select 0), (_sliceNN select 2), (_sliceNN select 1), (_sliceNN select 3), (_sliceNN select 4)], + _muX] call BIS_ARTY_VEC_LERP; +}; + +_fs + diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_callShot.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_callShot.sqf new file mode 100644 index 0000000000..24c9efe9f7 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_callShot.sqf @@ -0,0 +1,40 @@ +//fnc_callShot.sqf +#include "script_component.hpp" + +_mode = _this select 0; +_idc = _this select 1; + +_solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; +_solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; +_currentSolution = _solutions select _solutionsIndex; + +_time = ((_currentSolution select 0) select 2); + +_countDownFunc = { + GVAR(countDown) = true; + _params = _this select 0; + _time = _params select 0; + _startTime = _params select 1; + _idc = _params select 2; + _countDown = _time - (diag_tickTime-_startTime); + _timePrec = (floor((_countDown - (floor _countDown))*10))/10; + _countDown = (floor _countDown)+_timePrec; + _countDown = (_countDown max 0); + _countDownText = ""; + if((_countDown mod 1) == 0) then { + _countDownText = (str _countDown) + ".0"; + } else { + _countDownText = (str _countDown); + }; + ctrlSetText [_idc, _countDownText]; + if(_countDown <= 0) then { + ctrlSetText [_idc, "IMPACT"]; + [(_this select 1)] call cba_fnc_removePerFrameHandler; + GVAR(countDown) = false; + }; +}; +if(!GVAR(countDown)) then { + if(_time > 0) then { + [_countDownFunc, 0.1, [_time, diag_tickTime, _idc]] call CBA_fnc_addPerFrameHandler; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_cycleRadio.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_cycleRadio.sqf new file mode 100644 index 0000000000..837f7921a3 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_cycleRadio.sqf @@ -0,0 +1,58 @@ +//fnc_cycleRadio.sqf +#include "script_component.hpp" + +private["_direction", "_radios", "_count", "_newRadioIndex", "_activeRadio", "_activateRadio", "_oblix", +"_freq", "_baseConfig", "_realRadio", "_typeName", "_radio", "_radioClass"]; +_direction = 1; +_radios = []; +_count = 0; +_newRadioIndex = 0; +_activeRadio = player getVariable "acre_active_radio"; +// populate from local radio list +{ + _radioClass = _x; + _oblix = [_radioClass] call acre_sys_radio_fnc_getRadioState; + _freq = ((_oblix select 0) select 0); + _baseConfig = inheritsFrom (configFile >> "CfgWeapons" >> _radioClass); + _realRadio = configName ( _baseConfig ); + _typeName = getText (configFile >> "CfgAcreRadios" >> _realRadio >> "name"); + _radio = [_typeName, _freq, _radioClass]; + TRACE_2("heh", _radioClass, _activeRadio); + if(_radioClass == _activeRadio) then { + TRACE_1("found index", _count); + _newRadioIndex = _count; + }; + _radios set [(count _radios), _radio]; + _count = _count + 1; +} foreach acre_sys_radio_currentRadioList; +TRACE_1("index was", _newRadioIndex); +TRACE_1("Active was", _activeRadio); +if((count _radios) > 1) then { + if(_direction == 1) then { + if(_newRadioIndex >= (count _radios)-1) then { + _newRadioIndex = 0; + } else { + _newRadioIndex = _newRadioIndex + 1; + }; + } else { + if(_newRadioIndex <= 0) then { + _newRadioIndex = (count _radios) - 1; + } else { + _newRadioIndex = _newRadioIndex - 1; + }; + }; + TRACE_1("radios are", _radios); + TRACE_1("index is", _newRadioIndex); + _activateRadio = _radios select _newRadioIndex; + TRACE_1("Active is now", _activateRadio); + [(_activateRadio select 2)] call acre_sys_radio_fnc_setActiveRadio; + + [(_activateRadio select 0), format["%1Mhz", (_activateRadio select 1)], "", 1] call acre_sys_list_fnc_displayHint; + + + ctrlSetText [IDC_ACRE_RadioName, (_activateRadio select 0)]; + ctrlSetText [IDC_ACRE_RadioNet, format["%1MHz", (_activateRadio select 1)]]; +}; + + + diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_doAdjustment.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doAdjustment.sqf new file mode 100644 index 0000000000..6516f1d9e4 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doAdjustment.sqf @@ -0,0 +1,34 @@ +//fnc_doAdjustment.sqf + +#include "script_component.hpp" + + +[ADJUST_ID] call FUNC(switchMenu); +(configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_adjust" >> "controls") call FUNC(loopResetControls); +GVAR(adjustCount) = GVAR(adjustCount) + 1; +GVAR(currentComputer) setVariable[QGVAR(adjustCount), GVAR(adjustCount), true]; + +_solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; +_solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; + +_missionData = GVAR(currentComputer) getVariable QGVAR(currentMission); +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); + + +_moc = (([_missionData, IDC_Mission_ControlMethodOfControlSelect] call CBA_fnc_hashGet) select 2); + + +_roundCount = parseNumber ([_missionData, IDC_Mission_EngageRoundCountInput] call CBA_fnc_hashGet); +_ammoType = (([_missionData, IDC_Mission_EngageAmmunitionTypeSelect] call CBA_fnc_hashGet) select 2); +_fuze = (([_missionData, IDC_Mission_EngageFuzeTypeSelect] call CBA_fnc_hashGet) select 2); + + +_commands = [(_solutions select _solutionsIndex), _roundCount, _ammoType, _fuze, _moc, true] call FUNC(formatFireCommands); + +GVAR(missionComputed) = true; +ctrlSetText [IDC_Adjust_lowDisplay, (_commands select 0)]; +ctrlSetText [IDC_Adjust_MTODisplayLow, (_commands select 1)]; +ctrlSetText [IDC_Adjust_AdjustOTDirInput, (format["%1", GVAR(currentOT)])]; + + +[] call FUNC(initAdjust); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_doCompute.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doCompute.sqf new file mode 100644 index 0000000000..32761659be --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doCompute.sqf @@ -0,0 +1,102 @@ +//fnc_doCompute.sqf +#include "script_component.hpp" +// PREP(doFFE); +// PREP(formatFireCommands); +_isAdjust = _this select 0; +_missionData = [] call CBA_fnc_hashCreate; +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_mission" >> "controls"; +_valid = [_controls, _missionData] call FUNC(validateData); +if(_valid) then { + GVAR(currentComputer) setVariable [QGVAR(currentMission), _missionData, true]; + _missionType = GVAR(currentComputer) getVariable QGVAR(currentMissionType); + _targetPos = []; + _targetAlt = 0; + switch (toLower(_missionType select 0)) do { + case "grid": { + _ne = ([_missionData, IDC_Mission_MissionGridGridInput] call CBA_fnc_hashGet) call FUNC(parseGrid); + _alt = [_missionData, IDC_Mission_MissionGridAltInput] call CBA_fnc_hashGet; + _targetPos = [(_ne select 0), (_ne select 1), (parseNumber _alt)]; + _targetAlt = (parseNumber _alt); + }; + case "polar": { + _ne = ([_missionData, IDC_Mission_MissionPolarObserverPosInput] call CBA_fnc_hashGet) call FUNC(parseGrid); + _alt = parseNumber ([_missionData, IDC_Mission_MissionPolarObserverAltInput] call CBA_fnc_hashGet); + _ot = parseNumber ([_missionData, IDC_Mission_MissionPolarOTDirInput] call CBA_fnc_hashGet); + GVAR(currentOT) = _ot; + _range = parseNumber ([_missionData, IDC_Mission_MissionPolarRangeInput] call CBA_fnc_hashGet); + _altDif = parseNumber ([_missionData, IDC_Mission_MissionPolarAltDifInput] call CBA_fnc_hashGet); + + _targetPos = [_ne, _range, MIL2DEG(_ot)] call BIS_fnc_relPos; + _targetAlt = _alt + _altDif; + + _targetPos set[2, _targetAlt]; + }; + case "shift": { + _knownPoints = GVAR(currentComputer) getVariable [QGVAR(knownPoints), []]; + _index = lbCurSel IDC_Mission_MissionShiftKnowPointSelect; + _val = lbValue [IDC_Mission_MissionShiftKnowPointSelect, _index]; + _knownPoint = _knownPoints select _val; + _ne = (_knownPoint select 1) call FUNC(parseGrid); + _alt = parseNumber (_knownPoint select 2); + _ot = parseNumber ([_missionData, IDC_Mission_MissionShiftOTDirInput] call CBA_fnc_hashGet); + GVAR(currentOT) = _ot; + _lr = parseNumber ([_missionData, IDC_Mission_MissionShiftLeftRightInput] call CBA_fnc_hashGet); + _ad = parseNumber ([_missionData, IDC_Mission_MissionShiftAddDropInput] call CBA_fnc_hashGet); + _ud = parseNumber ([_missionData, IDC_Mission_MissionShiftUpDownInput] call CBA_fnc_hashGet); + _lrDir = 0; + _adDir = 0; + if(_lr < 0) then { + _lrDir = (_ot + 4800) mod 6400; + } else { + _lrDir = (_ot + 1600) mod 6400; + }; + if(_ad < 0) then { + _adDir = (_ot + 3200) mod 6400; + } else { + _adDir = _ot; + }; + _targetPos = [_ne, (abs _lr), MIL2DEG(_lrDir)] call BIS_fnc_relPos; + _targetPos = [_targetPos, (abs _ad), MIL2DEG(_adDir)] call BIS_fnc_relPos; + _targetAlt = _alt + _ud; + + _targetPos set[2, _targetAlt]; + }; + }; + _batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); + + _gunNE = ([_batteryData, IDC_Main_BatteryGridInput] call CBA_fnc_hashGet) call FUNC(parseGrid); + _gunAlt = parseNumber ([_batteryData, IDC_Main_BatteryAltInput] call CBA_fnc_hashGet); + + _gunPos = [(_gunNE select 0), (_gunNE select 1), _gunAlt]; + + _dof = parseNumber ([_batteryData, IDC_Main_BatteryDOFInput] call CBA_fnc_hashGet); + + + + _roundType = ([_missionData, IDC_Mission_EngageAmmunitionTypeSelect] call CBA_fnc_hashGet) select 2; + _fuzeType = ([_missionData, IDC_Mission_EngageFuzeTypeSelect] call CBA_fnc_hashGet) select 2; + + GVAR(generatingMission) = true; + [_targetPos, _gunPos, _dof, _roundType, _fuzeType] spawn FUNC(generateSolutions); + _isAdjust spawn { + _isAdjust = _this; + ctrlEnable [MISSION_ID, false]; + waitUntil { + !GVAR(generatingMission) + }; + ctrlEnable [MISSION_ID, true]; + _solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; + _solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; + if((count _solutions) > 0) then { + _solution = _solutions select _solutionsIndex; + if((count _solution) > 0) then { + if(_isAdjust) then { + [] call FUNC(doAdjustment); + } else { + [] call FUNC(doFFE); + }; + }; + }; + }; + +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_doComputeAdjust.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doComputeAdjust.sqf new file mode 100644 index 0000000000..7b2ff52075 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doComputeAdjust.sqf @@ -0,0 +1,88 @@ +//fnc_doComputeAdjust.sqf +#include "script_component.hpp" +// PREP(doFFE); +// PREP(formatFireCommands); +_adjustData = [] call CBA_fnc_hashCreate; +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_adjust" >> "controls"; +_valid = [_controls, _adjustData] call FUNC(validateData); +_missionType = _this select 0; + +if(_valid) then { + _adjustments = GVAR(currentComputer) getVariable [QGVAR(currentAdjustments), []]; + _adjustments set[(count _adjustments), _adjustData]; + GVAR(currentComputer) setVariable [QGVAR(currentAdjustments), _adjustments, true]; + _missionData = GVAR(currentComputer) getVariable QGVAR(currentMission); + _targetPos = []; + _targetAlt = 0; + + + _solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; + _solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; + + _solution = _solutions select _solutionsIndex; + _ne = _solution select 2; + + _ot = parseNumber ([_adjustData, IDC_Adjust_AdjustOTDirInput] call CBA_fnc_hashGet); + GVAR(currentOT) = _ot; + _lr = parseNumber ([_adjustData, IDC_Adjust_AdjustLeftRightInput] call CBA_fnc_hashGet); + _ad = parseNumber ([_adjustData, IDC_Adjust_AdjustAddDropInput] call CBA_fnc_hashGet); + _ud = parseNumber ([_adjustData, IDC_Adjust_AdjustUpDownInput] call CBA_fnc_hashGet); + if((_lr != 0 || _ad != 0 || _ud != 0)) then { + _lrDir = 0; + _adDir = 0; + if(_lr < 0) then { + _lrDir = (_ot + 4800) mod 6400; + } else { + _lrDir = (_ot + 1600) mod 6400; + }; + if(_ad < 0) then { + _adDir = (_ot + 3200) mod 6400; + } else { + _adDir = _ot; + }; + _targetPos = [_ne, (abs _lr), MIL2DEG(_lrDir)] call BIS_fnc_relPos; + _targetPos = [_targetPos, (abs _ad), MIL2DEG(_adDir)] call BIS_fnc_relPos; + _targetAlt = (_ne select 2) + _ud; + + _targetPos set[2, _targetAlt]; + + _batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); + + _gunNE = ([_batteryData, IDC_Main_BatteryGridInput] call CBA_fnc_hashGet) call FUNC(parseGrid); + _gunAlt = parseNumber ([_batteryData, IDC_Main_BatteryAltInput] call CBA_fnc_hashGet); + + _gunPos = [(_gunNE select 0), (_gunNE select 1), _gunAlt]; + + _dof = parseNumber ([_batteryData, IDC_Main_BatteryDOFInput] call CBA_fnc_hashGet); + + + + _roundType = ([_missionData, IDC_Mission_EngageAmmunitionTypeSelect] call CBA_fnc_hashGet) select 2; + _fuzeType = ([_missionData, IDC_Mission_EngageFuzeTypeSelect] call CBA_fnc_hashGet) select 2; + + GVAR(generatingMission) = true; + [_targetPos, _gunPos, _dof, _roundType, _fuzeType] spawn FUNC(generateSolutions); + }; + [_missionType] spawn { + _missionType = _this select 0; + ctrlEnable [ADJUST_ID, false]; + waitUntil { + !GVAR(generatingMission) + }; + ctrlEnable [ADJUST_ID, true]; + _solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; + _solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; + if((count _solutions) > 0) then { + _solution = _solutions select _solutionsIndex; + if((count _solution) > 0) then { + if(_missionType == 0) then { + BCSLOG("NEW ADJUSTMENT COMPLETE"); + [] call FUNC(doAdjustment); + } else { + [] call FUNC(doFFE); + }; + }; + }; + }; + +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_doFFE.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doFFE.sqf new file mode 100644 index 0000000000..3c2c9a6af4 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_doFFE.sqf @@ -0,0 +1,28 @@ +//fnc_doFFE.sqf +#include "script_component.hpp" + + +[FFE_ID, true] call FUNC(switchMenu); + +_missionData = GVAR(currentComputer) getVariable QGVAR(currentMission); +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); + +_solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; +_solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; + +_moc = (([_missionData, IDC_Mission_ControlMethodOfControlSelect] call CBA_fnc_hashGet) select 2); + + +_roundCount = parseNumber ([_missionData, IDC_Mission_EngageRoundCountInput] call CBA_fnc_hashGet); +_ammoType = (([_missionData, IDC_Mission_EngageAmmunitionTypeSelect] call CBA_fnc_hashGet) select 2); +_fuze = (([_missionData, IDC_Mission_EngageFuzeTypeSelect] call CBA_fnc_hashGet) select 2); + +_commands = [(_solutions select _solutionsIndex), _roundCount, _ammoType, _fuze, _moc] call FUNC(formatFireCommands); + +GVAR(missionComputed) = true; +ctrlSetText [IDC_FFE_lowDisplay, (_commands select 0)]; +ctrlSetText [IDC_FFE_MTODisplayLow, (_commands select 1)]; + + + +[] call FUNC(initFFE); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_endMission.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_endMission.sqf new file mode 100644 index 0000000000..9f05575869 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_endMission.sqf @@ -0,0 +1,98 @@ +//fnc_endMission.sqf +#include "script_component.hpp" + +_solutions = GVAR(currentComputer) getVariable [QGVAR(currentSolutions),[]]; +_solutionsIndex = GVAR(currentComputer) getVariable [QGVAR(currentSolutionsIndex),0]; +_missionData = GVAR(currentComputer) getVariable QGVAR(currentMission); +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); +_adjustments = GVAR(currentComputer) getVariable [QGVAR(currentAdjustments), []]; +_missionNames = GVAR(currentComputer) getVariable [QGVAR(missionNames), []]; + + + +_targetNumber = parseNumber ([_batteryData, IDC_Main_TargetNumStart] call CBA_fnc_hashGet); +_targetNumber = _targetNumber + GVAR(missionCount); +_targetNumberText = (str _targetNumber); +if(_targetNumber < 1000) then { + _targetNumberText = "0" + _targetNumberText; +}; +if(_targetNumber < 100) then { + _targetNumberText = "0" + _targetNumberText; +}; +if(_targetNumber < 10) then { + _targetNumberText = "0" + _targetNumberText; +}; +_targetPrefix = ([_batteryData, IDC_Main_TargetPrefix] call CBA_fnc_hashGet); + +_targetName = format["%1%2", (toUpper _targetPrefix), _targetNumberText]; + +_bda = ctrlText IDC_FFE_BDAInput; +_notes = ctrlText IDC_Mission_EngageNotesInput; + +_eom = + [ + _targetName, + _solutions, + _missionData, + _batteryData, + _adjustments, + _bda, + _notes + ]; + + +_ne = (_solutions select _solutionsIndex) select 2; + +_easting = floor(_ne select 0); +_eastingStr = str (_easting); +if(_easting < 10000) then { + _eastingStr = "0" + _eastingStr; +}; +if(_easting < 1000) then { + _eastingStr = "0" + _eastingStr; +}; +if(_easting < 100) then { + _eastingStr = "0" + _eastingStr; +}; +if(_easting < 10) then { + _eastingStr = "0" + _eastingStr; +}; + +_northing = floor(_ne select 1); +_northingStr = str (_northing); +if(_northing < 10000) then { + _northingStr = "0" + _northingStr; +}; +if(_northing < 1000) then { + _northingStr = "0" + _northingStr; +}; +if(_northing < 100) then { + _northingStr = "0" + _northingStr; +}; +if(_northing < 10) then { + _northingStr = "0" + _northingStr; +}; + +_grid = _eastingStr + _northingStr; +_alt = (str (_ne select 2)); +_knownPoints = GVAR(currentComputer) getVariable [QGVAR(knownPoints), []]; +_knownPoints set[(count _knownPoints), [_targetName,_grid,_alt]]; +GVAR(currentComputer) setVariable [QGVAR(knownPoints), _knownPoints, true]; + +_storeName = format["ACEARTY%1%2_%3", (floor diag_tickTime), (floor (random 1000)), _targetName]; + +_missionNames set[(count _missionNames), _storeName]; +GVAR(currentComputer) setVariable [_storeName, _eom, true]; + + +_logMsg = format["EOM WROTE MISSION %1 TO COMPUTER", _targetName]; + + +[MAIN_ID] call FUNC(switchMenu); +GVAR(missionComputed) = false; +GVAR(missionCount) = GVAR(missionCount) + 1; +GVAR(currentComputer) setVariable[QGVAR(missionCount), GVAR(missionCount)]; +[] call FUNC(initMainScreen); +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_main" >> "controls"; +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); +[_controls, _batteryData] call FUNC(loopRestoreControls); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_ffeBack.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_ffeBack.sqf new file mode 100644 index 0000000000..45b5f3bb2f --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_ffeBack.sqf @@ -0,0 +1,7 @@ +//fnc_ffeBack.sqf +#include "script_component.hpp" +[MISSION_ID] call FUNC(switchMenu); +_missionType = GVAR(currentComputer) getVariable QGVAR(currentMissionType); +(_missionType select 0) call FUNC(initMissionScreen); +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_mission" >> "controls"; +[_controls, GVAR(lastPage)] call FUNC(loopRestoreControls); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_firingSolution.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_firingSolution.sqf new file mode 100644 index 0000000000..12831a215f --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_firingSolution.sqf @@ -0,0 +1,125 @@ +//fnc_firingSolution.sqf +#include "script_component.hpp" +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC +#define ELEVATION(sol) (floor DEG2MIL((sol select 0))) +#define TOF(sol) ((sol select 2)) + +_fncDeflection = { + private ["_gunPos", "_targetPos", "_x1", "_x2", "_y1", "_y2", "_azimuth", "_reversed", "_deflection"]; + _gunPos = _this select 0; + _targetPos = _this select 1; + _dof = _this select 2; + _reversed = [] call CBA_fnc_northingReversed; + _azimuth = 0; + _x1 = _gunPos select 0; + _x2 = _targetPos select 0; + _y1 = _gunPos select 1; + _y2 = _targetPos select 1; + _azimuth = ((((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + + if(_reversed) then { + _azimuth = (_azimuth*-1 + 360) mod 360; + } else { + _azimuth = _azimuth + 180 mod 360; + }; + //player sideChat format["_az: %1", _azimuth]; + _azimuth = DEG2MIL(_azimuth); + + _deflection = _azimuth - _dof; + + + //ensure return is between 0-6400 + if (_deflection < 0) then {_deflection = _deflection + 6400}; + if (_deflection > 6400) then {_deflection = _deflection - 6400}; + + if(_deflection > 3200) then { + _deflection = _deflection - 6400; + }; + _deflection = round(3200 + _deflection); + _deflection; +}; + +_gunPos = _this select 0; +_targetPos = _this select 1; +_dof = _this select 2; // direction of fire in mils +_magazine = _this select 3; +_tableLow = _this select 4; +_tableHigh = _this select 5; + +_btabLow = [] call COMPILE_FILE2_SYS(_tableLow); +_btabHigh = [] call COMPILE_FILE2_SYS(_tableHigh); + + + +_ammo = getText(configFile >> "CfgMagazines" >> _magazine >> "ammo"); +_isBaseEjecting = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_ISBASEEJECTING"); +_baseEjectingHob = 0; +_baseEjectingSpeed = 1; +_doBaseEjectCompensate = 0; +_baseEjectingFriction = -0.001064; +if(_isBaseEjecting == 1) then { + _baseEjectingHob = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_BASEEJECT_HOB"); + _baseEjectingSpeed = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_BASEEJECT_POWER"); + _doBaseEjectCompensate = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_BASEEJECT_COMPENSATE"); +}; + + + + +_deltaX = [_gunPos select 0, _gunPos select 1, 0] distance [_targetPos select 0, _targetPos select 1, 0]; +_deltaY = ((_targetPos select 2) - (_gunPos select 2)) + _baseEjectingHob + 1; + +_return = [[],[]]; +_low = [_deltaX, _deltaY, _btabLow] call FUNC(calcFiringSolution); +_wind = +GVAR(averageWind); +if((count _low) > 0) then { + // _friction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction"); + // _friction = 0.25; + // _windOffset = [ + // ((_wind select 0)*_friction)*TOF(_low), + // ((_wind select 1)*_friction)*TOF(_low) + // ]; + // player sideChat format["windoffset l: %1", _windOffset]; + // _windOffsetTarget = [(_targetPos select 0) + (_windOffset select 0), (_targetPos select 1) + (_windOffset select 1)]; + + // _deltaX = [_gunPos select 0, _gunPos select 1, 0] distance [_windOffsetTarget select 0, _windOffsetTarget select 1, 0]; + // _low = [_deltaX, _deltaY, _btabLow] call FUNC(calcFiringSolution); + + if(_isBaseEjecting == 1 && _doBaseEjectCompensate == 1) then { + _d = [_baseEjectingFriction, (_low select 4)*_baseEjectingSpeed, (_low select 5), _baseEjectingHob] call FUNC(simpleBallistics); + if(_d > 20) then { + _low = [_deltaX-(_d/2), _deltaY, _btabLow] call FUNC(calcFiringSolution); + }; + + }; + _deflection = [_gunPos, _targetPos, _dof] call _fncDeflection; + _return set[0, [ELEVATION(_low), _deflection, TOF(_low)]]; +}; + +_high = [_deltaX, _deltaY, _btabHigh] call FUNC(calcFiringSolution); +if((count _high) > 0) then { + // _friction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction"); + // _friction = 0.25; + // _windOffset = [ + // ((_wind select 0)*_friction)*TOF(_high), + // ((_wind select 1)*_friction)*TOF(_high) + // ]; + // player sideChat format["windoffset h: %1", _windOffset]; + // _windOffsetTarget = [(_targetPos select 0) + (_windOffset select 0), (_targetPos select 1) + (_windOffset select 1)]; + + // _deltaX = [_gunPos select 0, _gunPos select 1, 0] distance [_windOffsetTarget select 0, _windOffsetTarget select 1, 0]; + // _high = [_deltaX, _deltaY, _btabHigh] call FUNC(calcFiringSolution); + + if(_isBaseEjecting == 1 && _doBaseEjectCompensate == 1) then { + _d = [_baseEjectingFriction, (_high select 4)*_baseEjectingSpeed, (_high select 5), _baseEjectingHob] call FUNC(simpleBallistics); + if(_d > 20) then { + _high = [_deltaX-(_d/2), _deltaY, _btabHigh] call FUNC(calcFiringSolution); + }; + }; + + _deflection = [_gunPos, _targetPos, _dof] call _fncDeflection; + _return set[1, [ELEVATION(_high), _deflection, TOF(_high)]]; +}; +_return \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_formatFireCommands.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_formatFireCommands.sqf new file mode 100644 index 0000000000..3c498a2632 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_formatFireCommands.sqf @@ -0,0 +1,208 @@ +#include "script_component.hpp" + +_solution = _this select 0; +_roundCount = _this select 1; +_ammoType = _this select 2; +_fuze = _this select 3; +_moc = _this select 4; +_adjust = false; + +if((count _this) > 5) then { + _adjust = _this select 5; +}; +_missionType = GVAR(currentComputer) getVariable QGVAR(currentMissionType); +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); + +_standard = "FIRE MISSION, "; + +_deflection = 0; +if((count _solution) > 0) then { + _deflection = round ((_solution select 0) select 1); +}; + +if(_adjust) then { + _standard = _standard + format["PLATOON ADJUST, NUMBER %1, ", ([_missionData, IDC_Mission_EngageAdjustPieceInput] call CBA_fnc_hashGet)]; +} else { + _standard = _standard + "PLATOON "; +}; +_adjustRoundCount = parseNumber ([_missionData, IDC_Mission_EngageAdjustRoundCountInput] call CBA_fnc_hashGet); +if(_adjust) then { + if(_adjustRoundCount > 1) then { + _standard = _standard + format["%1 ROUNDS, ", _adjustRoundCount]; + } else { + _standard = _standard + "1 ROUND, "; + }; +} else { + if(_roundCount > 1) then { + _standard = _standard + format["%1 ROUNDS, ", _roundCount]; + } else { + _standard = _standard + "1 ROUND, "; + }; +}; + +_special = ""; +if(_moc != "ready") then { + _special = _special + "SPECIAL INSTRUCTIONS, "; + if(_moc == "totn" || _moc == "totc") then { + _special = _special + "DO NOT LOAD, "; + }; + _special = _special + "AT MY COMMAND, "; +}; +if((abs(3200-_deflection)) > 400) then { + _dof = parseNumber ([_batteryData, IDC_Main_BatteryDOFInput] call CBA_fnc_hashGet); + _dif = _deflection-3200; + _az = round((_dof + _dif) mod 6400); + if(_az < 0) then { + _az = _az + 6400; + }; + _azText = (str _az); + if(_az < 1000) then { + _azText = "0" + _azText; + }; + if(_az < 100) then { + _azText = "0" + _azText; + }; + if(_az < 10) then { + _azText = "0" + _azText; + }; + _special = _special + format["AZIMUTH %1, ", _azText]; +}; + + + +if(_special != "") then { + _standard = _standard + _special; +}; + +_ammoDisplay = getText(configFile >> "CfgMagazines" >> _ammoType >> "ACE_ARTY_INEFFECT"); +if(!_adjust) then { + _standard = _standard + format["SHELL %1, ", _ammoDisplay]; +}; + + + + + +switch (toLower _fuze) do { + case "time": { + _fuze = "time"; + }; + case "prox": { + _fuze = "vt"; + }; + case "pd": { + _fuze = "quick"; + }; +}; + +_deflectionText = (str _deflection); +if(_deflection < 1000) then { + _deflectionText = "0" + _deflectionText; +}; +if(_deflection < 100) then { + _deflectionText = "0" + _deflectionText; +}; +if(_deflection < 10) then { + _deflectionText = "0" + _deflectionText; +}; + + + + +_mtoStandard = ""; +_mto = ""; +if(!_adjust || GVAR(adjustCount) == 0) then { + if((_missionType select 0) == "polar") then { + _mtoStandard = _mtoStandard + format["%1, ", toUpper ([_missionData, IDC_Mission_MissionPolarObserverInput] call CBA_fnc_hashGet)]; + } else { + _mtoStandard = _mtoStandard + "OBSERVER, "; + }; +}; +_mtoStandard = _mtoStandard + format["%1, ", toUpper ([_batteryData, IDC_Main_FDCCallsignInput] call CBA_fnc_hashGet)]; +if(_adjust) then { + _mtoStandard = _mtoStandard + "HE IN EFFECT, "; +} else { + if(_ammoDisplay != "HE") then { + _mtoStandard = _mtoStandard + format["%1 IN EFFECT, ", _ammoDisplay]; + } else { + if(_fuze != "pd") then { + _mtoStandard = _mtoStandard + format["%1 IN EFFECT, ", toUpper _fuze]; + }; + }; +}; + +if(_adjust) then { + if(_adjustRoundCount > 1) then { + _mtoStandard = _mtoStandard + format["%1 ROUNDS, ", _adjustRoundCount]; + } else { + _mtoStandard = _mtoStandard + "1 ROUND, "; + }; +} else { + if(_roundCount > 1) then { + _mtoStandard = _mtoStandard + format["%1 ROUNDS, ", _roundCount]; + } else { + _mtoStandard = _mtoStandard + "1 ROUND, "; + }; +}; +_targetNumber = parseNumber ([_batteryData, IDC_Main_TargetNumStart] call CBA_fnc_hashGet); +_targetNumber = _targetNumber + GVAR(missionCount); +_targetNumberText = (str _targetNumber); +if(_targetNumber < 1000) then { + _targetNumberText = "0" + _targetNumberText; +}; +if(_targetNumber < 100) then { + _targetNumberText = "0" + _targetNumberText; +}; +if(_targetNumber < 10) then { + _targetNumberText = "0" + _targetNumberText; +}; +_targetPrefix = ([_batteryData, IDC_Main_TargetPrefix] call CBA_fnc_hashGet); + +_mtoStandard = _mtoStandard + format["%1%2, ", (toUpper _targetPrefix), _targetNumberText]; + +_mto = _mtoStandard; + +_solutionText = ""; +if((count _solution) > 0) then { + _solutionText = _standard; + + _solutionText = _solutionText + format["CHARGE %1, ", (_solution select 1)]; + if(!_adjust) then { + _solutionText = _solutionText + format["FUZE %1, ", toUpper _fuze]; + }; + + _fuzeText = ""; + _fuzeTimeFull = ((_solution select 0) select 2); + _fuzePrec = (floor((_fuzeTimeFull - (floor _fuzeTimeFull))*10))/10; + _fuzeTime = (floor _fuzeTimeFull)+_fuzePrec; + if(_fuze == "time") then { + _fuzeText = format["TIME %1", _fuzeTime]; + }; + _mto = _mto + format["TOF %1", _fuzeTime]; + + if(!_adjust && _fuzeText != "") then { + _solutionText = _solutionText + _fuzeText + ", "; + }; + + _solutionText = _solutionText + format["DEFLECTION %1, ", _deflectionText]; + _solutionText = _solutionText + format["QUADRANT %1", ((_solution select 0) select 0)]; + + if(_adjust) then { + if(_roundCount > 1) then { + _solutionText = _solutionText + format[", %1 ROUNDS, ", _roundCount]; + } else { + _solutionText = _solutionText + ", 1 ROUND, "; + }; + if(_ammoDisplay != "HE") then { + _solutionText = _solutionText + format["%1 IN EFFECT, FUZE %2, ", _ammoDisplay, (toUpper _fuze)]; + _solutionText = _solutionText + _fuzeText; + } else { + _solutionText = _solutionText + format["FUZE %1 IN EFFECT", toUpper _fuze]; + if(_fuzeText != "") then { + _solutionText = _solutionText + ", " + _fuzeText; + }; + }; + }; +}; + +[_solutionText, _mto] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_formattedBTab.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_formattedBTab.sqf new file mode 100644 index 0000000000..d0943562dd --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_formattedBTab.sqf @@ -0,0 +1,73 @@ +#include "script_component.hpp" +// ARTY_generateFormattedBTab.sqf +// +// Generates a formatted ballistic table in SQF and copies to clipboard -- For use by designers & config makers. + +private ["_magazine", "_elevMin", "_elevMax", "_elevStep", "_heightMin", "_heightMax", "_heightStep", "_mv", "_airFriction", "_proxy", "_ammo", "_btab", "_rangeMin", "_rangeMax"]; + +_magazine = _this select 0; +_elevMin = _this select 1; +_elevMax = _this select 2; +_elevStep = _this select 3; +_heightMin = _this select 4; +_heightMax = _this select 5; +_heightStep = _this select 6; + +hint "4..."; +_ammo = getText(configFile >> "CfgMagazines" >> _magazine >> "ammo"); +_proxy = getText(configFile >> "CfgAmmo" >> _ammo >> "ARTY_ReplaceWithAmmo"); +_mv = getNumber(configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); + + +// Normal artillery shell calculation +_ammo = getText(configFile >> "CfgMagazines" >> _magazine >> "ammo"); +_airFriction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction"); +hint "2..."; +PREP(calcBallistics); +_btab = [_magazine, _elevMin, _elevMax, _elevStep, _heightMin, _heightMax, _heightStep] call FUNC(calcBallistics); + +_btab = _btab select 0; + +hint "1..."; + +// Calculate min and max range based on median offset. +_mo = floor(((_heightMax - _heightMin) / _heightStep)*0.5); +_rangeMin = 999999; +_rangeMax = -1; +for [{_i=0;},{_i < count(_btab)},{_i=_i+1;}] do +{ + _slice = (_btab select _i) select 2; + if (count _slice >= (_mo+1)) then + { + _range = (_slice select _mo) select 0; + if (_range < _rangeMin) then {_rangeMin = _range;}; + if (_range > _rangeMax) then {_rangeMax = _range;}; + }; +}; + +// Generate SQF +_sqf = ""; +_sqf = _sqf + format ["// ARTY+ACE Module ballistics table.%1// Magazine: %2%1// Ammo: %3%1// AirFriction: %4%1%1%private [""_btab"", ""_minRange"", ""_maxRange"", ""_minHeight"", ""_maxHeight"", ""_hstep""];%1%1", ToString [10], _magazine, _ammo, _airFriction]; +_sqf = _sqf + format ["_btab = [%1", ToString[10]]; +for [{_i=0;},{_i < count(_btab);},{_i=_i+1;}] do +{ + _tail = ","; + if (_i == (count(_btab) - 1)) then + { + _tail = ""; + }; + _sqf =_sqf + format [" %1%2%3", (_btab select _i), _tail, ToString [10] ]; +}; +_sqf = _sqf + format ["];%1%1",ToString [10]]; +_sqf = _sqf + format ["_minHeight = %1;%2", _heightMin, ToString[10]]; +_sqf = _sqf + format ["_maxHeight = %1;%2", _heightMax, ToString[10]]; +_sqf = _sqf + format ["_hstep = %1;%2", _heightStep, ToString[10]]; +_sqf = _sqf + format ["_minRange = %1;%2", _rangeMin, ToString[10]]; +_sqf = _sqf + format ["_maxRange = %1;%2", _rangeMax, ToString[10]]; + +_sqf = _sqf + format ["[_btab, _minRange, _maxRange, _minHeight, _maxHeight, _hstep]%1",ToString[10]]; + +hint "0"; + +copyToClipboard _sqf; +GVAR(FORMATTEDBTAB) = _sqf; diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_generateSolutions.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_generateSolutions.sqf new file mode 100644 index 0000000000..f57efbd1cb --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_generateSolutions.sqf @@ -0,0 +1,77 @@ +//fnc_generateSolutions.sqf +#include "script_component.hpp" +_targetPos = _this select 0; +_gunPos = _this select 1; +_dof = _this select 2; +_roundType = _this select 3; +_fuzeType = _this select 4; + + +_roundInfo = (configFile >> "CfgMagazines" >> _roundType); + +_btableTemplate = getText(_roundInfo >> "ACE_ARTY_BTABS"); +_minCharge = getNumber(_roundInfo >> "ACE_ARTY_MINCHARGE"); +_maxCharge = getNumber(_roundInfo >> "ACE_ARTY_MAXCHARGE"); +_magazineTemplate = getText(_roundInfo >> "ACE_ARTY_MAGAZINE_FORMAT"); + +_displayName = getText(_roundInfo >> "displayName"); + + +_highTables = []; +_lowTables = []; +_fastestLow = 100000; +_fastestHigh = 100000; +_bestHigh = []; +_bestLow = []; +_found = false; +_tableCount = 0; +_highSolutions = []; +_lowSolutions = []; +for "_i" from _minCharge to _maxCharge do { + _magazine = format[_magazineTemplate, _fuzeType, _i]; + _highTable = format[_btableTemplate, "HA", _i]; + _lowTable = format[_btableTemplate, "LA", _i]; + _log = format["Generating %1 solution, charge %2.", _displayName, _i]; + BCSLOG(_log); + _result = [_gunPos, _targetPos, _dof, _magazine, _lowTable, _highTable] call FUNC(firingSolution); + _lowTables set[(count _lowTables), [(_result select 0), _i, _targetPos]]; + _highTables set[(count _highTables), [(_result select 1), _i, _targetPos]]; + _resultLog = format["Solution for %1 charge %2; ", _displayName, _i]; + + if((count (_result select 1)) > 0) then { + _found = true; + _highSolutions set[(count _highSolutions), [(_result select 1), _i, _targetPos]]; + _tableCount = _tableCount + 1; + _resultLog = _resultLog + "High: Yes; "; + } else { + _resultLog = _resultLog + "High: No; "; + }; + if((count (_result select 0)) > 0) then { + _lowSolutions set[(count _lowSolutions), [(_result select 0), _i, _targetPos]]; + _found = true; + _tableCount = _tableCount + 1; + _resultLog = _resultLog + "Low: Yes"; + } else { + _resultLog = _resultLog + "Low: No"; + }; + BCSLOG(_resultLog); +}; + +_lowSolutionsRev = []; + +for "_i" from (count _lowSolutions)-1 to 0 step -1 do { + _lowSolutionsRev set[(count _lowSolutionsRev), _lowSolutions select _i]; +}; + +if(!_found) then { + BCSERROR("No solution could be found for the current target!"); +} else { + GVAR(solutions) = _lowSolutionsRev + _highSolutions; + _text = format["%1 valid firing solutions found for %2.", _tableCount, _displayName]; + BCSLOG(_text); + GVAR(currentComputer) setVariable [QGVAR(currentSolutions), GVAR(solutions), true]; + GVAR(currentComputer) setVariable [QGVAR(currentSolutionsIndex), 0, true]; +}; + + +GVAR(generatingMission) = false; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_getBTable.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_getBTable.sqf new file mode 100644 index 0000000000..0d14abf639 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_getBTable.sqf @@ -0,0 +1,16 @@ +//fnc_getBTable.sqf +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +_magazine = _this select 0; +_emin = _this select 1; +_emax = _this select 2; +_estep = _this select 3; +_hmin = _this select 4; +_hmax = _this select 5; +_hstep = _this select 6; + +_btable = _this call DEMO_fnc_calcBallistics; +[(_btable select 0), (_btable select 1), (_btable select 2), _hmin, _hmax, _hstep] + diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_initAdjust.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_initAdjust.sqf new file mode 100644 index 0000000000..c70918e154 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_initAdjust.sqf @@ -0,0 +1,4 @@ +//fnc_initAdjust.sqf +#include "script_component.hpp" + +IDC_Adjust_AdjustObserverSelect call FUNC(populateObserverList); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_initMainScreen.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_initMainScreen.sqf new file mode 100644 index 0000000000..3f8854efc8 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_initMainScreen.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +_batteryTypes = (configFile >> "CfgAceArtyBatteryType"); +lbClear IDC_Main_BatteryType; +for "_i" from 0 to (count _batteryTypes)-1 do { + _type = _batteryTypes select _i; + _index = lbAdd [IDC_Main_BatteryType, (getText(_type >> "name"))]; + lbSetData [IDC_Main_BatteryType, _index, configName(_type)]; +}; +lbSetCurSel [IDC_Main_BatteryType, 0]; +GVAR(missionComputed) = false; +IDC_Main_ObserverSelect call FUNC(populateObserverList); +IDC_Main_KnownPointSelect call FUNC(populateKnownPointList); +GVAR(currentComputer) setVariable [QGVAR(currentMission), [], true]; diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_initMissionScreen.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_initMissionScreen.sqf new file mode 100644 index 0000000000..08b34b1604 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_initMissionScreen.sqf @@ -0,0 +1,59 @@ +#include "script_component.hpp" + +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); +_batteryType = [_batteryData, IDC_Main_BatteryType] call CBA_fnc_hashGet; +_ammunitionTypes = getArray(configFile >> "CfgAceArtyBatteryType" >> (_batteryType select 2) >> "ammunition"); +lbClear IDC_Mission_EngageAmmunitionTypeSelect; + +{ + _displayName = getText(configFile >> "CfgMagazines" >> _x >> "ACE_ARTY_INEFFECT"); + _index = lbAdd [IDC_Mission_EngageAmmunitionTypeSelect, _displayName]; + lbSetData [IDC_Mission_EngageAmmunitionTypeSelect, _index, _x]; +} forEach _ammunitionTypes; + +lbSetCurSel [IDC_Mission_EngageAmmunitionTypeSelect, 0]; +[(_ammunitionTypes select 0), ""] call FUNC(setFuzeSelectionMission); + +_sheafs = ["Parallel"]; +lbClear IDC_Mission_EngageSheafTypeSelect; +{ + _index = lbAdd [IDC_Mission_EngageSheafTypeSelect, _x]; + lbSetData [IDC_Mission_EngageSheafTypeSelect, _index, _x]; +} forEach _sheafs; +lbSetCurSel [IDC_Mission_EngageSheafTypeSelect, 0]; +_moc = [ + ["Fire When Ready", "ready"], + ["At My Command", "amc"], + ["ToT From Now", "totn"], + ["ToT From Clock", "totc"] + ]; +lbClear IDC_Mission_ControlMethodOfControlSelect; +{ + _index = lbAdd [IDC_Mission_ControlMethodOfControlSelect, _x select 0]; + lbSetData [IDC_Mission_ControlMethodOfControlSelect, _index, _x select 1]; +} forEach _moc; +lbSetCurSel [IDC_Mission_ControlMethodOfControlSelect, 0]; +_types = [MAIN_ID_GRID, MAIN_ID_POLAR, MAIN_ID_SHIFT]; +{ + ctrlShow [_x, false]; +} forEach _types; +_missionType = _this; +switch(_missionType) do { + case "grid": { + ctrlShow [MAIN_ID_GRID, true]; + }; + case "polar": { + ctrlShow [MAIN_ID_POLAR, true]; + IDC_Mission_MissionPolarObserverSelect call FUNC(populateObserverList); + }; + case "shift": { + ctrlShow [MAIN_ID_SHIFT, true]; + IDC_Mission_MissionShiftKnowPointSelect call FUNC(populateKnownPointList); + }; +}; + +GVAR(adjustCount) = 0; +GVAR(currentComputer) setVariable[QGVAR(adjustCount), GVAR(adjustCount), true]; +GVAR(currentComputer) setVariable [QGVAR(currentAdjustments), [], true]; +GVAR(currentComputer) setVariable [QGVAR(currentSolutions), []]; +GVAR(currentComputer) setVariable [QGVAR(currentSolutionsIndex), 0]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopResetControls.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopResetControls.sqf new file mode 100644 index 0000000000..ca83198ce0 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopResetControls.sqf @@ -0,0 +1,34 @@ +//fnc_loopResetControls.sqf +#include "script_component.hpp" +private ["_controls"]; +_controls = _this; +for "_i" from 0 to (count _controls)-1 do { + _control = _controls select _i; + _type = getNumber(_control >> "type"); + _idc = getNumber(_control >> "idc"); + + if(_idc != -1) then { + switch(_type) do { + case CT_EDIT: { + _defaultText = getText(_control >> "text"); + ctrlSetText [_idc, _defaultText]; + }; + case CT_STATIC: { + _defaultText = getText(_control >> "text"); + ctrlSetText [_idc, _defaultText]; + }; + case CT_COMBO: { + lbSetCurSel [_idc, 0]; + }; + case CT_LISTBOX: { + lbSetCurSel [_idc, 0]; + }; + case CT_TOOLBOX: { + + }; + case CT_CONTROLS_GROUP: { + (_control >> "controls") call FUNC(loopResetControls); + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopRestoreControls.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopRestoreControls.sqf new file mode 100644 index 0000000000..b41f0a848c --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopRestoreControls.sqf @@ -0,0 +1,45 @@ +//fnc_loopRestoreControls.sqf +#include "script_component.hpp" +#define GETSTATE(idc,data) [data,idc] call CBA_fnc_hashGet +private ["_controls"]; +_controls = _this select 0; +_data = GVAR(currentState); +if((count _this) > 1) then { + _data = _this select 1; +}; +for "_i" from 0 to (count _controls)-1 do { + _control = _controls select _i; + _type = getNumber(_control >> "type"); + _idc = getNumber(_control >> "idc"); + + if(_idc != -1) then { + switch(_type) do { + case CT_EDIT: { + _text = GETSTATE(_idc,_data); + ctrlSetText [_idc, _text]; + }; + case CT_STATIC: { + _text = GETSTATE(_idc,_data); + ctrlSetText [_idc, _text]; + }; + case CT_COMBO: { + _index = GETSTATE(_idc,_data); + if(IS_ARRAY(_index)) then { + lbSetCurSel [_idc, (_index select 0)]; + }; + }; + case CT_LISTBOX: { + _index = GETSTATE(_idc,_data); + if(IS_ARRAY(_index)) then { + lbSetCurSel [_idc, (_index select 0)]; + }; + }; + case CT_TOOLBOX: { + + }; + case CT_CONTROLS_GROUP: { + [(_control >> "controls"),_data] call FUNC(loopRestoreControls); + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopSaveControls.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopSaveControls.sqf new file mode 100644 index 0000000000..f7658729f6 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_loopSaveControls.sqf @@ -0,0 +1,40 @@ +//fnc_loopSaveControls.sqf +#include "script_component.hpp" +#define STATESET(data,key,val) [data,key,val] call CBA_fnc_hashSet +private ["_controls"]; +_controls = _this select 0; +_data = GVAR(currentState); +if((count _this) > 1) then { + _data = _this select 1; +}; + +for "_i" from 0 to (count _controls)-1 do { + _control = _controls select _i; + _type = getNumber(_control >> "type"); + _idc = getNumber(_control >> "idc"); + + if(_idc != -1) then { + switch(_type) do { + case CT_EDIT: { + _text = ctrlText _idc; + STATESET(_data,_idc,_text); + }; + case CT_STATIC: { + _text = ctrlText _idc; + STATESET(_data,_idc,_text); + }; + case CT_COMBO: { + STATESET(_data,_idc,[(lbCurSel _idc)]); + }; + case CT_LISTBOX: { + STATESET(_data,_idc,[(lbCurSel _idc)]); + }; + case CT_TOOLBOX: { + + }; + case CT_CONTROLS_GROUP: { + [(_control >> "controls"), _data] call FUNC(loopSaveControls); + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_modifyKnownPoint.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_modifyKnownPoint.sqf new file mode 100644 index 0000000000..1d645ce889 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_modifyKnownPoint.sqf @@ -0,0 +1,35 @@ +//fnc_modifyKnownPoint.sqf +#include "script_component.hpp" + +_knownPoints = GVAR(currentComputer) getVariable [QGVAR(knownPoints), []]; +_knownPointName = ctrlText (_this select 1); +_knownPointGrid = ctrlText (_this select 2); +_knownPointAlt = ctrlText (_this select 3); + +_clear = false; +if((count _this) > 4) then { + _clear = _this select 4; +}; + +_index = lbCurSel (_this select 0); + +if(_index == 0) then { + _knownPoints set[(count _knownPoints), [_knownPointName,_knownPointGrid,_knownPointAlt]]; + GVAR(currentComputer) setVariable [QGVAR(knownPoints), _knownPoints, true]; + _logMsg = format["Added Known Point %1 at Grid: %2 Alt: %3", _knownPointName,_knownPointGrid,_knownPointAlt]; + BCSLOG(_logMsg); +} else { + _obIndex = lbValue [(_this select 0), _index]; + _knownPoints set[_obIndex, [_knownPointName,_knownPointGrid,_knownPointAlt]]; + GVAR(currentComputer) setVariable [QGVAR(knownPoints), _knownPoints, true]; + _logMsg = format["Updated Known Point %1 at Grid: %2 Alt: %3", _knownPointName,_knownPointGrid,_knownPointAlt]; + BCSLOG(_logMsg); +}; +(_this select 0) call FUNC(populateKnownPointList); +if(_clear) then { + ctrlSetText [(_this select 1), ""]; + ctrlSetText [(_this select 2), ""]; + ctrlSetText [(_this select 3), ""]; +} else { + lbSetCurSel [(_this select 0), (count _knownPoints)]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_modifyObserver.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_modifyObserver.sqf new file mode 100644 index 0000000000..1d801ba9c8 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_modifyObserver.sqf @@ -0,0 +1,35 @@ +//fnc_modifyObserver.sqf +#include "script_component.hpp" + +_observers = GVAR(currentComputer) getVariable [QGVAR(observers), []]; +_observerName = ctrlText (_this select 1); +_observerGrid = ctrlText (_this select 2); +_observerAlt = ctrlText (_this select 3); + +_clear = false; +if((count _this) > 4) then { + _clear = _this select 4; +}; + +_index = lbCurSel (_this select 0); + +if(_index == 0) then { + _observers set[(count _observers), [_observerName,_observerGrid,_observerAlt]]; + GVAR(currentComputer) setVariable [QGVAR(observers), _observers, true]; + _logMsg = format["Added Observer %1 at Grid: %2 Alt: %3", _observerName,_observerGrid,_observerAlt]; + BCSLOG(_logMsg); +} else { + _obIndex = lbValue [(_this select 0), _index]; + _observers set[_obIndex, [_observerName,_observerGrid,_observerAlt]]; + GVAR(currentComputer) setVariable [QGVAR(observers), _observers, true]; + _logMsg = format["Updated Observer %1 at Grid: %2 Alt: %3", _observerName,_observerGrid,_observerAlt]; + BCSLOG(_logMsg); +}; +(_this select 0) call FUNC(populateObserverList); +if(_clear) then { + ctrlSetText [(_this select 1), ""]; + ctrlSetText [(_this select 2), ""]; + ctrlSetText [(_this select 3), ""]; +} else { + lbSetCurSel [(_this select 0), (count _observers)]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_openMap.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_openMap.sqf new file mode 100644 index 0000000000..40d3c5f91e --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_openMap.sqf @@ -0,0 +1,15 @@ +//fnc_openMap.sqf +#include "script_component.hpp" +_computer = GVAR(currentComputer); +GVAR(openingMap) = true; +closeDialog 754; +openMap true; +_computer spawn { + _computer = _this; + waitUntil { + _vis = visibleMap; + (!_vis) + }; + [_computer] call FUNC(startBCS); + GVAR(openingMap) = false; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_openRadio.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_openRadio.sqf new file mode 100644 index 0000000000..d0d4df04a9 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_openRadio.sqf @@ -0,0 +1,4 @@ +//fnc_openRadio.sqf +#include "script_component.hpp" + +[] call acre_sys_radio_fnc_openRadio; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_parseGrid.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_parseGrid.sqf new file mode 100644 index 0000000000..0e6e690efb --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_parseGrid.sqf @@ -0,0 +1,32 @@ +//fnc_parseGrid.sqf +#include "script_component.hpp" + +_grid = _this; +_gridArray = toArray _grid; +_easting = []; +_northing = []; +for "_i" from 0 to (count _gridArray)-1 do { + if(_i < (count _gridArray)/2) then { + _easting set[(count _easting), (_gridArray select _i)]; + } else { + _northing set[(count _northing), (_gridArray select _i)]; + }; +}; +_m = 10000; +_eastingTotal = 0; +_northingTotal = 0; + +for "_i" from 0 to (count _northing)-1 do { + _eastingTotal = _eastingTotal + ((parseNumber (toString [(_easting select _i)]))*_m); + _northingTotal = _northingTotal + ((parseNumber ( toString [(_northing select _i)]))*_m); + _m = _m/10; +}; + +_reversed = [] call CBA_fnc_northingReversed; +if(_reversed) then { + _northingTotal = _northingTotal + (_m*10); + _northingTotal-((_m*10)/2) +} else { + _northingTotal+((_m*10)/2) +}; +[_eastingTotal+((_m*10)/2), _northingTotal] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_populateKnownPointList.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_populateKnownPointList.sqf new file mode 100644 index 0000000000..7c17807b89 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_populateKnownPointList.sqf @@ -0,0 +1,17 @@ +#include "script_component.hpp" +_idc = _this; +_knownPoints = GVAR(currentComputer) getVariable [QGVAR(knownPoints), []]; +// [_name, _pos, _alt] +lbClear _idc; +if(_idc == IDC_Main_KnownPointSelect) then { + _index = lbAdd [_idc, "New Known Point"]; + lbSetValue [_idc, _index, -1]; +} else { + _index = lbAdd [_idc, "Select Known Point"]; + lbSetValue [_idc, _index, -1]; +}; +{ + _index = lbAdd [_idc, (_x select 0)]; + lbSetValue [_idc, _index, _forEachIndex]; +} forEach _knownPoints; +lbSetCurSel [_idc, 0]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_populateObserverList.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_populateObserverList.sqf new file mode 100644 index 0000000000..24c0ae578a --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_populateObserverList.sqf @@ -0,0 +1,12 @@ +#include "script_component.hpp" +_idc = _this; +_observers = GVAR(currentComputer) getVariable [QGVAR(observers), []]; +// [_name, _pos, _alt] +lbClear _idc; +_index = lbAdd [_idc, "New Observer"]; +lbSetValue [_idc, _index, -1]; +{ + _index = lbAdd [_idc, (_x select 0)]; + lbSetValue [_idc, _index, _forEachIndex]; +} forEach _observers; +lbSetCurSel [_idc, 0]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_returnMainScreen.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_returnMainScreen.sqf new file mode 100644 index 0000000000..660a526173 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_returnMainScreen.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + + +[MAIN_ID] call FUNC(switchMenu); +GVAR(missionComputed) = false; +[] call FUNC(initMainScreen); +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_main" >> "controls"; +_batteryData = GVAR(currentComputer) getVariable QGVAR(batteryData); +[_controls, _batteryData] call FUNC(loopRestoreControls); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_selectKnownPoint.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_selectKnownPoint.sqf new file mode 100644 index 0000000000..1ad413bf31 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_selectKnownPoint.sqf @@ -0,0 +1,16 @@ +//fnc_selectKnownPoint.sqf +#include "script_component.hpp" + +_knownPoints = GVAR(currentComputer) getVariable [QGVAR(knownPoints), []]; +_index = lbCurSel (_this select 0); +_val = (lbValue [(_this select 0), _index]); +if(_val >= 0) then { + _data = _knownPoints select _val; + _knownPointName = ctrlSetText [(_this select 1), (_data select 0)]; + _knownPointGrid = ctrlSetText [(_this select 2), (_data select 1)]; + _knownPointAlt = ctrlSetText [(_this select 3), (_data select 2)]; +} else { + _knownPointName = ctrlSetText [(_this select 1), ""]; + _knownPointGrid = ctrlSetText [(_this select 2), ""]; + _knownPointAlt = ctrlSetText [(_this select 3), ""]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_selectObserver.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_selectObserver.sqf new file mode 100644 index 0000000000..d976eb6779 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_selectObserver.sqf @@ -0,0 +1,17 @@ +//fnc_selectObserver.sqf +#include "script_component.hpp" + + +_observers = GVAR(currentComputer) getVariable [QGVAR(observers), []]; +_index = lbCurSel (_this select 0); +_val = lbValue [(_this select 0), _index]; +if(_val >= 0) then { + _data = _observers select _val; + _observerName = ctrlSetText [(_this select 1), (_data select 0)]; + _observerGrid = ctrlSetText [(_this select 2), (_data select 1)]; + _observerAlt = ctrlSetText [(_this select 3), (_data select 2)]; +} else { + _observerName = ctrlSetText [(_this select 1), ""]; + _observerGrid = ctrlSetText [(_this select 2), ""]; + _observerAlt = ctrlSetText [(_this select 3), ""]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_setFuzeSelection.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_setFuzeSelection.sqf new file mode 100644 index 0000000000..e1dea191e4 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_setFuzeSelection.sqf @@ -0,0 +1,18 @@ +//fnc_setFuzeSelection.sqf +#include "script_component.hpp" + +_ammoType = _this select 0; +_selectedFuze = _this select 1; +_fuzes = getArray(configFile >> "CfgMagazines" >> _ammoType >> "ACE_ARTY_FUZE_TYPES"); +_fuzeNames = getArray(configFile >> "CfgMagazines" >> _ammoType >> "ACE_ARTY_FUZE_DESC"); +_selectIndex = 0; +lbClear IDC_Mission_EngageFuzeTypeSelect; +{ + _displayName = _fuzeNames select _forEachIndex; + _index = lbAdd [IDC_Mission_EngageFuzeTypeSelect, _displayName]; + lbSetData [IDC_Mission_EngageFuzeTypeSelect, _index, _x]; + if(_x == _selectedFuze) then { + _selectIndex = _forEachIndex; + }; +} forEach (_fuzes); +lbSetCurSel [IDC_Mission_EngageFuzeTypeSelect, _selectIndex]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_setFuzeSelectionMission.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_setFuzeSelectionMission.sqf new file mode 100644 index 0000000000..e1dea191e4 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_setFuzeSelectionMission.sqf @@ -0,0 +1,18 @@ +//fnc_setFuzeSelection.sqf +#include "script_component.hpp" + +_ammoType = _this select 0; +_selectedFuze = _this select 1; +_fuzes = getArray(configFile >> "CfgMagazines" >> _ammoType >> "ACE_ARTY_FUZE_TYPES"); +_fuzeNames = getArray(configFile >> "CfgMagazines" >> _ammoType >> "ACE_ARTY_FUZE_DESC"); +_selectIndex = 0; +lbClear IDC_Mission_EngageFuzeTypeSelect; +{ + _displayName = _fuzeNames select _forEachIndex; + _index = lbAdd [IDC_Mission_EngageFuzeTypeSelect, _displayName]; + lbSetData [IDC_Mission_EngageFuzeTypeSelect, _index, _x]; + if(_x == _selectedFuze) then { + _selectIndex = _forEachIndex; + }; +} forEach (_fuzes); +lbSetCurSel [IDC_Mission_EngageFuzeTypeSelect, _selectIndex]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_simpleBallistics.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_simpleBallistics.sqf new file mode 100644 index 0000000000..c80bd06bfc --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_simpleBallistics.sqf @@ -0,0 +1,30 @@ +// #define DEBUG_MODE_FULL +#include "script_component.hpp" + + + +TRACE_1("", _this); +private["_airFriction","_vel","_useElevation","_y", "_vx", "_vy", "_grav", "_x", "_frame"]; + +_airFriction = (_this select 0); +_vel = (_this select 1); +_useElevation = (_this select 2); +_y = (_this select 3); +_vx = _vel * cos(_useElevation); +_vy = _vel * sin(_useElevation); +_grav = -9.80665; +_x = 0; + +_frame = 1/60; + +while {_y >= 0} do +{ + _vx = _vx + (_vx * _vel * _airFriction * _frame); + _vy = _vy + (_vy * _vel * _airFriction * _frame); + _vy = _vy + (_grav * _frame); + _vel = sqrt(_vx*_vx + _vy*_vy); + + _y = _y + (_vy * _frame); + _x = _x + (_vx * _frame); +}; +_x \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_startBCS.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_startBCS.sqf new file mode 100644 index 0000000000..d32158bbaf --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_startBCS.sqf @@ -0,0 +1,23 @@ +//fnc_startBCS.sqf +#include "script_component.hpp" +disableSerialization; + +PARAMS_1(_computer); +GVAR(currentComputer) = _computer; + +_currentUser = GVAR(currentComputer) getVariable [QGVAR(currentUser), GVAR(currentComputer)]; +if(_currentUser == GVAR(currentComputer) || _currentUser == player) then { + createDialog "ace_arty_bcs_Display"; + if(_currentUser == GVAR(currentComputer)) then { + GVAR(currentComputer) setVariable [QGVAR(currentUser), player, true]; + }; +} else { + if(!(alive _currentUser) || !(_currentUser in GVAR(currentComputer))) then { + createDialog "ace_arty_bcs_Display"; + GVAR(currentComputer) setVariable [QGVAR(currentUser), player, true]; + } else { + hint format["BCS is currently in use by: %1", _currentUser]; + }; +}; + + diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_startMission.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_startMission.sqf new file mode 100644 index 0000000000..6bcd92a66f --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_startMission.sqf @@ -0,0 +1,23 @@ +#include "script_component.hpp" + +// Do battery check +_missionType = _this select 0; +_adjust = _this select 1; +_batteryData = [] call CBA_fnc_hashCreate; +_controls = configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_main" >> "controls"; +_valid = [_controls, _batteryData] call FUNC(validateData); +GVAR(currentOT) = ""; +if(_valid) then { + _okTypes = ["grid", "polar", "shift"]; // only supported types for right now, immediates/repeat will come sooon!!! + if(_missionType in _okTypes) then { + GVAR(currentComputer) setVariable [QGVAR(batteryData), _batteryData, true]; + GVAR(currentComputer) setVariable [QGVAR(currentMissionType), _this, true]; + (configNamespace >> "ace_arty_bcs_Display" >> "controls" >> "ace_arty_bcs_mission" >> "controls") call FUNC(loopResetControls); + [MISSION_ID] call FUNC(switchMenu); + + + _missionType call FUNC(initMissionScreen); + } else { + BCSERROR("Current mission type is not supported in this version of the software."); + }; +}; diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_stepBack.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_stepBack.sqf new file mode 100644 index 0000000000..fa49f4df42 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_stepBack.sqf @@ -0,0 +1,34 @@ +// #define DEBUG_MODE_FULL +#include "script_component.hpp" + + + +TRACE_1("", _this); + +_airFriction = (_this select 0); +_vel = (_this select 1); +_useElevation = (_this select 2); +_y = (_this select 3); +_stepDis = (_this select 4); +_x = (_this select 5); +_time = (_this select 6); +_checkDistance = _x - _stepDis; +_vx = _vel * cos(_useElevation); +_vy = _vel * sin(_useElevation); +_grav = -9.80665; + + +_frame = 1/60; +_elev = 0; +while {_x >= _checkDistance} do +{ + _vx = _vx - (_vx * _vel * _airFriction * _frame); + _vy = _vy - (_vy * _vel * _airFriction * _frame); + _vy = _vy + (abs(_grav * _frame)); + _vel = sqrt(_vx*_vx + _vy*_vy); + _elev = asin (_vy / _vel); + _y = _y - (_vy * _frame); + _x = _x - (_vx * _frame); + _time = _time - _frame; +}; +[_x, _y, _vel, _elev, _time] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_switchMenu.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_switchMenu.sqf new file mode 100644 index 0000000000..9d08b7665f --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_switchMenu.sqf @@ -0,0 +1,46 @@ +#include "script_component.hpp" + +_show = _this select 0; +_saveState = false; +if((count _this) > 1) then { + _saveState = _this select 1; +}; +if(_saveState) then { + _controls = configNamespace >> "ace_arty_bcs_Display" >> "controls"; + + switch(GVAR(currentScreen)) do { + case MAIN_ID: { + _controls = _controls >> "ace_arty_bcs_main"; + }; + case MISSION_ID: { + _controls = _controls >> "ace_arty_bcs_mission"; + }; + case ADJUST_ID: { + _controls = _controls >> "ace_arty_bcs_adjust"; + }; + case FFE_ID: { + _controls = _controls >> "ace_arty_bcs_ffe"; + }; + }; + + _controls = _controls >> "controls"; + + + GVAR(lastPage) = [] call CBA_fnc_hashCreate; + [_controls,GVAR(lastPage)] call FUNC(loopSaveControls); + GVAR(currentComputer) setVariable[QGVAR(lastPage), GVAR(lastPage), true]; +}; + +_controls = [MAIN_ID, MISSION_ID, ADJUST_ID, FFE_ID]; + + +{ + ctrlShow [_x, false]; +} forEach(_controls); + +ctrlShow [_show, true]; + +if(GVAR(currentScreen) != _show) then { + GVAR(currentScreen) = _show; + GVAR(currentComputer) setVariable[QGVAR(currentScreen), GVAR(currentScreen), true]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_validateData.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_validateData.sqf new file mode 100644 index 0000000000..ffbaa170ec --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_validateData.sqf @@ -0,0 +1,69 @@ +#include "script_component.hpp" + +private ["_controls", "_storageHash", "_allValid"]; +_controls = _this select 0; +_storageHash = _this select 1; +_allValid = true; +for "_i" from 0 to (count _controls)-1 do { + _control = _controls select _i; + _type = getNumber(_control >> "type"); + _idc = getNumber(_control >> "idc"); + _name = getText(_control >> "ACE_BCS_InputName"); + _requireType = getNumber(_control >> "ACE_BCS_Require"); + if(isNil "_requireType" || _requireType == 0) then { + _requireType = BCS_REQUIRE_IGNORE; + }; + if(ctrlVisible _idc) then { + if(isNil "_name") then { + _name = format["control: %1", _idc]; + }; + if(_idc != -1) then { + _valid = true; + _value = nil; + switch(_type) do { + case CT_EDIT: { + _valid = _control call FUNC(validateTextField); + _value = ctrlText _idc; + }; + case CT_COMBO: { + _index = (lbCurSel _idc); + _value = []; + if(_index == -1) then { + _valid = false; + } else { + _value = [_index, (lbValue [_idc, _index]), (lbData [_idc, _index])]; + }; + }; + case CT_LISTBOX: { + _index = (lbCurSel _idc); + _value = []; + if(_index == -1) then { + _valid = false; + } else { + _value = [_index, (lbValue [_idc, _index]), (lbData [_idc, _index])]; + }; + }; + case CT_TOOLBOX: { + + }; + case CT_CONTROLS_GROUP: { + _allValid = [(_control >> "controls"), _storageHash] call FUNC(validateData); + }; + }; + if(_valid || _requireType == BCS_REQUIRE_IGNORE) then { + [_storageHash, _idc, _value] call CBA_fnc_hashSet; + } else { + switch(_requireType) do { + case BCS_REQUIRE_FALSE: { + BCSWARN(_name + " is invalid."); + }; + case BCS_REQUIRE_TRUE: { + BCSERROR(_name + " is invalid."); + _allValid = false; + }; + }; + }; + }; + }; +}; +_allValid \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/fnc_validateTextField.sqf b/TO_MERGE/ace/arty_computers/gyk-37/fnc_validateTextField.sqf new file mode 100644 index 0000000000..6ce47e3557 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/fnc_validateTextField.sqf @@ -0,0 +1,64 @@ +#include "script_component.hpp" + +#define VALID_NUMBER(ctrl,vari) (vari != 0 || (vari == 0 && ctrl == "0")) + +_control = _this; +_type = getNumber(_control >> "type"); +_idc = getNumber(_control >> "idc"); +_bcsType = getNumber(_control >> "ACE_BCS_Type"); +if(isNil "_bcsType") then { + _bcsType = BCS_FIELD_DEFAULT; +}; +_ctrlText = ctrlText _idc; +_validate = true; +switch (_bcsType) do { + case BCS_FIELD_DEFAULT: { + if(_ctrlText == "") then { + _validate = false; + }; + }; + case BCS_FIELD_NUMBER: { + if(_ctrlText != "") then { + _test = parseNumber _ctrlText; + if(VALID_NUMBER(_ctrlText,_test)) then { + if((isNumber(_control >> "ACE_BCS_MinNumber"))) then { + _minValue = getNumber(_control >> "ACE_BCS_MinNumber"); + if(!(isNil "_minValue")) then { + if(_test < _minValue) then { + _validate = false; + }; + }; + }; + if((isNumber(_control >> "ACE_BCS_MaxNumber"))) then { + _maxValue = getNumber(_control >> "ACE_BCS_MaxNumber"); + if(!(isNil "_maxValue")) then { + if(_test > _maxValue) then { + _validate = false; + }; + }; + }; + } else { + _validate = false; + }; + } else { + _validate = false; + }; + }; + case BCS_FIELD_GRID: { + if(_ctrlText != "") then { + _test = parseNumber _ctrlText; + if(VALID_NUMBER(_ctrlText,_test)) then { + _strArray = toArray _ctrlText; + _valid = [2,4,6,8,10]; + if(!((count _strArray) in _valid)) then { + _validate = false; + }; + } else { + _validate = false; + }; + } else { + _validate = false; + }; + }; +}; +_validate \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/main.hpp b/TO_MERGE/ace/arty_computers/gyk-37/main.hpp new file mode 100644 index 0000000000..0fa99652ad --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/main.hpp @@ -0,0 +1,391 @@ +#include "script_component.hpp" +class ace_arty_bcs_main:ace_arty_bcs_ControlGroup { + idc = MAIN_ID; + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "AN/GYK-37 Battery Computer System (BCS)"; + x = 0; + y = ROWPOS(0); + }; + class GVAR(title):ace_arty_bcs_RscText { + text = "Main Screen"; + x = 0; + y = ROWPOS(1); + }; + + // Battery Name + class GVAR(BatteryName):ace_arty_bcs_RscText { + text = "Battery Name"; + x = 0; + y = ROWPOS(3); + }; + class GVAR(BatteryNameInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_BatteryNameInput; + x = COLPOS(4); + y = ROWPOS(3); + w = COLPOS(3); + ACE_BCS_InputName = "Battery Name"; + ACE_BCS_Require = BCS_REQUIRE_FALSE; + text = ""; + }; + + // FDC Name + class GVAR(FDCCallsign):ace_arty_bcs_RscText { + text = "FDC Callsign"; + x = 0; + y = ROWPOS(4); + }; + class GVAR(FDCCallsignInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_FDCCallsignInput; + x = COLPOS(4); + y = ROWPOS(4); + w = COLPOS(3); + ACE_BCS_InputName = "FDC Callsign"; + ACE_BCS_Require = BCS_REQUIRE_FALSE; + text = ""; + }; + + // Battery Location + class GVAR(BatteryLocation):ace_arty_bcs_RscText { + text = "Battery Type:"; + x = 0; + y = ROWPOS(5); + }; + + class GVAR(BatteryType):ace_arty_bcs_RscComboBox { + idc = IDC_Main_BatteryType; + x = COLPOS(4); + y = ROWPOS(5); + w = COLPOS(5); + h = ROWPOS(1); + ACE_BCS_InputName = "Battery Type"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + }; + + // Battery Grid + class GVAR(BatteryGrid):ace_arty_bcs_RscText { + text = "GRID"; + x = COLPOS(1); + y = ROWPOS(6); + w = COLPOS(3); + }; + class GVAR(BatteryGridInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_BatteryGridInput; + x = COLPOS(4); + y = ROWPOS(6); + w = COLPOS(3); + ACE_BCS_InputName = "Battery Grid"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_GRID; + text = ""; + }; + + // Battery Altitude + class GVAR(BatteryAlt):ace_arty_bcs_RscText { + text = "ALT"; + x = COLPOS(1); + y = ROWPOS(7); + w = COLPOS(1); + }; + class GVAR(BatteryAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_BatteryAltInput; + x = COLPOS(4); + y = ROWPOS(7); + w = COLPOS(2); + ACE_BCS_InputName = "Battery Altitude"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + text = ""; + }; + + // Battery DOF + class GVAR(BatteryDOF):ace_arty_bcs_RscText { + text = "Dir. of Fire"; + x = COLPOS(1); + y = ROWPOS(8); + w = COLPOS(3); + }; + class GVAR(BatteryDOFInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_BatteryDOFInput; + x = COLPOS(4); + y = ROWPOS(8); + w = COLPOS(2); + ACE_BCS_InputName = "Battery Direction of Fire"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + ACE_BCS_MinNumber = 0; + ACE_BCS_MaxNumber = 6400; + text = ""; + }; + + // Target Prefix + class GVAR(TargetPrefix):ace_arty_bcs_RscText { + text = "Target Prefix"; + x = 0; + y = ROWPOS(9); + }; + class GVAR(TargetPrefixInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_TargetPrefix; + x = COLPOS(4); + y = ROWPOS(9); + w = COLPOS(1); + ACE_BCS_InputName = "Target Prefix"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + text = ""; + }; + + // Target Num Start + class GVAR(TargetNumStart):ace_arty_bcs_RscText { + text = "Target # Start"; + x = 0; + y = ROWPOS(10); + }; + class GVAR(TargetNumStartInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_TargetNumStart; + x = COLPOS(4); + y = ROWPOS(10); + w = COLPOS(2); + ACE_BCS_InputName = "Targeting Start Number"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + ACE_BCS_MinNumber = 0; + text = ""; + }; + + class GVAR(ObserverInformation):ace_arty_bcs_RscText { + text = "OBSERVER INFORMATION"; + x = COLPOS(12); + y = ROWPOS(3); + }; + + class GVAR(ObserverSelect):ace_arty_bcs_RscText { + text = "Select:"; + x = COLPOS(12); + y = ROWPOS(4); + w = COLPOS(2); + }; + class GVAR(ObserverSelectInput):ace_arty_bcs_RscComboBox { + idc = IDC_Main_ObserverSelect; + x = COLPOS(15); + y = ROWPOS(4); + w = COLPOS(5); + h = ROWPOS(1); + onLBSelChanged = QUOTE([ARR_4(IDC_Main_ObserverSelect,IDC_Main_Observer,IDC_Main_ObserverPosInput,IDC_Main_ObserverAltInput)] call FUNC(selectObserver)); + }; + + // Observer Callsign + class GVAR(Observer):ace_arty_bcs_RscText { + text = "Observer:"; + x = COLPOS(12); + y = ROWPOS(5); + w = COLPOS(2); + }; + class GVAR(ObserverInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_Observer; + x = COLPOS(15); + y = ROWPOS(5); + w = COLPOS(2); + }; + + // Observer Pos + class GVAR(ObserverPos):ace_arty_bcs_RscText { + text = "Observer Grid:"; + x = COLPOS(12); + y = ROWPOS(6); + w = COLPOS(3); + }; + class GVAR(ObserverPosInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_ObserverPosInput; + x = COLPOS(15); + y = ROWPOS(6); + w = COLPOS(3); + ACE_BCS_InputName = "Observer Grid"; + ACE_BCS_Type = BCS_FIELD_GRID; + }; + + // Observer Alt + class GVAR(ObserverAlt):ace_arty_bcs_RscText { + text = "Observer Alt:"; + x = COLPOS(12); + y = ROWPOS(7); + w = COLPOS(3); + }; + class GVAR(ObserverAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_ObserverAltInput; + x = COLPOS(15); + y = ROWPOS(7); + w = COLPOS(2); + ACE_BCS_InputName = "Observer Altitude"; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + class GVAR(UpdateAddObserver):ace_arty_bcs_RscButton { + text = "Add/Update"; + x = COLPOS(12.5); + y = ROWPOS(8); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_5(IDC_Main_ObserverSelect,IDC_Main_Observer,IDC_Main_ObserverPosInput,IDC_Main_ObserverAltInput,true)] call FUNC(modifyObserver)); + }; + + // Known Points + class GVAR(KnowPointInformation):ace_arty_bcs_RscText { + text = "KNOWN POINTS"; + x = COLPOS(12); + y = ROWPOS(10); + }; + + class GVAR(KnownPointsSelect):ace_arty_bcs_RscText { + text = "Select:"; + x = COLPOS(12); + y = ROWPOS(11); + w = COLPOS(2); + }; + class GVAR(KnownPointsSelectInput):ace_arty_bcs_RscComboBox { + idc = IDC_Main_KnownPointSelect; + x = COLPOS(15); + y = ROWPOS(11); + w = COLPOS(5); + h = ROWPOS(1); + onLBSelChanged = QUOTE([ARR_4(IDC_Main_KnownPointSelect,IDC_Main_KnownPoint,IDC_Main_KnownPointPosInput,IDC_Main_KnownPointAltInput)] call FUNC(selectKnownPoint)); + }; + + class GVAR(KnownPoint):ace_arty_bcs_RscText { + text = "Name:"; + x = COLPOS(12); + y = ROWPOS(12); + w = COLPOS(2); + }; + class GVAR(KnownPointInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_KnownPoint; + x = COLPOS(15); + y = ROWPOS(12); + w = COLPOS(2); + ACE_BCS_InputName = "Know Point Name"; + }; + + class GVAR(KnownPointPos):ace_arty_bcs_RscText { + text = "Grid:"; + x = COLPOS(12); + y = ROWPOS(13); + w = COLPOS(3); + }; + class GVAR(KnownPointPosInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_KnownPointPosInput; + x = COLPOS(15); + y = ROWPOS(13); + w = COLPOS(3); + ACE_BCS_InputName = "Known Point Grid"; + ACE_BCS_Type = BCS_FIELD_GRID; + }; + + class GVAR(KnownPointAlt):ace_arty_bcs_RscText { + text = "Alt:"; + x = COLPOS(12); + y = ROWPOS(14); + w = COLPOS(3); + }; + class GVAR(KnownPointAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Main_KnownPointAltInput; + x = COLPOS(15); + y = ROWPOS(14); + w = COLPOS(2); + ACE_BCS_InputName = "Known Point Altitude"; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + class GVAR(UpdateAddKnownPoint):ace_arty_bcs_RscButton { + text = "Add/Update"; + x = COLPOS(12.5); + y = ROWPOS(15); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_5(IDC_Main_KnownPointSelect,IDC_Main_KnownPoint,IDC_Main_KnownPointPosInput,IDC_Main_KnownPointAltInput,true)] call FUNC(modifyKnownPoint)); + }; + + + // FFE + class GVAR(MissionGridButton):ace_arty_bcs_RscButton { + text = "GRID"; + x = COLPOS(1); + y = ROWPOS(12); + w = COLPOS(3); + h = ROWPOS(2); + action = "['grid', false] call ace_sys_arty_computers_gyk37_fnc_startMission"; + }; + + class GVAR(MissionPolarButton):ace_arty_bcs_RscButton { + text = "POLAR"; + x = COLPOS(5); + y = ROWPOS(12); + w = COLPOS(3); + h = ROWPOS(2); + action = "['polar', false] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + }; + + class GVAR(MissionShiftButton):ace_arty_bcs_RscButton { + text = "SHIFT"; + x = COLPOS(9); + y = ROWPOS(12); + w = COLPOS(3); + h = ROWPOS(2); + action = "['shift', false] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + }; + /* + // Adjust + class GVAR(MissionAdjustGridButton):ace_arty_bcs_RscButton { + text = "ADJUST GRID"; + x = COLPOS(1); + y = ROWPOS(15); + w = COLPOS(3); + h = ROWPOS(2); + action = "['grid', true] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + }; + + class GVAR(MissionAdjustPolarButton):ace_arty_bcs_RscButton { + text = "ADJUST POLAR"; + x = COLPOS(5); + y = ROWPOS(15); + w = COLPOS(3); + h = ROWPOS(2); + action = "['polar', true] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + }; + + class GVAR(MissionAdjustShiftButton):ace_arty_bcs_RscButton { + text = "ADJUST SHIFT"; + x = COLPOS(9); + y = ROWPOS(15); + w = COLPOS(3); + h = ROWPOS(2); + action = "['shift', true] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + }; + */ + // Special + // class GVAR(MissionImmediateSupressionButton):ace_arty_bcs_RscButton { + // text = "IMMED. SUPRESS."; + // x = COLPOS(1); + // y = ROWPOS(18); + // w = COLPOS(3); + // h = ROWPOS(2); + // action = "['supress', false] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + // }; + + // class GVAR(MissionImmediateSmokeButton):ace_arty_bcs_RscButton { + // text = "IMMED. SMOKE"; + // x = COLPOS(5); + // y = ROWPOS(18); + // w = COLPOS(3); + // h = ROWPOS(2); + // action = "['supressSmoke', false] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + // }; + + // class GVAR(MissionRepeatButton):ace_arty_bcs_RscButton { + // text = "REPEAT"; + // x = COLPOS(9); + // y = ROWPOS(18); + // w = COLPOS(3); + // h = ROWPOS(2); + // action = "['repeat', false] call ace_sys_arty_computers_gyk37_fnc_startMission;"; + // }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/mission.hpp b/TO_MERGE/ace/arty_computers/gyk-37/mission.hpp new file mode 100644 index 0000000000..f8509f5297 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/mission.hpp @@ -0,0 +1,618 @@ +class ace_arty_bcs_mission:ace_arty_bcs_ControlGroup { + idc = MISSION_ID; + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "AN/GYK-37 Battery Computer System (BCS)"; + x = 0; + y = ROWPOS(0); + }; + + // GRID FIELDS + class ace_arty_bcs_mission_grid:ace_arty_bcs_ControlGroup { + idc = MAIN_ID_GRID; + x = 0; + y = ROWPOS(2); + h = ROWPOS(8); + w = COLPOS(10); + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "MISSION GRID REFERENCE"; + x = 0; + y = ROWPOS(0); + }; + // Battery Grid + class GVAR(MissionGridGrid):ace_arty_bcs_RscText { + text = "Grid:"; + x = COLPOS(1); + y = ROWPOS(1); + w = COLPOS(2); + }; + class GVAR(MissionGridGridInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionGridGridInput; + x = COLPOS(4); + y = ROWPOS(1); + w = COLPOS(3); + text = ""; + ACE_BCS_InputName = "Target Grid"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_GRID; + }; + + // Battery Altitude + class GVAR(MissionGridAlt):ace_arty_bcs_RscText { + text = "Alt:"; + x = COLPOS(1); + y = ROWPOS(2); + w = COLPOS(2); + }; + class GVAR(MissionGridAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionGridAltInput; + x = COLPOS(4); + y = ROWPOS(2); + w = COLPOS(2); + text = ""; + ACE_BCS_InputName = "Target Altitude"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + }; + }; + + // POLAR FIELDS + class ace_arty_bcs_mission_polar:ace_arty_bcs_ControlGroup { + idc = MAIN_ID_POLAR; + x = 0; + y = ROWPOS(2); + h = ROWPOS(8); + w = COLPOS(10); + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "MISSION POLAR COORDINATES"; + x = 0; + y = ROWPOS(0); + }; + + class GVAR(MissionPolarObserverSelect):ace_arty_bcs_RscText { + text = "Select:"; + x = COLPOS(1); + y = ROWPOS(1); + w = COLPOS(2); + }; + class GVAR(MissionPolarObserverSelectInput):ace_arty_bcs_RscComboBox { + idc = IDC_Mission_MissionPolarObserverSelect; + x = COLPOS(4); + y = ROWPOS(1); + w = COLPOS(5); + h = ROWPOS(1); + onLBSelChanged = QUOTE([ARR_4(IDC_Mission_MissionPolarObserverSelect,IDC_Mission_MissionPolarObserverInput,IDC_Mission_MissionPolarObserverPosInput,IDC_Mission_MissionPolarObserverAltInput)] call FUNC(selectObserver)); + }; + + // Observer Callsign + class GVAR(MissionPolarObserver):ace_arty_bcs_RscText { + text = "Observer:"; + x = COLPOS(1); + y = ROWPOS(2); + w = COLPOS(2); + }; + class GVAR(MissionPolarObserverInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionPolarObserverInput; + x = COLPOS(4); + y = ROWPOS(2); + w = COLPOS(2); + }; + + // Observer Pos + class GVAR(MissionPolarObserverPos):ace_arty_bcs_RscText { + text = "Observer Grid:"; + x = COLPOS(1); + y = ROWPOS(3); + w = COLPOS(3); + }; + class GVAR(MissionPolarObserverPosInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionPolarObserverPosInput; + x = COLPOS(4); + y = ROWPOS(3); + w = COLPOS(3); + ACE_BCS_InputName = "Observer Grid"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_GRID; + }; + + // Observer Alt + class GVAR(MissionPolarObserverAlt):ace_arty_bcs_RscText { + text = "Observer Alt:"; + x = COLPOS(1); + y = ROWPOS(4); + w = COLPOS(3); + }; + class GVAR(MissionPolarObserverAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionPolarObserverAltInput; + x = COLPOS(4); + y = ROWPOS(4); + w = COLPOS(2); + ACE_BCS_InputName = "Observer Altitude"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + class GVAR(MissionPolarUpdateAddObserver):ace_arty_bcs_RscButton { + text = "Add/Update"; + x = COLPOS(7); + y = ROWPOS(4); + w = COLPOS(2); + h = ROWPOS(1); + action = QUOTE([ARR_4(IDC_Mission_MissionPolarObserverSelect,IDC_Mission_MissionPolarObserverInput,IDC_Mission_MissionPolarObserverPosInput,IDC_Mission_MissionPolarObserverAltInput)] call FUNC(modifyObserver)); + }; + + // Observer-Target Direction + class GVAR(MissionPolarOTDir):ace_arty_bcs_RscText { + text = "OT Dir:"; + x = COLPOS(1); + y = ROWPOS(5); + w = COLPOS(2); + }; + class GVAR(MissionPolarOTDirInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionPolarOTDirInput; + x = COLPOS(4); + y = ROWPOS(5); + w = COLPOS(2); + ACE_BCS_InputName = "Observer Target Direction"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + ACE_BCS_MinNumber = 0; + ACE_BCS_MaxNumber = 6400; + }; + + // Range + class GVAR(MissionPolarRange):ace_arty_bcs_RscText { + text = "Range:"; + x = COLPOS(1); + y = ROWPOS(6); + w = COLPOS(2); + }; + class GVAR(MissionPolarRangeInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionPolarRangeInput; + x = COLPOS(4); + y = ROWPOS(6); + w = COLPOS(2); + ACE_BCS_InputName = "Target Range"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Alt + class GVAR(MissionPolarAlt):ace_arty_bcs_RscText { + text = "Alt Dif:"; + x = COLPOS(1); + y = ROWPOS(7); + w = COLPOS(2); + }; + class GVAR(MissionPolarAltInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionPolarAltDifInput; + x = COLPOS(4); + y = ROWPOS(7); + w = COLPOS(2); + ACE_BCS_InputName = "Altitude Difference"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + }; + }; + + // SHIFT FIELDS + class ace_arty_bcs_mission_shift:ace_arty_bcs_ControlGroup { + idc = MAIN_ID_SHIFT; + x = 0; + y = ROWPOS(2); + h = ROWPOS(8); + w = COLPOS(10); + class controls { + class GVAR(welcome):ace_arty_bcs_RscText { + text = "MISSION SHIFT KNOWN POINT"; + x = 0; + y = ROWPOS(0); + }; + class GVAR(MissionShiftKnownPointSelect):ace_arty_bcs_RscText { + text = "Select:"; + x = COLPOS(1); + y = ROWPOS(1); + w = COLPOS(2); + }; + class GVAR(MissionShiftKnowPointSelectInput):ace_arty_bcs_RscComboBox { + idc = IDC_Mission_MissionShiftKnowPointSelect; + x = COLPOS(4); + y = ROWPOS(1); + w = COLPOS(5); + h = ROWPOS(1); + }; + + // OT Dir + class GVAR(MissionShiftOTDir):ace_arty_bcs_RscText { + text = "OT. Dir:"; + x = COLPOS(1); + y = ROWPOS(2); + w = COLPOS(2); + }; + class GVAR(MissionShiftOTDirInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionShiftOTDirInput; + x = COLPOS(4); + y = ROWPOS(2); + w = COLPOS(2); + ACE_BCS_InputName = "Observer Target Direction"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + ACE_BCS_MinNumber = 0; + ACE_BCS_MaxNumber = 6400; + }; + + // Left/Right + class GVAR(MissionShiftLeftRight):ace_arty_bcs_RscText { + text = "Left/Right:"; + x = COLPOS(1); + y = ROWPOS(3); + w = COLPOS(2); + }; + class GVAR(MissionShiftLeftRightInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionShiftLeftRightInput; + x = COLPOS(4); + y = ROWPOS(3); + w = COLPOS(2); + ACE_BCS_InputName = "Lateral Difference"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Add/Drop + class GVAR(MissionShiftAddDrop):ace_arty_bcs_RscText { + text = "Add/Drop:"; + x = COLPOS(1); + y = ROWPOS(4); + w = COLPOS(2); + }; + class GVAR(MissionShiftAddDropInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionShiftAddDropInput; + x = COLPOS(4); + y = ROWPOS(4); + w = COLPOS(2); + ACE_BCS_InputName = "Range Difference"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Up/Down + class GVAR(MissionShiftUpDown):ace_arty_bcs_RscText { + text = "Up/Down:"; + x = COLPOS(1); + y = ROWPOS(5); + w = COLPOS(2); + }; + class GVAR(MissionShiftUpDownInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_MissionShiftUpDownInput; + x = COLPOS(4); + y = ROWPOS(5); + w = COLPOS(2); + ACE_BCS_InputName = "Altitude Difference"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + }; + }; + + /* + Target Description: + TextBox: Target Description + Field: Radius/Width + Field: Length (if circular not filled) + Field: Attitude (that is aTTitude, not altitude) + */ + class GVAR(targetDescriptionSection):ace_arty_bcs_RscText { + text = "TARGET DESCRIPTION"; + x = 0; + y = ROWPOS(11); + }; + + // Target Description + class GVAR(TargetDesc):ace_arty_bcs_RscText { + text = "Target Desc.:"; + x = COLPOS(1); + y = ROWPOS(12); + w = COLPOS(2); + }; + class GVAR(TargetDescInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_TargetDescInput; + style = ST_MULTI; + x = COLPOS(4); + y = ROWPOS(12); + w = COLPOS(5); + h = ROWPOS(2); + }; + + // Radius/Width + class GVAR(TargetRadiusWidth):ace_arty_bcs_RscText { + text = "Radius/Width:"; + x = COLPOS(1); + y = ROWPOS(14); + w = COLPOS(3); + }; + class GVAR(TargetRadiusWidthInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_TargetRadiusWidthInput; + x = COLPOS(4); + y = ROWPOS(14); + w = COLPOS(2); + h = ROWPOS(1); + }; + + // Length + class GVAR(TargetLength):ace_arty_bcs_RscText { + text = "Length:"; + x = COLPOS(1); + y = ROWPOS(15); + w = COLPOS(2); + }; + class GVAR(TargetLengthInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_TargetLengthInput; + x = COLPOS(4); + y = ROWPOS(15); + w = COLPOS(2); + h = ROWPOS(1); + }; + + // Length + class GVAR(TargetAttitude):ace_arty_bcs_RscText { + text = "Attitude:"; + x = COLPOS(1); + y = ROWPOS(16); + w = COLPOS(2); + }; + class GVAR(TargetAttitudeInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_TargetAttitudeInput; + x = COLPOS(4); + y = ROWPOS(16); + w = COLPOS(2); + h = ROWPOS(1); + }; + + /* + Method of Engagment: + ToolBox: Danger Close (Yes/No) + TextBox: Notes (for type of adjustment, desired angle, marking, etc) + MultiSelect: Ammunition + MultiSelect: Fuze + Field: Fuze-Time (ignored for PD/SQ, Prox, and default time fuze rounds) + Field: Round Count + MultiSelect: Distribution (Sheaf) + */ + class GVAR(methodOfEngagementSection):ace_arty_bcs_RscText { + text = "METHOD OF ENGAGEMENT"; + x = COLPOS(11); + y = ROWPOS(2); + }; + + // Danger Close + class GVAR(EngageDangerClose):ace_arty_bcs_RscText { + text = "Danger Close:"; + x = COLPOS(12); + y = ROWPOS(3); + w = COLPOS(3); + }; + class GVAR(EngageDangerCloseInput):ace_arty_bcs_CheckBox { + idc = IDC_Mission_EngageDangerCloseInput; + x = COLPOS(15); + y = ROWPOS(3); + w = COLPOS(2); + h = ROWPOS(1); + }; + + // Notes + class GVAR(EngageNotes):ace_arty_bcs_RscText { + text = "Notes:"; + x = COLPOS(12); + y = ROWPOS(4); + w = COLPOS(3); + }; + class GVAR(EngageNotesInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_EngageNotesInput; + style = ST_MULTI; + x = COLPOS(15); + y = ROWPOS(4); + w = COLPOS(5); + h = ROWPOS(2); + }; + + // Ammo Type + class GVAR(EngageAmmunitionType):ace_arty_bcs_RscText { + text = "Ammunition:"; + x = COLPOS(12); + y = ROWPOS(6); + w = COLPOS(3); + }; + class GVAR(EngageAmmunitionTypeInput):ace_arty_bcs_RscComboBox { + idc = IDC_Mission_EngageAmmunitionTypeSelect; + x = COLPOS(15); + y = ROWPOS(6); + w = COLPOS(5); + h = ROWPOS(1); + onLBSelChanged = QUOTE(_this call FUNC(ammoSelectChange)); + }; + + // Fuze Type + class GVAR(EngageFuzeType):ace_arty_bcs_RscText { + text = "Fuze:"; + x = COLPOS(12); + y = ROWPOS(7); + w = COLPOS(3); + }; + class GVAR(EngageFuzeTypeInput):ace_arty_bcs_RscComboBox { + idc = IDC_Mission_EngageFuzeTypeSelect; + x = COLPOS(15); + y = ROWPOS(7); + w = COLPOS(5); + h = ROWPOS(1); + }; + + // Fuze Time + class GVAR(EngageFuzeTime):ace_arty_bcs_RscText { + text = "Fuze-Time:"; + x = COLPOS(12); + y = ROWPOS(8); + w = COLPOS(3); + }; + class GVAR(EngageFuzeTimeInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_EngageFuzeTimeInput; + x = COLPOS(15); + y = ROWPOS(8); + w = COLPOS(2); + }; + + // Round Count + class GVAR(EngageRoundCount):ace_arty_bcs_RscText { + text = "Round Count:"; + x = COLPOS(12); + y = ROWPOS(9); + w = COLPOS(3); + }; + class GVAR(EngageRoundCountInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_EngageRoundCountInput; + x = COLPOS(15); + y = ROWPOS(9); + w = COLPOS(2); + text = ""; + ACE_BCS_InputName = "Round Count"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_MinNumber = 0; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Adjust Round Count + class GVAR(EngageAdjustRoundCount):ace_arty_bcs_RscText { + text = "Adj. Round Count:"; + x = COLPOS(12); + y = ROWPOS(10); + w = COLPOS(3); + }; + class GVAR(EngageRoundAdjustCountInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_EngageAdjustRoundCountInput; + x = COLPOS(15); + y = ROWPOS(10); + w = COLPOS(2); + text = "1"; + ACE_BCS_InputName = "Adjust Round Count"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_MinNumber = 0; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Adjust Piece + class GVAR(EngageAdjustPiece):ace_arty_bcs_RscText { + text = "Adjust Piece:"; + x = COLPOS(12); + y = ROWPOS(11); + w = COLPOS(3); + }; + class GVAR(EngageAdjustPieceInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_EngageAdjustPieceInput; + x = COLPOS(15); + y = ROWPOS(11); + w = COLPOS(2); + text = "1"; + ACE_BCS_InputName = "Adjust Piece"; + ACE_BCS_Require = BCS_REQUIRE_TRUE; + ACE_BCS_MinNumber = 1; + ACE_BCS_Type = BCS_FIELD_NUMBER; + }; + + // Sheaf + class GVAR(EngageSheafType):ace_arty_bcs_RscText { + text = "Sheaf:"; + x = COLPOS(12); + y = ROWPOS(12); + w = COLPOS(3); + }; + class GVAR(EngageSheafTypeInput):ace_arty_bcs_RscComboBox { + idc = IDC_Mission_EngageSheafTypeSelect; + x = COLPOS(15); + y = ROWPOS(12); + w = COLPOS(5); + h = ROWPOS(1); + }; + + + class GVAR(methodOfControlSection):ace_arty_bcs_RscText { + text = "METHOD OF CONTROL"; + x = COLPOS(11); + y = ROWPOS(14); + }; + + // Method of Control + class GVAR(ControlMethodOfControl):ace_arty_bcs_RscText { + text = "Method:"; + x = COLPOS(12); + y = ROWPOS(15); + w = COLPOS(3); + }; + class GVAR(ControlMethodOfControlInput):ace_arty_bcs_RscComboBox { + idc = IDC_Mission_ControlMethodOfControlSelect; + x = COLPOS(15); + y = ROWPOS(15); + w = COLPOS(5); + h = ROWPOS(1); + }; + + // Time From Now + class GVAR(ControlTimeFromNow):ace_arty_bcs_RscText { + text = "Time From Now:"; + x = COLPOS(12); + y = ROWPOS(16); + w = COLPOS(3); + }; + class GVAR(ControlTimeFromNowInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_ControlTimeFromNowInput; + x = COLPOS(15); + y = ROWPOS(16); + w = COLPOS(2); + }; + + // Time Clock + class GVAR(ControlTimeClock):ace_arty_bcs_RscText { + text = "Clock Time:"; + x = COLPOS(12); + y = ROWPOS(17); + w = COLPOS(3); + }; + class GVAR(ControlTimeClockInput):ace_arty_bcs_RscTextBox { + idc = IDC_Mission_ControlTimeClockInput; + x = COLPOS(15); + y = ROWPOS(17); + w = COLPOS(2); + }; + + class GVAR(MissionFFEButton):ace_arty_bcs_RscButton { + text = "FIRE FOR EFFECT"; + x = COLPOS(16); + y = ROWPOS(21); + w = COLPOS(3); + h = ROWPOS(2); + colorBackground[] = {1, 0, 0, 1}; + action = QUOTE([false] call FUNC(doCompute)); + }; + + class GVAR(MissionAjustButton):ace_arty_bcs_RscButton { + text = "ADJUST"; + x = COLPOS(12); + y = ROWPOS(21); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([true] call FUNC(doCompute)); + }; + + class GVAR(MissionBackButton):ace_arty_bcs_RscButton { + text = "BACK"; + x = COLPOS(1); + y = ROWPOS(21); + w = COLPOS(3); + h = ROWPOS(2); + action = QUOTE([] call FUNC(returnMainScreen)); + }; + + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/script_bcs_macros.hpp b/TO_MERGE/ace/arty_computers/gyk-37/script_bcs_macros.hpp new file mode 100644 index 0000000000..256f1fd682 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/script_bcs_macros.hpp @@ -0,0 +1,41 @@ +//script_bcs_macros.hpp + +#define BCS_FIELD_DEFAULT 0 +#define BCS_FIELD_NUMBER 1 +#define BCS_FIELD_GRID 2 + +#define BCS_REQUIRE_FALSE 1 +#define BCS_REQUIRE_TRUE 2 +#define BCS_REQUIRE_IGNORE -1 + +#define BCSLOG(text) text call FUNC(bcsLog); +#define BCSWARN(text) text call FUNC(bcsLogWarn); +#define BCSERROR(text) text call FUNC(bcsLogError); + +#define CHECKVALUE(name,idc,error,warn) GVAR(TESTVAL) = (ctrlText idc);\ + if(GVAR(TESTVAL)=="") then {\ + if(error) exitWith {\ + GVAR(validateError) = true;\ + BCSERROR(name + " is undefined");\ + };\ + if(warn) then {\ + if(warn) then {\ + BCSWARN(name + " is undefined");\ + };\ + };\ + } + +#define REQUIREVALUE(name,idc) CHECKVALUE(name,idc,true,false) + +#define STOREVALWARN(storeArray,name,idc) CHECKVALUE(name,idc,false,true);\ + storeArray set[idc, GVAR(TESTVAL)] + +#define STOREVAL(storeArray,name,idc) CHECKVALUE(name,idc,false,false);\ + storeArray set[idc, GVAR(TESTVAL)] + +#define STOREREQVAL(storeArray,name,idc) CHECKVALUE(name,idc,true,false);\ + storeArray set[idc, GVAR(TESTVAL)] + +#define GETVALUE(storeArray,idc) (storeArray select idc) + +#define SETVALUE(idc,storeArray) (ctrlSetText [idc, (storeArray select idc)]) diff --git a/TO_MERGE/ace/arty_computers/gyk-37/script_component.hpp b/TO_MERGE/ace/arty_computers/gyk-37/script_component.hpp new file mode 100644 index 0000000000..c063282ac3 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/script_component.hpp @@ -0,0 +1,51 @@ +#define COMPONENT sys_arty_computers_gyk37 +#include "\x\ace\addons\main\script_mod.hpp" +#include "\x\ace\addons\main\script_dialog_defines.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_COMPUTERS_GYK37 + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_COMPUTERS_GYK37 + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_CONPUTERS_GYK37 +#endif + +#include "\x\ace\addons\main\script_macros.hpp" + +// global define values for within this module + +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +#define GETELEV(T,I) ((##T## select ##I##) select 0) +#define GETMAXHEIGHT(T,I) ((##T## select ##I##) select 1) +#define GETSLICES(T,I) ((##T## select ##I##) select 2) + +// Rocket ballistics values +#define GETOFFSETH(T,I) ((##T## select ##I##) select 3) +#define GETOFFSETV(T,I) ((##T## select ##I##) select 4) +#define GETDECAYELEV(T,I) ((##T## select ##I##) select 5) +#define GETDECAYSPD(T,I) ((##T## select ##I##) select 6) + +// fnc_firingSolution used +#define ELEVATION(sol) (floor DEG2MIL((sol select 0))) +#define TOF(sol) ((sol select 2)) + + +#define PREP(var1) TRIPLES(PREFIX,COMPONENT,DOUBLES(fnc,var1)) = COMPILE_FILE2(\x\ace\addons\sys_arty_computers\gyk-37\DOUBLES(fnc,var1).sqf) + +#define configNamespace configFile + +#include "IDC.hpp" + +#include "script_bcs_macros.hpp" + +#define ARR_1(arg1) arg1 +#define ARR_2(arg1,arg2) arg1, arg2 +#define ARR_3(arg1,arg2,arg3) arg1, arg2, arg3 +#define ARR_4(arg1,arg2,arg3,arg4) arg1, arg2, arg3, arg4 +#define ARR_5(arg1,arg2,arg3,arg4,arg5) arg1, arg2, arg3, arg4, arg5 +#define ARR_6(arg1,arg2,arg3,arg4,arg5,arg6) arg1, arg2, arg3, arg4, arg5, arg6 +#define ARR_7(arg1,arg2,arg3,arg4,arg5,arg6,arg7) arg1, arg2, arg3, arg4, arg5, arg6, arg7 +#define ARR_8(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/todo.txt b/TO_MERGE/ace/arty_computers/gyk-37/todo.txt new file mode 100644 index 0000000000..9ce777ae30 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/todo.txt @@ -0,0 +1,156 @@ +BCS Shit... + +Screens.. + +Main/Setup + Field: Battery Name + Field: FDC Call Sign + Battery Location + Field: GRID + Field: ALT + Field: DIRECTION OF FIRE + Field: Target Prefix + Field: Target Number Start + MultiSelect: Gun Type + + Button: MISSION GRID + Button: MISSION POLAR + Button: MISSION SHIFT + + Button: MISSION ADJUST GRID + Button: MISSION ADJUST POLAR + Button: MISSION ADJUST SHIFT + + Button: IMMEDIATE SUPRESSION + Button: IMMEDIATE SMOKE + Button: REPEAT (PREFIX#) + + Button: EXPORT (this dumps all the missions in a formated way to the clipboard) + +Mission + Location: + if(grid) + Field: GRID + Field: ALT + if(polar) + MultiSelect: Observer + Field: Observer Callsign + Field: Observer Pos (auto from observer select) + Field: OT Direction + Field: Alt + Field: Range + Button: Update/Add Observer + if(shift) + MultiSelect: Previous Missions/Known Points + Field: OT Direction + Field: Add/Drop + Field: Left/Right + Field: Up/Down + if(immediateSupress) + Field: GRID + if(immediateSmoke) + Field: GRID + + Target Description: + TextBox: Target Description + Field: Radius/Width + Field: Length (if circular not filled) + Field: Attitude (that is aTTitude, not altitude) + + Method of Engagment: + ToolBox: Danger Close (Yes/No) + TextBox: Notes (for type of adjustment, desired angle, marking, etc) + MultiSelect: Ammunition + MultiSelect: Fuze + Field: Fuze-Time (ignored for PD/SQ, Prox, and default time fuze rounds) + Field: Round Count + MultiSelect: Distribution (Sheaf) + + Method of Control: + MultiSelect: Method of Control + Field: Time on Target From Now + Field: Time on Target Clock Time + + Button: BACK (go back to main screen, mission is dumped) + Button: FFE/ADJUST (execute FFE or Adjustment) + +Adjust (if adjust type) + Battery Information: + Best Low: + Display: Defelection + Display: Elevation + Display: Round Count + Display: Ammunition + Display: Charge + Display: Fuze Settings + Display: Method of Control + Best High: + Display: Defelection + Display: Elevation + Display: Round Count + Display: Ammunition + Display: Charge + Display: Fuze Settings + Display: Method of Control + + Message to Observer: + Display: MTO Text (formated MTO message). + Button: SHOT HIGH + Button: SHOT LOW + Display: Time Till Impact (will count down when SHOT is clicked). + + Adjust: + Observer: + MultiSelect: Observer + Field: Observer Callsign + Field: Observer Pos (auto from observer select) + Button: Update/Add Observer + Adjust: + Field: OT Direction + Field: Add/Drop + Field: Left/Right + Field: Up/Down + + MultiSelect: Ammunition (default from last screen) + MultiSelect: Fuze (default from last screen) + Field: Fuze-Time (default from last screen and ignored for PD/SQ, Prox, and default time fuze rounds) + Field: Round Count + MultiSelect: Distribution (Sheaf) + + Button: BACK (goes back to the mission screen, ignores any adjusts) + Button: ADJUST (adjust again) + Button: FFE (execute fire for effect with current adjustment settings) + +FFE: + Battery Information: + Best Low: + Display: Defelection + Display: Elevation + Display: Round Count + Display: Ammunition + Display: Charge + Display: Fuze Settings + Display: Method of Control + Best High: + Display: Defelection + Display: Elevation + Display: Round Count + Display: Ammunition + Display: Charge + Display: Fuze Settings + Display: Method of Control + + Message to Observer: + Display: MTO Text (formated MTO message). + Button: SHOT HIGH + Button: SHOT LOW + Display: Time Till Impact (will count down when SHOT is clicked). + + Button: BACK (goes back to last adjust screen) + Button: REPEAT (restarts mission as a new mission with exact params) + Button: BDA/FINISH (goes to the BDA screen) + +BDA: + TextBox: BDA Description + + Button: FINISH (goes back to main screen) \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/gyk-37/todo2.txt b/TO_MERGE/ace/arty_computers/gyk-37/todo2.txt new file mode 100644 index 0000000000..6dbbad279f --- /dev/null +++ b/TO_MERGE/ace/arty_computers/gyk-37/todo2.txt @@ -0,0 +1,5 @@ +bcs todo 2! + +1. initialize main screen (just need to populate the battery type list for now) +2. hook up mission screen to buttons, hide/display appropriate targeting section +3. populate the ammunition list from someplace (parsing configs of the gun battery type?) \ No newline at end of file diff --git a/TO_MERGE/ace/arty_computers/license.txt b/TO_MERGE/ace/arty_computers/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/arty_computers/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/arty_computers/script_component.hpp b/TO_MERGE/ace/arty_computers/script_component.hpp new file mode 100644 index 0000000000..921d491b7c --- /dev/null +++ b/TO_MERGE/ace/arty_computers/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT sys_arty_computers +#include "\x\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_COMPUTERS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_COMPUTERS + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_CONPUTERS +#endif + +#include "\x\ace\addons\main\script_macros.hpp" diff --git a/TO_MERGE/ace/arty_computers/stringtable.xml b/TO_MERGE/ace/arty_computers/stringtable.xml new file mode 100644 index 0000000000..a34eb0ca8b --- /dev/null +++ b/TO_MERGE/ace/arty_computers/stringtable.xml @@ -0,0 +1,41 @@ + + + + + + +Battery Computer HMMV +Battery Computer HMMV +Battery Computer HMMV +Battery Computer HMMV +Battery Computer HMMV +Dělostřelecký počítač HMMV +Орудийный Компьютер HMMV +Komputer baterii HMMV +Battery Computer HMMV + + +Battery Computer HMMV (Woodland) +Battery Computer HMMV (Woodland) +Battery Computer HMMV (Woodland) +Battery Computer HMMV (Woodland) +Battery Computer HMMV (Woodland) +Dělostřelecký počítač HMMV (Woodland) +Орудийный Компьютер HMMV (Вудленд) +Komputer baterii HMMV (Woodland) +Battery Computer HMMV (Woodland) + + +AN/GYK-37 BCS benutzen +Use AN/GYK-37 BCS +Use AN/GYK-37 BCS +Use AN/GYK-37 BCS +Use AN/GYK-37 BCS +Použít AN/GYK-37 BCS +Использовать AN/GYK-37 BCS +Skorzystaj z komputera baterii AN/GYK-37 +Use AN/GYK-37 BCS + + + + diff --git a/TO_MERGE/ace/arty_m119/$PBOPREFIX$ b/TO_MERGE/ace/arty_m119/$PBOPREFIX$ new file mode 100644 index 0000000000..f1f9a4adfa --- /dev/null +++ b/TO_MERGE/ace/arty_m119/$PBOPREFIX$ @@ -0,0 +1 @@ +x\ace\Addons\sys_arty_m119 \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/CfgEventHandlers.hpp b/TO_MERGE/ace/arty_m119/CfgEventHandlers.hpp new file mode 100644 index 0000000000..2de1501be9 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/CfgEventHandlers.hpp @@ -0,0 +1,24 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; +class Extended_Init_EventHandlers { + class ace_arty_m119 { + init = QUOTE(call COMPILE_FILE(XEH_init)); + }; +}; +class Extended_GetIn_Eventhandlers { + class ace_arty_m119 { + class ADDON { + clientGetin = QUOTE(_this call FUNC(XEH_getin)); + }; + }; +}; +class Extended_GetOut_Eventhandlers { + class ace_arty_m119 { + class ADDON { + clientGetOut = QUOTE(_this call FUNC(XEH_getout)); + }; + }; +}; diff --git a/TO_MERGE/ace/arty_m119/CfgVehicles.hpp b/TO_MERGE/ace/arty_m119/CfgVehicles.hpp new file mode 100644 index 0000000000..2b4dded1a2 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/CfgVehicles.hpp @@ -0,0 +1,134 @@ +class CfgVehicles { + class Land; + class LandVehicle: Land { + class NewTurret; + }; + class StaticWeapon: LandVehicle { + class Turrets; + }; + class StaticCannon: StaticWeapon { + class Turrets: Turrets { + class MainTurret; + }; + }; + class ace_arty_howtizer: StaticCannon { + class Turrets: Turrets { + class MainTurret; + }; + }; + class ace_arty_m119_base: ace_arty_howtizer { + class Turrets: Turrets { + class MainTurret : MainTurret { + class ViewOptics; + }; + }; + }; + class ace_arty_m119 : ace_arty_m119_base { + ACE_ARTY_ISARTY = 1; + ACE_ARTY_RECOIL = QUOTE(PATHTOF(fnc_recoil.sqf)); + scope = 2; + side = 1; + faction = "BIS_US"; + crew = "US_Soldier_EP1"; + displayName = "ACE M119"; + model = "\x\ace\addons\sys_arty_m119\ace_arty_m119.p3d"; + artilleryScanner = 0; + ARTY_IsArtyVehicle = 0; + vehicleClass = "ACE_Howitzers"; + + sound[] = {"Ca\sounds\Weapons\cannon\gun120",100.0,1,1800}; + //reloadMagazineSound[] = {"\x\ace\addons\sys_arty_m119\sounds\M119breachAction",2.0,1,20}; + picture = "\ca\Weapons\data\ico\M119_CA.paa"; + mapSize = 7; + icon = "\Ca\weapons\Data\map_ico\icomap_m119_CA.paa"; + cargoAction[] = {}; + typicalCargo[] = {"US_Soldier_EP1"}; + transportSoldier = 0; + memoryPointsGetInCargo = "pos_cargo"; + memoryPointsGetInCargoDir = "pos_cargo_dir"; + gunnerHasFlares = 1; + + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"ace_arty_m119"}; + magazines[] = {}; + gunnerAction = "M119_Gunner"; + gunnerOpticsModel = "\x\ace\addons\sys_arty_m119\ace_arty_m119_scope"; + gunnerOpticsEffect[] = {"OpticsBlur2"}; + memoryPointsGetInGunner = "pos_gunner_dir"; + memoryPointsGetInGunnerDir = "pos_gunner"; + gunBeg = "gun_muzzle"; + gunEnd = "gun_chamber"; + class ViewOptics : ViewOptics { + initFov = 0.0787019; + minFov = 0.0787019; + maxFov = 0.0787019; + }; + }; + }; + + class Library { + libTextDesc = "$STR_LIB_M119"; + }; + + class AnimationSources { + class recoil_source { + source = "user"; + weapon = "ace_arty_m119"; + animPeriod = 0.125; + minValue = 0; + maxValue = -1.07; + }; + class MainTurret { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainGun { + source = "user"; + animPeriod = 0.01; + initPhase = 300; + minValue = -100; + maxValue = 1244; + }; + class M137OpticElevate { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -300; + maxValue = 300; + }; + class ElevationMountRotate { + source = "MainGun"; + animPeriod = 0.01; + initPhase = 300; + minValue = -100; + maxValue = 1244; + }; + + class M187MountElevate { + source = "user"; + animPeriod = 0.01; + initPhase = 300; + minValue = -100; + maxValue = 1244; + }; + class M137OpticRevolve { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurretTraverse { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -100; + maxValue = 100; + }; + }; + }; +}; diff --git a/TO_MERGE/ace/arty_m119/CfgWeapons.hpp b/TO_MERGE/ace/arty_m119/CfgWeapons.hpp new file mode 100644 index 0000000000..5cf048ed21 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/CfgWeapons.hpp @@ -0,0 +1,92 @@ +class CfgWeapons { + class CannonCore; + class ace_arty_m119 : CannonCore { + magazineReloadTime = 2.5; + dispersion = 0.0095; + reloadTime = 2.5; + magazines[] = { + "ace_arty_105mm_m1_m782_pd_chg1", + "ace_arty_105mm_m1_m782_pd_chg2", + "ace_arty_105mm_m1_m782_pd_chg3", + "ace_arty_105mm_m1_m782_pd_chg4", + "ace_arty_105mm_m1_m782_pd_chg5", + "ace_arty_105mm_m1_m782_pd_chg6", + "ace_arty_105mm_m1_m782_pd_chg7", + "ace_arty_105mm_m1_m782_pd_chg8", + "ace_arty_105mm_m1_m782_time_chg1", + "ace_arty_105mm_m1_m782_time_chg2", + "ace_arty_105mm_m1_m782_time_chg3", + "ace_arty_105mm_m1_m782_time_chg4", + "ace_arty_105mm_m1_m782_time_chg5", + "ace_arty_105mm_m1_m782_time_chg6", + "ace_arty_105mm_m1_m782_time_chg7", + "ace_arty_105mm_m1_m782_time_chg8", + "ace_arty_105mm_m1_m782_prox_chg1", + "ace_arty_105mm_m1_m782_prox_chg2", + "ace_arty_105mm_m1_m782_prox_chg3", + "ace_arty_105mm_m1_m782_prox_chg4", + "ace_arty_105mm_m1_m782_prox_chg5", + "ace_arty_105mm_m1_m782_prox_chg6", + "ace_arty_105mm_m1_m782_prox_chg7", + "ace_arty_105mm_m1_m782_prox_chg8", + "ace_arty_105mm_m1_m782_delay_chg1", + "ace_arty_105mm_m1_m782_delay_chg2", + "ace_arty_105mm_m1_m782_delay_chg3", + "ace_arty_105mm_m1_m782_delay_chg4", + "ace_arty_105mm_m1_m782_delay_chg5", + "ace_arty_105mm_m1_m782_delay_chg6", + "ace_arty_105mm_m1_m782_delay_chg7", + "ace_arty_105mm_m1_m782_delay_chg8", + "ace_arty_105mm_m314a3_m782_time_chg1", + "ace_arty_105mm_m314a3_m782_time_chg2", + "ace_arty_105mm_m314a3_m782_time_chg3", + "ace_arty_105mm_m314a3_m782_time_chg4", + "ace_arty_105mm_m314a3_m782_time_chg5", + "ace_arty_105mm_m314a3_m782_time_chg6", + "ace_arty_105mm_m314a3_m782_time_chg7", + "ace_arty_105mm_m84a1_m782_time_chg1", + "ace_arty_105mm_m84a1_m782_time_chg2", + "ace_arty_105mm_m84a1_m782_time_chg3", + "ace_arty_105mm_m84a1_m782_time_chg4", + "ace_arty_105mm_m84a1_m782_time_chg5", + "ace_arty_105mm_m84a1_m782_time_chg6", + "ace_arty_105mm_m84a1_m782_time_chg7", + "ace_arty_105mm_m916_m782_time_chg1", + "ace_arty_105mm_m916_m782_time_chg2", + "ace_arty_105mm_m916_m782_time_chg3", + "ace_arty_105mm_m916_m782_time_chg4", + "ace_arty_105mm_m916_m782_time_chg5", + "ace_arty_105mm_m916_m782_time_chg6", + "ace_arty_105mm_m916_m782_time_chg7", + "ace_arty_105mm_m916_m782_time_chg8", + "ace_arty_105mm_m60a2_m782_pd_chg1", + "ace_arty_105mm_m60a2_m782_pd_chg2", + "ace_arty_105mm_m60a2_m782_pd_chg3", + "ace_arty_105mm_m60a2_m782_pd_chg4", + "ace_arty_105mm_m60a2_m782_pd_chg5", + "ace_arty_105mm_m60a2_m782_pd_chg6", + "ace_arty_105mm_m60a2_m782_pd_chg7" + }; + scope = 1; + displayName = "ACE M119"; + nameSound = "cannon"; + cursor = "Cannon"; + cursorAim = "\ca\Weapons\Data\clear_empty"; + cursorSize = 1; + sound[] = {"\ca\Sounds\weapons\cannon\gun120",316.22775,1,1500}; + reloadSound[] = {"\x\ace\addons\sys_arty_m119\sounds\M119breachAction",2.0,1,20}; + //reloadMagazineSound[] = {"\x\ace\addons\sys_arty_m119\sounds\M119breachAction",2.0,1,20}; + // minRange = 10; + // minRangeProbab = 0.6; + // midRange = 12000; + // midRangeProbab = 0.7; + // maxRange = 19000; + // maxRangeProbab = 0.1; + + // disable default fun stuff + autoReload = 0; + backgroundReload = 0; + ballisticsComputer = 0; + canLock = 0; + }; +}; diff --git a/TO_MERGE/ace/arty_m119/XEH_init.sqf b/TO_MERGE/ace/arty_m119/XEH_init.sqf new file mode 100644 index 0000000000..ce27918d25 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/XEH_init.sqf @@ -0,0 +1,25 @@ +//XEH_post_init.sqf +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_1(_gun); + +#define ACE_TEXT_SILVER(Text) ("" + ##Text + "") + +_dn = getText(configFile >> "CfgVehicles" >> typeOf _gun >> "displayName"); +_actionTextL = format[localize "STR_ACE_ARTY_SHIFT_HOWITZER_LEFT",_dn]; +_actionTextR = format[localize "STR_ACE_ARTY_SHIFT_HOWITZER_RIGHT",_dn]; + +_gun setVariable [QGVAR(azimuthCounter), 0]; +_gun setVariable [QGVAR(deflectionCounter), 3200]; +_gun setVariable [QGVAR(elevationCounter), 300]; +_gun setVariable [QGVAR(resetCounter), 3200]; +_gun setVariable [QGVAR(resetPhase), 0]; +_gun setVariable ["ace_sys_arty_currentRound", []]; +_gun setVariable ["ace_sys_arty_roundData", []]; + +_gun call FUNC(alignGun); + +private["_shiftLeftActionId", "_shiftRightActionId"]; +_shiftLeftActionId = _gun addAction [ACE_TEXT_SILVER(_actionTextL), QPATHTO_F(fnc_shiftLeft), [], 2000, false, true, "", "(vehicle player == player) && {alive _target} && {!locked _target} && {!(player in _target)} && {!(player getVariable [""ace_sys_cargo_carrying"",false])}"]; +_shiftRightActionId = _gun addAction [ACE_TEXT_SILVER(_actionTextR), QPATHTO_F(fnc_shiftRight), [], 2000, false, true, "", "(vehicle player == player) && {alive _target} && {!locked _target} && {!(player in _target)} && {!(player getVariable [""ace_sys_cargo_carrying"",false])}"]; diff --git a/TO_MERGE/ace/arty_m119/XEH_pre_init.sqf b/TO_MERGE/ace/arty_m119/XEH_pre_init.sqf new file mode 100644 index 0000000000..ffcb23c14e --- /dev/null +++ b/TO_MERGE/ace/arty_m119/XEH_pre_init.sqf @@ -0,0 +1,36 @@ +//XEH_pre_init.sqf +#include "script_component.hpp" + +ADDON = false; + +GVAR(activeGun) = nil; +GVAR(m137Gun) = nil; +GVAR(gunActionIds) = []; +GVAR(m137_shift) = false; +GVAR(m137_ctrl) = false; + +PREP(endShift); +PREP(alignGun); + +PREP(adjustTraverse); +PREP(adjustElevation); +PREP(recoil); +PREP(levelGun); + +PREP(m137_monitorSight); +PREP(m137_bubbleLevel); +PREP(m137_keyDown); +PREP(m137_keyUp); +PREP(m137_stopMonitorSight); +PREP(m137_adjustAzimuth); +PREP(m137_adjustElevation); +PREP(m137_adjustReset); +PREP(m137_adjustOpticElevation); +PREP(m137_changeView); + +PREP(XEH_getin); +PREP(XEH_getout); + +PREP(textPad); + +ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/ace_arty_m119.p3d b/TO_MERGE/ace/arty_m119/ace_arty_m119.p3d new file mode 100644 index 0000000000..e941d0ffe5 Binary files /dev/null and b/TO_MERGE/ace/arty_m119/ace_arty_m119.p3d differ diff --git a/TO_MERGE/ace/arty_m119/ace_arty_m119_scope.p3d b/TO_MERGE/ace/arty_m119/ace_arty_m119_scope.p3d new file mode 100644 index 0000000000..83da540490 Binary files /dev/null and b/TO_MERGE/ace/arty_m119/ace_arty_m119_scope.p3d differ diff --git a/TO_MERGE/ace/arty_m119/anims.txt b/TO_MERGE/ace/arty_m119/anims.txt new file mode 100644 index 0000000000..02e7819992 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/anims.txt @@ -0,0 +1 @@ +["AinvPknlMstpSlayWrflDnon_AmovPercMstpSnonWnonDnon","AcinPercMrunSnonWnonDf","AcinPercMrunSrasWrflDf","AcinPercMstpSnonWnonDnon"] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/config.cpp b/TO_MERGE/ace/arty_m119/config.cpp new file mode 100644 index 0000000000..a9f1d160ec --- /dev/null +++ b/TO_MERGE/ace/arty_m119/config.cpp @@ -0,0 +1,28 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = { "ace_arty_m119" }; + weapons[] = { "ace_arty_m119" }; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"CAWeapons", "ace_sys_arty", "ace_main", "ace_sys_interaction" }; + VERSION_CONFIG; + }; +}; + +PRELOAD_ADDONS; + +#include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" +#include "CfgEventHandlers.hpp" + +class CfgAceArtyBatteryType { + class M119 { + name = "M119A1 105mm Howitzer"; + type = "cannon"; + caliber = 105; + ammunition[] = {"ace_arty_105mm_m1", "ace_arty_105mm_m916", "ace_arty_105mm_m84a1", "ace_arty_105mm_m314a3"}; + weaponClass = "ace_arty_m119"; + }; +}; + +#include "dialogs.hpp" diff --git a/TO_MERGE/ace/arty_m119/dialogs.hpp b/TO_MERGE/ace/arty_m119/dialogs.hpp new file mode 100644 index 0000000000..bbca28c32e --- /dev/null +++ b/TO_MERGE/ace/arty_m119/dialogs.hpp @@ -0,0 +1,275 @@ +//dialogs.hpp +#include "script_component.hpp" +#include "\x\ace\addons\main\script_dialog_defines.hpp" +#define FontM "Zeppelin32" +#define ClrWhite 1,1,1 +#define ClrBlack 0,0,0 +#define ClrGray 0.5,0.5,0.5 +#define ClrBlue 0.2,0.5,1 +class acex_arty_m137_RscText +{ + idc = -1; + type = CT_STATIC; + style = ST_CENTER; + font = FontM; + colorText[] = {1,1,1,1}; + colorBackground[] = {0, 0, 0, 0}; + sizeEx = 0.03; + w = 0.2; + h = 0.03; +}; + +class acex_arty_m137_RscButton +{ + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + + x = 0.0; + y = 0.0; + w = 0.1; + h = 0.03; + sizeEx = 0.0325; + offsetX = 0; + offsetY = 0.002; + offsetPressedX = 0; + offsetPressedY = 0.002; + borderSize = 0; + + + + colorText[] = {ClrWhite,1}; + colorBackground[] = {ClrGray, 0.75}; + colorFocused[] = {ClrGray,0}; + + colorShadow[] = {ClrBlack,0}; + colorBorder[] = {ClrWhite,0}; + colorBackgroundActive[] = {ClrGray,0}; + colorDisabled[] = {ClrGray, 0}; + colorBackgroundDisabled[] = {ClrGray,0}; + font = FontM; + + soundEnter[] = {"", 0.2, 1}; + soundPush[] = {"", 0.2, 1}; + soundClick[] = {"", 0.2, 1}; + soundEscape[] = {"", 0.2, 1}; + + default = false; + text = ""; + action = ""; +}; + +class acex_arty_m137_RscPicture : acex_arty_m137_RscButton +{ + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + text = ""; +}; + +class acex_arty_m137_dialog { + idd = 137137; + MovingEnable = 0; + onLoad = QUOTE([] spawn FUNC(m137_monitorSight)); + onUnload = QUOTE([] spawn FUNC(m137_stopMonitorSight)); + + controlsBackground[] = {}; + objects[] = {}; + onKeyDown = QUOTE(_this call FUNC(m137_keyDown)); + onKeyUp = QUOTE(_this call FUNC(m137_keyUp)); + class controls { + class GVAR(m137Background) : acex_arty_m137_RscText { + __SX(0); + __SY(0); + __SW(0.25); + __SH(0.6); + colorBackground[] = {ClrGray, 0.25}; + text = ""; + }; + + class GVAR(m137Title) : acex_arty_m137_RscText { + __SX(0); + __SY(0); + __SW(0.25); + colorBackground[] = {ClrGray, 0.25}; + text = "M137 Sight Unit"; + }; + + class GVAR(m137AzimuthLabel) : acex_arty_m137_RscText { + __SX(0); + __SY(0.035); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Azimuth:"; + }; + + class GVAR(m137Azimuth) : acex_arty_m137_RscText { + idc = 137001; + __SX(0.125); + __SY(0.035); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "0000"; + }; + + class GVAR(m137DeflectionLabel) : acex_arty_m137_RscText { + __SX(0); + __SY(0.07); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Deflection:"; + }; + + class GVAR(m137Deflection) : acex_arty_m137_RscText { + idc = 137002; + __SX(0.125); + __SY(0.07); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "3200"; + }; + + class GVAR(m187title) : acex_arty_m137_RscText { + __SX(0); + __SY(0.105); + __SW(0.25); + colorBackground[] = {ClrGray, 0.25}; + text = "M187 Sight Mount"; + }; + + class GVAR(m137ElevationLabel) : acex_arty_m137_RscText { + __SX(0); + __SY(0.140); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Elevation:"; + }; + + class GVAR(m137Elevation) : acex_arty_m137_RscText { + idc = 137003; + __SX(0.125); + __SY(0.140); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "0300"; + }; + + class GVAR(m137ElevationBubbleLabel) : acex_arty_m137_RscText { + __SX(0); + __SY(0.175); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Level:"; + }; + + class GVAR(m137ElevationBubble) : acex_arty_m137_RscText { + idc = 137004; + __SX(0.125); + __SY(0.175); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "|---|+|---|"; + }; + + class GVAR(m137AzimuthLeftButton) : acex_arty_m137_RscButton { + idc = 137004; + __SX(0.0); + __SY(0.210); + __SW(0.062); + text = "Def. -"; + action = QUOTE([-1] call FUNC(m137_adjustAzimuth)); + }; + + class GVAR(m137AzimuthRightButton) : acex_arty_m137_RscButton { + idc = 137005; + __SX(0.0625); + __SY(0.210); + __SW(0.062); + text = "Def. +"; + action = QUOTE([1] call FUNC(m137_adjustAzimuth)); + }; + + class GVAR(m137ElevationUpButton) : acex_arty_m137_RscButton { + idc = 137006; + __SX(0.125); + __SY(0.210); + __SW(0.062); + text = "El +"; + action = QUOTE([1] call FUNC(m137_adjustElevation)); + }; + + class GVAR(m137ElevationDownButton) : acex_arty_m137_RscButton { + idc = 137007; + __SX(0.1875); + __SY(0.210); + __SW(0.062); + text = "El -"; + action = QUOTE([-1] call FUNC(m137_adjustElevation)); + }; + + class GVAR(m137OpticDownButton) : acex_arty_m137_RscButton { + __SX(0.0); + __SY(0.245); + __SW(0.062); + text = "Op. -"; + action = QUOTE([-1] call FUNC(m137_adjustOpticElevation)); + }; + + class GVAR(m137OpticUpButton) : acex_arty_m137_RscButton { + __SX(0.0625); + __SY(0.245); + __SW(0.062); + text = "Op. +"; + action = QUOTE([1] call FUNC(m137_adjustOpticElevation)); + }; + + class GVAR(m137ResetLeftButton) : acex_arty_m137_RscButton { + __SX(0.125); + __SY(0.245); + __SW(0.062); + text = "Re +"; + action = QUOTE([1] call FUNC(m137_adjustReset)); + }; + + class GVAR(m137ResetRightButton) : acex_arty_m137_RscButton { + __SX(0.1875); + __SY(0.245); + __SW(0.062); + text = "Re -"; + action = QUOTE([-1] call FUNC(m137_adjustReset)); + }; + + class GVAR(m137TraverseIndicatorLabel) : acex_arty_m137_RscText { + __SX(0); + __SY(0.280); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Traverse:"; + }; + + class GVAR(m137TraverseIndicator) : acex_arty_m137_RscText { + idc = 137008; + __SX(0.125); + __SY(0.280); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "|-----|-----|"; + }; + + class GVAR(m137ChangeViewButton) : acex_arty_m137_RscButton { + __SX(0.0); + __SY(0.315); + __SW(0.25); + text = "Change View"; + action = QUOTE([] call FUNC(m137_changeView)); + }; + + class GVAR(m137LevelGun) : acex_arty_m137_RscButton { + __SX(0.0); + __SY(0.350); + __SW(0.25); + text = "Level Gun"; + action = QUOTE([] call FUNC(levelGun)); + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_XEH_getin.sqf b/TO_MERGE/ace/arty_m119/fnc_XEH_getin.sqf new file mode 100644 index 0000000000..23d6463d43 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_XEH_getin.sqf @@ -0,0 +1,59 @@ +//XEH_getin.sqf +#include "script_component.hpp" +PARAMS_3(_gun,_pos,_unit); + +if (_unit == player) then { + GVAR(activeGun) = _gun; + [] call ace_sys_arty_aimingpoints_fnc_startCollimatorHandler; + [203, [false, false, false], { [-1] call FUNC(adjustTraverse) }, "keydown", QGVAR(leftTraverseSmall)] call CBA_fnc_addKeyHandler; + [203, [true, false, false], { [-10] call FUNC(adjustTraverse) }, "keydown", QGVAR(leftTraverseLarge)] call CBA_fnc_addKeyHandler; + [203, [true, true, false], { [-0.25] call FUNC(adjustTraverse) }, "keydown", QGVAR(leftTraverseVerySmall)] call CBA_fnc_addKeyHandler; + + [205, [false, false, false], { [1] call FUNC(adjustTraverse) }, "keydown", QGVAR(rightTraverseSmall)] call CBA_fnc_addKeyHandler; + [205, [true, false, false], { [10] call FUNC(adjustTraverse) }, "keydown", QGVAR(rightTraverseLarge)] call CBA_fnc_addKeyHandler; + [205, [true, true, false], { [0.25] call FUNC(adjustTraverse) }, "keydown", QGVAR(rightTraverseVerySmall)] call CBA_fnc_addKeyHandler; + + + [200, [false, false, false], { [-1] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateUpSmall)] call CBA_fnc_addKeyHandler; + [200, [true, false, false], { [-10] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateUpLarge)] call CBA_fnc_addKeyHandler; + [208, [false, false, false], { [1] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateDownSmall)] call CBA_fnc_addKeyHandler; + [208, [true, false, false], { [10] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateDownLarge)] call CBA_fnc_addKeyHandler; + + _actionId = _gun addAction ["View M137/M187", "\x\ace\addons\sys_arty_m119\fnc_showSight.sqf", [], -100, false, true, "", "gunner _target == player"]; + + if (gunner GVAR(activeGun) == player) then { + _ammoFunc = { + if(!isNil QGVAR(activeGun)) then { + private["_currentRound", "_ammo", "_mag", "_currentWeapon"]; + _currentRound = GVAR(activeGun) getVariable ["ace_sys_arty_currentRound", []]; + _currentWeapon = (weapons GVAR(activeGun)) select 0; + _ammo = GVAR(activeGun) ammo _currentWeapon; + if (count _currentRound != 0) then { + if (count (magazines GVAR(activeGun)) == 0) then { + _mag = _currentRound select 0; + GVAR(activeGun) removeWeapon _currentWeapon; + GVAR(activeGun) addMagazine _mag; + GVAR(activeGun) addWeapon _currentWeapon; + GVAR(activeGun) selectWeapon _currentWeapon; + reload GVAR(activeGun); + }; + }; + if (count (magazines GVAR(activeGun)) != 0) then { + if (count _currentRound == 0) then { + _mag = currentMagazine GVAR(activeGun); + GVAR(activeGun) removeWeapon _currentWeapon; + GVAR(activeGun) removeMagazines _mag; + GVAR(activeGun) addWeapon _currentWeapon; + GVAR(activeGun) selectWeapon _currentWeapon; + reload GVAR(activeGun); + }; + }; + } else { + [(_this select 1)] call CBA_fnc_removePerFrameHandler; + }; + }; + [_ammoFunc, 0.25] call CBA_fnc_addPerFrameHandler; + }; + + GVAR(gunActionIds) set[count GVAR(gunActionIds), _actionId]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_XEH_getout.sqf b/TO_MERGE/ace/arty_m119/fnc_XEH_getout.sqf new file mode 100644 index 0000000000..bd99ff1057 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_XEH_getout.sqf @@ -0,0 +1,31 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +PARAMS_3(_gun,_pos,_unit); + +if (_unit == player) then { + GVAR(activeGun) = nil; + + [] call ace_sys_arty_aimingpoints_fnc_endCollimatorHandler; + + [QGVAR(leftTraverseSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(leftTraverseVerySmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(leftTraverseLarge)] call CBA_fnc_removeKeyHandler; + [QGVAR(rightTraverseSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(rightTraverseVerySmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(rightTraverseLarge)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateUpSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateUpLarge)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateDownSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateDownLarge)] call CBA_fnc_removeKeyHandler; + + { + _gun removeAction _x; + } forEach GVAR(gunActionIds); + GVAR(gunActionIds) = []; + + _gun setVariable [QGVAR(azimuthCounter), _gun getVariable QGVAR(azimuthCounter), true]; + _gun setVariable [QGVAR(deflectionCounter), _gun getVariable QGVAR(deflectionCounter), true]; + _gun setVariable [QGVAR(elevationCounter), _gun getVariable QGVAR(elevationCounter), true]; + _gun setVariable [QGVAR(resetCounter), _gun getVariable QGVAR(resetCounter), true]; + _gun setVariable [QGVAR(resetPhase), _gun getVariable QGVAR(resetPhase), true]; +}; diff --git a/TO_MERGE/ace/arty_m119/fnc_adjustElevation.sqf b/TO_MERGE/ace/arty_m119/fnc_adjustElevation.sqf new file mode 100644 index 0000000000..5e0381c5ec --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_adjustElevation.sqf @@ -0,0 +1,12 @@ +//fnc_adjustElevation.sqf +#include "script_component.hpp" + +private["_gun", "_phase", "_newPhase"]; + +PARAMS_1(_dir); +_gun = GVAR(activeGun); +_phase = round(_gun animationPhase "MainGun"); + +_newPhase = ((round(_phase+_dir)) min 1244) max -100; +_gun animate ["MainGun", _newPhase]; +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_adjustTraverse.sqf b/TO_MERGE/ace/arty_m119/fnc_adjustTraverse.sqf new file mode 100644 index 0000000000..20734cf437 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_adjustTraverse.sqf @@ -0,0 +1,13 @@ +//fnc_adjustTraverse.sqf +#include "script_component.hpp" + +private["_gun", "_phase", "_newPhase", "_m"]; + +PARAMS_1(_dir); + +_gun = GVAR(activeGun); +_phase = (_gun animationPhase "MainTurretTraverse"); +_m = 0.25; +_newPhase = (((_phase+(_dir*_m))) min 100) max -100; +_gun animate ["MainTurretTraverse", _newPhase]; +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_alignGun.sqf b/TO_MERGE/ace/arty_m119/fnc_alignGun.sqf new file mode 100644 index 0000000000..d7ccdacbd4 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_alignGun.sqf @@ -0,0 +1,88 @@ +#include "script_component.hpp" + +if(isServer) then { + _this spawn { + waitUntil { time > 0; }; + private["_m119", "_pitchBank", "_dir", "_rd", "_wpos", "_offset", "_stake1pos", "_rdDeg", "_stake1", "_stake2"]; + //for "_i" from 0 to 360 do { + _m119 = _this; + + + _pitchBank = _m119 call BIS_fnc_getPitchBank; + + + _pitchBank = _m119 call BIS_fnc_getPitchBank; + + _m119 setVectorUp [0,0,0.0001]; + + _dir = getDir _m119; + //player sideChat format["_dir: %1", _dir]; + _stakesInfo = _m119 getVariable ["ace_arty_stakes_setup", [400, 25]]; + _colInfo = _m119 getVariable ["ace_arty_collimator_setup", [800, 7, 0, -95, 85]]; + diag_log text format["stakesInfo: %1", (count _stakesInfo)]; + if((count _stakesInfo) == 2) then { + _stakesDeflection = _stakesInfo select 0; + _stakesDistance = _stakesInfo select 1; + _rd = (DEG2MIL(_dir)-(_stakesDeflection-0.4)); + if(_rd < 0) then { + _rd = _rd + 6400; + }; + _rdDeg = MIL2DEG(_rd); + _wpos = _m119 modelToWorld [-0.593, -0.668, 0]; + _wpos set[2, 0]; + + + _offset = ((_rdDeg)+MIL2DEG(0.2)) mod 360; + if(_offset < 360) then { + _offset = _offset + 360; + }; + _stake1pos = [_wpos, _stakesDistance, _offset] call BIS_fnc_relPos; + _stake2pos = [_wpos, (_stakesDistance*2), _rdDeg] call BIS_fnc_relPos; + + _stake1pos set[2, -0.5]; + _stake1 = "ACE_Arty_AimingPost_M1A2_M58" createVehicle _wpos; + + _stake1 setDir _rdDeg+180 mod 360; + _stake1 setPos _stake1pos; + _stake1 setVectorUp [0,0,0.0001]; + + _stake2 = "ACE_Arty_AimingPost_M1A2_M59" createVehicle _wpos; + + _stake2 setDir _rdDeg+180 mod 360; + _stake2 setPosATL _stake2pos; + _stake2 setVectorUp [0,0,0.0001]; + if((count _colInfo) != 5) then { + _m119 animate ["M137OpticRevolve", _stakesDeflection]; + _m119 setVariable [QGVAR(resetCounter), 3200-_stakesDeflection, true]; + }; + }; + + + if((count _colInfo) == 5) then { + _colDeflection = _colInfo select 0; + _colDistance = _colInfo select 1; + _colHeight = _colInfo select 2; + _opticElevate = _colInfo select 3; + _colElevate = _colInfo select 4; + + _rd = (DEG2MIL(_dir)-(_colDeflection-0.125)); + if(_rd < 0) then { + _rd = _rd + 6400; + }; + _rdDeg = MIL2DEG(_rd); + _colPos = [_wpos, _colDistance, _rdDeg] call BIS_fnc_relPos; + _colPos set[2, _colHeight]; + + _collimator = "ACE_Arty_M1A1_Collimator" createVehicle _wpos; + + _collimator setDir _rdDeg; + _collimator setPos _colPos; + _collimator setVectorUp [0,0,0.0001]; + _m119 animate ["M137OpticElevate", _opticElevate]; + _collimator animate ["elevate_optic", _colElevate]; + _m119 animate ["M137OpticRevolve", _colDeflection]; + _m119 setVariable [QGVAR(resetCounter), 3200-_colDeflection, true]; + }; + // _m119 setVariable [QGVAR(resetCounter)), (_m119 getVariable QUOTE(GVAR(resetPhase)), true]; + }; +}; diff --git a/TO_MERGE/ace/arty_m119/fnc_endShift.sqf b/TO_MERGE/ace/arty_m119/fnc_endShift.sqf new file mode 100644 index 0000000000..a9b90f4465 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_endShift.sqf @@ -0,0 +1,8 @@ +//fnc_endShift.sqf +#include "script_component.hpp" +detach player; +player playActionNow "crouch"; +player removeAction GVAR(shiftActionId); +GVAR(shiftActionId) = -1; +(findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(drag_keyDownId)]; +GVAR(stopDragging) = true; diff --git a/TO_MERGE/ace/arty_m119/fnc_levelGun.sqf b/TO_MERGE/ace/arty_m119/fnc_levelGun.sqf new file mode 100644 index 0000000000..2903fc8237 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_levelGun.sqf @@ -0,0 +1,16 @@ +//fnc_levelGun.sqf +#include "script_component.hpp" + +_pb = GVAR(m137Gun) call BIS_fnc_getPitchBank; +_pitch = abs(_pb select 0); +_bank = abs(_pb select 1); + +if(_pitch <= 2.5 && _bank <= 2.5) then { + _p = getPos GVAR(m137Gun); + _p set[2, 0]; + GVAR(m137Gun) setPosATL _p; + GVAR(m137Gun) setVectorUp [0,0,0.0001]; + hint "The gun has been leveled."; +} else { + hint "The ground is not level enough to properly level this gun."; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_adjustAzimuth.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_adjustAzimuth.sqf new file mode 100644 index 0000000000..6313d757f3 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_adjustAzimuth.sqf @@ -0,0 +1,22 @@ +//fnc_m137_adjustAzimuth.sqf +#include "script_component.hpp" + +private["_gun", "_size", "_phase", "_newPhase"]; + +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if(GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_phase = _gun animationPhase "M137OpticRevolve"; + +_newPhase = round(_phase+(_dir*_size)); +_gun setVariable [QGVAR(resetPhase), _newPhase]; +_gun animate ["M137OpticRevolve", _newPhase]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_adjustElevation.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_adjustElevation.sqf new file mode 100644 index 0000000000..957fa269d6 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_adjustElevation.sqf @@ -0,0 +1,20 @@ +//fnc_m137_adjustElevation.sqf +#include "script_component.hpp" + +private["_gun", "_size", "_count", "_increment"]; + +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if(GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_count = _gun getVariable QGVAR(elevationCounter); +_increment = ((_count+(_size*_dir)) min 1600) max -200; +_gun setVariable [QGVAR(elevationCounter), _increment]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_adjustOpticElevation.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_adjustOpticElevation.sqf new file mode 100644 index 0000000000..3d781b3cc2 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_adjustOpticElevation.sqf @@ -0,0 +1,17 @@ +//fnc_m137_adjustOpticElevation.sqf +#include "script_component.hpp" +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if(GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_count = _gun animationPhase "M137OpticElevate"; +_increment = ((_count+(_size*_dir)) min 300) max -300; +_gun animate ["M137OpticElevate", _increment]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_adjustReset.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_adjustReset.sqf new file mode 100644 index 0000000000..29fb59c7eb --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_adjustReset.sqf @@ -0,0 +1,19 @@ +//fnc_m137_adjustReset.sqf +#include "script_component.hpp" + +private["_gun", "_size", "_count", "_increment"]; + +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if(GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_count = _gun getVariable QGVAR(resetCounter); +_gun setVariable [QGVAR(resetCounter), _count+(_size*_dir)]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_bubbleLevel.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_bubbleLevel.sqf new file mode 100644 index 0000000000..398d02f353 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_bubbleLevel.sqf @@ -0,0 +1,21 @@ +//fnc_m137_bubbleLevel.sqf +#include "script_component.hpp" +private["_levelStr", "_bubbleStr", "_difPercent", "_difInt", "_lvlArr", "_bubbleArr", "_retStr"]; +PARAMS_4(_ctrl,_dif,_level,_range); + +_levelStr = "----|-|----"; +_bubbleStr = "o"; +_difPercent = (abs _dif)/_range; +_difInt = round((_difPercent/2)*10); +_difInt = (_difInt max 0) min 5; +if(_dif > 0) then { + _difInt = _difInt * -1; +}; +_difInt = _difInt + 5; + +_lvlArr = toArray _levelStr; +_bubbleArr = toArray _bubbleStr; +_lvlArr set[_difInt, (_bubbleArr select 0)]; +_retStr = toString _lvlArr; +_retStr = format["|%1|", _retStr]; +ctrlSetText [_ctrl, _retStr]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_changeView.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_changeView.sqf new file mode 100644 index 0000000000..63094978cd --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_changeView.sqf @@ -0,0 +1,7 @@ +//fnc_m137_changeView.sqf +#include "script_component.hpp" +if(cameraView == "GUNNER") then { + GVAR(m137Gun) switchCamera "INTERNAL"; +} else { + GVAR(m137Gun) switchCamera "GUNNER"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_keyDown.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_keyDown.sqf new file mode 100644 index 0000000000..ab8f194198 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_keyDown.sqf @@ -0,0 +1,46 @@ +//fnc_m137_keyDown.sqf +#include "script_component.hpp" +PARAMS_4(_ctrl,_code,_shift,_ctrl); +if(_code == 42) then { + GVAR(m137_shift) = true; +}; +if(_code == 29) then { + GVAR(m137_ctrl) = true; +}; +if(_code == 203) then { + if(_shift) then { + if(_ctrl) then { + [-0.25] call FUNC(adjustTraverse); + } else { + [-10] call FUNC(adjustTraverse); + }; + } else { + [-1] call FUNC(adjustTraverse); + }; +}; +if(_code == 205) then { + if(_shift) then { + if(_ctrl) then { + [0.25] call FUNC(adjustTraverse); + } else { + [10] call FUNC(adjustTraverse); + }; + } else { + [1] call FUNC(adjustTraverse); + }; +}; +if(_code == 200) then { + if(_shift) then { + [-10] call FUNC(adjustElevation); + } else { + [-1] call FUNC(adjustElevation); + }; +}; +if(_code == 208) then { + if(_shift) then { + [10] call FUNC(adjustElevation); + } else { + [1] call FUNC(adjustElevation) + }; +}; +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_keyUp.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_keyUp.sqf new file mode 100644 index 0000000000..cbf6317a1a --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_keyUp.sqf @@ -0,0 +1,11 @@ +//fnc_m137_keyUp.sqf +#include "script_component.hpp" +PARAMS_4(_ctrl,_code,_shift,_ctrl); + +_code = _this select 1; +if(_code == 0x2A) then { + GVAR(m137_shift) = false; +}; +if(_code == 29) then { + GVAR(m137_ctrl) = false; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_monitorSight.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_monitorSight.sqf new file mode 100644 index 0000000000..1dc04f6646 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_monitorSight.sqf @@ -0,0 +1,60 @@ +//fnc_m137_monitorSight.sqf +#include "script_component.hpp" +private["_reset", "_opticPhase", "_opticAzimuthCounter", "_opticDeflectionCounter", "_opticAzimuthCounterStr", + "_opticDeflectionCounterStr", "_elevationCount", "_elevationPhase", "_dif", "_elevationCountStr"]; +waitUntil { + !isNil QGVAR(m137Gun) +}; +_gun = GVAR(m137Gun); +GVAR(monitorSight) = true; +waitUntil { + _reset = _gun getVariable QGVAR(resetCounter); + // player sideChat format["opticPhase: %1", (floor(_gun animationPhase "M137OpticRevolve"))]; + _opticPhase = (floor(_gun animationPhase "M137OpticRevolve")*-1); + _opticPhase = (_opticPhase); + _opticPhase = _opticPhase + 3200; + if(_opticPhase > 6400) then { + _opticPhase = _opticPhase mod 6400; + }; + if(_opticPhase < 0) then { + while { _opticPhase < 0 } do { _opticPhase = _opticPhase + 6400; }; + }; + _opticPhaseRaw = (floor(_gun animationPhase "M137OpticRevolve")); + _reset = (_opticPhaseRaw + _reset) mod 6400; + if(_reset > 6400) then { + _reset = _reset mod 6400; + }; + if(_reset < 0) then { + while { _reset < 0 } do { _reset = _reset + 6400; }; + }; + _opticAzimuthCounterStr = [(str _opticPhase), "0", 4] call FUNC(textPad); + _opticDeflectionCounterStr = [(str _reset), "0", 4] call FUNC(textPad); + ctrlSetText [137001, _opticAzimuthCounterStr]; + ctrlSetText [137002, _opticDeflectionCounterStr]; + + _elevationCount = _gun getVariable QGVAR(elevationCounter); + _elevationPhase = floor(_gun animationPhase "MainGun"); + + _dif = _elevationCount - _elevationPhase; + + _traversePhase = _gun animationPhase "MainTurretTraverse"; + _traversePhase = _traversePhase + 100; + _percent = (abs (round _traversePhase))/200; + _traverseIndicator = "-----^-----"; + _tArray = (toArray _traverseIndicator); + _tLength = (count _tArray); + _indicPos = ((round(_percent*_tLength))-1 max 0) min 10; + _tArray set[_indicPos, (toArray "|") select 0]; + _tStr = (toString _tArray); + ctrlSetText [137008, format["|%1|", _tStr]]; + + + [137004, _dif, 0, 10] call FUNC(m137_bubbleLevel); + _elevationCountStr = [(str _elevationCount), "0", 4] call FUNC(textPad); + if(_elevationCount < 0) then { + _elevationCountStr = format["-%1", _elevationCountStr]; + }; + ctrlSetText [137003, _elevationCountStr]; + sleep 0.05; + !GVAR(monitorSight) +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_m137_stopMonitorSight.sqf b/TO_MERGE/ace/arty_m119/fnc_m137_stopMonitorSight.sqf new file mode 100644 index 0000000000..9e7d71de66 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_m137_stopMonitorSight.sqf @@ -0,0 +1,5 @@ +//fnc_m137_stopMonitorSight.sqf +#include "script_component.hpp" + +GVAR(monitorSight) = false; +GVAR(m137Gun) = nil; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_recoil.sqf b/TO_MERGE/ace/arty_m119/fnc_recoil.sqf new file mode 100644 index 0000000000..c58f5cc5ad --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_recoil.sqf @@ -0,0 +1,34 @@ +//fnc_recoil.sqf +private["_gun", "_currentRound", "_elevatePhase", "_recoilLength", "_charge", "_chargeFactor", + "_elvOff", "_defOff", "_azOff"]; +_gun = _this select 0; +_currentRound = _this select 1; +_elevatePhase = (_gun animationPhase "MainGun") max 0; +_recoilLength = 1.07-(((1.07-0.36)/1244)*_elevatePhase); +_charge = _currentRound select 3; +_chargeFactor = _charge/8; +_elvOff = (-1+(random 2))*_chargeFactor; +_defOff = (-0.5+(random 1))*_chargeFactor; +_azOff = (-0.25+(random 0.5))*_chargeFactor; +_recoilLength = _recoilLength*_chargeFactor; +_azimuthPhase = (_gun animationPhase "MainTurret"); +_elevationPhase = (_gun animationPhase "MainGun"); +_traversePhase = (_gun animationPhase "MainTurretTraverse"); +_elvOff = (((_elvOff+_elevationPhase) max -100) min 1244); +_azOff = (_azOff+_azimuthPhase); +_defOff = (((_defOff+_traversePhase) max -100) min 100); + +_gun animate ["recoil_source", _recoilLength]; +_gun animate ["MainGun", _elvOff]; +_gun animate ["MainTurret", _azOff]; +_gun animate ["MainTurretTraverse", _defOff]; + +[_gun, _recoilLength] spawn { + private ["_gun", "_recoilLength"]; + _gun = _this select 0; + _recoilLength = _this select 1; + waitUntil { + (_gun animationPhase "recoil_source" >= _recoilLength); + }; + _gun animate ["recoil_source", 0]; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_shiftLeft.sqf b/TO_MERGE/ace/arty_m119/fnc_shiftLeft.sqf new file mode 100644 index 0000000000..a4fd5f28d6 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_shiftLeft.sqf @@ -0,0 +1,86 @@ +//fnc_shiftLeft.sqf +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +private["_phase", "_absPhase", "_degPhase", "_found_anim", "_setDir"]; + +PARAMS_1(_gun); + +//_dn = getText(configFile >> "CfgVehicles" >> typeOf _gun >> "displayName"); +//_actionText = format[localize "STR_ACE_ARTY_STOPSHIFTHOWITZER",_dn]; + +GVAR(dragGun) = _gun; +closeDialog 0; +player attachTo [_gun, [0,0,-0.27], "shift_left"]; + +//player switchMove "ACINPKNLMSTPSRASWRFLDNON"; + +GVAR(stopDragging) = false; +_phase = GVAR(dragGun) animationPhase "MainTurret"; + +_absPhase = (abs _phase) mod 6400; + +if(_phase < 0) then { + _absPhase = 6400-_absPhase; +}; +_degPhase = MIL2DEG(_absPhase); + +player setDir (_degPhase + 290) mod 360; + +FUNC(handleKeydown) = { + private["_handled", "_ctrl", "_dikCode", "_shift", "_ctrl", "_alt", "_phase"]; + _ctrl = _this select 0; + _dikCode = _this select 1; + _shift = _this select 2; + _ctrl = _this select 3; + _alt = _this select 4; + _result = true; + _size = 40; + if (_ctrl) then { + _size = 20; + }; + if (_shift) then { + _size = 1; + }; + if(_dikCode in (actionKeys "moveBack")) then { + _phase = GVAR(dragGun) animationPhase "MainTurret"; + _phase = (floor _phase); + GVAR(dragGun) animate["MainTurret", (_phase-_size)]; + _result = false; + }; + if(_dikCode in (actionKeys "stand") || _dikCode in (actionKeys "crouch")) then { + [] call FUNC(endShift); + _result = true; + }; + _result +}; + +//#define ACE_TEXT_RED(Text) ("" + ##Text + "") + +GVAR(drag_keyDownId) = (findDisplay 46) displayAddEventHandler ["KeyDown", QUOTE(_this call FUNC(handleKeydown))]; +_found_anim = false; + +player playMove "ACINPKNLMSTPSRASWRFLDNON"; +//GVAR(shiftActionId) = player addAction [ACE_TEXT_RED(_actionText), QPATHTO_F(fnc_endShift.sqf), [], 100, false, false, "", ""]; +waitUntil { animationState player == "ACINPKNLMSTPSRASWRFLDNON" }; + +while { !GVAR(stopDragging) } do { + if( !(alive player) || !(alive GVAR(dragGun)) ) exitWith { + [] call FUNC(endShift); + }; + if !(animationState player in ["acinpknlmstpsraswrfldnon","acinpknlmwlksraswrfldb"]) exitWith { + player switchMove "ACINPKNLMSTPSRASWRFLDNON"; + [] call FUNC(endShift); + }; + _phase = GVAR(dragGun) animationPhase "MainTurret"; + + _absPhase = (abs _phase) mod 6400; + + if(_phase < 0) then { + _absPhase = 6400-_absPhase; + }; + _degPhase = MIL2DEG(_absPhase); + _setDir = (_degPhase + 290) mod 360; + player setDir _setDir; + sleep 0.01; +}; diff --git a/TO_MERGE/ace/arty_m119/fnc_shiftRight.sqf b/TO_MERGE/ace/arty_m119/fnc_shiftRight.sqf new file mode 100644 index 0000000000..78752b88f1 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_shiftRight.sqf @@ -0,0 +1,86 @@ +//fnc_shiftLeft.sqf +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +private["_phase", "_absPhase", "_degPhase", "_found_anim", "_setDir"]; + +PARAMS_1(_gun); + +//_dn = getText(configFile >> "CfgVehicles" >> typeOf _gun >> "displayName"); +//_actionText = format[localize "STR_ACE_ARTY_STOPSHIFTHOWITZER",_dn]; + +GVAR(dragGun) = _gun; +closeDialog 0; +player attachTo [_gun, [0,0,-0.27], "shift_right"]; + +// player switchMove "ACINPKNLMSTPSRASWRFLDNON"; + +GVAR(stopDragging) = false; +_phase = GVAR(dragGun) animationPhase "MainTurret"; + +_absPhase = (abs _phase) mod 6400; + +if(_phase < 0) then { + _absPhase = 6400-_absPhase; +}; +_degPhase = MIL2DEG(_absPhase); + +player setDir (_degPhase + 70) mod 360; + +FUNC(handleKeydown) = { + private["_handled", "_ctrl", "_dikCode", "_shift", "_ctrl", "_alt", "_phase"]; + _ctrl = _this select 0; + _dikCode = _this select 1; + _shift = _this select 2; + _ctrl = _this select 3; + _alt = _this select 4; + _result = true; + _size = 40; + if (_ctrl) then { + _size = 20; + }; + if (_shift) then { + _size = 1; + }; + if(_dikCode in (actionKeys "moveBack")) then { + _phase = GVAR(dragGun) animationPhase "MainTurret"; + _phase = (floor _phase); + GVAR(dragGun) animate["MainTurret", (_phase+_size)]; + _result = false; + }; + if(_dikCode in (actionKeys "stand") || _dikCode in (actionKeys "crouch")) then { + [] call FUNC(endShift); + _result = true; + }; + _result +}; + +//#define ACE_TEXT_RED(Text) ("" + ##Text + "") + +GVAR(drag_keyDownId) = (findDisplay 46) displayAddEventHandler ["KeyDown", QUOTE(_this call FUNC(handleKeydown))]; +_found_anim = false; + +player playActionNow "grabDrag"; +//GVAR(shiftActionId) = player addAction [ACE_TEXT_RED(_actionText), QPATHTO_F(fnc_endShift.sqf), [], 100, false, false, "", ""]; +waitUntil { animationState player == "ACINPKNLMSTPSRASWRFLDNON" }; + +while { !GVAR(stopDragging) } do { + if( !(alive player) || !(alive GVAR(dragGun)) ) exitWith { + [] call FUNC(endShift); + }; + if !(animationState player in ["acinpknlmstpsraswrfldnon","acinpknlmwlksraswrfldb"]) exitWith { + player switchMove "ACINPKNLMSTPSRASWRFLDNON"; + [] call FUNC(endShift); + }; + _phase = GVAR(dragGun) animationPhase "MainTurret"; + + _absPhase = (abs _phase) mod 6400; + + if(_phase < 0) then { + _absPhase = 6400-_absPhase; + }; + _degPhase = MIL2DEG(_absPhase); + _setDir = (_degPhase + 70) mod 360; + player setDir _setDir; + sleep 0.01; +}; diff --git a/TO_MERGE/ace/arty_m119/fnc_showSight.sqf b/TO_MERGE/ace/arty_m119/fnc_showSight.sqf new file mode 100644 index 0000000000..0d0200436f --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_showSight.sqf @@ -0,0 +1,7 @@ +//fnc_showSight.sqf +#include "script_component.hpp" +disableSerialization; +createDialog "acex_arty_m137_dialog"; +PARAMS_1(_gun); + +GVAR(m137Gun) = _gun; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/fnc_textPad.sqf b/TO_MERGE/ace/arty_m119/fnc_textPad.sqf new file mode 100644 index 0000000000..cb9ebc1cc4 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/fnc_textPad.sqf @@ -0,0 +1,18 @@ +//fnc_textPad.sqf +#include "script_component.hpp" +PARAMS_3(_str,_pad,_length); + +_strArray = toArray _str; +_padStr = ""; +if(_length > (count _strArray)) then { + _dif = _length - (count _strArray); + + for "_i" from 1 to _dif do { + _padStr = _padStr + _pad; + }; + _padStr = _padStr + _str; +} else { + _padStr = _str; +}; + +_padStr \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/license.txt b/TO_MERGE/ace/arty_m119/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/arty_m119/m119sight.paa b/TO_MERGE/ace/arty_m119/m119sight.paa new file mode 100644 index 0000000000..055e34e765 Binary files /dev/null and b/TO_MERGE/ace/arty_m119/m119sight.paa differ diff --git a/TO_MERGE/ace/arty_m119/model.cfg b/TO_MERGE/ace/arty_m119/model.cfg new file mode 100644 index 0000000000..5514fe976b --- /dev/null +++ b/TO_MERGE/ace/arty_m119/model.cfg @@ -0,0 +1,180 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + class StaticWeapon; + class ace_sys_arty_m119_skeleton: StaticWeapon { + isDiscrete = 1; + skeletonInherit = ""; + sectionsInherit = ""; + skeletonBones[] = { + "OtocVez","", + "Traverse","OtocVez", + "OtocHlaven","Traverse", + "barrel","OtocHlaven", + "gun_chamber","barrel", + "gun_muzzle","gun_chamber", + "M187","Traverse", + "M137","M187", + "ElevationGauge","M187", + "M137_Optic","M137", + "M137_OpticElevate","M137_Optic", + "ElevatingWheel","Traverse", + "zakluz","OtocHlaven" + }; + }; + //class ace_sys_m119_105mm_shell_skeleton : Default { + // isDiscrete = 1; + // skeletonInherit = "Default"; + // skeletonBones[]= { }; + //}; +}; +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + skeletonName = ""; + }; + class ace_arty_m119: Default { + sections[] = { + "zasleh", + "ElevatingWheel", + "M137", + "M137_Optic", + "M187", + "ElevationGauge", + "M137_OpticElevate" + }; + sectionsInherit = "Default"; + skeletonName="ace_sys_arty_m119_skeleton"; + class Animations { + class MainTurret { + type="rotation"; + source="user"; + selection="OtocVez"; + sourceAddress = "loop"; + axis="osaveze"; + animPeriod=0; + minValue="-6400"; + maxValue="6400"; + angle0="rad +360"; + angle1="rad -360"; + }; + class M137OpticRevolve { + type="rotation"; + source="user"; + selection="M137_Optic"; + sourceAddress = "loop"; + axis="M137_OpticAxis"; + memory = true; + animPeriod=0; + minValue="-6400"; + maxValue="6400"; + angle0="rad -360"; + angle1="rad +360"; + }; + class MainTurretTraverse { + type="rotation"; + source="user"; + selection="Traverse"; + sourceAddress = "clamp"; + axis="osaveze"; + animPeriod=0; + minValue="-100"; + maxValue="100"; + angle0="rad 5.63"; + angle1="rad -5.63"; + }; + class MainGun { + type="rotation"; + selection="OtocHlaven"; + sourceAddress = "clamp"; + source="user"; + axis="OsaHlavne"; + animPeriod=0; + initPhase=300; + minValue="-100"; + maxValue="1244"; + angle0="rad 5.63"; + angle1="rad -69.98"; + }; + class ElevationMountRotate { + type="rotation"; + source="MainGun"; + selection="ElevationGauge"; + sourceAddress = "clamp"; + axis="M187_Axis"; + animPeriod=0; + initPhase=300; + minValue="-100"; + maxValue="1244"; + angle0="rad 5.63"; + angle1="rad -69.98"; + }; + class M137OpticElevate { + type="rotation"; + selection="M137_OpticElevate"; + sourceAddress = "clamp"; + source="user"; + axis="M137_OpticElevateAxis"; + animPeriod=0; + initPhase=0; + minValue="-300"; + maxValue="300"; + angle0="rad 16.875"; + angle1="rad -16.875"; + }; + class M187MountElevate { + type="rotation"; + source="user"; + selection="ElevationGauge"; + sourceAddress = "clamp"; + axis="M187_Axis"; + animPeriod=0; + initPhase=300; + minValue="-100"; + maxValue="1244"; + angle0="rad -5.63"; + angle1="rad 69.98"; + }; + class ElevatingWheel { + type="rotation"; + source="MainGun"; + selection="ElevatingWheel"; + sourceAddress = "clamp"; + axis="ElevatingWheelAxis"; + memory = true; + animPeriod=0; + minValue="-100"; + maxValue="1244"; + angle0="rad 360"; + angle1="rad -4478.4"; + }; + class recoil_source { + type="translation"; + source="user"; + selection="zakluz"; + sourceAddress = "clamp"; + axis="recoil_axis"; + memory = true; + animPeriod=0.125; + minValue="0"; + maxValue="1.07"; + offset0="0"; + offset1="-1.07"; + }; + }; + }; + //class ace_sys_m119_105mm_shell : Default { + // sectionsInherit = "Default"; + // sections[] = { }; + // + // skeletonName = "ace_sys_m119_105mm_shell_skeleton"; + // class Animations {}; + //}; + //class ace_arty_m1_cartridge : ace_sys_m119_105mm_shell { }; + //class ace_arty_m1_shell : ace_sys_m119_105mm_shell { }; + //class ace_arty_m14_casing : ace_sys_m119_105mm_shell { }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_m119/ring.paa b/TO_MERGE/ace/arty_m119/ring.paa new file mode 100644 index 0000000000..d92a560039 Binary files /dev/null and b/TO_MERGE/ace/arty_m119/ring.paa differ diff --git a/TO_MERGE/ace/arty_m119/script_component.hpp b/TO_MERGE/ace/arty_m119/script_component.hpp new file mode 100644 index 0000000000..a82a841f36 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/script_component.hpp @@ -0,0 +1,16 @@ +#define COMPONENT sys_arty_m119 +#include "\x\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_M119 + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_M119 + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_M119 +#endif + +#include "\x\ace\addons\main\script_macros.hpp" +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + diff --git a/TO_MERGE/ace/arty_m119/sounds/M119breachAction.wss b/TO_MERGE/ace/arty_m119/sounds/M119breachAction.wss new file mode 100644 index 0000000000..82babf4beb Binary files /dev/null and b/TO_MERGE/ace/arty_m119/sounds/M119breachAction.wss differ diff --git a/TO_MERGE/ace/arty_m119/stringtable.xml b/TO_MERGE/ace/arty_m119/stringtable.xml new file mode 100644 index 0000000000..6b68214d08 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/stringtable.xml @@ -0,0 +1,29 @@ + + + + + +Drehe %1 links +Shift M119 Left +Shift M119 Left +Otočit M119 doleva +Shift M119 Left +Obróć działo w lewo +Shift M119 Left +Сдвинуть M119 влево +Shift M119 Left + + +Drehe %1 rechts +Shift M119 Right +Shift M119 Right +Otočit M119 doprava +Shift M119 Right +Obróć działo w prawo +Shift M119 Right +Сдвинуть M119 вправо +Shift M119 Right + + + + diff --git a/TO_MERGE/ace/arty_m119/todo.txt b/TO_MERGE/ace/arty_m119/todo.txt new file mode 100644 index 0000000000..7252a56691 --- /dev/null +++ b/TO_MERGE/ace/arty_m119/todo.txt @@ -0,0 +1,5 @@ +-- M119 to ACE ASAP checklist + +--1. Move mission code for gun functionality to addon-- +2. Add point and click BCS (TEMPORARY) to display hi/low solution for first round available of each. +--3. Write script to automatically align aiming stakes (provide something to do that automatically)?-- \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/$PBOPREFIX$ b/TO_MERGE/ace/arty_mortars/$PBOPREFIX$ new file mode 100644 index 0000000000..a5f897575c --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/$PBOPREFIX$ @@ -0,0 +1 @@ +x\ace\Addons\sys_arty_mortars \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA.p3d b/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA.p3d new file mode 100644 index 0000000000..6f39ba748a Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA_Barrel.p3d b/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA_Barrel.p3d new file mode 100644 index 0000000000..dc0cfd585d Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA_Barrel.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA_Baseplate.p3d b/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA_Baseplate.p3d new file mode 100644 index 0000000000..be3a28376c Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/ACE_120_TAMPELLA_Baseplate.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/ACE_2B14.p3d b/TO_MERGE/ace/arty_mortars/ACE_2B14.p3d new file mode 100644 index 0000000000..5e770ddd3d Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/ACE_2B14.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/ACE_M224.p3d b/TO_MERGE/ace/arty_mortars/ACE_M224.p3d new file mode 100644 index 0000000000..c6e1e68d10 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/ACE_M224.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/ACE_M252.p3d b/TO_MERGE/ace/arty_mortars/ACE_M252.p3d new file mode 100644 index 0000000000..73cbb4c1c8 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/ACE_M252.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/CfgEventHandlers.hpp b/TO_MERGE/ace/arty_mortars/CfgEventHandlers.hpp new file mode 100644 index 0000000000..aaae584575 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/CfgEventHandlers.hpp @@ -0,0 +1,64 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; +class Extended_PostInit_EventHandlers { + class ADDON { + clientInit = QUOTE(call COMPILE_FILE(XEH_postClientInit)); + }; +}; +//class Extended_Init_EventHandlers { +class Extended_InitPost_EventHandlers { + class ACE_M252 { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_init)); + }; + }; + class ACE_M224_1 { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_init)); + }; + }; + class ACE_2b14_82mm { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_init)); + }; + }; + class ACE_120Tampella { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_init)); + exclude[] = {"ACE_120Tampella_Barrel", "ACE_120Tampella_Baseplate"}; + }; + }; +}; + +class Extended_GetIn_Eventhandlers { + class ACE_M252 { + clientGetin = QUOTE(_this call FUNC(XEH_getin)); + }; + class ACE_M224_1 { + clientGetin = QUOTE(_this call FUNC(XEH_getin)); + }; + class ACE_2b14_82mm { + clientGetin = QUOTE(_this call FUNC(XEH_getin)); + }; + class ACE_120Tampella { + clientGetin = QUOTE(_this call FUNC(XEH_getin)); + }; +}; + +class Extended_GetOut_Eventhandlers { + class ACE_M252 { + clientGetout = QUOTE(_this call FUNC(XEH_getout)); + }; + class ACE_M224_1 { + clientGetout = QUOTE(_this call FUNC(XEH_getout)); + }; + class ACE_2b14_82mm { + clientGetout = QUOTE(_this call FUNC(XEH_getout)); + }; + class ACE_120Tampella { + clientGetout = QUOTE(_this call FUNC(XEH_getout)); + }; +}; diff --git a/TO_MERGE/ace/arty_mortars/CfgVehicles.hpp b/TO_MERGE/ace/arty_mortars/CfgVehicles.hpp new file mode 100644 index 0000000000..d334d24cc8 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/CfgVehicles.hpp @@ -0,0 +1,356 @@ +class CfgVehicles { + class Land; + class LandVehicle: Land { + class ACE; + }; + class StaticWeapon: LandVehicle { + class Turrets { class MainTurret; }; + class ACE: ACE { + class ACE_CREWSERVED; + }; + }; + class StaticMortar: StaticWeapon { + class Turrets: Turrets { + class MainTurret : MainTurret { + class ViewOptics; + }; + }; + class ACE: ACE { + class ACE_ARTY { + shiftingSpeed[] = {5,20}; // NO SHIFT, SHIFT + }; + }; + }; + class M252 : StaticMortar {}; + class M252_Base: M252 {}; + class M252_US_EP1: M252_Base {}; + + class ACE_M252: M252_US_EP1 { + scope = 2; + model = "\x\ace\addons\sys_arty_mortars\ACE_M252.p3d"; + class Turrets: Turrets { + class MainTurret: MainTurret { // KI Turret, lock on spawn + weapons[] = { "ace_arty_m252" }; + magazines[] = {}; + gunnerOpticsModel = "\x\ace\addons\sys_arty_mortars\SightUnit"; + soundServo[] = {"",0.0001,1}; + class ViewOptics : ViewOptics { + initFov = 0.0787019; + minFov = 0.0787019; + maxFov = 0.0787019; + }; + }; + }; + vehicleClass = "ACE_Howitzers"; + ACE_ARTY_ISARTY = 1; + ACE_ARTY_RECOIL = QUOTE(PATHTOF(fnc_recoil.sqf)); + ACE_ARTY_SETUP_OFFSETPOS[] = {-0.135498,0.214844, 0}; + ACE_ARTY_SETUP_OFFSET_STAKEANGLE = -0.55; // this is in mils!!! + artilleryScanner = 0; + ARTY_IsArtyVehicle = 0; + transportMaxWeapons = 1; + transportSoldier = 0; + class TransportWeapons { + class _xx_ace_arty_rangeTable_m252 { + weapon = "ace_arty_rangeTable_m252"; + count = 1; + }; + }; + reversed = 1; + class AnimationSources { + class MainTurret { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurret_RotateFast: MainTurret { + animPeriod = 0.0001; + }; + class MainGun { + source = "user"; + animPeriod = 0.01; + initPhase = 1100; + minValue = 800; + maxValue = 1511; + }; + class OpticElevate { + source = "user"; + animPeriod = 0.01; + initPhase = 1100; + minValue = 800; + maxValue = 1511; + }; + class OpticRevolve { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurretTraverse { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -200; + maxValue = 200; + }; + }; + class ACE: ACE { + class ACE_ARTY: ACE_ARTY { + shiftingSpeed[] = {5,20}; // NO SHIFT, SHIFT + }; + }; + ACE_Weight = 41.3; + }; + class ACE_M224: M252_US_EP1 {}; + class ACE_M224_1: ACE_M224 { + scope = 2; + model = "\x\ace\addons\sys_arty_mortars\ACE_M224.p3d"; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = { "ace_arty_m224" }; + magazines[] = {}; + gunnerOpticsModel = "\x\ace\addons\sys_arty_mortars\SightUnit"; + soundServo[] = {"",0.0001,1}; + class ViewOptics : ViewOptics { + initFov = 0.0787019; + minFov = 0.0787019; + maxFov = 0.0787019; + }; + }; + }; + vehicleClass = "ACE_Howitzers"; + ACE_ARTY_ISARTY = 1; + ACE_ARTY_RECOIL = QUOTE(PATHTOF(fnc_recoil.sqf)); + ACE_ARTY_SETUP_OFFSETPOS[] = {-0.135498,0.214844, 0}; + ACE_ARTY_SETUP_OFFSET_STAKEANGLE = 0.37; // this is in mils!!! + + artilleryScanner = 0; + ARTY_IsArtyVehicle = 0; + transportMaxWeapons = 1; + transportSoldier = 0; + class TransportWeapons { + class _xx_ace_arty_rangeTable_m224 { + weapon = "ace_arty_rangeTable_m224"; + count = 1; + }; + }; + reversed = 1; + class AnimationSources { + class MainTurret { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurret_RotateFast: MainTurret { + animPeriod = 0.0001; + }; + class MainGun { + source = "user"; + animPeriod = 0.01; + initPhase = 1100; + minValue = 800; + maxValue = 1511; + }; + class OpticElevate { + source = "user"; + animPeriod = 0.01; + initPhase = 1100; + minValue = 800; + maxValue = 1511; + }; + class OpticRevolve { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurretTraverse { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -200; + maxValue = 200; + }; + }; + class ACE: ACE { + class ACE_ARTY: ACE_ARTY { + shiftingSpeed[] = {5,30}; // NO SHIFT, SHIFT + }; + }; + ACE_Weight = 21.1; + }; + + class 2b14_82mm : StaticMortar {}; + class 2b14_82mm_base: 2b14_82mm {}; + class 2b14_82mm_TK_GUE_EP1: 2b14_82mm_base {}; + + class ACE_2b14_82mm : 2b14_82mm_TK_GUE_EP1 { + scope = 2; + model = "\x\ace\addons\sys_arty_mortars\ACE_2B14.p3d"; + class Turrets: Turrets { + class Mainturret: MainTurret { + weapons[] = { "ace_arty_2b14" }; + magazines[] = {}; + gunnerOpticsModel = "\x\ace\addons\sys_arty_mortars\SightUnit"; + soundServo[] = {"",0.0001,1}; + class ViewOptics : ViewOptics { + initFov = 0.0787019; + minFov = 0.0787019; + maxFov = 0.0787019; + }; + }; + }; + vehicleClass = "ACE_Howitzers"; + ACE_ARTY_ISARTY = 1; + ACE_ARTY_RECOIL = QUOTE(PATHTOF(fnc_recoil.sqf)); + ACE_ARTY_SETUP_OFFSETPOS[] = {-0.135498,0.214844, 0}; + ACE_ARTY_SETUP_OFFSET_STAKEANGLE = -0.55; // this is in mils!!! + artilleryScanner = 0; + ARTY_IsArtyVehicle = 0; + transportMaxWeapons = 1; + transportSoldier = 0; + class TransportWeapons { + class _xx_ace_arty_rangeTable_2b14 { + weapon = "ace_arty_rangeTable_2b14"; + count = 1; + }; + }; + reversed = 1; + class AnimationSources { + class MainTurret { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurret_RotateFast: MainTurret { + animPeriod = 0.0001; + }; + class MainGun { + source = "user"; + animPeriod = 0.01; + initPhase = 1100; + minValue = 800; + maxValue = 1511; + }; + class OpticElevate { + source = "user"; + animPeriod = 0.01; + initPhase = 1100; + minValue = 800; + maxValue = 1511; + }; + class OpticRevolve { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -6400; + maxValue = 6400; + }; + class MainTurretTraverse { + source = "user"; + animPeriod = 0.01; + initPhase = 0; + minValue = -200; + maxValue = 200; + }; + }; + class ACE: ACE { + class ACE_ARTY: ACE_ARTY { + shiftingSpeed[] = {5,20}; // NO SHIFT, SHIFT + }; + }; + ACE_Weight = 41.88; + }; + class ACE_120Tampella: ACE_M252 { + displayName = "120mm Tampella"; + model = "\x\ace\addons\sys_arty_mortars\ACE_120_TAMPELLA.p3d"; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = { "ace_arty_120tampella" }; + gunnerOpticsModel = "\x\ace\addons\sys_arty_mortars\SightUnit"; + class ViewOptics : ViewOptics { + initFov = 0.0787019; + minFov = 0.0787019; + maxFov = 0.0787019; + }; + }; + }; + class TransportWeapons { + class _xx_ace_arty_rangeTable_m252 { + weapon = "ace_arty_rangeTable_tampella"; + count = 1; + }; + }; + ACE_Weight = 151.2; + ACE_ARTY_SETUP_OFFSETPOS[] = {-0.135498,0.214844, 0}; + ACE_ARTY_SETUP_OFFSET_STAKEANGLE = -0.55; // this is in mils!!! + class ACE: ACE { + class ACE_CREWSERVED: ACE_CREWSERVED { + disassemblyType = "parts"; + weaponProxy = "ACE_120Tampella_Barrel"; + tripod = "ACE_120Tampella_Baseplate"; + canDrag = 0; + }; + class ACE_ARTY: ACE_ARTY { + shiftingSpeed[] = {5,20}; // NO SHIFT, SHIFT + }; + }; + }; + // TODO: Localize + class ACE_120Tampella_Barrel: ACE_120Tampella { + scope = 1; + armor = 10000; + displayName = "120mm Tampella Barrel"; + model = "\x\ace\addons\sys_arty_mortars\ACE_120_Tampella_Barrel.p3d"; + class TransportWeapons {}; + class TransportMagazines {}; + transportMaxWeapons = 0; + transportMaxMagazines = 0; + ACE_Weight = 86.8; + class Turrets {}; + hasGunner = 0; + hssDriver = 0; + hasCommander = 0; + class ACE: ACE { + class ACE_CREWSERVED: ACE_CREWSERVED { + interaction = "XXX"; + canDrag = 0; + canCarry = 1; + }; + }; + attachPosFront[] = {0,-2.1,0.8}; + attachPosRear[] = {0,-2.5,0}; + }; + class ACE_120Tampella_Baseplate: ACE_120Tampella { + scope = 1; + armor = 10000; + displayName = "120mm Tampella Baseplate"; + model = "\x\ace\addons\sys_arty_mortars\ACE_120_Tampella_Baseplate.p3d"; + class TransportWeapons {}; + class TransportMagazines {}; + transportMaxWeapons = 0; + transportMaxMagazines = 0; + class Turrets {}; + hasGunner = 0; + hssDriver = 0; + hasCommander = 0; + class ACE: ACE { + class ACE_CREWSERVED: ACE_CREWSERVED { + interaction = "XXX"; + canDrag = 0; + canCarry = 1; + }; + }; + ACE_Weight = 64; + attachPosFront[] = {0,-0.6,0.8}; + attachPosRear[] = {0,-1.3,0}; + }; +}; diff --git a/TO_MERGE/ace/arty_mortars/CfgWeapons.hpp b/TO_MERGE/ace/arty_mortars/CfgWeapons.hpp new file mode 100644 index 0000000000..1accb30754 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/CfgWeapons.hpp @@ -0,0 +1,149 @@ +class CfgWeapons { + class CannonCore; + class ace_arty_m224 : CannonCore { + magazineReloadTime = 0.5; + dispersion = 0.0071428; // 25m @ 3500m (// to calc: dispersion = cep/maxrange) + reloadTime = 0.5; + magazines[] = { + "ace_arty_60mm_m720a1_m734_pd_chg0", + "ace_arty_60mm_m720a1_m734_pd_chg1", + "ace_arty_60mm_m720a1_m734_pd_chg2", + "ace_arty_60mm_m720a1_m734_pd_chg3", + "ace_arty_60mm_m720a1_m734_pd_chg4", + "ace_arty_60mm_m720a1_m734_prox_chg0", + "ace_arty_60mm_m720a1_m734_prox_chg1", + "ace_arty_60mm_m720a1_m734_prox_chg2", + "ace_arty_60mm_m720a1_m734_prox_chg3", + "ace_arty_60mm_m720a1_m734_prox_chg4", + "ace_arty_60mm_m720a1_m734_nsb_chg0", + "ace_arty_60mm_m720a1_m734_nsb_chg1", + "ace_arty_60mm_m720a1_m734_nsb_chg2", + "ace_arty_60mm_m720a1_m734_nsb_chg3", + "ace_arty_60mm_m720a1_m734_nsb_chg4", + "ace_arty_60mm_m720a1_m734_delay_chg0", + "ace_arty_60mm_m720a1_m734_delay_chg1", + "ace_arty_60mm_m720a1_m734_delay_chg2", + "ace_arty_60mm_m720a1_m734_delay_chg3", + "ace_arty_60mm_m720a1_m734_delay_chg4", + "ace_arty_60mm_m721_m776_time_chg0", + "ace_arty_60mm_m721_m776_time_chg1", + "ace_arty_60mm_m721_m776_time_chg2", + "ace_arty_60mm_m721_m776_time_chg3", + "ace_arty_60mm_m721_m776_time_chg4", + "ace_arty_60mm_m722a1_m745_pd_chg0", + "ace_arty_60mm_m722a1_m745_pd_chg1", + "ace_arty_60mm_m722a1_m745_pd_chg2", + "ace_arty_60mm_m722a1_m745_pd_chg3", + "ace_arty_60mm_m722a1_m745_pd_chg4" + }; + scope = 1; + displayName = "M224"; + nameSound = "cannon"; + cursor = "Missile"; + cursorAim = "\ca\Weapons\Data\clear_empty"; + cursorSize = 1; + begin1[] = {QPATHTO_S(data\sounds\60mm_1),db+27,1,300}; + begin2[] = {QPATHTO_S(data\sounds\60mm_1),db+25,1.3,300}; + soundBegin[] = {"begin1",0.5,"begin2",0.5}; + reloadSound[] = {QPATHTO_S(data\sounds\mortar_load_long),3,1,12}; + soundServo[] = {"",0.0001,1}; + autoReload = 0; + backgroundReload = 0; + ballisticsComputer = 0; + canLock = 0; + }; + class ace_arty_m252: ace_arty_m224 { + displayName = "M252"; + magazines[] = { + "ace_arty_81mm_m821a2_m734_pd_chg0", + "ace_arty_81mm_m821a2_m734_pd_chg1", + "ace_arty_81mm_m821a2_m734_pd_chg2", + "ace_arty_81mm_m821a2_m734_pd_chg3", + "ace_arty_81mm_m821a2_m734_pd_chg4", + "ace_arty_81mm_m821a2_m734_prox_chg0", + "ace_arty_81mm_m821a2_m734_prox_chg1", + "ace_arty_81mm_m821a2_m734_prox_chg2", + "ace_arty_81mm_m821a2_m734_prox_chg3", + "ace_arty_81mm_m821a2_m734_prox_chg4", + "ace_arty_81mm_m821a2_m734_nsb_chg0", + "ace_arty_81mm_m821a2_m734_nsb_chg1", + "ace_arty_81mm_m821a2_m734_nsb_chg2", + "ace_arty_81mm_m821a2_m734_nsb_chg3", + "ace_arty_81mm_m821a2_m734_nsb_chg4", + "ace_arty_81mm_m821a2_m734_delay_chg0", + "ace_arty_81mm_m821a2_m734_delay_chg1", + "ace_arty_81mm_m821a2_m734_delay_chg2", + "ace_arty_81mm_m821a2_m734_delay_chg3", + "ace_arty_81mm_m821a2_m734_delay_chg4", + "ace_arty_81mm_m853a1_m772_time_chg0", + "ace_arty_81mm_m853a1_m772_time_chg1", + "ace_arty_81mm_m853a1_m772_time_chg2", + "ace_arty_81mm_m853a1_m772_time_chg3", + "ace_arty_81mm_m853a1_m772_time_chg4", + "ace_arty_81mm_m375a3_m524_pd_chg0", + "ace_arty_81mm_m375a3_m524_pd_chg1", + "ace_arty_81mm_m375a3_m524_pd_chg2", + "ace_arty_81mm_m375a3_m524_pd_chg3", + "ace_arty_81mm_m375a3_m524_pd_chg4" + }; + begin1[] = {QPATHTO_S(data\sounds\ace_mortar_fire),db+27,1.1,600}; + begin2[] = {QPATHTO_S(data\sounds\ace_mortar_fire),db+27,1.03,600}; + begin3[] = {QPATHTO_S(data\sounds\ace_mortar_fire),db+26,1.01,600}; + begin4[] = {QPATHTO_S(data\sounds\ace_mortar_fire),db+25,1.09,600}; + soundBegin[] = {"begin1",0.25,"begin2",0.25,"begin3",0.25,"begin4",0.25}; + reloadSound[] = {QPATHTO_S(data\sounds\mortar_load_short),3,1,8}; + dispersion = 0.018867; // 100m @ 5300m + }; + class ace_arty_2b14: ace_arty_m252 { + displayName = "2B14"; + magazines[] = { + "ace_arty_82mm_he_pd_chg0", + "ace_arty_82mm_he_pd_chg1", + "ace_arty_82mm_he_pd_chg2", + "ace_arty_82mm_he_pd_chg3", + "ace_arty_82mm_he_pd_chg4", + "ace_arty_82mm_he_pd_chg5", + "ace_arty_82mm_he_pd_chg6", + "ace_arty_82mm_illum_time_chg0", + "ace_arty_82mm_illum_time_chg1", + "ace_arty_82mm_illum_time_chg2", + "ace_arty_82mm_illum_time_chg3", + "ace_arty_82mm_wp_pd_chg0", + "ace_arty_82mm_wp_pd_chg1", + "ace_arty_82mm_wp_pd_chg2", + "ace_arty_82mm_wp_pd_chg3" + }; + reloadSound[] = {QPATHTO_S(data\sounds\mortar_load_long),1.12202,1,12}; + }; + class ace_arty_120tampella: ace_arty_m252 { + displayName = "120mm Tampella"; + magazines[] = { + "ace_arty_120mm_dm11a5_dm111a1_pd_chg0", + "ace_arty_120mm_dm11a5_dm111a1_pd_chg1", + "ace_arty_120mm_dm11a5_dm111a1_pd_chg2", + "ace_arty_120mm_dm11a5_dm111a1_pd_chg3", + "ace_arty_120mm_dm11a5_dm111a1_pd_chg4", + "ace_arty_120mm_dm61_ppd_prox_chg0", + "ace_arty_120mm_dm61_ppd_prox_chg1", + "ace_arty_120mm_dm61_ppd_prox_chg2", + "ace_arty_120mm_dm61_ppd_prox_chg3", + "ace_arty_120mm_dm61_ppd_prox_chg4", + "ace_arty_120mm_dm26_dm93_time_chg0", + "ace_arty_120mm_dm26_dm93_time_chg1", + "ace_arty_120mm_dm26_dm93_time_chg2", + "ace_arty_120mm_dm26_dm93_time_chg3", + "ace_arty_120mm_dm26_dm93_time_chg4", + "ace_arty_120mm_dm35_dm93_time_chg0", + "ace_arty_120mm_dm35_dm93_time_chg1", + "ace_arty_120mm_dm35_dm93_time_chg2", + "ace_arty_120mm_dm35_dm93_time_chg3", + "ace_arty_120mm_dm35_dm93_time_chg4" + }; + begin1[] = {QPATHTO_S(data\sounds\120mm_1),216.228,1,800}; + begin2[] = {QPATHTO_S(data\sounds\120mm_2),216.228,1,800}; + begin3[] = {QPATHTO_S(data\sounds\120mm_5),216.228,1,800}; + begin4[] = {QPATHTO_S(data\sounds\120mm_6),216.228,1,800}; + soundBegin[] = {"begin1",0.25,"begin2",0.25,"begin3",0.25,"begin4",0.25}; + dispersion = 0.01863; // 136m @ 7000m + }; +}; diff --git a/TO_MERGE/ace/arty_mortars/SightUnit.p3d b/TO_MERGE/ace/arty_mortars/SightUnit.p3d new file mode 100644 index 0000000000..0551ae0969 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/SightUnit.p3d differ diff --git a/TO_MERGE/ace/arty_mortars/XEH_init.sqf b/TO_MERGE/ace/arty_mortars/XEH_init.sqf new file mode 100644 index 0000000000..16fab71703 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/XEH_init.sqf @@ -0,0 +1,42 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_1(_gun); + +if (_gun isKindOf "ACE_120Tampella_Barrel" || {_gun isKindOf "ACE_120Tampella_Baseplate"}) exitWith {}; // TODO: Include in XEH ?? How? + +#define ACE_TEXT_SILVER(Text) ("" + ##Text + "") + +_dn = getText(configFile >> "CfgVehicles" >> typeOf _gun >> "displayName"); +_actionTextL = format[localize "STR_ACE_ARTY_SHIFT_MORTAR_LEFT",_dn]; +_actionTextR = format[localize "STR_ACE_ARTY_SHIFT_MORTAR_RIGHT",_dn]; + +// Check if we have already presets... +_azimCount = _gun getVariable [QGVAR(azimuthCounter), 0]; +_gun setVariable [QGVAR(azimuthCounter), _azimCount]; + +_defCount = _gun getVariable [QGVAR(deflectionCounter), 3200]; +_gun setVariable [QGVAR(deflectionCounter), _defCount]; + +_elevCount = _gun getVariable [QGVAR(elevationCounter), 1100]; +_gun setVariable [QGVAR(elevationCounter), _elevCount]; + +_resCount = _gun getVariable [QGVAR(resetCounter), 3200]; +_gun setVariable [QGVAR(resetCounter), _resCount]; + +_resPhase = _gun getVariable [QGVAR(resetPhase), 0]; +_gun setVariable [QGVAR(resetPhase), _resPhase]; + +_curRound = _gun getVariable ["ace_sys_arty_currentRound", []]; +_gun setVariable ["ace_sys_arty_currentRound", _curRound]; + +_roundData = _gun getVariable ["ace_sys_arty_roundData", []]; +_gun setVariable ["ace_sys_arty_roundData", _roundData]; + +_gun call FUNC(alignGun); + +_shiftLeftActionId = _gun addAction [ACE_TEXT_SILVER(_actionTextL), QPATHTO_F(fnc_shiftLeft), [], 2000, false, true, "", "(vehicle player == player) && {!(player in _target)} && {!locked _target} && {alive _target} && {(player distance _target < 1.5)} && {!(player getVariable [""ace_sys_cargo_carrying"",false])}"]; +_shiftRightActionId = _gun addAction [ACE_TEXT_SILVER(_actionTextR), QPATHTO_F(fnc_shiftRight), [], 2000, false, true, "", "(vehicle player == player) && {!(player in _target)} && {!locked _target} && {alive _target} && {(player distance _target < 1.5)} && {!(player getVariable [""ace_sys_cargo_carrying"",false])}"]; + +// Call global Event to create a monitoring trigger on the server +[QGVAR(trigger_mon), [_gun]] call CBA_fnc_globalEvent; // ACE_SYS_ARTY_MORTARS diff --git a/TO_MERGE/ace/arty_mortars/XEH_postClientInit.sqf b/TO_MERGE/ace/arty_mortars/XEH_postClientInit.sqf new file mode 100644 index 0000000000..e25e3cbfb1 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/XEH_postClientInit.sqf @@ -0,0 +1,9 @@ +// #define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +ADDON = false; + +[["ACE_120Tampella_Baseplate", "ACE_120Tampella_Barrel"], [ace_sys_interaction_key], -2, [QPATHTO_F(fnc_menuDef), "main"]] call CBA_ui_fnc_add; // TODO: Integrate to sys_crewserved later + +ADDON = true; diff --git a/TO_MERGE/ace/arty_mortars/XEH_pre_init.sqf b/TO_MERGE/ace/arty_mortars/XEH_pre_init.sqf new file mode 100644 index 0000000000..e001cf92f3 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/XEH_pre_init.sqf @@ -0,0 +1,112 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +ADDON = false; + +GVAR(activeGun) = nil; +GVAR(m137Gun) = nil; +GVAR(gunActionIds) = []; +GVAR(m137_shift) = false; +GVAR(m137_ctrl) = false; + +PREP(endShift); +PREP(alignGun); + +PREP(adjustTraverse); +PREP(adjustElevation); +PREP(recoil); +PREP(levelGun); + +PREP(m137_monitorSight); +PREP(m137_bubbleLevel); +PREP(m137_keyDown); +PREP(m137_keyUp); +PREP(m137_stopMonitorSight); +PREP(m137_adjustAzimuth); +PREP(m137_adjustElevation); +PREP(m137_adjustReset); +PREP(m137_adjustOpticElevation); +PREP(m137_changeView); + +PREP(XEH_getin); +PREP(XEH_getout); + +PREP(textPad); + +PREP(FOR); + +FUNC(swapFireReload) = { + private ["_current"]; + PARAMS_1(_unit); + _current = _unit getVariable [QGVAR(fireReload), false]; + if (_current) then { + hintSilent "Fire on Load: Disabled"; + } else { + hintSilent "Fire on Load: Enabled"; + }; + _unit setVariable [QGVAR(fireReload), !_current]; +}; + + +FUNC(assemble) = { + // TODO: Integrate into sys_crewserved somehow or keep individual, if more such stuff is included, maybe A3... + private ["_pos","_mortar"]; + PARAMS_2(_front,_rear); + _pos = getPosATL _front; // Needed to align APOBS on the Front assembly // TODO: Check geometry (kills player) + { deleteVehicle _x } foreach [_front,_rear]; + player setVariable ["ACE_PB_Result", 0]; + _time = getNumber(configFile >> "CfgVehicles" >> "ACE_120Tampella" >> "ACE" >> "ACE_CREWSERVED" >> "mountTime"); + [_time,[format [localize "STR_ACE_DN_MINESWEEPER_ASS_APOBS","120mm Tampella"]],true,true] spawn ace_progressbar; + waitUntil { (player getVariable "ACE_PB_Result" != 0) }; + if (player getVariable "ACE_PB_Result" == 1) then { + _mortar = "ACE_120Tampella" createVehicle [0,0,0]; + _mortar setVelocity [0,0,0]; + _mortar setPosATL _pos; + _mortar setDir getDir player; + }; +}; + +[QGVAR(trigger_mon), { _this call FUNC(trigger_monitor) }] call CBA_fnc_addEventHandler; +//[QGVAR(useFOR), { _this spawn FUNC(FOR) }] call ACE_fnc_addReceiverOnlyEventhandler; + +FUNC(trigger_monitor) = { + private "_trg"; + PARAMS_1(_gun); + if (isServer) then { + _trg=createTrigger ["EmptyDetector",getPos _gun]; + _trg setTriggerArea [5,5,0,false]; + _trg setTriggerActivation ["ANY","PRESENT",true]; + _trg triggerAttachVehicle [_gun]; + _trg setTriggerStatements ["(triggerAttachedVehicle thisTrigger) ammo (weapons (triggerAttachedVehicle thisTrigger) select 0) > 0", "(triggerAttachedVehicle thisTrigger) spawn ace_sys_arty_mortars_fnc_for", ""]; + //_trg setTriggerStatements ["(triggerAttachedVehicle thisTrigger) ammo (weapons (triggerAttachedVehicle thisTrigger) select 0) > 0", "[""ace_sys_arty_mortars_useFOR"", (triggerAttachedVehicle thisTrigger)] call ACE_fnc_receiverOnlyEvent", ""]; + }; +}; + +FUNC(m137_OpticBubbleLevel) = { + private["_levelStr", "_bubbleStr", "_difPercent", "_difInt", "_lvlArr", "_bubbleArr", "_retStr"]; + PARAMS_4(_ctrl,_level,_range,_gun); + + _opticLevel = _gun animationPhase "OpticElevate"; + _barrelLevel = _gun animationPhase "MainGun"; + + _dif = _barrelLevel - _opticLevel; + + _levelStr = "----|-|----"; + _bubbleStr = "o"; + _difPercent = (abs _dif)/_range; + _difInt = round((_difPercent/2)*10); + _difInt = (_difInt max 0) min 5; + if(_dif > 0) then { + _difInt = _difInt * -1; + }; + _difInt = _difInt + 5; + _lvlArr = toArray _levelStr; + _bubbleArr = toArray _bubbleStr; + _lvlArr set[_difInt, (_bubbleArr select 0)]; + _retStr = toString _lvlArr; + _retStr = format["|%1|", _retStr]; + ctrlSetText [_ctrl, _retStr]; +}; + + +ADDON = true; diff --git a/TO_MERGE/ace/arty_mortars/config.cpp b/TO_MERGE/ace/arty_mortars/config.cpp new file mode 100644 index 0000000000..a9278fa574 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/config.cpp @@ -0,0 +1,50 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "CAWeapons", "ace_sys_arty", "ace_main", "ace_sys_crewserved", "ace_sys_interaction" }; + VERSION_CONFIG; + author[] = {"Falcone","Rocko"}; + }; +}; + +PRELOAD_ADDONS; + +#include "CfgWeapons.hpp" +#include "CfgVehicles.hpp" +#include "CfgEventHandlers.hpp" + +class CfgAceArtyBatteryType { + class M224 { + name = "M224 60mm Mortar"; + type = "cannon"; + caliber = 60; + ammunition[] = {"ace_arty_60mm_m720a1", "ace_arty_60mm_m721", "ace_arty_60mm_m722a1"}; + weaponClass = "ace_arty_m224"; + }; + class M252 { + name = "M252 81mm Mortar"; + type = "cannon"; + caliber = 81; + ammunition[] = {"ace_arty_81mm_m821a2", "ace_arty_81mm_m853a1", "ace_arty_81mm_m375a3"}; + weaponClass = "ace_arty_m252"; + }; + class Tampella { + name = "Tampella 120mm Mortar"; + type = "cannon"; + caliber = 120; + ammunition[] = {"ace_arty_120mm_dm11a5","ace_arty_120mm_dm61","ace_arty_120mm_dm26","ace_arty_120mm_dm35"}; + weaponClass = "ace_arty_120tampella"; + }; + class 2B14 { + name = "2B14 82mm Mortar"; + type = "cannon"; + caliber = 82; + ammunition[] = {"ace_arty_82mm_he","ace_arty_82mm_illum","ace_arty_82mm_wp"}; + weaponClass = "ace_arty_2b14"; + }; +}; + +#include "dialogs.hpp" diff --git a/TO_MERGE/ace/arty_mortars/data/ace_120mm.rvmat b/TO_MERGE/ace/arty_mortars/data/ace_120mm.rvmat new file mode 100644 index 0000000000..23e971a1bc --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/data/ace_120mm.rvmat @@ -0,0 +1,95 @@ +ambient[]={1,1,1,1.000000}; +diffuse[]={1,1,1,1.000000}; +forcedDiffuse[]={0.000000,0.000000,0.000000,0.000000}; +emmisive[]={0.000000,0.000000,0.000000,1.000000}; +specular[]={1,1,1,1.000000}; +specularPower=40.000000; +PixelShaderID="super"; +VertexShaderID="super"; +class Stage1 +{ + texture="x\ace\addons\sys_arty_mortars\data\ace_120mm_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage2 +{ + texture="CA\weapons\Data\detailmaps\metal_detail_dt.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={8.0000,0.000000,0.000000}; + up[]={0.000000,8.0000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage5 +{ + texture="x\ace\addons\sys_arty_mortars\data\ace_120mm_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage6 +{ + texture = "#(ai,32,128,1)fresnel(3.38,5.33)"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class Stage7 +{ + texture="ca\Data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1.000000,0.000000,0.000000}; + up[]={0.000000,1.000000,0.000000}; + dir[]={0.000000,0.000000,0.000000}; + pos[]={0.000000,0.000000,0.000000}; + }; +}; +class StageTI { + texture = "ca\ca_e\data\default_vehicle_ti_ca.paa"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/data/ace_120mm_co2.paa b/TO_MERGE/ace/arty_mortars/data/ace_120mm_co2.paa new file mode 100644 index 0000000000..9150207b30 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/ace_120mm_co2.paa differ diff --git a/TO_MERGE/ace/arty_mortars/data/ace_120mm_nohq.paa b/TO_MERGE/ace/arty_mortars/data/ace_120mm_nohq.paa new file mode 100644 index 0000000000..1cc43e3d16 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/ace_120mm_nohq.paa differ diff --git a/TO_MERGE/ace/arty_mortars/data/ace_120mm_smdi.paa b/TO_MERGE/ace/arty_mortars/data/ace_120mm_smdi.paa new file mode 100644 index 0000000000..81e76b6a35 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/ace_120mm_smdi.paa differ diff --git a/TO_MERGE/ace/arty_mortars/data/ring.paa b/TO_MERGE/ace/arty_mortars/data/ring.paa new file mode 100644 index 0000000000..d92a560039 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/ring.paa differ diff --git a/TO_MERGE/ace/arty_mortars/data/sight.paa b/TO_MERGE/ace/arty_mortars/data/sight.paa new file mode 100644 index 0000000000..055e34e765 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sight.paa differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/120mm_1.wss b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_1.wss new file mode 100644 index 0000000000..a216ecc4b6 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_1.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/120mm_2.wss b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_2.wss new file mode 100644 index 0000000000..fc5c4131a1 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_2.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/120mm_5.wss b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_5.wss new file mode 100644 index 0000000000..001865de35 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_5.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/120mm_6.wss b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_6.wss new file mode 100644 index 0000000000..e8a079f023 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/120mm_6.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/60mm_1.wss b/TO_MERGE/ace/arty_mortars/data/sounds/60mm_1.wss new file mode 100644 index 0000000000..34b8dbaec4 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/60mm_1.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/ace_mortar_fire.wss b/TO_MERGE/ace/arty_mortars/data/sounds/ace_mortar_fire.wss new file mode 100644 index 0000000000..8728970d60 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/ace_mortar_fire.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/mortar_load_long.wss b/TO_MERGE/ace/arty_mortars/data/sounds/mortar_load_long.wss new file mode 100644 index 0000000000..ab1e92037e Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/mortar_load_long.wss differ diff --git a/TO_MERGE/ace/arty_mortars/data/sounds/mortar_load_short.wss b/TO_MERGE/ace/arty_mortars/data/sounds/mortar_load_short.wss new file mode 100644 index 0000000000..88fb502117 Binary files /dev/null and b/TO_MERGE/ace/arty_mortars/data/sounds/mortar_load_short.wss differ diff --git a/TO_MERGE/ace/arty_mortars/dialogs.hpp b/TO_MERGE/ace/arty_mortars/dialogs.hpp new file mode 100644 index 0000000000..7890151502 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/dialogs.hpp @@ -0,0 +1,282 @@ +#include "script_component.hpp" +#include "\x\ace\addons\main\script_dialog_defines.hpp" + +#define FontM "Zeppelin32" +#define ClrWhite 1,1,1 +#define ClrBlack 0,0,0 +#define ClrGray 0.5,0.5,0.5 +#define ClrBlue 0.2,0.5,1 + +class ace_sys_arty_mortars_m137_RscText { + idc = -1; + type = CT_STATIC; + style = ST_CENTER; + font = FontM; + colorText[] = {1,1,1,1}; + colorBackground[] = {0, 0, 0, 0}; + sizeEx = 0.03; + w = 0.2; + h = 0.03; +}; + +class ace_sys_arty_mortars_m137_RscButton { + type = CT_BUTTON; + idc = -1; + style = ST_CENTER; + + x = 0.0; + y = 0.0; + w = 0.1; + h = 0.03; + sizeEx = 0.0325; + offsetX = 0; + offsetY = 0.002; + offsetPressedX = 0; + offsetPressedY = 0.002; + borderSize = 0; + + colorText[] = {ClrWhite,1}; + colorBackground[] = {ClrGray, 0.75}; + colorFocused[] = {ClrGray,0}; + + colorShadow[] = {ClrBlack,0}; + colorBorder[] = {ClrWhite,0}; + colorBackgroundActive[] = {ClrGray,0}; + colorDisabled[] = {ClrGray, 0}; + colorBackgroundDisabled[] = {ClrGray,0}; + font = FontM; + + soundEnter[] = {"", 0.2, 1}; + soundPush[] = {"", 0.2, 1}; + soundClick[] = {"", 0.2, 1}; + soundEscape[] = {"", 0.2, 1}; + + default = false; + text = ""; + action = ""; +}; + +class ace_sys_arty_mortars_m137_RscPicture : ace_sys_arty_mortars_m137_RscButton { + type = CT_STATIC; + idc = -1; + style = ST_PICTURE; + text = ""; +}; + +class ace_sys_arty_mortars_dialog { + idd = 137137; + MovingEnable = 0; + onLoad = QUOTE([] spawn FUNC(m137_monitorSight)); + onUnload = QUOTE([] spawn FUNC(m137_stopMonitorSight)); + + controlsBackground[] = {}; + objects[] = {}; + onKeyDown = QUOTE(_this call FUNC(m137_keyDown)); + onKeyUp = QUOTE(_this call FUNC(m137_keyUp)); + class controls { + class GVAR(m137Background) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0); + __SW(0.25); + __SH(0.6); + colorBackground[] = {ClrGray, 0.25}; + text = ""; + }; + + class GVAR(m137Title) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0); + __SW(0.25); + colorBackground[] = {ClrGray, 0.25}; + text = "Sight Unit"; + }; + + class GVAR(m137AzimuthLabel) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0.035); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Azimuth:"; + }; + + class GVAR(m137Azimuth) : ace_sys_arty_mortars_m137_RscText { + idc = 137001; + __SX(0.125); + __SY(0.035); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "0000"; + }; + + class GVAR(m137DeflectionLabel) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0.07); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Deflection:"; + }; + + class GVAR(m137Deflection) : ace_sys_arty_mortars_m137_RscText { + idc = 137002; + __SX(0.125); + __SY(0.07); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "3200"; + }; + + class GVAR(m187title) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0.105); + __SW(0.25); + colorBackground[] = {ClrGray, 0.25}; + text = "Sight Mount"; + }; + + class GVAR(m137ElevationLabel) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0.140); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Elevation:"; + }; + + class GVAR(m137Elevation) : ace_sys_arty_mortars_m137_RscText { + idc = 137003; + __SX(0.125); + __SY(0.140); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "0300"; + }; + + class GVAR(m137ElevationBubbleLabel) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0.175); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Level:"; + }; + + class GVAR(m137ElevationBubble) : ace_sys_arty_mortars_m137_RscText { + idc = 137004; + __SX(0.125); + __SY(0.175); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "|---|+|---|"; + }; + + class GVAR(OpticElevationBubbleLabel): GVAR(m137ElevationBubbleLabel) { + __SY(0.1925); + text = "Optic Level:"; + }; + + class GVAR(OpticElevationBubble) : GVAR(m137ElevationBubble) { + idc = 137009; + __SY(0.1925); + text = "|---|+|---|"; + }; + + class GVAR(m137AzimuthLeftButton) : ace_sys_arty_mortars_m137_RscButton { + idc = 137004; + __SX(0.0); + __SY(0.210); + __SW(0.062); + text = "Def. -"; + action = QUOTE([-1] call FUNC(m137_adjustAzimuth)); + }; + + class GVAR(m137AzimuthRightButton) : ace_sys_arty_mortars_m137_RscButton { + idc = 137005; + __SX(0.0625); + __SY(0.210); + __SW(0.062); + text = "Def. +"; + action = QUOTE([1] call FUNC(m137_adjustAzimuth)); + }; + + class GVAR(m137ElevationUpButton) : ace_sys_arty_mortars_m137_RscButton { + idc = 137006; + __SX(0.125); + __SY(0.210); + __SW(0.062); + text = "El +"; + action = QUOTE([1] call FUNC(m137_adjustElevation)); + }; + + class GVAR(m137ElevationDownButton) : ace_sys_arty_mortars_m137_RscButton { + idc = 137007; + __SX(0.1875); + __SY(0.210); + __SW(0.062); + text = "El -"; + action = QUOTE([-1] call FUNC(m137_adjustElevation)); + }; + + class GVAR(m137OpticDownButton) : ace_sys_arty_mortars_m137_RscButton { + __SX(0.0); + __SY(0.245); + __SW(0.062); + text = "Op. -"; + action = QUOTE([-1] call FUNC(m137_adjustOpticElevation)); + }; + + class GVAR(m137OpticUpButton) : ace_sys_arty_mortars_m137_RscButton { + __SX(0.0625); + __SY(0.245); + __SW(0.062); + text = "Op. +"; + action = QUOTE([1] call FUNC(m137_adjustOpticElevation)); + }; + + class GVAR(m137ResetLeftButton) : ace_sys_arty_mortars_m137_RscButton { + __SX(0.125); + __SY(0.245); + __SW(0.062); + text = "Re +"; + action = QUOTE([1] call FUNC(m137_adjustReset)); + }; + + class GVAR(m137ResetRightButton) : ace_sys_arty_mortars_m137_RscButton { + __SX(0.1875); + __SY(0.245); + __SW(0.062); + text = "Re -"; + action = QUOTE([-1] call FUNC(m137_adjustReset)); + }; + + class GVAR(m137TraverseIndicatorLabel) : ace_sys_arty_mortars_m137_RscText { + __SX(0); + __SY(0.280); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "Traverse:"; + }; + + class GVAR(m137TraverseIndicator) : ace_sys_arty_mortars_m137_RscText { + idc = 137008; + __SX(0.125); + __SY(0.280); + __SW(0.125); + colorBackground[] = {ClrGray, 0.25}; + text = "|-----|-----|"; + }; + + class GVAR(m137ChangeViewButton) : ace_sys_arty_mortars_m137_RscButton { + __SX(0.0); + __SY(0.315); + __SW(0.25); + text = "Change View"; + action = QUOTE([] call FUNC(m137_changeView)); + }; + + class GVAR(m137LevelGun) : ace_sys_arty_mortars_m137_RscButton { + __SX(0.0); + __SY(0.350); + __SW(0.25); + text = "Level Gun"; + action = QUOTE([] call FUNC(levelGun)); + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_FOR.sqf b/TO_MERGE/ace/arty_mortars/fnc_FOR.sqf new file mode 100644 index 0000000000..b45f81c365 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_FOR.sqf @@ -0,0 +1,97 @@ +/*//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +#define __MG_CFG configFile >> "CfgVehicles" >> (typeOf _gun) +#define __WEAPON (getArray(configFile >> "CfgVehicles" >> (typeOf _gun) >> "Turrets" >> "MainTurret" >> "weapons") select 0) + +PARAMS_1(_gun); + +// PLAYER !? + +// Check if we have a player sitting in the gunner seat, instead of spawning an AI, we make the player fire it +if (isPlayer gunner _gun) exitWith { + (gunner _gun) selectWeapon __WEAPON; + (vehicle gunner _gun) fire __WEAPON; +}; +*/ +// FIRE ON RELOAD !! + + + +// - _dummy fire _weapon +// Should be executed on client where vehicle is local? +// 1. Executing FOR with AI on a client works (when mortar is local to the client) +// 2. Executing FOR with AI on the server, when mortar is local to server does also work but no visual effects (firing sound, muzzleflash) +// Are effects visible for another client when performing step 1? +// - No they are not. An other client does not see firing effects +// - And if the other client who does not see the effects loads mortar, then the client where mortar is local to sees the effects + +// Conclusion the firing is only local to the machine where the mortar is local to when using the FIRE command +// It seems not to be broadcasted over net (Arma bug) + +// Testing now with USEWEAPON - ACTION command. +// - Tested. UseWeapon could work if the weapon index was known. +// - Since we remove the weapon and add a magazine and re-add the weapon, +// the weapon index changes everytime, and AI fails to fire then +// Speculative, not really sure + +// Probably the index is always 0 because its the only weapon even if re-added? +// - Confirmed + +// Executing +// (vehicle gunner cursorTarget) action ["useweapon",(vehicle cursorTarget),(gunner vehicle cursorTarget),0] +// on a client where the mortar is local, fires only for THAT client, other clients dont see the effects + +// But executing it on a client where the mortar is NOT local, then ALL clients see the effects +// So, the firing should be done on any other client where the mortar is not local to + +// Called from server Trigger !!!!!! + +/* Disabled Fire on Reload for now +if (!isNull (gunner _gun) && !isPlayer (gunner _gun)) exitWith { + hintSilent "Auto-Fire failed, there is crew inside the mortar!"; +}; +_dummy = createAgent ["ACE_CivDummy", getPos _gun, [], 0, "FORM"]; // [10,10,0] + +waitUntil { alive _dummy }; + +TRACE_1("Dummy",_dummy); + +{ + //_x enableSimulation false; + //_x disableAI "TARGET"; + //_x disableAI "AUTOTARGET"; + //_x disableAI "MOVE"; + //_x disableAI "ANIM"; +} foreach [_dummy]; + +_dummy moveInGunner _gun; + +waitUntil { gunner _gun == _dummy }; + +if (gunner _gun == _dummy) then { + TRACE_1("Dummy UseWeapon",_dummy); + TRACE_1("Executed fire command",_dummy); + reload _gun; + sleep 0.05; + _dummy selectWeapon __WEAPON; + sleep 0.05; + _gun fire __WEAPON; + (vehicle _dummy) fire __WEAPON; + //(vehicle _dummy) action ["useWeapon",(vehicle _dummy), (gunner(vehicle _dummy)),0]; + _timeStart = time; + _timeEnd = _timeStart + 45; + waitUntil {_gun ammo __WEAPON == 0 || time > _timeEnd }; + + TRACE_1("Past firing sequence",_dummy); + if (_gun ammo __WEAPON > 0) then { + TRACE_1("Firing seemed to have failed",nil); + hintSilent "AutoFiring failed"; + } else { + hintSilent "AutoFiring"; + }; +}; +moveOut _dummy; +sleep 1; +deleteVehicle _dummy; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_XEH_getin.sqf b/TO_MERGE/ace/arty_mortars/fnc_XEH_getin.sqf new file mode 100644 index 0000000000..397b292813 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_XEH_getin.sqf @@ -0,0 +1,58 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_3(_gun,_pos,_unit); + +if (_unit == player) then { + + GVAR(activeGun) = _gun; + + [203, [false, false, false], { [-1] call FUNC(adjustTraverse) }, "keydown", QGVAR(leftTraverseSmall)] call CBA_fnc_addKeyHandler; + [203, [true, false, false], { [-10] call FUNC(adjustTraverse) }, "keydown", QGVAR(leftTraverseLarge)] call CBA_fnc_addKeyHandler; + [203, [true, true, false], { [-0.25] call FUNC(adjustTraverse) }, "keydown", QGVAR(leftTraverseVerySmall)] call CBA_fnc_addKeyHandler; + [205, [false, false, false], { [1] call FUNC(adjustTraverse) }, "keydown", QGVAR(rightTraverseSmall)] call CBA_fnc_addKeyHandler; + [205, [true, false, false], { [10] call FUNC(adjustTraverse) }, "keydown", QGVAR(rightTraverseLarge)] call CBA_fnc_addKeyHandler; + [205, [true, true, false], { [0.25] call FUNC(adjustTraverse) }, "keydown", QGVAR(rightTraverseVerySmall)] call CBA_fnc_addKeyHandler; + [200, [false, false, false], { [-1] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateUpSmall)] call CBA_fnc_addKeyHandler; + [200, [true, false, false], { [-10] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateUpLarge)] call CBA_fnc_addKeyHandler; + [208, [false, false, false], { [1] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateDownSmall)] call CBA_fnc_addKeyHandler; + [208, [true, false, false], { [10] call FUNC(adjustElevation) }, "keydown", QGVAR(elevateDownLarge)] call CBA_fnc_addKeyHandler; + + _actionId = _gun addAction ["View Sightunit", QPATHTO_F(fnc_showSight), [], -100, false, true, "", "gunner _target == player"]; + + if (gunner GVAR(activeGun) == player) then { + _ammoFunc = { + if(!isNil QGVAR(activeGun)) then { + private["_currentRound", "_ammo", "_mag", "_currentWeapon"]; + _currentRound = GVAR(activeGun) getVariable ["ace_sys_arty_currentRound", []]; + _currentWeapon = (weapons GVAR(activeGun)) select 0; + _ammo = GVAR(activeGun) ammo _currentWeapon; + if (count _currentRound != 0) then { + if (count (magazines GVAR(activeGun)) == 0) then { + _mag = _currentRound select 0; + GVAR(activeGun) removeWeapon _currentWeapon; + GVAR(activeGun) addMagazine _mag; + GVAR(activeGun) addWeapon _currentWeapon; + GVAR(activeGun) selectWeapon _currentWeapon; + reload GVAR(activeGun); + }; + }; + if (count (magazines GVAR(activeGun)) != 0) then { + if (count _currentRound == 0) then { + _mag = currentMagazine GVAR(activeGun); + GVAR(activeGun) removeWeapon _currentWeapon; + GVAR(activeGun) removeMagazines _mag; + GVAR(activeGun) addWeapon _currentWeapon; + GVAR(activeGun) selectWeapon _currentWeapon; + reload GVAR(activeGun); + }; + }; + } else { + [(_this select 1)] call CBA_fnc_removePerFrameHandler; + }; + }; + [_ammoFunc, 0.25] call CBA_fnc_addPerFrameHandler; + }; + + GVAR(gunActionIds) set[count GVAR(gunActionIds), _actionId]; +}; diff --git a/TO_MERGE/ace/arty_mortars/fnc_XEH_getout.sqf b/TO_MERGE/ace/arty_mortars/fnc_XEH_getout.sqf new file mode 100644 index 0000000000..e59fcc4723 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_XEH_getout.sqf @@ -0,0 +1,29 @@ +#include "script_component.hpp" + +PARAMS_3(_gun,_pos,_unit); + +if (_unit == player) then { + GVAR(activeGun) = nil; + + [QGVAR(leftTraverseSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(leftTraverseVerySmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(leftTraverseLarge)] call CBA_fnc_removeKeyHandler; + [QGVAR(rightTraverseSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(rightTraverseVerySmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(rightTraverseLarge)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateUpSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateUpLarge)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateDownSmall)] call CBA_fnc_removeKeyHandler; + [QGVAR(elevateDownLarge)] call CBA_fnc_removeKeyHandler; + + { + _gun removeAction _x; + } forEach GVAR(gunActionIds); + GVAR(gunActionIds) = []; + + _gun setVariable [QGVAR(azimuthCounter), _gun getVariable QGVAR(azimuthCounter), true]; + _gun setVariable [QGVAR(deflectionCounter), _gun getVariable QGVAR(deflectionCounter), true]; + _gun setVariable [QGVAR(elevationCounter), _gun getVariable QGVAR(elevationCounter), true]; + _gun setVariable [QGVAR(resetCounter), _gun getVariable QGVAR(resetCounter), true]; + _gun setVariable [QGVAR(resetPhase), _gun getVariable QGVAR(resetPhase), true]; +}; diff --git a/TO_MERGE/ace/arty_mortars/fnc_adjustElevation.sqf b/TO_MERGE/ace/arty_mortars/fnc_adjustElevation.sqf new file mode 100644 index 0000000000..1530a3853e --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_adjustElevation.sqf @@ -0,0 +1,12 @@ +//fnc_adjustElevation.sqf +#include "script_component.hpp" + +private["_gun", "_phase", "_newPhase"]; + +PARAMS_1(_dir); +_gun = GVAR(activeGun); +_phase = round(_gun animationPhase "MainGun"); + +_newPhase = round(_phase + _dir) min 1511 max 800; +_gun animate ["MainGun", _newPhase]; +false diff --git a/TO_MERGE/ace/arty_mortars/fnc_adjustTraverse.sqf b/TO_MERGE/ace/arty_mortars/fnc_adjustTraverse.sqf new file mode 100644 index 0000000000..2324707c1b --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_adjustTraverse.sqf @@ -0,0 +1,13 @@ +//fnc_adjustTraverse.sqf +#include "script_component.hpp" + +private["_gun", "_phase", "_newPhase", "_m"]; + +PARAMS_1(_dir); + +_gun = GVAR(activeGun); +_phase = (_gun animationPhase "MainTurretTraverse"); +_m = 0.25; +_newPhase = _phase+(_dir*_m) min 200 max -200; +_gun animate ["MainTurretTraverse", _newPhase]; +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_alignGun.sqf b/TO_MERGE/ace/arty_mortars/fnc_alignGun.sqf new file mode 100644 index 0000000000..dfefbbf908 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_alignGun.sqf @@ -0,0 +1,60 @@ +#include "script_component.hpp" + +if (isServer) then { + _this spawn { + waitUntil { time > 0 }; + private["_mortar", "_pitchBank", "_dir", "_rd", "_wpos", "_offset", "_stake1pos", "_rdDeg", "_stake1", "_stake2"]; + + _mortar = _this; + + _pitchBank = _mortar call BIS_fnc_getPitchBank; + _pitchBank = _mortar call BIS_fnc_getPitchBank; + + _mortar setVectorUp [0,0,0.0001]; + + _dir = getDir _mortar; + _stakesInfo = if (time < 30) then { [400,25] } else { [] }; + _colInfo = _mortar getVariable ["ace_arty_collimator_setup", []]; + _offsetPos = getArray(configFile >> "CfgVehicles" >> (typeOf _mortar) >> "ACE_ARTY_SETUP_OFFSETPOS"); + _offsetAngle = 0.37;//getNumber(configFile >> "CfgVehicles" >> (typeOf _mortar) >> "ACE_ARTY_SETUP_OFFSET_STAKEANGLE"); + if (count _stakesInfo == 2) then { + _stakesDeflection = _stakesInfo select 0; + _stakesDistance = _stakesInfo select 1; + _rd = DEG2MIL(_dir) - (_stakesDeflection-0.4); + if (_rd < 0) then { + _rd = _rd + 6400; + }; + _rdDeg = MIL2DEG(_rd); + _wpos = _mortar modelToWorld _offsetPos; + _wpos set[2, 0]; + + _offset = (_rdDeg + MIL2DEG(_offsetAngle)) mod 360; + if(_offset < 360) then { + _offset = _offset + 360; + }; + _stake1pos = [_wpos, _stakesDistance, _offset] call BIS_fnc_relPos; + _stake2pos = [_wpos, (_stakesDistance*2), _offset] call BIS_fnc_relPos; + + _stake1pos set[2, -0.75]; + _stake1 = "ACE_Arty_AimingPost_M1A2_M58" createVehicle _wpos; + + _stake1 setDir _rdDeg+180 mod 360; + _stake1 setPos _stake1pos; + _stake1 setVectorUp [0,0,0.0001]; + + _stake2 = "ACE_Arty_AimingPost_M1A2_M59" createVehicle _wpos; + + _stake2 setDir _rdDeg + 180 mod 360; + _stake2pos set[2, -0.5]; + _stake2 setPosATL _stake2pos; + + _stake2 setVectorUp [0,0,0.0001]; + if (count _colInfo != 5) then { + _mortar animate ["OpticRevolve", _stakesDeflection]; + _mortar setVariable [QGVAR(resetCounter), 3200-_stakesDeflection, true]; + _mortar animate ["OpticElevate", 1100]; + }; + }; + //_mortar setVariable [QGVAR(resetCounter), 3200+(_m119 getVariable QUOTE(GVAR(resetPhase))), true]; + }; +}; diff --git a/TO_MERGE/ace/arty_mortars/fnc_endShift.sqf b/TO_MERGE/ace/arty_mortars/fnc_endShift.sqf new file mode 100644 index 0000000000..444f359802 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_endShift.sqf @@ -0,0 +1,9 @@ +#include "script_component.hpp" + +detach player; +player playActionNow "crouch"; +player removeAction GVAR(shiftActionId); + +GVAR(shiftActionId) = -1; +(findDisplay 46) displayRemoveEventHandler ["KeyDown", GVAR(drag_keyDownId)]; +GVAR(stopDragging) = true; diff --git a/TO_MERGE/ace/arty_mortars/fnc_levelGun.sqf b/TO_MERGE/ace/arty_mortars/fnc_levelGun.sqf new file mode 100644 index 0000000000..9924e65c43 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_levelGun.sqf @@ -0,0 +1,16 @@ +//fnc_levelGun.sqf +#include "script_component.hpp" + +_pb = GVAR(m137Gun) call BIS_fnc_getPitchBank; +_pitch = abs(_pb select 0); +_bank = abs(_pb select 1); + +if(_pitch <= 2.5 && {_bank <= 2.5}) then { + _p = getPos GVAR(m137Gun); + _p set[2, 0]; + GVAR(m137Gun) setPosATL _p; + GVAR(m137Gun) setVectorUp [0,0,0.0001]; + hintSilent "The gun has been leveled."; +} else { + hintSilent "The ground is not level enough to properly level this gun."; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_adjustAzimuth.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustAzimuth.sqf new file mode 100644 index 0000000000..61aa680d4b --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustAzimuth.sqf @@ -0,0 +1,22 @@ +//fnc_m137_adjustAzimuth.sqf +#include "script_component.hpp" + +private["_gun", "_size", "_phase", "_newPhase"]; + +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if(GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_phase = _gun animationPhase "OpticRevolve"; + +_newPhase = round(_phase+(_dir*_size)); +_gun setVariable [QGVAR(resetPhase), _newPhase]; +_gun animate ["OpticRevolve", _newPhase]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_adjustElevation.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustElevation.sqf new file mode 100644 index 0000000000..793b3760ac --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustElevation.sqf @@ -0,0 +1,20 @@ +//fnc_m137_adjustElevation.sqf +#include "script_component.hpp" + +private["_gun", "_size", "_count", "_increment"]; + +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if (GVAR(m137_shift)) then { + if (GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_count = _gun getVariable QGVAR(elevationCounter); +_increment = ((_count+(_size*_dir)) min 1511) max 800; +_gun setVariable [QGVAR(elevationCounter), _increment]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_adjustOpticElevation.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustOpticElevation.sqf new file mode 100644 index 0000000000..f211aaab82 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustOpticElevation.sqf @@ -0,0 +1,17 @@ +//fnc_m137_adjustOpticElevation.sqf +#include "script_component.hpp" +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if (GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 10; + } else { + _size = 0.1; + }; +}; +_count = _gun animationPhase "OpticElevate"; +_increment = ((_count+(_size*_dir)) min 1511) max 800; +_gun animate ["OpticElevate", _increment]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_adjustReset.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustReset.sqf new file mode 100644 index 0000000000..29fb59c7eb --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_adjustReset.sqf @@ -0,0 +1,19 @@ +//fnc_m137_adjustReset.sqf +#include "script_component.hpp" + +private["_gun", "_size", "_count", "_increment"]; + +PARAMS_1(_dir); + +_gun = GVAR(m137Gun); + +_size = 1; +if(GVAR(m137_shift)) then { + if(GVAR(m137_ctrl)) then { + _size = 100; + } else { + _size = 10; + }; +}; +_count = _gun getVariable QGVAR(resetCounter); +_gun setVariable [QGVAR(resetCounter), _count+(_size*_dir)]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_bubbleLevel.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_bubbleLevel.sqf new file mode 100644 index 0000000000..398d02f353 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_bubbleLevel.sqf @@ -0,0 +1,21 @@ +//fnc_m137_bubbleLevel.sqf +#include "script_component.hpp" +private["_levelStr", "_bubbleStr", "_difPercent", "_difInt", "_lvlArr", "_bubbleArr", "_retStr"]; +PARAMS_4(_ctrl,_dif,_level,_range); + +_levelStr = "----|-|----"; +_bubbleStr = "o"; +_difPercent = (abs _dif)/_range; +_difInt = round((_difPercent/2)*10); +_difInt = (_difInt max 0) min 5; +if(_dif > 0) then { + _difInt = _difInt * -1; +}; +_difInt = _difInt + 5; + +_lvlArr = toArray _levelStr; +_bubbleArr = toArray _bubbleStr; +_lvlArr set[_difInt, (_bubbleArr select 0)]; +_retStr = toString _lvlArr; +_retStr = format["|%1|", _retStr]; +ctrlSetText [_ctrl, _retStr]; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_changeView.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_changeView.sqf new file mode 100644 index 0000000000..63094978cd --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_changeView.sqf @@ -0,0 +1,7 @@ +//fnc_m137_changeView.sqf +#include "script_component.hpp" +if(cameraView == "GUNNER") then { + GVAR(m137Gun) switchCamera "INTERNAL"; +} else { + GVAR(m137Gun) switchCamera "GUNNER"; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_keyDown.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_keyDown.sqf new file mode 100644 index 0000000000..ab8f194198 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_keyDown.sqf @@ -0,0 +1,46 @@ +//fnc_m137_keyDown.sqf +#include "script_component.hpp" +PARAMS_4(_ctrl,_code,_shift,_ctrl); +if(_code == 42) then { + GVAR(m137_shift) = true; +}; +if(_code == 29) then { + GVAR(m137_ctrl) = true; +}; +if(_code == 203) then { + if(_shift) then { + if(_ctrl) then { + [-0.25] call FUNC(adjustTraverse); + } else { + [-10] call FUNC(adjustTraverse); + }; + } else { + [-1] call FUNC(adjustTraverse); + }; +}; +if(_code == 205) then { + if(_shift) then { + if(_ctrl) then { + [0.25] call FUNC(adjustTraverse); + } else { + [10] call FUNC(adjustTraverse); + }; + } else { + [1] call FUNC(adjustTraverse); + }; +}; +if(_code == 200) then { + if(_shift) then { + [-10] call FUNC(adjustElevation); + } else { + [-1] call FUNC(adjustElevation); + }; +}; +if(_code == 208) then { + if(_shift) then { + [10] call FUNC(adjustElevation); + } else { + [1] call FUNC(adjustElevation) + }; +}; +false \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_keyUp.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_keyUp.sqf new file mode 100644 index 0000000000..cbf6317a1a --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_keyUp.sqf @@ -0,0 +1,11 @@ +//fnc_m137_keyUp.sqf +#include "script_component.hpp" +PARAMS_4(_ctrl,_code,_shift,_ctrl); + +_code = _this select 1; +if(_code == 0x2A) then { + GVAR(m137_shift) = false; +}; +if(_code == 29) then { + GVAR(m137_ctrl) = false; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_monitorSight.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_monitorSight.sqf new file mode 100644 index 0000000000..6a6186bec0 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_monitorSight.sqf @@ -0,0 +1,61 @@ +//fnc_m137_monitorSight.sqf +#include "script_component.hpp" +private["_reset", "_opticPhase", "_opticAzimuthCounter", "_opticDeflectionCounter", "_opticAzimuthCounterStr", + "_opticDeflectionCounterStr", "_elevationCount", "_elevationPhase", "_dif", "_elevationCountStr"]; +waitUntil { + !isNil QGVAR(m137Gun) +}; +_gun = GVAR(m137Gun); +GVAR(monitorSight) = true; +waitUntil { + _reset = _gun getVariable QGVAR(resetCounter); + // player sideChat format["opticPhase: %1", (floor(_gun animationPhase "OpticRevolve"))]; + _opticPhase = (floor(_gun animationPhase "OpticRevolve")*-1); + _opticPhase = (_opticPhase); + _opticPhase = _opticPhase + 3200; + if(_opticPhase > 6400) then { + _opticPhase = _opticPhase mod 6400; + }; + if(_opticPhase < 0) then { + while { _opticPhase < 0 } do { _opticPhase = _opticPhase + 6400; }; + }; + _opticPhaseRaw = (floor(_gun animationPhase "OpticRevolve")); + _reset = (_opticPhaseRaw + _reset) mod 6400; + if(_reset > 6400) then { + _reset = _reset mod 6400; + }; + if(_reset < 0) then { + while { _reset < 0 } do { _reset = _reset + 6400; }; + }; + _opticAzimuthCounterStr = [(str _opticPhase), "0", 4] call FUNC(textPad); + _opticDeflectionCounterStr = [(str _reset), "0", 4] call FUNC(textPad); + ctrlSetText [137001, _opticAzimuthCounterStr]; + ctrlSetText [137002, _opticDeflectionCounterStr]; + + _elevationCount = _gun getVariable QGVAR(elevationCounter); + _elevationPhase = floor(_gun animationPhase "MainGun"); + + _dif = _elevationCount - _elevationPhase; + + _traversePhase = _gun animationPhase "MainTurretTraverse"; + _traversePhase = _traversePhase + 200; + _percent = (abs (round _traversePhase))/400; + _traverseIndicator = "----------^----------"; + _tArray = (toArray _traverseIndicator); + _tLength = (count _tArray); + _indicPos = ((round(_percent*_tLength))-1 max 0) min 20; + _tArray set[_indicPos, (toArray "|") select 0]; + _tStr = (toString _tArray); + ctrlSetText [137008, format["|%1|", _tStr]]; + + + [137004, _dif, 0, 10] call FUNC(m137_bubbleLevel); + [137009, 0, 10,_gun] call FUNC(m137_OpticBubbleLevel); + _elevationCountStr = [(str _elevationCount), "0", 4] call FUNC(textPad); + if(_elevationCount < 0) then { + _elevationCountStr = format["-%1", _elevationCountStr]; + }; + ctrlSetText [137003, _elevationCountStr]; + sleep 0.05; + !GVAR(monitorSight) +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_m137_stopMonitorSight.sqf b/TO_MERGE/ace/arty_mortars/fnc_m137_stopMonitorSight.sqf new file mode 100644 index 0000000000..9e7d71de66 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_m137_stopMonitorSight.sqf @@ -0,0 +1,5 @@ +//fnc_m137_stopMonitorSight.sqf +#include "script_component.hpp" + +GVAR(monitorSight) = false; +GVAR(m137Gun) = nil; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/fnc_menuDef.sqf b/TO_MERGE/ace/arty_mortars/fnc_menuDef.sqf new file mode 100644 index 0000000000..ef116bf3d2 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_menuDef.sqf @@ -0,0 +1,71 @@ +//#define DEBUG_MODE_FULL + +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +private ["_menuDef", "_menuName", "_menuRsc", "_menus"]; +private ["_requiredComponent","_component","_componentlist"]; + +PARAMS_2(_target,_params); + +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; + +//----------------------------------------------------------------------------- + +#define __ASSEMBLE format [localize "STR_ACE_DN_MINESWEEPER_ASS_APOBS","120mm Tampella"] + +_isComponent = (typeOf _target == "ACE_120Tampella_Barrel" || {typeOf _target == "ACE_120Tampella_Baseplate"}); +_hasComponent = false; +if (_isComponent) then { // TODO: More into configs... once working + if (typeOf _target == "ACE_120Tampella_Barrel") then { + _requiredComponent = "ACE_120Tampella_Baseplate"; + } else { + _requiredComponent = "ACE_120Tampella_Barrel"; + }; + _componentlist = nearestObjects [_target, [_requiredComponent], 3]; + if (count _componentlist > 0) then { + _component = _componentlist select 0; + _hasComponent = true; + }; +}; + +GVAR(target) = _target; +GVAR(components) = if (typeOf _target == "ACE_120Tampella_Barrel") then { [_target,_component] } else { [_component,_target] }; + + +TRACE_7("",_isComponent,_hasComponent,_requiredComponent,_componentlist,_component,GVAR(target),GVAR(components)); + +_menus = +[ + [ + ["main", _menuName, _menuRsc], + [ + [__ASSEMBLE, + { GVAR(components) spawn FUNC(assemble) }, + "", "", "", -1, 1, + _isComponent && {_hasComponent} && {ACE_SELFINTERACTION_RESTRICTED}] + ] + ] +]; + +//----------------------------------------------------------------------------- +_menuDef = []; +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this} else {""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _params, __FILE__]; +}; + +_menuDef // return value diff --git a/TO_MERGE/ace/arty_mortars/fnc_recoil.sqf b/TO_MERGE/ace/arty_mortars/fnc_recoil.sqf new file mode 100644 index 0000000000..c7d4c9cff9 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_recoil.sqf @@ -0,0 +1,28 @@ +//fnc_recoil.sqf +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +private ["_recoilLength", "_charge", "_chargeFactor","_elvOff", "_defOff", "_azOff"]; + +PARAMS_1(_gun); + +_currentRound = _gun getVariable ["ace_sys_arty_currentRound",[]]; +TRACE_1("",_currentRound); + +_charge = if (count _currentRound == 0) then { 1 } else { _currentRound select 3 }; + +_chargeFactor = _charge/4; +_elvOff = (-1+(random 2))*_chargeFactor; +_defOff = (-0.5+(random 1))*_chargeFactor; +_azOff = (-0.25+(random 0.5))*_chargeFactor; + +_azimuthPhase = _gun animationPhase "MainTurret"; +_elevationPhase = _gun animationPhase "MainGun"; +_traversePhase = _gun animationPhase "MainTurretTraverse"; +_elvOff = ((_elvOff+_elevationPhase) max 800) min 1511; TRACE_1("Elevation RECOIL",_elvOff); +_azOff = _azOff + _azimuthPhase; TRACE_1("Azimuth RECOIL",_azOff); +_defOff = ((_defOff+_traversePhase) max -200) min 200; TRACE_1("Deflection RECOIL",_defOff); + +_gun animate ["MainGun", _elvOff]; +_gun animate ["MainTurret", _azOff]; +_gun animate ["MainTurretTraverse", _defOff]; + diff --git a/TO_MERGE/ace/arty_mortars/fnc_shiftLeft.sqf b/TO_MERGE/ace/arty_mortars/fnc_shiftLeft.sqf new file mode 100644 index 0000000000..7597db8f2f --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_shiftLeft.sqf @@ -0,0 +1,76 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +private["_phase", "_absPhase", "_degPhase", "_found_anim", "_setDir"]; + +PARAMS_1(_gun); + +GVAR(shiftingSpeed) = getArray(configFile >> "CfgVehicles" >> typeOf _gun >> "ACE" >> "ACE_ARTY" >> "shiftingSpeed"); + +GVAR(dragGun) = _gun; +closeDialog 0; +player attachTo [_gun, [0,0,-0.27], "shift_left"]; + +GVAR(stopDragging) = false; +_phase = GVAR(dragGun) animationPhase "MainTurret"; + +_absPhase = (abs _phase) mod 6400; + +if(_phase < 0) then { + _absPhase = 6400-_absPhase; +}; +_degPhase = MIL2DEG(_absPhase); + +player setDir (_degPhase + 70) mod 360; + +FUNC(handleKeydown) = { + private "_phase"; + PARAMS_5(_display,_dikCode,_shift,_ctrl,_alt); + + _size = GVAR(shiftingSpeed) select 0; + if(_shift) then { + _size = GVAR(shiftingSpeed) select 1; + }; + + _result = true; + if(_dikCode in (actionKeys "moveBack")) then { + _phase = GVAR(dragGun) animationPhase "MainTurret_RotateFast"; + _phase = (floor _phase); + _new_phase = _phase-_size; + GVAR(dragGun) animate["MainTurret_RotateFast", _new_phase]; + _result = false; + }; + if(_dikCode in (actionKeys "stand") || {_dikCode in (actionKeys "crouch")}) then { + [] call FUNC(endShift); + _result = true; + }; + _result +}; + +GVAR(drag_keyDownId) = (findDisplay 46) displayAddEventHandler ["KeyDown", QUOTE(_this call FUNC(handleKeydown))]; + +player playMove "ACINPKNLMSTPSRASWRFLDNON"; + +waitUntil { animationState player == "ACINPKNLMSTPSRASWRFLDNON" }; + +while { !GVAR(stopDragging) } do { + if( !(alive player) || {!(alive GVAR(dragGun))} || {GVAR(dragGun) call CBA_fnc_locked} ) exitWith { + [] call FUNC(endShift); + }; + if !(animationState player in ["acinpknlmstpsraswrfldnon","acinpknlmwlksraswrfldb"]) exitWith { + player switchMove "ACINPKNLMSTPSRASWRFLDNON"; + [] call FUNC(endShift); + }; + _phase = GVAR(dragGun) animationPhase "MainTurret_RotateFast"; + + _absPhase = (abs _phase) mod 6400; + + if(_phase < 0) then { + _absPhase = 6400-_absPhase; + }; + _degPhase = MIL2DEG(_absPhase); + _setDir = (_degPhase + 70) mod 360; + player setDir _setDir; + sleep 0.01; +}; diff --git a/TO_MERGE/ace/arty_mortars/fnc_shiftRight.sqf b/TO_MERGE/ace/arty_mortars/fnc_shiftRight.sqf new file mode 100644 index 0000000000..c824ed6be2 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_shiftRight.sqf @@ -0,0 +1,76 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\ca\editor\Data\Scripts\dikCodes.h" + +private["_phase", "_absPhase", "_degPhase", "_found_anim", "_setDir"]; + +PARAMS_1(_gun); + +GVAR(shiftingSpeed) = getArray(configFile >> "CfgVehicles" >> typeOf _gun >> "ACE" >> "ACE_ARTY" >> "shiftingSpeed"); + +GVAR(dragGun) = _gun; +closeDialog 0; +player attachTo [_gun, [0,0,-0.27], "shift_right"]; + +GVAR(stopDragging) = false; +_phase = GVAR(dragGun) animationPhase "MainTurret"; + +_absPhase = (abs _phase) mod 6400; + +if(_phase < 0) then { + _absPhase = 6400-_absPhase; +}; +_degPhase = MIL2DEG(_absPhase); + +player setDir (_degPhase - 70) mod 360; + +FUNC(handleKeydown) = { + private "_phase"; + PARAMS_5(_display,_dikCode,_shift,_ctrl,_alt); + + _size = GVAR(shiftingSpeed) select 0; + if(_shift) then { + _size = GVAR(shiftingSpeed) select 1; + }; + + _result = true; + if(_dikCode in (actionKeys "moveBack")) then { + _phase = GVAR(dragGun) animationPhase "MainTurret_RotateFast"; + _phase = (floor _phase); + _new_phase = _phase+_size; + GVAR(dragGun) animate["MainTurret_RotateFast", _new_phase]; + _result = false; + }; + if(_dikCode in (actionKeys "stand") || {_dikCode in (actionKeys "crouch")}) then { + [] call FUNC(endShift); + _result = true; + }; + _result +}; + +GVAR(drag_keyDownId) = (findDisplay 46) displayAddEventHandler ["KeyDown", QUOTE(_this call FUNC(handleKeydown))]; + +player playActionNow "grabDrag"; + +waitUntil { animationState player == "ACINPKNLMSTPSRASWRFLDNON" }; + +while { !GVAR(stopDragging) } do { + if( !(alive player) || {!(alive GVAR(dragGun))} || {GVAR(dragGun) call CBA_fnc_locked} ) exitWith { + [] call FUNC(endShift); + }; + if !(animationState player in ["acinpknlmstpsraswrfldnon","acinpknlmwlksraswrfldb"]) exitWith { + player switchMove "ACINPKNLMSTPSRASWRFLDNON"; + [] call FUNC(endShift); + }; + _phase = GVAR(dragGun) animationPhase "MainTurret_RotateFast"; + + _absPhase = (abs _phase) mod 6400; + + if(_phase < 0) then { + _absPhase = 6400-_absPhase; + }; + _degPhase = MIL2DEG(_absPhase); + _setDir = (_degPhase - 70) mod 360; + player setDir _setDir; + sleep 0.01; +}; diff --git a/TO_MERGE/ace/arty_mortars/fnc_showSight.sqf b/TO_MERGE/ace/arty_mortars/fnc_showSight.sqf new file mode 100644 index 0000000000..3486d42077 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_showSight.sqf @@ -0,0 +1,8 @@ +#include "script_component.hpp" + +disableSerialization; + +createDialog "ace_sys_arty_mortars_dialog"; + +PARAMS_1(_gun); +GVAR(m137Gun) = _gun; diff --git a/TO_MERGE/ace/arty_mortars/fnc_textPad.sqf b/TO_MERGE/ace/arty_mortars/fnc_textPad.sqf new file mode 100644 index 0000000000..cb9ebc1cc4 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/fnc_textPad.sqf @@ -0,0 +1,18 @@ +//fnc_textPad.sqf +#include "script_component.hpp" +PARAMS_3(_str,_pad,_length); + +_strArray = toArray _str; +_padStr = ""; +if(_length > (count _strArray)) then { + _dif = _length - (count _strArray); + + for "_i" from 1 to _dif do { + _padStr = _padStr + _pad; + }; + _padStr = _padStr + _str; +} else { + _padStr = _str; +}; + +_padStr \ No newline at end of file diff --git a/TO_MERGE/ace/arty_mortars/license.txt b/TO_MERGE/ace/arty_mortars/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/arty_mortars/model.cfg b/TO_MERGE/ace/arty_mortars/model.cfg new file mode 100644 index 0000000000..b436bc3f45 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/model.cfg @@ -0,0 +1,187 @@ +/* For Testing purpose only */ +#define BULDOZER_OE angle0 = "rad 45"; \ +angle1 = "rad 85" + +#define INGAME_OE angle0 = "rad -45"; \ +angle1 = "rad -85" + +#define BULDOZER_ME angle0 = "rad -45"; \ +angle1 = "rad -85" + +#define INGAME_ME angle0 = "rad 45"; \ +angle1 = "rad 85" + +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + class ace_mortar_2b14_skeleton: Default { + isDiscrete = 1; + skeletonInherit = "Default"; + skeletonBones[] = { + "otocvez","", + "otochlaven","otocvez", + "SightUnit_Optic","otochlaven", + "SightUnit_Dial","SightUnit_Optic", + "gunnerview","SightUnit_Dial", + "shift_left","otocvez", + "shift_right","otocvez" + }; + }; + class ace_mortar_m224_skeleton: Default { + skeletonBones[] = { + "otocvez","", + "otochlaven","otocvez", + "SightUnit_Optic","otochlaven", + "SightUnit_Dial","SightUnit_Optic", + "gunnerview","SightUnit_Dial", + "shift_left","otocvez", + "shift_right","otocvez" + }; + }; + class ace_mortar_m252_skeleton: Default { + skeletonBones[] = { + "otocvez","", + "otochlaven","otocvez", + "SightUnit_Optic","otochlaven", + "SightUnit_Dial","SightUnit_Optic", + "gunnerview","SightUnit_Dial", + "shift_left","otocvez", + "shift_right","otocvez" + }; + }; + class ace_mortar_tampella_skeleton: Default { + skeletonBones[] = { + "otocvez","", + "otochlaven","otocvez", + "SightUnit_Optic","otochlaven", + "SightUnit_Dial","SightUnit_Optic", + "gunnerview","SightUnit_Dial", + "shift_left","otocvez", + "shift_right","otocvez" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + skeletonName = ""; + }; + class ace_m224: Default { + skeletonName="ace_mortar_m224_skeleton"; + sections[]= {}; + class animations { + //0 + class MainTurret { + type="rotationY"; + source="user"; + selection ="otocvez"; + sourceAddress = "loop"; + axis="osaveze"; + minValue="-6400"; + maxValue="6400"; + minPhase=-6.283185; + maxPhase=6.283185; + angle0="rad +360"; + angle1="rad -360"; + }; + //0a + class MainTurret_RotateFast: MainTurret { + + }; + // 1 + class OpticRevolve { + type="rotation"; + source="user"; + selection="SightUnit_Dial"; + sourceAddress = "loop"; + axis="SightUnit_OpticAxis"; + memory = 1; + animPeriod=0; + minValue="-6400"; + maxValue="6400"; + angle0="rad -360"; + angle1="rad +360"; + }; + // 2 + class MainTurretTraverse { + type="rotationY"; + source="user"; + selection="otocvez"; + sourceAddress = "clamp"; + axis="osaveze"; + animPeriod=0; + minValue="-200"; + maxValue="200"; + angle0="rad 11.25"; + angle1="rad -11.25"; + }; + // 3 + class MainGun { // Barrel elevation between 45 and 85 + type="rotationX"; + selection= "otochlaven"; + sourceAddress = "clamp"; + source="user"; + axis="osahlavne"; + initPhase=1100; + minValue=800; + maxValue=1511; + INGAME_ME; + //angle0 = "rad -45"; //"rad 45"; // Negative value makes it look right in Buldozer, but mirrored ingame! (see Defines) + //angle1 = "rad -85"; //"rad 85"; + }; + // 4 + class OpticElevate: MainGun { + type="rotationX"; + selection= "SightUnit_Optic"; + sourceAddress = "clamp"; + source="user"; + axis="SightUnit_OpticElevateAxis"; + animPeriod=0; + initPhase=1100; + minValue=800; + maxValue=1511; + INGAME_OE; + //angle0 = "rad 45"; //"rad -45"; // Positive value makes it look right in Buldozer, but mirrored ingame! + //angle1 = "rad 85"; //"rad -85"; + }; + }; + }; + class ace_m252: ace_m224 { + skeletonName = "ace_mortar_m252_skeleton"; + class animations: animations { + class MainTurret: MainTurret {}; + class MainTurret_RotateFast: MainTurret {}; + class OpticRevolve: OpticRevolve {}; + class MainTurretTraverse: MainTurretTraverse {}; + class MainGun: MainGun {}; + class OpticElevate: OpticElevate {}; + }; + }; + class ace_2b14: ace_m224 { + skeletonName="ace_mortar_2b14_skeleton"; + class animations: animations { + class MainTurret: MainTurret {}; + class MainTurret_RotateFast: MainTurret {}; + class OpticRevolve: OpticRevolve {}; + class MainTurretTraverse: MainTurretTraverse {}; + class MainGun: MainGun {}; + class OpticElevate: OpticElevate {}; + }; + }; + class ace_120_tampella: ace_m224 { + skeletonName="ace_mortar_tampella_skeleton"; + class animations: animations { + class MainTurret: MainTurret {}; + class MainTurret_RotateFast: MainTurret {}; + class OpticRevolve: OpticRevolve {}; + class MainTurretTraverse: MainTurretTraverse {}; + class MainGun: MainGun {}; + class OpticElevate: OpticElevate {}; + }; + }; +}; diff --git a/TO_MERGE/ace/arty_mortars/script_component.hpp b/TO_MERGE/ace/arty_mortars/script_component.hpp new file mode 100644 index 0000000000..b984060f52 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/script_component.hpp @@ -0,0 +1,16 @@ +#define COMPONENT sys_arty_mortars +#include "\x\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_MORTARS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_MORTARS + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_MORTARS +#endif + +#include "\x\ace\addons\main\script_macros.hpp" +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + diff --git a/TO_MERGE/ace/arty_mortars/stringtable.xml b/TO_MERGE/ace/arty_mortars/stringtable.xml new file mode 100644 index 0000000000..64570d8609 --- /dev/null +++ b/TO_MERGE/ace/arty_mortars/stringtable.xml @@ -0,0 +1,51 @@ + + + + + +Drehe %1 links +Shift Mortar Left +Shift Mortar Left +Otočit minomet doleva +Shift Mortar Left +Obróć moździerz w lewo +Shift Mortar Left +Сдвинуть миномёт влево +Shift Mortar Left + + +Drehe %1 rechts +Shift Mortar Right +Shift Mortar Right +Otočit minomet doprava +Shift Mortar Right +Obróć moździerz w prawo +Shift Mortar Right +Сдвинуть миномёт вправо +Shift Mortar Right + + +Richtlatte aufnehmen +Pickup Aiming Point +Pickup Aiming Point +Sebrat zaměřovací tyč +Pickup Aiming Point +Zabierz słup celowniczy +Pickup Aiming Point +Взять стойку +Pickup Aiming Point + + +Richtlatte platzieren +Place Aiming Point +Place Aiming Point +Umístit zaměřovací tyč +Place Aiming Point +Ustaw słup celowniczy +Place Aiming Point +Установить прицельную стойку +Place Aiming Point + + + + diff --git a/TO_MERGE/ace/arty_range_tables/$NOBIN$ b/TO_MERGE/ace/arty_range_tables/$NOBIN$ new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/ace/arty_range_tables/$PBOPREFIX$ b/TO_MERGE/ace/arty_range_tables/$PBOPREFIX$ new file mode 100644 index 0000000000..24a31b29b2 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/$PBOPREFIX$ @@ -0,0 +1 @@ +x\ace\Addons\sys_arty_range_tables \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/CfgAmmoBoxes.hpp b/TO_MERGE/ace/arty_range_tables/CfgAmmoBoxes.hpp new file mode 100644 index 0000000000..a931e82123 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/CfgAmmoBoxes.hpp @@ -0,0 +1,6 @@ +class ReammoBox; +class ACE_ArtyEquip_Box : ReammoBox { + class TransportWeapons { + ACE_M_WEP(ace_arty_rangeTable_m119, 20); + }; +}; diff --git a/TO_MERGE/ace/arty_range_tables/CfgEventHandlers.hpp b/TO_MERGE/ace/arty_range_tables/CfgEventHandlers.hpp new file mode 100644 index 0000000000..c9ea8a73ea --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/CfgEventHandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_preInit)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + clientInit = QUOTE(call COMPILE_FILE(XEH_postInit)); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/CfgWeapons.hpp b/TO_MERGE/ace/arty_range_tables/CfgWeapons.hpp new file mode 100644 index 0000000000..1895f4aef7 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/CfgWeapons.hpp @@ -0,0 +1,72 @@ +class CfgWeapons { + class ACE_Item; + class ace_arty_rangeTable_base: ACE_Item { + scope = 1; + ace_size = 500; + ace_weight = 0.1; + picture = QPATHTO_T(data\equip\w_table_ca.paa); + }; + + // mortars + class ace_arty_rangeTable_m224: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "M224 Tables"; + displayname = "M224 60mm Range Tables"; + ace_sys_arty_tableData = QUOTE(PATHTO(tables\m224)); + }; + class ace_arty_rangeTable_m252: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "M252 Tables"; + displayname = "M252 81mm Range Tables"; + ace_sys_arty_tableData = QUOTE(PATHTO(tables\m252)); + }; + class ace_arty_rangeTable_2b14: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "2B14 Tables"; + displayname = "2B14 82mm Range Tables"; + ace_sys_arty_tableData = QUOTE(PATHTO(tables\2b14)); + }; + class ace_arty_rangeTable_tampella: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "120mm Tampella Tables"; + displayname = "Tampella 120mm Range Tables"; + ace_sys_arty_tableData = QUOTE(PATHTO(tables\120_tampella)); + }; + // arty + class ace_arty_rangeTable_m119: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "M119 Tables"; + displayname = "M119 105mm Range Tables"; + ace_arty_tableData = QUOTE(PATHTO(tables\m119)); + }; + /* + class ace_arty_rangeTable_d30: ace_arty_rangeTable_base { + descriptionshort = "D30 Tables"; + displayname = "D30 122mm Range Tables"; + ace_sys_arty_tableData = QUOTE(PATHTO(tables\d30)); + }; + */ + + //////////////// legacy tables + // mortars + class ace_arty_rangeTable_m224_legacy: ace_arty_rangeTable_m224 { // no longer needed for bis click boom artillery, fall back to the real thing + }; + class ace_arty_rangeTable_m252_legacy: ace_arty_rangeTable_m252 { // no longer needed for bis click boom artillery + }; + class ace_arty_rangeTable_2b14_legacy: ace_arty_rangeTable_2b14{ // no longer needed for bis click boom artillery + }; + + // arty + class ace_arty_rangeTable_m119_legacy: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "M119 Tables"; + displayname = "M119 105mm Range Tables"; + ace_arty_tableData = QUOTE(PATHTO(tables\m119_legacy)); + }; + class ace_arty_rangeTable_d30_legacy: ace_arty_rangeTable_base { + scope = 2; + descriptionshort = "D30 Tables"; + displayname = "D30 122mm Range Tables"; + ace_arty_tableData = QUOTE(PATHTO(tables\d30_legacy)); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/XEH_postInit.sqf b/TO_MERGE/ace/arty_range_tables/XEH_postInit.sqf new file mode 100644 index 0000000000..042d18e2b0 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/XEH_postInit.sqf @@ -0,0 +1 @@ +#include "script_component.hpp" ADDON = false; ["player", [ace_sys_interaction_key_self], 4, [QPATHTO_F(fnc_menuDef_self), "main"]] call CBA_ui_fnc_add; ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/XEH_preInit.sqf b/TO_MERGE/ace/arty_range_tables/XEH_preInit.sqf new file mode 100644 index 0000000000..3bccbe8d71 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/XEH_preInit.sqf @@ -0,0 +1 @@ +#include "script_component.hpp" PREP(rangeTable); \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/config.cpp b/TO_MERGE/ace/arty_range_tables/config.cpp new file mode 100644 index 0000000000..75f6fec0ce --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/config.cpp @@ -0,0 +1,27 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = { + "ace_arty_rangeTable_m119", + "ace_arty_rangeTable_m224_legacy", + "ace_arty_rangeTable_m252_legacy", + "ace_arty_rangeTable_2b14_legacy", + "ace_arty_rangeTable_m119_legacy", + "ace_arty_rangeTable_d30_legacy" + }; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"CAWeapons", "ace_main", "ace_sys_arty", "ace_sys_interaction" }; + VERSION_CONFIG; + }; +}; + +PRELOAD_ADDONS; + +class CfgVehicles { + #include "CfgAmmoBoxes.hpp" +}; + +#include "CfgWeapons.hpp" +#include "CfgEventHandlers.hpp" +#include "dialog.hpp" diff --git a/TO_MERGE/ace/arty_range_tables/data/equip/w_table_ca.paa b/TO_MERGE/ace/arty_range_tables/data/equip/w_table_ca.paa new file mode 100644 index 0000000000..5a8ac7be99 Binary files /dev/null and b/TO_MERGE/ace/arty_range_tables/data/equip/w_table_ca.paa differ diff --git a/TO_MERGE/ace/arty_range_tables/data/rangetable_ca.paa b/TO_MERGE/ace/arty_range_tables/data/rangetable_ca.paa new file mode 100644 index 0000000000..2297fc9e21 Binary files /dev/null and b/TO_MERGE/ace/arty_range_tables/data/rangetable_ca.paa differ diff --git a/TO_MERGE/ace/arty_range_tables/dialog.hpp b/TO_MERGE/ace/arty_range_tables/dialog.hpp new file mode 100644 index 0000000000..285ac0866d --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/dialog.hpp @@ -0,0 +1,249 @@ +#define ReadAndWrite 0 //! any modifications enabled +#define ReadAndCreate 1 //! only adding new class members is allowed +#define ReadOnly 2 //! no modifications enabled +#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied + +// Control types +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_STRUCTURED_TEXT 13 +#define CT_LISTNBOX 102 +// Static styles +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 0x02 +#define ST_UP 0x08 +#define ST_DOWN 0x04 +#define ST_VCENTER 0x0c +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX2 112 + +// Colors +#define LightARMAGrey {0.72549, 0.72549, 0.72549, 0.75} +#define DarkARMAGreen {0.20392, 0.40000, 0.05882, 1.0} +#define MedARMAGrey {0.67549, 0.67549, 0.67549, 0.65} +#define LightARMAGreen {0.83921, 1.00000, 0.54901, 1.00000} +#define Transparent {0,0,0,0} +#define BlackSolid {0,0,0,1} +#define WhiteSolid {1,1,1,1} +#define BlackSolidA "#000000" + +#define BackColor {0.34, 0.34, 0.34, 0.5} +#define MainColor {0.9, 0.9, 0.9, 1} +#define Pink {1,0.3686,0.98,1} + +//Fonts +#define Font "TahomaB" + +#define true 1 +#define false 0 + +// Top left coordinates of dialog window +#define INITX SafeZoneX + SafeZoneW*0.5 - 0.17 +#define INITY SafeZoneY + 0 + +//Range card +#define INITX_RNG INITX +#define INITY_RNG INITY+0.15 +#define INITX_RNG1 0.37 + +#define ROWPOS(y) ((0.0209*y)*SafeZoneH) +#define COLPOS(x) ((0.029075*x)*SafeZoneW) + +class RscText; +class ace_sys_arty_rangeTables_RscText: RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorBackground[] = Transparent; + colorText[] = BlackSolid; + font = Font; + sizeEx = 0.021; //((0.0209*y)*SafeZoneH) + linespacing = 1.0; + text = ; + shadow = 0; +}; + +class RscFrame; +class RscButton; +class ace_sys_arty_rangeTables_RscButton: RscButton { + access = ReadAndWrite; + idc = -1; + type = CT_BUTTON; + style = ST_CENTER; + default = false; + x = 0; + y = 0; + w = 0.3; + h = 0.1; + text = ""; + font = Font; + sizeEx = 0.024; + colorText[] = {0, 0, 0, 1}; + colorDisabled[] = Transparent; + colorBackground[] = Transparent; + colorBackgroundDisabled[] = Transparent; + colorBackgroundActive[] = Transparent; + offsetX = 0.002; + offsetY = 0.002; + offsetPressedX = 0.001; + offsetPressedY = 0.001; + colorFocused[] = Transparent; + colorShadow[] = {0, 0, 0, 0}; + colorBorder[] = {0, 0, 0, 0}; + borderSize = 0; + soundEnter[] = {"", 0.1, 1}; + soundPush[] = {"", 0.1, 1}; + soundClick[] = {"", 0.1, 1}; + soundEscape[] = {"", 0.1, 1}; + shadow = 0; +}; + +class ace_sys_arty_rangeTables_RscPicture { + access = ReadAndWrite; + type = 0; + idc = -1; + style = 48; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + font = Font; + sizeEx = 0; + lineSpacing = 0; + text = ""; + borderSize = 0; +}; + +class RscCombo; +class ace_sys_arty_rangeTables_RscComboBox { + type = CT_COMBO; + style = "0 + 0x10"; + font = Font; + sizeEx = 0.022; + color[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorScrollbar[] = {1,1,1,1}; + colorSelect[] = {1,0,1,1 }; + colorSelect2[] = {1,1,0,1}; + colorSelectBackground[] = {0,0,0,1}; + colorSelectBackground2[] = {1,1,1,1}; + period = 1.200000; + colorBackground[] = {0,0,0,1}; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + wholeHeight = ROWPOS(4.1); + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + class ScrollBar { + color[] = {0,1,0,1}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.300000}; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; + +class RscListNBox; +class ace_sys_arty_rangeTables_RscListNBox: RscListNBox { + type = 102; + idc = -1; + style = ST_SINGLE; + font = "TahomaB"; + color[] = {0,0,0,1}; + colorText[] = {0,0,0,0.75}; + colorScrollbar[] = {0.95,0.,0.95,1}; + colorSelect[] = {0,0,0,1}; // text + colorSelect2[] = {0,1,0,1}; + colorSelectBackground[] = {0.9,0.9,0.9,1}; + colorSelectBackground2[] = {0.9,0.9,0.9,1}; // background + period = 0; + sizeEx = 0.022; + colorBackground[] = {1,0,0,1}; + columns[] = {0,0.08,0.16,0.24}; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + shadow = 0; + rowHeight = ROWPOS(1); + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 0; + drawSideArrows = 0; + idcLeft = 10061; + idcRight = 10062; + class ScrollBar { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; + border = "\ca\ui\data\igui_border_scroll_ca.paa"; + }; +}; +class ace_sys_arty_rangeTables_RangeTable { + idd = 2999; + movingEnable = true; + objects[] = {}; + class controlsBackground { + class Frame : ace_sys_arty_rangeTables_RscPicture { + text = QPATHTO_T(data\rangetable_ca.paa); + x = -0.000361398 * safezoneW + safezoneX; + y = -0.097232 * safezoneH + safezoneY; + w = 0.553948 * safezoneW; + h = 1.20385 * safezoneH; + moving = 0; + }; + }; + class controls { + class Combo_Round: RscCombo { // Selection: HE, Smoke, ILLUM, whatever + idc = 4020; + colorText[] = {0,0,0,1}; + colorBackground[] = {0.91,0.91,0.91,1}; + x = 0.216675 * safezoneW + safezoneX; + y = 0.0662958 * safezoneH + safezoneY; + w = 0.0605361 * safezoneW; + h = 0.0215816 * safezoneH; + }; + class Combo_Charge: RscCombo { // Charge selector + idc = 4021; + colorText[] = {0,0,0,1}; + colorBackground[] = {0.91,0.91,0.91,1}; + x = 0.030643 * safezoneW + safezoneX; + y = 0.0480134 * safezoneH + safezoneY; + w = 0.0621397 * safezoneW; + h = 0.0225973 * safezoneH; + }; + class ListNBox: ace_sys_arty_rangeTables_RscListNBox { + idc = 4022; + x = 0.0311783 * safezoneW + safezoneX; + y = 0.242012 * safezoneH + safezoneY; + w = 0.239084 * safezoneW; + h = 0.6 * safezoneH; + columns[] = {0,0.14,0.28,0.41,0.57}; + }; + class Btn_CloseRC : ace_sys_arty_rangeTables_RscButton { + idc = 3999; + text = "x"; + colorText[] = {0,0,0,1}; + x = 0.270542 * safezoneW + safezoneX; + y = 0.0262543 * safezoneH + safezoneY; + w = 0.0102861 * safezoneW; + h = 0.0165031 * safezoneH; + action = "closeDialog 1"; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/fnc_menuDef_self.sqf b/TO_MERGE/ace/arty_range_tables/fnc_menuDef_self.sqf new file mode 100644 index 0000000000..a5da629d07 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/fnc_menuDef_self.sqf @@ -0,0 +1 @@ +/* line breaks are ignored in this file, no // comments or preprocessor directives */ /* todo: try saving at utf-8 */ private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus"]; _target = _this select 0; _params = _this select 1; _menuName = ""; _menuRsc = "popup"; if (typeName _params == typeName []) then { if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; _menuName = _params select 0; _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; } else { _menuName = _params; }; _menus = [ [ ["main", localize "STR_ACE_MENU_EQUIPPLAYER", _menuRsc], [ ["M119 Range Tables", { ["\x\ace\addons\sys_arty_range_tables\tables\m119.sqf"] call ace_sys_arty_range_tables_fnc_rangeTable }, "", "", "", -1, 1, player hasWeapon "ace_arty_rangeTable_m119"], ["M224 Range Tables", { ["\x\ace\addons\sys_arty_range_tables\tables\m224.sqf"] call ace_sys_arty_range_tables_fnc_rangeTable }, "", "", "", -1, 1, (player hasWeapon "ace_arty_rangeTable_m224" || {player hasWeapon "ace_arty_rangeTable_m224_legacy"})], ["M252 Range Tables", { ["\x\ace\addons\sys_arty_range_tables\tables\m252.sqf"] call ace_sys_arty_range_tables_fnc_rangeTable }, "", "", "", -1,1, (player hasWeapon "ace_arty_rangeTable_m252" || {player hasWeapon "ace_arty_rangeTable_m252_legacy"})], ["2B14 Range Tables", { ["\x\ace\addons\sys_arty_range_tables\tables\2b14.sqf"] call ace_sys_arty_range_tables_fnc_rangeTable }, "", "", "", -1, 1, (player hasWeapon "ace_arty_rangeTable_2b14" || {player hasWeapon "ace_arty_rangeTable_2b14_legacy"})], ["D-30 Range Tables", { ["\x\ace\addons\sys_arty_range_tables\tables\d30_legacy.sqf"] call ace_sys_arty_range_tables_fnc_rangeTable }, "", "", "", -1, 1, player hasWeapon "ace_arty_rangeTable_d30_legacy"], ["Tampella Range Tables", { ["\x\ace\addons\sys_arty_range_tables\tables\120_tampella.sqf"] call ace_sys_arty_range_tables_fnc_rangeTable }, "", "", "", -1, 1, player hasWeapon "ace_arty_rangeTable_tampella"] ] ] ]; _menuDef = []; { if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; } forEach _menus; if (count _menuDef == 0) then { hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this} else {""}, __FILE__]; diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _this, __FILE__]; }; _menuDef \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/fnc_rangeTable.sqf b/TO_MERGE/ace/arty_range_tables/fnc_rangeTable.sqf new file mode 100644 index 0000000000..1e2fc854c7 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/fnc_rangeTable.sqf @@ -0,0 +1,75 @@ +#include "script_component.hpp" + +_dataFile = _this select 0; +_tableData = call COMPILE_FILE2_SYS(_dataFile); +_tableData_tables = _tableData select 0; +_tableData_mags = _tableData select 1; +_tableData_charges = _tableData select 2; + +ace_sys_arty_ammunition_selectRangeTable = { + _dataFile = _this select 0; + _tableData = call COMPILE_FILE2_SYS(_dataFile); + _tableData_tables = _tableData select 0; + _tableData_mags = _tableData select 1; + _tableData_charges = _tableData select 2; + + _selectedMag = _tableData_mags select (lbCurSel 4020); + _selectedCharge = _tableData_charges select (lbCurSel 4021); + _selectedTable = []; + + //scopeName "selectRangeTable_base"; + { // foreach mags + _mag = _x; + _magName = _mag select 0; + _magClass = _mag select 1; + if (_magName == _selectedMag) then { // correct mag + _charges = _mag select 2; + { //foreach charges + _charge = _x; + _chargeName = _charge select 0; + _chargeClass = _charge select 1; + if (_chargeName == _selectedCharge) then { // correct charge + _table = _charge select 2; + _selectedTable = _table; + // breakTo "selectRangeTable_base"; + }; + } foreach _charges; + }; + } foreach _tableData_tables; + + // apply range table + lnbClear 4022; + { + // 0: range, 1: elevation, 2: altitude -100m elev, 3: altitude -100m time, 4: time of flight + lnbAddRow [4022, [str (_x select 0), str (_x select 1), str (_x select 2), str (_x select 3), str (_x select 4)]]; + } foreach _selectedTable; + +}; + +// create dialog +_dialog = createDialog "ace_sys_arty_rangeTables_RangeTable"; +waituntil {_dialog}; + +with uiNamespace do { + display = findDisplay 2999; + + // fill mags combo + { + lbAdd [4020, _x]; + } foreach _tableData_mags; + lbSetCurSel [4020, 0]; + + // fill charges combo + { + lbAdd [4021, _x]; + } foreach _tableData_charges; + lbSetCurSel [4021, 0]; + + // set onchange event handlers + combo_round = display displayCtrl 4020; + combo_round ctrlAddEventHandler ["LBSelChanged", '["'+_dataFile+'"] call ace_sys_arty_ammunition_selectRangeTable']; + combo_charge = display displayCtrl 4021; + combo_charge ctrlAddEventHandler ["LBSelChanged", '["'+_dataFile+'"] call ace_sys_arty_ammunition_selectRangeTable']; +}; +// fill range table +[_dataFile] call ace_sys_arty_ammunition_selectRangeTable; diff --git a/TO_MERGE/ace/arty_range_tables/generateTable.sqf b/TO_MERGE/ace/arty_range_tables/generateTable.sqf new file mode 100644 index 0000000000..629bbf2c0b --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/generateTable.sqf @@ -0,0 +1,199 @@ +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +/* +input +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; +*/ + +// "ace_arty_105mm_m1_m782_pd_chg1" + +_m119Data = [ + 45, // min elevation + 70, // max elevation + "m782", // fuze + [ + [ + "HE", // name + "m1", // classname + 0, // burst height + [ // charges: name, class + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "WP", + "m84a1", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "Illum", + "m314a3", + 500, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "DPICM", + "m916", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ] + ] +]; + +_data = _m119Data; + +// start making table +//_mags = []; +//_charges = []; +_tables = []; + +_minElevation = _data select 0; +_maxElevation = _data select 1; +_fuze = _data select 2; +_rounds = _data select 3; +{ // foreach rounds + _roundArray = _x; + _roundName = _roundArray select 0; + _round = _roundArray select 1; + _roundBurstingHeight = _roundArray select 2; + _charges = _roundArray select 3; + + diag_log (_roundName); // debug + + _tables_round = [_roundName, _round, []]; // building tables array + { // foreach charge + _chargeArray = _x; + _chargeName = _chargeArray select 0; + _charge = _chargeArray select 1; + + diag_log (_chargeName); // debug + + _mag = format ["ace_arty_105mm_%1_%2_time_%3", _round, _fuze, _charge]; + + if (isClass (configFile >> "cfgMagazines" >> _mag)) then { // valid mag class + + // make btab + diag_log (_roundBurstingHeight); // debug + _btab = [_mag, _minElevation, _maxElevation +2, 1, -200, _roundBurstingHeight +100, 100] call DEMO_fnc_getBTable; + + // make range table + _tables_table = []; + _range = 100; + _belowMinRange = true; + _belowMaxRange = true; + while {_belowMaxRange} do { + diag_log (str _range); // debug + _fs = [_range, _roundBurstingHeight, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, _roundBurstingHeight -100, _btab] call DEMO_fnc_calcFiringSolution; + + if (count _fs > 0) then { // valid result + if (_fs select 0 <= _maxElevation) then { // within elevation limit + _belowMinRange = false; + + //save range table + _elevation = _fs select 0; + _elevation = round(DEG2MIL(_elevation)); + + _flightTime = _fs select 2; + _flightTime = (round (_flightTime * 10)) / 10; + + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + _elevationAltitude = round(DEG2MIL(_elevationAltitude)); + + _tables_table = _tables_table + [[_range, _elevation, _elevationAltitude, _flightTime]]; + }; + } else { // invalid result + if (!_belowMinRange) then { // if past min range + _belowMaxRange = false; // end loop + }; + }; + _range = _range + 100; + }; // end ranges loop + _tables_charge = [_chargeName, _charge, _tables_table]; // building tables array + _tables_round set [2, (_tables_round select 2) + [_tables_charge]]; // building tables array + } else { // invalid class + diag_log ("ace_sys_arty generate tables; error: invalid magazine "+_mag); // error log + }; + } foreach _charges; + _tables = _tables + [_tables_round]; +} foreach _rounds; + +// output, need to add newlines +_tablesString = "_tables = [" + toString[10]; +_roundIndex = 1; +{ // foreach round + _roundArray = _x; + _tablesString = _tablesString + format ['["%1","%2",[', _roundArray select 0, _roundArray select 1] + toString[10]; + _charges = _x select 2; + _chargeIndex = 1; + { // foreach charge + _chargeArray = _x; + + if (_chargeIndex < count _charges) then { + _tablesString = _tablesString + (str _chargeArray) + "," + toString[10]; + } else { + _tablesString = _tablesString + (str _chargeArray) + toString[10]; + }; + _chargeIndex = _chargeIndex + 1; + } foreach _charges; + + if (_roundIndex < count _tables) then { + _tablesString = _tablesString + "]]," + toString[10]; + } else { + _tablesString = _tablesString + "]]" + toString[10]; + }; + + _roundIndex = _roundIndex + 1; +} foreach _tables; + _tablesString = _tablesString + "];" + toString[10]; + +diag_log _tablesString; +copyToClipboard _tablesString; + +hint "table generation done"; +/* +hint "generate 1"; +_mags = ["ace_arty_105mm_m1_m782_pd_chg1", "ace_arty_105mm_m1_m782_pd_chg2", "ace_arty_105mm_m1_m782_pd_chg3", "ace_arty_105mm_m1_m782_pd_chg4", "ace_arty_105mm_m1_m782_pd_chg5", "ace_arty_105mm_m1_m782_pd_chg6", "ace_arty_105mm_m1_m782_pd_chg7", "ace_arty_105mm_m1_m782_pd_chg8"]; +{ + _mag = _x; + + //hint format ["%1", DEMO_fnc_calcBallistics]; + _btab = [_mag, 45, 70, 1, -200, 100, 100] call DEMO_fnc_getBTable; + + //copyToClipboard format ["%1", _btab]; + diag_log "btab:"; + diag_log (format ["%1", _btab]); + diag_log "ranges:"; + _range = 0; + for "_range" from 25 to 20000 step 25 do { + hintSilent format ["%1", _range]; + _fs = [_range, 0, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, -100, _btab] call DEMO_fnc_calcFiringSolution; + diag_log (format ["%1", _fs]); + diag_log (format ["%1", _fsAltitude]); + + if (count _fs > 0) then { + _elevation = _fs select 0; + _flightTime = _fs select 2; + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + diag_log (format ["[%1,%2,%3,%4]", _range, _elevation, _elevationAltitude, _flightTime]); + }; + }; +} foreach _mags; + +//copyToClipboard format ["%1", _table]; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/license.txt b/TO_MERGE/ace/arty_range_tables/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/ballComp.hpp b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/ballComp.hpp new file mode 100644 index 0000000000..6cb5b95a69 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/ballComp.hpp @@ -0,0 +1,376 @@ +#include "defines.inc" + +#define COLOR_DARK {0.2, 0.26, 0.2, 0.7} +#define COLOR_NOCOLOR {0, 0, 0, 0} +#define COLOR_BLACK {0, 0, 0, 1} + +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_LIST 5 + +#define ST_LEFT 0x00 + +class bArty_rscList { + type = CT_LIST; + style = ST_LEFT; + font = "BitStream"; + sizeEx = 0.025; + color[] = {1,1,1,1 }; + colorText[] = {0.543000,0.574200,0.410200,1.000000 }; + colorScrollbar[] = {0,1,0,1 }; + colorSelect[] = {0.950000,0.950000,0.950000,1 }; + colorSelect2[] = {0.950000,0.950000,0.950000,1 }; + colorSelectBackground[] = {0,0,0,1 }; + colorSelectBackground2[] = {0.543000,0.574200,0.410200,1.000000 }; + period = 1.200000; + colorBackground[] = {0,0,0,1 }; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + + class ScrollBar { + color[] = {0,1,0,1 }; + colorActive[] = {1,1,1,1 }; + colorDisabled[] = {1,1,1,0.300000 }; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; + +class bArty_rscText { + access = 0; + idc = -1; + type = CT_STATIC; + style = ST_LEFT; + w = 0.1; + h = 0.05; + font = Zeppelin32; + sizeEx = 0.023; + colorBackground[] = COLOR_NOCOLOR; + colorText[] = COLOR_BLACK; + text = ""; + +}; + +class bArty_RscEdit { + type = CT_EDIT; + idc = -1; + style = ST_LEFT; + x = 0; + y = 0; + w = 0.2; + h = 0.4; + font = "TahomaB"; + sizeEx = 0.02; + colorText[] = {0, 0, 0, 1}; + colorSelection[] = {0.5, 0.5, 0.5, 1}; + autocomplete = false; + text = ""; +}; + +class bArty_rscButton { + access = 0; + type = CT_BUTTON; + style = ST_LEFT; + x = 0; y = 0; + w = 0.3; h = 0.1; + + // text properties + text = ""; + font = Zeppelin32; + sizeEx = 0.024; + colorText[] = {0.95, 0.95, 0.95, 1}; + colorDisabled[] = {0.4, 0.4, 0.4, 1}; + colorBackground[] = {1, 0.537, 0, 0.5}; + colorBackgroundActive[] = {1, 0.537, 0, 1}; + colorBackgroundDisabled[] = {0.58, 0.1147, 0.1108, 1}; + offsetX = 0.003; + offsetY = 0.003; + offsetPressedX = 0.002; + offsetPressedY = 0.002; + colorFocused[] = {1, 0.537, 0, 1}; + colorShadow[] = {0.023529, 0, 0.0313725, 1}; + colorBorder[] = {0.023529, 0, 0.0313725, 1}; + borderSize = 0.008; // when negative, the border is on the right side of background + + // sounds + soundEnter[] = {"", 0.1, 1}; + soundPush[] = {"", 0.1, 1}; + soundClick[] = {"", 0.1, 1}; + soundEscape[] = {"", 0.1, 1}; +}; + +class bArty_ballCompRsc { + idd = BALLCOMP_IDD; + movingEnable = 1; + fadein = 0.0; + fadeout = 0.0; + duration = 1e6; + access = 0; + onLoad = "_this spawn ballCompCtrl;"; + + class objects { + }; + + class controlsBackground { + class Background { + idc = -1; // set to -1, unneeded + type = CT_STATIC; // constant + style = ST_LEFT; // constant + text = ""; + font = "TahomaB"; + sizeEx = 0.023; + + colorBackground[] = COLOR_DARK; + colorText[] = { 0, 0, 0, 1 }; + + x = 0.05; + y = 0.05; + w = 0.9; + h = 0.9; + }; + }; + + class controls { + + class titleText : bArty_rscText { + idc = -1; + x = 0.2; + y = 0.1; + w = 0.6; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + colorText[] = { 1, 1, 1, 1 }; + style = ST_CENTER; + sizeEx = 0.05; + text = "Ballistic Computer"; + }; + + class TgtEastingText : bArty_rscText { + idc = -1; + x = 0.1; + y = 0.3; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Target Easting:"; + sizeEx = 0.03; + }; + + class BoxTgtEasting : bArty_RscEdit { + idc = TGTEASTING_IDC; + text = ""; + x = 0.25; + y = 0.3; + w = 0.1; + h = 0.05; + colorText[] = {1, 1, 1, 1}; + }; + + class TgtNorthingText : bArty_rscText { + idc = -1; + x = 0.1; + y = 0.4; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Target Northing:"; + sizeEx = 0.03; + }; + + class BoxTgtNorthing : bArty_RscEdit { + idc = TGTNORTHING_IDC; + text = ""; + x = 0.25; + y = 0.4; + w = 0.1; + h = 0.05; + colorText[] = {1, 1, 1, 1}; + }; + + class TgtElevationText : bArty_rscText { + idc = -1; + x = 0.1; + y = 0.5; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Target Elevation:"; + sizeEx = 0.03; + }; + + class BoxTgtElevation : bArty_RscEdit { + idc = TGTELEV_IDC; + text = ""; + x = 0.25; + y = 0.5; + w = 0.1; + h = 0.05; + colorText[] = {1, 1, 1, 1}; + }; + + class PosEastingText : bArty_rscText { + idc = -1; + x = 0.1; + y = 0.6; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Your Easting:"; + sizeEx = 0.03; + }; + + class BoxPosEasting : bArty_RscEdit { + idc = POSEASTING_IDC; + text = ""; + x = 0.25; + y = 0.6; + w = 0.1; + h = 0.05; + colorText[] = {1, 1, 1, 1}; + }; + + class PosNorthingText : bArty_rscText { + idc = -1; + x = 0.1; + y = 0.7; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Your Northing:"; + sizeEx = 0.03; + }; + + class BoxPosNorthing : bArty_RscEdit { + idc = POSNORTHING_IDC; + text = ""; + x = 0.25; + y = 0.7; + w = 0.1; + h = 0.05; + colorText[] = {1, 1, 1, 1}; + }; + + class PosElevationText : bArty_rscText { + idc = -1; + x = 0.1; + y = 0.8; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Your Elevation:"; + sizeEx = 0.03; + }; + + class BoxPosElevation : bArty_RscEdit { + idc = POSELEV_IDC; + text = ""; + x = 0.25; + y = 0.8; + w = 0.1; + h = 0.05; + colorText[] = {1, 1, 1, 1}; + }; + + class RoundText : bArty_rscText { + idc = -1; + x = 0.4; + y = 0.2; + w = 0.15; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = "Round:"; + sizeEx = 0.03; + }; + + class ListRound : bArty_rscList { + idc = ROUND_IDC; + x = 0.4; + y = 0.3; + w = 0.2; + h = 0.12; + rowHeight = 0.025; + wholeHeight = 4 * 0.025; // 3 lines to display + 1 line of the unelapsed control + }; + + class ResultElevationText : bArty_rscText { + idc = ELEV_IDC; + x = 0.65; + y = 0.2; + w = 0.25; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = ""; + sizeEx = 0.03; + }; + + class ResultAzimuthText : bArty_rscText { + idc = AZI_IDC; + x = 0.65; + y = 0.3; + w = 0.25; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = ""; + sizeEx = 0.03; + }; + + class ResultChargeText : bArty_rscText { + idc = CHARGE_IDC; + x = 0.65; + y = 0.4; + w = 0.25; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = ""; + sizeEx = 0.03; + }; + + class ResultTOFText : bArty_rscText { + idc = TOF_IDC; + x = 0.65; + y = 0.5; + w = 0.25; + h = 0.04; + colorBackground[] = { 0, 0, 0, 0 }; + style = ST_LEFT; + text = ""; + sizeEx = 0.03; + }; + + class BtnCalc : bArty_rscButton { + idc = CALC_IDC; + text = "Calculate Firing Solution"; + x = 0.4; + y = 0.7; + w = 0.2; + action = "id = [vehicle player] execVM 'bScripts\arty\calculate.sqf';"; + }; + + class BtnExit : bArty_rscButton { + idc = -1; + text = "Exit"; + x = 0.7; + y = 0.8; + w = 0.15; + action = "closeDialog 0;"; + }; + }; +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/ballCompCtrl.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/ballCompCtrl.sqf new file mode 100644 index 0000000000..df952fd7d2 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/ballCompCtrl.sqf @@ -0,0 +1,83 @@ +//Written by beta +//Ballistics Computer dialog control + + +#include "defines.inc" + +disableSerialization; + +private ["_display", "_ctrl"]; + +_display = _this select 0; + +_ctrl = _display displayCtrl ROUND_IDC; + +//TODO: add only magazine classes that side should have + +_ctrl lbAdd "60mm HE"; +_ctrl lbSetData [0, "ACE_1Rnd_60mmHE_M224"]; +_ctrl lbAdd "60mm WP"; +_ctrl lbSetData [1, "ACE_1Rnd_60mmWP_M224"]; +_ctrl lbAdd "60mm IL"; +_ctrl lbSetData [2, "ACE_1Rnd_60mmHE_M224"]; //TODO: "ACE_1Rnd_60mmIL_M224" doesnt work with btab +_ctrl lbAdd "81mm HE"; +_ctrl lbSetData [3, "ACE_1Rnd_81mmHE_M252"]; +_ctrl lbAdd "81mm WP"; +_ctrl lbSetData [4, "ACE_1Rnd_81mmWP_M252"]; +_ctrl lbAdd "81mm IL"; +_ctrl lbSetData [5, "ACE_1Rnd_81mmHE_M252"]; //TODO: "ACE_1Rnd_81mmIL_M252" doesnt work with btab +_ctrl lbAdd "82mm HE"; +_ctrl lbSetData [6, "ACE_1Rnd_82mmHE_2B14"]; +_ctrl lbAdd "82mm WP"; +_ctrl lbSetData [7, "ACE_1Rnd_82mmWP_2B14"]; +_ctrl lbAdd "82mm IL"; +_ctrl lbSetData [8, "ACE_1Rnd_82mmHE_2B14"]; //TODO: "ACE_1Rnd_82mmIL_2B14" doesnt work with btab + +_ctrl = _display displayCtrl AZI_IDC; +_ctrl ctrlSetText bArty_azimuth; +_ctrl = _display displayCtrl ELEV_IDC; +_ctrl ctrlSetText bArty_elevation; +_ctrl = _display displayCtrl CHARGE_IDC; +_ctrl ctrlSetText bArty_charge; +_ctrl = _display displayCtrl TOF_IDC; +_ctrl ctrlSetText bArty_tof; + +_ctrl = _display displayCtrl TGTEASTING_IDC; +_ctrl ctrlSetText bArty_tgtEasting; +_ctrl = _display displayCtrl TGTNORTHING_IDC; +_ctrl ctrlSetText bArty_tgtNorthing; +_ctrl = _display displayCtrl TGTELEV_IDC; +_ctrl ctrlSetText bArty_tgtElev; +_ctrl = _display displayCtrl POSEASTING_IDC; +_ctrl ctrlSetText bArty_posEasting; +_ctrl = _display displayCtrl POSNORTHING_IDC; +_ctrl ctrlSetText bArty_posNorthing; +_ctrl = _display displayCtrl POSELEV_IDC; +_ctrl ctrlSetText bArty_posElev; + +while {dialog} do +{ + _ctrl = _display displayCtrl AZI_IDC; + bArty_azimuth = ctrlText _ctrl; + _ctrl = _display displayCtrl ELEV_IDC; + bArty_elevation = ctrlText _ctrl; + _ctrl = _display displayCtrl CHARGE_IDC; + bArty_charge = ctrlText _ctrl; + _ctrl = _display displayCtrl TOF_IDC; + bArty_tof = ctrlText _ctrl; + + _ctrl = _display displayCtrl TGTEASTING_IDC; + bArty_tgtEasting = ctrlText _ctrl; + _ctrl = _display displayCtrl TGTNORTHING_IDC; + bArty_tgtNorthing = ctrlText _ctrl; + _ctrl = _display displayCtrl TGTELEV_IDC; + bArty_tgtElev = ctrlText _ctrl; + _ctrl = _display displayCtrl POSEASTING_IDC; + bArty_posEasting = ctrlText _ctrl; + _ctrl = _display displayCtrl POSNORTHING_IDC; + bArty_posNorthing = ctrlText _ctrl; + _ctrl = _display displayCtrl POSELEV_IDC; + bArty_posElev = ctrlText _ctrl; + + sleep 1; +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/calculate.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/calculate.sqf new file mode 100644 index 0000000000..b2c5d0931f --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/calculate.sqf @@ -0,0 +1,160 @@ +//Written by beta +//Calculate firemission + + +#include "defines.inc" + +disableSerialization; + +private ["_azimuth", "_elevation", "_pos", "_tgtPos", "_eastingTgt", "_northingTgt", "_elevationTgt", "_eastingPos", "_northingPos", "_elevationPos", "_ctrl", "_readyFlag", "_tgtGridFlag", "_tgtElevFlag", "_posGridFlag", "_posElevFlag", "_magazine", "_magazineFlag", "_charge", "_weapon", "_vehicle", "_chargeStr"]; + +_readyFlag = false; + +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl ROUND_IDC; +_magazine = ""; +_magazine = _ctrl lbData (lbCurSel _ctrl); + +_magazineFlag = false; +if (_magazine != "") then +{ + _magazineFlag = true; +}; + +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl TGTEASTING_IDC; +_eastingTgt = ctrlText _ctrl; +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl TGTNORTHING_IDC; +_northingTgt = ctrlText _ctrl; + +_tgtGridFlag = false; +if ((_northingTgt != "") && (_eastingTgt != "")) then +{ + _tgtGridFlag = true; +}; + +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl POSEASTING_IDC; +_eastingPos = ctrlText _ctrl; +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl POSNORTHING_IDC; +_northingPos = ctrlText _ctrl; + +_posGridFlag = false; +if ((_northingPos != "") && (_eastingPos != "")) then +{ + _posGridFlag = true; +}; + +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl TGTELEV_IDC; +_elevationTgt = ctrlText _ctrl; + +_tgtElevFlag = false; +if (_elevationTgt != "") then +{ + _tgtElevFlag = true; +}; + +_ctrl = (findDisplay BALLCOMP_IDD) displayCtrl POSELEV_IDC; +_elevationPos = ctrlText _ctrl; + +_posElevFlag = false; +if (_elevationPos != "") then +{ + _posElevFlag = true; +}; + +if (_magazineFlag) then +{ + if (_tgtGridFlag) then + { + if (_tgtElevFlag) then + { + if (_posGridFlag) then + { + if (_posElevFlag) then + { + _readyFlag = true; + } + else + { + hint "You must input a valid elevation for your position."; + }; + } + else + { + hint "You must input a valid six, eight, or ten figure grid reference for your position."; + }; + } + else + { + hint "You must input a valid elevation for the target position."; + }; + } + else + { + hint "You must input a valid six, eight, or ten figure grid reference for the target position."; + }; +} +else +{ + hint "You must select a round type."; +}; + +if (_readyFlag) then +{ + _tgtPos = [[_eastingTgt, _northingTgt], true] call CBA_fnc_mapGridToPos; + _tgtPos = [_tgtPos select 0, _tgtPos select 1, parseNumber _elevationTgt]; + + _pos = [[_eastingPos, _northingPos], true] call CBA_fnc_mapGridToPos; + _pos = [_pos select 0, _pos select 1, parseNumber _elevationPos]; + + _firingSolution = []; + _charge = ""; + _chargeStr = ""; + _vehicle = ""; + _weapon = ""; + + switch (_magazine) do + { + case "ACE_1Rnd_60mmHE_M224": { _vehicle = "ACE_M224"; _weapon = "ACE_M224_Tri"; }; + case "ACE_1Rnd_60mmWP_M224": { _vehicle = "ACE_M224"; _weapon = "ACE_M224_Tri"; }; + case "ACE_1Rnd_60mmIL_M224": { _vehicle = "ACE_M224"; _weapon = "ACE_M224_Tri"; }; + case "ACE_1Rnd_81mmHE_M252": { _vehicle = "ACE_M252"; _weapon = "ACE_M252_Tri"; }; + case "ACE_1Rnd_81mmWP_M252": { _vehicle = "ACE_M252"; _weapon = "ACE_M252_Tri"; }; + case "ACE_1Rnd_81mmIL_M252": { _vehicle = "ACE_M252"; _weapon = "ACE_M252_Tri"; }; + case "ACE_1Rnd_82mmHE_2B14": { _vehicle = "ACE_2B14_82mm"; _weapon = "ACE_2B14_82mm_Tri"; }; + case "ACE_1Rnd_82mmWP_2B14": { _vehicle = "ACE_2B14_82mm"; _weapon = "ACE_2B14_82mm_Tri"; }; + case "ACE_1Rnd_82mmIL_2B14": { _vehicle = "ACE_2B14_82mm"; _weapon = "ACE_2B14_82mm_Tri"; }; + }; + + { + _firingSolution = [_pos, _tgtPos, _vehicle, _weapon, _magazine, _x] call bArty_fnc_getSolution; + + if ((_firingSolution select 1) > 0) exitWith + { + _charge = _x; + }; + } forEach ["Single1", "Single2", "Single3"]; + + switch (_charge) do + { + case "Single1": { _chargeStr = "Close"; }; + case "Single2": { _chargeStr = "Medium"; }; + case "Single3": { _chargeStr = "Far"; }; + }; + + if ((_firingSolution select 1) > 0) then + { + _ctrl = (findDisplay BALLCOMP_IDD) displayCtrl AZI_IDC; + _ctrl ctrlSetText ("Azimuth (mils): " + (str (_firingSolution select 0))); + _ctrl = (findDisplay BALLCOMP_IDD) displayCtrl ELEV_IDC; + _ctrl ctrlSetText ("Elevation (mils): " + (str (_firingSolution select 1))); + _ctrl = (findDisplay BALLCOMP_IDD) displayCtrl TOF_IDC; + _ctrl ctrlSetText ("Time of Flight: " + (_firingSolution select 2) + "s"); + _ctrl = (findDisplay BALLCOMP_IDD) displayCtrl CHARGE_IDC; + _ctrl ctrlSetText ("Charge: " + _chargeStr); + + hint "Fire solution calculated."; + } + else + { + hint "Target grid reference out of range."; + }; +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/defines.inc b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/defines.inc new file mode 100644 index 0000000000..cfc4d6c9fd --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/defines.inc @@ -0,0 +1,13 @@ +#define BALLCOMP_IDD 1210 +#define TGTEASTING_IDC 1211 +#define TGTNORTHING_IDC 1212 +#define TGTELEV_IDC 1213 +#define POSEASTING_IDC 1214 +#define POSNORTHING_IDC 1215 +#define POSELEV_IDC 1216 +#define CALC_IDC 1217 +#define ROUND_IDC 1218 +#define ELEV_IDC 1219 +#define AZI_IDC 1220 +#define CHARGE_IDC 1221 +#define TOF_IDC 1222 diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_getSolution.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_getSolution.sqf new file mode 100644 index 0000000000..e3461c5509 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_getSolution.sqf @@ -0,0 +1,226 @@ +//#include "\x\addons\balca\defs.hpp" + +private ["_pos", "_role", "_block_input","_veh","_turret","_use_sim", +"_mag","_shell","_displayName","_typicalSpeed","_friction","_timeToLive","_initSpeed","_minElev","_maxElev","_currentWeaponMode",//ammo info +"_scale","_gravity",//const +"_tpos","_cpos","_ppos","_ndist","_ndir","_altitude_impact",//target info +"_i","_step","_simstep","_adjust","_celev","_table","_tab","_calculating",//variables for calculating +"_low_solution","_flytime_low","_high_solution","_flytime_high","_balca_target"];//result + +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; + +//_starttime = time; +_scale = 100; //scale of moving markers on balca display (meters) +_veh = vehicle player; +//_pos = _this select 0; +_pos = _targetPos; +_use_sim = true; +_tpos = _pos; +_gravity = 9.80665; +//_ppos = [((positioncameratoworld [0,0,0]) select 0),((positioncameratoworld [0,0,0]) select 1),((getposASL _veh) select 2)-((getposATL _veh) select 2)+((positioncameratoworld [0,0,0]) select 2)]; +_ppos = _ownPos; + +//getting ammo cfg +//_weap = currentWeapon _veh; +_weap = _weapon; +//_mag = currentMagazine _veh; +_mag = _magazine; +_displayName = getText (configFile >> "CfgMagazines" >> _mag >> "displayName"); +_initSpeed = getnumber(configFile >> "cfgMagazines" >> _mag >> "initSpeed"); +//if (GET_IS_OA) then { + _currentWeaponMode = _charge; + _artilleryCharge = getnumber(configFile >> "cfgWeapons" >> _weap >> _currentWeaponMode >> "artilleryCharge"); + if (_artilleryCharge > 0) then {_initSpeed = _initSpeed*_artilleryCharge}; + //hint format ["Get solution %1",[_currentWeaponMode,_mag]]; +//}; +//hint format ["%1",[_weap,_currentWeaponMode,_initSpeed,_artilleryCharge]]; +_shell = gettext(configFile >> "cfgMagazines" >> _mag >> "ammo"); +_typicalSpeed = getnumber(configFile >> "cfgAmmo" >> _shell >> "typicalSpeed"); +//_thrustTime = getnumber(configFile >> "cfgAmmo" >> _shell >> "thrustTime"); +_thrust = getnumber(configFile >> "cfgAmmo" >> _shell >> "thrust"); +//_maxSpeed = getnumber(configFile >> "cfgAmmo" >> _shell >> "maxSpeed"); +//_sideAirFriction = getnumber(configFile >> "cfgAmmo" >> _shell >> "sideAirFriction"); +_friction = -(getnumber(configFile >> "cfgAmmo" >> _shell >> "airFriction")); +_timeToLive = getnumber(configFile >> "cfgAmmo" >> _shell >> "timeToLive"); + +//getting turret cfg +_minElev = -90; +_maxElev = 90; +if !(_vehicle isKindOf "CAManBase") then { + _role = assignedVehicleRole player; + if ((_role select 0 == "Turret") && !(_vehicle isKindOf "ParachuteBase")) then { + _turret = _role select 1; + }; + _path = configFile >> "CfgVehicles" >> _vehicle; + { + _path = _path >> "Turrets"; + _path = _path select _x; + if (isClass _path) then { + _weapons = getArray (_path >> "weapons"); + { + if (_x == _weap) then + { + _minElev = getnumber (_path >> "minElev"); + _maxElev = getnumber (_path >> "maxElev"); + } + } foreach _weapons; + }; + } foreach _turret; +}; +//diag_log format ["elev %1 %2",_minElev,_maxElev]; + +//relative target coordinates +_vecToTarget = [(_tpos select 0) - (_ppos select 0), (_tpos select 1) - (_ppos select 1), (_tpos select 2) - (_ppos select 2)]; +_altitude_impact = (_vectotarget select 2); +_ndir = (( _vecToTarget select 0) atan2 (_vecToTarget select 1)); +_npitch = atan((_vecToTarget select 2)/(_vecToTarget call ACE_fnc_magnitude)); +if (_ndir < 0) then {_ndir = _ndir+360;}; + +_ndist = _ppos distance _tpos; + +_dirmult = atan(_scale/_ndist); + +//current shell have thruster and ballistics cannot be calculated +if ((_thrust > 0)&& {((_shell isKindOf "MissileCore")||(_shell isKindOf "RocketCore"))}) exitWith { + _balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[(round(_npitch*1000)/1000),1,0],[(round(_npitch*1000)/1000),1,0]]; + balca_target = _balca_target; +}; +_balca_target = [1,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[0,1,0],[0,1,0]]; + +if (_friction == 0) then { + if (_ndist>.7071067810*(.7071067810*_initSpeed+(.5*_initSpeed^2-2*_gravity*_altitude_impact)^(1/2))*_initSpeed/_gravity) then { + _balca_target = [0,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[0,1,0],[0,1,0]]; + }else{ + _low_solution = atan((_altitude_impact*(_initSpeed^2-_altitude_impact*_gravity+(_initSpeed^4-2*_initSpeed^2*_altitude_impact*_gravity-_gravity^2*_ndist^2)^(1/2))/(_altitude_impact^2+_ndist^2)+_gravity)/(_initSpeed^2-_altitude_impact*_gravity+(_initSpeed^4-2*_initSpeed^2*_altitude_impact*_gravity-_gravity^2*_ndist^2)^(1/2))*(_altitude_impact^2+_ndist^2)/_ndist); + _flytime_low = _ndist/(_initSpeed*cos(_low_solution)); + _ls_mult = atan((_altitude_impact*(_initSpeed^2-_altitude_impact*_gravity+(_initSpeed^4-2*_initSpeed^2*_altitude_impact*_gravity-_gravity^2*(_ndist + _scale)^2)^(1/2))/(_altitude_impact^2+(_ndist + _scale)^2)+_gravity)/(_initSpeed^2-_altitude_impact*_gravity+(_initSpeed^4-2*_initSpeed^2*_altitude_impact*_gravity-_gravity^2*(_ndist + _scale)^2)^(1/2))*(_altitude_impact^2+(_ndist + _scale)^2)/(_ndist + _scale))-_low_solution; + + _high_solution = -atan(2*(_gravity-1/2*_altitude_impact*(-2*_initSpeed^2+2*_gravity*_altitude_impact+2*(_initSpeed^4-2*_initSpeed^2*_gravity*_altitude_impact-_gravity^2*_ndist^2)^(1/2))/(_altitude_impact^2+_ndist^2))/(-2*_initSpeed^2+2*_gravity*_altitude_impact+2*(_initSpeed^4-2*_initSpeed^2*_gravity*_altitude_impact-_gravity^2*_ndist^2)^(1/2))*(_altitude_impact^2+_ndist^2)/_ndist); + _flytime_high = _ndist/(_initSpeed*cos(_high_solution)); + _hs_mult = _high_solution + atan(2*(_gravity-1/2*_altitude_impact*(-2*_initSpeed^2+2*_gravity*_altitude_impact+2*(_initSpeed^4-2*_initSpeed^2*_gravity*_altitude_impact-_gravity^2*(_ndist+_scale)^2)^(1/2))/(_altitude_impact^2+(_ndist+_scale)^2))/(-2*_initSpeed^2+2*_gravity*_altitude_impact+2*(_initSpeed^4-2*_initSpeed^2*_gravity*_altitude_impact-_gravity^2*(_ndist+_scale)^2)^(1/2))*(_altitude_impact^2+(_ndist+_scale)^2)/(_ndist+_scale)); + + //_balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)],[_high_solution,_hs_mult,str(round(_flytime_high*100)/100)+" / "+str(_timeToLive)]]; + _balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)],[_high_solution,_hs_mult,str(round(_flytime_high*100)/100)]]; + }; + +}else{ +//trying to obtain solution through formula (fast) +_low_solution = [_ndist,_initSpeed,_friction,_altitude_impact] call bArty_fnc_solution; +if (!(_low_solution > -200)or(([30,_altitude_impact,_initspeed,_friction,0.5,1.028] call bArty_fnc_sim) select 1 < _ndist)) then //formula returns complex value when target not reachable + {_balca_target = [0,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[0,1,0],[0,1,0]];} //target not reachable with current shell + else {//calculating + balca_target = _balca_target; + if (_vehicle isKindOf "StaticMortar") then {_minElev = 40}; + _balca_target = [1,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[0,1,0],[0,1,0]]; + //calculation of low solution + if ((_low_solution > 12)and(_minElev<40)and(_friction>0.0001)and(_use_sim)) then //solution not preciese, need to use simulation + { + _table = [([10,_altitude_impact,_initspeed,_friction,0.5,1.028] call bArty_fnc_sim)]; + _step = 5; + _simstep = 0.5; + _adjust = 1.004; + _calculating = true; + for [{_i = 10}, {((_i < 40)and(_calculating))}, {_i = _i+_step}] do + { + _tab = [_i,_altitude_impact,_initspeed,_friction,_simstep,_adjust] call bArty_fnc_sim; + _table set [count _table,_tab]; + if ((count _table)>=2) then { + if ((_step==1)and(((_table select ((count _table) - 1)) select 1 > _ndist)and((_table select ((count _table) - 2)) select 1 < _ndist))) then + { + _calculating = false; + }; + if ((_step==5)and(((_table select ((count _table) - 1)) select 1 > _ndist)and((_table select ((count _table) - 2)) select 1 < _ndist))) then + { + _step = 1; + _celev = [_ndist,(_table select ((count _table) - 1)),(_table select ((count _table) - 2))] call bArty_fnc_interp; + _i = floor(_celev - 2); + _simstep = 0.1; + _adjust = 1.004; + _table = [([_i,_altitude_impact,_initspeed,_friction,_simstep,_adjust] call bArty_fnc_sim)]; + }; + }; + }; + /*diag_log format ["ls %1 %2", + (_table select ((count _table) - 1)), + (_table select ((count _table) - 2))];*/ + if ((_table select ((count _table) - 1)) select 1 > _ndist) then + { + _low_solution = [_ndist,(_table select ((count _table) - 1)),(_table select ((count _table) - 2))] call bArty_fnc_interp; + _ls_mult = ([(_ndist+_scale),(_table select ((count _table) - 1)),(_table select ((count _table) - 2))] call bArty_fnc_interp)-_low_solution; + _flytime_low = (_table select ((count _table) - 1)) select 2; + //_balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)]]; + _balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)]]; + } else { + _balca_target = [0,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[0,1,0],[0,1,0]]; + }; + } + else //solution preciese, just need to calculate flytime + { + _flytime_low = -ln((-_ndist*_friction+_initspeed*cos(_low_solution))/_initspeed/cos(_low_solution))/_friction; + _ls_mult = ([(_ndist+_scale),_initSpeed,_friction,_altitude_impact] call bArty_fnc_lowSolution)-_low_solution; + //_balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)]]; + _balca_target = [2,[_displayName,_mag,_currentWeaponMode],[(round(_ndist)),_tpos],[(round(_ndir*1000)/1000),_dirmult,(round(_npitch*1000)/1000)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)+" / "+str(_timeToLive)],[_low_solution,_ls_mult,str(round(_flytime_low*100)/100)]]; + }; + //calculation of high solution + if (((_balca_target select 0) == 2)and(_use_sim)) then + { + _table = []; + if (_vehicle isKindOf "StaticMortar") then {_maxElev = 90;_tab = [90,0]}else{; + _tab = [_maxElev,_altitude_impact,_initspeed,_friction,0.5,1] call bArty_fnc_sim;};//0.1,1.0062 0.5,1.0165 + if (_tab select 1 < _ndist) then //turret's max_elev enough to reach target + { + _table = [_tab]; + _step = -5; + _simstep = 0.5; + _adjust = 1.028; + _calculating = true; + for [{_i = (_maxElev-5)}, {((_i > 40)and(_calculating))}, {_i = _i+_step}] do + { + _tab = [_i,_altitude_impact,_initspeed,_friction,_simstep,_adjust] call bArty_fnc_sim; + _table set [count _table,_tab]; + if ((count _table)>=2) then { + if ((_step==-1)and(((_table select ((count _table) - 1)) select 1 > _ndist)and((_table select ((count _table) - 2)) select 1 < _ndist))) then + { + _calculating = false; + }; + if ((_step==-5)and(((_table select ((count _table) - 1)) select 1 > _ndist)and((_table select ((count _table) - 2)) select 1 < _ndist))) then + { + _step = -1; + _celev = [_ndist,(_table select ((count _table) - 1)),(_table select ((count _table) - 2))] call bArty_fnc_interp; + _i = floor(_celev + 3); + if (_i>90) then {_i=90}; + _simstep = 0.1; + _adjust = 1.0062; + _table = [([_i,_altitude_impact,_initspeed,_friction,_simstep,_adjust] call bArty_fnc_sim)]; + }; + }; + }; + /*diag_log format ["hs %1 %2", + (_table select ((count _table) - 1)), + (_table select ((count _table) - 2))];*/ + if ((_table select ((count _table) - 1)) select 1 > _ndist) then + { + _high_solution = [_ndist,(_table select ((count _table) - 1)),(_table select ((count _table) - 2))] call bArty_fnc_interp; + _hs_mult = _high_solution-([(_ndist+_scale),(_table select ((count _table) - 1)),(_table select ((count _table) - 2))] call bArty_fnc_interp); + _flytime_high = ((_table select ((count _table) - 1)) select 2); + //_balca_target set[5,[_high_solution,_hs_mult,str(round(_flytime_high*100)/100)+" / "+str(_timeToLive)]]; + _balca_target set[5,[_high_solution,_hs_mult,str(round(_flytime_high*100)/100)]]; + }; + }; + }; + };//end calculating +}; +//player globalChat format ["%1", _balca_target]; + +_azimuth = round((_balca_target select 3) select 0); +_elevation = round(((_balca_target select 5) select 0)*17.78); //1 degree ~= 17.78 mils +_flightTime = (_balca_target select 5) select 2; + +_return = [_azimuth, _elevation, _flightTime, _balca_target]; + +_return \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_interp.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_interp.sqf new file mode 100644 index 0000000000..afcb7bbb9b --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_interp.sqf @@ -0,0 +1,19 @@ +private ["_ndist","_dist1","_dist2","_elev1","_elev2","_nelev","_slide"]; + +_ndist = _this select 0; +_elev1 = (_this select 1) select 0; +_dist1 = (_this select 1) select 1; +_elev2 = (_this select 2) select 0; +_dist2 = (_this select 2) select 1; + +if (_dist2 > _dist1) then { +_slide = (_ndist-_dist1)/(_dist2-_dist1); +}else{//high +_slide = (_ndist-_dist2)/(_dist1-_dist2); +}; + +_nelev = _elev2-(_elev2-_elev1)*_slide; + +//diag_log format ["%1 < %2 < %3 | %4 < %5 < %6 | %7",_dist1,_ndist,_dist2,_elev1,_nelev,_elev2, _slide]; + +_nelev; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_lowSolution.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_lowSolution.sqf new file mode 100644 index 0000000000..afc1a6e5ca --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_lowSolution.sqf @@ -0,0 +1,11 @@ +private ["_low_solution","_ndist","_initSpeed","_friction","_altitude_impact","_gravity"]; + +_ndist = _this select 0; +_initSpeed = _this select 1; +_friction = _this select 2; +_altitude_impact = _this select 3; +_gravity = 9.80665; + +_low_solution = atan((_gravity*exp(2.*_ndist*_friction)*_ndist-1.*_gravity*_ndist-2.*_ndist^2*_friction*_gravity+2.*_ndist*_friction^2*_initspeed^2*_altitude_impact+_altitude_impact*(4.*_ndist^2*_friction^4*_initspeed^4+8.*_ndist*_friction^3*_initspeed^2*_altitude_impact*_gravity+4.*_friction^2*_initspeed^2*_altitude_impact*_gravity-4.*_friction^2*_initspeed^2*_altitude_impact*_gravity*exp(2.*_ndist*_friction)-1.*_gravity^2*exp(4.*_ndist*_friction)+2.*_gravity^2*exp(2.*_ndist*_friction)+4.*_ndist*_gravity^2*exp(2.*_ndist*_friction)*_friction-1.*_gravity^2-4.*_ndist*_friction*_gravity^2-4.*_ndist^2*_friction^2*_gravity^2)^(1/2))/(2.*_ndist^2*_friction^2*_initspeed^2+2.*_altitude_impact*_friction*_ndist*_gravity+_altitude_impact*_gravity-1.*_altitude_impact*_gravity*exp(2.*_ndist*_friction)+_ndist*(4.*_ndist^2*_friction^4*_initspeed^4+8.*_ndist*_friction^3*_initspeed^2*_altitude_impact*_gravity+4.*_friction^2*_initspeed^2*_altitude_impact*_gravity-4.*_friction^2*_initspeed^2*_altitude_impact*_gravity*exp(2.*_ndist*_friction)-1.*_gravity^2*exp(4.*_ndist*_friction)+2.*_gravity^2*exp(2.*_ndist*_friction)+4.*_ndist*_gravity^2*exp(2.*_ndist*_friction)*_friction-1.*_gravity^2-4.*_ndist*_friction*_gravity^2-4.*_ndist^2*_friction^2*_gravity^2)^(1/2))^(1/2)*(1/(2.*_ndist^2*_friction^2*_initspeed^2+2.*_altitude_impact*_friction*_ndist*_gravity+_altitude_impact*_gravity-1.*_altitude_impact*_gravity*exp(2.*_ndist*_friction)+_ndist*(4.*_ndist^2*_friction^4*_initspeed^4+8.*_ndist*_friction^3*_initspeed^2*_altitude_impact*_gravity+4.*_friction^2*_initspeed^2*_altitude_impact*_gravity-4.*_friction^2*_initspeed^2*_altitude_impact*_gravity*exp(2.*_ndist*_friction)-1.*_gravity^2*exp(4.*_ndist*_friction)+2.*_gravity^2*exp(2.*_ndist*_friction)+4.*_ndist*_gravity^2*exp(2.*_ndist*_friction)*_friction-1.*_gravity^2-4.*_ndist*_friction*_gravity^2-4.*_ndist^2*_friction^2*_gravity^2)^(1/2))^(1/2))); + +_low_solution; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_sim.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_sim.sqf new file mode 100644 index 0000000000..f86f0e83a5 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_sim.sqf @@ -0,0 +1,32 @@ +private ["_celev", "_altitude_impact", "_initspeed", "_airfriction", "_deltat","_adjust"]; +private ["_gravity", "_pos_x", "_pos_y", "_speed", "_speed_x", "_speed_y", "_flytime", "_altitude_apogee"]; + +_celev = _this select 0; +_altitude_impact = _this select 1; +_initspeed = _this select 2; +_airfriction = _this select 3; +_deltat = _this select 4; +_adjust = _this select 5; + +_gravity = 9.80665; + +// Init +_pos_x = 0; +_pos_y = 0; +_speed_x = _initspeed * cos(_celev); +_speed_y = _initspeed * sin(_celev); +_flytime = 0; +_altitude_apogee = 0; + +while {_pos_y > _altitude_impact || _speed_y > 0} do +{ + _pos_x = _pos_x + (_speed_x * _deltat); + _pos_y = _pos_y + (_speed_y * _deltat); + _speed = sqrt(_speed_x^2+_speed_y^2); + _speed_x = _speed_x - (_airfriction * _speed_x * _speed * _deltat); + _speed_y = _speed_y - (_airfriction * _speed_y * _speed * _deltat) - (_gravity * _deltat); + _flytime = _flytime + _deltat; +}; +_pos_x = _pos_x*_adjust; + +[_celev,_pos_x, _flytime] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_weaponMode.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_weaponMode.sqf new file mode 100644 index 0000000000..238344fce8 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/fnc_weaponMode.sqf @@ -0,0 +1,2 @@ +//to decieve A2 spellcheck and make BalCa compatible with A2 again +(currentWeaponMode player) \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/generateRangeTable.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/generateRangeTable.sqf new file mode 100644 index 0000000000..227689fde0 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/generateRangeTable.sqf @@ -0,0 +1,24 @@ + +/* +input +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; +*/ + +_table = []; +for "_range" from 100 to 2000 step 25 do { + _firingSolution = [[0, 0, 0], [_range, 0, 0], "M252", "M252", "ACE_1Rnd_81mmHE_M252", "Single1"] call bArty_fnc_getSolution; + _firingSolutionAltitude = [[0, 0, 0], [_range, 0, -100], "M252", "M252", "ACE_1Rnd_81mmHE_M252", "Single1"] call bArty_fnc_getSolution; + + // _return = [_azimuth, _elevation, _flightTime, _balca_target]; + _elevation = _firingSolution select 1; + _flightTime = _firingSolution select 1; + _elevationAltitude = (_firingSolutionAltitude select 1) - _elevation; + + _table = _table + [_range, _elevation, _elevationAltitude, _flightTime]; +}; +copyToClipboard format ["%1", _table]; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/openBallComp.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/openBallComp.sqf new file mode 100644 index 0000000000..543f78e4c9 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/openBallComp.sqf @@ -0,0 +1,12 @@ +//Written by beta +//Open/close the ballistic computer + + +#include "defines.inc" + +if (isNull (findDisplay BALLCOMP_IDD)) then { + createDialog "bArty_BallCompRsc"; +} +else { + closeDialog 0; +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/register.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/register.sqf new file mode 100644 index 0000000000..2924e34cae --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/register.sqf @@ -0,0 +1,9 @@ +//Written by beta +//Register weapon for targeting + + +private ["_weapon"]; + +_weapon = _this select 0; + +_weapon setVariable ["ace_sys_crewserved_disableDisassemble", false, false]; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/setupArty.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/setupArty.sqf new file mode 100644 index 0000000000..2063a1d03e --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/setupArty.sqf @@ -0,0 +1,33 @@ +//Written by beta +//Init file + + +sleep 5; //wait for start + +ballCompCtrl = compile preprocessFileLineNumbers "bScripts\arty\ballCompCtrl.sqf"; +bArty_fnc_getSolution = compile preprocessFileLineNumbers "bScripts\arty\fnc_getSolution.sqf"; +bArty_fnc_lowSolution = compile preprocessFileLineNumbers "bScripts\arty\fnc_lowSolution.sqf"; +bArty_fnc_interp = compile preprocessFileLineNumbers "bScripts\arty\fnc_interp.sqf"; +bArty_fnc_sim = compile preprocessFileLineNumbers "bScripts\arty\fnc_sim.sqf"; +bArty_fnc_weaponMode = compile preprocessFileLineNumbers "bScripts\arty\fnc_weaponMode.sqf"; + +bArty_elevation = "Elevation (mils): "; +bArty_azimuth = "Azimuth (mils): "; +bArty_tof = "Time of Flight: "; +bArty_charge = "Charge: "; +bArty_tgtEasting = ""; +bArty_tgtNorthing = ""; +bArty_tgtElev = ""; +bArty_posEasting = ""; +bArty_posNorthing = ""; +bArty_posElev = ""; + +["ace_sys_crewserved_noam", { + _weapon = _this; + if (_weapon isKindOf "StaticMortar") then + { + [_weapon] execVM "bScripts\arty\register.sqf"; + }; +}] call CBA_fnc_addEventHandler; + +[] execVM "bScripts\arty\setupArtyActions.sqf"; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/setupArtyActions.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/setupArtyActions.sqf new file mode 100644 index 0000000000..4383cf23bd --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/bScripts/arty/setupArtyActions.sqf @@ -0,0 +1,5 @@ +//Written by beta +//Setup player arty actions + + +b_ballCompAct = player addAction ["Ballistics Computer Dialog", "bScripts\arty\openBallComp.sqf", [], -1, false, true, "", "('Moscow_Bombing_File' in weapons player) && !dialog"]; //TODO: replace with ballistic computer diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/description.ext b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/description.ext new file mode 100644 index 0000000000..d57c6b7da1 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/description.ext @@ -0,0 +1,23 @@ +//Written by beta +//Description file + +#include "dialog.hpp" +#include "bScripts\arty\ballComp.hpp" + +respawn = "BASE"; +respawndelay = 10; +disabledAI = 1; + +//mission loading text +onLoadMission = ""; + +//mission time +onLoadMissionTime = true; + +class Header +{ + gameType = Coop; //DM, Team, Coop, CTI + minPlayers = 2; //min # of players the mission supports + maxPlayers = 36; //Max # of players the mission supports + playerCountMultipleOf = 1; //Unknown +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/dialog.hpp b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/dialog.hpp new file mode 100644 index 0000000000..3c1711b63c --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/dialog.hpp @@ -0,0 +1,562 @@ +#define ReadAndWrite 0 //! any modifications enabled +#define ReadAndCreate 1 //! only adding new class members is allowed +#define ReadOnly 2 //! no modifications enabled +#define ReadOnlyVerified 3 //! no modifications enabled, CRC test applied + +// Control types +#define CT_STATIC 0 +#define CT_BUTTON 1 +#define CT_EDIT 2 +#define CT_COMBO 4 +#define CT_LISTBOX 5 +#define CT_STRUCTURED_TEXT 13 +#define CT_LISTNBOX 102 +// Static styles +#define ST_LEFT 0 +#define ST_RIGHT 1 +#define ST_CENTER 0x02 +#define ST_UP 0x08 +#define ST_DOWN 0x04 +#define ST_VCENTER 0x0c +#define ST_SINGLE 0 +#define ST_MULTI 16 +#define ST_FRAME 64 +#define ST_BACKGROUND 80 +#define ST_GROUP_BOX2 112 + +// Colors +#define LightARMAGrey {0.72549, 0.72549, 0.72549, 0.75} +#define DarkARMAGreen {0.20392, 0.40000, 0.05882, 1.0} +#define MedARMAGrey {0.67549, 0.67549, 0.67549, 0.65} +#define LightARMAGreen {0.83921, 1.00000, 0.54901, 1.00000} +#define Transparent {0,0,0,0} +#define BlackSolid {0,0,0,1} +#define WhiteSolid {1,1,1,1} +#define BlackSolidA "#000000" + +#define BackColor {0.34, 0.34, 0.34, 0.5} +#define MainColor {0.9, 0.9, 0.9, 1} +#define Pink {1,0.3686,0.98,1} + +//Fonts +#define Font "TahomaB" + +#define true 1 +#define false 0 + +// Top left coordinates of dialog window +#define INITX SafeZoneX + SafeZoneW*0.5 - 0.17 +#define INITY SafeZoneY + 0 + +//Range card +#define INITX_RNG INITX +#define INITY_RNG INITY+0.15 +#define INITX_RNG1 0.37 + +#define ROWPOS(y) ((0.0209*y)*SafeZoneH) +#define COLPOS(x) ((0.029075*x)*SafeZoneW) + +class RscText; +class ace_sys_arty_rangeTables_RscText: RscText { + type = CT_STATIC; + idc = -1; + style = ST_LEFT; + colorBackground[] = Transparent; + colorText[] = BlackSolid; + font = Font; + sizeEx = 0.021; + linespacing = 1.0; + text = ; + shadow = 0; +}; +class RscTextRightAl; +class ace_sys_arty_rangeTables_RscTextRightAl: RscTextRightAl { + type = CT_STATIC; + idc = -1; + style = ST_RIGHT; + colorBackground[] = Transparent; + colorText[] = BlackSolid; + font = Font; + sizeEx = 0.024; + linespacing = 1.0; + text = ; + shadow = 0; +}; +class RscStructuredText; +class ace_sys_arty_rangeTables_RscStructuredText: RscStructuredText { + access = ReadAndWrite; + type = CT_STRUCTURED_TEXT; + style = ST_VCENTER; + size = 0.0208333; + colorText[] = BlackSolid; + class Attributes { + font = Font; + color = BlackSolidA; + align = "center"; + shadow = 0; + }; +}; + +//class RscListBox; +class RscListBox { + idc = -1; + type = CT_LISTBOX; + style = 0 + 0x10; + font = "Zeppelin32"; + sizeEx = 0.04221; + rowHeight = 0.03; + color[] = {1, 1, 1, 1}; + colorText[] = {1, 1, 1, 0.75}; + colorScrollbar[] = {0.95, 0.95, 0.95, 1}; + colorSelect[] = {0.95, 0.95, 0.95, 1}; + colorSelect2[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground[] = {0.6, 0.8392, 0.4706, 1.0}; + colorSelectBackground2[] = {0.6, 0.8392, 0.4706, 1.0}; + columns[] = {0.1, 0.7, 0.1, 0.1}; + period = 0; + colorBackground[] = {0, 0, 0, 1}; + maxHistoryDelay = 1.0; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"\ca\ui\data\sound\new1", 0.09, 1}; + + class ScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; + border = "\ca\ui\data\igui_border_scroll_ca.paa"; + }; +}; +class ace_sys_arty_rangeTables_RscListBox: RscListBox { + access = ReadAndWrite; + style = ST_LEFT; + idc = -1; + color[] = BlackSolid; + colorSelect[] = BlackSolid; + colorSelectBackground[] = Transparent; + colorSelect2[] = Transparent; + colorSelectBackground2[] = Transparent; + colorText[] = BlackSolid; + colorBackground[] = Transparent; + colorScrollbar[] = BlackSolid; + colorBorder[] = BlackSolid; + font = "BitStream"; + sizeEx = 0.022; + rowHeight = 0.024; + canDrag = 0; + shadow = 0; +}; +class RscFrame; +class RscButton; +class ace_sys_arty_rangeTables_RscButton: RscButton { + access = ReadAndWrite; + idc = -1; + type = CT_BUTTON; + style = ST_CENTER; + default = false; + x = 0; + y = 0; + w = 0.3; + h = 0.1; + text = ""; + font = "TahomaB"; + sizeEx = 0.024; + colorText[] = {0, 0, 0, 1}; + colorDisabled[] = Transparent; + colorBackground[] = Transparent; + colorBackgroundDisabled[] = Transparent; + colorBackgroundActive[] = Transparent; + offsetX = 0.002; + offsetY = 0.002; + offsetPressedX = 0.001; + offsetPressedY = 0.001; + colorFocused[] = Transparent; + colorShadow[] = {0, 0, 0, 0}; + colorBorder[] = {0, 0, 0, 0}; + borderSize = 0; + soundEnter[] = {"", 0.1, 1}; + soundPush[] = {"", 0.1, 1}; + soundClick[] = {"", 0.1, 1}; + soundEscape[] = {"", 0.1, 1}; + shadow = 0; +}; +class RscEdit; +class ace_sys_arty_rangeTables_RscEdit: RscEdit { + type = CT_EDIT; + idc = -1; + style = ST_CENTER + ST_VCENTER; + font = Font; + sizeEx = 0.024; + colorText[] = BlackSolid; + colorSelection[] = DarkARMAGreen; + autocomplete = false; + text = ; + shadow = 0; +}; +class ace_sys_arty_rangeTables_RscPicture { + access = ReadAndWrite; + type = 0; + idc = -1; + style = 48; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + font = "TahomaB"; + sizeEx = 0; + lineSpacing = 0; + text = ""; + borderSize = 0; +}; +class ace_sys_arty_rangeTables_MainBack: ace_sys_arty_rangeTables_RscText { + text = ""; + colorText[] = BackColor; + colorBackground[] = BackColor; +}; +class ace_sys_arty_rangeTables_ControlBack: ace_sys_arty_rangeTables_MainBack { + text = "\CA\UI\Data\ui_gradient_reverse_gs.paa"; + colorText[] = BackColor; + colorBackground[] = BackColor; +}; +class ace_sys_arty_rangeTables_TitleBack: ace_sys_arty_rangeTables_RscPicture{ + text = "\CA\UI\Data\ui_gradient_title_gs.paa"; + colorText[] = BackColor; + colorBackground[] = BackColor; +}; +class ace_sys_arty_rangeTables_ArrowDown: ace_sys_arty_rangeTables_RscPicture{ + text = "\CA\UI\textures\arrow_down.paa"; + colorText[] = BlackSolid; //DarkARMAGreen; + colorBackground[] = Transparent; +}; +class ace_sys_arty_rangeTables_ArrowUp: ace_sys_arty_rangeTables_ArrowDown{ + text = "\CA\UI\textures\arrow_up.paa"; +}; +class ace_sys_arty_rangeTables_ArrowLeft: ace_sys_arty_rangeTables_ArrowDown{ + text = QPATHTO_T(data\arrow_left.paa); +}; +class ace_sys_arty_rangeTables_ArrowRight: ace_sys_arty_rangeTables_ArrowDown{ + text = QPATHTO_T(data\arrow_right.paa); +}; + +class RscCombo { + idc = -1; + type = 4; + style = 1; + x = 0; + y = 0; + w = 0.3; + h = 0.035; + colorSelect[] = {0.023529, 0, 0.0313725, 1}; + colorText[] = {0.023529, 0, 0.0313725, 1}; + colorBackground[] = {0.95, 0.95, 0.95, 1}; + colorSelectBackground[] = {0.543, 0.5742, 0.4102, 1.0}; + colorScrollbar[] = {0.023529, 0, 0.0313725, 1}; + arrowEmpty = "\ca\ui\data\ui_arrow_combo_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_combo_active_ca.paa"; + wholeHeight = 0.45; + color[] = {0, 0, 0, 0.6}; + colorActive[] = {0, 0, 0, 1}; + colorDisabled[] = {0, 0, 0, 0.3}; + font = "Zeppelin32"; + sizeEx = 0.031; + soundSelect[] = {"\ca\ui\data\sound\new1", 0.09, 1}; + soundExpand[] = {"\ca\ui\data\sound\new1", 0.09, 1}; + soundCollapse[] = {"\ca\ui\data\sound\new1", 0.09, 1}; + maxHistoryDelay = 1.0; + class ScrollBar { + color[] = {1, 1, 1, 0.6}; + colorActive[] = {1, 1, 1, 1}; + colorDisabled[] = {1, 1, 1, 0.3}; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; +class ace_sys_arty_rangeTables_RscComboBox { + type = CT_COMBO; + style = "0 + 0x10"; + font = "TahomaB"; + sizeEx = 0.015*SafeZoneH; + color[] = {1,1,1,1}; + colorText[] = {1,1,1,1}; + colorScrollbar[] = {1,1,1,1}; + colorSelect[] = {1,0,1,1 }; + colorSelect2[] = {1,1,0,1}; + colorSelectBackground[] = {0,0,0,1}; + colorSelectBackground2[] = {1,1,1,1}; + period = 1.200000; + colorBackground[] = {0,0,0,1}; + maxHistoryDelay = 1.000000; + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + wholeHeight = ROWPOS(4.1); + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + class ScrollBar { + color[] = {0,1,0,1}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.300000}; + thumb = "\ca\ui\data\ui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\ui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\ui_arrow_top_ca.paa"; + border = "\ca\ui\data\ui_border_scroll_ca.paa"; + }; +}; + +class RscListNBox; +class ace_sys_arty_rangeTables_RscListNBox: RscListNBox +{ + type = 102; + idc = -1; + style = ST_SINGLE; + font = "TahomaB"; + color[] = {0,0,0,1}; + colorText[] = {0,0,0,0.75}; + colorScrollbar[] = {0.95,0.,0.95,1}; + colorSelect[] = {0,0,0,1}; // text + colorSelect2[] = {0,1,0,1}; + colorSelectBackground[] = {0.9,0.9,0.9,1}; + colorSelectBackground2[] = {0.9,0.9,0.9,1}; // background + period = 0; + sizeEx = 0.015*SafeZoneH; + colorBackground[] = {1,0,0,1}; + columns[] = {0,0.08,0.16,0.24}; + soundSelect[] = {"", 0.0, 1}; + soundExpand[] = {"", 0.0, 1}; + soundCollapse[] = {"", 0.0, 1}; + rowHeight = ROWPOS(1); + autoScrollSpeed = -1; + autoScrollDelay = 5; + autoScrollRewind = 0; + maxHistoryDelay = 0; + drawSideArrows = 0; + idcLeft = 10061; + idcRight = 10062; + class ScrollBar + { + color[] = {1,1,1,0.6}; + colorActive[] = {1,1,1,1}; + colorDisabled[] = {1,1,1,0.3}; + thumb = "\ca\ui\data\igui_scrollbar_thumb_ca.paa"; + arrowFull = "\ca\ui\data\igui_arrow_top_active_ca.paa"; + arrowEmpty = "\ca\ui\data\igui_arrow_top_ca.paa"; + border = "\ca\ui\data\igui_border_scroll_ca.paa"; + }; +}; +/*class ace_sys_arty_rangeTables_RscListNBox: ace_sys_arty_rangeTables_RscListBox +{ + type = 102; + drawSideArrows = 0; + idcLeft = 10061; + idcRight = 10062; + canDrag = 0; + columns = [0, 0.08, 0.16, 0.24]; +};*/ + +class ace_sys_arty_rangeTables_RangeTable { + idd = 2999; + movingEnable = true; + + controlsBackground[] = {Frame, InnerFrame}; + class Frame : ace_sys_arty_rangeTables_MainBack { + x = INITX_RNG1 -0.01; y = INITY_RNG - 0.02; w = 0.44; h = 0.617; + moving = 1; + }; + class InnerFrame : ace_sys_arty_rangeTables_MainBack { + x = INITX_RNG1 - 0.003; y = INITY_RNG - 0.01; w = 0.426; h = 0.597; + moving = 1; + colorBackground[] = MainColor; + text = ""; + colorText[] = BlackSolid; + }; + + objects[] = {}; + controls[] = { + Combo_Round, + Combo_Charge, + Txt_HeaderRange, + Txt_HeaderRange_Units, + Txt_HeaderElevation, + Txt_HeaderElevation_Units, + Txt_HeaderAltitude, + Txt_HeaderAltitudeElev, + Txt_HeaderAltitudeElev_Units, + Txt_HeaderAltitudeTime, + Txt_HeaderAltitudeTime_Units, + Txt_HeaderTimeOfFlight, + Txt_HeaderTimeOfFlight_Units, + + /*Txt_HeaderDrop_Line1, + Txt_HeaderDrop_Line2, + Txt_HeaderDrop_Units, + Txt_HeaderRight_Line1, + Txt_HeaderRight_Line2, + Txt_HeaderRight_Units,*/ + /*LB,*/ + ListNBox, + /*Column, + Column1, + Column2,*/ + /*Column3,*/ + Btn_CloseRC + }; + + //class Combo_Round: ace_sys_arty_rangeTables_RscComboBox { + class Combo_Round: RscCombo { + idc = 4020; + x = INITX_RNG1 + 0.01; y = INITY_RNG + 0.01; w = 0.13; h = 0.04; + }; + class Combo_Charge: RscCombo { + idc = 4021; + x = INITX_RNG1 + 0.17; y = INITY_RNG + 0.01; w = 0.13; h = 0.04; + }; + /*class Combo_Charge: ace_sys_arty_rangeTables_RscComboBox { + idc = 4021; + x = INITX_RNG1 + 0.16; y = INITY_RNG + 0.01; w = 0.1; h = 0.04; + };*/ + + class Txt_HeaderRange : ace_sys_arty_rangeTables_RscText { + idc = 4002; + style = ST_MULTI; + text = "Range"; + x = INITX_RNG1 + 0; y = INITY_RNG + 0.06; w = 0.08; h = 0.08; + }; + class Txt_HeaderRange_Units: ace_sys_arty_rangeTables_RscText { + idc = 4009; + text = "m"; + x = INITX_RNG1 + 0; y = INITY_RNG + 0.14; w = 0.08; h = 0.03; + }; + + class Txt_HeaderElevation: ace_sys_arty_rangeTables_RscText { + idc = 4003; + style = ST_MULTI; + text = "Elev"; + x = INITX_RNG1 + 0.08; y = INITY_RNG + 0.06; w = 0.08; h = 0.08; + }; + class Txt_HeaderElevation_Units: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "mil"; + x = INITX_RNG1 + 0.08; y = INITY_RNG + 0.14; w = 0.08; h = 0.03; + }; + + class Txt_HeaderAltitude: ace_sys_arty_rangeTables_RscText { + idc = 4004; + style = ST_MULTI; + text = "Altitude -100m\n Change in"; + x = INITX_RNG1 + 0.16; y = INITY_RNG + 0.06; w = 0.16; h = 0.06; + }; + class Txt_HeaderAltitudeElev: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "Elev"; + x = INITX_RNG1 + 0.16; y = INITY_RNG + 0.10; w = 0.08; h = 0.03; + }; + class Txt_HeaderAltitudeTime: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "Time"; + x = INITX_RNG1 + 0.24; y = INITY_RNG + 0.10; w = 0.08; h = 0.03; + }; + class Txt_HeaderAltitudeElev_Units: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "mil"; + x = INITX_RNG1 + 0.16; y = INITY_RNG + 0.14; w = 0.08; h = 0.03; + }; + class Txt_HeaderAltitudeTime_Units: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "sec"; + x = INITX_RNG1 + 0.24; y = INITY_RNG + 0.14; w = 0.08; h = 0.03; + }; + + class Txt_HeaderTimeOfFlight: ace_sys_arty_rangeTables_RscText { + idc = 4004; + style = ST_MULTI; + text = "Time\nOf\nFlight"; + x = INITX_RNG1 + 0.32; y = INITY_RNG + 0.06; w = 0.08; h = 0.08; + }; + class Txt_HeaderTimeOfFlight_Units: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "sec"; + x = INITX_RNG1 + 0.32; y = INITY_RNG + 0.14; w = 0.08; h = 0.03; + }; +/* + class Txt_HeaderDrop_Line1: ace_sys_arty_rangeTables_RscText { + idc = 4004; + text = "Drop"; + x = INITX_RNG1 + 0.2; y = INITY_RNG + 0.035; w = 0.1; h = 0.03; + }; + class Txt_HeaderDrop_Line2: ace_sys_arty_rangeTables_RscText { + idc = 4004; + text = "100m"; + x = INITX_RNG1 + 0.2; y = INITY_RNG + 0.055; w = 0.1; h = 0.03; + }; + class Txt_HeaderDrop_Units: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "mil"; + x = INITX_RNG1 + 0.2; y = INITY_RNG + 0.1; w = 0.1; h = 0.03; + }; + + class Txt_HeaderRight_Line1: ace_sys_arty_rangeTables_RscText { + idc = 4004; + text = "Right"; + x = INITX_RNG1 + 0.25; y = INITY_RNG + 0.035; w = 0.1; h = 0.03; + }; + class Txt_HeaderRight_Line2: ace_sys_arty_rangeTables_RscText { + idc = 4004; + text = "100m"; + x = INITX_RNG1 + 0.25; y = INITY_RNG + 0.055; w = 0.1; h = 0.03; + }; + class Txt_HeaderRight_Units: ace_sys_arty_rangeTables_RscText { + idc = 40010; + text = "mil"; + x = INITX_RNG1 + 0.25; y = INITY_RNG + 0.1; w = 0.1; h = 0.03; + }; + */ + + /*class LB: ace_sys_arty_rangeTables_RscListBox { + idc = 4005; + x = INITX_RNG1 + 0; y = INITY_RNG + 0.14; w = 0.34; h = 0.4; + moving = 1; + };*/ + class ListNBox: ace_sys_arty_rangeTables_RscListNBox { + idc = 4022; + x = INITX_RNG1 + 0; y = INITY_RNG + 0.18; w = 0.42; h = 0.4; + //columns[] = {-0.02,0.213,0.447,0.68,0.913}; + columns[] = {-0.02,0.17,0.36,0.55,0.74}; + //moving = 1; + }; + + /*class Column : ace_sys_arty_rangeTables_RscButton { //ACE_SYS_SA_RscText + idc = 4006; + text = ""; + x = INITX_RNG1 + 0.08; y = INITY_RNG + 0.14; w = 0.00015; h = 0.402; + colorBackground[] = Transparent; + colorBorder[] = {0.5,0.5,0.5,0.5};//BlackSolid;//{0.67549, 0.67549, 0.67549, 0.25}; + BorderSize = 0.00015; + action = ""; + }; + class Column1: Column { + idc = 4007; + x = INITX_RNG1 + 0.16; + }; + class Column2: Column { + idc = 4007; + x = INITX_RNG1 + 0.24; + };*/ + /*class Column3: Column { + idc = 4007; + x = INITX_RNG1 + 0.22; + };*/ + + class Btn_CloseRC : ace_sys_arty_rangeTables_RscButton { + idc = 3999; + text = "x"; + x = INITX_RNG1 + 0.395; y = INITY_RNG + 0; w = 0.025; h = 0.025; + action = "closeDialog 1"; + }; +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_calcBallistics.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_calcBallistics.sqf new file mode 100644 index 0000000000..2edc01a039 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_calcBallistics.sqf @@ -0,0 +1,122 @@ +// Ballistic table generator +// +// Creates pre-rendered ballistic data for use with ARTY. +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +private ["_offsetTable", "_offsetIdx", "_useElevation", "_addTab", "_offsetEntry"]; + +_magazine = _this select 0; +_emin = _this select 1; +_emax = _this select 2; +_estep = _this select 3; +_hmin = _this select 4; +_hmax = _this select 5; +_hstep = _this select 6; +_muzzle_velocity = _this select 7; + +_ammo = getText(configFile >> "CfgMagazines" >> _magazine >> "ammo"); +if((count _this) < 8) then { + _muzzle_velocity = getNumber(configFile >> "CfgMagazines" >> _magazine >> "initSpeed"); +}; +_airFriction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction"); + +// Grab offset table if it exists. Offsets are used for calculating rocket artillery trajectories. +// The number of entries in the offset table must match the number of entries in the generated ballistic table, +// based on the elevation step value. + + +_grav = -9.80665; // Gravity constant. +_fps = 60; // Frames per second for calculation. + +// Stops +_minrange = 99999999; +_maxrange = 0; + +// Initialize resultant set of data +_btab = []; +_elevation = 0; + +for [{_elevation=_emin},{_elevation<=_emax},{_elevation=_elevation+_estep}] do { + // Initial params + _vgate = 0; + _gaterng = 0; + _x = 0; + _y = 0.1; + _vx = 0; + _vy = 0; + _ymax = 0; + _xmax = 0; + _vel = _muzzle_velocity; + _fc = 0; + _tof = 0; + + + _useElevation = _elevation; + + // Set t0 parameters + _vx = _vel * cos(_useElevation); + _vy = _vel * sin(_useElevation); + _frame = 1 / _fps; + + _slices = []; + _agate = _hmax; + + while {_y >= _hmin} do + { + // Calculate next velocity frame + _vx = _vx + (_vx * _vel * _airFriction * _frame); + _vy = _vy + (_vy * _vel * _airFriction * _frame); + _vy = _vy + (_grav * _frame); + _vel = sqrt(_vx*_vx + _vy*_vy); + _elev = asin (_vy / _vel); + // Increment positions + _y = _y + (_vy * _frame); + _x = _x + (_vx * _frame); + + // Record max altitude and range + if (_y > _ymax) then + { + _ymax = _y; + }; + if (_x > _xmax) then + { + _xmax = _x; + }; + + // Take slices + + if ((_y < _agate) && (_vy < 0) && (_agate >= _hmin)) then + { + while {_agate > _y} do {_agate = _agate - _hstep;}; + _slices = _slices + [[_x, _y, _fc*_frame, _vel, _elev]]; + }; + + // Increment frame count. + _fc = _fc + 1; + }; + _xmax = _x; + + if (_xmax < _minrange) then + { + _minrange = _xmax; + }; + if (_xmax > _maxrange) then + { + _maxrange = _xmax; + }; + + // Order slices lowest to highest + _rSlices = []; + for [{_a = count(_slices)-1;},{_a >= 0},{_a = _a - 1}] do + { + _rSlices = _rSlices + [_slices select _a]; + }; + + // Put calculated rocket decay points into table if offsets are used. + _addTab = [_elevation, _ymax, _rSlices]; + _btab set [count _btab, _addTab]; +}; + +[_btab, _minrange, _maxrange] diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_calcFiringSolution.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_calcFiringSolution.sqf new file mode 100644 index 0000000000..bad7cceb09 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_calcFiringSolution.sqf @@ -0,0 +1,140 @@ +scriptName format ["%1ARTY\data\scripts\ARTY_tof.sqf (_this: %1)",_this]; +// ARTY_firingSolution.sqf +// +// Use the ballistics table to calculate a firing solution + +#define GETELEV(T,I) ((##T## select ##I##) select 0) +#define GETMAXHEIGHT(T,I) ((##T## select ##I##) select 1) +#define GETSLICES(T,I) ((##T## select ##I##) select 2) + +// Rocket ballistics values +#define GETOFFSETH(T,I) ((##T## select ##I##) select 3) +#define GETOFFSETV(T,I) ((##T## select ##I##) select 4) +#define GETDECAYELEV(T,I) ((##T## select ##I##) select 5) +#define GETDECAYSPD(T,I) ((##T## select ##I##) select 6) + +private ["_firingPos", "_targetPos", "_btab", "_position", "_btab", "_i", "_sliceN", "_sliceNN", "_hmin", "_hmax", "_hstep", "_deltaX", "_deltaY", "_fs"]; + +_deltaX = _this select 0; +_deltaY = _this select 1; +_ballistics = _this select 2; + +_btab = _ballistics select 0; +_minRange = _ballistics select 1; +_maxRange = _ballistics select 2; +_hmin = _ballistics select 3; +_hmax = _ballistics select 4; +_hstep = _ballistics select 5; + +// Blank fs to return if there is an error (i.e. out of range) +_blank = []; + +// _deltaX = [_firingPos select 0, _firingPos select 1, 0] distance [_targetPos select 0, _targetPos select 1, 0]; +// _deltaY = (_targetPos select 2) - (_firingPos select 2); + +// Out of range if height deltaY exceeds height differential in either direction. +if (_deltaY < _hmin || _deltaY > _hmax) exitWith { + if (BIS_ARTY_DEBUG==1) then {textLogFormat ["dY of %1 exceeds vertical range of artillery.", _deltaY];}; + _blank +}; + +_hrange = _hmax - _hmin; +_colL = floor((_deltaY - _hmin)/_hstep); +_colH = ceil((_deltaY - _hmin)/_hstep); + +// deltaY is on a boundary +if (_colL == _colH) then {_colH = _colH + 1}; + +_muY = ((_deltaY - _hmin) - _colL*_hstep) / (_colH*_hstep - _colL*_hstep); + +_distN = 9999999; +_rowN = -1; +_rowNN = -1; +for [{_i=1},{_i < ((count _btab) - 1)},{_i=_i+1}] do +{ + _prevSliceCount = count (GETSLICES(_btab, _i-1)); // Enforce boundary conditions that will come in when picking NN + _slices = GETSLICES(_btab, _i); + _nextSliceCount = count (GETSLICES(_btab, _i+1)); + if ((count _slices) > _colH && + _prevSliceCount > _colH && + _nextSliceCount > _colH) then + { + _v1 = _slices select _colL; // Select data vectors + _v2 = _slices select _colH; + _testVec = [[_v1 select 0], [_v2 select 0], _muY] call BIS_ARTY_VEC_LERP; // Interpolate + _testDist = _testVec select 0; + + if (abs(_testDist - _deltaX) < _distN) then + { + _distN = abs(_testDist - _deltaX); + _rowN = _i; + }; + }; +}; + +// Select nearest neighbor. +_n1 = GETSLICES(_btab,_rowN-1); +_v11 = _n1 select _colL; +_v12 = _n1 select _colH; +_n2 = GETSLICES(_btab,_rowN+1);; +_v21 = _n2 select _colL; +_v22 = _n2 select _colH; +_s1 = [_v11, _v12, _muY] call BIS_ARTY_VEC_LERP; +_s2 = [_v21, _v22, _muY] call BIS_ARTY_VEC_LERP; + +_d1 = _s1 select 0; +_d2 = _s2 select 0; +if (abs(_d1 - _deltaX) < abs(_d2 - _deltaX)) then +{ + _rowNN = (_rowN - 1); + _sliceNN = _s1; +} else { + _rowNN = (_rowN + 1); + _sliceNN = _s2; +}; + +// Check out of range condition in the horizontal +if ((_deltaX < _d1 && _deltaX < _d2) || + (_deltaX > _d1 && _deltaX > _d2)) exitWith { + if (BIS_ARTY_DEBUG==1) then {textLogFormat ["dY = %1, dX = %2 out of firing envelope.", _deltaY, _deltaX];}; + _blank +}; + +_n0 = GETSLICES(_btab,_rowN); +_v1 = _n0 select _colL; +_v2 = _n0 select _colH; +_sliceN = [_v1, _v2, _muY] call BIS_ARTY_VEC_LERP; + +_elevN = GETELEV(_btab,_rowN); +_elevNN = GETELEV(_btab,_rowNN); + +_muX = (_deltaX - (_sliceN select 0)) / ((_sliceNN select 0) - (_sliceN select 0)); + +// Check the type of ballistics table being worked with (single or rocket) +if (count (_btab select 0) >= 7) then +{ + // Load rocket parameters + _offHN = GETOFFSETH(_btab,_rowN); + _offVN = GETOFFSETV(_btab,_rowN); + _decayElevN = GETDECAYELEV(_btab,_rowN); + _decaySpdN = GETDECAYSPD(_btab,_rowN); + _offHNN = GETOFFSETH(_btab,_rowNN); + _offVNN = GETOFFSETV(_btab,_rowNN); + _decayElevNN = GETDECAYELEV(_btab,_rowNN); + _decaySpdNN = GETDECAYSPD(_btab,_rowNN); + + // Rocket-based firing solution. + _fs = [[_elevN, (_sliceN select 0), (_sliceN select 2), (_sliceN select 1), _offHN, _offVN, _decayElevN, _decaySpdN], + [_elevNN, (_sliceNN select 0), (_sliceNN select 2), (_sliceNN select 1), _offHNN, _offVNN, _decayElevNN, _decaySpdNN], + _muX] call BIS_ARTY_VEC_LERP; +} +else +{ + // Single projectile firing solution. + _fs = [[_elevN, (_sliceN select 0), (_sliceN select 2), (_sliceN select 1), (_sliceN select 3), (_sliceN select 4)], + [_elevNN, (_sliceNN select 0), (_sliceNN select 2), (_sliceNN select 1), (_sliceNN select 3), (_sliceNN select 4)], + _muX] call BIS_ARTY_VEC_LERP; +}; + +_fs + diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_firingSolution.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_firingSolution.sqf new file mode 100644 index 0000000000..f405dd72b2 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_firingSolution.sqf @@ -0,0 +1,78 @@ +//fnc_firingSolution.sqf +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC +#define ELEVATION(sol) (floor DEG2MIL((sol select 0))) +#define TOF(sol) ((sol select 2)) + +if((count DEMO_btabHigh) < 1) then { + DEMO_btabHigh = [DEMO_MAGAZINE, 45, 69, 1, -2000, 2000, 50] call DEMO_fnc_getBTable; + DEMO_btabLow = [DEMO_MAGAZINE, 0, 45, 1, -2000, 2000, 50] call DEMO_fnc_getBTable; +}; + +_ammo = getText(configFile >> "CfgMagazines" >> DEMO_MAGAZINE >> "ammo"); +_isBaseEjecting = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_ISBASEEJECTING"); +_baseEjectingHob = 0; +_baseEjectingSpeed = 1; +_doBaseEjectCompensate = 0; +if(_isBaseEjecting == 1) then { + _baseEjectingHob = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_BASEEJECT_HOB"); + _baseEjectingSpeed = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_BASEEJECT_POWER"); + _doBaseEjectCompensate = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_ARTY_BASEEJECT_COMPENSATE"); +}; + +_gun = _this select 0; +_targetPos = _this select 1; +_dof = _this select 2; // direction of fire in mils +player sideChat format["c: %1", _doBaseEjectCompensate]; +_targetPos set[2, (getTerrainHeightASL _targetPos) + _baseEjectingHob]; + +_x1 = (getPosASL _gun) select 0; +_x2 = _targetPos select 0; +_y1 = (getPosASL _gun) select 1; +_y2 = _targetPos select 1; +_azimuth = (180 + (((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + + +_azimuth = DEG2MIL(_azimuth); +_deflection = _azimuth - _dof; + + + + +//ensure return is between 0-360 +//if (_deflection < 0) then {_deflection = _deflection + 6400}; +if (_deflection > 6400) then {_deflection = _deflection - 6400}; + +_deflection = round(3200 + _deflection); +_out = "Solutions:\n"; +_firingPos = (getPosASL _gun); +_deltaX = [_firingPos select 0, _firingPos select 1, 0] distance [_targetPos select 0, _targetPos select 1, 0]; +_deltaY = (_targetPos select 2) - (_firingPos select 2); + +player sideChat format["alt dif: %1", _deltaY]; + + + +_high = [_deltaX, _deltaY, DEMO_btabHigh] call DEMO_fnc_calcFiringSolution; +if((count _high) > 0) then { + if(_isBaseEjecting == 1 && _doBaseEjectCompensate == 1) then { + _d = [-0.001064, (_high select 4)*0.65, (_high select 5), _baseEjectingHob] call DEMO_fnc_simpleBallistics; + if(_d > 20) then { + _high = [_deltaX-(_d*0.65), _deltaY, DEMO_btabHigh] call DEMO_fnc_calcFiringSolution; + }; + }; + _out = _out + format["High | El: %1 Df: %2 TOF: %3\n", ELEVATION(_high), _deflection, TOF(_high)]; +}; +_low = [_deltaX, _deltaY, DEMO_btabLow] call DEMO_fnc_calcFiringSolution; +if((count _low) > 0) then { + if(_isBaseEjecting == 1 && _doBaseEjectCompensate == 1) then { + player sideChat "CCCCCCC"; + _d = [-0.001064, (_low select 4)*0.65, (_low select 5), _baseEjectingHob] call DEMO_fnc_simpleBallistics; + if(_d > 20) then { + _low = [_deltaX-(_d*0.65), _deltaY, DEMO_btabLow] call DEMO_fnc_calcFiringSolution; + }; + }; + _out = _out + format["Low | El: %1 Df: %2 TOF: %3", ELEVATION(_low), _deflection, TOF(_low)]; +}; +hintSilent _out; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_getBTable.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_getBTable.sqf new file mode 100644 index 0000000000..e90ea08d8a --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/fnc_getBTable.sqf @@ -0,0 +1,18 @@ +//fnc_getBTable.sqf +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +_magazine = _this select 0; +_emin = _this select 1; +_emax = _this select 2; +_estep = _this select 3; +_hmin = _this select 4; +_hmax = _this select 5; +_hstep = _this select 6; +_muzzle_velocity = _this select 7; + +_btable = _this call DEMO_fnc_calcBallistics; +//player sideChat "btab"; +[(_btable select 0), (_btable select 1), (_btable select 2), _hmin, _hmax, _hstep, _muzzle_velocity] + diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable.sqf new file mode 100644 index 0000000000..bfc3d51a00 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable.sqf @@ -0,0 +1,206 @@ +/***************************************************************/ +/* If this is broken it's because I fucked with calcBallistics */ +/***************************************************************/ + +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +/* +input +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; +*/ + +// "ace_arty_105mm_m1_m782_pd_chg1" + +_m119Data = [ + 45, // min elevation + 70, // max elevation + "m782", // fuze + [ + [ + "HE", // name + "m1", // classname + 0, // burst height + [ // charges: name, class + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "WP", + "m84a1", + 150, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "Illum", + "m314a3", + 600, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "DPICM", + "m916", + 50, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ] + ] +]; + +_data = _m119Data; + +// start making table +//_mags = []; +//_charges = []; +_tables = []; + +_minElevation = _data select 0; +_maxElevation = _data select 1; +_fuze = _data select 2; +_rounds = _data select 3; +{ // foreach rounds + _roundArray = _x; + _roundName = _roundArray select 0; + _round = _roundArray select 1; + _roundBurstingHeight = _roundArray select 2; + _charges = _roundArray select 3; + + diag_log (_roundName); // debug + + _tables_round = [_roundName, _round, []]; // building tables array + { // foreach charge + _chargeArray = _x; + _chargeName = _chargeArray select 0; + _charge = _chargeArray select 1; + + diag_log (_chargeName); // debug + + _mag = format ["ace_arty_105mm_%1_%2_time_%3", _round, _fuze, _charge]; + + if (isClass (configFile >> "cfgMagazines" >> _mag)) then { // valid mag class + + // make btab + diag_log (_roundBurstingHeight); // debug + _btab = [_mag, _minElevation, _maxElevation +2, 1, -200, _roundBurstingHeight +100, 100] call DEMO_fnc_getBTable; + + // make range table + _tables_table = []; + _range = 100; + _belowMinRange = true; + _belowMaxRange = true; + while {_belowMaxRange} do { + diag_log (str _range); // debug + _fs = [_range, _roundBurstingHeight, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, _roundBurstingHeight -100, _btab] call DEMO_fnc_calcFiringSolution; + + if (count _fs > 0) then { // valid result + if (_fs select 0 <= _maxElevation) then { // within elevation limit + _belowMinRange = false; + + //save range table + _elevation = _fs select 0; + _elevation = round(DEG2MIL(_elevation)); + + _flightTime = _fs select 2; + _flightTime = (round (_flightTime * 10)) / 10; + + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + _elevationAltitude = round(DEG2MIL(_elevationAltitude)); + + _flightTimeAltitude = (_fsAltitude select 2) - (_fs select 2); + _flightTimeAltitude = (round (_flightTimeAltitude * 10)) / 10; + + _tables_table = _tables_table + [[_range, _elevation, _elevationAltitude, _flightTimeAltitude, _flightTime]]; + }; + } else { // invalid result + if (!_belowMinRange) then { // if past min range + _belowMaxRange = false; // end loop + }; + }; + _range = _range + 100; + }; // end ranges loop + _tables_charge = [_chargeName, _charge, _tables_table]; // building tables array + _tables_round set [2, (_tables_round select 2) + [_tables_charge]]; // building tables array + } else { // invalid class + diag_log ("ace_sys_arty generate tables; error: invalid magazine "+_mag); // error log + }; + } foreach _charges; + _tables = _tables + [_tables_round]; +} foreach _rounds; + +// output, need to add newlines +_tablesString = "_tables = [" + toString[10]; +_roundIndex = 1; +{ // foreach round + _roundArray = _x; + _tablesString = _tablesString + format ['["%1","%2",[', _roundArray select 0, _roundArray select 1] + toString[10]; + _charges = _x select 2; + _chargeIndex = 1; + { // foreach charge + _chargeArray = _x; + + if (_chargeIndex < count _charges) then { + _tablesString = _tablesString + (str _chargeArray) + "," + toString[10]; + } else { + _tablesString = _tablesString + (str _chargeArray) + toString[10]; + }; + _chargeIndex = _chargeIndex + 1; + } foreach _charges; + + if (_roundIndex < count _tables) then { + _tablesString = _tablesString + "]]," + toString[10]; + } else { + _tablesString = _tablesString + "]]" + toString[10]; + }; + + _roundIndex = _roundIndex + 1; +} foreach _tables; + _tablesString = _tablesString + "];" + toString[10]; + +diag_log _tablesString; +copyToClipboard _tablesString; + +hint "table generation done"; +/* +hint "generate 1"; +_mags = ["ace_arty_105mm_m1_m782_pd_chg1", "ace_arty_105mm_m1_m782_pd_chg2", "ace_arty_105mm_m1_m782_pd_chg3", "ace_arty_105mm_m1_m782_pd_chg4", "ace_arty_105mm_m1_m782_pd_chg5", "ace_arty_105mm_m1_m782_pd_chg6", "ace_arty_105mm_m1_m782_pd_chg7", "ace_arty_105mm_m1_m782_pd_chg8"]; +{ + _mag = _x; + + //hint format ["%1", DEMO_fnc_calcBallistics]; + _btab = [_mag, 45, 70, 1, -200, 100, 100] call DEMO_fnc_getBTable; + + //copyToClipboard format ["%1", _btab]; + diag_log "btab:"; + diag_log (format ["%1", _btab]); + diag_log "ranges:"; + _range = 0; + for "_range" from 25 to 20000 step 25 do { + hintSilent format ["%1", _range]; + _fs = [_range, 0, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, -100, _btab] call DEMO_fnc_calcFiringSolution; + diag_log (format ["%1", _fs]); + diag_log (format ["%1", _fsAltitude]); + + if (count _fs > 0) then { + _elevation = _fs select 0; + _flightTime = _fs select 2; + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + diag_log (format ["[%1,%2,%3,%4]", _range, _elevation, _elevationAltitude, _flightTime]); + }; + }; +} foreach _mags; + +//copyToClipboard format ["%1", _table]; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable.sqf.backup_2011-02-04 b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable.sqf.backup_2011-02-04 new file mode 100644 index 0000000000..13068676d3 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable.sqf.backup_2011-02-04 @@ -0,0 +1,203 @@ +/***************************************************************/ +/* If this is broken it's because I fucked with calcBallistics */ +/***************************************************************/ + +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +/* +input +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; +*/ + +// "ace_arty_105mm_m1_m782_pd_chg1" + +_m119Data = [ + 45, // min elevation + 70, // max elevation + "m782", // fuze + [ + [ + "HE", // name + "m1", // classname + 0, // burst height + [ // charges: name, class + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "WP", + "m84a1", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "Illum", + "m314a3", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "DPICM", + "m916", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ] + ] +]; + +_data = _m119Data; + +// start making table +//_mags = []; +//_charges = []; +_tables = []; + +_minElevation = _data select 0; +_maxElevation = _data select 1; +_fuze = _data select 2; +_rounds = _data select 3; +{ // foreach rounds + _roundArray = _x; + _roundName = _roundArray select 0; + _round = _roundArray select 1; + _roundBurstingHeight = _roundArray select 2; + _charges = _roundArray select 3; + + diag_log (_roundName); // debug + + _tables_round = [_roundName, _round, []]; // building tables array + { // foreach charge + _chargeArray = _x; + _chargeName = _chargeArray select 0; + _charge = _chargeArray select 1; + + diag_log (_chargeName); // debug + + _mag = format ["ace_arty_105mm_%1_%2_time_%3", _round, _fuze, _charge]; + + if (isClass (configFile >> "cfgMagazines" >> _mag)) then { // valid mag class + + // make btab + diag_log (_roundBurstingHeight); // debug + _btab = [_mag, _minElevation, _maxElevation +2, 1, -200, _roundBurstingHeight +100, 100] call DEMO_fnc_getBTable; + + // make range table + _tables_table = []; + _range = 100; + _belowMinRange = true; + _belowMaxRange = true; + while {_belowMaxRange} do { + diag_log (str _range); // debug + _fs = [_range, _roundBurstingHeight, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, _roundBurstingHeight -100, _btab] call DEMO_fnc_calcFiringSolution; + + if (count _fs > 0) then { // valid result + if (_fs select 0 <= _maxElevation) then { // within elevation limit + _belowMinRange = false; + + //save range table + _elevation = _fs select 0; + _elevation = round(DEG2MIL(_elevation)); + + _flightTime = _fs select 2; + _flightTime = (round (_flightTime * 10)) / 10; + + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + _elevationAltitude = round(DEG2MIL(_elevationAltitude)); + + _tables_table = _tables_table + [[_range, _elevation, _elevationAltitude, _flightTime]]; + }; + } else { // invalid result + if (!_belowMinRange) then { // if past min range + _belowMaxRange = false; // end loop + }; + }; + _range = _range + 100; + }; // end ranges loop + _tables_charge = [_chargeName, _charge, _tables_table]; // building tables array + _tables_round set [2, (_tables_round select 2) + [_tables_charge]]; // building tables array + } else { // invalid class + diag_log ("ace_sys_arty generate tables; error: invalid magazine "+_mag); // error log + }; + } foreach _charges; + _tables = _tables + [_tables_round]; +} foreach _rounds; + +// output, need to add newlines +_tablesString = "_tables = [" + toString[10]; +_roundIndex = 1; +{ // foreach round + _roundArray = _x; + _tablesString = _tablesString + format ['["%1","%2",[', _roundArray select 0, _roundArray select 1] + toString[10]; + _charges = _x select 2; + _chargeIndex = 1; + { // foreach charge + _chargeArray = _x; + + if (_chargeIndex < count _charges) then { + _tablesString = _tablesString + (str _chargeArray) + "," + toString[10]; + } else { + _tablesString = _tablesString + (str _chargeArray) + toString[10]; + }; + _chargeIndex = _chargeIndex + 1; + } foreach _charges; + + if (_roundIndex < count _tables) then { + _tablesString = _tablesString + "]]," + toString[10]; + } else { + _tablesString = _tablesString + "]]" + toString[10]; + }; + + _roundIndex = _roundIndex + 1; +} foreach _tables; + _tablesString = _tablesString + "];" + toString[10]; + +diag_log _tablesString; +copyToClipboard _tablesString; + +hint "table generation done"; +/* +hint "generate 1"; +_mags = ["ace_arty_105mm_m1_m782_pd_chg1", "ace_arty_105mm_m1_m782_pd_chg2", "ace_arty_105mm_m1_m782_pd_chg3", "ace_arty_105mm_m1_m782_pd_chg4", "ace_arty_105mm_m1_m782_pd_chg5", "ace_arty_105mm_m1_m782_pd_chg6", "ace_arty_105mm_m1_m782_pd_chg7", "ace_arty_105mm_m1_m782_pd_chg8"]; +{ + _mag = _x; + + //hint format ["%1", DEMO_fnc_calcBallistics]; + _btab = [_mag, 45, 70, 1, -200, 100, 100] call DEMO_fnc_getBTable; + + //copyToClipboard format ["%1", _btab]; + diag_log "btab:"; + diag_log (format ["%1", _btab]); + diag_log "ranges:"; + _range = 0; + for "_range" from 25 to 20000 step 25 do { + hintSilent format ["%1", _range]; + _fs = [_range, 0, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, -100, _btab] call DEMO_fnc_calcFiringSolution; + diag_log (format ["%1", _fs]); + diag_log (format ["%1", _fsAltitude]); + + if (count _fs > 0) then { + _elevation = _fs select 0; + _flightTime = _fs select 2; + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + diag_log (format ["[%1,%2,%3,%4]", _range, _elevation, _elevationAltitude, _flightTime]); + }; + }; +} foreach _mags; + +//copyToClipboard format ["%1", _table]; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable_balca.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable_balca.sqf new file mode 100644 index 0000000000..af74dd0bb7 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable_balca.sqf @@ -0,0 +1,40 @@ + +/* +input +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; +*/ + +_table = []; +for "_range" from 25 to 2000 step 25 do { + + + + _vehicle = "ACE_M252"; + _weapon = "ACE_M252_Tri"; + _magazine = "ACE_1Rnd_81mmHE_M252"; + _charge = "Single1"; + + /* + _firingSolution = [[0, 0, 0], [_range, 0, 0], _vehicle, _weapon, _magazine, _charge] call bArty_fnc_getSolution; + _firingSolutionAltitude = [[0, 0, 0], [_range, 0, -100], _vehicle, _weapon, _magazine, _charge] call bArty_fnc_getSolution; + */ + + _firingSolution = [[0, 0, 0], [_range, 0, 0], _vehicle, _weapon, _magazine, _charge] call bArty_fnc_getSolution; + _firingSolutionAltitude = [[0, 0, 0], [_range, 0, -100], _vehicle, _weapon, _magazine, _charge] call bArty_fnc_getSolution; + + // _return = [_azimuth, _elevation, _flightTime, _balca_target]; + _elevation = _firingSolution select 1; + _flightTime = _firingSolution select 2; + //_elevationAltitude = (_firingSolutionAltitude select 1) - _elevation; + _elevationAltitude = _firingSolutionAltitude select 1; + + _table = _table + [[_range, _elevation, _elevationAltitude, _flightTime]]; +}; +copyToClipboard format ["%1", _table]; + +hint "table generation done"; \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable_legacy.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable_legacy.sqf new file mode 100644 index 0000000000..9efb0e8324 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/generateTable_legacy.sqf @@ -0,0 +1,348 @@ +#define MILPREC 17.7777777777778 +#define DEG2MIL(deg) (((deg*MILPREC)) min 6400) +#define MIL2DEG(mil) mil/MILPREC + +/* +input +_ownPos = _this select 0; +_targetPos = _this select 1; +_vehicle = _this select 2; +_weapon = _this select 3; +_magazine = _this select 4; +_charge = _this select 5; +*/ + +// "ace_arty_105mm_m1_m782_pd_chg1" + +_m119Data = [ + 45, // min elevation + 70, // max elevation + "m782", // fuze + [ + [ + "HE", // name + "m1", // classname + 0, // burst height + [ // charges: name, class + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "WP", + "m84a1", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "Illum", + "m314a3", + 500, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ], + [ + "DPICM", + "m916", + 0, + [ + ["charge 1", "chg1"], ["charge 2", "chg2"], ["charge 3", "chg3"], ["charge 4", "chg4"], ["charge 5", "chg5"], ["charge 6", "chg6"], ["charge 7", "chg7"], ["charge 8", "chg8"] + ] + ] + ] +]; + +_m224Data = [ + "ACE_M224", // vehicle + "ACE_M224_Tri", // weapon + 45, // min elev + 85.21875, // max elev + [["Close",0.27], ["Medium",0.6], ["Far",1]], // charges + [ + [ + "HE", + "ACE_1Rnd_60mmHE_M224", + 0 // burst height + ], + [ + "WP", + "ACE_1Rnd_60mmWP_M224", + 0 // burst height + ], + [ + "Illum", + "ACE_1Rnd_60mmILLUM_M224", + 250 // burst height + ] + ] +]; + +_m252Data = [ + "ACE_M224", // vehicle + "ACE_M224_Tri", // weapon + 45, // min elev + 85.21875, // max elev + [["Close",0.27], ["Medium",0.6], ["Far",1]], // charges + [ + [ + "HE", + "ACE_1Rnd_81mmHE_M252", + 0 // burst height + ], + [ + "WP", + "ACE_1Rnd_81mmWP_M252", + 0 // burst height + ], + [ + "Illum", + "ACE_1Rnd_81mmILLUM_M252", + 250 // burst height + ] + ] +]; + +_2b14Data = [ + "ACE_M224", // vehicle + "ACE_M224_Tri", // weapon + 45, // min elev + 85, // max elev + [["Close",0.35], ["Medium",0.7], ["Far",1]], // charges + [ + [ + "HE", + "ACE_1Rnd_82mmHE_2B14", + 0 // burst height + ], + [ + "WP", + "ACE_1Rnd_82mmWP_2B14", + 0 // burst height + ], + [ + "Illum", + "ACE_1Rnd_82mmILLUM_2B14", + 250 // burst height + ] + ] +]; + +_m119Data = [ + "ACE_M224", // vehicle + "ACE_M224_Tri", // weapon + 45, // min elevation + 70, // max elevation + [["Close",0.67], ["Medium",0.81], ["Far",1]], // charges + [ + [ + "HE", + "30Rnd_105mmHE_M119", + 0 // burst height + ], + [ + "WP", + "30Rnd_105mmWP_M119", + 0 // burst height + ], + [ + "Illum", + "30Rnd_105mmILLUM_M119", + 300 // burst height + ] + ] +]; + +_d30Data = [ + "ACE_M224", // vehicle + "ACE_M224_Tri", // weapon + 45, // min elevation + 70, // max elevation + [["Close",0.67], ["Medium",0.83], ["Far",1]], // charges + [ + [ + "HE", + "30Rnd_122mmHE_D30", + 0 // burst height + ], + [ + "WP", + "30Rnd_122mmWP_D30", + 0 // burst height + ], + [ + "Illum", + "30Rnd_122mmILLUM_D30", + 300 // burst height + ] + ] +]; + + +_data = _m119Data; + +// start making table +//_mags = []; +//_charges = []; +_tables = []; + +_vehicle = _data select 0; +_weapon = _data select 1; +_minElevation = _data select 2; +_maxElevation = _data select 3; +_charges = _data select 4; +_rounds = _data select 5; +{ // foreach rounds + _roundArray = _x; + _roundName = _roundArray select 0; + _round = _roundArray select 1; + _roundBurstingHeight = _roundArray select 2; + + _initSpeed = getNumber (configFile >> "CfgMagazines" >> _round >> "initspeed"); + + _tables_round = [_roundName, _round, []]; // building tables array + { + _charge = _x; + diag_log(_charge); + _chargeName = _charge select 0; + _chargeMultiplier = _charge select 1; + diag_log(_initSpeed); + diag_log(_chargeMultiplier); + _velocity = _initSpeed * _chargeMultiplier; + + // make btab + _btab = [_round, _minElevation, _maxElevation +2, 1, -200, _roundBurstingHeight +100, 100, _velocity] call DEMO_fnc_getBTable; + + // make range table + _tables_table = []; + _range = 100; + _step = 100; + if (_velocity < 100) then { + _step = 25; + } else { + if (_velocity < 200) then { + _step = 50; + } + }; + _belowMinRange = true; + _belowMaxRange = true; + while {_belowMaxRange} do { + diag_log (str _range); // debug + _fs = [_range, _roundBurstingHeight, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, _roundBurstingHeight -100, _btab] call DEMO_fnc_calcFiringSolution; + + if (count _fs > 0) then { // valid result + if (_fs select 0 <= _maxElevation) then { // within elevation limit + _belowMinRange = false; + + //save range table + _elevation = _fs select 0; + _elevation = round(DEG2MIL(_elevation)); + + _flightTime = _fs select 2; + _flightTime = (round (_flightTime * 10)) / 10; + + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + _elevationAltitude = round(DEG2MIL(_elevationAltitude)); + + _flightTimeAltitude = (_fsAltitude select 2) - (_fs select 2); + _flightTimeAltitude = (round (_flightTimeAltitude * 10)) / 10; + + _tables_table = _tables_table + [[_range, _elevation, _elevationAltitude, _flightTimeAltitude, _flightTime]]; + }; + } else { // invalid result + if (!_belowMinRange) then { // if past min range + _belowMaxRange = false; // end loop + }; + }; + _range = _range + _step; + }; // end ranges loop + _tables_charge = [_chargeName, "", _tables_table]; // building tables array + _tables_round set [2, (_tables_round select 2) + [_tables_charge]]; // building tables array + + + } foreach _charges; + + _tables = _tables + [_tables_round]; +} foreach _rounds; + + + /*_charges = []; + _configCharges = getArray (configFile >> "CfgWeapons" >> _weapon >> "modes"); + { + _charge = _x; + _showToPlayer = getArray (configFile >> "CfgWeapons" >> _weapon >> _charge >> "showtoplayer"); + if (_showToPlayer == 1) then { + _artilleryCharge = getArray (configFile >> "CfgWeapons" >> _weapon >> _charge >> "artillerycharge"); + _charges = _charges + [[_displayName, _artilleryCharge]]; + } + + } foreach _configCharges;*/ + + +// output, need to add newlines +_tablesString = "_tables = [" + toString[10]; +_roundIndex = 1; +{ // foreach round + _roundArray = _x; + _tablesString = _tablesString + format ['["%1","%2",[', _roundArray select 0, _roundArray select 1] + toString[10]; + _charges = _x select 2; + _chargeIndex = 1; + { // foreach charge + _chargeArray = _x; + + if (_chargeIndex < count _charges) then { + _tablesString = _tablesString + (str _chargeArray) + "," + toString[10]; + } else { + _tablesString = _tablesString + (str _chargeArray) + toString[10]; + }; + _chargeIndex = _chargeIndex + 1; + } foreach _charges; + + if (_roundIndex < count _tables) then { + _tablesString = _tablesString + "]]," + toString[10]; + } else { + _tablesString = _tablesString + "]]" + toString[10]; + }; + + _roundIndex = _roundIndex + 1; +} foreach _tables; + _tablesString = _tablesString + "];" + toString[10]; + +diag_log _tablesString; +copyToClipboard _tablesString; + +hint "table generation done"; +/* +hint "generate 1"; +_mags = ["ace_arty_105mm_m1_m782_pd_chg1", "ace_arty_105mm_m1_m782_pd_chg2", "ace_arty_105mm_m1_m782_pd_chg3", "ace_arty_105mm_m1_m782_pd_chg4", "ace_arty_105mm_m1_m782_pd_chg5", "ace_arty_105mm_m1_m782_pd_chg6", "ace_arty_105mm_m1_m782_pd_chg7", "ace_arty_105mm_m1_m782_pd_chg8"]; +{ + _mag = _x; + + //hint format ["%1", DEMO_fnc_calcBallistics]; + _btab = [_mag, 45, 70, 1, -200, 100, 100] call DEMO_fnc_getBTable; + + //copyToClipboard format ["%1", _btab]; + diag_log "btab:"; + diag_log (format ["%1", _btab]); + diag_log "ranges:"; + _range = 0; + for "_range" from 25 to 20000 step 25 do { + hintSilent format ["%1", _range]; + _fs = [_range, 0, _btab] call DEMO_fnc_calcFiringSolution; + _fsAltitude = [_range, -100, _btab] call DEMO_fnc_calcFiringSolution; + diag_log (format ["%1", _fs]); + diag_log (format ["%1", _fsAltitude]); + + if (count _fs > 0) then { + _elevation = _fs select 0; + _flightTime = _fs select 2; + _elevationAltitude = (_fsAltitude select 0) - (_fs select 0); + diag_log (format ["[%1,%2,%3,%4]", _range, _elevation, _elevationAltitude, _flightTime]); + }; + }; +} foreach _mags; + +//copyToClipboard format ["%1", _table]; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/init.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/init.sqf new file mode 100644 index 0000000000..f2b8de1f0f --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/init.sqf @@ -0,0 +1,10 @@ +DEMO_fnc_firingSolution = (compile preprocessFileLineNumbers "fnc_firingSolution.sqf"); +DEMO_fnc_getBTable = (compile preprocessFileLineNumbers "fnc_getBTable.sqf"); +DEMO_fnc_calcBallistics = (compile preprocessFileLineNumbers "fnc_calcBallistics.sqf"); +DEMO_fnc_calcFiringSolution = (compile preprocessFileLineNumbers "fnc_calcFiringSolution.sqf"); + +execVM "bScripts\arty\setupArty.sqf"; + + +player addAction ["Range Table", "rangeTable.sqf"]; +//player addAction ["Generate Table", "generateTable.sqf"]; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/items.cpp b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/items.cpp new file mode 100644 index 0000000000..65f70677cd --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/items.cpp @@ -0,0 +1,37 @@ +class ace_sys_arty_rangeTable_base: ACE_Item { + scope = 2; + ace_size = 500; + ace_weight = 0.1; + picture = "\x\ace\addons\sys_goggles\data\equip\g_earplug_ca.paa"; +}; +/* +// mortars +class ace_sys_arty_rangeTable_m224: ace_sys_arty_rangeTable_base { + descriptionshort = "M224 Tables"; + displayname = "M224 60mm Range Tables"; + ace_sys_arty_tableData = "\x\ace\addons\sys_arty\rangeTables\m224.sqf"; +}; +class ace_sys_arty_rangeTable_m252: ace_sys_arty_rangeTable_base { + descriptionshort = "M252 Tables"; + displayname = "M252 81mmRange Tables"; + ace_sys_arty_tableData = "\x\ace\addons\sys_arty\rangeTables\m252.sqf"; +}; +class ace_sys_arty_rangeTable_2b14: ace_sys_arty_rangeTable_base { + descriptionshort = "2B14 Tables"; + displayname = "2B14 82mm Range Tables"; + ace_sys_arty_tableData = "\x\ace\addons\sys_arty\rangeTables\2b14.sqf"; +}; +*/ +// arty +class ace_sys_arty_rangeTable_m119: ace_sys_arty_rangeTable_base { + descriptionshort = "M119 Tables"; + displayname = "M119 105mm Range Tables"; + ace_sys_arty_tableData = "\x\ace\addons\sys_arty_ammunition\rangeTables\m119.sqf"; +}; +/* +class ace_sys_arty_rangeTable_d30: ace_sys_arty_rangeTable_base { + descriptionshort = "D30 Tables"; + displayname = "D30 122mm Range Tables"; + ace_sys_arty_tableData = "\x\ace\addons\sys_arty\rangeTables\d30.sqf"; +}; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/mission.sqm b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/mission.sqm new file mode 100644 index 0000000000..92944d7a27 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/mission.sqm @@ -0,0 +1,1830 @@ +version=11; +class Mission +{ + addOns[]= + { + "takistan", + "cacharacters2", + "CAWeapons_M252_81mm_Mortar", + "acex_c_weapon", + "CAWheeled", + "ace_sys_arty_m119", + "ace_sys_arty_ammunition" + }; + addOnsAuto[]= + { + "cacharacters2", + "CAWeapons_M252_81mm_Mortar", + "acex_c_weapon", + "CAWheeled", + "ace_sys_arty_m119", + "ace_sys_arty_ammunition", + "takistan" + }; + randomSeed=2732302; + class Intel + { + startWeather=0.40000001; + forecastWeather=0.40000001; + year=2009; + day=28; + hour=16; + minute=20; + }; + class Groups + { + items=27; + class Item0 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5558.7109,83.040001,11285.709}; + azimut=170; + id=0; + side="WEST"; + vehicle="USMC_Soldier"; + player="PLAYER COMMANDER"; + leader=1; + skill=0.60000002; + init="this addWeapon ""ace_arty_rangeTable_m119""; this addWeapon ""ace_arty_rangeTable_m224_legacy""; this addWeapon ""ace_arty_rangeTable_m252_legacy""; this addWeapon ""ace_arty_rangeTable_2b14_legacy""; this addWeapon ""ace_arty_rangeTable_m119_legacy""; this addWeapon ""ace_arty_rangeTable_d30_legacy"";"; + }; + }; + }; + class Item1 + { + side="WEST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5375.813,314.40927,6707.1558}; + azimut=140; + id=6; + side="WEST"; + vehicle="USMC_Soldier"; + player="PLAY CDG"; + leader=1; + skill=0.60000002; + }; + }; + }; + class Item2 + { + side="EAST"; + class Vehicles + { + items=12; + class Item0 + { + position[]={5767.6592,278.85172,5740.9902}; + id=7; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={5770.6592,278.40649,5735.9902}; + id=8; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={5772.6592,277.83368,5735.9902}; + id=9; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={5774.6592,277.26086,5735.9902}; + id=10; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={5776.6592,276.71436,5735.9902}; + id=11; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={5778.6592,276.17035,5735.9902}; + id=12; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={5780.6592,275.62634,5735.9902}; + id=13; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={5782.6592,275.10489,5735.9902}; + id=14; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={5784.6592,274.60809,5735.9902}; + id=15; + side="EAST"; + vehicle="RU_Soldier_AR"; + skill=0.2; + }; + class Item9 + { + position[]={5786.6592,274.11206,5735.9902}; + id=16; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item10 + { + position[]={5788.6592,273.63098,5735.9902}; + id=17; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item11 + { + position[]={5790.6592,273.16058,5735.9902}; + id=18; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item3 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={5838.7363,284.67468,5600.1553}; + id=19; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={5841.7363,285.07489,5595.1553}; + id=20; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={5843.7363,284.71494,5595.1553}; + id=21; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={5845.7363,284.3692,5595.1553}; + id=22; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={5847.7363,284.02359,5595.1553}; + id=23; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={5849.7363,283.67075,5595.1553}; + id=24; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={5851.7363,283.32065,5595.1553}; + id=25; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={5853.7363,282.97186,5595.1553}; + id=26; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={5857.7363,282.27451,5595.1553}; + id=28; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={5859.7363,281.93207,5595.1553}; + id=29; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={5861.7363,281.58762,5595.1553}; + id=30; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item4 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5855.7363,282.62018,5595.1553}; + id=27; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item5 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6117.271,305.34241,5584.1719}; + id=31; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6120.271,305.5733,5579.1719}; + id=32; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6122.271,305.59601,5579.1719}; + id=33; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6124.271,305.57681,5579.1719}; + id=34; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6126.271,305.69791,5579.1719}; + id=35; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6128.271,305.88235,5579.1719}; + id=36; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6130.271,306.05518,5579.1719}; + id=37; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6132.271,306.24429,5579.1719}; + id=38; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6136.271,306.62094,5579.1719}; + id=40; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6138.271,306.8132,5579.1719}; + id=41; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6140.271,307.009,5579.1719}; + id=42; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item6 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6134.271,306.43854,5579.1719}; + id=39; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item7 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6123.1035,302.60333,5862.4092}; + id=43; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6126.1035,302.17374,5857.4092}; + id=44; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6128.1035,302.26013,5857.4092}; + id=45; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6130.1035,302.3465,5857.4092}; + id=46; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6132.1035,302.44241,5857.4092}; + id=47; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6134.1035,302.564,5857.4092}; + id=48; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6136.1035,302.68561,5857.4092}; + id=49; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6138.1035,302.8125,5857.4092}; + id=50; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6142.1035,303.16449,5857.4092}; + id=52; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6144.1035,303.31824,5857.4092}; + id=53; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6146.1035,303.49423,5857.4092}; + id=54; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item8 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6140.1035,302.98853,5857.4092}; + id=51; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item9 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={5920.0088,275.46823,5704.4697}; + id=55; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={5923.0088,276.19321,5699.4697}; + id=56; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={5925.0088,277.24915,5699.4697}; + id=57; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={5927.0088,278.31674,5699.4697}; + id=58; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={5929.0088,279.39496,5699.4697}; + id=59; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={5931.0088,280.47342,5699.4697}; + id=60; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={5933.0088,281.52289,5699.4697}; + id=61; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={5935.0088,282.55969,5699.4697}; + id=62; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={5939.0088,284.60046,5699.4697}; + id=64; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={5941.0088,285.5701,5699.4697}; + id=65; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={5943.0088,286.5397,5699.4697}; + id=66; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item10 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5937.0088,283.59653,5699.4697}; + id=63; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item11 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6002.4238,287.0231,5520.0444}; + id=67; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6005.4238,287.47079,5515.0444}; + id=68; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6007.4238,287.69382,5515.0444}; + id=69; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6009.4238,287.92743,5515.0444}; + id=70; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6011.4238,288.14694,5515.0444}; + id=71; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6013.4238,288.43073,5515.0444}; + id=72; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6015.4238,288.79556,5515.0444}; + id=73; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6017.4238,289.17206,5515.0444}; + id=74; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6021.4238,290.02991,5515.0444}; + id=76; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6023.4238,290.49973,5515.0444}; + id=77; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6025.4238,290.99881,5515.0444}; + id=78; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item12 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6019.4238,289.5787,5515.0444}; + id=75; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item13 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6278.8535,333.72748,5748.2036}; + id=79; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6281.8535,334.72079,5743.2036}; + id=80; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6283.8535,335.2648,5743.2036}; + id=81; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6285.8535,335.80869,5743.2036}; + id=82; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6287.8535,336.34872,5743.2036}; + id=83; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6289.8535,336.87323,5743.2036}; + id=84; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6291.8535,337.39807,5743.2036}; + id=85; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6293.8535,337.9227,5743.2036}; + id=86; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6297.8535,338.96594,5743.2036}; + id=88; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6299.8535,339.48755,5743.2036}; + id=89; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6301.8535,340.00916,5743.2036}; + id=90; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item14 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6295.8535,338.44434,5743.2036}; + id=87; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item15 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6017.02,323.96954,5970.8867}; + id=91; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6020.02,324.81625,5965.8867}; + id=92; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6022.02,325.02371,5965.8867}; + id=93; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6024.02,325.25412,5965.8867}; + id=94; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6026.02,325.45349,5965.8867}; + id=95; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6028.02,325.62784,5965.8867}; + id=96; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6030.02,325.85825,5965.8867}; + id=97; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6032.02,326.09235,5965.8867}; + id=98; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6036.02,326.60895,5965.8867}; + id=100; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6038.02,326.87238,5965.8867}; + id=101; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6040.02,327.0932,5965.8867}; + id=102; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item16 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6034.02,326.33234,5965.8867}; + id=99; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item17 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={5794.416,249.43272,5925.2554}; + id=103; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={5797.416,249.86166,5920.2554}; + id=104; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={5799.416,249.85034,5920.2554}; + id=105; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={5801.416,249.86339,5920.2554}; + id=106; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={5803.416,249.88579,5920.2554}; + id=107; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={5805.416,249.9082,5920.2554}; + id=108; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={5807.416,249.94925,5920.2554}; + id=109; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={5809.416,250.00365,5920.2554}; + id=110; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={5813.416,250.13925,5920.2554}; + id=112; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={5815.416,250.24165,5920.2554}; + id=113; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={5817.416,250.34351,5920.2554}; + id=114; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item18 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5811.416,250.05939,5920.2554}; + id=111; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item19 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={5630.9761,326.59268,5814.3013}; + id=115; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={5633.9761,327.54736,5809.3013}; + id=116; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={5635.9761,327.08728,5809.3013}; + id=117; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={5637.9761,326.6178,5809.3013}; + id=118; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={5639.9761,325.98737,5809.3013}; + id=119; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={5641.9761,325.40814,5809.3013}; + id=120; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={5643.9761,324.84619,5809.3013}; + id=121; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={5645.9761,324.19336,5809.3013}; + id=122; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={5649.9761,322.95554,5809.3013}; + id=124; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={5651.9761,322.26532,5809.3013}; + id=125; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={5653.9761,321.59528,5809.3013}; + id=126; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item20 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5647.9761,323.56357,5809.3013}; + id=123; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item21 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={5756.2319,336.17737,5459.2832}; + id=127; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={5759.2319,336.94333,5454.2832}; + id=128; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={5761.2319,336.62012,5454.2832}; + id=129; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={5763.2319,336.29697,5454.2832}; + id=130; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={5765.2319,335.96396,5454.2832}; + id=131; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={5767.2319,335.61514,5454.2832}; + id=132; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={5769.2319,335.2702,5454.2832}; + id=133; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={5771.2319,334.92749,5454.2832}; + id=134; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={5775.2319,334.19101,5454.2832}; + id=136; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={5777.2319,333.86423,5454.2832}; + id=137; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={5779.2319,333.49307,5454.2832}; + id=138; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item22 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={5773.2319,334.55627,5454.2832}; + id=135; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item23 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6231.7388,332.73544,5453.4819}; + id=139; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6234.7388,334.16827,5448.4819}; + id=140; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6236.7388,334.68668,5448.4819}; + id=141; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6238.7388,335.20511,5448.4819}; + id=142; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6240.7388,335.72076,5448.4819}; + id=143; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6242.7388,336.23599,5448.4819}; + id=144; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6244.7388,336.75278,5448.4819}; + id=145; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6246.7388,337.27118,5448.4819}; + id=146; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6250.7388,338.30792,5448.4819}; + id=148; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6252.7388,338.82632,5448.4819}; + id=149; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6254.7388,339.34473,5448.4819}; + id=150; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item24 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6248.7388,337.78949,5448.4819}; + id=147; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + class Item25 + { + side="EAST"; + class Vehicles + { + items=11; + class Item0 + { + position[]={6046.1758,299.64764,5747.0098}; + id=151; + side="EAST"; + vehicle="RU_Soldier_SL"; + player="PLAY CDG"; + leader=1; + rank="LIEUTENANT"; + skill=0.59999996; + }; + class Item1 + { + position[]={6049.1758,300.24228,5742.0098}; + id=152; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item2 + { + position[]={6051.1758,300.22327,5742.0098}; + id=153; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="SERGEANT"; + skill=0.46666664; + }; + class Item3 + { + position[]={6053.1758,300.22064,5742.0098}; + id=154; + side="EAST"; + vehicle="RU_Soldier_LAT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item4 + { + position[]={6055.1758,300.22702,5742.0098}; + id=155; + side="EAST"; + vehicle="RU_Soldier_GL"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item5 + { + position[]={6057.1758,300.23343,5742.0098}; + id=156; + side="EAST"; + vehicle="RU_Soldier_Marksman"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item6 + { + position[]={6059.1758,300.27399,5742.0098}; + id=157; + side="EAST"; + vehicle="RU_Soldier_MG"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item7 + { + position[]={6061.1758,300.33798,5742.0098}; + id=158; + side="EAST"; + vehicle="RU_Soldier_AT"; + rank="CORPORAL"; + skill=0.33333331; + }; + class Item8 + { + position[]={6065.1758,300.56119,5742.0098}; + id=160; + side="EAST"; + vehicle="RU_Soldier_LAT"; + skill=0.2; + }; + class Item9 + { + position[]={6067.1758,300.7276,5742.0098}; + id=161; + side="EAST"; + vehicle="RU_Soldier_GL"; + skill=0.2; + }; + class Item10 + { + position[]={6069.1758,300.89606,5742.0098}; + id=162; + side="EAST"; + vehicle="RU_Soldier"; + skill=0.2; + }; + }; + }; + class Item26 + { + side="EAST"; + class Vehicles + { + items=1; + class Item0 + { + position[]={6063.1758,300.42035,5742.0098}; + id=159; + side="EAST"; + vehicle="RU_Soldier_AR"; + leader=1; + skill=0.2; + }; + }; + }; + }; + class Vehicles + { + items=5; + class Item0 + { + position[]={5560.2642,83.040001,11282.228}; + azimut=170; + id=1; + side="EMPTY"; + vehicle="M252"; + leader=1; + skill=0.60000002; + }; + class Item1 + { + position[]={5552.1978,83.040001,11284.653}; + id=2; + side="EMPTY"; + vehicle="ACE_WeaponBox_BIS_US"; + skill=0.60000002; + }; + class Item2 + { + position[]={5547.2437,83.040001,11285.056}; + id=3; + side="EMPTY"; + vehicle="UAZ_AGS30_CDF"; + skill=0.60000002; + }; + class Item3 + { + position[]={5565.6748,83.040001,11284.639}; + azimut=180; + id=4; + side="EMPTY"; + vehicle="ace_arty_m119"; + leader=1; + skill=0.60000002; + }; + class Item4 + { + position[]={5562.3257,83.040001,11289.103}; + azimut=170; + id=5; + side="EMPTY"; + vehicle="ace_arty_105mm_ammo_m1"; + leader=1; + skill=0.60000002; + init="this addMagazineCargo [""ace_arty_105mm_m916"", 50];"; + }; + }; + class Sensors + { + items=3; + class Item0 + { + position[]={5577.5869,83.040001,11286.386}; + a=0; + b=0; + activationBy="ALPHA"; + repeating=1; + interruptable=1; + age="UNKNOWN"; + text="Generate Tables"; + expActiv="script = call compile preprocessFileLineNumbers ""generateTable.sqf"";"; + class Effects + { + }; + }; + class Item1 + { + position[]={5581.4668,90.056564,11535.605}; + a=0; + b=0; + activationBy="ALPHA"; + repeating=1; + interruptable=1; + age="UNKNOWN"; + text="Generate Tables"; + expActiv="script = call compile preprocessFileLineNumbers ""generateTable.sqf"";"; + class Effects + { + }; + }; + class Item2 + { + position[]={5627.2944,87.212227,11535.605}; + a=0; + b=0; + activationBy="BRAVO"; + repeating=1; + interruptable=1; + age="UNKNOWN"; + text="Generate Tables legacy"; + expActiv="script = call compile preprocessFileLineNumbers ""generateTable_legacy.sqf"";"; + class Effects + { + }; + }; + }; +}; +class Intro +{ + addOns[]= + { + "takistan" + }; + addOnsAuto[]= + { + "takistan" + }; + randomSeed=3855692; + class Intel + { + startWeather=0.40000001; + forecastWeather=0.40000001; + year=2009; + day=28; + hour=16; + minute=20; + }; +}; +class OutroWin +{ + addOns[]= + { + "takistan" + }; + addOnsAuto[]= + { + "takistan" + }; + randomSeed=4357661; + class Intel + { + startWeather=0.40000001; + forecastWeather=0.40000001; + year=2009; + day=28; + hour=16; + minute=20; + }; +}; +class OutroLoose +{ + addOns[]= + { + "takistan" + }; + addOnsAuto[]= + { + "takistan" + }; + randomSeed=2965517; + class Intel + { + startWeather=0.40000001; + forecastWeather=0.40000001; + year=2009; + day=28; + hour=16; + minute=20; + }; +}; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/rangeTable.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/rangeTable.sqf new file mode 100644 index 0000000000..1e99b29b73 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/rangeTable.sqf @@ -0,0 +1,74 @@ +_dataFile = "tables\m119.sqf"; +//_dataFile = "tables\m224_legacy.sqf"; +_tableData = call compile preprocessFileLineNumbers _dataFile; +_tableData_tables = _tableData select 0; +_tableData_mags = _tableData select 1; +_tableData_charges = _tableData select 2; + +ace_sys_arty_ammunition_selectRangeTable = { + _dataFile = _this select 0; + _tableData = call compile preprocessFileLineNumbers _dataFile; + _tableData_tables = _tableData select 0; + _tableData_mags = _tableData select 1; + _tableData_charges = _tableData select 2; + + _selectedMag = _tableData_mags select (lbCurSel 4020); + _selectedCharge = _tableData_charges select (lbCurSel 4021); + _selectedTable = []; + + //scopeName "selectRangeTable_base"; + { // foreach mags + _mag = _x; + _magName = _mag select 0; + _magClass = _mag select 1; + if (_magName == _selectedMag) then { // correct mag + _charges = _mag select 2; + { //foreach charges + _charge = _x; + _chargeName = _charge select 0; + _chargeClass = _charge select 1; + if (_chargeName == _selectedCharge) then { // correct charge + _table = _charge select 2; + _selectedTable = _table; + // breakTo "selectRangeTable_base"; + }; + } foreach _charges; + }; + } foreach _tableData_tables; + + // apply range table + lnbClear 4022; + { + // 0: range, 1: elevation, 2: altitude -100m elev, 3: altitude -100m time, 4: time of flight + lnbAddRow [4022, [str (_x select 0), str (_x select 1), str (_x select 2), str (_x select 3), str (_x select 4)]]; + } foreach _selectedTable; + +}; + +// create dialog +_dialog = createDialog "ace_sys_arty_rangeTables_RangeTable"; +waituntil {_dialog}; + +with uiNamespace do { + display = findDisplay 2999; + + // fill mags combo + { + lbAdd [4020, _x]; + } foreach _tableData_mags; + lbSetCurSel [4020, 0]; + + // fill charges combo + { + lbAdd [4021, _x]; + } foreach _tableData_charges; + lbSetCurSel [4021, 0]; + + // set onchange event handlers + combo_round = display displayCtrl 4020; + combo_round ctrlAddEventHandler ["LBSelChanged", '["'+_dataFile+'"] call ace_sys_arty_ammunition_selectRangeTable']; + combo_charge = display displayCtrl 4021; + combo_charge ctrlAddEventHandler ["LBSelChanged", '["'+_dataFile+'"] call ace_sys_arty_ammunition_selectRangeTable']; +}; +// fill range table +[_dataFile] call ace_sys_arty_ammunition_selectRangeTable; diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf new file mode 100644 index 0000000000..a7dbee7c99 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf @@ -0,0 +1,44 @@ +_tableData_tables = [ +["HE","m1",[ +["charge 1","chg1",[[2200,1243,6,0.7,36.5],[2300,1223,6,0.7,36.3],[2400,1202,7,0.7,36],[2500,1180,8,0.7,35.7],[2600,1157,9,0.7,35.3],[2700,1133,10,0.8,34.9],[2800,1107,11,0.8,34.5],[2900,1079,13,0.9,34],[3000,1050,14,0.9,33.4],[3100,1016,17,1,32.8],[3200,977,22,1.1,32],[3300,931,29,1.3,31],[3400,864,47,1.8,29.4]]], +["charge 2","chg2",[[2600,1227,5,0.6,39.1],[2700,1209,6,0.6,38.8],[2800,1190,6,0.7,38.5],[2900,1171,7,0.7,38.2],[3000,1150,8,0.7,37.9],[3100,1129,9,0.7,37.5],[3200,1106,9,0.7,37.1],[3300,1082,11,0.8,36.6],[3400,1056,12,0.8,36.1],[3500,1028,14,0.9,35.5],[3600,997,17,1,34.9],[3700,961,20,1.1,34],[3800,917,27,1.3,33],[3900,853,45,1.8,31.3]]], +["charge 3","chg3",[[3000,1233,4,0.6,42.7],[3100,1218,5,0.6,42.5],[3200,1202,5,0.6,42.2],[3300,1186,5,0.6,41.9],[3400,1169,6,0.6,41.6],[3500,1151,6,0.7,41.3],[3600,1133,7,0.7,41],[3700,1114,8,0.7,40.6],[3800,1094,8,0.7,40.2],[3900,1072,9,0.7,39.7],[4000,1050,10,0.8,39.2],[4100,1025,12,0.8,38.7],[4200,998,14,0.9,38.1],[4300,969,16,1,37.3],[4400,934,20,1.1,36.4],[4500,890,28,1.4,35.3],[4600,823,49,2,33.4]]], +["charge 4","chg4",[[3500,1241,4,0.5,47.2],[3600,1228,4,0.5,46.9],[3700,1215,4,0.6,46.7],[3800,1201,4,0.6,46.5],[3900,1188,4,0.6,46.2],[4000,1173,5,0.6,46],[4100,1159,5,0.6,45.7],[4200,1144,5,0.6,45.4],[4300,1128,6,0.6,45],[4400,1112,6,0.6,44.7],[4500,1095,7,0.7,44.3],[4600,1077,7,0.7,43.9],[4700,1058,8,0.7,43.5],[4800,1039,9,0.7,43],[4900,1017,10,0.8,42.4],[5000,995,11,0.8,41.9],[5100,970,13,0.9,41.2],[5200,941,16,1,40.4],[5300,909,19,1.1,39.5],[5400,866,27,1.4,38.2]]], +["charge 5","chg5",[[4300,1242,3,0.5,53.3],[4400,1232,3,0.5,53.1],[4500,1222,3,0.5,52.9],[4600,1211,3,0.5,52.7],[4700,1200,3,0.5,52.5],[4800,1189,3,0.5,52.2],[4900,1177,3,0.5,52],[5000,1165,4,0.5,51.7],[5100,1153,4,0.5,51.5],[5200,1141,4,0.5,51.2],[5300,1128,4,0.6,50.9],[5400,1115,5,0.6,50.6],[5500,1102,5,0.6,50.2],[5600,1088,5,0.6,49.9],[5700,1073,6,0.6,49.5],[5800,1058,6,0.6,49.1],[5900,1042,7,0.6,48.7],[6000,1026,7,0.7,48.2],[6100,1008,8,0.7,47.7],[6200,989,9,0.7,47.2],[6300,969,10,0.8,46.6],[6400,947,11,0.8,45.9],[6500,923,13,0.9,45.1],[6600,895,16,1,44.2],[6700,861,20,1.2,43],[6800,812,32,1.7,41.3]]], +["charge 6","chg6",[[5400,1243,2,0.4,61.2],[5500,1235,2,0.4,61],[5600,1227,2,0.4,60.9],[5700,1218,2,0.4,60.7],[5800,1210,2,0.4,60.5],[5900,1201,2,0.5,60.3],[6000,1192,2,0.5,60.1],[6100,1183,2,0.5,59.9],[6200,1174,2,0.5,59.6],[6300,1165,3,0.5,59.4],[6400,1155,3,0.5,59.2],[6500,1145,3,0.5,58.9],[6600,1135,3,0.5,58.7],[6700,1125,3,0.5,58.4],[6800,1115,3,0.5,58.1],[6900,1104,3,0.5,57.8],[7000,1093,4,0.5,57.5],[7100,1082,4,0.5,57.2],[7200,1070,4,0.5,56.8],[7300,1058,4,0.6,56.5],[7400,1046,5,0.6,56.1],[7500,1033,5,0.6,55.7],[7600,1020,5,0.6,55.3],[7700,1006,6,0.6,54.8],[7800,992,6,0.6,54.3],[7900,976,6,0.7,53.8],[8000,960,7,0.7,53.3],[8100,943,8,0.7,52.7],[8200,924,9,0.8,52],[8300,904,10,0.8,51.2],[8400,880,12,0.9,50.3],[8500,854,15,1.1,49.3],[8600,821,19,1.2,48]]], +["charge 7","chg7",[[6900,1241,1,0.4,71.2],[7000,1234,1,0.4,71],[7100,1228,1,0.4,70.8],[7200,1221,1,0.4,70.7],[7300,1214,1,0.4,70.5],[7400,1207,1,0.4,70.3],[7500,1201,2,0.4,70.1],[7600,1194,2,0.4,70],[7700,1187,2,0.4,69.8],[7800,1179,2,0.4,69.6],[7900,1172,2,0.4,69.4],[8000,1165,2,0.4,69.1],[8100,1157,2,0.4,68.9],[8200,1150,2,0.4,68.7],[8300,1142,2,0.4,68.5],[8400,1134,2,0.4,68.2],[8500,1126,2,0.4,68],[8600,1118,2,0.4,67.7],[8700,1110,2,0.4,67.5],[8800,1102,2,0.4,67.2],[8900,1093,2,0.5,66.9],[9000,1085,3,0.5,66.7],[9100,1076,3,0.5,66.4],[9200,1067,3,0.5,66.1],[9300,1057,3,0.5,65.7],[9400,1048,3,0.5,65.4],[9500,1038,3,0.5,65.1],[9600,1028,3,0.5,64.7],[9700,1018,3,0.5,64.3],[9800,1007,4,0.5,63.9],[9900,996,4,0.5,63.5],[10000,985,4,0.5,63.1],[10100,973,5,0.6,62.6],[10200,961,5,0.6,62.1],[10300,948,5,0.6,61.6],[10400,935,5,0.6,61.1],[10500,921,6,0.6,60.5],[10600,905,6,0.7,59.9],[10700,889,7,0.7,59.2],[10800,872,8,0.7,58.4],[10900,852,9,0.8,57.5],[11000,830,11,0.9,56.5],[11100,803,14,1.1,55.3]]], +["charge 8","chg8",[[8400,1240,1,0.4,81],[8500,1234,1,0.4,80.9],[8600,1229,1,0.4,80.7],[8700,1223,1,0.4,80.6],[8800,1218,1,0.4,80.4],[8900,1212,1,0.4,80.3],[9000,1207,1,0.4,80.1],[9100,1201,1,0.4,79.9],[9200,1196,1,0.4,79.7],[9300,1190,1,0.4,79.6],[9400,1184,1,0.4,79.4],[9500,1178,1,0.4,79.2],[9600,1172,1,0.4,79],[9700,1166,1,0.4,78.8],[9800,1160,1,0.4,78.6],[9900,1154,1,0.4,78.4],[10000,1148,1,0.4,78.2],[10100,1142,1,0.4,78],[10200,1135,1,0.4,77.8],[10300,1129,1,0.4,77.6],[10400,1122,1,0.4,77.3],[10500,1116,2,0.4,77.1],[10600,1109,2,0.4,76.9],[10700,1102,2,0.4,76.6],[10800,1095,2,0.4,76.4],[10900,1088,2,0.4,76.1],[11000,1081,2,0.4,75.9],[11100,1074,2,0.4,75.6],[11200,1067,2,0.4,75.3],[11300,1059,2,0.4,75],[11400,1052,2,0.4,74.7],[11500,1044,2,0.4,74.4],[11600,1036,2,0.4,74.1],[11700,1028,2,0.4,73.8],[11800,1020,2,0.4,73.5],[11900,1012,2,0.5,73.1],[12000,1003,3,0.5,72.7],[12100,994,3,0.5,72.4],[12200,985,3,0.5,72],[12300,976,3,0.5,71.6],[12400,966,3,0.5,71.2],[12500,957,3,0.5,70.7],[12600,947,3,0.5,70.3],[12700,936,3,0.5,69.8],[12800,925,4,0.5,69.3],[12900,914,4,0.6,68.8],[13000,902,4,0.6,68.2],[13100,890,4,0.6,67.6],[13200,877,5,0.6,67],[13300,863,5,0.6,66.3],[13400,848,6,0.7,65.6],[13500,832,7,0.7,64.8],[13600,814,8,0.8,63.8]]] +]], +["WP","m84a1",[ +["charge 1","chg1",[[2200,1230,7,0.7,35.1],[2300,1208,8,0.7,34.8],[2400,1185,9,0.8,34.5],[2500,1162,10,0.8,34.1],[2600,1136,11,0.8,33.7],[2700,1110,12,0.9,33.2],[2800,1080,14,0.9,32.7],[2900,1048,17,1,32.1],[3000,1012,21,1.1,31.3],[3100,967,28,1.3,30.3],[3200,907,42,1.7,28.9]]], +["charge 2","chg2",[[2500,1234,6,0.7,38],[2600,1215,6,0.7,37.7],[2700,1196,7,0.7,37.4],[2800,1176,8,0.7,37.1],[2900,1155,8,0.7,36.8],[3000,1133,9,0.8,36.4],[3100,1109,10,0.8,35.9],[3200,1084,12,0.9,35.4],[3300,1057,14,0.9,34.9],[3400,1027,16,1,34.2],[3500,992,20,1.1,33.5],[3600,951,26,1.3,32.5],[3700,895,39,1.7,31.1]]], +["charge 3","chg3",[[2900,1239,5,0.6,41.7],[3000,1224,5,0.6,41.5],[3100,1207,5,0.6,41.2],[3200,1191,6,0.6,40.9],[3300,1174,6,0.7,40.6],[3400,1156,7,0.7,40.3],[3500,1137,7,0.7,39.9],[3600,1117,8,0.7,39.5],[3700,1096,9,0.8,39.1],[3800,1074,10,0.8,38.6],[3900,1051,11,0.8,38.1],[4000,1025,13,0.9,37.5],[4100,996,16,1,36.8],[4200,963,19,1.1,36],[4300,924,25,1.3,34.9],[4400,868,40,1.8,33.3]]], +["charge 4","chg4",[[3500,1233,4,0.6,46],[3600,1220,4,0.6,45.8],[3700,1206,4,0.6,45.6],[3800,1192,5,0.6,45.3],[3900,1178,5,0.6,45],[4000,1163,5,0.6,44.7],[4100,1148,6,0.6,44.4],[4200,1132,6,0.6,44.1],[4300,1115,7,0.7,43.7],[4400,1098,7,0.7,43.3],[4500,1080,8,0.7,42.9],[4600,1061,9,0.7,42.5],[4700,1040,10,0.8,41.9],[4800,1018,11,0.8,41.4],[4900,994,12,0.9,40.7],[5000,967,15,1,40],[5100,937,18,1.1,39.1],[5200,899,24,1.3,38],[5300,845,38,1.8,36.3]]], +["charge 5","chg5",[[4300,1237,3,0.5,52.3],[4400,1226,3,0.5,52.1],[4500,1215,3,0.5,51.9],[4600,1204,3,0.5,51.7],[4700,1193,3,0.5,51.4],[4800,1182,4,0.5,51.2],[4900,1170,4,0.5,50.9],[5000,1158,4,0.5,50.6],[5100,1145,4,0.6,50.4],[5200,1132,5,0.6,50.1],[5300,1119,5,0.6,49.7],[5400,1105,5,0.6,49.4],[5500,1091,5,0.6,49],[5600,1076,6,0.6,48.6],[5700,1061,6,0.6,48.2],[5800,1045,7,0.7,47.8],[5900,1028,7,0.7,47.3],[6000,1010,8,0.7,46.8],[6100,990,9,0.8,46.2],[6200,969,11,0.8,45.6],[6300,946,12,0.9,44.8],[6400,920,14,1,44],[6500,890,18,1.1,43],[6600,849,26,1.5,41.5]]], +["charge 6","chg6",[[5400,1239,2,0.4,60.3],[5500,1231,2,0.4,60.2],[5600,1223,2,0.4,60],[5700,1214,2,0.4,59.8],[5800,1205,2,0.5,59.6],[5900,1196,2,0.5,59.4],[6000,1187,3,0.5,59.1],[6100,1178,3,0.5,58.9],[6200,1169,3,0.5,58.7],[6300,1159,3,0.5,58.4],[6400,1149,3,0.5,58.2],[6500,1139,3,0.5,57.9],[6600,1129,3,0.5,57.7],[6700,1119,3,0.5,57.4],[6800,1108,4,0.5,57.1],[6900,1097,4,0.5,56.8],[7000,1086,4,0.5,56.4],[7100,1074,4,0.5,56.1],[7200,1062,4,0.6,55.7],[7300,1049,5,0.6,55.3],[7400,1036,5,0.6,54.9],[7500,1023,5,0.6,54.5],[7600,1009,6,0.6,54],[7700,994,6,0.6,53.5],[7800,979,7,0.7,53],[7900,962,7,0.7,52.4],[8000,944,8,0.7,51.8],[8100,925,9,0.8,51.1],[8200,904,11,0.9,50.3],[8300,879,13,1,49.3],[8400,850,17,1.2,48.2],[8500,811,25,1.5,46.6]]], +["charge 7","chg7",[[6900,1238,1,0.4,70.4],[7000,1231,1,0.4,70.2],[7100,1225,1,0.4,70],[7200,1218,1,0.4,69.9],[7300,1211,1,0.4,69.7],[7400,1204,2,0.4,69.5],[7500,1197,2,0.4,69.3],[7600,1190,2,0.4,69.1],[7700,1183,2,0.4,68.9],[7800,1176,2,0.4,68.7],[7900,1169,2,0.4,68.5],[8000,1161,2,0.4,68.3],[8100,1154,2,0.4,68.1],[8200,1146,2,0.4,67.8],[8300,1138,2,0.4,67.6],[8400,1130,2,0.4,67.4],[8500,1122,2,0.4,67.1],[8600,1114,2,0.4,66.9],[8700,1106,2,0.4,66.6],[8800,1097,2,0.5,66.3],[8900,1088,3,0.5,66],[9000,1079,3,0.5,65.7],[9100,1070,3,0.5,65.4],[9200,1061,3,0.5,65.1],[9300,1051,3,0.5,64.8],[9400,1042,3,0.5,64.4],[9500,1032,3,0.5,64],[9600,1021,4,0.5,63.7],[9700,1011,4,0.5,63.3],[9800,1000,4,0.5,62.9],[9900,988,4,0.6,62.4],[10000,976,4,0.6,62],[10100,964,5,0.6,61.5],[10200,951,5,0.6,60.9],[10300,937,6,0.6,60.4],[10400,923,6,0.7,59.8],[10500,908,7,0.7,59.1],[10600,891,7,0.7,58.4],[10700,873,8,0.8,57.6],[10800,853,10,0.9,56.7],[10900,829,12,1,55.6],[11000,801,16,1.2,54.3]]] +]], +["Illum","m314a3",[ +["charge 1","chg1",[[2000,1241,8,0.8,32.6],[2100,1218,10,0.9,32.2],[2200,1193,11,0.9,31.8],[2300,1167,13,1,31.4],[2400,1138,15,1,30.9],[2500,1107,17,1.1,30.3],[2600,1071,22,1.3,29.5],[2700,1029,28,1.4,28.6],[2800,971,44,1.9,27.2]]], +["charge 2","chg2",[[2400,1226,7,0.8,35.4],[2500,1205,8,0.8,35.1],[2600,1184,9,0.8,34.7],[2700,1161,10,0.9,34.3],[2800,1136,12,0.9,33.8],[2900,1110,14,1,33.3],[3000,1081,16,1.1,32.7],[3100,1049,19,1.2,31.9],[3200,1010,25,1.4,31],[3300,960,37,1.7,29.7]]], +["charge 3","chg3",[[2800,1234,6,0.7,39.4],[2900,1217,6,0.7,39.1],[3000,1200,7,0.7,38.8],[3100,1181,7,0.7,38.4],[3200,1162,8,0.8,38.1],[3300,1142,9,0.8,37.7],[3400,1121,10,0.8,37.2],[3500,1099,11,0.9,36.7],[3600,1074,13,0.9,36.2],[3700,1047,15,1,35.5],[3800,1017,19,1.1,34.7],[3900,981,23,1.3,33.8],[4000,933,34,1.7,32.4]]], +["charge 4","chg4",[[3300,1244,4,0.6,44.2],[3400,1230,4,0.6,43.9],[3500,1216,5,0.6,43.7],[3600,1201,5,0.6,43.4],[3700,1186,6,0.7,43.1],[3800,1171,6,0.7,42.8],[3900,1155,6,0.7,42.4],[4000,1138,7,0.7,42.1],[4100,1121,7,0.7,41.7],[4200,1103,8,0.7,41.3],[4300,1083,9,0.8,40.8],[4400,1062,10,0.8,40.3],[4500,1040,12,0.9,39.7],[4600,1015,13,1,39],[4700,987,17,1.1,38.2],[4800,954,21,1.2,37.2],[4900,912,30,1.6,35.9]]], +["charge 5","chg5",[[4200,1236,3,0.5,50.4],[4300,1225,3,0.5,50.2],[4400,1213,3,0.5,50],[4500,1202,4,0.5,49.7],[4600,1190,4,0.6,49.5],[4700,1178,4,0.6,49.2],[4800,1165,4,0.6,48.9],[4900,1153,5,0.6,48.6],[5000,1139,5,0.6,48.3],[5100,1126,5,0.6,48],[5200,1112,6,0.7,47.6],[5300,1097,6,0.7,47.2],[5400,1082,7,0.7,46.8],[5500,1065,7,0.7,46.4],[5600,1048,8,0.7,45.9],[5700,1030,9,0.8,45.4],[5800,1011,10,0.8,44.8],[5900,990,11,0.9,44.1],[6000,966,13,1,43.4],[6100,939,16,1.1,42.5],[6200,908,20,1.3,41.4],[6300,863,31,1.7,39.7]]], +["charge 6","chg6",[[5300,1240,2,0.5,58.7],[5400,1231,2,0.5,58.5],[5500,1222,2,0.5,58.3],[5600,1213,2,0.5,58.1],[5700,1204,3,0.5,57.9],[5800,1195,3,0.5,57.7],[5900,1186,3,0.5,57.5],[6000,1176,3,0.5,57.2],[6100,1167,3,0.5,57],[6200,1157,3,0.5,56.7],[6300,1147,3,0.5,56.4],[6400,1136,3,0.5,56.2],[6500,1126,4,0.5,55.9],[6600,1115,4,0.5,55.5],[6700,1104,4,0.5,55.2],[6800,1092,4,0.6,54.9],[6900,1080,5,0.6,54.5],[7000,1068,5,0.6,54.2],[7100,1055,5,0.6,53.7],[7200,1042,6,0.6,53.3],[7300,1028,6,0.7,52.9],[7400,1013,6,0.7,52.4],[7500,998,7,0.7,51.8],[7600,981,8,0.7,51.3],[7700,964,9,0.8,50.6],[7800,945,10,0.8,49.9],[7900,923,11,0.9,49.1],[8000,899,14,1,48.2],[8100,871,17,1.2,47.1],[8200,832,25,1.6,45.4]]], +["charge 7","chg7",[[6800,1239,1,0.4,68.9],[6900,1232,1,0.4,68.8],[7000,1226,1,0.4,68.6],[7100,1219,2,0.4,68.4],[7200,1212,2,0.4,68.2],[7300,1205,2,0.4,68],[7400,1198,2,0.4,67.8],[7500,1191,2,0.4,67.7],[7600,1183,2,0.4,67.4],[7700,1176,2,0.4,67.2],[7800,1169,2,0.4,67],[7900,1161,2,0.4,66.8],[8000,1153,2,0.4,66.6],[8100,1145,2,0.5,66.3],[8200,1137,2,0.5,66.1],[8300,1129,2,0.5,65.8],[8400,1121,2,0.5,65.6],[8500,1113,3,0.5,65.3],[8600,1104,3,0.5,65],[8700,1095,3,0.5,64.7],[8800,1086,3,0.5,64.4],[8900,1077,3,0.5,64.1],[9000,1068,3,0.5,63.8],[9100,1058,3,0.5,63.4],[9200,1048,3,0.5,63.1],[9300,1038,4,0.5,62.7],[9400,1028,4,0.5,62.3],[9500,1017,4,0.5,61.9],[9600,1005,4,0.6,61.5],[9700,994,4,0.6,61],[9800,982,5,0.6,60.5],[9900,969,5,0.6,60],[10000,956,6,0.6,59.5],[10100,942,6,0.7,58.9],[10200,927,6,0.7,58.3],[10300,911,7,0.8,57.6],[10400,893,8,0.8,56.8],[10500,874,10,0.9,56],[10600,852,12,1,54.9],[10700,826,15,1.2,53.7]]] +]], +["DPICM","m916",[ +["charge 1","chg1",[[2200,1236,6,0.7,35.9],[2300,1216,7,0.7,35.6],[2400,1194,8,0.7,35.2],[2500,1171,8,0.7,34.9],[2600,1147,10,0.8,34.5],[2700,1122,11,0.8,34.1],[2800,1095,12,0.9,33.6],[2900,1065,14,0.9,33.1],[3000,1032,17,1,32.4],[3100,995,21,1.1,31.7],[3200,949,28,1.3,30.7],[3300,886,44,1.8,29.2]]], +["charge 2","chg2",[[2500,1240,5,0.6,38.7],[2600,1222,6,0.7,38.4],[2700,1203,6,0.7,38.1],[2800,1183,7,0.7,37.8],[2900,1163,8,0.7,37.5],[3000,1142,8,0.7,37.1],[3100,1120,9,0.8,36.7],[3200,1096,11,0.8,36.3],[3300,1070,12,0.8,35.8],[3400,1043,14,0.9,35.2],[3500,1012,16,1,34.6],[3600,977,20,1.1,33.8],[3700,934,27,1.3,32.7],[3800,875,41,1.7,31.2]]], +["charge 3","chg3",[[2900,1244,4,0.6,42.3],[3000,1229,5,0.6,42.1],[3100,1213,5,0.6,41.8],[3200,1197,5,0.6,41.6],[3300,1180,6,0.6,41.3],[3400,1162,6,0.6,41],[3500,1144,7,0.7,40.6],[3600,1125,7,0.7,40.3],[3700,1106,8,0.7,39.9],[3800,1085,9,0.7,39.4],[3900,1062,10,0.8,39],[4000,1038,12,0.8,38.4],[4100,1012,13,0.9,37.8],[4200,983,16,1,37.1],[4300,949,20,1.1,36.2],[4400,908,26,1.3,35.1],[4500,847,44,1.9,33.4]]], +["charge 4","chg4",[[3500,1237,4,0.5,46.6],[3600,1224,4,0.6,46.4],[3700,1211,4,0.6,46.1],[3800,1197,4,0.6,45.9],[3900,1183,5,0.6,45.6],[4000,1168,5,0.6,45.4],[4100,1154,5,0.6,45.1],[4200,1138,6,0.6,44.7],[4300,1122,6,0.6,44.4],[4400,1105,6,0.6,44],[4500,1088,7,0.7,43.6],[4600,1069,8,0.7,43.2],[4700,1050,9,0.7,42.7],[4800,1029,10,0.8,42.2],[4900,1007,11,0.8,41.6],[5000,982,13,0.9,41],[5100,955,15,1,40.2],[5200,923,19,1.1,39.3],[5300,883,25,1.3,38.1],[5400,824,43,2,36.2]]], +["charge 5","chg5",[[4300,1240,3,0.5,52.8],[4400,1229,3,0.5,52.6],[4500,1219,3,0.5,52.4],[4600,1208,3,0.5,52.2],[4700,1197,3,0.5,52],[4800,1185,3,0.5,51.7],[4900,1174,4,0.5,51.5],[5000,1162,4,0.5,51.2],[5100,1149,4,0.5,50.9],[5200,1137,4,0.6,50.6],[5300,1124,4,0.6,50.3],[5400,1110,5,0.6,50],[5500,1097,5,0.6,49.6],[5600,1082,5,0.6,49.3],[5700,1067,6,0.6,48.9],[5800,1052,6,0.6,48.5],[5900,1035,7,0.7,48],[6000,1018,8,0.7,47.5],[6100,1000,8,0.7,47],[6200,980,9,0.8,46.4],[6300,958,11,0.8,45.7],[6400,935,13,0.9,45],[6500,908,15,1,44.1],[6600,875,19,1.2,43],[6700,832,28,1.5,41.5]]], +["charge 6","chg6",[[5400,1241,2,0.4,60.8],[5500,1233,2,0.4,60.6],[5600,1225,2,0.4,60.4],[5700,1216,2,0.4,60.2],[5800,1207,2,0.5,60],[5900,1199,2,0.5,59.8],[6000,1190,2,0.5,59.6],[6100,1181,2,0.5,59.4],[6200,1171,3,0.5,59.2],[6300,1162,3,0.5,58.9],[6400,1152,3,0.5,58.7],[6500,1142,3,0.5,58.4],[6600,1132,3,0.5,58.2],[6700,1122,3,0.5,57.9],[6800,1111,3,0.5,57.6],[6900,1101,4,0.5,57.3],[7000,1089,4,0.5,57],[7100,1078,4,0.5,56.6],[7200,1066,4,0.5,56.3],[7300,1054,4,0.6,55.9],[7400,1041,5,0.6,55.5],[7500,1028,5,0.6,55.1],[7600,1015,5,0.6,54.7],[7700,1000,6,0.6,54.2],[7800,985,6,0.7,53.7],[7900,969,7,0.7,53.1],[8000,952,8,0.7,52.5],[8100,934,9,0.8,51.9],[8200,914,10,0.8,51.2],[8300,892,11,0.9,50.3],[8400,867,14,1,49.3],[8500,836,18,1.2,48.1]]], +["charge 7","chg7",[[6900,1239,1,0.4,70.8],[7000,1233,1,0.4,70.6],[7100,1226,1,0.4,70.4],[7200,1219,1,0.4,70.3],[7300,1213,1,0.4,70.1],[7400,1206,2,0.4,69.9],[7500,1199,2,0.4,69.7],[7600,1192,2,0.4,69.5],[7700,1185,2,0.4,69.3],[7800,1178,2,0.4,69.1],[7900,1170,2,0.4,68.9],[8000,1163,2,0.4,68.7],[8100,1156,2,0.4,68.5],[8200,1148,2,0.4,68.3],[8300,1140,2,0.4,68],[8400,1132,2,0.4,67.8],[8500,1124,2,0.4,67.6],[8600,1116,2,0.4,67.3],[8700,1108,2,0.4,67],[8800,1099,2,0.5,66.8],[8900,1091,2,0.5,66.5],[9000,1082,3,0.5,66.2],[9100,1073,3,0.5,65.9],[9200,1064,3,0.5,65.6],[9300,1055,3,0.5,65.3],[9400,1045,3,0.5,64.9],[9500,1035,3,0.5,64.6],[9600,1025,4,0.5,64.2],[9700,1014,4,0.5,63.8],[9800,1003,4,0.5,63.4],[9900,992,4,0.5,63],[10000,981,4,0.6,62.5],[10100,969,5,0.6,62],[10200,956,5,0.6,61.5],[10300,943,5,0.6,61],[10400,929,6,0.6,60.4],[10500,914,6,0.7,59.8],[10600,898,7,0.7,59.2],[10700,881,8,0.8,58.4],[10800,863,9,0.8,57.6],[10900,841,11,0.9,56.6],[11000,817,13,1,55.5]]], +["charge 8","chg8",[[8300,1244,1,0.4,80.8],[8400,1239,1,0.4,80.7],[8500,1233,1,0.4,80.5],[8600,1228,1,0.4,80.4],[8700,1222,1,0.4,80.2],[8800,1217,1,0.4,80],[8900,1211,1,0.4,79.9],[9000,1206,1,0.4,79.7],[9100,1200,1,0.4,79.5],[9200,1194,1,0.4,79.4],[9300,1189,1,0.4,79.2],[9400,1183,1,0.4,79],[9500,1177,1,0.4,78.8],[9600,1171,1,0.4,78.6],[9700,1165,1,0.4,78.4],[9800,1159,1,0.4,78.2],[9900,1153,1,0.4,78],[10000,1146,1,0.4,77.8],[10100,1140,1,0.4,77.6],[10200,1134,1,0.4,77.4],[10300,1127,1,0.4,77.2],[10400,1121,2,0.4,77],[10500,1114,2,0.4,76.7],[10600,1107,2,0.4,76.5],[10700,1101,2,0.4,76.2],[10800,1094,2,0.4,76],[10900,1087,2,0.4,75.7],[11000,1080,2,0.4,75.5],[11100,1072,2,0.4,75.2],[11200,1065,2,0.4,74.9],[11300,1057,2,0.4,74.6],[11400,1050,2,0.4,74.3],[11500,1042,2,0.4,74],[11600,1034,2,0.4,73.7],[11700,1026,2,0.4,73.3],[11800,1018,2,0.5,73],[11900,1009,3,0.5,72.6],[12000,1000,3,0.5,72.3],[12100,992,3,0.5,71.9],[12200,982,3,0.5,71.5],[12300,973,3,0.5,71.1],[12400,963,3,0.5,70.7],[12500,953,3,0.5,70.2],[12600,943,3,0.5,69.8],[12700,932,4,0.5,69.3],[12800,921,4,0.6,68.8],[12900,910,4,0.6,68.2],[13000,898,5,0.6,67.6],[13100,885,5,0.6,67],[13200,871,5,0.6,66.4],[13300,857,6,0.7,65.6],[13400,841,7,0.7,64.8],[13500,824,7,0.8,64],[13600,805,9,0.9,63]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum", "DPICM"]; +_tableData_charges = ["charge 1", "charge 2", "charge 3", "charge 4", "charge 5", "charge 6", "charge 7", "charge 8"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf.backup b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf.backup new file mode 100644 index 0000000000..a3e902bb19 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf.backup @@ -0,0 +1,44 @@ +_tableData_tables = [ +["HE","m1",[ +["charge 1","chg1",[[2200,1240,6,36.4],[2300,1220,7,36.2],[2400,1198,7,35.9],[2500,1176,8,35.5],[2600,1153,9,35.2],[2700,1128,10,34.8],[2800,1102,11,34.3],[2900,1074,13,33.8],[3000,1043,15,33.3],[3100,1009,18,32.6],[3200,969,23,31.7],[3300,920,30,30.7],[3400,842,56,28.8]]], +["charge 2","chg2",[[2500,1242,5,39.2],[2600,1224,6,38.9],[2700,1206,6,38.7],[2800,1187,7,38.4],[2900,1167,7,38.1],[3000,1146,8,37.7],[3100,1124,9,37.3],[3200,1101,9,36.9],[3300,1076,11,36.4],[3400,1050,12,35.9],[3500,1021,14,35.3],[3600,988,17,34.6],[3700,951,22,33.7],[3800,903,30,32.6],[3900,826,57,30.6]]], +["charge 3","chg3",[[3000,1229,4,42.5],[3100,1214,5,42.3],[3200,1198,5,42],[3300,1181,6,41.7],[3400,1164,6,41.4],[3500,1146,7,41.1],[3600,1127,7,40.7],[3700,1108,8,40.4],[3800,1087,9,39.9],[3900,1066,9,39.5],[4000,1042,11,39],[4100,1017,12,38.4],[4200,989,14,37.7],[4300,957,17,36.9],[4400,920,22,36],[4500,871,32,34.6]]], +["charge 4","chg4",[[3500,1236,4,46.9],[3600,1223,4,46.7],[3700,1210,4,46.5],[3800,1196,4,46.2],[3900,1182,5,46],[4000,1168,5,45.7],[4100,1153,5,45.4],[4200,1137,5,45.1],[4300,1121,6,44.7],[4400,1105,6,44.4],[4500,1087,7,44],[4600,1069,7,43.6],[4700,1050,8,43.1],[4800,1029,9,42.6],[4900,1007,10,42.1],[5000,983,12,41.4],[5100,957,14,40.7],[5200,926,17,39.9],[5300,890,22,38.8],[5400,839,33,37.2]]], +["charge 5","chg5",[[4300,1237,3,53],[4400,1227,3,52.8],[4500,1216,3,52.6],[4600,1205,3,52.4],[4700,1194,3,52.1],[4800,1182,3,51.9],[4900,1171,4,51.7],[5000,1159,4,51.4],[5100,1146,4,51.1],[5200,1134,4,50.8],[5300,1121,4,50.5],[5400,1107,5,50.2],[5500,1093,5,49.8],[5600,1079,6,49.5],[5700,1064,6,49.1],[5800,1048,6,48.7],[5900,1032,7,48.2],[6000,1014,7,47.7],[6100,996,8,47.2],[6200,976,9,46.6],[6300,954,11,45.9],[6400,930,13,45.2],[6500,903,14,44.3],[6600,871,19,43.2],[6700,828,27,41.7]]], +["charge 6","chg6",[[5400,1237,2,60.8],[5500,1229,2,60.6],[5600,1220,2,60.4],[5700,1212,2,60.2],[5800,1203,2,60],[5900,1194,2,59.8],[6000,1185,2,59.6],[6100,1175,2,59.4],[6200,1166,3,59.2],[6300,1156,3,58.9],[6400,1146,3,58.7],[6500,1137,3,58.4],[6600,1126,3,58.1],[6700,1116,3,57.9],[6800,1105,3,57.6],[6900,1094,4,57.2],[7000,1083,4,56.9],[7100,1071,4,56.6],[7200,1059,4,56.2],[7300,1046,4,55.8],[7400,1033,5,55.4],[7500,1020,5,55],[7600,1006,6,54.6],[7700,991,6,54.1],[7800,976,7,53.5],[7900,959,7,53],[8000,942,8,52.4],[8100,923,9,51.7],[8200,901,10,50.9],[8300,878,12,50],[8400,851,15,49],[8500,816,21,47.6]]], +["charge 7","chg7",[[6800,1240,1,70.7],[6900,1233,1,70.6],[7000,1227,1,70.4],[7100,1220,1,70.2],[7200,1213,1,70.1],[7300,1206,2,69.9],[7400,1199,2,69.7],[7500,1192,2,69.5],[7600,1185,2,69.3],[7700,1177,2,69.1],[7800,1170,2,68.9],[7900,1163,2,68.7],[8000,1155,2,68.5],[8100,1147,2,68.2],[8200,1140,2,68],[8300,1132,2,67.8],[8400,1123,2,67.5],[8500,1115,2,67.3],[8600,1107,2,67],[8700,1098,2,66.7],[8800,1090,2,66.4],[8900,1081,3,66.1],[9000,1072,3,65.8],[9100,1062,3,65.5],[9200,1053,3,65.2],[9300,1043,3,64.8],[9400,1033,3,64.5],[9500,1023,3,64.1],[9600,1012,3,63.7],[9700,1001,4,63.3],[9800,990,4,62.9],[9900,978,4,62.5],[10000,966,4,62],[10100,953,5,61.5],[10200,940,5,60.9],[10300,926,5,60.4],[10400,910,6,59.7],[10500,894,7,59.1],[10600,877,8,58.3],[10700,858,9,57.5],[10800,837,10,56.5],[10900,812,13,55.4]]], +["charge 8","chg8",[[8200,1242,1,80.5],[8300,1236,1,80.4],[8400,1231,1,80.2],[8500,1226,1,80.1],[8600,1220,1,79.9],[8700,1214,1,79.7],[8800,1209,1,79.6],[8900,1203,1,79.4],[9000,1197,1,79.2],[9100,1191,1,79.1],[9200,1186,1,78.9],[9300,1180,1,78.7],[9400,1174,1,78.5],[9500,1167,1,78.3],[9600,1161,1,78.1],[9700,1155,1,77.9],[9800,1149,1,77.7],[9900,1142,1,77.5],[10000,1136,1,77.3],[10100,1129,1,77.1],[10200,1123,1,76.8],[10300,1116,2,76.6],[10400,1109,2,76.4],[10500,1103,2,76.1],[10600,1095,2,75.9],[10700,1088,2,75.6],[10800,1081,2,75.3],[10900,1074,2,75.1],[11000,1066,2,74.8],[11100,1059,2,74.5],[11200,1051,2,74.2],[11300,1043,2,73.9],[11400,1035,2,73.6],[11500,1027,2,73.2],[11600,1019,2,72.9],[11700,1010,2,72.6],[11800,1001,3,72.2],[11900,992,3,71.8],[12000,983,3,71.4],[12100,974,3,71],[12200,964,3,70.6],[12300,954,3,70.1],[12400,944,3,69.7],[12500,933,4,69.2],[12600,922,4,68.7],[12700,910,4,68.1],[12800,898,4,67.6],[12900,885,5,67],[13000,872,5,66.3],[13100,857,6,65.6],[13200,842,6,64.8],[13300,825,7,64],[13400,806,8,63]]] +]], +["WP","m84a1",[ +["charge 1","chg1",[[2200,1240,6,36.4],[2300,1220,7,36.2],[2400,1198,7,35.9],[2500,1176,8,35.5],[2600,1153,9,35.2],[2700,1128,10,34.8],[2800,1102,11,34.3],[2900,1074,13,33.8],[3000,1043,15,33.3],[3100,1009,18,32.6],[3200,969,23,31.7],[3300,920,30,30.7],[3400,842,56,28.8]]], +["charge 2","chg2",[[2500,1242,5,39.2],[2600,1224,6,38.9],[2700,1206,6,38.7],[2800,1187,7,38.4],[2900,1167,7,38.1],[3000,1146,8,37.7],[3100,1124,9,37.3],[3200,1101,9,36.9],[3300,1076,11,36.4],[3400,1050,12,35.9],[3500,1021,14,35.3],[3600,988,17,34.6],[3700,951,22,33.7],[3800,903,30,32.6],[3900,826,57,30.6]]], +["charge 3","chg3",[[3000,1229,4,42.5],[3100,1214,5,42.3],[3200,1198,5,42],[3300,1181,6,41.7],[3400,1164,6,41.4],[3500,1146,7,41.1],[3600,1127,7,40.7],[3700,1108,8,40.4],[3800,1087,9,39.9],[3900,1066,9,39.5],[4000,1042,11,39],[4100,1017,12,38.4],[4200,989,14,37.7],[4300,957,17,36.9],[4400,920,22,36],[4500,871,32,34.6]]], +["charge 4","chg4",[[3500,1236,4,46.9],[3600,1223,4,46.7],[3700,1210,4,46.5],[3800,1196,4,46.2],[3900,1182,5,46],[4000,1168,5,45.7],[4100,1153,5,45.4],[4200,1137,5,45.1],[4300,1121,6,44.7],[4400,1105,6,44.4],[4500,1087,7,44],[4600,1069,7,43.6],[4700,1050,8,43.1],[4800,1029,9,42.6],[4900,1007,10,42.1],[5000,983,12,41.4],[5100,957,14,40.7],[5200,926,17,39.9],[5300,890,22,38.8],[5400,839,33,37.2]]], +["charge 5","chg5",[[4300,1237,3,53],[4400,1227,3,52.8],[4500,1216,3,52.6],[4600,1205,3,52.4],[4700,1194,3,52.1],[4800,1182,3,51.9],[4900,1171,4,51.7],[5000,1159,4,51.4],[5100,1146,4,51.1],[5200,1134,4,50.8],[5300,1121,4,50.5],[5400,1107,5,50.2],[5500,1093,5,49.8],[5600,1079,6,49.5],[5700,1064,6,49.1],[5800,1048,6,48.7],[5900,1032,7,48.2],[6000,1014,7,47.7],[6100,996,8,47.2],[6200,976,9,46.6],[6300,954,11,45.9],[6400,930,13,45.2],[6500,903,14,44.3],[6600,871,19,43.2],[6700,828,27,41.7]]], +["charge 6","chg6",[[5400,1237,2,60.8],[5500,1229,2,60.6],[5600,1220,2,60.4],[5700,1212,2,60.2],[5800,1203,2,60],[5900,1194,2,59.8],[6000,1185,2,59.6],[6100,1175,2,59.4],[6200,1166,3,59.2],[6300,1156,3,58.9],[6400,1146,3,58.7],[6500,1137,3,58.4],[6600,1126,3,58.1],[6700,1116,3,57.9],[6800,1105,3,57.6],[6900,1094,4,57.2],[7000,1083,4,56.9],[7100,1071,4,56.6],[7200,1059,4,56.2],[7300,1046,4,55.8],[7400,1033,5,55.4],[7500,1020,5,55],[7600,1006,6,54.6],[7700,991,6,54.1],[7800,976,7,53.5],[7900,959,7,53],[8000,942,8,52.4],[8100,923,9,51.7],[8200,901,10,50.9],[8300,878,12,50],[8400,851,15,49],[8500,816,21,47.6]]], +["charge 7","chg7",[[6800,1240,1,70.7],[6900,1233,1,70.6],[7000,1227,1,70.4],[7100,1220,1,70.2],[7200,1213,1,70.1],[7300,1206,2,69.9],[7400,1199,2,69.7],[7500,1192,2,69.5],[7600,1185,2,69.3],[7700,1177,2,69.1],[7800,1170,2,68.9],[7900,1163,2,68.7],[8000,1155,2,68.5],[8100,1147,2,68.2],[8200,1140,2,68],[8300,1132,2,67.8],[8400,1123,2,67.5],[8500,1115,2,67.3],[8600,1107,2,67],[8700,1098,2,66.7],[8800,1090,2,66.4],[8900,1081,3,66.1],[9000,1072,3,65.8],[9100,1062,3,65.5],[9200,1053,3,65.2],[9300,1043,3,64.8],[9400,1033,3,64.5],[9500,1023,3,64.1],[9600,1012,3,63.7],[9700,1001,4,63.3],[9800,990,4,62.9],[9900,978,4,62.5],[10000,966,4,62],[10100,953,5,61.5],[10200,940,5,60.9],[10300,926,5,60.4],[10400,910,6,59.7],[10500,894,7,59.1],[10600,877,8,58.3],[10700,858,9,57.5],[10800,837,10,56.5],[10900,812,13,55.4]]] +]], +["Illum","m314a3",[ +["charge 1","chg1",[[2100,1224,9,33],[2200,1200,10,32.6],[2300,1175,11,32.2],[2400,1148,13,31.7],[2500,1120,15,31.2],[2600,1087,18,30.6],[2700,1050,22,29.8],[2800,1006,30,28.8],[2900,944,47,27.3]]], +["charge 2","chg2",[[2400,1230,7,36],[2500,1210,8,35.7],[2600,1189,8,35.3],[2700,1167,9,35],[2800,1143,11,34.5],[2900,1118,12,34.1],[3000,1091,14,33.5],[3100,1061,17,32.8],[3200,1027,21,32.1],[3300,986,27,31.1],[3400,930,41,29.6]]], +["charge 3","chg3",[[2800,1236,5,39.9],[2900,1219,6,39.6],[3000,1202,6,39.3],[3100,1184,7,39],[3200,1165,8,38.6],[3300,1146,8,38.2],[3400,1125,9,37.8],[3500,1103,10,37.3],[3600,1080,12,36.8],[3700,1054,14,36.2],[3800,1026,16,35.5],[3900,993,19,34.7],[4000,953,27,33.6],[4100,896,43,31.9]]], +["charge 4","chg4",[[3300,1244,4,44.5],[3400,1230,4,44.3],[3500,1216,5,44],[3600,1201,5,43.8],[3700,1187,5,43.5],[3800,1171,6,43.2],[3900,1156,6,42.8],[4000,1139,7,42.5],[4100,1122,7,42.1],[4200,1103,8,41.7],[4300,1084,9,41.2],[4400,1064,10,40.7],[4500,1042,11,40.2],[4600,1018,13,39.5],[4700,991,15,38.8],[4800,961,18,37.9],[4900,923,25,36.8],[5000,867,41,35]]], +["charge 5","chg5",[[4200,1234,3,50.7],[4300,1222,3,50.4],[4400,1211,3,50.2],[4500,1199,4,50],[4600,1188,4,49.7],[4700,1175,4,49.4],[4800,1163,4,49.1],[4900,1150,5,48.8],[5000,1137,5,48.5],[5100,1123,5,48.2],[5200,1109,6,47.8],[5300,1094,6,47.5],[5400,1079,7,47],[5500,1062,7,46.6],[5600,1045,8,46.1],[5700,1027,8,45.6],[5800,1008,10,45],[5900,987,11,44.4],[6000,963,13,43.6],[6100,937,15,42.8],[6200,906,20,41.7],[6300,863,29,40.2]]], +["charge 6","chg6",[[5200,1244,2,58.9],[5300,1235,2,58.7],[5400,1227,2,58.5],[5500,1218,2,58.3],[5600,1209,2,58.1],[5700,1200,3,57.9],[5800,1191,3,57.7],[5900,1181,3,57.5],[6000,1171,3,57.2],[6100,1161,3,57],[6200,1151,3,56.7],[6300,1141,3,56.4],[6400,1131,3,56.1],[6500,1120,4,55.8],[6600,1109,4,55.5],[6700,1097,4,55.2],[6800,1085,4,54.8],[6900,1073,5,54.5],[7000,1060,5,54.1],[7100,1048,5,53.7],[7200,1034,5,53.2],[7300,1020,6,52.8],[7400,1005,7,52.3],[7500,989,7,51.7],[7600,972,8,51.1],[7700,954,9,50.5],[7800,934,10,49.7],[7900,911,12,48.9],[8000,886,14,47.9],[8100,855,19,46.7],[8200,810,31,44.8]]], +["charge 7","chg7",[[6700,1240,1,68.9],[6800,1233,1,68.7],[6900,1226,2,68.5],[7000,1219,2,68.4],[7100,1212,2,68.2],[7200,1205,2,68],[7300,1198,2,67.8],[7400,1191,2,67.6],[7500,1183,2,67.4],[7600,1176,2,67.2],[7700,1168,2,67],[7800,1161,2,66.8],[7900,1153,2,66.5],[8000,1145,2,66.3],[8100,1137,2,66],[8200,1129,2,65.8],[8300,1120,2,65.5],[8400,1112,2,65.2],[8500,1103,2,65],[8600,1094,3,64.7],[8700,1085,3,64.4],[8800,1076,3,64],[8900,1067,3,63.7],[9000,1057,3,63.4],[9100,1047,3,63],[9200,1036,4,62.6],[9300,1026,4,62.3],[9400,1015,4,61.9],[9500,1003,4,61.4],[9600,992,4,61],[9700,979,5,60.5],[9800,967,5,60],[9900,953,5,59.4],[10000,939,6,58.9],[10100,924,7,58.2],[10200,908,7,57.5],[10300,890,8,56.8],[10400,871,9,55.9],[10500,849,11,54.9],[10600,822,15,53.6]]] +]], +["DPICM","m916",[ +["charge 1","chg1",[[2200,1240,6,36.4],[2300,1220,7,36.2],[2400,1198,7,35.9],[2500,1176,8,35.5],[2600,1153,9,35.2],[2700,1128,10,34.8],[2800,1102,11,34.3],[2900,1074,13,33.8],[3000,1043,15,33.3],[3100,1009,18,32.6],[3200,969,23,31.7],[3300,920,30,30.7],[3400,842,56,28.8]]], +["charge 2","chg2",[[2500,1242,5,39.2],[2600,1224,6,38.9],[2700,1206,6,38.7],[2800,1187,7,38.4],[2900,1167,7,38.1],[3000,1146,8,37.7],[3100,1124,9,37.3],[3200,1101,9,36.9],[3300,1076,11,36.4],[3400,1050,12,35.9],[3500,1021,14,35.3],[3600,988,17,34.6],[3700,951,22,33.7],[3800,903,30,32.6],[3900,826,57,30.6]]], +["charge 3","chg3",[[3000,1229,4,42.5],[3100,1214,5,42.3],[3200,1198,5,42],[3300,1181,6,41.7],[3400,1164,6,41.4],[3500,1146,7,41.1],[3600,1127,7,40.7],[3700,1108,8,40.4],[3800,1087,9,39.9],[3900,1066,9,39.5],[4000,1042,11,39],[4100,1017,12,38.4],[4200,989,14,37.7],[4300,957,17,36.9],[4400,920,22,36],[4500,871,32,34.6]]], +["charge 4","chg4",[[3500,1236,4,46.9],[3600,1223,4,46.7],[3700,1210,4,46.5],[3800,1196,4,46.2],[3900,1182,5,46],[4000,1168,5,45.7],[4100,1153,5,45.4],[4200,1137,5,45.1],[4300,1121,6,44.7],[4400,1105,6,44.4],[4500,1087,7,44],[4600,1069,7,43.6],[4700,1050,8,43.1],[4800,1029,9,42.6],[4900,1007,10,42.1],[5000,983,12,41.4],[5100,957,14,40.7],[5200,926,17,39.9],[5300,890,22,38.8],[5400,839,33,37.2]]], +["charge 5","chg5",[[4300,1237,3,53],[4400,1227,3,52.8],[4500,1216,3,52.6],[4600,1205,3,52.4],[4700,1194,3,52.1],[4800,1182,3,51.9],[4900,1171,4,51.7],[5000,1159,4,51.4],[5100,1146,4,51.1],[5200,1134,4,50.8],[5300,1121,4,50.5],[5400,1107,5,50.2],[5500,1093,5,49.8],[5600,1079,6,49.5],[5700,1064,6,49.1],[5800,1048,6,48.7],[5900,1032,7,48.2],[6000,1014,7,47.7],[6100,996,8,47.2],[6200,976,9,46.6],[6300,954,11,45.9],[6400,930,13,45.2],[6500,903,14,44.3],[6600,871,19,43.2],[6700,828,27,41.7]]], +["charge 6","chg6",[[5400,1237,2,60.8],[5500,1229,2,60.6],[5600,1220,2,60.4],[5700,1212,2,60.2],[5800,1203,2,60],[5900,1194,2,59.8],[6000,1185,2,59.6],[6100,1175,2,59.4],[6200,1166,3,59.2],[6300,1156,3,58.9],[6400,1146,3,58.7],[6500,1137,3,58.4],[6600,1126,3,58.1],[6700,1116,3,57.9],[6800,1105,3,57.6],[6900,1094,4,57.2],[7000,1083,4,56.9],[7100,1071,4,56.6],[7200,1059,4,56.2],[7300,1046,4,55.8],[7400,1033,5,55.4],[7500,1020,5,55],[7600,1006,6,54.6],[7700,991,6,54.1],[7800,976,7,53.5],[7900,959,7,53],[8000,942,8,52.4],[8100,923,9,51.7],[8200,901,10,50.9],[8300,878,12,50],[8400,851,15,49],[8500,816,21,47.6]]], +["charge 7","chg7",[[6800,1240,1,70.7],[6900,1233,1,70.6],[7000,1227,1,70.4],[7100,1220,1,70.2],[7200,1213,1,70.1],[7300,1206,2,69.9],[7400,1199,2,69.7],[7500,1192,2,69.5],[7600,1185,2,69.3],[7700,1177,2,69.1],[7800,1170,2,68.9],[7900,1163,2,68.7],[8000,1155,2,68.5],[8100,1147,2,68.2],[8200,1140,2,68],[8300,1132,2,67.8],[8400,1123,2,67.5],[8500,1115,2,67.3],[8600,1107,2,67],[8700,1098,2,66.7],[8800,1090,2,66.4],[8900,1081,3,66.1],[9000,1072,3,65.8],[9100,1062,3,65.5],[9200,1053,3,65.2],[9300,1043,3,64.8],[9400,1033,3,64.5],[9500,1023,3,64.1],[9600,1012,3,63.7],[9700,1001,4,63.3],[9800,990,4,62.9],[9900,978,4,62.5],[10000,966,4,62],[10100,953,5,61.5],[10200,940,5,60.9],[10300,926,5,60.4],[10400,910,6,59.7],[10500,894,7,59.1],[10600,877,8,58.3],[10700,858,9,57.5],[10800,837,10,56.5],[10900,812,13,55.4]]], +["charge 8","chg8",[[8200,1242,1,80.5],[8300,1236,1,80.4],[8400,1231,1,80.2],[8500,1226,1,80.1],[8600,1220,1,79.9],[8700,1214,1,79.7],[8800,1209,1,79.6],[8900,1203,1,79.4],[9000,1197,1,79.2],[9100,1191,1,79.1],[9200,1186,1,78.9],[9300,1180,1,78.7],[9400,1174,1,78.5],[9500,1167,1,78.3],[9600,1161,1,78.1],[9700,1155,1,77.9],[9800,1149,1,77.7],[9900,1142,1,77.5],[10000,1136,1,77.3],[10100,1129,1,77.1],[10200,1123,1,76.8],[10300,1116,2,76.6],[10400,1109,2,76.4],[10500,1103,2,76.1],[10600,1095,2,75.9],[10700,1088,2,75.6],[10800,1081,2,75.3],[10900,1074,2,75.1],[11000,1066,2,74.8],[11100,1059,2,74.5],[11200,1051,2,74.2],[11300,1043,2,73.9],[11400,1035,2,73.6],[11500,1027,2,73.2],[11600,1019,2,72.9],[11700,1010,2,72.6],[11800,1001,3,72.2],[11900,992,3,71.8],[12000,983,3,71.4],[12100,974,3,71],[12200,964,3,70.6],[12300,954,3,70.1],[12400,944,3,69.7],[12500,933,4,69.2],[12600,922,4,68.7],[12700,910,4,68.1],[12800,898,4,67.6],[12900,885,5,67],[13000,872,5,66.3],[13100,857,6,65.6],[13200,842,6,64.8],[13300,825,7,64],[13400,806,8,63]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum", "DPICM"]; +_tableData_charges = ["charge 1", "charge 2", "charge 3", "charge 4", "charge 5", "charge 6", "charge 7", "charge 8"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf.backup2 b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf.backup2 new file mode 100644 index 0000000000..92b8bfc985 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m119.sqf.backup2 @@ -0,0 +1,44 @@ +_tableData_tables = [ +["HE","m1",[ +["charge 1","chg1",[[2200,1243,6,36.5],[2300,1223,6,36.3],[2400,1202,7,36],[2500,1180,8,35.7],[2600,1157,9,35.3],[2700,1133,10,34.9],[2800,1107,11,34.5],[2900,1079,13,34],[3000,1050,14,33.4],[3100,1016,17,32.8],[3200,977,22,32],[3300,931,29,31],[3400,864,47,29.4]]], +["charge 2","chg2",[[2600,1227,5,39.1],[2700,1209,6,38.8],[2800,1190,6,38.5],[2900,1171,7,38.2],[3000,1150,8,37.9],[3100,1129,9,37.5],[3200,1106,9,37.1],[3300,1082,11,36.6],[3400,1056,12,36.1],[3500,1028,14,35.5],[3600,997,17,34.9],[3700,961,20,34],[3800,917,27,33],[3900,853,45,31.3]]], +["charge 3","chg3",[[3000,1233,4,42.7],[3100,1218,5,42.5],[3200,1202,5,42.2],[3300,1186,5,41.9],[3400,1169,6,41.6],[3500,1151,6,41.3],[3600,1133,7,41],[3700,1114,8,40.6],[3800,1094,8,40.2],[3900,1072,9,39.7],[4000,1050,10,39.2],[4100,1025,12,38.7],[4200,998,14,38.1],[4300,969,16,37.3],[4400,934,20,36.4],[4500,890,28,35.3],[4600,823,49,33.4]]], +["charge 4","chg4",[[3500,1241,4,47.2],[3600,1228,4,46.9],[3700,1215,4,46.7],[3800,1201,4,46.5],[3900,1188,4,46.2],[4000,1173,5,46],[4100,1159,5,45.7],[4200,1144,5,45.4],[4300,1128,6,45],[4400,1112,6,44.7],[4500,1095,7,44.3],[4600,1077,7,43.9],[4700,1058,8,43.5],[4800,1039,9,43],[4900,1017,10,42.4],[5000,995,11,41.9],[5100,970,13,41.2],[5200,941,16,40.4],[5300,909,19,39.5],[5400,866,27,38.2]]], +["charge 5","chg5",[[4300,1242,3,53.3],[4400,1232,3,53.1],[4500,1222,3,52.9],[4600,1211,3,52.7],[4700,1200,3,52.5],[4800,1189,3,52.2],[4900,1177,3,52],[5000,1165,4,51.7],[5100,1153,4,51.5],[5200,1141,4,51.2],[5300,1128,4,50.9],[5400,1115,5,50.6],[5500,1102,5,50.2],[5600,1088,5,49.9],[5700,1073,6,49.5],[5800,1058,6,49.1],[5900,1042,7,48.7],[6000,1026,7,48.2],[6100,1008,8,47.7],[6200,989,9,47.2],[6300,969,10,46.6],[6400,947,11,45.9],[6500,923,13,45.1],[6600,895,16,44.2],[6700,861,20,43],[6800,812,32,41.3]]], +["charge 6","chg6",[[5400,1243,2,61.2],[5500,1235,2,61],[5600,1227,2,60.9],[5700,1218,2,60.7],[5800,1210,2,60.5],[5900,1201,2,60.3],[6000,1192,2,60.1],[6100,1183,2,59.9],[6200,1174,2,59.6],[6300,1165,3,59.4],[6400,1155,3,59.2],[6500,1145,3,58.9],[6600,1135,3,58.7],[6700,1125,3,58.4],[6800,1115,3,58.1],[6900,1104,3,57.8],[7000,1093,4,57.5],[7100,1082,4,57.2],[7200,1070,4,56.8],[7300,1058,4,56.5],[7400,1046,5,56.1],[7500,1033,5,55.7],[7600,1020,5,55.3],[7700,1006,6,54.8],[7800,992,6,54.3],[7900,976,6,53.8],[8000,960,7,53.3],[8100,943,8,52.7],[8200,924,9,52],[8300,904,10,51.2],[8400,880,12,50.3],[8500,854,15,49.3],[8600,821,19,48]]], +["charge 7","chg7",[[6900,1241,1,71.2],[7000,1234,1,71],[7100,1228,1,70.8],[7200,1221,1,70.7],[7300,1214,1,70.5],[7400,1207,1,70.3],[7500,1201,2,70.1],[7600,1194,2,70],[7700,1187,2,69.8],[7800,1179,2,69.6],[7900,1172,2,69.4],[8000,1165,2,69.1],[8100,1157,2,68.9],[8200,1150,2,68.7],[8300,1142,2,68.5],[8400,1134,2,68.2],[8500,1126,2,68],[8600,1118,2,67.7],[8700,1110,2,67.5],[8800,1102,2,67.2],[8900,1093,2,66.9],[9000,1085,3,66.7],[9100,1076,3,66.4],[9200,1067,3,66.1],[9300,1057,3,65.7],[9400,1048,3,65.4],[9500,1038,3,65.1],[9600,1028,3,64.7],[9700,1018,3,64.3],[9800,1007,4,63.9],[9900,996,4,63.5],[10000,985,4,63.1],[10100,973,5,62.6],[10200,961,5,62.1],[10300,948,5,61.6],[10400,935,5,61.1],[10500,921,6,60.5],[10600,905,6,59.9],[10700,889,7,59.2],[10800,872,8,58.4],[10900,852,9,57.5],[11000,830,11,56.5],[11100,803,14,55.3]]], +["charge 8","chg8",[[8400,1240,1,81],[8500,1234,1,80.9],[8600,1229,1,80.7],[8700,1223,1,80.6],[8800,1218,1,80.4],[8900,1212,1,80.3],[9000,1207,1,80.1],[9100,1201,1,79.9],[9200,1196,1,79.7],[9300,1190,1,79.6],[9400,1184,1,79.4],[9500,1178,1,79.2],[9600,1172,1,79],[9700,1166,1,78.8],[9800,1160,1,78.6],[9900,1154,1,78.4],[10000,1148,1,78.2],[10100,1142,1,78],[10200,1135,1,77.8],[10300,1129,1,77.6],[10400,1122,1,77.3],[10500,1116,2,77.1],[10600,1109,2,76.9],[10700,1102,2,76.6],[10800,1095,2,76.4],[10900,1088,2,76.1],[11000,1081,2,75.9],[11100,1074,2,75.6],[11200,1067,2,75.3],[11300,1059,2,75],[11400,1052,2,74.7],[11500,1044,2,74.4],[11600,1036,2,74.1],[11700,1028,2,73.8],[11800,1020,2,73.5],[11900,1012,2,73.1],[12000,1003,3,72.7],[12100,994,3,72.4],[12200,985,3,72],[12300,976,3,71.6],[12400,966,3,71.2],[12500,957,3,70.7],[12600,947,3,70.3],[12700,936,3,69.8],[12800,925,4,69.3],[12900,914,4,68.8],[13000,902,4,68.2],[13100,890,4,67.6],[13200,877,5,67],[13300,863,5,66.3],[13400,848,6,65.6],[13500,832,7,64.8],[13600,814,8,63.8]]] +]], +["WP","m84a1",[ +["charge 1","chg1",[[2200,1230,7,35.1],[2300,1208,8,34.8],[2400,1185,9,34.5],[2500,1162,10,34.1],[2600,1136,11,33.7],[2700,1110,12,33.2],[2800,1080,14,32.7],[2900,1048,17,32.1],[3000,1012,21,31.3],[3100,967,28,30.3],[3200,907,42,28.9]]], +["charge 2","chg2",[[2500,1234,6,38],[2600,1215,6,37.7],[2700,1196,7,37.4],[2800,1176,8,37.1],[2900,1155,8,36.8],[3000,1133,9,36.4],[3100,1109,10,35.9],[3200,1084,12,35.4],[3300,1057,14,34.9],[3400,1027,16,34.2],[3500,992,20,33.5],[3600,951,26,32.5],[3700,895,39,31.1]]], +["charge 3","chg3",[[2900,1239,5,41.7],[3000,1224,5,41.5],[3100,1207,5,41.2],[3200,1191,6,40.9],[3300,1174,6,40.6],[3400,1156,7,40.3],[3500,1137,7,39.9],[3600,1117,8,39.5],[3700,1096,9,39.1],[3800,1074,10,38.6],[3900,1051,11,38.1],[4000,1025,13,37.5],[4100,996,16,36.8],[4200,963,19,36],[4300,924,25,34.9],[4400,868,40,33.3]]], +["charge 4","chg4",[[3500,1233,4,46],[3600,1220,4,45.8],[3700,1206,4,45.6],[3800,1192,5,45.3],[3900,1178,5,45],[4000,1163,5,44.7],[4100,1148,6,44.4],[4200,1132,6,44.1],[4300,1115,7,43.7],[4400,1098,7,43.3],[4500,1080,8,42.9],[4600,1061,9,42.5],[4700,1040,10,41.9],[4800,1018,11,41.4],[4900,994,12,40.7],[5000,967,15,40],[5100,937,18,39.1],[5200,899,24,38],[5300,845,38,36.3]]], +["charge 5","chg5",[[4300,1237,3,52.3],[4400,1226,3,52.1],[4500,1215,3,51.9],[4600,1204,3,51.7],[4700,1193,3,51.4],[4800,1182,4,51.2],[4900,1170,4,50.9],[5000,1158,4,50.6],[5100,1145,4,50.4],[5200,1132,5,50.1],[5300,1119,5,49.7],[5400,1105,5,49.4],[5500,1091,5,49],[5600,1076,6,48.6],[5700,1061,6,48.2],[5800,1045,7,47.8],[5900,1028,7,47.3],[6000,1010,8,46.8],[6100,990,9,46.2],[6200,969,11,45.6],[6300,946,12,44.8],[6400,920,14,44],[6500,890,18,43],[6600,849,26,41.5]]], +["charge 6","chg6",[[5400,1239,2,60.3],[5500,1231,2,60.2],[5600,1223,2,60],[5700,1214,2,59.8],[5800,1205,2,59.6],[5900,1196,2,59.4],[6000,1187,3,59.1],[6100,1178,3,58.9],[6200,1169,3,58.7],[6300,1159,3,58.4],[6400,1149,3,58.2],[6500,1139,3,57.9],[6600,1129,3,57.7],[6700,1119,3,57.4],[6800,1108,4,57.1],[6900,1097,4,56.8],[7000,1086,4,56.4],[7100,1074,4,56.1],[7200,1062,4,55.7],[7300,1049,5,55.3],[7400,1036,5,54.9],[7500,1023,5,54.5],[7600,1009,6,54],[7700,994,6,53.5],[7800,979,7,53],[7900,962,7,52.4],[8000,944,8,51.8],[8100,925,9,51.1],[8200,904,11,50.3],[8300,879,13,49.3],[8400,850,17,48.2],[8500,811,25,46.6]]], +["charge 7","chg7",[[6900,1238,1,70.4],[7000,1231,1,70.2],[7100,1225,1,70],[7200,1218,1,69.9],[7300,1211,1,69.7],[7400,1204,2,69.5],[7500,1197,2,69.3],[7600,1190,2,69.1],[7700,1183,2,68.9],[7800,1176,2,68.7],[7900,1169,2,68.5],[8000,1161,2,68.3],[8100,1154,2,68.1],[8200,1146,2,67.8],[8300,1138,2,67.6],[8400,1130,2,67.4],[8500,1122,2,67.1],[8600,1114,2,66.9],[8700,1106,2,66.6],[8800,1097,2,66.3],[8900,1088,3,66],[9000,1079,3,65.7],[9100,1070,3,65.4],[9200,1061,3,65.1],[9300,1051,3,64.8],[9400,1042,3,64.4],[9500,1032,3,64],[9600,1021,4,63.7],[9700,1011,4,63.3],[9800,1000,4,62.9],[9900,988,4,62.4],[10000,976,4,62],[10100,964,5,61.5],[10200,951,5,60.9],[10300,937,6,60.4],[10400,923,6,59.8],[10500,908,7,59.1],[10600,891,7,58.4],[10700,873,8,57.6],[10800,853,10,56.7],[10900,829,12,55.6],[11000,801,16,54.3]]] +]], +["Illum","m314a3",[ +["charge 1","chg1",[[2000,1241,8,32.6],[2100,1218,10,32.2],[2200,1193,11,31.8],[2300,1167,13,31.4],[2400,1138,15,30.9],[2500,1107,17,30.3],[2600,1071,22,29.5],[2700,1029,28,28.6],[2800,971,44,27.2]]], +["charge 2","chg2",[[2400,1226,7,35.4],[2500,1205,8,35.1],[2600,1184,9,34.7],[2700,1161,10,34.3],[2800,1136,12,33.8],[2900,1110,14,33.3],[3000,1081,16,32.7],[3100,1049,19,31.9],[3200,1010,25,31],[3300,960,37,29.7]]], +["charge 3","chg3",[[2800,1234,6,39.4],[2900,1217,6,39.1],[3000,1200,7,38.8],[3100,1181,7,38.4],[3200,1162,8,38.1],[3300,1142,9,37.7],[3400,1121,10,37.2],[3500,1099,11,36.7],[3600,1074,13,36.2],[3700,1047,15,35.5],[3800,1017,19,34.7],[3900,981,23,33.8],[4000,933,34,32.4]]], +["charge 4","chg4",[[3300,1244,4,44.2],[3400,1230,4,43.9],[3500,1216,5,43.7],[3600,1201,5,43.4],[3700,1186,6,43.1],[3800,1171,6,42.8],[3900,1155,6,42.4],[4000,1138,7,42.1],[4100,1121,7,41.7],[4200,1103,8,41.3],[4300,1083,9,40.8],[4400,1062,10,40.3],[4500,1040,12,39.7],[4600,1015,13,39],[4700,987,17,38.2],[4800,954,21,37.2],[4900,912,30,35.9]]], +["charge 5","chg5",[[4200,1236,3,50.4],[4300,1225,3,50.2],[4400,1213,3,50],[4500,1202,4,49.7],[4600,1190,4,49.5],[4700,1178,4,49.2],[4800,1165,4,48.9],[4900,1153,5,48.6],[5000,1139,5,48.3],[5100,1126,5,48],[5200,1112,6,47.6],[5300,1097,6,47.2],[5400,1082,7,46.8],[5500,1065,7,46.4],[5600,1048,8,45.9],[5700,1030,9,45.4],[5800,1011,10,44.8],[5900,990,11,44.1],[6000,966,13,43.4],[6100,939,16,42.5],[6200,908,20,41.4],[6300,863,31,39.7]]], +["charge 6","chg6",[[5300,1240,2,58.7],[5400,1231,2,58.5],[5500,1222,2,58.3],[5600,1213,2,58.1],[5700,1204,3,57.9],[5800,1195,3,57.7],[5900,1186,3,57.5],[6000,1176,3,57.2],[6100,1167,3,57],[6200,1157,3,56.7],[6300,1147,3,56.4],[6400,1136,3,56.2],[6500,1126,4,55.9],[6600,1115,4,55.5],[6700,1104,4,55.2],[6800,1092,4,54.9],[6900,1080,5,54.5],[7000,1068,5,54.2],[7100,1055,5,53.7],[7200,1042,6,53.3],[7300,1028,6,52.9],[7400,1013,6,52.4],[7500,998,7,51.8],[7600,981,8,51.3],[7700,964,9,50.6],[7800,945,10,49.9],[7900,923,11,49.1],[8000,899,14,48.2],[8100,871,17,47.1],[8200,832,25,45.4]]], +["charge 7","chg7",[[6800,1239,1,68.9],[6900,1232,1,68.8],[7000,1226,1,68.6],[7100,1219,2,68.4],[7200,1212,2,68.2],[7300,1205,2,68],[7400,1198,2,67.8],[7500,1191,2,67.7],[7600,1183,2,67.4],[7700,1176,2,67.2],[7800,1169,2,67],[7900,1161,2,66.8],[8000,1153,2,66.6],[8100,1145,2,66.3],[8200,1137,2,66.1],[8300,1129,2,65.8],[8400,1121,2,65.6],[8500,1113,3,65.3],[8600,1104,3,65],[8700,1095,3,64.7],[8800,1086,3,64.4],[8900,1077,3,64.1],[9000,1068,3,63.8],[9100,1058,3,63.4],[9200,1048,3,63.1],[9300,1038,4,62.7],[9400,1028,4,62.3],[9500,1017,4,61.9],[9600,1005,4,61.5],[9700,994,4,61],[9800,982,5,60.5],[9900,969,5,60],[10000,956,6,59.5],[10100,942,6,58.9],[10200,927,6,58.3],[10300,911,7,57.6],[10400,893,8,56.8],[10500,874,10,56],[10600,852,12,54.9],[10700,826,15,53.7]]] +]], +["DPICM","m916",[ +["charge 1","chg1",[[2200,1236,6,35.9],[2300,1216,7,35.6],[2400,1194,8,35.2],[2500,1171,8,34.9],[2600,1147,10,34.5],[2700,1122,11,34.1],[2800,1095,12,33.6],[2900,1065,14,33.1],[3000,1032,17,32.4],[3100,995,21,31.7],[3200,949,28,30.7],[3300,886,44,29.2]]], +["charge 2","chg2",[[2500,1240,5,38.7],[2600,1222,6,38.4],[2700,1203,6,38.1],[2800,1183,7,37.8],[2900,1163,8,37.5],[3000,1142,8,37.1],[3100,1120,9,36.7],[3200,1096,11,36.3],[3300,1070,12,35.8],[3400,1043,14,35.2],[3500,1012,16,34.6],[3600,977,20,33.8],[3700,934,27,32.7],[3800,875,41,31.2]]], +["charge 3","chg3",[[2900,1244,4,42.3],[3000,1229,5,42.1],[3100,1213,5,41.8],[3200,1197,5,41.6],[3300,1180,6,41.3],[3400,1162,6,41],[3500,1144,7,40.6],[3600,1125,7,40.3],[3700,1106,8,39.9],[3800,1085,9,39.4],[3900,1062,10,39],[4000,1038,12,38.4],[4100,1012,13,37.8],[4200,983,16,37.1],[4300,949,20,36.2],[4400,908,26,35.1],[4500,847,44,33.4]]], +["charge 4","chg4",[[3500,1237,4,46.6],[3600,1224,4,46.4],[3700,1211,4,46.1],[3800,1197,4,45.9],[3900,1183,5,45.6],[4000,1168,5,45.4],[4100,1154,5,45.1],[4200,1138,6,44.7],[4300,1122,6,44.4],[4400,1105,6,44],[4500,1088,7,43.6],[4600,1069,8,43.2],[4700,1050,9,42.7],[4800,1029,10,42.2],[4900,1007,11,41.6],[5000,982,13,41],[5100,955,15,40.2],[5200,923,19,39.3],[5300,883,25,38.1],[5400,824,43,36.2]]], +["charge 5","chg5",[[4300,1240,3,52.8],[4400,1229,3,52.6],[4500,1219,3,52.4],[4600,1208,3,52.2],[4700,1197,3,52],[4800,1185,3,51.7],[4900,1174,4,51.5],[5000,1162,4,51.2],[5100,1149,4,50.9],[5200,1137,4,50.6],[5300,1124,4,50.3],[5400,1110,5,50],[5500,1097,5,49.6],[5600,1082,5,49.3],[5700,1067,6,48.9],[5800,1052,6,48.5],[5900,1035,7,48],[6000,1018,8,47.5],[6100,1000,8,47],[6200,980,9,46.4],[6300,958,11,45.7],[6400,935,13,45],[6500,908,15,44.1],[6600,875,19,43],[6700,832,28,41.5]]], +["charge 6","chg6",[[5400,1241,2,60.8],[5500,1233,2,60.6],[5600,1225,2,60.4],[5700,1216,2,60.2],[5800,1207,2,60],[5900,1199,2,59.8],[6000,1190,2,59.6],[6100,1181,2,59.4],[6200,1171,3,59.2],[6300,1162,3,58.9],[6400,1152,3,58.7],[6500,1142,3,58.4],[6600,1132,3,58.2],[6700,1122,3,57.9],[6800,1111,3,57.6],[6900,1101,4,57.3],[7000,1089,4,57],[7100,1078,4,56.6],[7200,1066,4,56.3],[7300,1054,4,55.9],[7400,1041,5,55.5],[7500,1028,5,55.1],[7600,1015,5,54.7],[7700,1000,6,54.2],[7800,985,6,53.7],[7900,969,7,53.1],[8000,952,8,52.5],[8100,934,9,51.9],[8200,914,10,51.2],[8300,892,11,50.3],[8400,867,14,49.3],[8500,836,18,48.1]]], +["charge 7","chg7",[[6900,1239,1,70.8],[7000,1233,1,70.6],[7100,1226,1,70.4],[7200,1219,1,70.3],[7300,1213,1,70.1],[7400,1206,2,69.9],[7500,1199,2,69.7],[7600,1192,2,69.5],[7700,1185,2,69.3],[7800,1178,2,69.1],[7900,1170,2,68.9],[8000,1163,2,68.7],[8100,1156,2,68.5],[8200,1148,2,68.3],[8300,1140,2,68],[8400,1132,2,67.8],[8500,1124,2,67.6],[8600,1116,2,67.3],[8700,1108,2,67],[8800,1099,2,66.8],[8900,1091,2,66.5],[9000,1082,3,66.2],[9100,1073,3,65.9],[9200,1064,3,65.6],[9300,1055,3,65.3],[9400,1045,3,64.9],[9500,1035,3,64.6],[9600,1025,4,64.2],[9700,1014,4,63.8],[9800,1003,4,63.4],[9900,992,4,63],[10000,981,4,62.5],[10100,969,5,62],[10200,956,5,61.5],[10300,943,5,61],[10400,929,6,60.4],[10500,914,6,59.8],[10600,898,7,59.2],[10700,881,8,58.4],[10800,863,9,57.6],[10900,841,11,56.6],[11000,817,13,55.5]]], +["charge 8","chg8",[[8300,1244,1,80.8],[8400,1239,1,80.7],[8500,1233,1,80.5],[8600,1228,1,80.4],[8700,1222,1,80.2],[8800,1217,1,80],[8900,1211,1,79.9],[9000,1206,1,79.7],[9100,1200,1,79.5],[9200,1194,1,79.4],[9300,1189,1,79.2],[9400,1183,1,79],[9500,1177,1,78.8],[9600,1171,1,78.6],[9700,1165,1,78.4],[9800,1159,1,78.2],[9900,1153,1,78],[10000,1146,1,77.8],[10100,1140,1,77.6],[10200,1134,1,77.4],[10300,1127,1,77.2],[10400,1121,2,77],[10500,1114,2,76.7],[10600,1107,2,76.5],[10700,1101,2,76.2],[10800,1094,2,76],[10900,1087,2,75.7],[11000,1080,2,75.5],[11100,1072,2,75.2],[11200,1065,2,74.9],[11300,1057,2,74.6],[11400,1050,2,74.3],[11500,1042,2,74],[11600,1034,2,73.7],[11700,1026,2,73.3],[11800,1018,2,73],[11900,1009,3,72.6],[12000,1000,3,72.3],[12100,992,3,71.9],[12200,982,3,71.5],[12300,973,3,71.1],[12400,963,3,70.7],[12500,953,3,70.2],[12600,943,3,69.8],[12700,932,4,69.3],[12800,921,4,68.8],[12900,910,4,68.2],[13000,898,5,67.6],[13100,885,5,67],[13200,871,5,66.4],[13300,857,6,65.6],[13400,841,7,64.8],[13500,824,7,64],[13600,805,9,63]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum", "DPICM"]; +_tableData_charges = ["charge 1", "charge 2", "charge 3", "charge 4", "charge 5", "charge 6", "charge 7", "charge 8"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m224_legacy.sqf b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m224_legacy.sqf new file mode 100644 index 0000000000..68d4686fd8 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/missions/ace_arty_rangeTables.Takistan/tables/m224_legacy.sqf @@ -0,0 +1,21 @@ +_tableData_tables = [ +["HE","ACE_1Rnd_60mmHE_M224",[ +["Close","",[[100,1483,11,13.3],[125,1453,14,13.2],[150,1422,18,13.2],[175,1391,21,13.1],[200,1359,25,13],[225,1326,30,12.9],[250,1291,34,12.7],[275,1255,40,12.6],[300,1216,47,12.4],[325,1175,56,12.2],[350,1129,66,12],[375,1078,81,11.6],[400,1015,105,11.2],[425,927,150,10.5]]], +["Medium","",[[400,1505,2,29.6],[450,1493,2,29.6],[500,1481,3,29.5],[550,1469,3,29.5],[600,1457,3,29.4],[650,1445,4,29.4],[700,1432,4,29.3],[750,1420,4,29.3],[800,1407,5,29.2],[850,1395,5,29.1],[900,1382,5,29],[950,1369,6,29],[1000,1356,6,28.9],[1050,1342,7,28.8],[1100,1329,7,28.7],[1150,1315,7,28.6],[1200,1301,8,28.4],[1250,1287,9,28.3],[1300,1272,9,28.2],[1350,1257,10,28],[1400,1242,11,27.9],[1450,1227,11,27.7],[1500,1211,12,27.6],[1550,1194,13,27.4],[1600,1177,14,27.2],[1650,1159,16,27],[1700,1141,17,26.7],[1750,1121,19,26.5],[1800,1101,20,26.2],[1850,1079,23,25.9],[1900,1056,25,25.6],[1950,1030,29,25.2],[2000,1001,34,24.7],[2050,968,41,24.2],[2100,926,54,23.4],[2150,862,84,22.2]]], +["Far","",[[1100,1506,1,49.3],[1200,1498,1,49.3],[1300,1489,1,49.2],[1400,1480,1,49.2],[1500,1472,1,49.1],[1600,1463,1,49.1],[1700,1454,1,49],[1800,1445,1,49],[1900,1436,1,48.9],[2000,1428,2,48.8],[2100,1419,2,48.7],[2200,1409,2,48.7],[2300,1400,2,48.6],[2400,1391,2,48.5],[2500,1382,2,48.4],[2600,1373,2,48.3],[2700,1363,2,48.2],[2800,1354,2,48.1],[2900,1344,2,48],[3000,1334,3,47.9],[3100,1324,3,47.7],[3200,1315,3,47.6],[3300,1304,3,47.5],[3400,1294,3,47.3],[3500,1284,3,47.2],[3600,1274,3,47],[3700,1263,4,46.8],[3800,1252,4,46.7],[3900,1241,4,46.5],[4000,1230,4,46.3],[4100,1218,4,46.1],[4200,1207,5,45.9],[4300,1195,5,45.7],[4400,1183,5,45.4],[4500,1170,6,45.2],[4600,1157,6,44.9],[4700,1144,6,44.6],[4800,1130,7,44.3],[4900,1116,7,44],[5000,1101,8,43.7],[5100,1085,8,43.3],[5200,1069,9,43],[5300,1052,10,42.5],[5400,1033,11,42],[5500,1013,13,41.5],[5600,991,14,40.9],[5700,966,17,40.2],[5800,938,21,39.4],[5900,901,29,38.3],[6000,840,53,36.4]]] +]], +["WP","ACE_1Rnd_60mmWP_M224",[ +["Close","",[[100,1483,11,13.3],[125,1453,14,13.2],[150,1422,18,13.2],[175,1391,21,13.1],[200,1359,25,13],[225,1326,30,12.9],[250,1291,34,12.7],[275,1255,40,12.6],[300,1216,47,12.4],[325,1175,56,12.2],[350,1129,66,12],[375,1078,81,11.6],[400,1015,105,11.2],[425,927,150,10.5]]], +["Medium","",[[400,1505,2,29.6],[450,1493,2,29.6],[500,1481,3,29.5],[550,1469,3,29.5],[600,1457,3,29.4],[650,1445,4,29.4],[700,1432,4,29.3],[750,1420,4,29.3],[800,1407,5,29.2],[850,1395,5,29.1],[900,1382,5,29],[950,1369,6,29],[1000,1356,6,28.9],[1050,1342,7,28.8],[1100,1329,7,28.7],[1150,1315,7,28.6],[1200,1301,8,28.4],[1250,1287,9,28.3],[1300,1272,9,28.2],[1350,1257,10,28],[1400,1242,11,27.9],[1450,1227,11,27.7],[1500,1211,12,27.6],[1550,1194,13,27.4],[1600,1177,14,27.2],[1650,1159,16,27],[1700,1141,17,26.7],[1750,1121,19,26.5],[1800,1101,20,26.2],[1850,1079,23,25.9],[1900,1056,25,25.6],[1950,1030,29,25.2],[2000,1001,34,24.7],[2050,968,41,24.2],[2100,926,54,23.4],[2150,862,84,22.2]]], +["Far","",[[1100,1506,1,49.3],[1200,1498,1,49.3],[1300,1489,1,49.2],[1400,1480,1,49.2],[1500,1472,1,49.1],[1600,1463,1,49.1],[1700,1454,1,49],[1800,1445,1,49],[1900,1436,1,48.9],[2000,1428,2,48.8],[2100,1419,2,48.7],[2200,1409,2,48.7],[2300,1400,2,48.6],[2400,1391,2,48.5],[2500,1382,2,48.4],[2600,1373,2,48.3],[2700,1363,2,48.2],[2800,1354,2,48.1],[2900,1344,2,48],[3000,1334,3,47.9],[3100,1324,3,47.7],[3200,1315,3,47.6],[3300,1304,3,47.5],[3400,1294,3,47.3],[3500,1284,3,47.2],[3600,1274,3,47],[3700,1263,4,46.8],[3800,1252,4,46.7],[3900,1241,4,46.5],[4000,1230,4,46.3],[4100,1218,4,46.1],[4200,1207,5,45.9],[4300,1195,5,45.7],[4400,1183,5,45.4],[4500,1170,6,45.2],[4600,1157,6,44.9],[4700,1144,6,44.6],[4800,1130,7,44.3],[4900,1116,7,44],[5000,1101,8,43.7],[5100,1085,8,43.3],[5200,1069,9,43],[5300,1052,10,42.5],[5400,1033,11,42],[5500,1013,13,41.5],[5600,991,14,40.9],[5700,966,17,40.2],[5800,938,21,39.4],[5900,901,29,38.3],[6000,840,53,36.4]]] +]], +["Illum","ACE_1Rnd_60mmILLUM_M224",[ +["Close","",[]], +["Medium","",[[350,1511,3,27.4],[400,1498,3,27.3],[450,1485,3,27.3],[500,1471,4,27.2],[550,1458,4,27.2],[600,1445,5,27.1],[650,1431,5,27],[700,1418,6,27],[750,1404,6,26.9],[800,1390,7,26.8],[850,1376,7,26.7],[900,1362,8,26.6],[950,1347,8,26.5],[1000,1332,9,26.4],[1050,1317,10,26.2],[1100,1301,10,26.1],[1150,1285,11,25.9],[1200,1269,12,25.8],[1250,1252,13,25.6],[1300,1235,15,25.4],[1350,1217,16,25.2],[1400,1198,17,25],[1450,1178,19,24.7],[1500,1158,21,24.4],[1550,1135,24,24.1],[1600,1112,28,23.8],[1650,1086,32,23.4],[1700,1056,38,22.9],[1750,1021,48,22.3],[1800,974,65,21.4]]], +["Far","",[[1000,1513,1,48.1],[1100,1504,1,48],[1200,1495,1,48],[1300,1486,1,47.9],[1400,1477,1,47.9],[1500,1468,1,47.8],[1600,1459,1,47.8],[1700,1450,1,47.7],[1800,1441,1,47.6],[1900,1432,2,47.6],[2000,1423,2,47.5],[2100,1413,2,47.4],[2200,1404,2,47.3],[2300,1395,2,47.2],[2400,1385,2,47.1],[2500,1375,2,47],[2600,1366,2,46.9],[2700,1356,2,46.8],[2800,1346,3,46.7],[2900,1336,3,46.6],[3000,1326,3,46.4],[3100,1316,3,46.3],[3200,1305,3,46.1],[3300,1295,3,46],[3400,1284,4,45.8],[3500,1273,4,45.7],[3600,1262,4,45.5],[3700,1251,4,45.3],[3800,1239,4,45.1],[3900,1228,5,44.9],[4000,1216,5,44.7],[4100,1203,5,44.4],[4200,1191,6,44.2],[4300,1178,6,44],[4400,1165,6,43.7],[4500,1151,7,43.4],[4600,1137,7,43.1],[4700,1122,8,42.7],[4800,1106,9,42.4],[4900,1090,9,42],[5000,1073,10,41.6],[5100,1054,11,41.1],[5200,1034,13,40.6],[5300,1013,15,40],[5400,988,17,39.3],[5500,959,22,38.5],[5600,923,29,37.3],[5700,861,56,35.3]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["Close", "Medium", "Far"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/script_component.hpp b/TO_MERGE/ace/arty_range_tables/script_component.hpp new file mode 100644 index 0000000000..b304e55736 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT sys_arty_range_tables +#include "\x\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_ARTY_RANGE_TABLES + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_ARTY_RANGE_TABLES + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_ARTY_RANGE_TABLES +#endif + +#include "\x\ace\addons\main\script_macros.hpp" diff --git a/TO_MERGE/ace/arty_range_tables/stringtable.xml b/TO_MERGE/ace/arty_range_tables/stringtable.xml new file mode 100644 index 0000000000..2cf7278b5b --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/stringtable.xml @@ -0,0 +1,19 @@ + + + + + +M119 Tabelle +M119 Range Table +M119 Range Table +M119 Balistické tabulky +M119 Range Table +Tabela balistyczna M119 +M119 Range Table +M119 Баллистические Таблицы +M119 Range Table + + + + + diff --git a/TO_MERGE/ace/arty_range_tables/tables/120_tampella.sqf b/TO_MERGE/ace/arty_range_tables/tables/120_tampella.sqf new file mode 100644 index 0000000000..0f7c07faf2 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/120_tampella.sqf @@ -0,0 +1,32 @@ +// 82mm Shell Ballistics (TODO) +// HE: Max Range with full increments : 6200 +// WP: Max Range (same ballistics as HE): 6200 (use same shell) [not much data found] +// ILLUM: Max Range: 2670 + +_tableData_tables = [ +["HE","he",[ +["charge 0","chg0",[[200,1497,5,1,20.3],[300,1445,7,1,20.1],[400,1390,10,1,19.9],[500,1332,14,1.1,19.7],[600,1271,18,1.1,19.3],[700,1203,24,1.2,18.9],[800,1124,34,1.4,18.2],[900,1024,54,1.7,17.2]]], +["charge 1","chg1",[[500,1496,2,0.7,32.4],[600,1475,2,0.7,32.3],[700,1454,3,0.7,32.2],[800,1432,3,0.7,32.1],[900,1410,4,0.7,32],[1000,1387,4,0.7,31.9],[1100,1364,5,0.7,31.7],[1200,1340,5,0.7,31.5],[1300,1316,6,0.7,31.3],[1400,1291,7,0.7,31.1],[1500,1265,8,0.8,30.8],[1600,1238,9,0.8,30.5],[1700,1209,10,0.8,30.2],[1800,1179,11,0.9,29.8],[1900,1147,13,0.9,29.4],[2000,1112,15,0.9,28.9],[2100,1073,18,1,28.4],[2200,1030,23,1.1,27.7],[2300,977,31,1.3,26.7],[2400,906,48,1.7,25.4]]], +["charge 2","chg2",[[700,1510,1,0.5,41.8],[800,1497,1,0.5,41.8],[900,1484,1,0.5,41.7],[1000,1470,1,0.5,41.6],[1100,1457,2,0.5,41.6],[1200,1443,2,0.5,41.5],[1300,1430,2,0.5,41.4],[1400,1416,2,0.5,41.3],[1500,1402,2,0.6,41.2],[1600,1388,2,0.6,41.1],[1700,1373,3,0.6,40.9],[1800,1359,3,0.6,40.8],[1900,1344,3,0.6,40.7],[2000,1329,3,0.6,40.5],[2100,1313,4,0.6,40.3],[2200,1298,4,0.6,40.2],[2300,1282,4,0.6,40],[2400,1265,4,0.6,39.8],[2500,1248,5,0.6,39.5],[2600,1231,5,0.6,39.3],[2700,1213,6,0.6,39],[2800,1194,6,0.7,38.7],[2900,1175,7,0.7,38.4],[3000,1155,8,0.7,38.1],[3100,1134,8,0.7,37.7],[3200,1111,9,0.8,37.3],[3300,1088,10,0.8,36.9],[3400,1063,11,0.8,36.4],[3500,1035,13,0.9,35.8],[3600,1005,16,0.9,35.2],[3700,971,19,1.1,34.4],[3800,930,25,1.2,33.4],[3900,874,37,1.6,32]]], +["charge 3","chg3",[[1000,1505,1,0.5,49.4],[1100,1495,1,0.5,49.3],[1200,1485,1,0.5,49.3],[1300,1476,1,0.5,49.3],[1400,1466,1,0.5,49.2],[1500,1456,1,0.5,49.1],[1600,1446,1,0.5,49],[1700,1436,1,0.5,49],[1800,1425,1,0.5,48.9],[1900,1415,1,0.5,48.8],[2000,1405,2,0.5,48.7],[2100,1394,2,0.5,48.6],[2200,1384,2,0.5,48.5],[2300,1373,2,0.5,48.4],[2400,1362,2,0.5,48.3],[2500,1351,2,0.5,48.2],[2600,1340,2,0.5,48],[2700,1329,2,0.5,47.9],[2800,1317,2,0.5,47.7],[2900,1306,3,0.5,47.6],[3000,1294,3,0.5,47.4],[3100,1282,3,0.5,47.2],[3200,1270,3,0.5,47.1],[3300,1257,3,0.5,46.9],[3400,1244,3,0.5,46.7],[3500,1231,4,0.5,46.5],[3600,1218,4,0.6,46.2],[3700,1205,4,0.6,46],[3800,1191,4,0.6,45.7],[3900,1176,5,0.6,45.5],[4000,1161,5,0.6,45.2],[4100,1146,5,0.6,44.9],[4200,1130,6,0.6,44.5],[4300,1114,6,0.6,44.2],[4400,1096,7,0.7,43.8],[4500,1078,7,0.7,43.4],[4600,1059,8,0.7,43],[4700,1039,9,0.8,42.5],[4800,1018,10,0.8,42],[4900,994,11,0.8,41.4],[5000,969,14,0.9,40.7],[5100,940,16,1,39.9],[5200,906,20,1.1,38.9],[5300,861,29,1.5,37.6]]], +["charge 4","chg4",[[1300,1510,0,0.4,59.2],[1400,1503,0,0.4,59.1],[1500,1496,1,0.4,59.1],[1600,1488,1,0.4,59],[1700,1481,1,0.4,59],[1800,1474,1,0.4,58.9],[1900,1467,1,0.4,58.9],[2000,1459,1,0.4,58.8],[2100,1452,1,0.4,58.8],[2200,1445,1,0.4,58.7],[2300,1437,1,0.4,58.6],[2400,1430,1,0.4,58.6],[2500,1422,1,0.4,58.5],[2600,1415,1,0.4,58.4],[2700,1407,1,0.4,58.3],[2800,1399,1,0.4,58.3],[2900,1392,1,0.4,58.2],[3000,1384,1,0.4,58.1],[3100,1376,1,0.4,58],[3200,1368,1,0.4,57.9],[3300,1360,1,0.4,57.8],[3400,1352,1,0.4,57.7],[3500,1344,1,0.4,57.5],[3600,1336,2,0.4,57.4],[3700,1327,2,0.4,57.3],[3800,1319,2,0.4,57.2],[3900,1310,2,0.4,57],[4000,1302,2,0.4,56.9],[4100,1293,2,0.4,56.8],[4200,1284,2,0.4,56.6],[4300,1275,2,0.5,56.5],[4400,1266,2,0.5,56.3],[4500,1257,2,0.5,56.1],[4600,1247,2,0.5,56],[4700,1238,2,0.5,55.8],[4800,1228,2,0.5,55.6],[4900,1218,3,0.5,55.4],[5000,1209,3,0.5,55.2],[5100,1198,3,0.5,55],[5200,1188,3,0.5,54.7],[5300,1177,3,0.5,54.5],[5400,1166,3,0.5,54.2],[5500,1156,3,0.5,54],[5600,1144,4,0.5,53.7],[5700,1132,4,0.5,53.4],[5800,1121,4,0.5,53.1],[5900,1108,4,0.6,52.8],[6000,1096,5,0.6,52.5],[6100,1083,5,0.6,52.1],[6200,1069,5,0.6,51.8],[6300,1055,6,0.6,51.4],[6400,1040,6,0.6,51],[6500,1025,6,0.6,50.5],[6600,1009,7,0.7,50],[6700,992,8,0.7,49.5],[6800,973,8,0.7,49],[6900,954,10,0.8,48.3],[7000,932,11,0.8,47.6],[7100,908,12,0.9,46.8],[7200,880,15,1,45.8],[7300,846,20,1.2,44.6]]] +]], +["WP","wp",[ +["charge 0","chg0",[[200,1497,5,1,20.3],[300,1445,7,1,20.1],[400,1390,10,1,19.9],[500,1332,14,1.1,19.7],[600,1271,18,1.1,19.3],[700,1203,24,1.2,18.9],[800,1124,34,1.4,18.2],[900,1024,54,1.7,17.2]]], +["charge 1","chg1",[[500,1496,2,0.7,32.4],[600,1475,2,0.7,32.3],[700,1454,3,0.7,32.2],[800,1432,3,0.7,32.1],[900,1410,4,0.7,32],[1000,1387,4,0.7,31.9],[1100,1364,5,0.7,31.7],[1200,1340,5,0.7,31.5],[1300,1316,6,0.7,31.3],[1400,1291,7,0.7,31.1],[1500,1265,8,0.8,30.8],[1600,1238,9,0.8,30.5],[1700,1209,10,0.8,30.2],[1800,1179,11,0.9,29.8],[1900,1147,13,0.9,29.4],[2000,1112,15,0.9,28.9],[2100,1073,18,1,28.4],[2200,1030,23,1.1,27.7],[2300,977,31,1.3,26.7],[2400,906,48,1.7,25.4]]], +["charge 2","chg2",[[700,1510,1,0.5,41.8],[800,1497,1,0.5,41.8],[900,1484,1,0.5,41.7],[1000,1470,1,0.5,41.6],[1100,1457,2,0.5,41.6],[1200,1443,2,0.5,41.5],[1300,1430,2,0.5,41.4],[1400,1416,2,0.5,41.3],[1500,1402,2,0.6,41.2],[1600,1388,2,0.6,41.1],[1700,1373,3,0.6,40.9],[1800,1359,3,0.6,40.8],[1900,1344,3,0.6,40.7],[2000,1329,3,0.6,40.5],[2100,1313,4,0.6,40.3],[2200,1298,4,0.6,40.2],[2300,1282,4,0.6,40],[2400,1265,4,0.6,39.8],[2500,1248,5,0.6,39.5],[2600,1231,5,0.6,39.3],[2700,1213,6,0.6,39],[2800,1194,6,0.7,38.7],[2900,1175,7,0.7,38.4],[3000,1155,8,0.7,38.1],[3100,1134,8,0.7,37.7],[3200,1111,9,0.8,37.3],[3300,1088,10,0.8,36.9],[3400,1063,11,0.8,36.4],[3500,1035,13,0.9,35.8],[3600,1005,16,0.9,35.2],[3700,971,19,1.1,34.4],[3800,930,25,1.2,33.4],[3900,874,37,1.6,32]]], +["charge 3","chg3",[[1000,1505,1,0.5,49.4],[1100,1495,1,0.5,49.3],[1200,1485,1,0.5,49.3],[1300,1476,1,0.5,49.3],[1400,1466,1,0.5,49.2],[1500,1456,1,0.5,49.1],[1600,1446,1,0.5,49],[1700,1436,1,0.5,49],[1800,1425,1,0.5,48.9],[1900,1415,1,0.5,48.8],[2000,1405,2,0.5,48.7],[2100,1394,2,0.5,48.6],[2200,1384,2,0.5,48.5],[2300,1373,2,0.5,48.4],[2400,1362,2,0.5,48.3],[2500,1351,2,0.5,48.2],[2600,1340,2,0.5,48],[2700,1329,2,0.5,47.9],[2800,1317,2,0.5,47.7],[2900,1306,3,0.5,47.6],[3000,1294,3,0.5,47.4],[3100,1282,3,0.5,47.2],[3200,1270,3,0.5,47.1],[3300,1257,3,0.5,46.9],[3400,1244,3,0.5,46.7],[3500,1231,4,0.5,46.5],[3600,1218,4,0.6,46.2],[3700,1205,4,0.6,46],[3800,1191,4,0.6,45.7],[3900,1176,5,0.6,45.5],[4000,1161,5,0.6,45.2],[4100,1146,5,0.6,44.9],[4200,1130,6,0.6,44.5],[4300,1114,6,0.6,44.2],[4400,1096,7,0.7,43.8],[4500,1078,7,0.7,43.4],[4600,1059,8,0.7,43],[4700,1039,9,0.8,42.5],[4800,1018,10,0.8,42],[4900,994,11,0.8,41.4],[5000,969,14,0.9,40.7],[5100,940,16,1,39.9],[5200,906,20,1.1,38.9],[5300,861,29,1.5,37.6]]], +["charge 4","chg4",[[1300,1510,0,0.4,59.2],[1400,1503,0,0.4,59.1],[1500,1496,1,0.4,59.1],[1600,1488,1,0.4,59],[1700,1481,1,0.4,59],[1800,1474,1,0.4,58.9],[1900,1467,1,0.4,58.9],[2000,1459,1,0.4,58.8],[2100,1452,1,0.4,58.8],[2200,1445,1,0.4,58.7],[2300,1437,1,0.4,58.6],[2400,1430,1,0.4,58.6],[2500,1422,1,0.4,58.5],[2600,1415,1,0.4,58.4],[2700,1407,1,0.4,58.3],[2800,1399,1,0.4,58.3],[2900,1392,1,0.4,58.2],[3000,1384,1,0.4,58.1],[3100,1376,1,0.4,58],[3200,1368,1,0.4,57.9],[3300,1360,1,0.4,57.8],[3400,1352,1,0.4,57.7],[3500,1344,1,0.4,57.5],[3600,1336,2,0.4,57.4],[3700,1327,2,0.4,57.3],[3800,1319,2,0.4,57.2],[3900,1310,2,0.4,57],[4000,1302,2,0.4,56.9],[4100,1293,2,0.4,56.8],[4200,1284,2,0.4,56.6],[4300,1275,2,0.5,56.5],[4400,1266,2,0.5,56.3],[4500,1257,2,0.5,56.1],[4600,1247,2,0.5,56],[4700,1238,2,0.5,55.8],[4800,1228,2,0.5,55.6],[4900,1218,3,0.5,55.4],[5000,1209,3,0.5,55.2],[5100,1198,3,0.5,55],[5200,1188,3,0.5,54.7],[5300,1177,3,0.5,54.5],[5400,1166,3,0.5,54.2],[5500,1156,3,0.5,54],[5600,1144,4,0.5,53.7],[5700,1132,4,0.5,53.4],[5800,1121,4,0.5,53.1],[5900,1108,4,0.6,52.8],[6000,1096,5,0.6,52.5],[6100,1083,5,0.6,52.1],[6200,1069,5,0.6,51.8],[6300,1055,6,0.6,51.4],[6400,1040,6,0.6,51],[6500,1025,6,0.6,50.5],[6600,1009,7,0.7,50],[6700,992,8,0.7,49.5],[6800,973,8,0.7,49],[6900,954,10,0.8,48.3],[7000,932,11,0.8,47.6],[7100,908,12,0.9,46.8],[7200,880,15,1,45.8],[7300,846,20,1.2,44.6]]] +]], +["ILLUM","illum",[ +["charge 0","chg0",[[200,1497,5,1,20.3],[300,1445,7,1,20.1],[400,1390,10,1,19.9],[500,1332,14,1.1,19.7],[600,1271,18,1.1,19.3],[700,1203,24,1.2,18.9],[800,1124,34,1.4,18.2],[900,1024,54,1.7,17.2]]], +["charge 1","chg1",[[500,1496,2,0.7,32.4],[600,1475,2,0.7,32.3],[700,1454,3,0.7,32.2],[800,1432,3,0.7,32.1],[900,1410,4,0.7,32],[1000,1387,4,0.7,31.9],[1100,1364,5,0.7,31.7],[1200,1340,5,0.7,31.5],[1300,1316,6,0.7,31.3],[1400,1291,7,0.7,31.1],[1500,1265,8,0.8,30.8],[1600,1238,9,0.8,30.5],[1700,1209,10,0.8,30.2],[1800,1179,11,0.9,29.8],[1900,1147,13,0.9,29.4],[2000,1112,15,0.9,28.9],[2100,1073,18,1,28.4],[2200,1030,23,1.1,27.7],[2300,977,31,1.3,26.7],[2400,906,48,1.7,25.4]]], +["charge 2","chg2",[[700,1510,1,0.5,41.8],[800,1497,1,0.5,41.8],[900,1484,1,0.5,41.7],[1000,1470,1,0.5,41.6],[1100,1457,2,0.5,41.6],[1200,1443,2,0.5,41.5],[1300,1430,2,0.5,41.4],[1400,1416,2,0.5,41.3],[1500,1402,2,0.6,41.2],[1600,1388,2,0.6,41.1],[1700,1373,3,0.6,40.9],[1800,1359,3,0.6,40.8],[1900,1344,3,0.6,40.7],[2000,1329,3,0.6,40.5],[2100,1313,4,0.6,40.3],[2200,1298,4,0.6,40.2],[2300,1282,4,0.6,40],[2400,1265,4,0.6,39.8],[2500,1248,5,0.6,39.5],[2600,1231,5,0.6,39.3],[2700,1213,6,0.6,39],[2800,1194,6,0.7,38.7],[2900,1175,7,0.7,38.4],[3000,1155,8,0.7,38.1],[3100,1134,8,0.7,37.7],[3200,1111,9,0.8,37.3],[3300,1088,10,0.8,36.9],[3400,1063,11,0.8,36.4],[3500,1035,13,0.9,35.8],[3600,1005,16,0.9,35.2],[3700,971,19,1.1,34.4],[3800,930,25,1.2,33.4],[3900,874,37,1.6,32]]], +["charge 3","chg3",[[1000,1505,1,0.5,49.4],[1100,1495,1,0.5,49.3],[1200,1485,1,0.5,49.3],[1300,1476,1,0.5,49.3],[1400,1466,1,0.5,49.2],[1500,1456,1,0.5,49.1],[1600,1446,1,0.5,49],[1700,1436,1,0.5,49],[1800,1425,1,0.5,48.9],[1900,1415,1,0.5,48.8],[2000,1405,2,0.5,48.7],[2100,1394,2,0.5,48.6],[2200,1384,2,0.5,48.5],[2300,1373,2,0.5,48.4],[2400,1362,2,0.5,48.3],[2500,1351,2,0.5,48.2],[2600,1340,2,0.5,48],[2700,1329,2,0.5,47.9],[2800,1317,2,0.5,47.7],[2900,1306,3,0.5,47.6],[3000,1294,3,0.5,47.4],[3100,1282,3,0.5,47.2],[3200,1270,3,0.5,47.1],[3300,1257,3,0.5,46.9],[3400,1244,3,0.5,46.7],[3500,1231,4,0.5,46.5],[3600,1218,4,0.6,46.2],[3700,1205,4,0.6,46],[3800,1191,4,0.6,45.7],[3900,1176,5,0.6,45.5],[4000,1161,5,0.6,45.2],[4100,1146,5,0.6,44.9],[4200,1130,6,0.6,44.5],[4300,1114,6,0.6,44.2],[4400,1096,7,0.7,43.8],[4500,1078,7,0.7,43.4],[4600,1059,8,0.7,43],[4700,1039,9,0.8,42.5],[4800,1018,10,0.8,42],[4900,994,11,0.8,41.4],[5000,969,14,0.9,40.7],[5100,940,16,1,39.9],[5200,906,20,1.1,38.9],[5300,861,29,1.5,37.6]]], +["charge 4","chg4",[[1300,1510,0,0.4,59.2],[1400,1503,0,0.4,59.1],[1500,1496,1,0.4,59.1],[1600,1488,1,0.4,59],[1700,1481,1,0.4,59],[1800,1474,1,0.4,58.9],[1900,1467,1,0.4,58.9],[2000,1459,1,0.4,58.8],[2100,1452,1,0.4,58.8],[2200,1445,1,0.4,58.7],[2300,1437,1,0.4,58.6],[2400,1430,1,0.4,58.6],[2500,1422,1,0.4,58.5],[2600,1415,1,0.4,58.4],[2700,1407,1,0.4,58.3],[2800,1399,1,0.4,58.3],[2900,1392,1,0.4,58.2],[3000,1384,1,0.4,58.1],[3100,1376,1,0.4,58],[3200,1368,1,0.4,57.9],[3300,1360,1,0.4,57.8],[3400,1352,1,0.4,57.7],[3500,1344,1,0.4,57.5],[3600,1336,2,0.4,57.4],[3700,1327,2,0.4,57.3],[3800,1319,2,0.4,57.2],[3900,1310,2,0.4,57],[4000,1302,2,0.4,56.9],[4100,1293,2,0.4,56.8],[4200,1284,2,0.4,56.6],[4300,1275,2,0.5,56.5],[4400,1266,2,0.5,56.3],[4500,1257,2,0.5,56.1],[4600,1247,2,0.5,56],[4700,1238,2,0.5,55.8],[4800,1228,2,0.5,55.6],[4900,1218,3,0.5,55.4],[5000,1209,3,0.5,55.2],[5100,1198,3,0.5,55],[5200,1188,3,0.5,54.7],[5300,1177,3,0.5,54.5],[5400,1166,3,0.5,54.2],[5500,1156,3,0.5,54],[5600,1144,4,0.5,53.7],[5700,1132,4,0.5,53.4],[5800,1121,4,0.5,53.1],[5900,1108,4,0.6,52.8],[6000,1096,5,0.6,52.5],[6100,1083,5,0.6,52.1],[6200,1069,5,0.6,51.8],[6300,1055,6,0.6,51.4],[6400,1040,6,0.6,51],[6500,1025,6,0.6,50.5],[6600,1009,7,0.7,50],[6700,992,8,0.7,49.5],[6800,973,8,0.7,49],[6900,954,10,0.8,48.3],[7000,932,11,0.8,47.6],[7100,908,12,0.9,46.8],[7200,880,15,1,45.8],[7300,846,20,1.2,44.6]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["charge 0", "charge 1", "charge 2", "charge 3", "charge 4"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/2b14.sqf b/TO_MERGE/ace/arty_range_tables/tables/2b14.sqf new file mode 100644 index 0000000000..8fec752548 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/2b14.sqf @@ -0,0 +1,35 @@ +// 82mm Shell Ballistics (TODO) +// HE: Max Range with full increments : 6200 +// WP: Max Range (same ballistics as HE): 6200 (use same shell) [not much data found] +// ILLUM: Max Range: 2670 + +_tableData_tables = [ +["HE","he",[ +["charge 0","chg0",[[100,1494,9,1.3,14.1],[200,1384,20,1.4,13.8],[300,1260,36,1.5,13.3],[400,1105,67,1.8,12.5]]], +["charge 1","chg1",[[300,1488,4,0.9,23.9],[400,1450,5,0.9,23.7],[500,1410,7,0.9,23.6],[600,1369,8,0.9,23.4],[700,1327,10,0.9,23.1],[800,1282,13,1,22.8],[900,1234,16,1,22.5],[1000,1182,20,1.1,22],[1100,1123,26,1.2,21.4],[1200,1053,36,1.4,20.6],[1300,960,57,1.7,19.4]]], +["charge 2","chg2",[[500,1492,2,0.7,31.7],[600,1470,3,0.7,31.6],[700,1447,3,0.7,31.5],[800,1424,3,0.7,31.4],[900,1401,4,0.7,31.2],[1000,1377,5,0.7,31.1],[1100,1353,5,0.7,30.9],[1200,1328,6,0.7,30.7],[1300,1302,7,0.7,30.5],[1400,1275,8,0.8,30.3],[1500,1248,9,0.8,30],[1600,1218,10,0.8,29.7],[1700,1188,11,0.8,29.3],[1800,1155,13,0.9,28.9],[1900,1119,15,0.9,28.4],[2000,1080,19,1,27.8],[2100,1035,23,1.1,27.2],[2200,981,31,1.3,26.2],[2300,909,48,1.7,24.9]]], +["charge 3","chg3",[[600,1507,1,0.6,37.9],[700,1492,1,0.6,37.8],[800,1476,2,0.6,37.8],[900,1460,2,0.6,37.7],[1000,1444,2,0.6,37.6],[1100,1427,2,0.6,37.5],[1200,1411,3,0.6,37.4],[1300,1394,3,0.6,37.3],[1400,1377,3,0.6,37.1],[1500,1359,4,0.6,37],[1600,1341,4,0.6,36.8],[1700,1323,4,0.6,36.7],[1800,1305,5,0.6,36.5],[1900,1286,5,0.6,36.3],[2000,1266,6,0.7,36],[2100,1246,6,0.7,35.8],[2200,1225,7,0.7,35.5],[2300,1203,7,0.7,35.2],[2400,1180,8,0.7,34.9],[2500,1157,9,0.8,34.5],[2600,1131,10,0.8,34.1],[2700,1105,12,0.8,33.7],[2800,1075,14,0.9,33.2],[2900,1044,16,0.9,32.6],[3000,1008,19,1,31.9],[3100,966,24,1.2,31.1],[3200,913,34,1.4,29.9],[3300,822,69,2.4,27.7]]], +["charge 4","chg4",[[800,1501,1,0.5,42.7],[900,1488,1,0.5,42.7],[1000,1476,1,0.5,42.6],[1100,1463,1,0.5,42.5],[1200,1450,2,0.5,42.5],[1300,1437,2,0.5,42.4],[1400,1424,2,0.5,42.3],[1500,1410,2,0.5,42.2],[1600,1397,2,0.5,42.1],[1700,1383,2,0.5,42],[1800,1369,3,0.6,41.8],[1900,1355,3,0.5,41.7],[2000,1341,3,0.5,41.6],[2100,1326,3,0.6,41.4],[2200,1312,4,0.6,41.2],[2300,1296,4,0.6,41],[2400,1281,4,0.6,40.9],[2500,1265,4,0.6,40.7],[2600,1249,5,0.6,40.4],[2700,1232,5,0.6,40.2],[2800,1215,5,0.6,39.9],[2900,1197,6,0.6,39.7],[3000,1179,6,0.7,39.4],[3100,1160,7,0.7,39.1],[3200,1140,7,0.7,38.7],[3300,1119,8,0.7,38.3],[3400,1096,9,0.7,37.9],[3500,1073,11,0.8,37.4],[3600,1048,12,0.8,36.9],[3700,1020,14,0.9,36.3],[3800,989,16,1,35.6],[3900,954,20,1.1,34.8],[4000,910,27,1.3,33.7],[4100,847,44,1.8,32]]], +["charge 5","chg5",[[900,1507,1,0.5,47.2],[1000,1497,1,0.5,47.1],[1100,1486,1,0.5,47.1],[1200,1475,1,0.5,47],[1300,1465,1,0.5,47],[1400,1454,1,0.5,46.9],[1500,1443,1,0.5,46.8],[1600,1432,1,0.5,46.8],[1700,1421,2,0.5,46.7],[1800,1410,2,0.5,46.6],[1900,1398,2,0.5,46.5],[2000,1387,2,0.5,46.4],[2100,1375,2,0.5,46.3],[2200,1364,2,0.5,46.1],[2300,1352,2,0.5,46],[2400,1340,2,0.5,45.9],[2500,1328,3,0.5,45.7],[2600,1315,3,0.5,45.6],[2700,1302,3,0.5,45.4],[2800,1290,3,0.5,45.2],[2900,1276,3,0.5,45.1],[3000,1263,3,0.5,44.9],[3100,1249,4,0.6,44.7],[3200,1236,4,0.6,44.4],[3300,1221,4,0.6,44.2],[3400,1206,5,0.6,44],[3500,1191,5,0.6,43.7],[3600,1176,5,0.6,43.4],[3700,1160,6,0.6,43.1],[3800,1143,6,0.6,42.8],[3900,1126,6,0.6,42.5],[4000,1108,7,0.7,42.1],[4100,1089,8,0.7,41.7],[4200,1069,9,0.7,41.2],[4300,1047,9,0.7,40.8],[4400,1024,11,0.8,40.2],[4500,999,13,0.9,39.6],[4600,972,15,0.9,38.9],[4700,940,18,1.1,38.1],[4800,903,23,1.2,37.1],[4900,852,34,1.6,35.6]]], +["charge 6","chg6",[[1000,1510,1,0.4,50.9],[1100,1500,1,0.4,50.8],[1200,1491,1,0.5,50.8],[1300,1482,1,0.5,50.7],[1400,1473,1,0.5,50.6],[1500,1463,1,0.5,50.6],[1600,1454,1,0.5,50.5],[1700,1444,1,0.5,50.5],[1800,1435,1,0.5,50.4],[1900,1425,1,0.5,50.3],[2000,1415,1,0.5,50.2],[2100,1405,1,0.5,50.1],[2200,1395,2,0.5,50],[2300,1385,2,0.5,49.9],[2400,1375,2,0.5,49.8],[2500,1365,2,0.5,49.7],[2600,1354,2,0.5,49.6],[2700,1344,2,0.5,49.5],[2800,1333,2,0.5,49.3],[2900,1322,2,0.5,49.2],[3000,1311,2,0.5,49],[3100,1300,3,0.5,48.9],[3200,1289,3,0.5,48.7],[3300,1277,3,0.5,48.6],[3400,1265,3,0.5,48.4],[3500,1254,3,0.5,48.2],[3600,1241,3,0.5,48],[3700,1229,3,0.5,47.8],[3800,1216,4,0.5,47.5],[3900,1203,4,0.5,47.3],[4000,1190,4,0.6,47.1],[4100,1176,4,0.6,46.8],[4200,1162,5,0.6,46.5],[4300,1148,5,0.6,46.2],[4400,1133,5,0.6,45.9],[4500,1117,6,0.6,45.6],[4600,1101,6,0.6,45.2],[4700,1084,7,0.6,44.8],[4800,1066,7,0.7,44.4],[4900,1047,8,0.7,43.9],[5000,1028,9,0.7,43.4],[5100,1006,10,0.8,42.9],[5200,983,12,0.9,42.3],[5300,958,13,0.9,41.6],[5400,929,16,1,40.7],[5500,894,20,1.1,39.7],[5600,849,30,1.5,38.3]]] +]], +["WP","wp",[ +["charge 0","chg0",[[100,1494,9,1.3,14.1],[200,1384,20,1.4,13.8],[300,1260,36,1.5,13.3],[400,1105,67,1.8,12.5]]], +["charge 1","chg1",[[300,1488,4,0.9,23.9],[400,1450,5,0.9,23.7],[500,1410,7,0.9,23.6],[600,1369,8,0.9,23.4],[700,1327,10,0.9,23.1],[800,1282,13,1,22.8],[900,1234,16,1,22.5],[1000,1182,20,1.1,22],[1100,1123,26,1.2,21.4],[1200,1053,36,1.4,20.6],[1300,960,57,1.7,19.4]]], +["charge 2","chg2",[[500,1492,2,0.7,31.7],[600,1470,3,0.7,31.6],[700,1447,3,0.7,31.5],[800,1424,3,0.7,31.4],[900,1401,4,0.7,31.2],[1000,1377,5,0.7,31.1],[1100,1353,5,0.7,30.9],[1200,1328,6,0.7,30.7],[1300,1302,7,0.7,30.5],[1400,1275,8,0.8,30.3],[1500,1248,9,0.8,30],[1600,1218,10,0.8,29.7],[1700,1188,11,0.8,29.3],[1800,1155,13,0.9,28.9],[1900,1119,15,0.9,28.4],[2000,1080,19,1,27.8],[2100,1035,23,1.1,27.2],[2200,981,31,1.3,26.2],[2300,909,48,1.7,24.9]]], +["charge 3","chg3",[[600,1507,1,0.6,37.9],[700,1492,1,0.6,37.8],[800,1476,2,0.6,37.8],[900,1460,2,0.6,37.7],[1000,1444,2,0.6,37.6],[1100,1427,2,0.6,37.5],[1200,1411,3,0.6,37.4],[1300,1394,3,0.6,37.3],[1400,1377,3,0.6,37.1],[1500,1359,4,0.6,37],[1600,1341,4,0.6,36.8],[1700,1323,4,0.6,36.7],[1800,1305,5,0.6,36.5],[1900,1286,5,0.6,36.3],[2000,1266,6,0.7,36],[2100,1246,6,0.7,35.8],[2200,1225,7,0.7,35.5],[2300,1203,7,0.7,35.2],[2400,1180,8,0.7,34.9],[2500,1157,9,0.8,34.5],[2600,1131,10,0.8,34.1],[2700,1105,12,0.8,33.7],[2800,1075,14,0.9,33.2],[2900,1044,16,0.9,32.6],[3000,1008,19,1,31.9],[3100,966,24,1.2,31.1],[3200,913,34,1.4,29.9],[3300,822,69,2.4,27.7]]], +["charge 4","chg4",[[800,1501,1,0.5,42.7],[900,1488,1,0.5,42.7],[1000,1476,1,0.5,42.6],[1100,1463,1,0.5,42.5],[1200,1450,2,0.5,42.5],[1300,1437,2,0.5,42.4],[1400,1424,2,0.5,42.3],[1500,1410,2,0.5,42.2],[1600,1397,2,0.5,42.1],[1700,1383,2,0.5,42],[1800,1369,3,0.6,41.8],[1900,1355,3,0.5,41.7],[2000,1341,3,0.5,41.6],[2100,1326,3,0.6,41.4],[2200,1312,4,0.6,41.2],[2300,1296,4,0.6,41],[2400,1281,4,0.6,40.9],[2500,1265,4,0.6,40.7],[2600,1249,5,0.6,40.4],[2700,1232,5,0.6,40.2],[2800,1215,5,0.6,39.9],[2900,1197,6,0.6,39.7],[3000,1179,6,0.7,39.4],[3100,1160,7,0.7,39.1],[3200,1140,7,0.7,38.7],[3300,1119,8,0.7,38.3],[3400,1096,9,0.7,37.9],[3500,1073,11,0.8,37.4],[3600,1048,12,0.8,36.9],[3700,1020,14,0.9,36.3],[3800,989,16,1,35.6],[3900,954,20,1.1,34.8],[4000,910,27,1.3,33.7],[4100,847,44,1.8,32]]], +["charge 5","chg5",[[900,1507,1,0.5,47.2],[1000,1497,1,0.5,47.1],[1100,1486,1,0.5,47.1],[1200,1475,1,0.5,47],[1300,1465,1,0.5,47],[1400,1454,1,0.5,46.9],[1500,1443,1,0.5,46.8],[1600,1432,1,0.5,46.8],[1700,1421,2,0.5,46.7],[1800,1410,2,0.5,46.6],[1900,1398,2,0.5,46.5],[2000,1387,2,0.5,46.4],[2100,1375,2,0.5,46.3],[2200,1364,2,0.5,46.1],[2300,1352,2,0.5,46],[2400,1340,2,0.5,45.9],[2500,1328,3,0.5,45.7],[2600,1315,3,0.5,45.6],[2700,1302,3,0.5,45.4],[2800,1290,3,0.5,45.2],[2900,1276,3,0.5,45.1],[3000,1263,3,0.5,44.9],[3100,1249,4,0.6,44.7],[3200,1236,4,0.6,44.4],[3300,1221,4,0.6,44.2],[3400,1206,5,0.6,44],[3500,1191,5,0.6,43.7],[3600,1176,5,0.6,43.4],[3700,1160,6,0.6,43.1],[3800,1143,6,0.6,42.8],[3900,1126,6,0.6,42.5],[4000,1108,7,0.7,42.1],[4100,1089,8,0.7,41.7],[4200,1069,9,0.7,41.2],[4300,1047,9,0.7,40.8],[4400,1024,11,0.8,40.2],[4500,999,13,0.9,39.6],[4600,972,15,0.9,38.9],[4700,940,18,1.1,38.1],[4800,903,23,1.2,37.1],[4900,852,34,1.6,35.6]]], +["charge 6","chg6",[[1000,1510,1,0.4,50.9],[1100,1500,1,0.4,50.8],[1200,1491,1,0.5,50.8],[1300,1482,1,0.5,50.7],[1400,1473,1,0.5,50.6],[1500,1463,1,0.5,50.6],[1600,1454,1,0.5,50.5],[1700,1444,1,0.5,50.5],[1800,1435,1,0.5,50.4],[1900,1425,1,0.5,50.3],[2000,1415,1,0.5,50.2],[2100,1405,1,0.5,50.1],[2200,1395,2,0.5,50],[2300,1385,2,0.5,49.9],[2400,1375,2,0.5,49.8],[2500,1365,2,0.5,49.7],[2600,1354,2,0.5,49.6],[2700,1344,2,0.5,49.5],[2800,1333,2,0.5,49.3],[2900,1322,2,0.5,49.2],[3000,1311,2,0.5,49],[3100,1300,3,0.5,48.9],[3200,1289,3,0.5,48.7],[3300,1277,3,0.5,48.6],[3400,1265,3,0.5,48.4],[3500,1254,3,0.5,48.2],[3600,1241,3,0.5,48],[3700,1229,3,0.5,47.8],[3800,1216,4,0.5,47.5],[3900,1203,4,0.5,47.3],[4000,1190,4,0.6,47.1],[4100,1176,4,0.6,46.8],[4200,1162,5,0.6,46.5],[4300,1148,5,0.6,46.2],[4400,1133,5,0.6,45.9],[4500,1117,6,0.6,45.6],[4600,1101,6,0.6,45.2],[4700,1084,7,0.6,44.8],[4800,1066,7,0.7,44.4],[4900,1047,8,0.7,43.9],[5000,1028,9,0.7,43.4],[5100,1006,10,0.8,42.9],[5200,983,12,0.9,42.3],[5300,958,13,0.9,41.6],[5400,929,16,1,40.7],[5500,894,20,1.1,39.7],[5600,849,30,1.5,38.3]]] +]], +["ILLUM","illum",[ +["charge 0","chg0",[[100,1474,13,1.5,12.8],[200,1338,29,1.6,12.5],[300,1178,57,1.8,11.8],[400,893,177,2.9,9.9]]], +["charge 1","chg1",[[300,1495,3,0.8,24.6],[400,1458,4,0.8,24.5],[500,1422,6,0.9,24.4],[600,1384,7,0.9,24.2],[700,1344,9,0.9,24],[800,1303,11,0.9,23.7],[900,1259,13,1,23.4],[1000,1212,16,1,23],[1100,1161,21,1.1,22.5],[1200,1103,27,1.2,21.9],[1300,1033,37,1.4,21],[1400,935,63,1.9,19.7]]], +["charge 2","chg2",[[500,1493,2,0.7,31.8],[600,1471,2,0.7,31.8],[700,1449,3,0.7,31.7],[800,1426,3,0.7,31.6],[900,1403,4,0.7,31.4],[1000,1380,4,0.7,31.3],[1100,1356,5,0.7,31.1],[1200,1331,6,0.7,30.9],[1300,1306,7,0.7,30.7],[1400,1279,7,0.8,30.5],[1500,1252,8,0.8,30.2],[1600,1223,10,0.8,29.9],[1700,1193,11,0.8,29.5],[1800,1161,13,0.9,29.1],[1900,1126,15,0.9,28.7],[2000,1088,18,1,28.1],[2100,1046,22,1.1,27.5],[2200,995,28,1.2,26.6],[2300,929,42,1.5,25.4]]], +["charge 3","chg3",[[600,1507,1,0.6,37.7],[700,1491,1,0.6,37.7],[800,1475,2,0.6,37.6],[900,1459,2,0.6,37.5],[1000,1442,2,0.6,37.4],[1100,1426,2,0.6,37.3],[1200,1409,3,0.6,37.2],[1300,1392,3,0.6,37.1],[1400,1375,3,0.6,37],[1500,1357,4,0.6,36.8],[1600,1339,4,0.6,36.7],[1700,1321,4,0.6,36.5],[1800,1302,5,0.6,36.3],[1900,1283,5,0.6,36.1],[2000,1263,6,0.7,35.8],[2100,1242,6,0.7,35.6],[2200,1221,7,0.7,35.3],[2300,1199,8,0.7,35],[2400,1176,8,0.7,34.7],[2500,1152,9,0.8,34.3],[2600,1126,11,0.8,33.9],[2700,1098,12,0.8,33.5],[2800,1068,14,0.9,32.9],[2900,1036,16,1,32.3],[3000,999,20,1.1,31.6],[3100,954,27,1.3,30.7],[3200,896,38,1.6,29.4]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["charge 0", "charge 1", "charge 2", "charge 3", "charge 4"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/2b14_legacy.sqf b/TO_MERGE/ace/arty_range_tables/tables/2b14_legacy.sqf new file mode 100644 index 0000000000..bc5505be9c --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/2b14_legacy.sqf @@ -0,0 +1,21 @@ +_tableData_tables = [ +["HE","ACE_1Rnd_82mmHE_2B14",[ +["Close","",[[100,1497,9,1.3,14.2],[125,1471,11,1.3,14.1],[150,1445,14,1.3,14.1],[175,1418,16,1.4,14],[200,1390,19,1.4,13.9],[225,1362,22,1.4,13.9],[250,1333,26,1.4,13.8],[275,1303,29,1.5,13.7],[300,1272,34,1.5,13.5],[325,1239,39,1.6,13.4],[350,1205,45,1.6,13.2],[375,1167,52,1.7,13],[400,1127,61,1.8,12.7],[425,1082,73,1.9,12.4],[450,1028,91,2.1,12.1],[475,961,121,2.4,11.5]]], +["Medium","",[[350,1510,2,0.7,28.4],[400,1497,3,0.7,28.4],[450,1484,3,0.7,28.3],[500,1471,3,0.7,28.3],[550,1458,4,0.7,28.3],[600,1445,4,0.7,28.2],[650,1431,4,0.7,28.1],[700,1418,5,0.7,28.1],[750,1404,5,0.7,28],[800,1390,6,0.7,27.9],[850,1376,6,0.8,27.8],[900,1362,6,0.8,27.8],[950,1348,7,0.8,27.7],[1000,1333,8,0.8,27.5],[1050,1318,8,0.8,27.4],[1100,1303,9,0.8,27.3],[1150,1288,9,0.8,27.2],[1200,1272,10,0.8,27.1],[1250,1256,11,0.8,26.9],[1300,1239,12,0.9,26.7],[1350,1222,13,0.9,26.6],[1400,1205,14,0.9,26.4],[1450,1186,15,0.9,26.2],[1500,1168,16,0.9,26],[1550,1148,18,1,25.8],[1600,1127,19,1,25.5],[1650,1105,22,1.1,25.2],[1700,1082,24,1.1,24.9],[1750,1056,27,1.2,24.6],[1800,1028,31,1.3,24.1],[1850,997,37,1.4,23.7],[1900,960,47,1.6,23.1],[1950,912,62,1.9,22.3]]], +["Far","",[[800,1499,1,0.5,40.6],[900,1487,1,0.5,40.5],[1000,1474,2,0.5,40.5],[1100,1461,2,0.5,40.4],[1200,1448,2,0.5,40.3],[1300,1435,2,0.5,40.2],[1400,1422,2,0.5,40.1],[1500,1408,2,0.5,40],[1600,1395,3,0.5,39.9],[1700,1381,3,0.5,39.8],[1800,1367,3,0.5,39.7],[1900,1353,3,0.5,39.6],[2000,1339,4,0.6,39.4],[2100,1324,4,0.6,39.3],[2200,1310,4,0.6,39.1],[2300,1295,5,0.6,38.9],[2400,1280,5,0.6,38.8],[2500,1264,5,0.6,38.6],[2600,1248,6,0.6,38.3],[2700,1231,6,0.6,38.1],[2800,1215,7,0.6,37.9],[2900,1197,7,0.6,37.6],[3000,1179,8,0.7,37.3],[3100,1160,8,0.7,37],[3200,1140,9,0.7,36.7],[3300,1120,10,0.7,36.3],[3400,1098,12,0.8,35.9],[3500,1074,13,0.8,35.5],[3600,1049,15,0.9,34.9],[3700,1021,17,1,34.3],[3800,989,21,1.1,33.6],[3900,951,27,1.2,32.7],[4000,899,41,1.6,31.5]]] +]], +["WP","ACE_1Rnd_82mmWP_2B14",[ +["Close","",[[100,1497,9,1.3,14.2],[125,1471,11,1.3,14.1],[150,1445,14,1.3,14.1],[175,1418,16,1.4,14],[200,1390,19,1.4,13.9],[225,1362,22,1.4,13.9],[250,1333,26,1.4,13.8],[275,1303,29,1.5,13.7],[300,1272,34,1.5,13.5],[325,1239,39,1.6,13.4],[350,1205,45,1.6,13.2],[375,1167,52,1.7,13],[400,1127,61,1.8,12.7],[425,1082,73,1.9,12.4],[450,1028,91,2.1,12.1],[475,961,121,2.4,11.5]]], +["Medium","",[[350,1510,2,0.7,28.4],[400,1497,3,0.7,28.4],[450,1484,3,0.7,28.3],[500,1471,3,0.7,28.3],[550,1458,4,0.7,28.3],[600,1445,4,0.7,28.2],[650,1431,4,0.7,28.1],[700,1418,5,0.7,28.1],[750,1404,5,0.7,28],[800,1390,6,0.7,27.9],[850,1376,6,0.8,27.8],[900,1362,6,0.8,27.8],[950,1348,7,0.8,27.7],[1000,1333,8,0.8,27.5],[1050,1318,8,0.8,27.4],[1100,1303,9,0.8,27.3],[1150,1288,9,0.8,27.2],[1200,1272,10,0.8,27.1],[1250,1256,11,0.8,26.9],[1300,1239,12,0.9,26.7],[1350,1222,13,0.9,26.6],[1400,1205,14,0.9,26.4],[1450,1186,15,0.9,26.2],[1500,1168,16,0.9,26],[1550,1148,18,1,25.8],[1600,1127,19,1,25.5],[1650,1105,22,1.1,25.2],[1700,1082,24,1.1,24.9],[1750,1056,27,1.2,24.6],[1800,1028,31,1.3,24.1],[1850,997,37,1.4,23.7],[1900,960,47,1.6,23.1],[1950,912,62,1.9,22.3]]], +["Far","",[[800,1499,1,0.5,40.6],[900,1487,1,0.5,40.5],[1000,1474,2,0.5,40.5],[1100,1461,2,0.5,40.4],[1200,1448,2,0.5,40.3],[1300,1435,2,0.5,40.2],[1400,1422,2,0.5,40.1],[1500,1408,2,0.5,40],[1600,1395,3,0.5,39.9],[1700,1381,3,0.5,39.8],[1800,1367,3,0.5,39.7],[1900,1353,3,0.5,39.6],[2000,1339,4,0.6,39.4],[2100,1324,4,0.6,39.3],[2200,1310,4,0.6,39.1],[2300,1295,5,0.6,38.9],[2400,1280,5,0.6,38.8],[2500,1264,5,0.6,38.6],[2600,1248,6,0.6,38.3],[2700,1231,6,0.6,38.1],[2800,1215,7,0.6,37.9],[2900,1197,7,0.6,37.6],[3000,1179,8,0.7,37.3],[3100,1160,8,0.7,37],[3200,1140,9,0.7,36.7],[3300,1120,10,0.7,36.3],[3400,1098,12,0.8,35.9],[3500,1074,13,0.8,35.5],[3600,1049,15,0.9,34.9],[3700,1021,17,1,34.3],[3800,989,21,1.1,33.6],[3900,951,27,1.2,32.7],[4000,899,41,1.6,31.5]]] +]], +["Illum","ACE_1Rnd_82mmILLUM_2B14",[ +["Close","",[]], +["Medium","",[[350,1502,3,0.8,26],[400,1488,4,0.8,26],[450,1474,4,0.8,25.9],[500,1459,4,0.9,25.9],[550,1445,5,0.9,25.8],[600,1430,6,0.9,25.7],[650,1415,6,0.9,25.7],[700,1400,7,0.9,25.6],[750,1384,7,0.9,25.5],[800,1369,8,0.9,25.4],[850,1353,9,0.9,25.3],[900,1337,10,0.9,25.1],[950,1320,11,1,25],[1000,1303,11,1,24.9],[1050,1286,13,1,24.7],[1100,1268,14,1,24.5],[1150,1250,15,1,24.3],[1200,1230,17,1.1,24.1],[1250,1210,18,1.1,23.9],[1300,1189,20,1.2,23.6],[1350,1167,23,1.2,23.4],[1400,1143,26,1.3,23],[1450,1117,30,1.4,22.7],[1500,1088,35,1.5,22.2],[1550,1055,42,1.6,21.7],[1600,1015,55,1.9,21],[1650,832,206,5.3,17.2]]], +["Far","",[[700,1509,1,0.5,39],[800,1495,1,0.5,39],[900,1482,2,0.5,38.9],[1000,1469,2,0.5,38.9],[1100,1455,2,0.6,38.8],[1200,1441,2,0.6,38.7],[1300,1428,2,0.6,38.6],[1400,1414,3,0.6,38.5],[1500,1400,3,0.6,38.4],[1600,1386,3,0.6,38.3],[1700,1371,3,0.6,38.1],[1800,1356,4,0.6,38],[1900,1342,4,0.6,37.8],[2000,1326,4,0.6,37.7],[2100,1311,5,0.6,37.5],[2200,1295,5,0.6,37.3],[2300,1279,6,0.6,37.1],[2400,1263,6,0.6,36.9],[2500,1246,7,0.7,36.6],[2600,1228,7,0.7,36.4],[2700,1210,8,0.7,36.1],[2800,1191,8,0.7,35.8],[2900,1171,9,0.7,35.5],[3000,1151,11,0.8,35.1],[3100,1129,12,0.8,34.7],[3200,1105,13,0.9,34.3],[3300,1080,15,0.9,33.7],[3400,1052,18,1,33.2],[3500,1020,22,1.1,32.4],[3600,981,28,1.3,31.5],[3700,928,43,1.8,30.2]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["Close", "Medium", "Far"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/d30_legacy.sqf b/TO_MERGE/ace/arty_range_tables/tables/d30_legacy.sqf new file mode 100644 index 0000000000..dce3baee1d --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/d30_legacy.sqf @@ -0,0 +1,21 @@ +_tableData_tables = [ +["HE","30Rnd_122mmHE_D30",[ +["Close","",[[4500,1240,4,0.5,49.8],[4600,1230,4,0.5,49.7],[4700,1220,4,0.5,49.5],[4800,1210,4,0.5,49.3],[4900,1200,4,0.5,49.1],[5000,1189,4,0.5,48.9],[5100,1178,5,0.5,48.6],[5200,1167,5,0.5,48.4],[5300,1156,5,0.5,48.2],[5400,1145,5,0.5,47.9],[5500,1133,6,0.6,47.6],[5600,1120,6,0.6,47.3],[5700,1107,7,0.6,47],[5800,1094,7,0.6,46.7],[5900,1081,7,0.6,46.4],[6000,1066,8,0.6,46],[6100,1051,9,0.7,45.6],[6200,1035,10,0.7,45.2],[6300,1018,11,0.8,44.7],[6400,1000,12,0.8,44.2],[6500,979,14,0.9,43.6],[6600,957,16,1,42.9],[6700,930,20,1.1,42.1],[6800,897,27,1.4,41],[6900,843,47,2.1,39.1]]], +["Medium","",[[6900,1240,2,0.4,61.8],[7000,1234,2,0.4,61.6],[7100,1227,2,0.4,61.5],[7200,1221,3,0.4,61.3],[7300,1214,3,0.4,61.2],[7400,1208,3,0.4,61],[7500,1201,3,0.4,60.8],[7600,1194,3,0.4,60.7],[7700,1187,3,0.4,60.5],[7800,1180,3,0.4,60.3],[7900,1173,3,0.4,60.1],[8000,1166,3,0.4,59.9],[8100,1159,3,0.4,59.7],[8200,1151,4,0.4,59.5],[8300,1144,4,0.4,59.3],[8400,1136,4,0.4,59.1],[8500,1128,4,0.5,58.9],[8600,1120,4,0.5,58.6],[8700,1112,4,0.5,58.4],[8800,1103,4,0.5,58.1],[8900,1094,5,0.5,57.9],[9000,1086,5,0.5,57.6],[9100,1076,5,0.5,57.3],[9200,1067,5,0.5,57],[9300,1057,6,0.5,56.7],[9400,1047,6,0.6,56.4],[9500,1037,6,0.6,56],[9600,1026,7,0.6,55.6],[9700,1014,7,0.6,55.2],[9800,1002,8,0.6,54.8],[9900,990,9,0.7,54.3],[10000,976,9,0.7,53.9],[10100,961,10,0.8,53.3],[10200,945,12,0.8,52.7],[10300,927,14,0.9,52],[10400,906,16,1,51.1],[10500,879,23,1.3,50],[10600,838,37,2,48.2]]], +["Far","",[[10000,1241,2,0.3,74.4],[10100,1236,2,0.3,74.3],[10200,1232,2,0.3,74.2],[10300,1228,2,0.3,74.1],[10400,1223,2,0.3,73.9],[10500,1219,2,0.3,73.8],[10600,1214,2,0.3,73.7],[10700,1210,2,0.3,73.6],[10800,1205,2,0.3,73.4],[10900,1200,2,0.3,73.3],[11000,1196,2,0.3,73.1],[11100,1191,2,0.3,73],[11200,1186,2,0.3,72.8],[11300,1181,2,0.3,72.7],[11400,1177,2,0.3,72.5],[11500,1172,2,0.4,72.4],[11600,1167,2,0.4,72.2],[11700,1162,2,0.4,72.1],[11800,1157,2,0.4,71.9],[11900,1151,2,0.4,71.7],[12000,1146,2,0.4,71.6],[12100,1141,3,0.4,71.4],[12200,1135,3,0.4,71.2],[12300,1130,3,0.4,71],[12400,1125,3,0.4,70.8],[12500,1119,3,0.4,70.6],[12600,1113,3,0.4,70.4],[12700,1107,3,0.4,70.2],[12800,1102,3,0.4,70],[12900,1096,3,0.4,69.8],[13000,1090,3,0.4,69.6],[13100,1084,3,0.4,69.3],[13200,1077,4,0.4,69.1],[13300,1071,4,0.4,68.8],[13400,1064,4,0.4,68.6],[13500,1057,4,0.5,68.3],[13600,1050,4,0.5,68],[13700,1043,4,0.5,67.8],[13800,1036,4,0.5,67.4],[13900,1028,5,0.5,67.1],[14000,1021,5,0.5,66.8],[14100,1013,5,0.5,66.5],[14200,1005,5,0.5,66.1],[14300,996,5,0.5,65.8],[14400,987,6,0.6,65.4],[14500,978,6,0.6,65],[14600,968,7,0.6,64.5],[14700,957,7,0.6,64],[14800,946,8,0.7,63.5],[14900,933,9,0.8,62.9],[15000,920,10,0.8,62.3],[15100,905,12,0.9,61.6],[15200,888,15,1.1,60.7],[15300,865,19,1.3,59.6],[15400,831,31,2,57.7]]] +]], +["WP","30Rnd_122mmWP_D30",[ +["Close","",[[4500,1240,4,0.5,49.8],[4600,1230,4,0.5,49.7],[4700,1220,4,0.5,49.5],[4800,1210,4,0.5,49.3],[4900,1200,4,0.5,49.1],[5000,1189,4,0.5,48.9],[5100,1178,5,0.5,48.6],[5200,1167,5,0.5,48.4],[5300,1156,5,0.5,48.2],[5400,1145,5,0.5,47.9],[5500,1133,6,0.6,47.6],[5600,1120,6,0.6,47.3],[5700,1107,7,0.6,47],[5800,1094,7,0.6,46.7],[5900,1081,7,0.6,46.4],[6000,1066,8,0.6,46],[6100,1051,9,0.7,45.6],[6200,1035,10,0.7,45.2],[6300,1018,11,0.8,44.7],[6400,1000,12,0.8,44.2],[6500,979,14,0.9,43.6],[6600,957,16,1,42.9],[6700,930,20,1.1,42.1],[6800,897,27,1.4,41],[6900,843,47,2.1,39.1]]], +["Medium","",[[6900,1240,2,0.4,61.8],[7000,1234,2,0.4,61.6],[7100,1227,2,0.4,61.5],[7200,1221,3,0.4,61.3],[7300,1214,3,0.4,61.2],[7400,1208,3,0.4,61],[7500,1201,3,0.4,60.8],[7600,1194,3,0.4,60.7],[7700,1187,3,0.4,60.5],[7800,1180,3,0.4,60.3],[7900,1173,3,0.4,60.1],[8000,1166,3,0.4,59.9],[8100,1159,3,0.4,59.7],[8200,1151,4,0.4,59.5],[8300,1144,4,0.4,59.3],[8400,1136,4,0.4,59.1],[8500,1128,4,0.5,58.9],[8600,1120,4,0.5,58.6],[8700,1112,4,0.5,58.4],[8800,1103,4,0.5,58.1],[8900,1094,5,0.5,57.9],[9000,1086,5,0.5,57.6],[9100,1076,5,0.5,57.3],[9200,1067,5,0.5,57],[9300,1057,6,0.5,56.7],[9400,1047,6,0.6,56.4],[9500,1037,6,0.6,56],[9600,1026,7,0.6,55.6],[9700,1014,7,0.6,55.2],[9800,1002,8,0.6,54.8],[9900,990,9,0.7,54.3],[10000,976,9,0.7,53.9],[10100,961,10,0.8,53.3],[10200,945,12,0.8,52.7],[10300,927,14,0.9,52],[10400,906,16,1,51.1],[10500,879,23,1.3,50],[10600,838,37,2,48.2]]], +["Far","",[[10000,1241,2,0.3,74.4],[10100,1236,2,0.3,74.3],[10200,1232,2,0.3,74.2],[10300,1228,2,0.3,74.1],[10400,1223,2,0.3,73.9],[10500,1219,2,0.3,73.8],[10600,1214,2,0.3,73.7],[10700,1210,2,0.3,73.6],[10800,1205,2,0.3,73.4],[10900,1200,2,0.3,73.3],[11000,1196,2,0.3,73.1],[11100,1191,2,0.3,73],[11200,1186,2,0.3,72.8],[11300,1181,2,0.3,72.7],[11400,1177,2,0.3,72.5],[11500,1172,2,0.4,72.4],[11600,1167,2,0.4,72.2],[11700,1162,2,0.4,72.1],[11800,1157,2,0.4,71.9],[11900,1151,2,0.4,71.7],[12000,1146,2,0.4,71.6],[12100,1141,3,0.4,71.4],[12200,1135,3,0.4,71.2],[12300,1130,3,0.4,71],[12400,1125,3,0.4,70.8],[12500,1119,3,0.4,70.6],[12600,1113,3,0.4,70.4],[12700,1107,3,0.4,70.2],[12800,1102,3,0.4,70],[12900,1096,3,0.4,69.8],[13000,1090,3,0.4,69.6],[13100,1084,3,0.4,69.3],[13200,1077,4,0.4,69.1],[13300,1071,4,0.4,68.8],[13400,1064,4,0.4,68.6],[13500,1057,4,0.5,68.3],[13600,1050,4,0.5,68],[13700,1043,4,0.5,67.8],[13800,1036,4,0.5,67.4],[13900,1028,5,0.5,67.1],[14000,1021,5,0.5,66.8],[14100,1013,5,0.5,66.5],[14200,1005,5,0.5,66.1],[14300,996,5,0.5,65.8],[14400,987,6,0.6,65.4],[14500,978,6,0.6,65],[14600,968,7,0.6,64.5],[14700,957,7,0.6,64],[14800,946,8,0.7,63.5],[14900,933,9,0.8,62.9],[15000,920,10,0.8,62.3],[15100,905,12,0.9,61.6],[15200,888,15,1.1,60.7],[15300,865,19,1.3,59.6],[15400,831,31,2,57.7]]] +]], +["Illum","30Rnd_122mmILLUM_D30",[ +["Close","",[[4400,1238,4,0.5,48.6],[4500,1228,4,0.5,48.4],[4600,1218,4,0.5,48.2],[4700,1207,4,0.5,48],[4800,1197,5,0.5,47.7],[4900,1186,5,0.5,47.5],[5000,1174,5,0.6,47.3],[5100,1163,6,0.6,47],[5200,1151,6,0.6,46.7],[5300,1139,6,0.6,46.5],[5400,1126,7,0.6,46.1],[5500,1113,7,0.6,45.8],[5600,1099,8,0.6,45.5],[5700,1085,8,0.6,45.1],[5800,1070,9,0.7,44.7],[5900,1054,10,0.7,44.3],[6000,1036,11,0.8,43.8],[6100,1018,13,0.9,43.3],[6200,998,14,0.9,42.7],[6300,976,17,1,42],[6400,949,20,1.2,41.1],[6500,916,28,1.4,40],[6600,859,50,2.3,38.1]]], +["Medium","",[[6800,1239,2,0.4,60.7],[6900,1233,3,0.4,60.6],[7000,1226,3,0.4,60.4],[7100,1220,3,0.4,60.3],[7200,1213,3,0.4,60.1],[7300,1206,3,0.4,59.9],[7400,1199,3,0.4,59.8],[7500,1192,3,0.4,59.6],[7600,1185,3,0.4,59.4],[7700,1178,3,0.4,59.2],[7800,1171,3,0.4,59],[7900,1163,3,0.4,58.8],[8000,1156,4,0.4,58.6],[8100,1148,4,0.5,58.4],[8200,1140,4,0.5,58.2],[8300,1132,4,0.5,57.9],[8400,1124,4,0.5,57.7],[8500,1115,5,0.5,57.4],[8600,1107,5,0.5,57.2],[8700,1098,5,0.5,56.9],[8800,1088,5,0.5,56.6],[8900,1079,6,0.5,56.3],[9000,1069,6,0.6,56],[9100,1059,6,0.6,55.7],[9200,1049,6,0.6,55.3],[9300,1038,7,0.6,54.9],[9400,1027,8,0.6,54.5],[9500,1015,8,0.7,54.1],[9600,1002,9,0.7,53.6],[9700,988,10,0.7,53.1],[9800,973,11,0.8,52.6],[9900,957,12,0.9,52],[10000,939,14,1,51.2],[10100,918,18,1.1,50.4],[10200,891,23,1.4,49.3],[10300,849,39,2.1,47.4]]], +["Far","",[[9900,1240,2,0.3,73.6],[10000,1236,2,0.3,73.5],[10100,1231,2,0.3,73.3],[10200,1227,2,0.3,73.2],[10300,1222,2,0.3,73.1],[10400,1218,2,0.3,72.9],[10500,1213,2,0.3,72.8],[10600,1209,2,0.3,72.7],[10700,1204,2,0.3,72.5],[10800,1199,2,0.3,72.4],[10900,1194,2,0.3,72.2],[11000,1190,2,0.3,72.1],[11100,1185,2,0.3,72],[11200,1180,2,0.4,71.8],[11300,1175,2,0.4,71.6],[11400,1170,2,0.4,71.5],[11500,1165,2,0.4,71.3],[11600,1160,2,0.4,71.1],[11700,1154,2,0.4,71],[11800,1149,3,0.4,70.8],[11900,1144,3,0.4,70.6],[12000,1138,3,0.4,70.4],[12100,1133,3,0.4,70.2],[12200,1127,3,0.4,70],[12300,1122,3,0.4,69.8],[12400,1116,3,0.4,69.6],[12500,1110,3,0.4,69.4],[12600,1104,3,0.4,69.2],[12700,1098,3,0.4,69],[12800,1092,3,0.4,68.7],[12900,1085,3,0.4,68.5],[13000,1079,4,0.4,68.3],[13100,1072,4,0.4,68],[13200,1066,4,0.5,67.7],[13300,1059,4,0.5,67.5],[13400,1052,4,0.5,67.2],[13500,1044,5,0.5,66.9],[13600,1037,5,0.5,66.6],[13700,1029,5,0.5,66.3],[13800,1021,5,0.5,65.9],[13900,1013,5,0.5,65.6],[14000,1004,6,0.6,65.2],[14100,995,6,0.6,64.8],[14200,986,7,0.6,64.4],[14300,976,7,0.7,63.9],[14400,965,8,0.7,63.4],[14500,954,9,0.7,62.9],[14600,942,9,0.8,62.3],[14700,929,11,0.8,61.7],[14800,914,12,0.9,61],[14900,896,15,1.1,60.1],[15000,875,19,1.3,59],[15100,840,33,2.1,57.1]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["Close", "Medium", "Far"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/m119.sqf b/TO_MERGE/ace/arty_range_tables/tables/m119.sqf new file mode 100644 index 0000000000..a7dbee7c99 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/m119.sqf @@ -0,0 +1,44 @@ +_tableData_tables = [ +["HE","m1",[ +["charge 1","chg1",[[2200,1243,6,0.7,36.5],[2300,1223,6,0.7,36.3],[2400,1202,7,0.7,36],[2500,1180,8,0.7,35.7],[2600,1157,9,0.7,35.3],[2700,1133,10,0.8,34.9],[2800,1107,11,0.8,34.5],[2900,1079,13,0.9,34],[3000,1050,14,0.9,33.4],[3100,1016,17,1,32.8],[3200,977,22,1.1,32],[3300,931,29,1.3,31],[3400,864,47,1.8,29.4]]], +["charge 2","chg2",[[2600,1227,5,0.6,39.1],[2700,1209,6,0.6,38.8],[2800,1190,6,0.7,38.5],[2900,1171,7,0.7,38.2],[3000,1150,8,0.7,37.9],[3100,1129,9,0.7,37.5],[3200,1106,9,0.7,37.1],[3300,1082,11,0.8,36.6],[3400,1056,12,0.8,36.1],[3500,1028,14,0.9,35.5],[3600,997,17,1,34.9],[3700,961,20,1.1,34],[3800,917,27,1.3,33],[3900,853,45,1.8,31.3]]], +["charge 3","chg3",[[3000,1233,4,0.6,42.7],[3100,1218,5,0.6,42.5],[3200,1202,5,0.6,42.2],[3300,1186,5,0.6,41.9],[3400,1169,6,0.6,41.6],[3500,1151,6,0.7,41.3],[3600,1133,7,0.7,41],[3700,1114,8,0.7,40.6],[3800,1094,8,0.7,40.2],[3900,1072,9,0.7,39.7],[4000,1050,10,0.8,39.2],[4100,1025,12,0.8,38.7],[4200,998,14,0.9,38.1],[4300,969,16,1,37.3],[4400,934,20,1.1,36.4],[4500,890,28,1.4,35.3],[4600,823,49,2,33.4]]], +["charge 4","chg4",[[3500,1241,4,0.5,47.2],[3600,1228,4,0.5,46.9],[3700,1215,4,0.6,46.7],[3800,1201,4,0.6,46.5],[3900,1188,4,0.6,46.2],[4000,1173,5,0.6,46],[4100,1159,5,0.6,45.7],[4200,1144,5,0.6,45.4],[4300,1128,6,0.6,45],[4400,1112,6,0.6,44.7],[4500,1095,7,0.7,44.3],[4600,1077,7,0.7,43.9],[4700,1058,8,0.7,43.5],[4800,1039,9,0.7,43],[4900,1017,10,0.8,42.4],[5000,995,11,0.8,41.9],[5100,970,13,0.9,41.2],[5200,941,16,1,40.4],[5300,909,19,1.1,39.5],[5400,866,27,1.4,38.2]]], +["charge 5","chg5",[[4300,1242,3,0.5,53.3],[4400,1232,3,0.5,53.1],[4500,1222,3,0.5,52.9],[4600,1211,3,0.5,52.7],[4700,1200,3,0.5,52.5],[4800,1189,3,0.5,52.2],[4900,1177,3,0.5,52],[5000,1165,4,0.5,51.7],[5100,1153,4,0.5,51.5],[5200,1141,4,0.5,51.2],[5300,1128,4,0.6,50.9],[5400,1115,5,0.6,50.6],[5500,1102,5,0.6,50.2],[5600,1088,5,0.6,49.9],[5700,1073,6,0.6,49.5],[5800,1058,6,0.6,49.1],[5900,1042,7,0.6,48.7],[6000,1026,7,0.7,48.2],[6100,1008,8,0.7,47.7],[6200,989,9,0.7,47.2],[6300,969,10,0.8,46.6],[6400,947,11,0.8,45.9],[6500,923,13,0.9,45.1],[6600,895,16,1,44.2],[6700,861,20,1.2,43],[6800,812,32,1.7,41.3]]], +["charge 6","chg6",[[5400,1243,2,0.4,61.2],[5500,1235,2,0.4,61],[5600,1227,2,0.4,60.9],[5700,1218,2,0.4,60.7],[5800,1210,2,0.4,60.5],[5900,1201,2,0.5,60.3],[6000,1192,2,0.5,60.1],[6100,1183,2,0.5,59.9],[6200,1174,2,0.5,59.6],[6300,1165,3,0.5,59.4],[6400,1155,3,0.5,59.2],[6500,1145,3,0.5,58.9],[6600,1135,3,0.5,58.7],[6700,1125,3,0.5,58.4],[6800,1115,3,0.5,58.1],[6900,1104,3,0.5,57.8],[7000,1093,4,0.5,57.5],[7100,1082,4,0.5,57.2],[7200,1070,4,0.5,56.8],[7300,1058,4,0.6,56.5],[7400,1046,5,0.6,56.1],[7500,1033,5,0.6,55.7],[7600,1020,5,0.6,55.3],[7700,1006,6,0.6,54.8],[7800,992,6,0.6,54.3],[7900,976,6,0.7,53.8],[8000,960,7,0.7,53.3],[8100,943,8,0.7,52.7],[8200,924,9,0.8,52],[8300,904,10,0.8,51.2],[8400,880,12,0.9,50.3],[8500,854,15,1.1,49.3],[8600,821,19,1.2,48]]], +["charge 7","chg7",[[6900,1241,1,0.4,71.2],[7000,1234,1,0.4,71],[7100,1228,1,0.4,70.8],[7200,1221,1,0.4,70.7],[7300,1214,1,0.4,70.5],[7400,1207,1,0.4,70.3],[7500,1201,2,0.4,70.1],[7600,1194,2,0.4,70],[7700,1187,2,0.4,69.8],[7800,1179,2,0.4,69.6],[7900,1172,2,0.4,69.4],[8000,1165,2,0.4,69.1],[8100,1157,2,0.4,68.9],[8200,1150,2,0.4,68.7],[8300,1142,2,0.4,68.5],[8400,1134,2,0.4,68.2],[8500,1126,2,0.4,68],[8600,1118,2,0.4,67.7],[8700,1110,2,0.4,67.5],[8800,1102,2,0.4,67.2],[8900,1093,2,0.5,66.9],[9000,1085,3,0.5,66.7],[9100,1076,3,0.5,66.4],[9200,1067,3,0.5,66.1],[9300,1057,3,0.5,65.7],[9400,1048,3,0.5,65.4],[9500,1038,3,0.5,65.1],[9600,1028,3,0.5,64.7],[9700,1018,3,0.5,64.3],[9800,1007,4,0.5,63.9],[9900,996,4,0.5,63.5],[10000,985,4,0.5,63.1],[10100,973,5,0.6,62.6],[10200,961,5,0.6,62.1],[10300,948,5,0.6,61.6],[10400,935,5,0.6,61.1],[10500,921,6,0.6,60.5],[10600,905,6,0.7,59.9],[10700,889,7,0.7,59.2],[10800,872,8,0.7,58.4],[10900,852,9,0.8,57.5],[11000,830,11,0.9,56.5],[11100,803,14,1.1,55.3]]], +["charge 8","chg8",[[8400,1240,1,0.4,81],[8500,1234,1,0.4,80.9],[8600,1229,1,0.4,80.7],[8700,1223,1,0.4,80.6],[8800,1218,1,0.4,80.4],[8900,1212,1,0.4,80.3],[9000,1207,1,0.4,80.1],[9100,1201,1,0.4,79.9],[9200,1196,1,0.4,79.7],[9300,1190,1,0.4,79.6],[9400,1184,1,0.4,79.4],[9500,1178,1,0.4,79.2],[9600,1172,1,0.4,79],[9700,1166,1,0.4,78.8],[9800,1160,1,0.4,78.6],[9900,1154,1,0.4,78.4],[10000,1148,1,0.4,78.2],[10100,1142,1,0.4,78],[10200,1135,1,0.4,77.8],[10300,1129,1,0.4,77.6],[10400,1122,1,0.4,77.3],[10500,1116,2,0.4,77.1],[10600,1109,2,0.4,76.9],[10700,1102,2,0.4,76.6],[10800,1095,2,0.4,76.4],[10900,1088,2,0.4,76.1],[11000,1081,2,0.4,75.9],[11100,1074,2,0.4,75.6],[11200,1067,2,0.4,75.3],[11300,1059,2,0.4,75],[11400,1052,2,0.4,74.7],[11500,1044,2,0.4,74.4],[11600,1036,2,0.4,74.1],[11700,1028,2,0.4,73.8],[11800,1020,2,0.4,73.5],[11900,1012,2,0.5,73.1],[12000,1003,3,0.5,72.7],[12100,994,3,0.5,72.4],[12200,985,3,0.5,72],[12300,976,3,0.5,71.6],[12400,966,3,0.5,71.2],[12500,957,3,0.5,70.7],[12600,947,3,0.5,70.3],[12700,936,3,0.5,69.8],[12800,925,4,0.5,69.3],[12900,914,4,0.6,68.8],[13000,902,4,0.6,68.2],[13100,890,4,0.6,67.6],[13200,877,5,0.6,67],[13300,863,5,0.6,66.3],[13400,848,6,0.7,65.6],[13500,832,7,0.7,64.8],[13600,814,8,0.8,63.8]]] +]], +["WP","m84a1",[ +["charge 1","chg1",[[2200,1230,7,0.7,35.1],[2300,1208,8,0.7,34.8],[2400,1185,9,0.8,34.5],[2500,1162,10,0.8,34.1],[2600,1136,11,0.8,33.7],[2700,1110,12,0.9,33.2],[2800,1080,14,0.9,32.7],[2900,1048,17,1,32.1],[3000,1012,21,1.1,31.3],[3100,967,28,1.3,30.3],[3200,907,42,1.7,28.9]]], +["charge 2","chg2",[[2500,1234,6,0.7,38],[2600,1215,6,0.7,37.7],[2700,1196,7,0.7,37.4],[2800,1176,8,0.7,37.1],[2900,1155,8,0.7,36.8],[3000,1133,9,0.8,36.4],[3100,1109,10,0.8,35.9],[3200,1084,12,0.9,35.4],[3300,1057,14,0.9,34.9],[3400,1027,16,1,34.2],[3500,992,20,1.1,33.5],[3600,951,26,1.3,32.5],[3700,895,39,1.7,31.1]]], +["charge 3","chg3",[[2900,1239,5,0.6,41.7],[3000,1224,5,0.6,41.5],[3100,1207,5,0.6,41.2],[3200,1191,6,0.6,40.9],[3300,1174,6,0.7,40.6],[3400,1156,7,0.7,40.3],[3500,1137,7,0.7,39.9],[3600,1117,8,0.7,39.5],[3700,1096,9,0.8,39.1],[3800,1074,10,0.8,38.6],[3900,1051,11,0.8,38.1],[4000,1025,13,0.9,37.5],[4100,996,16,1,36.8],[4200,963,19,1.1,36],[4300,924,25,1.3,34.9],[4400,868,40,1.8,33.3]]], +["charge 4","chg4",[[3500,1233,4,0.6,46],[3600,1220,4,0.6,45.8],[3700,1206,4,0.6,45.6],[3800,1192,5,0.6,45.3],[3900,1178,5,0.6,45],[4000,1163,5,0.6,44.7],[4100,1148,6,0.6,44.4],[4200,1132,6,0.6,44.1],[4300,1115,7,0.7,43.7],[4400,1098,7,0.7,43.3],[4500,1080,8,0.7,42.9],[4600,1061,9,0.7,42.5],[4700,1040,10,0.8,41.9],[4800,1018,11,0.8,41.4],[4900,994,12,0.9,40.7],[5000,967,15,1,40],[5100,937,18,1.1,39.1],[5200,899,24,1.3,38],[5300,845,38,1.8,36.3]]], +["charge 5","chg5",[[4300,1237,3,0.5,52.3],[4400,1226,3,0.5,52.1],[4500,1215,3,0.5,51.9],[4600,1204,3,0.5,51.7],[4700,1193,3,0.5,51.4],[4800,1182,4,0.5,51.2],[4900,1170,4,0.5,50.9],[5000,1158,4,0.5,50.6],[5100,1145,4,0.6,50.4],[5200,1132,5,0.6,50.1],[5300,1119,5,0.6,49.7],[5400,1105,5,0.6,49.4],[5500,1091,5,0.6,49],[5600,1076,6,0.6,48.6],[5700,1061,6,0.6,48.2],[5800,1045,7,0.7,47.8],[5900,1028,7,0.7,47.3],[6000,1010,8,0.7,46.8],[6100,990,9,0.8,46.2],[6200,969,11,0.8,45.6],[6300,946,12,0.9,44.8],[6400,920,14,1,44],[6500,890,18,1.1,43],[6600,849,26,1.5,41.5]]], +["charge 6","chg6",[[5400,1239,2,0.4,60.3],[5500,1231,2,0.4,60.2],[5600,1223,2,0.4,60],[5700,1214,2,0.4,59.8],[5800,1205,2,0.5,59.6],[5900,1196,2,0.5,59.4],[6000,1187,3,0.5,59.1],[6100,1178,3,0.5,58.9],[6200,1169,3,0.5,58.7],[6300,1159,3,0.5,58.4],[6400,1149,3,0.5,58.2],[6500,1139,3,0.5,57.9],[6600,1129,3,0.5,57.7],[6700,1119,3,0.5,57.4],[6800,1108,4,0.5,57.1],[6900,1097,4,0.5,56.8],[7000,1086,4,0.5,56.4],[7100,1074,4,0.5,56.1],[7200,1062,4,0.6,55.7],[7300,1049,5,0.6,55.3],[7400,1036,5,0.6,54.9],[7500,1023,5,0.6,54.5],[7600,1009,6,0.6,54],[7700,994,6,0.6,53.5],[7800,979,7,0.7,53],[7900,962,7,0.7,52.4],[8000,944,8,0.7,51.8],[8100,925,9,0.8,51.1],[8200,904,11,0.9,50.3],[8300,879,13,1,49.3],[8400,850,17,1.2,48.2],[8500,811,25,1.5,46.6]]], +["charge 7","chg7",[[6900,1238,1,0.4,70.4],[7000,1231,1,0.4,70.2],[7100,1225,1,0.4,70],[7200,1218,1,0.4,69.9],[7300,1211,1,0.4,69.7],[7400,1204,2,0.4,69.5],[7500,1197,2,0.4,69.3],[7600,1190,2,0.4,69.1],[7700,1183,2,0.4,68.9],[7800,1176,2,0.4,68.7],[7900,1169,2,0.4,68.5],[8000,1161,2,0.4,68.3],[8100,1154,2,0.4,68.1],[8200,1146,2,0.4,67.8],[8300,1138,2,0.4,67.6],[8400,1130,2,0.4,67.4],[8500,1122,2,0.4,67.1],[8600,1114,2,0.4,66.9],[8700,1106,2,0.4,66.6],[8800,1097,2,0.5,66.3],[8900,1088,3,0.5,66],[9000,1079,3,0.5,65.7],[9100,1070,3,0.5,65.4],[9200,1061,3,0.5,65.1],[9300,1051,3,0.5,64.8],[9400,1042,3,0.5,64.4],[9500,1032,3,0.5,64],[9600,1021,4,0.5,63.7],[9700,1011,4,0.5,63.3],[9800,1000,4,0.5,62.9],[9900,988,4,0.6,62.4],[10000,976,4,0.6,62],[10100,964,5,0.6,61.5],[10200,951,5,0.6,60.9],[10300,937,6,0.6,60.4],[10400,923,6,0.7,59.8],[10500,908,7,0.7,59.1],[10600,891,7,0.7,58.4],[10700,873,8,0.8,57.6],[10800,853,10,0.9,56.7],[10900,829,12,1,55.6],[11000,801,16,1.2,54.3]]] +]], +["Illum","m314a3",[ +["charge 1","chg1",[[2000,1241,8,0.8,32.6],[2100,1218,10,0.9,32.2],[2200,1193,11,0.9,31.8],[2300,1167,13,1,31.4],[2400,1138,15,1,30.9],[2500,1107,17,1.1,30.3],[2600,1071,22,1.3,29.5],[2700,1029,28,1.4,28.6],[2800,971,44,1.9,27.2]]], +["charge 2","chg2",[[2400,1226,7,0.8,35.4],[2500,1205,8,0.8,35.1],[2600,1184,9,0.8,34.7],[2700,1161,10,0.9,34.3],[2800,1136,12,0.9,33.8],[2900,1110,14,1,33.3],[3000,1081,16,1.1,32.7],[3100,1049,19,1.2,31.9],[3200,1010,25,1.4,31],[3300,960,37,1.7,29.7]]], +["charge 3","chg3",[[2800,1234,6,0.7,39.4],[2900,1217,6,0.7,39.1],[3000,1200,7,0.7,38.8],[3100,1181,7,0.7,38.4],[3200,1162,8,0.8,38.1],[3300,1142,9,0.8,37.7],[3400,1121,10,0.8,37.2],[3500,1099,11,0.9,36.7],[3600,1074,13,0.9,36.2],[3700,1047,15,1,35.5],[3800,1017,19,1.1,34.7],[3900,981,23,1.3,33.8],[4000,933,34,1.7,32.4]]], +["charge 4","chg4",[[3300,1244,4,0.6,44.2],[3400,1230,4,0.6,43.9],[3500,1216,5,0.6,43.7],[3600,1201,5,0.6,43.4],[3700,1186,6,0.7,43.1],[3800,1171,6,0.7,42.8],[3900,1155,6,0.7,42.4],[4000,1138,7,0.7,42.1],[4100,1121,7,0.7,41.7],[4200,1103,8,0.7,41.3],[4300,1083,9,0.8,40.8],[4400,1062,10,0.8,40.3],[4500,1040,12,0.9,39.7],[4600,1015,13,1,39],[4700,987,17,1.1,38.2],[4800,954,21,1.2,37.2],[4900,912,30,1.6,35.9]]], +["charge 5","chg5",[[4200,1236,3,0.5,50.4],[4300,1225,3,0.5,50.2],[4400,1213,3,0.5,50],[4500,1202,4,0.5,49.7],[4600,1190,4,0.6,49.5],[4700,1178,4,0.6,49.2],[4800,1165,4,0.6,48.9],[4900,1153,5,0.6,48.6],[5000,1139,5,0.6,48.3],[5100,1126,5,0.6,48],[5200,1112,6,0.7,47.6],[5300,1097,6,0.7,47.2],[5400,1082,7,0.7,46.8],[5500,1065,7,0.7,46.4],[5600,1048,8,0.7,45.9],[5700,1030,9,0.8,45.4],[5800,1011,10,0.8,44.8],[5900,990,11,0.9,44.1],[6000,966,13,1,43.4],[6100,939,16,1.1,42.5],[6200,908,20,1.3,41.4],[6300,863,31,1.7,39.7]]], +["charge 6","chg6",[[5300,1240,2,0.5,58.7],[5400,1231,2,0.5,58.5],[5500,1222,2,0.5,58.3],[5600,1213,2,0.5,58.1],[5700,1204,3,0.5,57.9],[5800,1195,3,0.5,57.7],[5900,1186,3,0.5,57.5],[6000,1176,3,0.5,57.2],[6100,1167,3,0.5,57],[6200,1157,3,0.5,56.7],[6300,1147,3,0.5,56.4],[6400,1136,3,0.5,56.2],[6500,1126,4,0.5,55.9],[6600,1115,4,0.5,55.5],[6700,1104,4,0.5,55.2],[6800,1092,4,0.6,54.9],[6900,1080,5,0.6,54.5],[7000,1068,5,0.6,54.2],[7100,1055,5,0.6,53.7],[7200,1042,6,0.6,53.3],[7300,1028,6,0.7,52.9],[7400,1013,6,0.7,52.4],[7500,998,7,0.7,51.8],[7600,981,8,0.7,51.3],[7700,964,9,0.8,50.6],[7800,945,10,0.8,49.9],[7900,923,11,0.9,49.1],[8000,899,14,1,48.2],[8100,871,17,1.2,47.1],[8200,832,25,1.6,45.4]]], +["charge 7","chg7",[[6800,1239,1,0.4,68.9],[6900,1232,1,0.4,68.8],[7000,1226,1,0.4,68.6],[7100,1219,2,0.4,68.4],[7200,1212,2,0.4,68.2],[7300,1205,2,0.4,68],[7400,1198,2,0.4,67.8],[7500,1191,2,0.4,67.7],[7600,1183,2,0.4,67.4],[7700,1176,2,0.4,67.2],[7800,1169,2,0.4,67],[7900,1161,2,0.4,66.8],[8000,1153,2,0.4,66.6],[8100,1145,2,0.5,66.3],[8200,1137,2,0.5,66.1],[8300,1129,2,0.5,65.8],[8400,1121,2,0.5,65.6],[8500,1113,3,0.5,65.3],[8600,1104,3,0.5,65],[8700,1095,3,0.5,64.7],[8800,1086,3,0.5,64.4],[8900,1077,3,0.5,64.1],[9000,1068,3,0.5,63.8],[9100,1058,3,0.5,63.4],[9200,1048,3,0.5,63.1],[9300,1038,4,0.5,62.7],[9400,1028,4,0.5,62.3],[9500,1017,4,0.5,61.9],[9600,1005,4,0.6,61.5],[9700,994,4,0.6,61],[9800,982,5,0.6,60.5],[9900,969,5,0.6,60],[10000,956,6,0.6,59.5],[10100,942,6,0.7,58.9],[10200,927,6,0.7,58.3],[10300,911,7,0.8,57.6],[10400,893,8,0.8,56.8],[10500,874,10,0.9,56],[10600,852,12,1,54.9],[10700,826,15,1.2,53.7]]] +]], +["DPICM","m916",[ +["charge 1","chg1",[[2200,1236,6,0.7,35.9],[2300,1216,7,0.7,35.6],[2400,1194,8,0.7,35.2],[2500,1171,8,0.7,34.9],[2600,1147,10,0.8,34.5],[2700,1122,11,0.8,34.1],[2800,1095,12,0.9,33.6],[2900,1065,14,0.9,33.1],[3000,1032,17,1,32.4],[3100,995,21,1.1,31.7],[3200,949,28,1.3,30.7],[3300,886,44,1.8,29.2]]], +["charge 2","chg2",[[2500,1240,5,0.6,38.7],[2600,1222,6,0.7,38.4],[2700,1203,6,0.7,38.1],[2800,1183,7,0.7,37.8],[2900,1163,8,0.7,37.5],[3000,1142,8,0.7,37.1],[3100,1120,9,0.8,36.7],[3200,1096,11,0.8,36.3],[3300,1070,12,0.8,35.8],[3400,1043,14,0.9,35.2],[3500,1012,16,1,34.6],[3600,977,20,1.1,33.8],[3700,934,27,1.3,32.7],[3800,875,41,1.7,31.2]]], +["charge 3","chg3",[[2900,1244,4,0.6,42.3],[3000,1229,5,0.6,42.1],[3100,1213,5,0.6,41.8],[3200,1197,5,0.6,41.6],[3300,1180,6,0.6,41.3],[3400,1162,6,0.6,41],[3500,1144,7,0.7,40.6],[3600,1125,7,0.7,40.3],[3700,1106,8,0.7,39.9],[3800,1085,9,0.7,39.4],[3900,1062,10,0.8,39],[4000,1038,12,0.8,38.4],[4100,1012,13,0.9,37.8],[4200,983,16,1,37.1],[4300,949,20,1.1,36.2],[4400,908,26,1.3,35.1],[4500,847,44,1.9,33.4]]], +["charge 4","chg4",[[3500,1237,4,0.5,46.6],[3600,1224,4,0.6,46.4],[3700,1211,4,0.6,46.1],[3800,1197,4,0.6,45.9],[3900,1183,5,0.6,45.6],[4000,1168,5,0.6,45.4],[4100,1154,5,0.6,45.1],[4200,1138,6,0.6,44.7],[4300,1122,6,0.6,44.4],[4400,1105,6,0.6,44],[4500,1088,7,0.7,43.6],[4600,1069,8,0.7,43.2],[4700,1050,9,0.7,42.7],[4800,1029,10,0.8,42.2],[4900,1007,11,0.8,41.6],[5000,982,13,0.9,41],[5100,955,15,1,40.2],[5200,923,19,1.1,39.3],[5300,883,25,1.3,38.1],[5400,824,43,2,36.2]]], +["charge 5","chg5",[[4300,1240,3,0.5,52.8],[4400,1229,3,0.5,52.6],[4500,1219,3,0.5,52.4],[4600,1208,3,0.5,52.2],[4700,1197,3,0.5,52],[4800,1185,3,0.5,51.7],[4900,1174,4,0.5,51.5],[5000,1162,4,0.5,51.2],[5100,1149,4,0.5,50.9],[5200,1137,4,0.6,50.6],[5300,1124,4,0.6,50.3],[5400,1110,5,0.6,50],[5500,1097,5,0.6,49.6],[5600,1082,5,0.6,49.3],[5700,1067,6,0.6,48.9],[5800,1052,6,0.6,48.5],[5900,1035,7,0.7,48],[6000,1018,8,0.7,47.5],[6100,1000,8,0.7,47],[6200,980,9,0.8,46.4],[6300,958,11,0.8,45.7],[6400,935,13,0.9,45],[6500,908,15,1,44.1],[6600,875,19,1.2,43],[6700,832,28,1.5,41.5]]], +["charge 6","chg6",[[5400,1241,2,0.4,60.8],[5500,1233,2,0.4,60.6],[5600,1225,2,0.4,60.4],[5700,1216,2,0.4,60.2],[5800,1207,2,0.5,60],[5900,1199,2,0.5,59.8],[6000,1190,2,0.5,59.6],[6100,1181,2,0.5,59.4],[6200,1171,3,0.5,59.2],[6300,1162,3,0.5,58.9],[6400,1152,3,0.5,58.7],[6500,1142,3,0.5,58.4],[6600,1132,3,0.5,58.2],[6700,1122,3,0.5,57.9],[6800,1111,3,0.5,57.6],[6900,1101,4,0.5,57.3],[7000,1089,4,0.5,57],[7100,1078,4,0.5,56.6],[7200,1066,4,0.5,56.3],[7300,1054,4,0.6,55.9],[7400,1041,5,0.6,55.5],[7500,1028,5,0.6,55.1],[7600,1015,5,0.6,54.7],[7700,1000,6,0.6,54.2],[7800,985,6,0.7,53.7],[7900,969,7,0.7,53.1],[8000,952,8,0.7,52.5],[8100,934,9,0.8,51.9],[8200,914,10,0.8,51.2],[8300,892,11,0.9,50.3],[8400,867,14,1,49.3],[8500,836,18,1.2,48.1]]], +["charge 7","chg7",[[6900,1239,1,0.4,70.8],[7000,1233,1,0.4,70.6],[7100,1226,1,0.4,70.4],[7200,1219,1,0.4,70.3],[7300,1213,1,0.4,70.1],[7400,1206,2,0.4,69.9],[7500,1199,2,0.4,69.7],[7600,1192,2,0.4,69.5],[7700,1185,2,0.4,69.3],[7800,1178,2,0.4,69.1],[7900,1170,2,0.4,68.9],[8000,1163,2,0.4,68.7],[8100,1156,2,0.4,68.5],[8200,1148,2,0.4,68.3],[8300,1140,2,0.4,68],[8400,1132,2,0.4,67.8],[8500,1124,2,0.4,67.6],[8600,1116,2,0.4,67.3],[8700,1108,2,0.4,67],[8800,1099,2,0.5,66.8],[8900,1091,2,0.5,66.5],[9000,1082,3,0.5,66.2],[9100,1073,3,0.5,65.9],[9200,1064,3,0.5,65.6],[9300,1055,3,0.5,65.3],[9400,1045,3,0.5,64.9],[9500,1035,3,0.5,64.6],[9600,1025,4,0.5,64.2],[9700,1014,4,0.5,63.8],[9800,1003,4,0.5,63.4],[9900,992,4,0.5,63],[10000,981,4,0.6,62.5],[10100,969,5,0.6,62],[10200,956,5,0.6,61.5],[10300,943,5,0.6,61],[10400,929,6,0.6,60.4],[10500,914,6,0.7,59.8],[10600,898,7,0.7,59.2],[10700,881,8,0.8,58.4],[10800,863,9,0.8,57.6],[10900,841,11,0.9,56.6],[11000,817,13,1,55.5]]], +["charge 8","chg8",[[8300,1244,1,0.4,80.8],[8400,1239,1,0.4,80.7],[8500,1233,1,0.4,80.5],[8600,1228,1,0.4,80.4],[8700,1222,1,0.4,80.2],[8800,1217,1,0.4,80],[8900,1211,1,0.4,79.9],[9000,1206,1,0.4,79.7],[9100,1200,1,0.4,79.5],[9200,1194,1,0.4,79.4],[9300,1189,1,0.4,79.2],[9400,1183,1,0.4,79],[9500,1177,1,0.4,78.8],[9600,1171,1,0.4,78.6],[9700,1165,1,0.4,78.4],[9800,1159,1,0.4,78.2],[9900,1153,1,0.4,78],[10000,1146,1,0.4,77.8],[10100,1140,1,0.4,77.6],[10200,1134,1,0.4,77.4],[10300,1127,1,0.4,77.2],[10400,1121,2,0.4,77],[10500,1114,2,0.4,76.7],[10600,1107,2,0.4,76.5],[10700,1101,2,0.4,76.2],[10800,1094,2,0.4,76],[10900,1087,2,0.4,75.7],[11000,1080,2,0.4,75.5],[11100,1072,2,0.4,75.2],[11200,1065,2,0.4,74.9],[11300,1057,2,0.4,74.6],[11400,1050,2,0.4,74.3],[11500,1042,2,0.4,74],[11600,1034,2,0.4,73.7],[11700,1026,2,0.4,73.3],[11800,1018,2,0.5,73],[11900,1009,3,0.5,72.6],[12000,1000,3,0.5,72.3],[12100,992,3,0.5,71.9],[12200,982,3,0.5,71.5],[12300,973,3,0.5,71.1],[12400,963,3,0.5,70.7],[12500,953,3,0.5,70.2],[12600,943,3,0.5,69.8],[12700,932,4,0.5,69.3],[12800,921,4,0.6,68.8],[12900,910,4,0.6,68.2],[13000,898,5,0.6,67.6],[13100,885,5,0.6,67],[13200,871,5,0.6,66.4],[13300,857,6,0.7,65.6],[13400,841,7,0.7,64.8],[13500,824,7,0.8,64],[13600,805,9,0.9,63]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum", "DPICM"]; +_tableData_charges = ["charge 1", "charge 2", "charge 3", "charge 4", "charge 5", "charge 6", "charge 7", "charge 8"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/m119_legacy.sqf b/TO_MERGE/ace/arty_range_tables/tables/m119_legacy.sqf new file mode 100644 index 0000000000..1fdcd36f62 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/m119_legacy.sqf @@ -0,0 +1,21 @@ +_tableData_tables = [ +["HE","30Rnd_105mmHE_M119",[ +["Close","",[[4100,1237,4,0.5,47.4],[4200,1226,4,0.5,47.2],[4300,1215,4,0.5,47],[4400,1203,5,0.5,46.7],[4500,1192,5,0.5,46.5],[4600,1180,5,0.5,46.3],[4700,1168,5,0.5,46.1],[4800,1156,6,0.5,45.8],[4900,1143,6,0.6,45.5],[5000,1129,7,0.6,45.2],[5100,1116,7,0.6,44.9],[5200,1101,7,0.6,44.6],[5300,1087,8,0.6,44.2],[5400,1071,9,0.7,43.9],[5500,1054,9,0.7,43.5],[5600,1037,11,0.7,43],[5700,1018,12,0.8,42.5],[5800,997,14,0.8,41.9],[5900,975,16,0.9,41.3],[6000,949,19,1,40.5],[6100,917,24,1.2,39.6],[6200,873,36,1.7,38.2]]], +["Medium","",[[5900,1244,3,0.4,57.4],[6000,1236,3,0.4,57.2],[6100,1229,3,0.4,57.1],[6200,1221,3,0.4,56.9],[6300,1214,3,0.4,56.8],[6400,1206,3,0.4,56.6],[6500,1198,3,0.4,56.4],[6600,1190,3,0.4,56.2],[6700,1182,4,0.4,56],[6800,1174,4,0.5,55.8],[6900,1165,4,0.5,55.6],[7000,1157,4,0.5,55.4],[7100,1148,4,0.5,55.2],[7200,1139,4,0.5,55],[7300,1130,5,0.5,54.7],[7400,1121,5,0.5,54.5],[7500,1111,5,0.5,54.2],[7600,1102,5,0.5,53.9],[7700,1091,5,0.5,53.6],[7800,1081,6,0.6,53.3],[7900,1070,6,0.6,53],[8000,1059,7,0.6,52.7],[8100,1047,7,0.6,52.3],[8200,1035,7,0.6,51.9],[8300,1022,8,0.7,51.5],[8400,1008,9,0.7,51.1],[8500,994,10,0.7,50.6],[8600,979,10,0.7,50.1],[8700,961,12,0.8,49.5],[8800,943,14,0.9,48.8],[8900,921,17,1,48],[9000,895,21,1.2,47],[9100,857,33,1.7,45.5]]], +["Far","",[[9000,1243,2,0.3,70.8],[9100,1238,2,0.3,70.7],[9200,1233,2,0.3,70.6],[9300,1229,2,0.3,70.5],[9400,1224,2,0.4,70.3],[9500,1219,2,0.4,70.2],[9600,1214,2,0.4,70.1],[9700,1209,2,0.4,69.9],[9800,1204,2,0.4,69.8],[9900,1198,2,0.4,69.6],[10000,1193,2,0.4,69.5],[10100,1188,2,0.4,69.3],[10200,1183,2,0.4,69.2],[10300,1177,2,0.4,69],[10400,1172,2,0.4,68.9],[10500,1166,2,0.4,68.7],[10600,1161,3,0.4,68.5],[10700,1155,3,0.4,68.4],[10800,1149,3,0.4,68.2],[10900,1144,3,0.4,68],[11000,1138,3,0.4,67.8],[11100,1132,3,0.4,67.6],[11200,1126,3,0.4,67.4],[11300,1120,3,0.4,67.2],[11400,1113,3,0.4,67],[11500,1107,3,0.4,66.8],[11600,1100,3,0.4,66.5],[11700,1094,4,0.4,66.3],[11800,1087,4,0.4,66.1],[11900,1080,4,0.5,65.8],[12000,1073,4,0.4,65.6],[12100,1066,4,0.4,65.3],[12200,1058,4,0.5,65],[12300,1051,4,0.5,64.7],[12400,1043,5,0.5,64.4],[12500,1035,5,0.5,64.1],[12600,1026,5,0.5,63.8],[12700,1018,5,0.5,63.4],[12800,1009,6,0.6,63.1],[12900,999,6,0.6,62.7],[13000,990,7,0.6,62.3],[13100,979,7,0.6,61.9],[13200,968,8,0.7,61.4],[13300,957,8,0.7,60.9],[13400,944,9,0.8,60.3],[13500,930,11,0.8,59.7],[13600,915,12,0.9,59],[13700,898,14,1,58.2],[13800,877,18,1.2,57.2],[13900,846,28,1.7,55.7]]] +]], +["WP","30Rnd_105mmWP_M119",[ +["Close","",[[4100,1237,4,0.5,47.4],[4200,1226,4,0.5,47.2],[4300,1215,4,0.5,47],[4400,1203,5,0.5,46.7],[4500,1192,5,0.5,46.5],[4600,1180,5,0.5,46.3],[4700,1168,5,0.5,46.1],[4800,1156,6,0.5,45.8],[4900,1143,6,0.6,45.5],[5000,1129,7,0.6,45.2],[5100,1116,7,0.6,44.9],[5200,1101,7,0.6,44.6],[5300,1087,8,0.6,44.2],[5400,1071,9,0.7,43.9],[5500,1054,9,0.7,43.5],[5600,1037,11,0.7,43],[5700,1018,12,0.8,42.5],[5800,997,14,0.8,41.9],[5900,975,16,0.9,41.3],[6000,949,19,1,40.5],[6100,917,24,1.2,39.6],[6200,873,36,1.7,38.2]]], +["Medium","",[[5900,1244,3,0.4,57.4],[6000,1236,3,0.4,57.2],[6100,1229,3,0.4,57.1],[6200,1221,3,0.4,56.9],[6300,1214,3,0.4,56.8],[6400,1206,3,0.4,56.6],[6500,1198,3,0.4,56.4],[6600,1190,3,0.4,56.2],[6700,1182,4,0.4,56],[6800,1174,4,0.5,55.8],[6900,1165,4,0.5,55.6],[7000,1157,4,0.5,55.4],[7100,1148,4,0.5,55.2],[7200,1139,4,0.5,55],[7300,1130,5,0.5,54.7],[7400,1121,5,0.5,54.5],[7500,1111,5,0.5,54.2],[7600,1102,5,0.5,53.9],[7700,1091,5,0.5,53.6],[7800,1081,6,0.6,53.3],[7900,1070,6,0.6,53],[8000,1059,7,0.6,52.7],[8100,1047,7,0.6,52.3],[8200,1035,7,0.6,51.9],[8300,1022,8,0.7,51.5],[8400,1008,9,0.7,51.1],[8500,994,10,0.7,50.6],[8600,979,10,0.7,50.1],[8700,961,12,0.8,49.5],[8800,943,14,0.9,48.8],[8900,921,17,1,48],[9000,895,21,1.2,47],[9100,857,33,1.7,45.5]]], +["Far","",[[9000,1243,2,0.3,70.8],[9100,1238,2,0.3,70.7],[9200,1233,2,0.3,70.6],[9300,1229,2,0.3,70.5],[9400,1224,2,0.4,70.3],[9500,1219,2,0.4,70.2],[9600,1214,2,0.4,70.1],[9700,1209,2,0.4,69.9],[9800,1204,2,0.4,69.8],[9900,1198,2,0.4,69.6],[10000,1193,2,0.4,69.5],[10100,1188,2,0.4,69.3],[10200,1183,2,0.4,69.2],[10300,1177,2,0.4,69],[10400,1172,2,0.4,68.9],[10500,1166,2,0.4,68.7],[10600,1161,3,0.4,68.5],[10700,1155,3,0.4,68.4],[10800,1149,3,0.4,68.2],[10900,1144,3,0.4,68],[11000,1138,3,0.4,67.8],[11100,1132,3,0.4,67.6],[11200,1126,3,0.4,67.4],[11300,1120,3,0.4,67.2],[11400,1113,3,0.4,67],[11500,1107,3,0.4,66.8],[11600,1100,3,0.4,66.5],[11700,1094,4,0.4,66.3],[11800,1087,4,0.4,66.1],[11900,1080,4,0.5,65.8],[12000,1073,4,0.4,65.6],[12100,1066,4,0.4,65.3],[12200,1058,4,0.5,65],[12300,1051,4,0.5,64.7],[12400,1043,5,0.5,64.4],[12500,1035,5,0.5,64.1],[12600,1026,5,0.5,63.8],[12700,1018,5,0.5,63.4],[12800,1009,6,0.6,63.1],[12900,999,6,0.6,62.7],[13000,990,7,0.6,62.3],[13100,979,7,0.6,61.9],[13200,968,8,0.7,61.4],[13300,957,8,0.7,60.9],[13400,944,9,0.8,60.3],[13500,930,11,0.8,59.7],[13600,915,12,0.9,59],[13700,898,14,1,58.2],[13800,877,18,1.2,57.2],[13900,846,28,1.7,55.7]]] +]], +["Illum","30Rnd_105mmILLUM_M119",[ +["Close","",[[4000,1235,4,0.5,46],[4100,1224,5,0.6,45.8],[4200,1212,5,0.6,45.6],[4300,1200,5,0.6,45.3],[4400,1188,5,0.6,45.1],[4500,1176,6,0.6,44.8],[4600,1163,6,0.6,44.6],[4700,1150,7,0.6,44.3],[4800,1136,7,0.6,44],[4900,1122,8,0.7,43.7],[5000,1107,8,0.7,43.3],[5100,1091,9,0.7,42.9],[5200,1075,10,0.7,42.5],[5300,1057,11,0.8,42.1],[5400,1038,12,0.8,41.6],[5500,1018,14,0.9,41],[5600,996,16,1,40.4],[5700,969,20,1.1,39.6],[5800,938,25,1.3,38.6],[5900,892,39,1.8,37.2]]], +["Medium","",[[5800,1243,3,0.4,56.3],[5900,1235,3,0.4,56.1],[6000,1227,3,0.4,56],[6100,1220,3,0.4,55.8],[6200,1212,3,0.4,55.6],[6300,1204,3,0.4,55.4],[6400,1196,3,0.4,55.2],[6500,1188,4,0.5,55],[6600,1179,4,0.5,54.8],[6700,1171,4,0.5,54.6],[6800,1162,4,0.5,54.4],[6900,1153,4,0.5,54.2],[7000,1144,5,0.5,53.9],[7100,1135,5,0.5,53.7],[7200,1125,5,0.5,53.4],[7300,1115,5,0.6,53.1],[7400,1105,6,0.6,52.9],[7500,1095,6,0.6,52.6],[7600,1084,6,0.6,52.3],[7700,1073,7,0.6,51.9],[7800,1061,7,0.6,51.6],[7900,1049,8,0.7,51.2],[8000,1036,8,0.7,50.8],[8100,1023,9,0.7,50.3],[8200,1008,10,0.7,49.8],[8300,993,11,0.8,49.3],[8400,976,12,0.9,48.7],[8500,957,14,0.9,48],[8600,935,17,1.1,47.2],[8700,909,22,1.3,46.2],[8800,870,34,1.8,44.7]]], +["Far","",[[8900,1243,2,0.3,70],[9000,1238,2,0.3,69.8],[9100,1233,2,0.3,69.7],[9200,1228,2,0.3,69.6],[9300,1223,2,0.3,69.4],[9400,1218,2,0.3,69.3],[9500,1213,2,0.4,69.2],[9600,1207,2,0.4,69],[9700,1202,2,0.4,68.9],[9800,1197,2,0.4,68.7],[9900,1192,2,0.4,68.6],[10000,1186,2,0.4,68.4],[10100,1181,2,0.4,68.2],[10200,1175,2,0.4,68.1],[10300,1170,3,0.4,67.9],[10400,1164,3,0.4,67.7],[10500,1158,3,0.4,67.5],[10600,1153,3,0.4,67.4],[10700,1147,3,0.4,67.2],[10800,1141,3,0.4,67],[10900,1135,3,0.4,66.8],[11000,1129,3,0.4,66.6],[11100,1122,3,0.4,66.4],[11200,1116,3,0.4,66.1],[11300,1109,4,0.4,65.9],[11400,1103,4,0.4,65.7],[11500,1096,4,0.5,65.4],[11600,1089,4,0.5,65.2],[11700,1082,4,0.5,64.9],[11800,1075,4,0.5,64.7],[11900,1067,4,0.5,64.4],[12000,1060,5,0.5,64.1],[12100,1052,5,0.5,63.8],[12200,1044,5,0.5,63.5],[12300,1036,5,0.5,63.2],[12400,1027,5,0.5,62.8],[12500,1018,6,0.6,62.5],[12600,1009,6,0.6,62.1],[12700,999,7,0.6,61.7],[12800,989,8,0.7,61.2],[12900,978,7,0.7,60.8],[13000,966,9,0.7,60.3],[13100,954,10,0.8,59.7],[13200,940,11,0.8,59.1],[13300,925,12,0.9,58.4],[13400,908,15,1,57.6],[13500,886,19,1.3,56.6],[13600,855,27,1.7,55]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["Close", "Medium", "Far"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/m224.sqf b/TO_MERGE/ace/arty_range_tables/tables/m224.sqf new file mode 100644 index 0000000000..d4e48d9775 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/m224.sqf @@ -0,0 +1,26 @@ +_tableData_tables = [ +["HE","m720a1",[ +["charge 0","chg0",[[100,1474,13,1.5,12.8],[200,1338,29,1.6,12.5],[300,1178,57,1.8,11.8],[400,893,177,2.9,9.9]]], +["charge 1","chg1",[[300,1493,3,0.8,24.4],[400,1456,5,0.8,24.3],[500,1419,6,0.9,24.2],[600,1380,8,0.9,24],[700,1340,9,0.9,23.8],[800,1298,11,0.9,23.5],[900,1253,14,1,23.1],[1000,1205,17,1,22.8],[1100,1152,22,1.1,22.2],[1200,1092,29,1.2,21.6],[1300,1017,41,1.5,20.7],[1400,906,76,2.1,19.1]]], +["charge 2","chg2",[[400,1510,2,0.7,31],[500,1487,2,0.7,31],[600,1464,3,0.7,30.9],[700,1440,3,0.7,30.8],[800,1417,4,0.7,30.7],[900,1392,4,0.7,30.5],[1000,1367,5,0.7,30.4],[1100,1342,6,0.7,30.2],[1200,1315,7,0.7,30],[1300,1288,8,0.8,29.7],[1400,1259,9,0.8,29.5],[1500,1230,10,0.8,29.1],[1600,1198,11,0.8,28.8],[1700,1165,13,0.9,28.4],[1800,1128,15,0.9,27.9],[1900,1088,19,1,27.4],[2000,1043,24,1.1,26.7],[2100,989,31,1.3,25.8],[2200,915,49,1.7,24.5]]], +["charge 3","chg3",[[500,1509,1,0.6,34.7],[600,1490,2,0.6,34.6],[700,1471,2,0.6,34.5],[800,1453,2,0.6,34.4],[900,1433,3,0.6,34.3],[1000,1414,3,0.6,34.2],[1100,1394,4,0.6,34.1],[1200,1374,4,0.7,34],[1300,1353,4,0.7,33.8],[1400,1332,5,0.7,33.6],[1500,1310,5,0.7,33.4],[1600,1288,6,0.7,33.2],[1700,1265,7,0.7,33],[1800,1241,7,0.7,32.7],[1900,1216,8,0.8,32.4],[2000,1190,9,0.8,32],[2100,1162,11,0.8,31.7],[2200,1133,12,0.8,31.3],[2300,1101,14,0.9,30.8],[2400,1066,17,1,30.2],[2500,1027,21,1.1,29.5],[2600,981,26,1.2,28.7],[2700,922,38,1.5,27.5],[2800,805,93,2.8,24.9]]], +["charge 4","chg4",[[700,1498,1,0.6,39.1],[800,1483,1,0.6,39],[900,1468,2,0.6,38.9],[1000,1453,2,0.6,38.8],[1100,1437,2,0.6,38.8],[1200,1422,2,0.6,38.7],[1300,1406,3,0.6,38.5],[1400,1390,3,0.6,38.4],[1500,1374,3,0.6,38.3],[1600,1357,3,0.6,38.2],[1700,1341,4,0.6,38],[1800,1323,4,0.6,37.8],[1900,1306,4,0.6,37.6],[2000,1288,5,0.6,37.4],[2100,1269,5,0.6,37.2],[2200,1250,6,0.7,37],[2300,1231,6,0.7,36.7],[2400,1211,7,0.7,36.5],[2500,1190,7,0.7,36.2],[2600,1167,8,0.7,35.8],[2700,1144,9,0.7,35.5],[2800,1120,10,0.8,35],[2900,1094,11,0.8,34.6],[3000,1065,13,0.9,34.1],[3100,1034,15,0.9,33.5],[3200,1000,18,1,32.8],[3300,959,24,1.2,31.9],[3400,907,33,1.5,30.7],[3500,816,70,2.5,28.5]]] +]], +["WP","m722a1",[ +["charge 0","chg0",[[100,1474,13,1.5,12.8],[200,1338,29,1.6,12.5],[300,1178,57,1.8,11.8],[400,893,177,2.9,9.9]]], +["charge 1","chg1",[[300,1493,3,0.8,24.4],[400,1456,5,0.8,24.3],[500,1419,6,0.9,24.2],[600,1380,8,0.9,24],[700,1340,9,0.9,23.8],[800,1298,11,0.9,23.5],[900,1253,14,1,23.1],[1000,1205,17,1,22.8],[1100,1152,22,1.1,22.2],[1200,1092,29,1.2,21.6],[1300,1017,41,1.5,20.7],[1400,906,76,2.1,19.1]]], +["charge 2","chg2",[[400,1510,2,0.7,31],[500,1487,2,0.7,31],[600,1464,3,0.7,30.9],[700,1440,3,0.7,30.8],[800,1417,4,0.7,30.7],[900,1392,4,0.7,30.5],[1000,1367,5,0.7,30.4],[1100,1342,6,0.7,30.2],[1200,1315,7,0.7,30],[1300,1288,8,0.8,29.7],[1400,1259,9,0.8,29.5],[1500,1230,10,0.8,29.1],[1600,1198,11,0.8,28.8],[1700,1165,13,0.9,28.4],[1800,1128,15,0.9,27.9],[1900,1088,19,1,27.4],[2000,1043,24,1.1,26.7],[2100,989,31,1.3,25.8],[2200,915,49,1.7,24.5]]], +["charge 3","chg3",[[500,1509,1,0.6,34.7],[600,1490,2,0.6,34.6],[700,1471,2,0.6,34.5],[800,1453,2,0.6,34.4],[900,1433,3,0.6,34.3],[1000,1414,3,0.6,34.2],[1100,1394,4,0.6,34.1],[1200,1374,4,0.7,34],[1300,1353,4,0.7,33.8],[1400,1332,5,0.7,33.6],[1500,1310,5,0.7,33.4],[1600,1288,6,0.7,33.2],[1700,1265,7,0.7,33],[1800,1241,7,0.7,32.7],[1900,1216,8,0.8,32.4],[2000,1190,9,0.8,32],[2100,1162,11,0.8,31.7],[2200,1133,12,0.8,31.3],[2300,1101,14,0.9,30.8],[2400,1066,17,1,30.2],[2500,1027,21,1.1,29.5],[2600,981,26,1.2,28.7],[2700,922,38,1.5,27.5],[2800,805,93,2.8,24.9]]], +["charge 4","chg4",[[700,1498,1,0.6,39.1],[800,1483,1,0.6,39],[900,1468,2,0.6,38.9],[1000,1453,2,0.6,38.8],[1100,1437,2,0.6,38.8],[1200,1422,2,0.6,38.7],[1300,1406,3,0.6,38.5],[1400,1390,3,0.6,38.4],[1500,1374,3,0.6,38.3],[1600,1357,3,0.6,38.2],[1700,1341,4,0.6,38],[1800,1323,4,0.6,37.8],[1900,1306,4,0.6,37.6],[2000,1288,5,0.6,37.4],[2100,1269,5,0.6,37.2],[2200,1250,6,0.7,37],[2300,1231,6,0.7,36.7],[2400,1211,7,0.7,36.5],[2500,1190,7,0.7,36.2],[2600,1167,8,0.7,35.8],[2700,1144,9,0.7,35.5],[2800,1120,10,0.8,35],[2900,1094,11,0.8,34.6],[3000,1065,13,0.9,34.1],[3100,1034,15,0.9,33.5],[3200,1000,18,1,32.8],[3300,959,24,1.2,31.9],[3400,907,33,1.5,30.7],[3500,816,70,2.5,28.5]]] +]], +["Illum","m721",[ +["charge 1","chg1",[[300,1493,3,0.8,24.4],[400,1456,5,0.8,24.3],[500,1419,6,0.9,24.2],[600,1380,8,0.9,24],[700,1340,9,0.9,23.8],[800,1298,11,0.9,23.5],[900,1253,14,1,23.1],[1000,1205,17,1,22.8],[1100,1152,22,1.1,22.2],[1200,1092,29,1.2,21.6],[1300,1017,41,1.5,20.7],[1400,906,76,2.1,19.1]]], +["charge 2","chg2",[[400,1510,2,0.7,31],[500,1487,2,0.7,31],[600,1464,3,0.7,30.9],[700,1440,3,0.7,30.8],[800,1417,4,0.7,30.7],[900,1392,4,0.7,30.5],[1000,1367,5,0.7,30.4],[1100,1342,6,0.7,30.2],[1200,1315,7,0.7,30],[1300,1288,8,0.8,29.7],[1400,1259,9,0.8,29.5],[1500,1230,10,0.8,29.1],[1600,1198,11,0.8,28.8],[1700,1165,13,0.9,28.4],[1800,1128,15,0.9,27.9],[1900,1088,19,1,27.4],[2000,1043,24,1.1,26.7],[2100,989,31,1.3,25.8],[2200,915,49,1.7,24.5]]], +["charge 3","chg3",[[500,1509,1,0.6,34.7],[600,1490,2,0.6,34.6],[700,1471,2,0.6,34.5],[800,1453,2,0.6,34.4],[900,1433,3,0.6,34.3],[1000,1414,3,0.6,34.2],[1100,1394,4,0.6,34.1],[1200,1374,4,0.7,34],[1300,1353,4,0.7,33.8],[1400,1332,5,0.7,33.6],[1500,1310,5,0.7,33.4],[1600,1288,6,0.7,33.2],[1700,1265,7,0.7,33],[1800,1241,7,0.7,32.7],[1900,1216,8,0.8,32.4],[2000,1190,9,0.8,32],[2100,1162,11,0.8,31.7],[2200,1133,12,0.8,31.3],[2300,1101,14,0.9,30.8],[2400,1066,17,1,30.2],[2500,1027,21,1.1,29.5],[2600,981,26,1.2,28.7],[2700,922,38,1.5,27.5],[2800,805,93,2.8,24.9]]], +["charge 4","chg4",[[700,1498,1,0.6,39.1],[800,1483,1,0.6,39],[900,1468,2,0.6,38.9],[1000,1453,2,0.6,38.8],[1100,1437,2,0.6,38.8],[1200,1422,2,0.6,38.7],[1300,1406,3,0.6,38.5],[1400,1390,3,0.6,38.4],[1500,1374,3,0.6,38.3],[1600,1357,3,0.6,38.2],[1700,1341,4,0.6,38],[1800,1323,4,0.6,37.8],[1900,1306,4,0.6,37.6],[2000,1288,5,0.6,37.4],[2100,1269,5,0.6,37.2],[2200,1250,6,0.7,37],[2300,1231,6,0.7,36.7],[2400,1211,7,0.7,36.5],[2500,1190,7,0.7,36.2],[2600,1167,8,0.7,35.8],[2700,1144,9,0.7,35.5],[2800,1120,10,0.8,35],[2900,1094,11,0.8,34.6],[3000,1065,13,0.9,34.1],[3100,1034,15,0.9,33.5],[3200,1000,18,1,32.8],[3300,959,24,1.2,31.9],[3400,907,33,1.5,30.7],[3500,816,70,2.5,28.5]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["charge 0", "charge 1", "charge 2", "charge 3", "charge 4"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/m224_legacy.sqf b/TO_MERGE/ace/arty_range_tables/tables/m224_legacy.sqf new file mode 100644 index 0000000000..31319bd034 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/m224_legacy.sqf @@ -0,0 +1,21 @@ +_tableData_tables = [ +["HE","ACE_1Rnd_60mmHE_M224",[ +["Close","",[[100,1394,32,1.8,10],[125,1338,42,1.8,9.8],[150,1279,55,1.9,9.7],[175,1213,71,2,9.4],[200,1139,93,2.2,9.1],[225,1047,129,2.4,8.7],[250,894,221,3.1,7.8]]], +["Medium","",[[250,1498,4,0.9,22.5],[300,1477,5,0.9,22.5],[350,1456,5,0.9,22.4],[400,1435,7,0.9,22.3],[450,1413,7,0.9,22.2],[500,1391,8,0.9,22.1],[550,1369,9,0.9,22],[600,1346,11,1,21.9],[650,1323,12,1,21.8],[700,1299,14,1,21.6],[750,1274,15,1,21.5],[800,1248,17,1,21.3],[850,1221,19,1.1,21.1],[900,1193,22,1.1,20.8],[950,1163,25,1.2,20.6],[1000,1131,29,1.2,20.3],[1050,1096,33,1.3,19.9],[1100,1056,40,1.4,19.5],[1150,1011,50,1.6,18.9],[1200,952,69,1.9,18.2],[1250,849,125,2.8,16.7]]], +["Far","",[[600,1512,1,0.5,37.6],[650,1505,1,0.5,37.5],[700,1497,1,0.5,37.5],[750,1490,2,0.5,37.5],[800,1482,2,0.6,37.4],[850,1475,2,0.6,37.4],[900,1467,2,0.6,37.4],[950,1460,2,0.6,37.3],[1000,1452,2,0.6,37.3],[1050,1444,2,0.6,37.3],[1100,1437,2,0.6,37.2],[1150,1429,3,0.6,37.2],[1200,1421,3,0.6,37.1],[1250,1413,3,0.6,37.1],[1300,1406,3,0.6,37],[1350,1398,3,0.6,37],[1400,1390,3,0.6,36.9],[1450,1382,3,0.6,36.8],[1500,1374,4,0.6,36.8],[1550,1366,4,0.6,36.7],[1600,1357,4,0.6,36.6],[1650,1349,4,0.6,36.6],[1700,1341,4,0.6,36.5],[1750,1332,4,0.6,36.4],[1800,1324,5,0.6,36.3],[1850,1315,5,0.6,36.2],[1900,1307,5,0.6,36.2],[1950,1298,5,0.6,36.1],[2000,1289,5,0.6,36],[2050,1280,6,0.6,35.9],[2100,1271,6,0.6,35.8],[2150,1262,6,0.6,35.6],[2200,1253,6,0.6,35.5],[2250,1243,7,0.6,35.4],[2300,1233,7,0.7,35.3],[2350,1224,7,0.7,35.2],[2400,1214,8,0.7,35],[2450,1203,8,0.7,34.9],[2500,1193,8,0.7,34.7],[2550,1183,9,0.7,34.6],[2600,1172,9,0.7,34.4],[2650,1161,10,0.7,34.2],[2700,1149,10,0.7,34.1],[2750,1138,11,0.8,33.9],[2800,1126,12,0.8,33.7],[2850,1113,12,0.8,33.5],[2900,1100,13,0.8,33.2],[2950,1087,14,0.9,33],[3000,1073,15,0.9,32.8],[3050,1058,16,0.9,32.5],[3100,1043,18,1,32.2],[3150,1026,20,1,31.9],[3200,1009,22,1.1,31.5],[3250,989,24,1.1,31.1],[3300,968,28,1.2,30.7],[3350,944,33,1.4,30.1],[3400,915,40,1.6,29.5],[3450,876,55,1.9,28.6]]] +]], +["WP","ACE_1Rnd_60mmWP_M224",[ +["Close","",[[100,1394,32,1.8,10],[125,1338,42,1.8,9.8],[150,1279,55,1.9,9.7],[175,1213,71,2,9.4],[200,1139,93,2.2,9.1],[225,1047,129,2.4,8.7],[250,894,221,3.1,7.8]]], +["Medium","",[[250,1498,4,0.9,22.5],[300,1477,5,0.9,22.5],[350,1456,5,0.9,22.4],[400,1435,7,0.9,22.3],[450,1413,7,0.9,22.2],[500,1391,8,0.9,22.1],[550,1369,9,0.9,22],[600,1346,11,1,21.9],[650,1323,12,1,21.8],[700,1299,14,1,21.6],[750,1274,15,1,21.5],[800,1248,17,1,21.3],[850,1221,19,1.1,21.1],[900,1193,22,1.1,20.8],[950,1163,25,1.2,20.6],[1000,1131,29,1.2,20.3],[1050,1096,33,1.3,19.9],[1100,1056,40,1.4,19.5],[1150,1011,50,1.6,18.9],[1200,952,69,1.9,18.2],[1250,849,125,2.8,16.7]]], +["Far","",[[600,1512,1,0.5,37.6],[650,1505,1,0.5,37.5],[700,1497,1,0.5,37.5],[750,1490,2,0.5,37.5],[800,1482,2,0.6,37.4],[850,1475,2,0.6,37.4],[900,1467,2,0.6,37.4],[950,1460,2,0.6,37.3],[1000,1452,2,0.6,37.3],[1050,1444,2,0.6,37.3],[1100,1437,2,0.6,37.2],[1150,1429,3,0.6,37.2],[1200,1421,3,0.6,37.1],[1250,1413,3,0.6,37.1],[1300,1406,3,0.6,37],[1350,1398,3,0.6,37],[1400,1390,3,0.6,36.9],[1450,1382,3,0.6,36.8],[1500,1374,4,0.6,36.8],[1550,1366,4,0.6,36.7],[1600,1357,4,0.6,36.6],[1650,1349,4,0.6,36.6],[1700,1341,4,0.6,36.5],[1750,1332,4,0.6,36.4],[1800,1324,5,0.6,36.3],[1850,1315,5,0.6,36.2],[1900,1307,5,0.6,36.2],[1950,1298,5,0.6,36.1],[2000,1289,5,0.6,36],[2050,1280,6,0.6,35.9],[2100,1271,6,0.6,35.8],[2150,1262,6,0.6,35.6],[2200,1253,6,0.6,35.5],[2250,1243,7,0.6,35.4],[2300,1233,7,0.7,35.3],[2350,1224,7,0.7,35.2],[2400,1214,8,0.7,35],[2450,1203,8,0.7,34.9],[2500,1193,8,0.7,34.7],[2550,1183,9,0.7,34.6],[2600,1172,9,0.7,34.4],[2650,1161,10,0.7,34.2],[2700,1149,10,0.7,34.1],[2750,1138,11,0.8,33.9],[2800,1126,12,0.8,33.7],[2850,1113,12,0.8,33.5],[2900,1100,13,0.8,33.2],[2950,1087,14,0.9,33],[3000,1073,15,0.9,32.8],[3050,1058,16,0.9,32.5],[3100,1043,18,1,32.2],[3150,1026,20,1,31.9],[3200,1009,22,1.1,31.5],[3250,989,24,1.1,31.1],[3300,968,28,1.2,30.7],[3350,944,33,1.4,30.1],[3400,915,40,1.6,29.5],[3450,876,55,1.9,28.6]]] +]], +["Illum","ACE_1Rnd_60mmILLUM_M224",[ +["Close","",[]], +["Medium","",[[200,1505,6,1.2,19.3],[250,1481,7,1.2,19.3],[300,1456,9,1.2,19.2],[350,1431,10,1.2,19.1],[400,1405,12,1.3,19],[450,1379,14,1.3,18.8],[500,1352,17,1.3,18.6],[550,1323,20,1.4,18.4],[600,1293,23,1.4,18.2],[650,1262,27,1.5,17.9],[700,1227,32,1.6,17.6],[750,1190,40,1.7,17.2],[800,1146,50,1.9,16.7],[850,1092,69,2.3,16]]], +["Far","",[[600,1508,2,0.6,35.8],[650,1500,2,0.6,35.8],[700,1492,2,0.6,35.8],[750,1484,2,0.6,35.7],[800,1476,2,0.6,35.7],[850,1469,2,0.6,35.7],[900,1461,2,0.6,35.6],[950,1453,2,0.6,35.6],[1000,1445,3,0.6,35.5],[1050,1436,3,0.6,35.5],[1100,1428,3,0.6,35.4],[1150,1420,3,0.6,35.4],[1200,1412,3,0.6,35.3],[1250,1404,3,0.6,35.3],[1300,1395,4,0.6,35.2],[1350,1387,4,0.6,35.1],[1400,1379,4,0.6,35.1],[1450,1370,4,0.6,35],[1500,1361,4,0.6,34.9],[1550,1353,5,0.6,34.8],[1600,1344,5,0.7,34.8],[1650,1335,5,0.7,34.7],[1700,1326,5,0.7,34.6],[1750,1317,6,0.7,34.5],[1800,1308,6,0.7,34.4],[1850,1299,6,0.7,34.3],[1900,1289,6,0.7,34.2],[1950,1280,7,0.7,34.1],[2000,1270,7,0.7,33.9],[2050,1260,7,0.7,33.8],[2100,1250,8,0.7,33.7],[2150,1240,8,0.7,33.5],[2200,1229,9,0.8,33.4],[2250,1219,9,0.8,33.2],[2300,1208,9,0.8,33.1],[2350,1197,10,0.8,32.9],[2400,1185,10,0.8,32.8],[2450,1174,11,0.8,32.6],[2500,1161,12,0.9,32.4],[2550,1149,13,0.9,32.2],[2600,1136,13,0.9,31.9],[2650,1123,15,0.9,31.7],[2700,1109,16,0.9,31.5],[2750,1094,17,1,31.2],[2800,1079,18,1,30.9],[2850,1062,20,1.1,30.6],[2900,1044,23,1.2,30.2],[2950,1025,26,1.2,29.8],[3000,1004,29,1.3,29.3],[3050,979,35,1.5,28.8],[3100,949,44,1.8,28.1],[3150,904,64,2.3,27]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["Close", "Medium", "Far"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/m252.sqf b/TO_MERGE/ace/arty_range_tables/tables/m252.sqf new file mode 100644 index 0000000000..420537c9c1 --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/m252.sqf @@ -0,0 +1,26 @@ +_tableData_tables = [ +["HE","m821a2",[ +["charge 0","chg0",[[100,1500,8,1.3,14.4],[200,1396,18,1.4,14.2],[300,1281,31,1.5,13.8],[400,1142,55,1.7,13.1],[500,908,147,2.7,11.3]]], +["charge 1","chg1",[[400,1485,3,0.8,27.3],[500,1456,4,0.8,27.2],[600,1426,5,0.8,27.1],[700,1395,6,0.8,27],[800,1364,7,0.8,26.8],[900,1331,8,0.8,26.6],[1000,1297,9,0.8,26.3],[1100,1261,11,0.9,26],[1200,1223,13,0.9,25.7],[1300,1183,15,1,25.3],[1400,1138,19,1,24.8],[1500,1088,24,1.1,24.1],[1600,1030,31,1.3,23.4],[1700,952,48,1.6,22.2]]], +["charge 2","chg2",[[600,1501,1,0.6,36.5],[700,1484,2,0.6,36.5],[800,1467,2,0.6,36.4],[900,1450,2,0.6,36.3],[1000,1432,2,0.6,36.2],[1100,1415,3,0.6,36.1],[1200,1397,3,0.6,36],[1300,1378,3,0.6,35.8],[1400,1360,4,0.6,35.7],[1500,1341,4,0.6,35.5],[1600,1321,5,0.6,35.4],[1700,1301,5,0.7,35.2],[1800,1281,6,0.7,34.9],[1900,1260,6,0.7,34.7],[2000,1238,7,0.7,34.4],[2100,1215,7,0.7,34.2],[2200,1192,8,0.7,33.8],[2300,1167,9,0.8,33.5],[2400,1140,11,0.8,33.1],[2500,1112,12,0.8,32.6],[2600,1082,14,0.9,32.1],[2700,1049,16,1,31.5],[2800,1011,20,1.1,30.8],[2900,967,26,1.2,30],[3000,909,38,1.5,28.7]]], +["charge 3","chg3",[[800,1504,1,0.5,43.5],[900,1492,1,0.5,43.5],[1000,1480,1,0.5,43.4],[1100,1468,1,0.5,43.3],[1200,1455,1,0.5,43.3],[1300,1443,2,0.5,43.2],[1400,1430,2,0.5,43.1],[1500,1417,2,0.5,43],[1600,1404,2,0.5,42.9],[1700,1391,2,0.5,42.8],[1800,1377,2,0.5,42.7],[1900,1364,3,0.5,42.6],[2000,1350,3,0.5,42.4],[2100,1336,3,0.6,42.3],[2200,1322,3,0.6,42.1],[2300,1308,3,0.6,41.9],[2400,1293,4,0.6,41.8],[2500,1278,4,0.6,41.6],[2600,1263,4,0.6,41.4],[2700,1247,4,0.6,41.1],[2800,1230,5,0.6,40.9],[2900,1214,5,0.6,40.7],[3000,1197,6,0.6,40.4],[3100,1179,6,0.6,40.1],[3200,1160,7,0.7,39.8],[3300,1141,7,0.7,39.4],[3400,1121,8,0.7,39.1],[3500,1099,9,0.7,38.6],[3600,1077,10,0.8,38.2],[3700,1053,11,0.8,37.7],[3800,1027,13,0.9,37.1],[3900,997,15,0.9,36.5],[4000,965,18,1,35.7],[4100,926,23,1.2,34.7],[4200,875,34,1.5,33.4]]], +["charge 4","chg4",[[1000,1505,1,0.5,49.4],[1100,1495,1,0.5,49.3],[1200,1485,1,0.5,49.3],[1300,1476,1,0.5,49.3],[1400,1466,1,0.5,49.2],[1500,1456,1,0.5,49.1],[1600,1446,1,0.5,49],[1700,1436,1,0.5,49],[1800,1425,1,0.5,48.9],[1900,1415,1,0.5,48.8],[2000,1405,2,0.5,48.7],[2100,1394,2,0.5,48.6],[2200,1384,2,0.5,48.5],[2300,1373,2,0.5,48.4],[2400,1362,2,0.5,48.3],[2500,1351,2,0.5,48.2],[2600,1340,2,0.5,48],[2700,1329,2,0.5,47.9],[2800,1317,2,0.5,47.7],[2900,1306,3,0.5,47.6],[3000,1294,3,0.5,47.4],[3100,1282,3,0.5,47.2],[3200,1270,3,0.5,47.1],[3300,1257,3,0.5,46.9],[3400,1244,3,0.5,46.7],[3500,1231,4,0.5,46.5],[3600,1218,4,0.6,46.2],[3700,1205,4,0.6,46],[3800,1191,4,0.6,45.7],[3900,1176,5,0.6,45.5],[4000,1161,5,0.6,45.2],[4100,1146,5,0.6,44.9],[4200,1130,6,0.6,44.5],[4300,1114,6,0.6,44.2],[4400,1096,7,0.7,43.8],[4500,1078,7,0.7,43.4],[4600,1059,8,0.7,43],[4700,1039,9,0.8,42.5],[4800,1018,10,0.8,42],[4900,994,11,0.8,41.4],[5000,969,14,0.9,40.7],[5100,940,16,1,39.9],[5200,906,20,1.1,38.9],[5300,861,29,1.5,37.6]]] +]], +["WP","m375a3",[ +["charge 0","chg0",[[100,1480,12,1.4,13.1],[200,1351,26,1.5,12.8],[300,1202,50,1.7,12.2],[400,978,122,2.4,10.8]]], +["charge 1","chg1",[[300,1507,3,0.8,26.2],[400,1475,3,0.8,26.1],[500,1443,4,0.8,26],[600,1410,5,0.8,25.9],[700,1375,7,0.8,25.7],[800,1340,8,0.9,25.5],[900,1304,10,0.9,25.2],[1000,1265,12,0.9,24.9],[1100,1224,14,1,24.6],[1200,1180,17,1,24.1],[1300,1131,21,1.1,23.6],[1400,1075,27,1.2,22.9],[1500,1007,39,1.4,22],[1600,907,68,2,20.5]]], +["charge 2","chg2",[[600,1495,2,0.6,35.4],[700,1477,2,0.6,35.3],[800,1459,2,0.6,35.2],[900,1440,2,0.6,35.1],[1000,1422,3,0.6,35],[1100,1403,3,0.6,34.9],[1200,1383,3,0.6,34.8],[1300,1364,4,0.6,34.6],[1400,1344,4,0.7,34.5],[1500,1323,5,0.7,34.3],[1600,1302,5,0.7,34.1],[1700,1280,6,0.7,33.8],[1800,1258,7,0.7,33.6],[1900,1235,7,0.7,33.3],[2000,1210,8,0.7,33],[2100,1185,9,0.8,32.7],[2200,1158,10,0.8,32.3],[2300,1130,12,0.8,31.9],[2400,1099,13,0.9,31.4],[2500,1065,16,1,30.8],[2600,1028,19,1,30.2],[2700,984,25,1.2,29.4],[2800,929,35,1.4,28.3],[2900,838,68,2.3,26.3]]], +["charge 3","chg3",[[800,1500,1,0.5,42.5],[900,1487,1,0.5,42.4],[1000,1475,1,0.5,42.4],[1100,1462,1,0.5,42.3],[1200,1449,2,0.5,42.2],[1300,1435,2,0.5,42.2],[1400,1422,2,0.5,42.1],[1500,1409,2,0.5,42],[1600,1395,2,0.5,41.9],[1700,1381,2,0.5,41.7],[1800,1367,3,0.6,41.6],[1900,1353,3,0.6,41.5],[2000,1338,3,0.6,41.3],[2100,1323,3,0.6,41.2],[2200,1308,4,0.6,41],[2300,1293,4,0.6,40.8],[2400,1277,4,0.6,40.6],[2500,1261,4,0.6,40.4],[2600,1245,5,0.6,40.2],[2700,1228,5,0.6,39.9],[2800,1210,5,0.6,39.7],[2900,1192,6,0.6,39.4],[3000,1173,7,0.7,39.1],[3100,1154,7,0.7,38.7],[3200,1133,8,0.7,38.4],[3300,1112,9,0.7,38],[3400,1089,10,0.8,37.6],[3500,1065,11,0.8,37.1],[3600,1039,13,0.9,36.5],[3700,1010,15,0.9,35.9],[3800,977,18,1,35.2],[3900,939,23,1.2,34.2],[4000,890,31,1.4,33]]], +["charge 4","chg4",[[900,1504,1,0.5,46.4],[1000,1494,1,0.5,46.4],[1100,1483,1,0.5,46.3],[1200,1472,1,0.5,46.3],[1300,1461,1,0.5,46.2],[1400,1449,1,0.5,46.1],[1500,1438,1,0.5,46.1],[1600,1427,2,0.5,46],[1700,1415,2,0.5,45.9],[1800,1404,2,0.5,45.8],[1900,1392,2,0.5,45.7],[2000,1380,2,0.5,45.6],[2100,1368,2,0.5,45.5],[2200,1356,2,0.5,45.3],[2300,1344,3,0.5,45.2],[2400,1331,3,0.5,45],[2500,1319,3,0.5,44.9],[2600,1306,3,0.5,44.7],[2700,1292,3,0.5,44.6],[2800,1279,3,0.5,44.4],[2900,1265,4,0.6,44.2],[3000,1251,4,0.6,44],[3100,1237,4,0.6,43.8],[3200,1222,4,0.6,43.5],[3300,1207,5,0.6,43.3],[3400,1192,5,0.6,43],[3500,1176,5,0.6,42.7],[3600,1159,6,0.6,42.4],[3700,1142,6,0.6,42.1],[3800,1124,7,0.7,41.7],[3900,1105,7,0.7,41.4],[4000,1086,8,0.7,41],[4100,1065,9,0.7,40.5],[4200,1043,10,0.8,40],[4300,1019,12,0.8,39.4],[4400,992,13,0.9,38.8],[4500,963,16,1,38.1],[4600,929,20,1.1,37.2],[4700,886,27,1.3,36],[4800,820,48,2,34.1]]] +]], +["Illum","m853a1",[ +["charge 1","chg1",[[300,1507,3,0.8,26.2],[400,1475,3,0.8,26.1],[500,1443,4,0.8,26],[600,1410,5,0.8,25.9],[700,1375,7,0.8,25.7],[800,1340,8,0.9,25.5],[900,1304,10,0.9,25.2],[1000,1265,12,0.9,24.9],[1100,1224,14,1,24.6],[1200,1180,17,1,24.1],[1300,1131,21,1.1,23.6],[1400,1075,27,1.2,22.9],[1500,1007,39,1.4,22],[1600,907,68,2,20.5]]], +["charge 2","chg2",[[600,1495,2,0.6,35.4],[700,1477,2,0.6,35.3],[800,1459,2,0.6,35.2],[900,1440,2,0.6,35.1],[1000,1422,3,0.6,35],[1100,1403,3,0.6,34.9],[1200,1383,3,0.6,34.8],[1300,1364,4,0.6,34.6],[1400,1344,4,0.7,34.5],[1500,1323,5,0.7,34.3],[1600,1302,5,0.7,34.1],[1700,1280,6,0.7,33.8],[1800,1258,7,0.7,33.6],[1900,1235,7,0.7,33.3],[2000,1210,8,0.7,33],[2100,1185,9,0.8,32.7],[2200,1158,10,0.8,32.3],[2300,1130,12,0.8,31.9],[2400,1099,13,0.9,31.4],[2500,1065,16,1,30.8],[2600,1028,19,1,30.2],[2700,984,25,1.2,29.4],[2800,929,35,1.4,28.3],[2900,838,68,2.3,26.3]]], +["charge 3","chg3",[[800,1500,1,0.5,42.5],[900,1487,1,0.5,42.4],[1000,1475,1,0.5,42.4],[1100,1462,1,0.5,42.3],[1200,1449,2,0.5,42.2],[1300,1435,2,0.5,42.2],[1400,1422,2,0.5,42.1],[1500,1409,2,0.5,42],[1600,1395,2,0.5,41.9],[1700,1381,2,0.5,41.7],[1800,1367,3,0.6,41.6],[1900,1353,3,0.6,41.5],[2000,1338,3,0.6,41.3],[2100,1323,3,0.6,41.2],[2200,1308,4,0.6,41],[2300,1293,4,0.6,40.8],[2400,1277,4,0.6,40.6],[2500,1261,4,0.6,40.4],[2600,1245,5,0.6,40.2],[2700,1228,5,0.6,39.9],[2800,1210,5,0.6,39.7],[2900,1192,6,0.6,39.4],[3000,1173,7,0.7,39.1],[3100,1154,7,0.7,38.7],[3200,1133,8,0.7,38.4],[3300,1112,9,0.7,38],[3400,1089,10,0.8,37.6],[3500,1065,11,0.8,37.1],[3600,1039,13,0.9,36.5],[3700,1010,15,0.9,35.9],[3800,977,18,1,35.2],[3900,939,23,1.2,34.2],[4000,890,31,1.4,33]]], +["charge 4","chg4",[[1000,1502,1,0.5,48.5],[1100,1492,1,0.5,48.4],[1200,1482,1,0.5,48.4],[1300,1471,1,0.5,48.3],[1400,1461,1,0.5,48.3],[1500,1451,1,0.5,48.2],[1600,1441,1,0.5,48.1],[1700,1430,1,0.5,48],[1800,1419,1,0.5,48],[1900,1409,2,0.5,47.9],[2000,1398,2,0.5,47.8],[2100,1387,2,0.5,47.7],[2200,1376,2,0.5,47.6],[2300,1365,2,0.5,47.4],[2400,1354,2,0.5,47.3],[2500,1342,2,0.5,47.2],[2600,1331,2,0.5,47],[2700,1319,3,0.5,46.9],[2800,1307,3,0.5,46.7],[2900,1295,3,0.5,46.6],[3000,1282,3,0.5,46.4],[3100,1270,3,0.5,46.2],[3200,1257,3,0.6,46],[3300,1244,4,0.5,45.8],[3400,1230,4,0.5,45.6],[3500,1216,4,0.6,45.4],[3600,1202,4,0.6,45.1],[3700,1188,5,0.6,44.9],[3800,1173,5,0.6,44.6],[3900,1157,5,0.6,44.3],[4000,1141,6,0.6,44],[4100,1125,6,0.6,43.6],[4200,1108,7,0.7,43.3],[4300,1089,7,0.7,42.9],[4400,1071,8,0.7,42.5],[4500,1050,9,0.7,42],[4600,1029,10,0.8,41.5],[4700,1006,11,0.8,40.9],[4800,981,13,0.9,40.3],[4900,952,16,1,39.5],[5000,919,19,1.1,38.6],[5100,877,26,1.3,37.4],[5200,812,47,2.1,35.3]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["charge 0", "charge 1", "charge 2", "charge 3", "charge 4"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/arty_range_tables/tables/m252_legacy.sqf b/TO_MERGE/ace/arty_range_tables/tables/m252_legacy.sqf new file mode 100644 index 0000000000..dac4194f0f --- /dev/null +++ b/TO_MERGE/ace/arty_range_tables/tables/m252_legacy.sqf @@ -0,0 +1,21 @@ +_tableData_tables = [ +["HE","ACE_1Rnd_81mmHE_M252",[ +["Close","",[[100,1483,11,1.4,13.3],[125,1453,14,1.4,13.2],[150,1422,18,1.4,13.2],[175,1391,21,1.5,13.1],[200,1359,25,1.5,13],[225,1326,30,1.5,12.9],[250,1291,34,1.6,12.7],[275,1255,40,1.6,12.6],[300,1216,47,1.7,12.4],[325,1175,56,1.7,12.2],[350,1129,66,1.8,12],[375,1078,81,2,11.6],[400,1015,105,2.2,11.2],[425,927,150,2.6,10.5]]], +["Medium","",[[400,1505,2,0.7,29.6],[450,1493,2,0.7,29.6],[500,1481,3,0.7,29.5],[550,1469,3,0.7,29.5],[600,1457,3,0.7,29.4],[650,1445,4,0.7,29.4],[700,1432,4,0.7,29.3],[750,1420,4,0.7,29.3],[800,1407,5,0.7,29.2],[850,1395,5,0.7,29.1],[900,1382,5,0.7,29],[950,1369,6,0.7,29],[1000,1356,6,0.7,28.9],[1050,1342,7,0.7,28.8],[1100,1329,7,0.7,28.7],[1150,1315,7,0.7,28.6],[1200,1301,8,0.8,28.4],[1250,1287,9,0.8,28.3],[1300,1272,9,0.8,28.2],[1350,1257,10,0.8,28],[1400,1242,11,0.8,27.9],[1450,1227,11,0.8,27.7],[1500,1211,12,0.8,27.6],[1550,1194,13,0.9,27.4],[1600,1177,14,0.9,27.2],[1650,1159,16,0.9,27],[1700,1141,17,1,26.7],[1750,1121,19,1,26.5],[1800,1101,20,1,26.2],[1850,1079,23,1.1,25.9],[1900,1056,25,1.1,25.6],[1950,1030,29,1.2,25.2],[2000,1001,34,1.3,24.7],[2050,968,41,1.5,24.2],[2100,926,54,1.8,23.4],[2150,862,84,2.4,22.2]]], +["Far","",[[1100,1506,1,0.4,49.3],[1200,1498,1,0.4,49.3],[1300,1489,1,0.4,49.2],[1400,1480,1,0.4,49.2],[1500,1472,1,0.4,49.1],[1600,1463,1,0.4,49.1],[1700,1454,1,0.4,49],[1800,1445,1,0.4,49],[1900,1436,1,0.4,48.9],[2000,1428,2,0.4,48.8],[2100,1419,2,0.4,48.7],[2200,1409,2,0.4,48.7],[2300,1400,2,0.4,48.6],[2400,1391,2,0.4,48.5],[2500,1382,2,0.4,48.4],[2600,1373,2,0.4,48.3],[2700,1363,2,0.4,48.2],[2800,1354,2,0.4,48.1],[2900,1344,2,0.4,48],[3000,1334,3,0.4,47.9],[3100,1324,3,0.5,47.7],[3200,1315,3,0.5,47.6],[3300,1304,3,0.5,47.5],[3400,1294,3,0.5,47.3],[3500,1284,3,0.5,47.2],[3600,1274,3,0.5,47],[3700,1263,4,0.5,46.8],[3800,1252,4,0.5,46.7],[3900,1241,4,0.5,46.5],[4000,1230,4,0.5,46.3],[4100,1218,4,0.5,46.1],[4200,1207,5,0.5,45.9],[4300,1195,5,0.5,45.7],[4400,1183,5,0.5,45.4],[4500,1170,6,0.6,45.2],[4600,1157,6,0.6,44.9],[4700,1144,6,0.6,44.6],[4800,1130,7,0.6,44.3],[4900,1116,7,0.6,44],[5000,1101,8,0.6,43.7],[5100,1085,8,0.7,43.3],[5200,1069,9,0.7,43],[5300,1052,10,0.7,42.5],[5400,1033,11,0.8,42],[5500,1013,13,0.8,41.5],[5600,991,14,0.9,40.9],[5700,966,17,1,40.2],[5800,938,21,1.1,39.4],[5900,901,29,1.4,38.3],[6000,840,53,2.2,36.4]]] +]], +["WP","ACE_1Rnd_81mmWP_M252",[ +["Close","",[[100,1483,11,1.4,13.3],[125,1453,14,1.4,13.2],[150,1422,18,1.4,13.2],[175,1391,21,1.5,13.1],[200,1359,25,1.5,13],[225,1326,30,1.5,12.9],[250,1291,34,1.6,12.7],[275,1255,40,1.6,12.6],[300,1216,47,1.7,12.4],[325,1175,56,1.7,12.2],[350,1129,66,1.8,12],[375,1078,81,2,11.6],[400,1015,105,2.2,11.2],[425,927,150,2.6,10.5]]], +["Medium","",[[400,1505,2,0.7,29.6],[450,1493,2,0.7,29.6],[500,1481,3,0.7,29.5],[550,1469,3,0.7,29.5],[600,1457,3,0.7,29.4],[650,1445,4,0.7,29.4],[700,1432,4,0.7,29.3],[750,1420,4,0.7,29.3],[800,1407,5,0.7,29.2],[850,1395,5,0.7,29.1],[900,1382,5,0.7,29],[950,1369,6,0.7,29],[1000,1356,6,0.7,28.9],[1050,1342,7,0.7,28.8],[1100,1329,7,0.7,28.7],[1150,1315,7,0.7,28.6],[1200,1301,8,0.8,28.4],[1250,1287,9,0.8,28.3],[1300,1272,9,0.8,28.2],[1350,1257,10,0.8,28],[1400,1242,11,0.8,27.9],[1450,1227,11,0.8,27.7],[1500,1211,12,0.8,27.6],[1550,1194,13,0.9,27.4],[1600,1177,14,0.9,27.2],[1650,1159,16,0.9,27],[1700,1141,17,1,26.7],[1750,1121,19,1,26.5],[1800,1101,20,1,26.2],[1850,1079,23,1.1,25.9],[1900,1056,25,1.1,25.6],[1950,1030,29,1.2,25.2],[2000,1001,34,1.3,24.7],[2050,968,41,1.5,24.2],[2100,926,54,1.8,23.4],[2150,862,84,2.4,22.2]]], +["Far","",[[1100,1506,1,0.4,49.3],[1200,1498,1,0.4,49.3],[1300,1489,1,0.4,49.2],[1400,1480,1,0.4,49.2],[1500,1472,1,0.4,49.1],[1600,1463,1,0.4,49.1],[1700,1454,1,0.4,49],[1800,1445,1,0.4,49],[1900,1436,1,0.4,48.9],[2000,1428,2,0.4,48.8],[2100,1419,2,0.4,48.7],[2200,1409,2,0.4,48.7],[2300,1400,2,0.4,48.6],[2400,1391,2,0.4,48.5],[2500,1382,2,0.4,48.4],[2600,1373,2,0.4,48.3],[2700,1363,2,0.4,48.2],[2800,1354,2,0.4,48.1],[2900,1344,2,0.4,48],[3000,1334,3,0.4,47.9],[3100,1324,3,0.5,47.7],[3200,1315,3,0.5,47.6],[3300,1304,3,0.5,47.5],[3400,1294,3,0.5,47.3],[3500,1284,3,0.5,47.2],[3600,1274,3,0.5,47],[3700,1263,4,0.5,46.8],[3800,1252,4,0.5,46.7],[3900,1241,4,0.5,46.5],[4000,1230,4,0.5,46.3],[4100,1218,4,0.5,46.1],[4200,1207,5,0.5,45.9],[4300,1195,5,0.5,45.7],[4400,1183,5,0.5,45.4],[4500,1170,6,0.6,45.2],[4600,1157,6,0.6,44.9],[4700,1144,6,0.6,44.6],[4800,1130,7,0.6,44.3],[4900,1116,7,0.6,44],[5000,1101,8,0.6,43.7],[5100,1085,8,0.7,43.3],[5200,1069,9,0.7,43],[5300,1052,10,0.7,42.5],[5400,1033,11,0.8,42],[5500,1013,13,0.8,41.5],[5600,991,14,0.9,40.9],[5700,966,17,1,40.2],[5800,938,21,1.1,39.4],[5900,901,29,1.4,38.3],[6000,840,53,2.2,36.4]]] +]], +["Illum","ACE_1Rnd_81mmILLUM_M252",[ +["Close","",[]], +["Medium","",[[350,1511,3,0.8,27.4],[400,1498,3,0.8,27.3],[450,1485,3,0.8,27.3],[500,1471,4,0.8,27.2],[550,1458,4,0.8,27.2],[600,1445,5,0.8,27.1],[650,1431,5,0.8,27],[700,1418,6,0.8,27],[750,1404,6,0.8,26.9],[800,1390,7,0.9,26.8],[850,1376,7,0.9,26.7],[900,1362,8,0.9,26.6],[950,1347,8,0.9,26.5],[1000,1332,9,0.9,26.4],[1050,1317,10,0.9,26.2],[1100,1301,10,0.9,26.1],[1150,1285,11,0.9,25.9],[1200,1269,12,1,25.8],[1250,1252,13,1,25.6],[1300,1235,15,1,25.4],[1350,1217,16,1,25.2],[1400,1198,17,1.1,25],[1450,1178,19,1.1,24.7],[1500,1158,21,1.2,24.4],[1550,1135,24,1.2,24.1],[1600,1112,28,1.3,23.8],[1650,1086,32,1.4,23.4],[1700,1056,38,1.6,22.9],[1750,1021,48,1.8,22.3],[1800,974,65,2.2,21.4]]], +["Far","",[[1000,1513,1,0.4,48.1],[1100,1504,1,0.4,48],[1200,1495,1,0.4,48],[1300,1486,1,0.4,47.9],[1400,1477,1,0.4,47.9],[1500,1468,1,0.4,47.8],[1600,1459,1,0.4,47.8],[1700,1450,1,0.4,47.7],[1800,1441,1,0.4,47.6],[1900,1432,2,0.4,47.6],[2000,1423,2,0.5,47.5],[2100,1413,2,0.5,47.4],[2200,1404,2,0.5,47.3],[2300,1395,2,0.5,47.2],[2400,1385,2,0.5,47.1],[2500,1375,2,0.5,47],[2600,1366,2,0.5,46.9],[2700,1356,2,0.5,46.8],[2800,1346,3,0.5,46.7],[2900,1336,3,0.5,46.6],[3000,1326,3,0.5,46.4],[3100,1316,3,0.5,46.3],[3200,1305,3,0.5,46.1],[3300,1295,3,0.5,46],[3400,1284,4,0.5,45.8],[3500,1273,4,0.5,45.7],[3600,1262,4,0.5,45.5],[3700,1251,4,0.5,45.3],[3800,1239,4,0.5,45.1],[3900,1228,5,0.5,44.9],[4000,1216,5,0.6,44.7],[4100,1203,5,0.6,44.4],[4200,1191,6,0.6,44.2],[4300,1178,6,0.6,44],[4400,1165,6,0.6,43.7],[4500,1151,7,0.6,43.4],[4600,1137,7,0.6,43.1],[4700,1122,8,0.7,42.7],[4800,1106,9,0.7,42.4],[4900,1090,9,0.7,42],[5000,1073,10,0.8,41.6],[5100,1054,11,0.8,41.1],[5200,1034,13,0.8,40.6],[5300,1013,15,0.9,40],[5400,988,17,1,39.3],[5500,959,22,1.2,38.5],[5600,923,29,1.4,37.3],[5700,861,56,2.4,35.3]]] +]] +]; +_tableData_mags = ["HE", "WP", "Illum"]; +_tableData_charges = ["Close", "Medium", "Far"]; +//return +[_tableData_tables, _tableData_mags, _tableData_charges] \ No newline at end of file diff --git a/TO_MERGE/ace/frag/$PBOPREFIX$ b/TO_MERGE/ace/frag/$PBOPREFIX$ new file mode 100644 index 0000000000..c08682245e --- /dev/null +++ b/TO_MERGE/ace/frag/$PBOPREFIX$ @@ -0,0 +1 @@ +x\uo\addons\sys_frag \ No newline at end of file diff --git a/TO_MERGE/ace/frag/CfgAmmo.hpp b/TO_MERGE/ace/frag/CfgAmmo.hpp new file mode 100644 index 0000000000..c9d13d3ce3 --- /dev/null +++ b/TO_MERGE/ace/frag/CfgAmmo.hpp @@ -0,0 +1,352 @@ +#define BASE_DRAG -0.01 +#define HD_MULT 5 +#define BASE_DRAG_HD (BASE_DRAG*HD_MULT) + +class CfgAmmo { + //class ace_arty_105mm_m1_m782_time; + //class ace_arty_105mm_m1_m782_prox: ace_arty_105mm_m1_m782_time {}; + //class ace_arty_105mm_m1_m782_delay: ace_arty_105mm_m1_m782_prox { + // ACE_FRAG_SKIP = 1; + //}; + class Bo_GBU12_LGB; + class Nou_GBU12 : Bo_GBU12_LGB { + ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + ACE_FRAG_METAL = 140000; + ACE_FRAG_CHARGE = 87000; + ACE_FRAG_GURNEY_C = 2320; + ACE_FRAG_GURNEY_K = 1/2; + sideAirFriction = 0.04; + airFriction = 0.04; + laserLock = 0; + }; + + class GrenadeBase; + class Grenade; + class GrenadeHand: Grenade { + ACE_FRAG_SKIP = 0; + ACE_FRAG_FORCE = 1; + // This is a good high-drag frag type for grenades. + ACE_FRAG_CLASSES[] = {"ACE_frag_medium_HD"}; + /* + These values are based on the M67 Grenade, should be tweaked for + individual grenades. + */ + ACE_FRAG_METAL = 210; // metal in grams + ACE_FRAG_CHARGE = 185; // explosive in grams + ACE_FRAG_GURNEY_C = 2843; // Gurney velocity constant for explosive type. See: http://en.wikipedia.org/wiki/Gurney_equations + ACE_FRAG_GURNEY_K = 3/5; // Gurney shape factor, in this case a sphere. See: http://en.wikipedia.org/wiki/Gurney_equations + }; + class GrenadeHand_stone: GrenadeHand { + ACE_FRAG_SKIP = 1; + }; + class SmokeShell: GrenadeHand { + ACE_FRAG_SKIP = 1; + }; + + class RocketBase; + //class R_Hydra_HE: RocketBase { + // ACE_FRAG_SKIP = 1; + //}; + + //class R_57mm_HE: RocketBase { + // ACE_FRAG_SKIP = 1; + //}; + + class R_80mm_HE: RocketBase { + ACE_FRAG_SKIP = 1; + }; + + //class R_S8T_AT: RocketBase { + // ACE_FRAG_SKIP = 1; + //}; + + class BombCore; + class Bo_Mk82: BombCore { + ACE_FRAG_CLASSES[] = {"ACE_frag_large", "ACE_frag_large", "ACE_frag_large_HD", "ACE_frag_large", "ACE_frag_huge", "ACE_frag_huge_HD", "ACE_frag_huge"}; + ACE_FRAG_METAL = 140000; + ACE_FRAG_CHARGE = 87000; + ACE_FRAG_GURNEY_C = 2320; + ACE_FRAG_GURNEY_K = 1/2; + }; + + + class G_40mm_HE: GrenadeBase { + ACE_FRAG_SKIP = 0; + ACE_FRAG_FORCE = 1; + }; + + class ACE_G_40mm_HEDP: G_40mm_HE { + }; + class ACE_G_40mm_HE: ACE_G_40mm_HEDP { + }; + class ACE_G_40mm_Practice: ACE_G_40mm_HE { + ACE_FRAG_SKIP = 1; + }; + class ACE_G40mm_HE_VOG25P: G_40mm_HE { + ACE_FRAG_SKIP = 0; + ACE_FRAG_FORCE = 1; + }; + + //class R_SMAW_HEDP; + //class R_MEEWS_HEDP : R_SMAW_HEDP { + // ACE_FRAG_FORCE = 1; + // ACE_FRAG_MULTIPLIER = 1.2; + //}; + + //class MissileBase; + //class M_Hellfire_AT: MissileBase { + // ACE_FRAG_FORCE = 1; + // ACE_FRAG_MULTIPLIER = 1.75; + //}; + + /* + class B_762x51_Ball; + class ACE_frag_base: B_762x51_Ball { ////TODO: B_762x45_Ball no longer exists, is this a valid replacement? + model = "\A3\Weapons_f\ammo\shell"; + timeToLive = 12; + typicalSpeed = 800; + // Fix sounds + effectFly = "AmmoClassic"; + soundDefault1[] = {"A3\sounds_f\weapons\hits\concrete_1.wav",0.158114,1,30}; + soundDefault2[] = {"A3\sounds_f\weapons\hits\concrete_2.wav",0.158114,1,30}; + soundDefault3[] = {"A3\sounds_f\weapons\hits\concrete_3.wav",0.158114,1,30}; + soundDefault4[] = {"A3\sounds_f\weapons\hits\concrete_4.wav",0.158114,1,30}; + soundDefault5[] = {"A3\sounds_f\weapons\hits\concrete_5.wav",0.158114,1,30}; + soundDefault6[] = {"A3\sounds_f\weapons\hits\concrete_6.wav",0.158114,1,30}; + soundDefault7[] = {"A3\sounds_f\weapons\hits\concrete_7.wav",0.158114,1,30}; + soundDefault8[] = {"A3\sounds_f\weapons\hits\concrete_8.wav",0.158114,1,30}; + soundGroundSoft1[] = {"A3\sounds_f\weapons\hits\soft_ground_1.wav",0.02811705,1,30}; + soundGroundSoft2[] = {"A3\sounds_f\weapons\hits\soft_ground_2.wav",0.02811705,1,30}; + soundGroundSoft3[] = {"A3\sounds_f\weapons\hits\soft_ground_3.wav",0.02811705,1,30}; + soundGroundSoft4[] = {"A3\sounds_f\weapons\hits\soft_ground_4.wav",0.02811705,1,30}; + soundGroundSoft5[] = {"A3\sounds_f\weapons\hits\soft_ground_5.wav",0.02811705,1,30}; + soundGroundSoft6[] = {"A3\sounds_f\weapons\hits\soft_ground_6.wav",0.02811705,1,30}; + soundGroundSoft7[] = {"A3\sounds_f\weapons\hits\soft_ground_7.wav",0.02811705,1,30}; + soundGroundSoft8[] = {"A3\sounds_f\weapons\hits\soft_ground_8.wav",0.02811705,1,30}; + soundGroundHard1[] = {"A3\sounds_f\weapons\hits\hard_ground_1.wav",0.62946,1,40}; + soundGroundHard2[] = {"A3\sounds_f\weapons\hits\hard_ground_2.wav",0.62946,1,40}; + soundGroundHard3[] = {"A3\sounds_f\weapons\hits\hard_ground_3.wav",0.62946,1,40}; + soundGroundHard4[] = {"A3\sounds_f\weapons\hits\hard_ground_4.wav",0.62946,1,40}; + soundGroundHard5[] = {"A3\sounds_f\weapons\hits\hard_ground_5.wav",0.62946,1,40}; + soundGroundHard6[] = {"A3\sounds_f\weapons\hits\hard_ground_6.wav",0.62946,1,40}; + soundGroundHard7[] = {"A3\sounds_f\weapons\hits\hard_ground_7.wav",0.62946,1,40}; + soundGroundHard8[] = {"A3\sounds_f\weapons\hits\hard_ground_8.wav",0.62946,1,40}; + soundMetal1[] = {"A3\sounds_f\weapons\hits\metal_1.wav",0.158114,1,45}; + soundMetal2[] = {"A3\sounds_f\weapons\hits\metal_2.wav",0.158114,1,45}; + soundMetal3[] = {"A3\sounds_f\weapons\hits\metal_3.wav",0.158114,1,45}; + soundMetal4[] = {"A3\sounds_f\weapons\hits\metal_4.wav",0.158114,1,45}; + soundMetal5[] = {"A3\sounds_f\weapons\hits\metal_5.wav",0.158114,1,45}; + soundMetal6[] = {"A3\sounds_f\weapons\hits\metal_6.wav",0.158114,1,45}; + soundMetal7[] = {"A3\sounds_f\weapons\hits\metal_7.wav",0.158114,1,45}; + soundMetal8[] = {"A3\sounds_f\weapons\hits\metal_8.wav",0.158114,1,45}; + soundGlass1[] = {"A3\sounds_f\weapons\hits\glass_1.wav",0.177828,1,25}; + soundGlass2[] = {"A3\sounds_f\weapons\hits\glass_2.wav",0.177828,1,25}; + soundGlass3[] = {"A3\sounds_f\weapons\hits\glass_3.wav",0.177828,1,25}; + soundGlass4[] = {"A3\sounds_f\weapons\hits\glass_4.wav",0.177828,1,25}; + soundGlass5[] = {"A3\sounds_f\weapons\hits\glass_5.wav",0.177828,1,25}; + soundGlass6[] = {"A3\sounds_f\weapons\hits\glass_6.wav",0.177828,1,25}; + soundGlass7[] = {"A3\sounds_f\weapons\hits\glass_7.wav",0.177828,1,25}; + soundGlass8[] = {"A3\sounds_f\weapons\hits\glass_8.wav",0.177828,1,25}; + soundGlassArmored1[] = {"A3\sounds_f\weapons\hits\glass_arm_1.wav",0.177828,1,30}; + soundGlassArmored2[] = {"A3\sounds_f\weapons\hits\glass_arm_2.wav",0.177828,1,30}; + soundGlassArmored3[] = {"A3\sounds_f\weapons\hits\glass_arm_3.wav",0.177828,1,30}; + soundGlassArmored4[] = {"A3\sounds_f\weapons\hits\glass_arm_4.wav",0.177828,1,30}; + soundGlassArmored5[] = {"A3\sounds_f\weapons\hits\glass_arm_5.wav",0.177828,1,30}; + soundGlassArmored6[] = {"A3\sounds_f\weapons\hits\glass_arm_6.wav",0.177828,1,30}; + soundGlassArmored7[] = {"A3\sounds_f\weapons\hits\glass_arm_7.wav",0.177828,1,30}; + soundGlassArmored8[] = {"A3\sounds_f\weapons\hits\glass_arm_8.wav",0.177828,1,30}; + soundVehiclePlate1[] = {"A3\sounds_f\weapons\hits\metal_plate_1.wav",0.281170,1,40}; + soundVehiclePlate2[] = {"A3\sounds_f\weapons\hits\metal_plate_2.wav",0.281170,1,40}; + soundVehiclePlate3[] = {"A3\sounds_f\weapons\hits\metal_plate_3.wav",0.281170,1,40}; + soundVehiclePlate4[] = {"A3\sounds_f\weapons\hits\metal_plate_4.wav",0.281170,1,40}; + soundVehiclePlate5[] = {"A3\sounds_f\weapons\hits\metal_plate_5.wav",0.281170,1,40}; + soundVehiclePlate6[] = {"A3\sounds_f\weapons\hits\metal_plate_6.wav",0.281170,1,40}; + soundVehiclePlate7[] = {"A3\sounds_f\weapons\hits\metal_plate_7.wav",0.281170,1,40}; + soundVehiclePlate8[] = {"A3\sounds_f\weapons\hits\metal_plate_8.wav",0.281170,1,40}; + soundWood1[] = {"A3\sounds_f\weapons\hits\wood_1.wav",0.158114,1,30}; + soundWood2[] = {"A3\sounds_f\weapons\hits\wood_2.wav",0.158114,1,30}; + soundWood3[] = {"A3\sounds_f\weapons\hits\wood_3.wav",0.158114,1,30}; + soundWood4[] = {"A3\sounds_f\weapons\hits\wood_4.wav",0.158114,1,30}; + soundWood5[] = {"A3\sounds_f\weapons\hits\wood_5.wav",0.158114,1,30}; + soundWood6[] = {"A3\sounds_f\weapons\hits\wood_6.wav",0.158114,1,30}; + soundWood7[] = {"A3\sounds_f\weapons\hits\wood_7.wav",0.158114,1,30}; + soundWood8[] = {"A3\sounds_f\weapons\hits\wood_8.wav",0.158114,1,30}; + soundHitBody1[] = {"A3\sounds_f\weapons\hits\body_1.wav",0.0177828,1,25}; + soundHitBody2[] = {"A3\sounds_f\weapons\hits\body_2.wav",0.0177828,1,25}; + soundHitBody3[] = {"A3\sounds_f\weapons\hits\body_3.wav",0.0177828,1,25}; + soundHitBody4[] = {"A3\sounds_f\weapons\hits\body_4.wav",0.0177828,1,25}; + soundHitBody5[] = {"A3\sounds_f\weapons\hits\body_5.wav",0.0177828,1,25}; + soundHitBody6[] = {"A3\sounds_f\weapons\hits\body_6.wav",0.0177828,1,25}; + soundHitBody7[] = {"A3\sounds_f\weapons\hits\body_7.wav",0.0177828,1,25}; + soundHitBody8[] = {"A3\sounds_f\weapons\hits\body_8.wav",0.0177828,1,25}; + soundHitBuilding1[] = {"A3\sounds_f\weapons\hits\building_1.wav",0.251189,1,30}; + soundHitBuilding2[] = {"A3\sounds_f\weapons\hits\building_2.wav",0.251189,1,30}; + soundHitBuilding3[] = {"A3\sounds_f\weapons\hits\building_3.wav",0.251189,1,30}; + soundHitBuilding4[] = {"A3\sounds_f\weapons\hits\building_4.wav",0.251189,1,30}; + soundHitBuilding5[] = {"A3\sounds_f\weapons\hits\building_5.wav",0.251189,1,30}; + soundHitBuilding6[] = {"A3\sounds_f\weapons\hits\building_6.wav",0.251189,1,30}; + soundHitBuilding7[] = {"A3\sounds_f\weapons\hits\building_7.wav",0.251189,1,30}; + soundHitBuilding8[] = {"A3\sounds_f\weapons\hits\building_8.wav",0.251189,1,30}; + soundHitFoliage1[] = {"A3\sounds_f\weapons\hits\foliage_1.wav",0.177828,1,25}; + soundHitFoliage2[] = {"A3\sounds_f\weapons\hits\foliage_2.wav",0.177828,1,25}; + soundHitFoliage3[] = {"A3\sounds_f\weapons\hits\foliage_3.wav",0.177828,1,25}; + soundHitFoliage4[] = {"A3\sounds_f\weapons\hits\foliage_4.wav",0.177828,1,25}; + soundHitFoliage5[] = {"A3\sounds_f\weapons\hits\foliage_5.wav",0.177828,1,25}; + soundHitFoliage6[] = {"A3\sounds_f\weapons\hits\foliage_6.wav",0.177828,1,25}; + soundHitFoliage7[] = {"A3\sounds_f\weapons\hits\foliage_7.wav",0.177828,1,25}; + soundHitFoliage8[] = {"A3\sounds_f\weapons\hits\foliage_8.wav",0.177828,1,25}; + soundPlastic1[] = {"A3\sounds_f\weapons\hits\plastic_1.wav",0.177828,1,25}; + soundPlastic2[] = {"A3\sounds_f\weapons\hits\plastic_2.wav",0.177828,1,25}; + soundPlastic3[] = {"A3\sounds_f\weapons\hits\plastic_3.wav",0.177828,1,25}; + soundPlastic4[] = {"A3\sounds_f\weapons\hits\plastic_4.wav",0.177828,1,25}; + soundPlastic5[] = {"A3\sounds_f\weapons\hits\plastic_5.wav",0.177828,1,25}; + soundPlastic6[] = {"A3\sounds_f\weapons\hits\plastic_6.wav",0.177828,1,25}; + soundPlastic7[] = {"A3\sounds_f\weapons\hits\plastic_7.wav",0.177828,1,25}; + soundPlastic8[] = {"A3\sounds_f\weapons\hits\plastic_8.wav",0.177828,1,25}; + soundConcrete1[] = {"A3\sounds_f\weapons\hits\concrete_1.wav",0.177828,1,35}; + soundConcrete2[] = {"A3\sounds_f\weapons\hits\concrete_2.wav",0.177828,1,35}; + soundConcrete3[] = {"A3\sounds_f\weapons\hits\concrete_3.wav",0.177828,1,35}; + soundConcrete4[] = {"A3\sounds_f\weapons\hits\concrete_4.wav",0.177828,1,35}; + soundConcrete5[] = {"A3\sounds_f\weapons\hits\concrete_5.wav",0.177828,1,35}; + soundConcrete6[] = {"A3\sounds_f\weapons\hits\concrete_6.wav",0.177828,1,35}; + soundConcrete7[] = {"A3\sounds_f\weapons\hits\concrete_7.wav",0.177828,1,35}; + soundConcrete8[] = {"A3\sounds_f\weapons\hits\concrete_8.wav",0.177828,1,35}; + soundRubber1[] = {"A3\sounds_f\weapons\hits\tyre_1.wav",0.158114,1,25}; + soundRubber2[] = {"A3\sounds_f\weapons\hits\tyre_2.wav",0.158114,1,25}; + soundRubber3[] = {"A3\sounds_f\weapons\hits\tyre_3.wav",0.158114,1,25}; + soundRubber4[] = {"A3\sounds_f\weapons\hits\tyre_4.wav",0.158114,1,25}; + soundRubber5[] = {"A3\sounds_f\weapons\hits\tyre_5.wav",0.158114,1,25}; + soundRubber6[] = {"A3\sounds_f\weapons\hits\tyre_6.wav",0.158114,1,25}; + soundRubber7[] = {"A3\sounds_f\weapons\hits\tyre_7.wav",0.158114,1,25}; + soundRubber8[] = {"A3\sounds_f\weapons\hits\tyre_8.wav",0.158114,1,25}; + soundWater1[] = {"A3\sounds_f\weapons\hits\water_01.wav",0.158114,1,25}; + soundWater2[] = {"A3\sounds_f\weapons\hits\water_02.wav",0.158114,1,25}; + soundWater3[] = {"A3\sounds_f\weapons\hits\water_03.wav",0.158114,1,25}; + soundWater4[] = {"A3\sounds_f\weapons\hits\water_04.wav",0.158114,1,25}; + soundWater5[] = {"A3\sounds_f\weapons\hits\water_05.wav",0.158114,1,25}; + soundWater6[] = {"A3\sounds_f\weapons\hits\water_06.wav",0.158114,1,25}; + soundWater7[] = {"A3\sounds_f\weapons\hits\water_07.wav",0.158114,1,25}; + soundWater8[] = {"A3\sounds_f\weapons\hits\water_08.wav",0.158114,1,25}; + hitGroundSoft[] = {"soundGroundSoft1",0.2,"soundGroundSoft2",0.2,"soundGroundSoft3",0.1,"soundGroundSoft4",0.1,"soundGroundSoft5",0.1,"soundGroundSoft6",0.1,"soundGroundSoft7",0.1,"soundGroundSoft8",0.1}; + hitGroundHard[] = {"soundGroundHard1",0.2,"soundGroundHard2",0.2,"soundGroundHard3",0.1,"soundGroundHard4",0.1,"soundGroundHard5",0.1,"soundGroundHard6",0.1,"soundGroundHard7",0.1,"soundGroundHard8",0.1}; + hitMan[] = {"soundHitBody1",0.125,"soundHitBody2",0.125,"soundHitBody3",0.125,"soundHitBody4",0.125,"soundHitBody5",0.125,"soundHitBody6",0.125,"soundHitBody7",0.125,"soundHitBody8",0.125}; + hitArmor[] = {"soundVehiclePlate1",0.125,"soundVehiclePlate2",0.125,"soundVehiclePlate3",0.125,"soundVehiclePlate4",0.125,"soundVehiclePlate5",0.125,"soundVehiclePlate6",0.125,"soundVehiclePlate7",0.125,"soundVehiclePlate8",0.125}; + hitBuilding[] = {"soundHitBuilding1",0.2,"soundHitBuilding2",0.2,"soundHitBuilding3",0.1,"soundHitBuilding4",0.1,"soundHitBuilding5",0.1,"soundHitBuilding6",0.1,"soundHitBuilding7",0.1,"soundHitBuilding8",0.1}; + hitFoliage[] = {"soundHitFoliage1",0.125,"soundHitFoliage2",0.125,"soundHitFoliage3",0.125,"soundHitFoliage4",0.125,"soundHitFoliage5",0.125,"soundHitFoliage6",0.125,"soundHitFoliage7",0.125,"soundHitFoliage8",0.125}; + hitWood[] = {"soundWood1",0.125,"soundWood2",0.125,"soundWood3",0.125,"soundWood4",0.125,"soundWood5",0.125,"soundWood6",0.125,"soundWood7",0.125,"soundWood8",0.125}; + hitGlass[] = {"soundGlass1",0.125,"soundGlass2",0.125,"soundGlass3",0.125,"soundGlass4",0.125,"soundGlass5",0.125,"soundGlass6",0.125,"soundGlass7",0.125,"soundGlass8",0.125}; + hitGlassArmored[] = {"soundGlassArmored1",0.125,"soundGlassArmored2",0.125,"soundGlassArmored3",0.125,"soundGlassArmored4",0.125,"soundGlassArmored5",0.125,"soundGlassArmored6",0.125,"soundGlassArmored7",0.125,"soundGlassArmored8",0.125}; + hitConcrete[] = {"soundConcrete1",0.125,"soundConcrete2",0.125,"soundConcrete3",0.125,"soundConcrete4",0.125,"soundConcrete5",0.125,"soundConcrete6",0.125,"soundConcrete7",0.125,"soundConcrete8",0.125}; + hitRubber[] = {"soundRubber1",0.125,"soundRubber2",0.125,"soundRubber3",0.125,"soundRubber4",0.125,"soundRubber5",0.125,"soundRubber6",0.125,"soundRubber7",0.125,"soundRubber8",0.125}; + hitPlastic[] = {"soundPlastic1",0.125,"soundPlastic2",0.125,"soundPlastic3",0.125,"soundPlastic4",0.125,"soundPlastic5",0.125,"soundPlastic6",0.125,"soundPlastic7",0.125,"soundPlastic8",0.125}; + hitDefault[] = {"soundDefault1",0.2,"soundDefault2",0.2,"soundDefault3",0.1,"soundDefault4",0.1,"soundDefault5",0.1,"soundDefault6",0.1,"soundDefault7",0.1,"soundDefault8",0.1}; + hitMetal[] = {"soundMetal1",0.125,"soundMetal2",0.125,"soundMetal3",0.125,"soundMetal4",0.125,"soundMetal5",0.125,"soundMetal6",0.125,"soundMetal7",0.125,"soundMetal8",0.125}; + hitMetalplate[] = {"soundVehiclePlate1",0.125,"soundVehiclePlate2",0.125,"soundVehiclePlate3",0.125,"soundVehiclePlate4",0.125,"soundVehiclePlate5",0.125,"soundVehiclePlate6",0.125,"soundVehiclePlate7",0.125,"soundVehiclePlate8",0.125}; + hitWater[] = {"soundWater1",0.125,"soundWater2",0.125,"soundWater3",0.125,"soundWater4",0.125,"soundWater5",0.125,"soundWater6",0.125,"soundWater7",0.125,"soundWater8",0.125}; + bulletFly1[] = {"A3\sounds_f\weapons\hits\bullet_by_1.wav",1,1,35}; + bulletFly2[] = {"A3\sounds_f\weapons\hits\bullet_by_2.wav",1,1,35}; + bulletFly3[] = {"A3\sounds_f\weapons\hits\bullet_by_3.wav",1,1,35}; + bulletFly4[] = {"A3\sounds_f\weapons\hits\bullet_by_4.wav",1,1,35}; + bulletFly5[] = {"A3\sounds_f\weapons\hits\bullet_by_5.wav",1,1,35}; + bulletFly6[] = {"A3\sounds_f\weapons\hits\bullet_by_6.wav",1,1,35}; + bulletFly7[] = {"A3\sounds_f\weapons\hits\bullet_by_7.wav",1,1,35}; + bulletFly8[] = {"A3\sounds_f\weapons\hits\bullet_by_8.wav",1,1,35}; + bulletFly[] = {"bulletFly1",0.166,"bulletFly2",0.166,"bulletFly3",0.166,"bulletFly4",0.166,"bulletFly5",0.166,"bulletFly6",0.167,"bulletFly7",0.166,"bulletFly8",0.167}; + supersonicCrackNear[] = {"A3\sounds_f\weapons\hits\sscrack1.wav",1,1,35}; + supersonicCrackFar[] = {"A3\sounds_f\weapons\hits\sscrack2.wav",1,1,135}; + }; + */ + + class B_65x39_Caseless; + class ACE_frag_base: B_65x39_Caseless { + timeToLive = 12; + typicalSpeed = 1500; + deflecting = 65; + }; + + class ACE_frag_tiny: ACE_frag_base { + hit = 6; + airFriction = BASE_DRAG; + caliber = 0.75; + }; + + class ACE_frag_tiny_HD: ACE_frag_base { + hit = 6; + airFriction = BASE_DRAG_HD; + caliber = 0.75; + }; + + class ACE_frag_small: ACE_frag_base { + hit = 12; + airFriction = BASE_DRAG*0.9; + }; + + class ACE_frag_small_HD: ACE_frag_base { + hit = 12; + airFriction = BASE_DRAG_HD*0.9; + }; + + class ACE_frag_medium: ACE_frag_base { + hit = 14; + airFriction = BASE_DRAG*0.75; + caliber = 1.2; + }; + + class ACE_frag_medium_HD: ACE_frag_base { + hit = 14; + airFriction = BASE_DRAG_HD*0.75; + caliber = 1.2; + }; + + class ACE_frag_large: ACE_frag_base { + hit = 28; + indirectHit = 2; + indirectHitRange = 0.25; + airFriction = BASE_DRAG*0.65; + caliber = 2; + explosive = 0; + + }; + + class ACE_frag_large_HD: ACE_frag_large { + hit = 28; + indirectHit = 2; + indirectHitRange = 0.25; + airFriction = BASE_DRAG_HD*0.65; + caliber = 2; + + + }; + + class ACE_frag_huge: ACE_frag_large { + hit = 40; + indirectHit = 4; + indirectHitRange = 0.5; + airFriction = BASE_DRAG*0.5; + caliber = 2.8; + }; + + class ACE_frag_huge_HD: ACE_frag_large { + hit = 40; + indirectHit = 4; + indirectHitRange = 0.5; + airFriction = BASE_DRAG_HD*0.5; + caliber = 2.8; + }; + + class ACE_frag_spall_small: ACE_frag_small { + timeToLive = 0.1; + }; + + class ACE_frag_spall_medium: ACE_frag_medium { + timeToLive = 0.15; + }; + + class ACE_frag_spall_large: ACE_frag_large { + timeToLive = 0.25; + }; + + class ACE_frag_spall_huge: ACE_frag_huge { + timeToLive = 0.3; + }; +}; diff --git a/TO_MERGE/ace/frag/CfgEventhandlers.hpp b/TO_MERGE/ace/frag/CfgEventhandlers.hpp new file mode 100644 index 0000000000..121b24d062 --- /dev/null +++ b/TO_MERGE/ace/frag/CfgEventhandlers.hpp @@ -0,0 +1,17 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; + +class Extended_FiredBIS_EventHandlers { + class AllVehicles { + ADDON = QUOTE(_this call FUNC(fired)); + }; +}; diff --git a/TO_MERGE/ace/frag/CfgVehicles.hpp b/TO_MERGE/ace/frag/CfgVehicles.hpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/ace/frag/XEH_post_init.sqf b/TO_MERGE/ace/frag/XEH_post_init.sqf new file mode 100644 index 0000000000..25cb5132c8 --- /dev/null +++ b/TO_MERGE/ace/frag/XEH_post_init.sqf @@ -0,0 +1,17 @@ +#include "script_component.hpp" +[QUOTE(ffsBIS), "oneachframe", QUOTE(FUNC(onFrame))] call BIS_fnc_addStackedEventHandler; +if(isServer) then { + [QGVAR(frag_eh), { _this call FUNC(frago); }] call CBA_fnc_addClientToServerEventhandler; +}; +GVAR(replacedBisArtyWrapper) = false; +[] spawn { + waitUntil { + if(!(isNil "BIS_ARTY_F_ShellFlight")) then { + ACE_WRAPPER_BIS_ARTY_F_ShellFlight = BIS_ARTY_F_ShellFlight; + BIS_ARTY_F_ShellFlight = FUNC(BIS_ARTY_WRAPPER); + GVAR(replacedBisArtyWrapper) = true; + }; + sleep 4; + GVAR(replacedBisArtyWrapper) + }; +}; diff --git a/TO_MERGE/ace/frag/XEH_pre_Init.sqf b/TO_MERGE/ace/frag/XEH_pre_Init.sqf new file mode 100644 index 0000000000..406e6e7f63 --- /dev/null +++ b/TO_MERGE/ace/frag/XEH_pre_Init.sqf @@ -0,0 +1,45 @@ +#include "script_component.hpp" + +#define ACE_TRACE_DRAW_INC 1 +ADDON = false; + +PREP(fired); +PREP(frago); +PREP(trackFragRound); +PREP(spallTrack); +PREP(doSpall); +PREP(vectorDiffFast); + +GVAR(trackedObjects) = []; +GVAR(blackList) = []; +GVAR(traceFrags) = false; + +GVAR(replacedBisArtyWrapper) = false; + +GVAR(TOTALFRAGS) = 0; + +GVAR(spallIsTrackingCount) = 0; +GVAR(spallHPData) = []; + +GVAR(traces) = []; +GVAR(tracesStarted) = false; +GVAR(traceID) = -1; +GVAR(autoTrace) = true; + + +// * Other Shit */ +PREP(frag_trace); +PREP(denyFrag); +PREP(BIS_ARTY_WRAPPER); +PREP(startTracing); +PREP(stopTracing); +PREP(clearTraces); +PREP(trackTrace); +PREP(addTrack); +PREP(drawTraces); +PREP(removeTrack); +PREP(spallHP); +PREP(addBlackList); +PREP(addManualTrack); + +ADDON = true; diff --git a/TO_MERGE/ace/frag/config.cpp b/TO_MERGE/ace/frag/config.cpp new file mode 100644 index 0000000000..acde4575b2 --- /dev/null +++ b/TO_MERGE/ace/frag/config.cpp @@ -0,0 +1,16 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "A3_Misc_F", "A3_Weapons_F" }; + version = VERSION; + author[] = {"Nou"}; + }; +}; + +//PRELOAD_ADDONS; + +#include "CfgEventhandlers.hpp" +#include "CfgAmmo.hpp" diff --git a/TO_MERGE/ace/frag/data/icon/ace_frag_ico_ca.paa b/TO_MERGE/ace/frag/data/icon/ace_frag_ico_ca.paa new file mode 100644 index 0000000000..54114e391c Binary files /dev/null and b/TO_MERGE/ace/frag/data/icon/ace_frag_ico_ca.paa differ diff --git a/TO_MERGE/ace/frag/fnc_BIS_ARTY_WRAPPER.sqf b/TO_MERGE/ace/frag/fnc_BIS_ARTY_WRAPPER.sqf new file mode 100644 index 0000000000..ee7881277b --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_BIS_ARTY_WRAPPER.sqf @@ -0,0 +1,13 @@ +#include "script_component.hpp" +_ret = [(_this select 6)] call FUNC(removeTrack); +if(!_ret) then { + [(_this select 6)] call FUNC(addBlackList); +}; +_this call ACE_WRAPPER_BIS_ARTY_F_ShellFlight; +_catEntry = BIS_ARTY_SHELLCAT select ((count BIS_ARTY_SHELLCAT) - 1); +_shell = _catEntry select 0; +_ARTY_DeployOnImpact = getText (configFile >> "CfgAmmo" >> "ARTY_DeployOnImpact"); +if(_ARTY_DeployOnImpact == "") then { + _this set[6, _shell]; + _this call FUNC(fired); +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_addBlackList.sqf b/TO_MERGE/ace/frag/fnc_addBlackList.sqf new file mode 100644 index 0000000000..f7b3faf902 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_addBlackList.sqf @@ -0,0 +1,4 @@ +#include "script_component.hpp" +private ["_round"]; +_round = _this select 0; +GVAR(blackList) set[(count GVAR(blackList)), _round]; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_addManualTrack.sqf b/TO_MERGE/ace/frag/fnc_addManualTrack.sqf new file mode 100644 index 0000000000..1719842240 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_addManualTrack.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" +private ["_round"]; +_round = _this select 0; +if(alive _round) then { + GVAR(trackedObjects) set[(count GVAR(trackedObjects)), _round]; + [FUNC(trackFragRound), 0, [_round, (getPosASL _round), (velocity _round), (typeOf _round), time, objNull, false, 0, 0]] call cba_fnc_addPerFrameHandler; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_addTrack.sqf b/TO_MERGE/ace/frag/fnc_addTrack.sqf new file mode 100644 index 0000000000..4ffaef5a7c --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_addTrack.sqf @@ -0,0 +1,20 @@ +#include "script_component.hpp" +if(GVAR(autoTrace)) then { + [] call FUNC(startTracing); +}; + +// setAccTime 0.05; +_index = (count GVAR(traces)); +_obj = _this select 1; +_origin = _this select 0; +_color = [1,0,0,1]; +if((count _this) > 2) then { + _color = _this select 2; +}; +_positions = []; +_objVel = velocity _obj; +_objTVel = sqrt((_objVel select 0)^2 + (_objVel select 1)^2 + (_objVel select 2)^2); +_positions set[(count _positions), [(getPos _obj), _objTVel]]; +_data = [_origin, typeOf _origin, typeOf _obj, _objTVel, _positions, _color]; +GVAR(traces) set[_index, _data]; +[FUNC(trackTrace), 0, [_obj, _index, time]] call cba_fnc_addPerFrameHandler; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_clearTraces.sqf b/TO_MERGE/ace/frag/fnc_clearTraces.sqf new file mode 100644 index 0000000000..b301094044 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_clearTraces.sqf @@ -0,0 +1,2 @@ +#include "script_component.hpp" +GVAR(traces) = []; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_denyFrag.sqf b/TO_MERGE/ace/frag/fnc_denyFrag.sqf new file mode 100644 index 0000000000..5459f0160a --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_denyFrag.sqf @@ -0,0 +1,7 @@ +#include "script_component.hpp" + +private ["_ret"]; +_ret = [(_this select 0)] call FUNC(removeTrack); +if(!_ret) then { + [(_this select 0)] call FUNC(addBlackList); +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_doSpall.sqf b/TO_MERGE/ace/frag/fnc_doSpall.sqf new file mode 100644 index 0000000000..0735ab3b65 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_doSpall.sqf @@ -0,0 +1,169 @@ +//fnc_doSpall.sqf +#include "script_component.hpp" +#ifdef DEBUG_MODE_FULL + GVAR(traceFrags) = true; +#endif +// player sideChat "WAAAAAAAAAAAAAAAAAAAAA"; +private ["_params", "_initialData", "_hpData", "_roundType", "_round", "_object", "_caliber", "_explosive", + "_idh", "_alive", "_exit", "_vm", "_velocity", "_unitDir", "_oldVelocity", "_curVelocity", "_diff", "_polar", + "_pos", "_spallPos", "_i", "_pos1", "_pos2", "_blah", "_data", "_spallPolar", "_c", "_warn", "_m", "_k", + "_gC", "_shellType", "_fragPower", "_spread", "_spallCount", "_elev", "_dir", "_vel", "_spallFragVect", + "_fragment"]; + + +_params = _this select 0; +[(_this select 1)] call cba_fnc_removePerFrameHandler; +_hitData = _params select 0; +_initialData = GVAR(spallHPData) select (_hitData select 0); +_hpData = (_hitData select 1) select (_params select 1); + + +_object = _hpData select 0; +_object removeEventHandler ["hitPart", _initialData select 0]; +_foundObjects = _initialData select 7; +_index = _foundObjects find _object; +if(_index != -1) then { + _foundObjecsts set[_index, nil]; +}; + +_roundType = (_initialData select 2); +_round = (_initialData select 3); +_object = (_initialData select 1); + +_caliber = getNumber(configFile >> "CfgAmmo" >> _roundType >> "caliber"); +_explosive = getNumber(configFile >> "CfgAmmo" >> _roundType >> "explosive"); +_idh = getNumber(configFile >> "CfgAmmo" >> _roundType >> "indirectHitRange"); + +_alive = true; +if(!alive _round && (_initialData select 6) == 1) then { + _alive = false; +}; + +if(_alive || {_caliber >= 2.5} || {(_explosive > 0 && {_idh >= 1})}) then { + // player sideChat format["BBBB"]; + _exit = false; + _vm = 1; + _velocity = _initialData select 5; + _unitDir = _velocity call BIS_fnc_unitVector; + + _oldVelocity = _velocity call BIS_fnc_magnitude; + _curVelocity = (velocity _round) call BIS_fnc_magnitude; + + if(alive _round) then { + _diff = [_velocity, (velocity _round)] call FUNC(vectorDiffFast); + _polar = _diff call CBA_fnc_vect2polar; + // player sideChat format["polar: %1", _polar]; + if((abs(_polar select 1) > 45 || abs(_polar select 2) > 45)) then { + if(_caliber < 2.5) then { + // player sideChat format["exit!"]; + _exit = true; + } else { + _vm = 1-(_curVelocity/_oldVelocity); + }; + }; + }; + if(!_exit) then { + _unitDir = _velocity call BIS_fnc_unitVector; + _pos = _hpData select 3; + _spallPos = nil; + for "_i" from 0 to 100 do { + _pos1 = [ + (_pos select 0) + (((_unitDir select 0)*0.01)*_i), + (_pos select 1) + (((_unitDir select 1)*0.01)*_i), + (_pos select 2) + (((_unitDir select 2)*0.01)*_i) + ]; + _pos2 = [ + (_pos select 0) + (((_unitDir select 0)*0.01)*(_i+1)), + (_pos select 1) + (((_unitDir select 1)*0.01)*(_i+1)), + (_pos select 2) + (((_unitDir select 2)*0.01)*(_i+1)) + ]; + // _blah = [_object, "FIRE"] intersect [_object worldToModel (ASLtoATL _pos1), _object worldToModel (ASLtoATL _pos2)]; + // diag_log text format["b: %1", _blah]; + + // _data = [nil, nil, nil, 1, [[ASLtoATL _pos1, 1], [ASLtoATL _pos2, 1]]]; + // NOU_TRACES set[(count NOU_TRACES), _data]; + + if(!lineIntersects [_pos1, _pos2]) exitWith { + // player sideChat format["FOUND!"]; + _spallPos = _pos2; + }; + }; + if(!isNil "_spallPos") then { + _spallPolar = _velocity call CBA_fnc_vect2polar; + + if(_explosive > 0) then { + // player sideChat format["EXPLOSIVE!"]; + _warn = false; + _c = getNumber(configFile >> "CfgAmmo" >> _roundType >> "ACE_frag_CHARGE"); + if(_c == 0) then { _c = 1; _warn = true;}; + _m = getNumber(configFile >> "CfgAmmo" >> _roundType >> "ACE_frag_METAL"); + if(_m == 0) then { _m = 2; _warn = true;}; + _k = getNumber(configFile >> "CfgAmmo" >> _roundType >> "ACE_frag_GURNEY_K"); + if(_k == 0) then { _k = 1/2; _warn = true;}; + _gC = getNumber(configFile >> "CfgAmmo" >> _roundType >> "ACE_frag_GURNEY_C"); + if(_gC == 0) then { _gC = 2440; _warn = true;}; + + if(_warn) then { + diag_log text format["Ammo class %1 lacks proper explosive properties definitions for sys_frag!", _roundType]; //TODO: turn this off when we get closer to release + }; + + _fragPower = (((_m/_c)+_k)^-(1/2))*_gC; + _spallPolar set[0, _fragPower*0.66]; + }; + + _fragTypes = [ + "ACE_frag_spall_small", "ACE_frag_spall_small", "ACE_frag_spall_small", + "ACE_frag_spall_small","ACE_frag_spall_medium","ACE_frag_spall_medium","ACE_frag_spall_medium", + "ACE_frag_spall_medium", "ACE_frag_spall_large", "ACE_frag_spall_large", "ACE_frag_spall_huge", + "ACE_frag_spall_huge" + + ]; + + // diag_log text format["SPALL POWER: %1", _spallPolar select 0]; + _spread = 15+(random 25); + _spallCount = 5+(random 10); + for "_i" from 1 to _spallCount do { + _elev = ((_spallPolar select 2)-_spread)+(random (_spread*2)); + _dir = ((_spallPolar select 1)-_spread)+(random (_spread*2)); + if(abs _elev > 90) then { + _dir = _dir + 180; + }; + _dir = _dir % 360; + _vel = (_spallPolar select 0)*0.33*_vm; + _vel = (_vel-(_vel*0.25))+(random (_vel*0.5)); + + _spallFragVect = [_vel, _dir, _elev] call CBA_fnc_polar2vect; + _fragType = round (random ((count _fragTypes)-1)); + _fragment = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; + _fragment setPosASL _spallPos; + _fragment setVelocity _spallFragVect; + // [fnc_spallTrackPFH, 0, [_fragment, diag_tickTime]] call cba_fnc_addPerFrameHandler; + if(GVAR(traceFrags)) then { + [player, _fragment, [1,0.5,0,1]] call FUNC(addTrack); + }; + }; + _spread = 5+(random 5); + _spallCount = 3+(random 5); + for "_i" from 1 to _spallCount do { + _elev = ((_spallPolar select 2)-_spread)+(random (_spread*2)); + _dir = ((_spallPolar select 1)-_spread)+(random (_spread*2)); + if(abs _elev > 90) then { + _dir = _dir + 180; + }; + _dir = _dir % 360; + _vel = (_spallPolar select 0)*0.55*_vm; + _vel = (_vel-(_vel*0.25))+(random (_vel*0.5)); + + _spallFragVect = [_vel, _dir, _elev] call CBA_fnc_polar2vect; + _fragType = round (random ((count _fragTypes)-1)); + _fragment = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; + _fragment setPosASL _spallPos; + _fragment setVelocity _spallFragVect; + // [fnc_spallTrackPFH, 0, [_fragment, diag_tickTime]] call cba_fnc_addPerFrameHandler; + if(GVAR(traceFrags)) then { + [player, _fragment, [1,0,0,1]] call FUNC(addTrack); + }; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_drawTraces.sqf b/TO_MERGE/ace/frag/fnc_drawTraces.sqf new file mode 100644 index 0000000000..8e3ab6146e --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_drawTraces.sqf @@ -0,0 +1,32 @@ +#include "script_component.hpp" +{ + _positions = _x select 4; + _color = _x select 5; + _index = 0; + _max = count _positions; + _startSpeed = (_positions select 0) select 1; + if(_startSpeed <= 0) then { + _startSpeed = 0.01; + }; + _lastSpd = []; + _lastPos = []; + while {_index < _max} do { + _data1 = _positions select _index; + _data2 = nil; + if(_index + ACE_TRACE_DRAW_INC >= _max) then { + _data2 = _positions select (_max - 1); + } else { + _data2 = _positions select (_index + ACE_TRACE_DRAW_INC); + }; + + _pos1 = _data1 select 0; + _pos2 = _data2 select 0; + _index = _index + ACE_TRACE_DRAW_INC; + + + drawLine3D [_pos1, _pos2, _color]; + _lastPos = _pos2; + _lastSpd = _data1 select 1; + }; + // drawIcon3D ["", [1,0,0,1], _lastPos, 0, 0, 0, format["%1m/s", _lastSpd], 1, 0.05, "PuristaMedium"]; +} forEach GVAR(traces); \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_fired.sqf b/TO_MERGE/ace/frag/fnc_fired.sqf new file mode 100644 index 0000000000..5910d2481b --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_fired.sqf @@ -0,0 +1,50 @@ +#include "script_component.hpp" +/* +private ["_gun", "_type", "_round", "_doFragTrack", "_doSpall"]; +if !(isNil QGVAR(enabled) && {GVAR(enabled)}) exitWith {}; + +_gun = _this select 0; +_type = _this select 4; +_round = _this select 6; + +if(_round in GVAR(blackList)) exitWith { + GVAR(blackList) = GVAR(blackList) - [_round]; +}; + +_doFragTrack = false; +if(_gun == player) then { + _doFragTrack = true; +} else { + if((gunner _gun) == player) then { + _doFragTrack = true; + } else { + if(local _gun && {!(isPlayer (gunner _gun))} && {!(isPlayer _gun)}) then { + _doFragTrack = true; + }; + }; +}; +_doSpall = true; +if(_doSpall) then { + if(GVAR(spallIsTrackingCount) <= 0) then { + GVAR(spallHPData) = []; + }; + if(GVAR(spallIsTrackingCount) > 5) then { + // player sideChat "LIMT!"; + _doSpall = false; + } else { + GVAR(spallIsTrackingCount) = GVAR(spallIsTrackingCount) + 1; + }; +}; +// player sideChat format["c: %1", GVAR(spallIsTrackingCount)]; +[player, _round, [1,0,0,1]] call FUNC(addTrack); +if(_doFragTrack && alive _round) then { + GVAR(trackedObjects) set[(count GVAR(trackedObjects)), _round]; + _spallTrack = []; + _spallTrackID = []; + [FUNC(trackFragRound), 0, [_round, (getPosASL _round), (velocity _round), _type, time, _gun, _doSpall, _spallTrack, _spallTrackID]] call cba_fnc_addPerFrameHandler; + if(_doSpall) then { + [_round, 2, _spallTrack, _spallTrackID] call FUNC(spallTrack); + }; + // player sideChat "WTF2"; +}; +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_frag_trace.sqf b/TO_MERGE/ace/frag/fnc_frag_trace.sqf new file mode 100644 index 0000000000..9b0c8dc3db --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_frag_trace.sqf @@ -0,0 +1,10 @@ +#include "script_component.hpp" + +private ["_params", "_shell"]; +_params = _this select 0; +_shell = _params select 0; +if(alive _shell) then { + drop ["\Ca\Data\Cl_basic","","Billboard",1,30,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[0.5],[[0,1,0,1]],[0],0.0,2.0,"","",""]; +} else { + [_this select 1] call FUNC(removeBISPFH); +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_frago.sqf b/TO_MERGE/ace/frag/fnc_frago.sqf new file mode 100644 index 0000000000..08599079b2 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_frago.sqf @@ -0,0 +1,230 @@ +//fnc_frago.sqf +// #define DEBUG_MODE_FULL +#include "script_component.hpp" + +#define FRAG_VEC_VAR 0.004 + +#define MAX_FRAG_COUNT 50 + +if(!isServer) exitWith { }; + +// _startTime = diag_tickTime; +private ["_round", "_lastPos", "_lastVel", "_shellType", "_gun", "_fragTypes", "_warn", "_atlPos", "_isArmed", + "_fuseDist", "_indirectHitRange", "_fragRange", "_c", "_m", "_k", "_gC", "_fragPower", "_fragPowerRandom", + "_manObjects", "_objects", "_crew", "_fragCount", "_fragArcs", "_doRandom", "_target", "_boundingBox", + "_targetPos", "_distance", "_add", "_bbX", "_bbY", "_bbZ", "_cubic", "_targetVel", "_baseVec", "_dir", + "_currentCount", "_count", "_vecVar", "_i", "_vec", "_fp", "_vel", "_fragType", "_fragObj", "_randomCount", + "_sectorSize", "_sectorOffset", "_randomDir"]; + + +_round = _this select 0; +_lastPos = _this select 1; +_lastVel = _this select 2; +_shellType = _this select 3; +_gun = nil; +if((count _this) > 5) then { + _gun = _this select 5; +}; + +_fragTypes = [ + "ACE_frag_tiny", "ACE_frag_tiny", "ACE_frag_tiny", + "ACE_frag_tiny_HD", "ACE_frag_tiny_HD", "ACE_frag_tiny_HD", + "ACE_frag_small","ACE_frag_small","ACE_frag_small","ACE_frag_small", + "ACE_frag_small_HD","ACE_frag_small_HD","ACE_frag_small_HD","ACE_frag_small_HD", + "ACE_frag_medium_HD", "ACE_frag_medium_HD", "ACE_frag_medium_HD", "ACE_frag_medium_HD", "ACE_frag_medium_HD" + ]; + +_warn = false; +if(isArray (configFile >> "CfgAmmo" >> _shellType >> "ACE_frag_CLASSES")) then { + _fragTypes = getArray (configFile >> "CfgAmmo" >> _shellType >> "ACE_frag_CLASSES"); +} else { + _warn = true; +}; + +_atlPos = ASLtoATL _lastPos; + +_isArmed = true; +if(!isNil "_gun") then { + _fuseDist = getNumber(configFile >> "CfgAmmo" >> _shellType >> "fuseDistance"); + _isArmed = ((getPosASL _gun) distance _lastPos > _fuseDist); +}; + +_indirectHitRange = getNumber(configFile >> "CfgAmmo" >> _shellType >> "indirecthitrange"); +_fragRange = 20*_indirectHitRange*4; +// _c = 185; // grams of comp-b +// _m = 210; // grams of fragmentating metal +// _k = 3/5; // spherical K factor +// _gC = 2843; // Gurney constant of comp-b in /ms + +// _c = 429; // grams of tritonal +// _m = 496; // grams of fragmentating metal +// _k = 1/2; // spherical K factor +// _gC = 2320; // Gurney constant of tritonal in /ms + + +_c = getNumber(configFile >> "CfgAmmo" >> _shellType >> "ACE_frag_CHARGE"); +if(_c == 0) then { _c = 1; _warn = true;}; +_m = getNumber(configFile >> "CfgAmmo" >> _shellType >> "ACE_frag_METAL"); +if(_m == 0) then { _m = 2; _warn = true;}; +_k = getNumber(configFile >> "CfgAmmo" >> _shellType >> "ACE_frag_GURNEY_K"); +if(_k == 0) then { _k = 1/2; _warn = true;}; +_gC = getNumber(configFile >> "CfgAmmo" >> _shellType >> "ACE_frag_GURNEY_C"); +if(_gC == 0) then { _gC = 2440; _warn = true;}; + +if(_warn) then { + diag_log text format["Ammo class %1 lacks proper explosive properties definitions for sys_frag!", _shellType]; //TODO: turn this off when we get closer to release +}; + +_fragPower = (((_m/_c)+_k)^-(1/2))*_gC; +_fragPower = _fragPower*0.8; // Gunery equation is for a non-fragmenting metal, imperical value of 80% represents fragmentation + +_fragPowerRandom = _fragPower*0.5; +if((_atlPos select 2) < 0.5) then { + _lastPos set[2, (_lastPos select 2)+0.5]; +}; + +// _manObjects = _atlPos nearEntities ["CaManBase", _fragRange]; + +// setAccTime 0.01; + +//_objects = nearestObjects [_atlPos, ["AllVehicles"], _fragRange]; // Not sure if tracking "ReammoBox" is required, if so revert this change for _objects +_objects = _atlPos nearEntities [["Car", "Motorcycle", "Tank", "StaticWeapon", "CAManBase", "Air", "Ship"], _fragRange]; + +// _objects = _manObjects; +// Target also people inside vehicles or manning weapons +_crew = []; +{ + { + _crew set [count _crew,_x] + } forEach (crew _x); +} forEach _objects; + +_objects = _objects - _crew; +_objects = _objects + _crew; + +_fragCount = 0; + +_fragArcs = []; +_fragArcs set[360, 0]; + +#ifdef DEBUG_MODE_FULL + player sideChat format["_fragRange: %1", _fragRange]; + player sideChat format["_objects: %1", _objects]; +#endif +_doRandom = false; +if(_isArmed && (count _objects) > 0) then { + { + //if(random(1) > 0.5) then { + _target = _x; + if(alive _target) then { + _boundingBox = boundingBox _target; + _targetPos = (getPosASL _target); + _distance = _targetPos distance _lastPos; + _add = (((_boundingBox select 1) select 2)/2)+((((_distance-(_fragpower/8)) max 0)/_fragPower)*10); + _bbX = (abs((_boundingBox select 0) select 0))+((_boundingBox select 1) select 0); + _bbY = (abs((_boundingBox select 0) select 1))+((_boundingBox select 1) select 1); + _bbZ = (abs((_boundingBox select 0) select 2))+((_boundingBox select 1) select 2); + _cubic = _bbX*_bbY*_bbZ; + if(_cubic > 1) then { + _doRandom = true; + + _targetVel = (velocity _target); + + _targetPos set[2, (_targetPos select 2)+_add]; + _targetPos set[0, (_targetPos select 0)+((_targetVel select 0)*(_distance/_fragPower))]; + _targetPos set[1, (_targetPos select 1)+((_targetVel select 1)*(_distance/_fragPower))]; + + _baseVec = [_lastPos, _targetPos] call BIS_fnc_vectorFromXToY; + + _dir = floor(_baseVec call CBA_fnc_vectDir); + _currentCount = _fragArcs select _dir; + if(isNil "_currentCount") then { + _currentCount = 0; + }; + if(_currentCount < 20) then { + _count = ceil(random(sqrt(_m/1000))); + _vecVar = FRAG_VEC_VAR; + if(!(_target isKindOf "Man")) then { + _vecVar = ((sqrt _cubic)/2000)+FRAG_VEC_VAR; + if((count (crew _target)) == 0 && _count > 0) then { + _count = 0 max (_count/2); + }; + }; + for "_i" from 1 to _count do { + _vec = +_baseVec; + + _vec set[0, (_vec select 0)-(_vecVar/2)+(random _vecVar)]; + _vec set[1, (_vec select 1)-(_vecVar/2)+(random _vecVar)]; + _vec set[2, (_vec select 2)-(_vecVar/2)+(random _vecVar)]; + + _fp = (_fragPower-(random (_fragPowerRandom))); + _vel = [ + (_vec select 0)*_fp, + (_vec select 1)*_fp, + (_vec select 2)*_fp + ]; + + _fragType = round (random ((count _fragTypes)-1)); + _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; + // diag_log text format["fp: %1 %2", _fp, typeOf _fragObj]; + _fragObj setPosASL _lastPos; + _fragObj setVectorDir _vec; + _fragObj setVelocity _vel; + #ifdef DEBUG_MODE_FULL + GVAR(TOTALFRAGS) = GVAR(TOTALFRAGS) + 1; + GVAR(traceFrags) = true; + #endif + if(GVAR(traceFrags)) then { + [player, _fragObj, [1,0,0,1]] call FUNC(addTrack); + }; + _fragCount = _fragCount + 1; + _currentCount = _currentCount + 1; + }; + _fragArcs set[_dir, _currentCount]; + }; + }; + }; + //}; + if(_fragCount > MAX_FRAG_COUNT) exitWith {}; + } forEach _objects; + if(_fragCount > MAX_FRAG_COUNT) exitWith {}; + _randomCount = (ceil((MAX_FRAG_COUNT-_fragCount)*0.1)) max 0; + _sectorSize = 360 / (_randomCount max 1); + // _doRandom = false; + if(_doRandom) then { + for "_i" from 1 to _randomCount do { + // Distribute evenly + _sectorOffset = 360 * (_i - 1) / (_randomCount max 1); + _randomDir = random(_sectorSize); + _vec = [cos(_sectorOffset + _randomDir), sin(_sectorOffset + _randomDir), sin(30 - (random 45))]; + + _fp = (_fragPower-(random (_fragPowerRandom))); + + _vel = [ + (_vec select 0)*_fp, + (_vec select 1)*_fp, + (_vec select 2)*_fp + ]; + + _fragType = round (random ((count _fragTypes)-1)); + _fragObj = (_fragTypes select _fragType) createVehicleLocal [0,0,10000]; + _fragObj setPosASL _lastPos; + _fragObj setVectorDir _vec; + _fragObj setVelocity _vel; + #ifdef DEBUG_MODE_FULL + GVAR(TOTALFRAGS) = GVAR(TOTALFRAGS) + 1; + // [FUNC(frag_trace), 0, [_fragObj]] call cba_fnc_addPerFrameHandler; + GVAR(traceFrags) = true; + #endif + if(GVAR(traceFrags)) then { + [player, _fragObj, [1,0.5,0,1]] call FUNC(addTrack); + }; + _fragCount = _fragCount + 1; + }; + }; +}; +// #ifdef DEBUG_MODE_FULL + // player sideChat format["total frags: %1", GVAR(TOTALFRAGS)]; + // player sideChat format["tracks: %1", (count GVAR(trackedObjects))]; +// #endif +// _endTime = diag_tickTime; diff --git a/TO_MERGE/ace/frag/fnc_removeTrack.sqf b/TO_MERGE/ace/frag/fnc_removeTrack.sqf new file mode 100644 index 0000000000..b72830051a --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_removeTrack.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +private ["_ret"]; +_ret = true; +if(IS_ARRAY((_this select 0))) then { + _ret = false; +} else { + if((_this select 0) in GVAR(trackedObjects)) then { + GVAR(trackedObjects) = GVAR(trackedObjects) - [(_this select 0)]; + } else { + _ret = false; + }; +}; +_ret \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_spallHP.sqf b/TO_MERGE/ace/frag/fnc_spallHP.sqf new file mode 100644 index 0000000000..aeba4e7a5d --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_spallHP.sqf @@ -0,0 +1,29 @@ +#include "script_component.hpp" + +private ["_initialData", "_currentCount", "_hpData", "_round", "_hpRound"]; +//player sideChat format["f: %1 c: %2", (_this select 0), (count GVAR(spallHPData))]; +if((_this select 0) <= (count GVAR(spallHPData))) then { + _initialData = GVAR(spallHPData) select (_this select 0); + if(!isNil "_initialData") then { + _hpRound = ((_this select 1) select 0) select 2; + _round = _initialData select 3; + _hpDirect = ((_this select 1) select 0) select 10; + if(_hpDirect && {_round == _hpRound}) then { + + { + _hpData = _x; + _round = _initialData select 3; + // diag_log text format["HPDUMP-------------------------------------"]; + // { + // _hp = _x; + // diag_log text format["%1 --", _forEachIndex]; + // { + // diag_log text format["%1: %2", _forEachIndex, _x]; + // } forEach _hp; + // } forEach (_this select 1); + [FUNC(doSpall), 0, [_this, _forEachIndex]] call cba_fnc_addPerFrameHandler; + // player sideChat "WEEE"; + } forEach (_this select 1); + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_spallTrack.sqf b/TO_MERGE/ace/frag/fnc_spallTrack.sqf new file mode 100644 index 0000000000..31e9c228bb --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_spallTrack.sqf @@ -0,0 +1,40 @@ +//fnc_spallTrack.sqf +#include "script_component.hpp" +private ["_params", "_round", "_multiplier", "_delta", "_curPos", "_velocity", "_velocityStep", "_forwardPos", "_intersectsWith", "_index", "_i", "_test", "_hpId", "_data"]; +// setAccTime 0; +_round = _this select 0; +_multiplier = _this select 1; +_foundObjects = _this select 2; +_foundObjectHPIds = _this select 3; + +_delta = (1/diag_fps)*_multiplier; +_curPos = getPosASL _round; +_velocity = velocity _round; + +_velocityStep = [ + (_velocity select 0)*_delta, + (_velocity select 1)*_delta, + (_velocity select 2)*_delta + ]; +_forwardPos = [ + (_curPos select 0) + (_velocityStep select 0), + (_curPos select 1) + (_velocityStep select 1), + (_curPos select 2) + (_velocityStep select 2) + ]; + +_intersectsWith = lineIntersectsWith [_curPos, _forwardPos]; + +if(count _intersectsWith > 0) then { + // player sideChat format["inter: %1", _intersectsWith]; + { + if(!(_x in _foundObjects)) then { + // diag_log text format["Adding HP: %1", _x]; + _index = (count GVAR(spallHPData)); + _hpId = _x addEventHandler ["hitPart", format["[%1, _this] call " + QUOTE(FUNC(spallHP)), _index]]; + _foundObjects set[(count _foundObjects), _x]; + _foundObjectHPIds set[(count _foundObjectHPIds), _hpId]; + _data = [_hpId, _x, typeOf _round, _round, _curPos, _velocity, 0, _foundObjects, _foundObjectHPIds]; + GVAR(spallHPData) set[_index, _data]; + }; + } forEach _intersectsWith; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_startTracing.sqf b/TO_MERGE/ace/frag/fnc_startTracing.sqf new file mode 100644 index 0000000000..31f4b99762 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_startTracing.sqf @@ -0,0 +1,5 @@ +#include "script_component.hpp" +if(!GVAR(tracesStarted)) then { + GVAR(tracesStarted) = true; + GVAR(traceID) = [FUNC(drawTraces), 0, []] call cba_fnc_addPerFrameHandler; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_stopTracing.sqf b/TO_MERGE/ace/frag/fnc_stopTracing.sqf new file mode 100644 index 0000000000..02b4fd7f59 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_stopTracing.sqf @@ -0,0 +1,5 @@ +#include "script_component.hpp" +if(GVAR(tracesStarted)) then { + GVAR(tracesStarted) = false; + [GVAR(traceID)] call FUNC(removeBISPFH); +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_trackFragRound.sqf b/TO_MERGE/ace/frag/fnc_trackFragRound.sqf new file mode 100644 index 0000000000..2780a85664 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_trackFragRound.sqf @@ -0,0 +1,52 @@ +//fnc_trackFragRound.sqf +#include "script_component.hpp" +private ["_params", "_round", "_lastPos", "_lastVel", "_type", "_time", "_doSpall", "_skip", "_explosive", "_indirectRange", "_force", "_fragPower"]; +_params = _this select 0; +_round = _params select 0; +_lastPos = _params select 1; +_lastVel = _params select 2; +_type = _params select 3; +_time = _params select 4; +_doSpall = _params select 6; +_spallTrack = _params select 7; +_foundObjectHPIds = _params select 8; + +if (!alive _round) then { + [_this select 1] call FUNC(removeBISPFH); + if(_time != time && {_round in GVAR(trackedObjects)} && {!(_round in GVAR(blackList))}) then { + GVAR(trackedObjects) = GVAR(trackedObjects) - [_round]; + _skip = getNumber (configFile >> "CfgAmmo" >> _type >> "ACE_FRAG_SKIP"); + if(_skip == 0) then { + _explosive = getNumber (configFile >> "CfgAmmo" >> _type >> "explosive"); + _indirectRange = getNumber (configFile >> "CfgAmmo" >> _type >> "indirectHitRange"); + _force = getNumber (configFile >> "CfgAmmo" >> _type >> "ACE_FRAG_FORCE"); + _fragPower = getNumber(configFile >> "CfgAmmo" >> _type >> "indirecthit")*(sqrt(_indirectRange)); + if((_explosive > 0.5 && {_indirectRange >= 4.5} && {_fragPower >= 35}) || {_force == 1} ) then { + [QGVAR(frag_eh), _params] call CBA_fnc_clientToServerEvent; + GVAR(trackedObjects) = GVAR(trackedObjects) - [_round]; + }; + }; + }; + if(_doSpall) then { + GVAR(spallIsTrackingCount) = GVAR(spallIsTrackingCount) - 1; + // diag_log text format["F: %1", _foundObjectHPIds]; + { + if(!isNil "_x") then { + _x removeEventHandler ["hitPart", _foundObjectHPIds select _forEachIndex]; + }; + } forEach _spallTrack; + }; +} else { + if(!(_round in GVAR(trackedObjects)) || {_round in GVAR(blackList)}) then { + [_this select 1] call FUNC(removeBISPFH); + if(_round in GVAR(blackList)) then { + GVAR(blackList) = GVAR(blackList) - [_round]; + }; + }; + + _params set[1, (getPosASL _round)]; + _params set[2, (velocity _round)]; + if(_doSpall) then { + [_round, 1, _spallTrack, _foundObjectHPIds] call FUNC(spallTrack); + }; +}; diff --git a/TO_MERGE/ace/frag/fnc_trackTrace.sqf b/TO_MERGE/ace/frag/fnc_trackTrace.sqf new file mode 100644 index 0000000000..71b4a9a866 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_trackTrace.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" +_params = _this select 0; +_tracerObj = _params select 0; +_index = _params select 1; + +if(alive _tracerObj && (count GVAR(traces)) > 0) then { + _data = GVAR(traces) select _index; + _positions = _data select 4; + _objVel = velocity _tracerObj; + _objTVel = sqrt((_objVel select 0)^2 + (_objVel select 1)^2 + (_objVel select 2)^2); + _positions set[(count _positions), [(getPos _tracerObj), _objTVel]]; +} else { + [(_this select 1)] call FUNC(removeBISPFH); +}; \ No newline at end of file diff --git a/TO_MERGE/ace/frag/fnc_vectorDiffFast.sqf b/TO_MERGE/ace/frag/fnc_vectorDiffFast.sqf new file mode 100644 index 0000000000..0a41860727 --- /dev/null +++ b/TO_MERGE/ace/frag/fnc_vectorDiffFast.sqf @@ -0,0 +1,15 @@ +#include "script_component.hpp" +private["_p1","_p2","_return"]; + +_p1 = _this select 0; +_p2 = _this select 1; + +if ((count _p1) != (count _p2)) then {textLogFormat ["BIS_FNC Error: vectors not of same size"]}; + +_return = []; + +{ + _return set[_forEachIndex, (_p2 select _forEachIndex) - _x]; +} forEach _p1; + +_return diff --git a/TO_MERGE/ace/frag/script_component.hpp b/TO_MERGE/ace/frag/script_component.hpp new file mode 100644 index 0000000000..8f8efb4c0b --- /dev/null +++ b/TO_MERGE/ace/frag/script_component.hpp @@ -0,0 +1,14 @@ +#define COMPONENT sys_frag +#include "\x\uo\Addons\main\script_mod.hpp" + +#define DEBUG_ENABLED_SYS_FRAG + +#ifdef DEBUG_ENABLED_SYS_FRAG + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_FRAG + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_FRAG +#endif + +#include "\x\uo\Addons\main\script_macros.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/frag/stringtable.xml b/TO_MERGE/ace/frag/stringtable.xml new file mode 100644 index 0000000000..aed1a9028a --- /dev/null +++ b/TO_MERGE/ace/frag/stringtable.xml @@ -0,0 +1,18 @@ + + + + + +(Æ) Disable Fragmentation +(Æ) Zakázat fragmentaci granátů +(Æ) Weapons: Keine Schrapnelle +(Æ) Wyłącz głowice fragmentacyjne +(Æ) Выключить разлёт осколков +(Æ) Disable Fragmentation +(Æ) Disable Fragmentation +(Æ) Disable Fragmentation +(Æ) Disable Fragmentation + + + + diff --git a/TO_MERGE/ace/laser/$PBOPREFIX$ b/TO_MERGE/ace/laser/$PBOPREFIX$ new file mode 100644 index 0000000000..c8eeb197c8 --- /dev/null +++ b/TO_MERGE/ace/laser/$PBOPREFIX$ @@ -0,0 +1 @@ +x\uo\Addons\sys_laser \ No newline at end of file diff --git a/TO_MERGE/ace/laser/CfgEventhandlers.hpp b/TO_MERGE/ace/laser/CfgEventhandlers.hpp new file mode 100644 index 0000000000..1fcfc0244f --- /dev/null +++ b/TO_MERGE/ace/laser/CfgEventhandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; diff --git a/TO_MERGE/ace/laser/CfgVehicles.hpp b/TO_MERGE/ace/laser/CfgVehicles.hpp new file mode 100644 index 0000000000..1c5887bd38 --- /dev/null +++ b/TO_MERGE/ace/laser/CfgVehicles.hpp @@ -0,0 +1,9 @@ +class CfgVehicles { + class All; + + class LaserTarget: All { + class EventHandlers { + init = QUOTE(_this call FUNC(laser_init)); + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/XEH_post_init.sqf b/TO_MERGE/ace/laser/XEH_post_init.sqf new file mode 100644 index 0000000000..6904ee6c47 --- /dev/null +++ b/TO_MERGE/ace/laser/XEH_post_init.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" +NO_DEDICATED; + diff --git a/TO_MERGE/ace/laser/XEH_pre_init.sqf b/TO_MERGE/ace/laser/XEH_pre_init.sqf new file mode 100644 index 0000000000..8a4b3166b8 --- /dev/null +++ b/TO_MERGE/ace/laser/XEH_pre_init.sqf @@ -0,0 +1,26 @@ +#include "script_component.hpp" + +PREP(rotateVectLineGetMap); +PREP(rotateVectLine); +PREP(shootRay); +PREP(shootCone); +PREP(checkLos); + +PREP(findLaserDesignator); +PREP(findStrongestRay); + +PREP(translateToModelSpace); +PREP(translateToWeaponSpace); + +PREP(laser_init); + +GVAR(laser) = nil; // a single hud draws 1 laser at a time + +PREP(laserTargetPFH); + +ACE_LASERS = []; + +ACE_DEFAULT_LASER_CODE = 1000; +ACE_DEFAULT_FIRE_SELECTION = [FIREMODE_DIRECT_LOAL, ACE_DEFAULT_LASER_CODE]; + +FUNC(getPosASL) = {visiblePositionASL (_this select 0)}; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/config.cpp b/TO_MERGE/ace/laser/config.cpp new file mode 100644 index 0000000000..ee1b9f1996 --- /dev/null +++ b/TO_MERGE/ace/laser/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "uo_main", "a3_ui_f" }; + version = VERSION; + }; +}; + +#include "CfgEventhandlers.hpp" +#include "CfgVehicles.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_checkLos.sqf b/TO_MERGE/ace/laser/fnc_checkLos.sqf new file mode 100644 index 0000000000..f0df153887 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_checkLos.sqf @@ -0,0 +1,31 @@ +#include "script_component.hpp" + +private ["_pos1", "_pos2", "_spacing", "_vectorTo", "_x", "_y", "_z", "_distance", "_count", "_return", "_alt", "_pos", "_designator", "_seeker"]; +_pos1 = _this select 0; +_pos2 = _this select 1; +_designator = _this select 2; +_seeker = _this select 3; +_spacing = 100; +if((count _this) > 4) then { + _spacing = _this select 4; +}; + +_return = true; +_vectorTo = [_pos2, _pos1] call BIS_fnc_vectorFromXToY; + +_x = (_vectorTo select 0)*0.25; +_y = (_vectorTo select 1)*0.25; +_z = (_vectorTo select 2)*0.25; + +_pos2 = [(_pos2 select 0) + _x, (_pos2 select 1) + _y, (_pos2 select 2) + _z]; + +// player sideChat format["new los check"]; +if(terrainIntersect [_pos2, _pos1]) then { + _return = false; +} else { + if(lineIntersects [_pos2, _pos1]) then { // should take as arguments and add to this command objects to exclude - target and observer + // player sideChat format["with: %1", lineIntersectsWith [_pos1, _pos2]]; + _return = false; + }; +}; +_return; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_findLaserDesignator.sqf b/TO_MERGE/ace/laser/fnc_findLaserDesignator.sqf new file mode 100644 index 0000000000..8a2e4caf29 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_findLaserDesignator.sqf @@ -0,0 +1,70 @@ +#include "script_component.hpp" + +private ["_missile", "_headingPitch", "_found", "_vectorTo", "_polarTo", "_dir", "_vertOk", "_horzOk", "_fov", + "_closestDistance", "_pos1", "_pos2", "_disCheck", "_currentTarget", "_potentialTargets", "_offset", "_vector"]; +_missile = _this select 0; +_laserCode = _this select 1; +_fov = if (count _this > 2) then {_this select 2} else {75}; +_vector = if (count _this > 3) then {_this select 3} else {vectorDir _missile}; +_offset = if (count _this > 4) then {_this select 4} else {[0,0,0]}; + +_headingPitch = _vector call CBA_fnc_vect2polar; +_currentTarget = nil; +_found = false; + +LOG("Searching lasers"); +if(!(isNil "ACE_LASERS")) then { + _potentialTargets = []; + TRACE_1("", ACE_LASERS); + + { + if(!(isNull _x)) then { + _sensorPos = ATLtoASL(_missile modelToWorld _offset); + _vectorTo = [_sensorPos, ([_x] call FUNC(getPosASL))] call BIS_fnc_vectorFromXToY; + _polarTo = _vectorTo call CBA_fnc_vect2polar; + _dir = _polarTo select 1; + _dir = _dir - (_headingPitch select 1); + + TRACE_4("Calc", _sensorPos, _vectorTo, _polarTo, _dir); + + if (_dir < 0) then {_dir = _dir + 360}; + if (_dir > 360) then {_dir = _dir - 360}; + _vertOk = false; + _horzOk = false; + if(_dir < _fov || {_dir > (360-_fov)}) then { + _horzOk = true; + }; + if(abs((abs(_polarTo select 2))-(abs(_headingPitch select 2))) < _fov) then { + _vertOk = true; + }; + + TRACE_2("Results", _vertOk, _horzOk); + + if(_vertOk && {_horzOk}) then { + // Does the laser currently have our current code, if we have one? + _targetCode = _x getVariable ["ACE_LASERTARGET_CODE", ACE_DEFAULT_LASER_CODE]; + TRACE_1("Target in sight, checking code", _targetCode, _laserCode); + if(_targetCode == _laserCode) then { + _potentialTargets set[(count _potentialTargets), _x]; + }; + }; + }; + + } forEach ACE_LASERS; + + TRACE_1("", _potentialTargets); + + _closestDistance = 100000; + { + _pos1 = (getPosASL _missile); + _pos2 = ([_x] call FUNC(getPosASL)); + _disCheck = _pos1 distance _pos2; + // shouldn't this bail out when a valid target is found instead of iterating over all potential targets ? + if(_disCheck < _closestDistance && {[_pos1, _pos2, _x, _missile] call FUNC(checkLos)}) then { + _found = true; + _currentTarget = _x; + _closestDistance = _disCheck; + }; + } forEach _potentialTargets; +}; +[_found, _currentTarget] \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_findStrongestRay.sqf b/TO_MERGE/ace/laser/fnc_findStrongestRay.sqf new file mode 100644 index 0000000000..db85ce8b3d --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_findStrongestRay.sqf @@ -0,0 +1,49 @@ +#include "script_component.hpp" + +_list = _this select 0; +_checkPos = _this select 1; +_spots = []; +_outliers = []; +_spot = []; +_testPos = (_list select 0) select 0; +{ + _samplePos = _x select 0; + if(!lineIntersects [_samplePos, _checkPos] && {!terrainIntersectASL [_samplePos, _checkPos]}) then { + if(_samplePos distance _testPos < 2) then { + _spot pushBack _samplePos; + } else { + _outliers pushBack _samplePos; + }; + }; +} forEach _list; +_spots pushBack _spot; + +if(count _outliers > 0) then { + for "_i" from 1 to 3 do { + _remainingSpots = _outliers; + _outliers = []; + _spot = []; + _testPos = (_remainingSpots select 0); + { + _samplePos = _x; + if(!lineIntersects [_samplePos, _checkPos] && {!terrainIntersectASL [_samplePos, _checkPos]}) then { + if(_samplePos distance _testPos < 2) then { + _spot pushBack _samplePos; + } else { + _outliers pushBack _samplePos; + }; + }; + } forEach _remainingSpots; + _spots pushBack _spot; + }; +}; +_largest = 0; +_largestSpot = []; +{ + if((count _x) > _largest) then { + _largest = (count _x); + _largestSpot = _x; + }; +} forEach _spots; +// player sideChat format["g: %1", _spots]; +_largestSpot select (random (floor(count _largestSpot))); \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_laserTargetPFH.sqf b/TO_MERGE/ace/laser/fnc_laserTargetPFH.sqf new file mode 100644 index 0000000000..bf526f464e --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_laserTargetPFH.sqf @@ -0,0 +1,26 @@ +#include "script_component.hpp" + +private["_args", "_laserTarget"]; +//TRACE_1("enter", _this); +_args = _this select 0; +_laserTarget = _args select 0; + +if(isNull _laserTarget || !alive player) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + REM(ACE_LASERS, _laserTarget); +}; + +_end = diag_tickTime; + +#ifdef DEBUG_MODE_FULL +// Iconize the location of the actual laserTarget +_pos = [_laserTarget] call FUNC(getPosASL); +drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\select_target_ca.paa", [1,0,0,1], (ASLtoATL _pos), 0.75, 0.75, 0, "", 0.5, 0.025, "TahomaB"]; + +{ + drawLine3D [ASLtoATL (_x select 0), ASLtoATL (_x select 1), (_x select 2)]; + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", (_x select 2), ASLtoATL (_x select 1), 0.75, 0.75, 0, "", 0.5, 0.025, "TahomaB"]; +} forEach DRAW_LINES; +DRAW_LINES = []; +#endif + diff --git a/TO_MERGE/ace/laser/fnc_laser_init.sqf b/TO_MERGE/ace/laser/fnc_laser_init.sqf new file mode 100644 index 0000000000..4c6b0b5f2a --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_laser_init.sqf @@ -0,0 +1,25 @@ +#include "script_component.hpp" +PARAMS_1(_laserTarget); + +TRACE_1("enter", _this); + +// Add the target to the global targets array +// Everyone tracks them + +// Add the laser localized to the laser array, and give it the default localized code +PUSH(ACE_LASERS, _laserTarget); +// Check the vehicle, otherwise use the default +_laserTarget setVariable ["ACE_LASERTARGET_CODE", ACE_DEFAULT_LASER_CODE, false]; +// Clean the lasers of any null objects while we are here +REM(ACE_LASERS, objNull); + +if(!(local _laserTarget)) exitWith { }; +// The target is local, so its on this client +if(!isDedicated) then { + _laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", player, true]; + + [FUNC(laserTargetPFH), 0, [_laserTarget, player]] call cba_fnc_addPerFrameHandler; +} else { + // server side ownership of laser + //_laserTarget setVariable ["ACE_LASERTARGET_SHOOTER", nil, false]; +}; diff --git a/TO_MERGE/ace/laser/fnc_rotateVectLine.sqf b/TO_MERGE/ace/laser/fnc_rotateVectLine.sqf new file mode 100644 index 0000000000..b0360cc330 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_rotateVectLine.sqf @@ -0,0 +1,38 @@ +#include "script_component.hpp" + +_map = _this select 0; +_theta = _this select 1; + +_p = _map select 0; +_p1 = _map select 1; +_p2 = _map select 2; + +_q1 = +(_map select 3); +_q2 = +(_map select 4); +_u = _map select 5; +_d = _map select 6; + +/* Step 4 */ +_q2 set[0, (_q1 select 0) * cos(_theta) - (_q1 select 1) * sin(_theta)]; +_q2 set[1, (_q1 select 0) * sin(_theta) + (_q1 select 1) * cos(_theta)]; +_q2 set[2, (_q1 select 2)]; + +/* Inverse of step 3 */ +_q1 set[0, (_q2 select 0) * _d + (_q2 select 2) * (_u select 0)]; +_q1 set[1, (_q2 select 1)]; +_q1 set[2, - (_q2 select 0) * (_u select 0) + (_q2 select 2) * _d]; + +/* Inverse of step 2 */ +if (_d != 0) then { + _q2 set[0, (_q1 select 0)]; + _q2 set[1, (_q1 select 1) * (_u select 2) / _d + (_q1 select 2) * (_u select 1) / _d]; + _q2 set[2, - (_q1 select 1) * (_u select 1) / _d + (_q1 select 2) * (_u select 2) / _d]; +} else { + _q2 = _q1; +}; + +/* Inverse of step 1 */ +_q1 set[0, (_q2 select 0) + (_p1 select 0)]; +_q1 set[1, (_q2 select 1) + (_p1 select 1)]; +_q1 set[2, (_q2 select 2) + (_p1 select 2)]; +_q1; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_rotateVectLineGetMap.sqf b/TO_MERGE/ace/laser/fnc_rotateVectLineGetMap.sqf new file mode 100644 index 0000000000..fdbd6533ef --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_rotateVectLineGetMap.sqf @@ -0,0 +1,37 @@ +#include "script_component.hpp" + +private ["_p", "_theta", "_p1", "_p2", "_q1", "_q2", "_u", "_d"]; +_p = _this select 0; +_p1 = _this select 1; +_p2 = _this select 2; + +_q1 = []; +_q2 = []; +_u = []; + +/* Step 1 */ +_q1 set[0, (_p select 0) - (_p1 select 0)]; +_q1 set[1, (_p select 1) - (_p1 select 1)]; +_q1 set[2, (_p select 2) - (_p1 select 2)]; + +_u set[0, (_p2 select 0) - (_p1 select 0)]; +_u set[1, (_p2 select 1) - (_p1 select 1)]; +_u set[2, (_p2 select 2) - (_p1 select 2)]; +_u = _u call BIS_fnc_unitVector; +_d = sqrt((_u select 1)*(_u select 1) + (_u select 2)*(_u select 2)); + +/* Step 2 */ +if (_d != 0) then { + _q2 set[0, (_q1 select 0)]; + _q2 set[1, (_q1 select 1) * (_u select 2) / _d - (_q1 select 2) * (_u select 1) / _d]; + _q2 set[2, (_q1 select 1) * (_u select 1) / _d + (_q1 select 2) * (_u select 2) / _d]; +} else { + _q2 = _q1; +}; + +/* Step 3 */ +_q1 set[0, (_q2 select 0) * _d - (_q2 select 2) * (_u select 0)]; +_q1 set[1, (_q2 select 1)]; +_q1 set[2, (_q2 select 0) * (_u select 0) + (_q2 select 2) * _d]; + +[_p, _p1, _p2, _q1, _q2, _u, _d] \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_shootCone.sqf b/TO_MERGE/ace/laser/fnc_shootCone.sqf new file mode 100644 index 0000000000..8d2d7fef66 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_shootCone.sqf @@ -0,0 +1,66 @@ +#include "script_component.hpp" + +_divergence = 0.3; +_pos = _this select 0; +_vec = _this select 1; +_longestReturn = -1000000000; +_shortestReturn = 1000000000; +_resultPositions = []; +_p1 = [0,0,0]; +_p2 = +_vec; +_p = (_vec call CBA_fnc_vect2polar); +_v = [(_p select 0), (_p select 1), (_p select 2)+90] call CBA_fnc_polar2vect; +_cp = [_vec, _v] call BIS_fnc_crossProduct; + +_vecRotateMap = [_cp, _p1, _p2] call FUNC(rotateVectLineGetMap); + +_result = [_pos, _vec] call FUNC(shootRay); +_resultPos = _result select 0; +if(!isNil "_resultPos") then { + _distance = _result select 1; + if(_distance < _shortestReturn) then { + _shortestReturn = _distance; + }; + if(_distance > _longestReturn) then { + _longestReturn = _distance; + }; + _resultPositions set[(count _resultPositions), _result]; +#ifdef DEBUG_MODE_FULL + DRAW_LINES set[(count DRAW_LINES), [_pos, _resultPos, [0, 1, 0, 1]]]; +#endif +}; +_count = 8; + +_pos2 = [ + (_pos select 0)+((_vec select 0)*1000), + (_pos select 1)+((_vec select 1)*1000), + (_pos select 2)+((_vec select 2)*1000) + ]; +{ + for "_i" from 0 to ceil(_count*_x) do { + _radOffset = random 360; + _offset = [_vecRotateMap, (((360/_count)*_i)+_radOffset) mod 360] call FUNC(rotateVectLine); + _offsetPos = [ + (_pos2 select 0)+((_offset select 0)*(_divergence*_x)), + (_pos2 select 1)+((_offset select 1)*(_divergence*_x)), + (_pos2 select 2)+((_offset select 2)*(_divergence*_x)) + ]; + _offsetVector = [_pos, _offsetPos] call BIS_fnc_vectorFromXtoY; + _result = [_pos, _offsetVector] call FUNC(shootRay); + _resultPos = _result select 0; + if(!isNil "_resultPos") then { + _distance = _result select 1; + if(_distance < _shortestReturn) then { + _shortestReturn = _distance; + }; + if(_distance > _longestReturn) then { + _longestReturn = _distance; + }; + _resultPositions set[(count _resultPositions), _result]; +#ifdef DEBUG_MODE_FULL + DRAW_LINES set[(count DRAW_LINES), [_pos, _resultPos, [0, 1, 0, 1]]]; +#endif + }; + }; +} forEach [1,0.5,0.25]; +[_longestReturn, _shortestReturn, _resultPositions]; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_shootRay.sqf b/TO_MERGE/ace/laser/fnc_shootRay.sqf new file mode 100644 index 0000000000..768194e351 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_shootRay.sqf @@ -0,0 +1,30 @@ +#include "script_component.hpp" + +private ["_pos", "_vec", "_distance", "_resultPos", "_fidelity", "_lastPos", "_i", "_nextPos"]; +scopeName "main"; +_pos = _this select 0; +_vec = _this select 1; +_distance = 0; +_resultPos = nil; +_fidelity = [1000,100,10,1,0.1]; +_lastPos = +_pos; +{ + scopeName "mainSearch"; + for "_i" from 1 to 10 do { + _nextPos = [ + (_lastPos select 0)+((_vec select 0)*_x), + (_lastPos select 1)+((_vec select 1)*_x), + (_lastPos select 2)+((_vec select 2)*_x) + ]; + + if(lineIntersects [_lastPos, _nextPos] || terrainIntersectASL [_lastPos, _nextPos]) then { + _resultPos = _lastPos; + breakTo "mainSearch"; + } else { + _distance = _distance + _x; + _lastPos = _nextPos; + }; + }; + +} forEach _fidelity; +[_resultPos, _distance]; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_translateToModelSpace.sqf b/TO_MERGE/ace/laser/fnc_translateToModelSpace.sqf new file mode 100644 index 0000000000..1e2e930ac7 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_translateToModelSpace.sqf @@ -0,0 +1,16 @@ +_object = _this select 0; +_origin = getPosASL _object; +_matrix = _this select 1; +_xVec = _matrix select 0; +_yVec = _matrix select 1; +_zVec = _matrix select 2; + +_offset = _this select 2; + +_x = _offset select 0; +_y = _offset select 1; +_z = _offset select 2; + +_out = (((_xVec vectorMultiply _x) vectorAdd (_yVec vectorMultiply _y)) vectorAdd (_zVec vectorMultiply _z)) vectorAdd _origin; + +_out; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/fnc_translateToWeaponSpace.sqf b/TO_MERGE/ace/laser/fnc_translateToWeaponSpace.sqf new file mode 100644 index 0000000000..406d81b145 --- /dev/null +++ b/TO_MERGE/ace/laser/fnc_translateToWeaponSpace.sqf @@ -0,0 +1,22 @@ +_object = _this select 0; +_origin = getPosASL _object; +_matrix = _this select 1; +_xVec = _matrix select 0; +_yVec = _matrix select 1; +_zVec = _matrix select 2; + +_offset = _this select 2; + +_offset = _offset vectorDiff _origin; + +_x = _offset select 0; +_y = _offset select 1; +_z = _offset select 2; + +_out = [ + ((_xVec select 0)*_x) + ((_xVec select 1)*_y) + ((_xVec select 2)*_z), + ((_yVec select 0)*_x) + ((_yVec select 1)*_y) + ((_yVec select 2)*_z), + ((_zVec select 0)*_x) + ((_zVec select 1)*_y) + ((_zVec select 2)*_z) + ]; + +_out; \ No newline at end of file diff --git a/TO_MERGE/ace/laser/script_component.hpp b/TO_MERGE/ace/laser/script_component.hpp new file mode 100644 index 0000000000..860a585ed6 --- /dev/null +++ b/TO_MERGE/ace/laser/script_component.hpp @@ -0,0 +1,15 @@ +#define COMPONENT sys_laser +#include "\x\uo\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_LASER + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_LASER + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_LASER +#endif + +#include "\x\uo\Addons\main\script_macros.hpp" + + +#define FIREMODE_DIRECT_LOAL 1 \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/$PBOPREFIX$ b/TO_MERGE/ace/missileguidance/$PBOPREFIX$ new file mode 100644 index 0000000000..2a9b50c27f --- /dev/null +++ b/TO_MERGE/ace/missileguidance/$PBOPREFIX$ @@ -0,0 +1 @@ +x\uo\Addons\sys_missileguidance \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/CfgAmmo.hpp b/TO_MERGE/ace/missileguidance/CfgAmmo.hpp new file mode 100644 index 0000000000..1fdd580724 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/CfgAmmo.hpp @@ -0,0 +1,10 @@ +class CfgAmmo { + class MissileBase; + + class M_PG_AT : MissileBase { + irLock = 0; + laserLock = 0; + airLock = 0; + manualControl = 0; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/CfgEventhandlers.hpp b/TO_MERGE/ace/missileguidance/CfgEventhandlers.hpp new file mode 100644 index 0000000000..faa5edef0b --- /dev/null +++ b/TO_MERGE/ace/missileguidance/CfgEventhandlers.hpp @@ -0,0 +1,17 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; + +class Extended_FiredBIS_EventHandlers { + class AllVehicles { + ADDON = QUOTE(_this call FUNC(fired)); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/CfgWeapons.hpp b/TO_MERGE/ace/missileguidance/CfgWeapons.hpp new file mode 100644 index 0000000000..33c2bfe8de --- /dev/null +++ b/TO_MERGE/ace/missileguidance/CfgWeapons.hpp @@ -0,0 +1,34 @@ +class CfgWeapons { + class CannonCore; + class LauncherCore; + class Mode_SemiAuto; + + class RocketPods: LauncherCore { + canLock = 1; + }; + class missiles_DAGR: RocketPods { + canLock = 1; + }; + /* + class autocannon_Base_F: CannonCore { + canLock = 1; + }; + class cannon_120mm: CannonCore { + canLock = 1; + + class player : Mode_SemiAuto { + canLock = 1; + }; + }; + class gatling_25mm: CannonCore { + canLock = 1; + }; + class autocannon_35mm: CannonCore { + canLock = 1; + }; + + class launch_NLAW_F: Launcher_Base_F + { + canLock = 1; + };*/ +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/XEH_post_init.sqf b/TO_MERGE/ace/missileguidance/XEH_post_init.sqf new file mode 100644 index 0000000000..6904ee6c47 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/XEH_post_init.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" +NO_DEDICATED; + diff --git a/TO_MERGE/ace/missileguidance/XEH_pre_init.sqf b/TO_MERGE/ace/missileguidance/XEH_pre_init.sqf new file mode 100644 index 0000000000..8aa557f838 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/XEH_pre_init.sqf @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +PREP(rotateVectLineGetMap); +PREP(rotateVectLine); + +PREP(translateToModelSpace); +PREP(translateToWeaponSpace); + +PREP(fired); + +PREP(guidance_DAGR); +PREP(guidance_LGB); +PREP(guidance_HellfireII); +FUNC(getPosASL) = {visiblePositionASL (_this select 0)}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/config.cpp b/TO_MERGE/ace/missileguidance/config.cpp new file mode 100644 index 0000000000..85ca535182 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/config.cpp @@ -0,0 +1,15 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "uo_main", "uo_sys_laser", "a3_ui_f" }; + version = VERSION; + }; +}; + +#include "CfgEventhandlers.hpp" +#include "CfgAmmo.hpp" +#include "CfgWeapons.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_fired.sqf b/TO_MERGE/ace/missileguidance/fnc_fired.sqf new file mode 100644 index 0000000000..dd0cba4fb8 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_fired.sqf @@ -0,0 +1,11 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +//_this=[TEST_AI_HELICOPTER,"missiles_DAGR","missiles_DAGR","Far_AI","M_PG_AT","24Rnd_PG_missiles",163988: rocket_01_fly_f.p3d] +TRACE_1("enter", _this); +PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + +if(!local _shooter) exitWith { false }; +if(_weapon == "missiles_DAGR") then { + //_this call FUNC(guidance_DAGR); + _this call FUNC(guidance_HellfireII); +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_guidance_DAGR.sqf b/TO_MERGE/ace/missileguidance/fnc_guidance_DAGR.sqf new file mode 100644 index 0000000000..9e9663a859 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_guidance_DAGR.sqf @@ -0,0 +1,113 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +FUNC(guidance_DIRECT_LOAL_PFH) = { + //TRACE_1("enter", _this); + _args = _this select 0; + //PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + _shooter = _args select 0; + _dagr = _args select 6; + _curVelocity = velocity _dagr; + + if(!alive _dagr || isNull _dagr || isNull _shooter) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + }; + + _targets = [_dagr, ACE_DEFAULT_LASER_CODE, 70, _curVelocity] call uo_sys_laser_fnc_findLaserDesignator; + TRACE_2("Targets", _target, _targets); + + if((_targets select 0)) then { + _target = _targets select 1; + + // player sideChat "FUCK!"; + // drop ["\a3\data_f\Cl_basic","","Billboard",1,20,(getPos _dagr),[0,0,0],1,1.275,1.0,0.0,[5],[[1,0,0,1]],[0],0.0,2.0,"","",""]; + + + _yVec = vectorDir _dagr; + _zVec = vectorUp _dagr; + _xVec = vectorNormalized (_yVec vectorCrossProduct _zVec); + + _dagrPos = getPosASL _dagr; + // player sideChat "G!"; + _targetPos = getPosASL _target; + if((count _targetPos) > 0) then { + _distanceToTarget = _dagrPos vectorDistance _targetPos; + + _addHeight = [0,0,(_dagrPos distance _targetPos)*0.02]; + #ifdef DEBUG_MODE_FULL + drawLine3D [(ASLtoATL _targetPos) vectorAdd _addHeight, ASLtoATL _targetPos, [0,1,0,1]]; + #endif + + _targetPos = _targetPos vectorAdd _addHeight; + + _def = 0.0050; + + _targetVectorSeeker = [_dagr, [_xVec, _yVec, _zVec], _targetPos] call FUNC(translateToWeaponSpace); + // _targetVectorSeeker = _dagr worldToModel (ASLtoATL _targetPos); + // _targetVectorSeeker = [0,0,0] vectorFromTo _targetVectorSeeker; + _yaw = 0.0; + if((_targetVectorSeeker select 0) < 0) then { + _yaw = -_def; + } else { + if((_targetVectorSeeker select 0) > 0) then { + _yaw = _def; + }; + }; + + _pitch = 0.0; + if((_targetVectorSeeker select 2) < 0) then { + _pitch = -_def; + } else { + if((_targetVectorSeeker select 2) > 0) then { + _pitch = _def; + }; + }; + #ifdef DEBUG_MODE_FULL + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,1,1,1], ASLtoATL _dagrPos, 0.75, 0.75, 0, str _vectorTo, 1, 0.025, "TahomaB"]; + drawLine3D [ASLtoATL _dagrPos, ASLtoATL _targetPos, [1,0,0,1]]; + + _distance = ([getPos startPos, _dagrPos] call BIS_fnc_distance2D); + _marker = createMarkerLocal [format["m%1", MARKERCOUNT], [_distance, _dagrPos select 2]]; + _marker setMarkerTypeLocal "mil_dot"; + _marker setMarkerColorLocal "ColorRed"; + + MARKERCOUNT = MARKERCOUNT + 1; + #endif + + if(accTime > 0) then { + _outVector = [_dagr, [_xVec, _yVec, _zVec], [_yaw, 1/accTime, _pitch]] call FUNC(translateToModelSpace); + // _outVector = _dagr modelToWorld [_yaw, 1, _pitch]; + // _outVector = ATLtoASL _outVector; + _vectorTo = _dagrPos vectorFromTo _outVector; + + // hintSilent format["v: %1", _vectorTo]; + + // _dagr setVectorDir _vectorTo; + _dagr setVectorDirAndUp [_vectorTo, vectorUp _dagr]; + }; + + #ifdef DEBUG_MODE_FULL + hintSilent format["d: %1", _distanceToTarget]; + #endif + }; + }; +}; + +FUNC(guidance_DAGR_DIRECT_LOAL) = { + PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + + GVAR(lastTime) = time; + [FUNC(guidance_DIRECT_LOAL_PFH), 0, _this] call cba_fnc_addPerFrameHandler; +}; + +PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); +_fireMode = _shooter getVariable ["ACE_FIRE_SELECTION", ACE_DEFAULT_FIRE_SELECTION]; + +switch (_fireMode select 0) do { + // Default to FIREMODE_DIRECT_LOAL + // FIREMODE_DIRECT_LOAL + default { + LOG("Initiating DAGR FIREMODE_DIRECT_LOAL"); + _this call FUNC(guidance_DAGR_DIRECT_LOAL); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_guidance_HellfireII.sqf b/TO_MERGE/ace/missileguidance/fnc_guidance_HellfireII.sqf new file mode 100644 index 0000000000..733f4bce17 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_guidance_HellfireII.sqf @@ -0,0 +1,249 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" + +FUNC(guidance_Hellfire_LOAL_HI_PFH) = { + //TRACE_1("enter", _this); + _args = _this select 0; + //PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + _shooter = _args select 0; + _missile = _args select 6; + _curVelocity = velocity _missile; + + if(!alive _missile || isNull _missile || isNull _shooter) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + }; + + _launchPos = _shooter getVariable [QGVAR(launchPos), nil]; + if(isNil "_launchPos") then { + TRACE_1("Setting launch parameters", ""); + _launchPos = getPosASL _shooter; + _shooter setVariable [QGVAR(launchPos), _launchPos, false]; + _shooter setVariable [QGVAR(launchTime), diag_tickTime, false]; + }; + + _targets = [_missile, ACE_DEFAULT_LASER_CODE, 70, _curVelocity] call uo_sys_laser_fnc_findLaserDesignator; + _addHeight = [0,0,0]; + if((_targets select 0)) then { + _target = _targets select 1; + TRACE_2("Targets", _target, _targets); + + _yVec = vectorDir _missile; + _zVec = vectorUp _missile; + _xVec = vectorNormalized (_yVec vectorCrossProduct _zVec); + + _missilePos = getPosASL _missile; + // player sideChat "G!"; + _targetPos = getPosASL _target; + TRACE_4("Phase Check", _launchPos, _missilePos, _targetPos, (_missilePos distance _targetPos)); + if((count _targetPos) > 0) then { + _distanceToTarget = _missilePos vectorDistance _targetPos; + + _defPitch = 0.05; + + if((_launchPos distance _missilePos) < 400 && (_targetPos distance _missilePos) > 400) then { + _addHeight = [0,0,(_targetPos select 2) + ((_launchPos distance _targetPos)*2)]; + TRACE_1("Climb phase", _addHeight); + //_defPitch = 0.1; + } else { + // Covered half the distance, go terminal + if((_missilePos distance _targetPos) < (_launchPos distance _targetPos) / 2) then { + TRACE_1("TERMINAL", ""); + } else { + if((_missilePos select 2) > (_targetPos select 2)) then { + _heightDiff = (_missilePos select 2) - (_targetPos select 2); + TRACE_1("Coasting", _heightDiff); + _addHeight = [0,0, _heightDiff]; + }; + }; + }; + _targetPos = _targetPos vectorAdd _addHeight; + + _defYaw = 0.0035; + + + _targetVectorSeeker = [_missile, [_xVec, _yVec, _zVec], _targetPos] call FUNC(translateToWeaponSpace); + _yaw = 0.0; + if((_targetVectorSeeker select 0) < 0) then { + _yaw = -_defYaw; + } else { + if((_targetVectorSeeker select 0) > 0) then { + _yaw = _defYaw; + }; + }; + + _pitch = 0.0; + if((_targetVectorSeeker select 2) < 0) then { + _pitch = -_defPitch; + } else { + if((_targetVectorSeeker select 2) > 0) then { + _pitch = _defPitch; + }; + }; + #ifdef DEBUG_MODE_FULL + drawLine3D [(ASLtoATL _targetPos) vectorAdd _addHeight, ASLtoATL _targetPos, [0,1,0,1]]; + + _light = "#lightpoint" createVehicleLocal (getPos _missile); + _light setLightBrightness 1.0; + _light setLightAmbient [1.0, 0.0, 0.0]; + _light setLightColor [1.0, 0.0, 0.0]; + + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,1,1,1], ASLtoATL _missilePos, 0.75, 0.75, 0, str _vectorTo, 1, 0.025, "TahomaB"]; + drawLine3D [ASLtoATL _missilePos, ASLtoATL _targetPos, [1,0,0,1]]; + + _distance = ([getPos startPos, _missilePos] call BIS_fnc_distance2D); + _marker = createMarkerLocal [format["m%1", MARKERCOUNT], [_distance, _missilePos select 2]]; + _marker setMarkerTypeLocal "mil_dot"; + _marker setMarkerColorLocal "ColorRed"; + + MARKERCOUNT = MARKERCOUNT + 1; + #endif + + if(accTime > 0) then { + _outVector = [_missile, [_xVec, _yVec, _zVec], [_yaw, 1/accTime, _pitch]] call FUNC(translateToModelSpace); + + _vectorTo = _missilePos vectorFromTo _outVector; + _missile setVectorDirAndUp [_vectorTo, vectorUp _missile]; + }; + + #ifdef DEBUG_MODE_FULL + hintSilent format["d: %1", _distanceToTarget]; + #endif + }; + }; +}; + +FUNC(guidance_Hellfire_LOAL_DIR_PFH) = { + //TRACE_1("enter", _this); + _args = _this select 0; + //PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + _shooter = _args select 0; + _missile = _args select 6; + _curVelocity = velocity _missile; + + if(!alive _missile || isNull _missile || isNull _shooter) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + }; + + _launchPos = _shooter getVariable [QGVAR(launchPos), nil]; + if(isNil "_launchPos") then { + TRACE_1("Setting launch parameters", ""); + _launchPos = getPosASL _shooter; + _shooter setVariable [QGVAR(launchPos), _launchPos, false]; + _shooter setVariable [QGVAR(launchTime), diag_tickTime, false]; + }; + + _targets = [_missile, ACE_DEFAULT_LASER_CODE, 70, _curVelocity] call uo_sys_laser_fnc_findLaserDesignator; + _addHeight = [0,0,0]; + if((_targets select 0)) then { + _target = _targets select 1; + TRACE_2("Targets", _target, _targets); + + _yVec = vectorDir _missile; + _zVec = vectorUp _missile; + _xVec = vectorNormalized (_yVec vectorCrossProduct _zVec); + + _missilePos = getPosASL _missile; + // player sideChat "G!"; + _targetPos = getPosASL _target; + TRACE_4("Phase Check", _launchPos, _missilePos, _targetPos, (_missilePos distance _targetPos)); + if((count _targetPos) > 0) then { + _distanceToTarget = _missilePos vectorDistance _targetPos; + + if((_launchPos distance _missilePos) < 400 && (_targetPos distance _missilePos) > 400) then { + _addHeight = [0,0,(_targetPos select 2) + (_missilePos distance _targetPos)*0.5]; + TRACE_1("Climb phase", _addHeight); + } else { + // Covered half the distance, go terminal + if((_missilePos distance _targetPos) < (_launchPos distance _targetPos) / 2) then { + TRACE_1("TERMINAL", ""); + } else { + if((_missilePos select 2) > (_targetPos select 2)) then { + _heightDiff = (_missilePos select 2) - (_targetPos select 2); + TRACE_1("Coasting", _heightDiff); + _addHeight = [0,0, _heightDiff]; + }; + }; + }; + _targetPos = _targetPos vectorAdd _addHeight; + + _defYaw = 0.0035; + _defPitch = 0.0075; + + _targetVectorSeeker = [_missile, [_xVec, _yVec, _zVec], _targetPos] call FUNC(translateToWeaponSpace); + _yaw = 0.0; + if((_targetVectorSeeker select 0) < 0) then { + _yaw = -_defYaw; + } else { + if((_targetVectorSeeker select 0) > 0) then { + _yaw = _defYaw; + }; + }; + + _pitch = 0.0; + if((_targetVectorSeeker select 2) < 0) then { + _pitch = -_defPitch; + } else { + if((_targetVectorSeeker select 2) > 0) then { + _pitch = _defPitch; + }; + }; + #ifdef DEBUG_MODE_FULL + drawLine3D [(ASLtoATL _targetPos) vectorAdd _addHeight, ASLtoATL _targetPos, [0,1,0,1]]; + + _light = "#lightpoint" createVehicleLocal (getPos _missile); + _light setLightBrightness 1.0; + _light setLightAmbient [1.0, 0.0, 0.0]; + _light setLightColor [1.0, 0.0, 0.0]; + + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,1,1,1], ASLtoATL _missilePos, 0.75, 0.75, 0, str _vectorTo, 1, 0.025, "TahomaB"]; + drawLine3D [ASLtoATL _missilePos, ASLtoATL _targetPos, [1,0,0,1]]; + + _distance = ([getPos startPos, _missilePos] call BIS_fnc_distance2D); + _marker = createMarkerLocal [format["m%1", MARKERCOUNT], [_distance, _missilePos select 2]]; + _marker setMarkerTypeLocal "mil_dot"; + _marker setMarkerColorLocal "ColorRed"; + + MARKERCOUNT = MARKERCOUNT + 1; + #endif + + if(accTime > 0) then { + _outVector = [_missile, [_xVec, _yVec, _zVec], [_yaw, 1/accTime, _pitch]] call FUNC(translateToModelSpace); + + _vectorTo = _missilePos vectorFromTo _outVector; + _missile setVectorDirAndUp [_vectorTo, vectorUp _missile]; + }; + + #ifdef DEBUG_MODE_FULL + hintSilent format["d: %1", _distanceToTarget]; + #endif + }; + }; +}; + + +FUNC(guidance_Hellfire_LOAL_HI) = { + PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + + GVAR(lastTime) = time; + [FUNC(guidance_Hellfire_LOAL_HI_PFH), 0, _this] call cba_fnc_addPerFrameHandler; +}; + + +FUNC(guidance_Hellfire_LOAL_DIR) = { + PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + + GVAR(lastTime) = time; + [FUNC(guidance_Hellfire_LOAL_DIR_PFH), 0, _this] call cba_fnc_addPerFrameHandler; +}; + +PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); +_fireMode = _shooter getVariable ["ACE_FIRE_SELECTION", ACE_DEFAULT_FIRE_SELECTION]; + +switch (_fireMode select 0) do { + // Default to FIREMODE_DIRECT_LOAL + // FIREMODE_DIRECT_LOAL + default { + LOG("Initiating Hellfire II FIREMODE_LOAL_DIR"); + _this call FUNC(guidance_Hellfire_LOAL_HI); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_guidance_LGB.sqf b/TO_MERGE/ace/missileguidance/fnc_guidance_LGB.sqf new file mode 100644 index 0000000000..e9e8754f19 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_guidance_LGB.sqf @@ -0,0 +1,109 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" + +FUNC(guidance_LGB_LOAL_PFH) = { + //TRACE_1("enter", _this); + _args = _this select 0; + //PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + _lgb = _args select 6; + _curVelocity = velocity _lgb; + + if(!alive _lgb) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + }; + + _targets = [_lgb, ACE_DEFAULT_LASER_CODE, 70, _curVelocity] call uo_laser_fnc_findLaserDesignator; + //TRACE_2("Targets", _target, _targets); + + if((_targets select 0)) then { + _target = _targets select 1; + + // player sideChat "FUCK!"; + // drop ["\a3\data_f\Cl_basic","","Billboard",1,20,(getPos _lgb),[0,0,0],1,1.275,1.0,0.0,[5],[[1,0,0,1]],[0],0.0,2.0,"","",""]; + + + _yVec = vectorDir _lgb; + _zVec = vectorUp _lgb; + _xVec = vectorNormalized (_yVec vectorCrossProduct _zVec); + + _lgbPos = getPosASL _lgb; + // player sideChat "G!"; + _targetPos = getPosASL _target; + if((count _targetPos) > 0) then { + // player sideChat format["f: %1", _targetPos]; + _addHeight = [0,0,(_lgbPos distance _targetPos)*0.06]; + // drawLine3D [(ASLtoATL _targetPos) vectorAdd _addHeight, ASLtoATL _targetPos, [0,1,0,1]]; + _targetPos = _targetPos vectorAdd _addHeight; + + + + _def = 0.0025; + + _targetVectorSeeker = [_lgb, [_xVec, _yVec, _zVec], _targetPos] call FUNC(translateToWeaponSpace); + // _targetVectorSeeker = _lgb worldToModel (ASLtoATL _targetPos); + // _targetVectorSeeker = [0,0,0] vectorFromTo _targetVectorSeeker; + _yaw = 0.0; + if((_targetVectorSeeker select 0) < 0) then { + _yaw = -_def; + } else { + if((_targetVectorSeeker select 0) > 0) then { + _yaw = _def; + }; + }; + + _pitch = 0.0; + if((_targetVectorSeeker select 2) < 0) then { + _pitch = -_def; + } else { + if((_targetVectorSeeker select 2) > 0) then { + _pitch = _def; + }; + }; + #ifdef DEBUG_MODE_FULL + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,1,1,1], ASLtoATL _lgbPos, 0.75, 0.75, 0, str _vectorTo, 1, 0.025, "TahomaB"]; + drawLine3D [ASLtoATL _lgbPos, ASLtoATL _targetPos, [1,0,0,1]]; + + _distance = ([getPos startPos, _lgbPos] call BIS_fnc_distance2D); + _marker = createMarkerLocal [format["m%1", MARKERCOUNT], [_distance, _lgbPos select 2]]; + _marker setMarkerTypeLocal "mil_dot"; + _marker setMarkerColorLocal "ColorRed"; + + MARKERCOUNT = MARKERCOUNT + 1; + #endif + + if(accTime > 0) then { + _outVector = [_lgb, [_xVec, _yVec, _zVec], [_yaw, 1/accTime, _pitch]] call FUNC(translateToModelSpace); + // _outVector = _lgb modelToWorld [_yaw, 1, _pitch]; + // _outVector = ATLtoASL _outVector; + _vectorTo = _lgbPos vectorFromTo _outVector; + + // hintSilent format["v: %1", _vectorTo]; + + // _lgb setVectorDir _vectorTo; + _lgb setVectorDirAndUp [_vectorTo, vectorUp _lgb]; + }; + + #ifdef DEBUG_MODE_FULL + hintSilent format["d: %1", _lgbPos vectorDistance _targetPos]; + #endif + }; + }; +}; + +FUNC(guidance_LGB_LOAL) = { + PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + + [FUNC(guidance_LGB_LOAL_PFH), 0, _this] call cba_fnc_addPerFrameHandler; +}; + +PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); +_fireMode = _shooter getVariable ["ACE_FIRE_SELECTION", ACE_DEFAULT_FIRE_SELECTION]; + +switch (_fireMode select 0) do { + // Default to FIREMODE_DIRECT_LOAL + // FIREMODE_DIRECT_LOAL + default { + LOG("Initiating FIREMODE_DIRECT_LOAL"); + _this call FUNC(guidance_LGB_LOAL); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_rotateVectLine.sqf b/TO_MERGE/ace/missileguidance/fnc_rotateVectLine.sqf new file mode 100644 index 0000000000..b0360cc330 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_rotateVectLine.sqf @@ -0,0 +1,38 @@ +#include "script_component.hpp" + +_map = _this select 0; +_theta = _this select 1; + +_p = _map select 0; +_p1 = _map select 1; +_p2 = _map select 2; + +_q1 = +(_map select 3); +_q2 = +(_map select 4); +_u = _map select 5; +_d = _map select 6; + +/* Step 4 */ +_q2 set[0, (_q1 select 0) * cos(_theta) - (_q1 select 1) * sin(_theta)]; +_q2 set[1, (_q1 select 0) * sin(_theta) + (_q1 select 1) * cos(_theta)]; +_q2 set[2, (_q1 select 2)]; + +/* Inverse of step 3 */ +_q1 set[0, (_q2 select 0) * _d + (_q2 select 2) * (_u select 0)]; +_q1 set[1, (_q2 select 1)]; +_q1 set[2, - (_q2 select 0) * (_u select 0) + (_q2 select 2) * _d]; + +/* Inverse of step 2 */ +if (_d != 0) then { + _q2 set[0, (_q1 select 0)]; + _q2 set[1, (_q1 select 1) * (_u select 2) / _d + (_q1 select 2) * (_u select 1) / _d]; + _q2 set[2, - (_q1 select 1) * (_u select 1) / _d + (_q1 select 2) * (_u select 2) / _d]; +} else { + _q2 = _q1; +}; + +/* Inverse of step 1 */ +_q1 set[0, (_q2 select 0) + (_p1 select 0)]; +_q1 set[1, (_q2 select 1) + (_p1 select 1)]; +_q1 set[2, (_q2 select 2) + (_p1 select 2)]; +_q1; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_rotateVectLineGetMap.sqf b/TO_MERGE/ace/missileguidance/fnc_rotateVectLineGetMap.sqf new file mode 100644 index 0000000000..fdbd6533ef --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_rotateVectLineGetMap.sqf @@ -0,0 +1,37 @@ +#include "script_component.hpp" + +private ["_p", "_theta", "_p1", "_p2", "_q1", "_q2", "_u", "_d"]; +_p = _this select 0; +_p1 = _this select 1; +_p2 = _this select 2; + +_q1 = []; +_q2 = []; +_u = []; + +/* Step 1 */ +_q1 set[0, (_p select 0) - (_p1 select 0)]; +_q1 set[1, (_p select 1) - (_p1 select 1)]; +_q1 set[2, (_p select 2) - (_p1 select 2)]; + +_u set[0, (_p2 select 0) - (_p1 select 0)]; +_u set[1, (_p2 select 1) - (_p1 select 1)]; +_u set[2, (_p2 select 2) - (_p1 select 2)]; +_u = _u call BIS_fnc_unitVector; +_d = sqrt((_u select 1)*(_u select 1) + (_u select 2)*(_u select 2)); + +/* Step 2 */ +if (_d != 0) then { + _q2 set[0, (_q1 select 0)]; + _q2 set[1, (_q1 select 1) * (_u select 2) / _d - (_q1 select 2) * (_u select 1) / _d]; + _q2 set[2, (_q1 select 1) * (_u select 1) / _d + (_q1 select 2) * (_u select 2) / _d]; +} else { + _q2 = _q1; +}; + +/* Step 3 */ +_q1 set[0, (_q2 select 0) * _d - (_q2 select 2) * (_u select 0)]; +_q1 set[1, (_q2 select 1)]; +_q1 set[2, (_q2 select 0) * (_u select 0) + (_q2 select 2) * _d]; + +[_p, _p1, _p2, _q1, _q2, _u, _d] \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_translateToModelSpace.sqf b/TO_MERGE/ace/missileguidance/fnc_translateToModelSpace.sqf new file mode 100644 index 0000000000..1e2e930ac7 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_translateToModelSpace.sqf @@ -0,0 +1,16 @@ +_object = _this select 0; +_origin = getPosASL _object; +_matrix = _this select 1; +_xVec = _matrix select 0; +_yVec = _matrix select 1; +_zVec = _matrix select 2; + +_offset = _this select 2; + +_x = _offset select 0; +_y = _offset select 1; +_z = _offset select 2; + +_out = (((_xVec vectorMultiply _x) vectorAdd (_yVec vectorMultiply _y)) vectorAdd (_zVec vectorMultiply _z)) vectorAdd _origin; + +_out; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/fnc_translateToWeaponSpace.sqf b/TO_MERGE/ace/missileguidance/fnc_translateToWeaponSpace.sqf new file mode 100644 index 0000000000..406d81b145 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/fnc_translateToWeaponSpace.sqf @@ -0,0 +1,22 @@ +_object = _this select 0; +_origin = getPosASL _object; +_matrix = _this select 1; +_xVec = _matrix select 0; +_yVec = _matrix select 1; +_zVec = _matrix select 2; + +_offset = _this select 2; + +_offset = _offset vectorDiff _origin; + +_x = _offset select 0; +_y = _offset select 1; +_z = _offset select 2; + +_out = [ + ((_xVec select 0)*_x) + ((_xVec select 1)*_y) + ((_xVec select 2)*_z), + ((_yVec select 0)*_x) + ((_yVec select 1)*_y) + ((_yVec select 2)*_z), + ((_zVec select 0)*_x) + ((_zVec select 1)*_y) + ((_zVec select 2)*_z) + ]; + +_out; \ No newline at end of file diff --git a/TO_MERGE/ace/missileguidance/script_component.hpp b/TO_MERGE/ace/missileguidance/script_component.hpp new file mode 100644 index 0000000000..7e1e641e00 --- /dev/null +++ b/TO_MERGE/ace/missileguidance/script_component.hpp @@ -0,0 +1,14 @@ +#define COMPONENT sys_missileguidance +#include "\x\uo\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_MISSILEGUIDANCE + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_MISSILEGUIDANCE + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_MISSILEGUIDANCE +#endif + +#include "\x\uo\Addons\main\script_macros.hpp" + +#define FIREMODE_DIRECT_LOAL 1 \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/$PBOPREFIX$ b/TO_MERGE/ace/sys_maptools/$PBOPREFIX$ new file mode 100644 index 0000000000..31623dfb0a --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\sys_maptools \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/ACE_readme.txt b/TO_MERGE/ace/sys_maptools/ACE_readme.txt new file mode 100644 index 0000000000..b2389c1453 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/ACE_readme.txt @@ -0,0 +1,56 @@ +///////////////////////////////////////////////////////////////////////////////// +# # +# ADVANCED COMBAT ENVIRONMENT FILE # +# # +///////////////////////////////////////////////////////////////////////////////// + + +#===========# +| Component | +#===========# + +ace_sys_maptools + +#================# +| Main author(s) | +#================# + +Nou + +#===============# +| Local credits | +#===============# + +Nou + +#=============================# +| Rough component description | +#=============================# + + + +#=================# +| Contact details | +#=================# + + +Page: http://dev-heaven.net/projects/show/ace-mod2 + + + +///////////////////////////////////////////////////////////////////////////////// +# # +# ADVANCED COMBAT ENVIRONMENT FILE # +# # +///////////////////////////////////////////////////////////////////////////////// +// // +# Copyright 2009 A.C.E MOD, ALL RIGHTS RESERVED # +// // +// This product is licensed for personal use only. Commercial distribution // +// prohibited. Military use prohibited. Use prohibited if any component // +// of this distribution removed or modified without express written consent // +// of the developer. For further licensing details please refer to the // +// End User License Agreement provided within this PBO file. // +// Any questions or comments, please contact contact@acemod.net // +// // +///////////////////////////////////////////////////////////////////////////////// diff --git a/TO_MERGE/ace/sys_maptools/CfgEventhandlers.hpp b/TO_MERGE/ace/sys_maptools/CfgEventhandlers.hpp new file mode 100644 index 0000000000..8eacbe5b6b --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/CfgEventhandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + clientInit = QUOTE(call COMPILE_FILE(XEH_preClientInit)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + clientInit = QUOTE(call COMPILE_FILE(XEH_postClientInit)); + }; +}; diff --git a/TO_MERGE/ace/sys_maptools/XEH_postClientInit.sqf b/TO_MERGE/ace/sys_maptools/XEH_postClientInit.sqf new file mode 100644 index 0000000000..486e473fd3 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/XEH_postClientInit.sqf @@ -0,0 +1,54 @@ +#include "script_component.hpp" + +/* + * Get Key Configs + */ + +if (!GVAR(Enabled)) exitwith {}; + +[QGVAR(data), {_this call FUNC(handleData)}] call ACE_fnc_addReceiverOnlyEventhandler; +[QGVAR(execcopy), {_this spawn FUNC(beginCopy)}] call ACE_fnc_addReceiverOnlyEventhandler; + +FUNC(beginCopy) = { + private ["_complete", "_sendCount", "_count", "_line"]; + PARAMS_2(_target,_copier); + _complete = true; + + _sendCount = (count GVAR(RulerLines)); + if (_target == player) then { + [QGVAR(data), [_copier, _sendCount]] call ACE_fnc_receiverOnlyEvent; + _count = 0; + { + _line = _x; + if !(isNil "_x") then { + if ((_copier distance player) > 1.5) exitWith { + _complete = false; + }; + [QGVAR(data), [_copier, _x]] call ACE_fnc_receiverOnlyEvent; + sleep .25; + }; + _count = _count + 1; + if (_count > _sendCount) exitWith { + _complete = true; + }; + } forEach(GVAR(RulerLines)); + [QGVAR(data), [_copier, _complete]] call ACE_fnc_receiverOnlyEvent; + }; +}; + +_this spawn { + while {true} do { + if (scriptDone GVAR(IconScalerPID)) then { + waitUntil {sleep 1; !isNull (findDisplay 12)}; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["MouseButtonClick", '[_this] call FUNC(ClickHandler)']; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["KeyDown", '[_this, true] call FUNC(KeyBoardHandler)']; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["KeyUp", '[_this, false] call FUNC(KeyBoardHandler)']; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["mouseButtonDown", '[_this, true] call FUNC(MouseHandler)']; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["mouseButtonUp", '[_this, false] call FUNC(MouseHandler)']; + ((findDisplay 12) displayCtrl 51) ctrlAddEventHandler ["mouseMoving", '_this call FUNC(DragHandler)']; + + GVAR(IconScalerPID) = [_this] spawn FUNC(IconScaler); + }; + sleep 2; + }; +}; diff --git a/TO_MERGE/ace/sys_maptools/XEH_preClientInit.sqf b/TO_MERGE/ace/sys_maptools/XEH_preClientInit.sqf new file mode 100644 index 0000000000..b25243ad3e --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/XEH_preClientInit.sqf @@ -0,0 +1,53 @@ +#include "script_component.hpp" + +ADDON = false; + +PREP(KeyBoardHandler); +PREP(ClickHandler); +PREP(IconScaler); +PREP(DragHandler); +PREP(MouseHandler); +PREP(OverObject); +PREP(FreeHandLine); +PREP(EndFreehandLine); +PREP(SelectLine); +PREP(DeSelectLine); +PREP(DeleteLine); +PREP(StraightLine); +PREP(EndStraightLine); +PREP(handleData); +PREP(copymap); + +GVAR(Enabled) = true; +GVAR(MouseDown) = false; +GVAR(DragOK) = false; +GVAR(OffDrag) = false; +GVAR(LastDragPosition) = []; +GVAR(RulerStartPos) = []; +GVAR(MouseShift) = false; +GVAR(LastDragAzimuth) = -1000; +GVAR(MapLineNumber) = 0; +GVAR(MapLineSegmentStart) = [0, 0, 0]; +GVAR(MapLineColor) = 0; +GVAR(MapPreviousDir) = 0; +GVAR(RulerKeyDown) = -1000; +GVAR(RemoteLinesCount) = 0; +GVAR(UpHandlerFnc) = {}; +GVAR(LineSegment) = 0; +GVAR(LastLineSegment) = []; +GVAR(FreeHandLines) = []; +GVAR(LineColors) = ["ColorBlack", "ColorBlue", "ColorBrown", "ColorGreen", "ColorRed", "ColorKhaki", "ColorPink", "ColorYellow", "ColorWhite"]; +GVAR(SelectedLine) = ""; +GVAR(SelectedType) = -1; +GVAR(RulerLines) = []; +GVAR(CopyNumber) = 0; +GVAR(CurrentTarget) = nil; +GVAR(CopyNumber) = 0; +GVAR(CopyTotal) = 0; +GVAR(LocalTransmitChannel) = -1; +GVAR(DragAction) = ""; +GVAR(IconScalerPID) = _this spawn {}; + +["CAManBase", [ace_sys_interaction_key], -2, [QPATHTO_F(fnc_copymap_menuDef), "main"]] call CBA_ui_fnc_add; + +ADDON = true; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/ace_maptools.p3d b/TO_MERGE/ace/sys_maptools/ace_maptools.p3d new file mode 100644 index 0000000000..854e8e4374 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/ace_maptools.p3d differ diff --git a/TO_MERGE/ace/sys_maptools/config.cpp b/TO_MERGE/ace/sys_maptools/config.cpp new file mode 100644 index 0000000000..f3cb310b42 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/config.cpp @@ -0,0 +1,111 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = { "ACE_Map_Tools" }; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = {"A3_UI_F", "ace_common", "ace_sys_interaction"}; + version = VERSION; + author[] = {"Noubernou"}; + class ACE_Options { // ACE Options + group = "ITEMS"; + title = $STR_ACE_MAPTOOLS_NAME; // Empty (WITH A SPACE IN BETWEEN!!!!!) if no CAPTION TEXT is wanted + class place_ruler { // Points to CBA Events, e.g for the keypress registered within CBA + title = $STR_ACE_MAPTOOLS_PLACERULER; + }; + class align_ruler { + title = $STR_ACE_MAPTOOLS_ALIGNRULER; + }; + class start_drawing { + title = $STR_ACE_MAPTOOLS_STARTDRAWING; + }; + class end_straight_line { + title = $STR_ACE_MAPTOOLS_ENDSTRAIGHTLINE; + }; + class delete_line { + title = $STR_ACE_MAPTOOLS_DELETELINE; + }; + }; + }; +}; + +PRELOAD_ADDONS; + +class CfgMarkers { + class Empty; + class FlatCompass: Empty { + name="Flat Compass"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = true; + }; + class FlatCompass50: FlatCompass { + name="Flat Compass 50%"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_50.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = true; + }; + class FlatCompass25: FlatCompass { + name="Flat Compass 25%"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_25.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = true; + }; + class FlatCompass12: FlatCompass { + name="Flat Compass 12.5%"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_12.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = true; + }; + class FlatCompassRose: Empty { + name="Flat Compass Rose"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_rose.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = false; + }; + class FlatCompassRose50: FlatCompassRose { + name="Flat Compass Rose 50%"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_rose_50.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = false; + }; + class FlatCompassRose25: FlatCompassRose { + name="Flat Compass Rose 25%"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_rose_25.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = false; + }; + class FlatCompassRose12: FlatCompassRose { + name="Flat Compass Rose 12.5"; + icon=QUOTE(PATHTOF(data\rsc\flat_compass_rose_12.paa)); + color[]={1,1,1,1.000000}; + size=32; + shadow = false; + }; +}; + +class CfgWeapons { + class ItemCore; + class ACE_Map_Tools: ItemCore { + scope = 2; + displayName = "$STR_ACE_MAPTOOLS_NAME"; + class ItemInfo { + mass = 1; + type = 401; + }; + model = QPATHTO_M(ace_maptools.p3d); + picture = QPATHTO_T(data\equip\w_maptools_ca.paa); + descriptionShort = "$STR_ACE_MAPTOOLS_NAME"; + ACE_NOARMORY; + }; +}; + +#include "CfgEventhandlers.hpp" diff --git a/TO_MERGE/ace/sys_maptools/data/equip/w_maptools_ca.paa b/TO_MERGE/ace/sys_maptools/data/equip/w_maptools_ca.paa new file mode 100644 index 0000000000..7d554f4638 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/equip/w_maptools_ca.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass.paa new file mode 100644 index 0000000000..8bff5b23a0 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_12.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_12.paa new file mode 100644 index 0000000000..837634e6cf Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_12.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_25.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_25.paa new file mode 100644 index 0000000000..ca48fbaf15 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_25.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_50.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_50.paa new file mode 100644 index 0000000000..15eaed1387 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_50.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose.paa new file mode 100644 index 0000000000..cd1bf19f72 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_12.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_12.paa new file mode 100644 index 0000000000..9133c7f431 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_12.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_25.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_25.paa new file mode 100644 index 0000000000..a28d8a11b3 Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_25.paa differ diff --git a/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_50.paa b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_50.paa new file mode 100644 index 0000000000..58273c02ef Binary files /dev/null and b/TO_MERGE/ace/sys_maptools/data/rsc/flat_compass_rose_50.paa differ diff --git a/TO_MERGE/ace/sys_maptools/fnc_ClickHandler.sqf b/TO_MERGE/ace/sys_maptools/fnc_ClickHandler.sqf new file mode 100644 index 0000000000..67329100f2 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_ClickHandler.sqf @@ -0,0 +1,164 @@ +///////////////////////////////////////////////////// +// ruler.sqf +// by nou +// +// please see the documentation in add_ruler.sqf +// +// There is a lot of things that should be documented in here +// but I do not have the time right now. It is pretty easy to +// follow though. I hope! ;) +///////////////////////////////////////////////////// +#include "script_component.hpp" +if (inITEMS("ACE_Map_Tools",player)) then { + disableSerialization; + _params = _this select 0; + + _ctrlId = _params select 0; + _mouseBtnId = _params select 1; + _scrX = _params select 2; + _scrY = _params select 3; + _shiftBtn = _params select 4; + _ctrlBtn = _params select 5; + _altBtn = _params select 6; + + _colors = GVAR(LineColors); + + _pos = _ctrlId ctrlMapScreenToWorld [_scrX, _scrY]; + _offSet = 543*2; + + + if(GVAR(RulerKeyDown) != -1000) then { + switch(GVAR(RulerKeyDown)) do { + case (["CBA","events","ace_sys_maptools","Place_Ruler","key"] call ace_settings_fnc_getNumber): { + _startPos = _pos; + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRuler)); + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRose)); + + GVAR(RulerStartPos) = _pos; + + _marker = createMarkerLocal [QUOTE(DOUBLES(ADDON,compassRuler)), [_startPos select 0, ((_startPos select 1)+_offSet)]]; + _marker setMarkerTypeLocal "FlatCompass"; + + _markerRose = createMarkerLocal [QUOTE(DOUBLES(ADDON,compassRose)), [_startPos select 0, ((_startPos select 1)+(_offSet))]]; + _markerRose setMarkerTypeLocal "FlatCompassRose"; + GVAR(MapPreviousDir) = 0; + }; + case (["CBA","events","ace_sys_maptools","Align_Ruler","key"] call ace_settings_fnc_getNumber): { + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRuler)); + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRose)); + _startPos = GVAR(RulerStartPos); + + _marker = createMarkerLocal [QUOTE(DOUBLES(ADDON,compassRuler)), [_startPos select 0, ((_startPos select 1)+_offSet)]]; + _marker setMarkerTypeLocal "FlatCompass"; + + _markerRose = createMarkerLocal [QUOTE(DOUBLES(ADDON,compassRose)), [_startPos select 0, ((_startPos select 1)+(_offSet))]]; + _markerRose setMarkerTypeLocal "FlatCompassRose"; + + _endPos = _pos; + _x1 = _startPos select 0; + _x2 = _endPos select 0; + _y1 = _startPos select 1; + _y2 = _endPos select 1; + _az = (180 + (((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + + _sliceStartX = (_startPos select 0) + sin(_az)*_offSet; + _sliceStartY = (_startPos select 1) + cos(_az)*_offSet; + _marker setMarkerDirLocal _az; + _marker setMarkerPosLocal [_sliceStartX, _sliceStartY]; + GVAR(MapPreviousDir) = _az; + }; + + + case (["CBA","events","ace_sys_maptools","Start_Drawing","key"] call ace_settings_fnc_getNumber): { + if(!GVAR(MouseDown)) then { + if((GVAR(MapLineSegmentStart) select 0) == (_pos select 0) && {(GVAR(MapLineSegmentStart) select 1) == (GVAR(MapLineSegmentStart) select 1)}) then { + GVAR(MapLineColor) = GVAR(MapLineColor) + 1; + if(GVAR(MapLineColor) > (count _colors)-1) then { + GVAR(MapLineColor) = 0; + }; + }; + _color = _colors select GVAR(MapLineColor); + GVAR(MapLineSegmentStart) = _pos; + _originMarkerName = QUOTE(DOUBLES(ADDON,line_origin)); + deleteMarkerLocal _originMarkerName; + _origin = createMarkerLocal [_originMarkerName, _pos]; + _origin setMarkerShapeLocal "ICON"; + _origin setMarkerTypeLocal "mil_dot"; + _origin setMarkerTextLocal ""; + _origin setMarkerColorLocal _color; + }; + }; + + case (["CBA","events","ace_sys_maptools","End_Straight_Line","key"] call ace_settings_fnc_getNumber): { + if(!GVAR(MouseDown) && {((format["%1", (getMarkerType QUOTE(DOUBLES(ADDON,line_origin)))]) != "")}) then { + _ctrl = ((findDisplay 12) displayCtrl 51); + _endPos = _pos; + _x1 = GVAR(MapLineSegmentStart) select 0; + _x2 = _endPos select 0; + _y1 = GVAR(MapLineSegmentStart) select 1; + _y2 = _endPos select 1; + _az = (180 + (((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + _distance = [_x1, _y1, 0] distance [_x2, _y2, 0]; + _posX = (GVAR(MapLineSegmentStart) select 0) + sin(_az)*(_distance/2); + _posY = (GVAR(MapLineSegmentStart) select 1) + cos(_az)*(_distance/2); + + _originMarkerName = QUOTE(DOUBLES(ADDON,line_origin)); + + deleteMarkerLocal _originMarkerName; + _name = format["%2_line_segment_%1", (count GVAR(RulerLines)), QUOTE(ADDON)]; + _color = _colors select GVAR(MapLineColor); + _line = createMarkerLocal [_name, [_posX, _posY, 0]]; + _line setMarkerShapeLocal "RECTANGLE"; + _line setMarkerSizeLocal [0, (_distance/2)]; + _line setMarkerBrushLocal "BORDER"; + _line setMarkerColorLocal _color; + _line setMarkerDirLocal _az; + _newLine = [1, _name, [_posX, _posY, 0], (_distance/2), _az, _color]; + GVAR(RulerLines) set[(count GVAR(RulerLines)), _newLine]; + }; + }; + }; + } else { + _selected = false; + for "_i" from 0 to (count GVAR(RulerLines))-1 do { + _x = (GVAR(RulerLines) select _i); + if(!(isNil "_x")) then { + if((count _x) > 2) then { + switch (_x select 0) do { + case 1: { + _overLine = [_x select 2, _pos, (getMarkerSize (_x select 1)), _x select 4] call FUNC(OverObject); + if(_overLine) exitWith { + [] call FUNC(DeSelectLine); + GVAR(SelectedLine) = _i; + GVAR(SelectedType) = 1; + [] call FUNC(SelectLine); + _selected = true; + }; + }; + case 2: { + _lineCount = _x select 2; + if(!(isNil "_lineCount")) then { + for "_c" from 0 to _lineCount-1 do { + _marker = format["%3_freehand_%1_%2", _i, _c, QUOTE(ADDON)]; + _overLine = [(getMarkerPos _marker), _pos, (getMarkerSize _marker), (markerDir _marker)] call FUNC(OverObject); + if(_overLine) exitWith { + [] call FUNC(DeSelectLine); + GVAR(SelectedLine) = _i; + GVAR(SelectedType) = 2; + [] call FUNC(SelectLine); + _selected = true; + }; + }; + }; + }; + }; + }; + }; + if(_selected) exitWith {}; + }; + if(!_selected) then { + [] call FUNC(DeSelectLine); + }; + }; + +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_CopyMap.sqf b/TO_MERGE/ace/sys_maptools/fnc_CopyMap.sqf new file mode 100644 index 0000000000..54bdb5642f --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_CopyMap.sqf @@ -0,0 +1,6 @@ +//copyMap.sqf +#include "script_component.hpp" +_target = _this; +if(GVAR(CopyTotal) == 0) then { + [QGVAR(execcopy), [_target, player]] call ACE_fnc_receiverOnlyEvent; +}; diff --git a/TO_MERGE/ace/sys_maptools/fnc_DeSelectLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_DeSelectLine.sqf new file mode 100644 index 0000000000..4183c7795e --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_DeSelectLine.sqf @@ -0,0 +1,20 @@ +//DeSelectLine.sqf +#include "script_component.hpp" +switch (GVAR(SelectedType)) do { + case 1: { + _line = GVAR(RulerLines) select GVAR(SelectedLine); + (_line select 1) setMarkerSizeLocal [0, (getMarkerSize (_line select 1)) select 1]; + }; + + case 2: { + _line = GVAR(RulerLines) select GVAR(SelectedLine); + _lineCount = _line select 2; + if(!(isNil "_lineCount")) then { + for "_x" from 0 to _lineCount do { + _marker = format["%3_freehand_%1_%2", GVAR(SelectedLine), _x, QUOTE(ADDON)]; + _marker setMarkerSizeLocal [0, (getMarkerSize _marker) select 1]; + }; + }; + }; + default {}; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_DeleteLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_DeleteLine.sqf new file mode 100644 index 0000000000..9ef8e41217 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_DeleteLine.sqf @@ -0,0 +1,24 @@ +//DeleteLine.sqf +#include "script_component.hpp" +switch (GVAR(SelectedType)) do { + case 1: { + _line = GVAR(RulerLines) select GVAR(SelectedLine); + deleteMarkerLocal (_line select 1); + GVAR(RulerLines) set [GVAR(SelectedLine), nil]; + GVAR(SelectedLine) = ""; + GVAR(SelectedType) = -1; + }; + case 2: { + _lineCount = ((GVAR(RulerLines) select GVAR(SelectedLine)) select 2); + if(!(isNil "_lineCount")) then { + for "_x" from 0 to _lineCount do { + _marker = format["%3_freehand_%1_%2", GVAR(SelectedLine), _x, QUOTE(ADDON)]; + deleteMarkerLocal _marker; + }; + }; + GVAR(RulerLines) set [GVAR(SelectedLine), nil]; + GVAR(SelectedLine) = ""; + GVAR(SelectedType) = -1; + }; + default {}; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_DragHandler.sqf b/TO_MERGE/ace/sys_maptools/fnc_DragHandler.sqf new file mode 100644 index 0000000000..7c7ec0d2b5 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_DragHandler.sqf @@ -0,0 +1,86 @@ +//handleDrag.sqf +#include "script_component.hpp" +if(inITEMS("ACE_Map_Tools",player)) then { + if(GVAR(MouseDown)) then { + _pos = [_this select 1, _this select 2]; + _mPos = ((findDisplay 12) displayCtrl 51) posScreenToWorld _pos; + if(GVAR(RulerKeyDown) == -1000 || {GVAR(RulerKeyDown) == 42}) then { + _marker = QUOTE(DOUBLES(ADDON,compassRuler)); + _markerType = (markerType _marker); + if("FlatCompass" == _markerType || + {"FlatCompass50" == _markerType} || + {"FlatCompass25" == _markerType} || + {"FlatCompass12" == _markerType} || + {"FlatCompass6" == _markerType} + ) then { + if(!GVAR(OffDrag)) then { + _overCompass = false; + _startPos = GVAR(RulerStartPos); + _prevDir = GVAR(MapPreviousDir); + _offSet = 543*2; + _sliceStartX = (_startPos select 0) + sin(_prevDir)*_offSet; + _sliceStartY = (_startPos select 1) + cos(_prevDir)*_offSet; + _size = [755*2, 1460*2]; + + if(!GVAR(DragOK)) then { + _overCompass = [[_sliceStartX, _sliceStartY], _mPos, _size, _prevDir] call FUNC(OverObject); + }; + if(_overCompass || {GVAR(DragOK)}) then { + GVAR(DragOK) = true; + if(GVAR(MouseShift)) then { + _x1 = _startPos select 0; + _x2 = _mPos select 0; + _y1 = _startPos select 1; + _y2 = _mPos select 1; + _az = (180 + (((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + if(GVAR(LastDragAzimuth) == -1000) then { + GVAR(LastDragAzimuth) = _az; + }; + _azDif = _az - GVAR(LastDragAzimuth); + GVAR(LastDragAzimuth) = _az; + _az = _prevDir + _azDif; + _sliceStartX = (_startPos select 0) + sin(_az)*_offSet; + _sliceStartY = (_startPos select 1) + cos(_az)*_offSet; + QUOTE(DOUBLES(ADDON,compassRuler)) setMarkerDirLocal _az; + QUOTE(DOUBLES(ADDON,compassRuler)) setMarkerPosLocal [_sliceStartX, _sliceStartY]; + GVAR(MapPreviousDir) = _az; + } else { + if((count GVAR(LastDragPosition)) < 1) then { + GVAR(LastDragPosition) = _mPos; + }; + _difX = (_mPos select 0) - (GVAR(LastDragPosition) select 0); + _difY = (_mPos select 1) - (GVAR(LastDragPosition) select 1); + _compassPos = markerPos QUOTE(DOUBLES(ADDON,compassRose)); + _rulerPos = markerPos QUOTE(DOUBLES(ADDON,compassRuler)); + QUOTE(DOUBLES(ADDON,compassRose)) setMarkerPosLocal [(_compassPos select 0) + _difX, (_compassPos select 1) + _difY]; + QUOTE(DOUBLES(ADDON,compassRuler)) setMarkerPosLocal [(_rulerPos select 0) + _difX, (_rulerPos select 1) + _difY]; + GVAR(RulerStartPos) = [(_startPos select 0) + _difX, (_startPos select 1) + _difY]; + }; + } else { + GVAR(OffDrag) = true; + }; + }; + }; + } else { + switch(GVAR(RulerKeyDown)) do { + case (["CBA","events","ace_sys_maptools","Start_Drawing","key"] call ace_settings_fnc_getNumber): { + if(GVAR(DragAction) == "" || {GVAR(DragAction) == QGVAR(FreeHandLine)}) then { + GVAR(DragAction) = QGVAR(FreeHandLine); + _this call FUNC(FreeHandLine); + GVAR(UpHandlerFnc) = FUNC(EndFreehandLine); + }; + + }; + case (["CBA","events","ace_sys_maptools","End_Straight_Line","key"] call ace_settings_fnc_getNumber): { + if(GVAR(DragAction) == "" || {GVAR(DragAction) == QGVAR(StraightLine)}) then { + GVAR(DragAction) = QGVAR(StraightLine); + _this call FUNC(StraightLine); + GVAR(UpHandlerFnc) = FUNC(EndStraightLine); + }; + }; + default {}; + }; + }; + GVAR(LastDragPosition) = _mPos; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_EndFreehandLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_EndFreehandLine.sqf new file mode 100644 index 0000000000..52dac22086 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_EndFreehandLine.sqf @@ -0,0 +1,18 @@ +//EndFreehandLine.sqf +#include "script_component.hpp" +if(GVAR(LineSegment) > 0) then { + _newLineParts = []; + _color = ""; + for "_i" from 0 to GVAR(LineSegment)-1 do { + _x = format["%3_freehand_%1_%2", (count GVAR(RulerLines)), _i, QUOTE(ADDON)]; + _seg = [[(markerPos _x) select 0, (markerPos _x) select 1], ((getMarkerSize _x) select 1), (markerDir _x)]; + _newLineParts set[(count _newLineParts), _seg]; + _color = (markerColor _x); + }; + _newLine = [2, (count GVAR(RulerLines)), GVAR(LineSegment), _newLineParts, _color]; + GVAR(RulerLines) set[(count GVAR(RulerLines)), _newLine]; +}; + + +GVAR(LastLineSegment) = []; +GVAR(LineSegment) = 0; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_EndStraightLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_EndStraightLine.sqf new file mode 100644 index 0000000000..c2448aa9ff --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_EndStraightLine.sqf @@ -0,0 +1,27 @@ +//EndStraightLine.sqf +#include "script_component.hpp" +if((format["%1", (getMarkerType QUOTE(DOUBLES(ADDON,line_origin)))]) != "") then { + _tempName = QUOTE(DOUBLES(ADDON,temp_line)); + _name = format["%2_line_segment_%1", (count GVAR(RulerLines)), QUOTE(ADDON)]; + _newLine = [1, _name, (markerPos _tempName), ((getMarkerSize _tempName) select 1), (markerDir _tempName), (getMarkerColor _tempName)]; + _pos = _newLine select 2; + _length = _newLine select 3; + _az = _newLine select 4; + _color = _newLine select 5; + + _line = createMarkerLocal [_name, _pos]; + _line setMarkerShapeLocal "RECTANGLE"; + _line setMarkerSizeLocal [0, _length]; + _line setMarkerColorLocal _color; + _line setMarkerBrushLocal "BORDER"; + _line setMarkerDirLocal _az; + + _originMarkerName = QUOTE(DOUBLES(ADDON,line_origin)); + deleteMarkerLocal _originMarkerName; + deleteMarkerLocal _tempName; + + GVAR(RulerLines) set[(count GVAR(RulerLines)), _newLine]; +}; + + + diff --git a/TO_MERGE/ace/sys_maptools/fnc_FreeHandLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_FreeHandLine.sqf new file mode 100644 index 0000000000..774f79f975 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_FreeHandLine.sqf @@ -0,0 +1,35 @@ +//FreeHandLine.sqf +#include "script_component.hpp" +disableSerialization; + +_pos = [_this select 1, _this select 2]; +_mPos = ((findDisplay 12) displayCtrl 51) posScreenToWorld _pos; +if((count GVAR(LastLineSegment)) < 2) then { + GVAR(LastLineSegment) = _mPos; +}; +_lastPos = GVAR(LastLineSegment); +if((count _lastPos) > 0 && GVAR(RulerKeyDown) == (["CBA","events","ace_sys_maptools","Start_Drawing","key"] call ace_settings_fnc_getNumber)) then { + _length = _mPos distance _lastPos; + _map = -1; + waitUntil{_map = ((findDisplay 12) displayCtrl 51); !isNull _map}; + _scale = ctrlMapScale _map; + _minLength = ((_scale*20) max 2); + if(_length > _minLength) then { + _x1 = _lastPos select 0; + _x2 = _mPos select 0; + _y1 = _lastPos select 1; + _y2 = _mPos select 1; + _az = (180 + (((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + _segmentX = (_lastPos select 0) + sin(_az)*(_length/2); + _segmentY = (_lastPos select 1) + cos(_az)*(_length/2); + _name = format["%3_freehand_%1_%2", (count GVAR(RulerLines)), GVAR(LineSegment), QUOTE(ADDON)]; + GVAR(LineSegment) = GVAR(LineSegment) + 1; + _segment = createMarkerLocal [_name, [_segmentX, _segmentY, 0]]; + _segment setMarkerShapeLocal "RECTANGLE"; + _segment setMarkerSizeLocal [0, (_length/2)]; + _segment setMarkerDirLocal _az; + _segment setMarkerColorLocal (GVAR(LineColors) select GVAR(MapLineColor)); + _segment setMarkerBrushLocal "BORDER"; + GVAR(LastLineSegment) = _mPos; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_IconScaler.sqf b/TO_MERGE/ace/sys_maptools/fnc_IconScaler.sqf new file mode 100644 index 0000000000..fd86f05738 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_IconScaler.sqf @@ -0,0 +1,84 @@ +//handleScale.sqf +#include "script_component.hpp" +if(!isDedicated) then { + disableSerialization; + _map = -1; + waitUntil {_map = ((findDisplay 12) displayCtrl 51); !isNull _map}; + _magicW = (4.0395/0.00651044)*2; + _magicH = (4.23508/0.00909978)*2; + _o = 1; + waitUntil { + if (visibleMap && {inITEMS("ACE_Map_Tools",player)} && {!ace_common_spectator_SPECTATINGON}) then { + if (count GVAR(RulerStartPos) == 0) then { + _startPos = [0,0,0]; + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRuler)); + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRose)); + + GVAR(RulerStartPos) = _startPos; + + _marker = createMarkerLocal [QUOTE(DOUBLES(ADDON,compassRuler)), [_startPos select 0, ((_startPos select 1)+(543*2))]]; + _marker setMarkerTypeLocal "FlatCompass"; + + _markerRose = createMarkerLocal [QUOTE(DOUBLES(ADDON,compassRose)), [_startPos select 0, ((_startPos select 1)+(543*2))]]; + _markerRose setMarkerTypeLocal "FlatCompassRose"; + GVAR(MapPreviousDir) = 0; + }; + _marker = QUOTE(DOUBLES(ADDON,compassRuler)); + _markerRose = QUOTE(DOUBLES(ADDON,compassRose)); + _markerType = (markerType _marker); + if ("FlatCompass" == _markerType || + {"FlatCompass50" == _markerType} || + {"FlatCompass25" == _markerType} || + {"FlatCompass12" == _markerType} || + {"FlatCompass6" == _markerType} + ) then { + _scale = ctrlMapScale _map; + if(_scale <= 0.5) then { + _marker setMarkerTypeLocal "FlatCompass"; + _markerRose setMarkerTypeLocal "FlatCompassRose"; + }; + if(_scale > 0.5) then { + _marker setMarkerTypeLocal "FlatCompass50"; + _markerRose setMarkerTypeLocal "FlatCompassRose50"; + }; + // if(_scale > 0.7) then { + // _marker setMarkerTypeLocal "FlatCompass25"; + // _markerRose setMarkerTypeLocal "FlatCompassRose25"; + // }; + // if(_scale > 1) then { + // _marker setMarkerTypeLocal "FlatCompass12"; + // _markerRose setMarkerTypeLocal "FlatCompassRose12"; + // }; + _sample = _map posScreenToWorld [0.5, 0.5]; + _offset = [(_sample select 0) + 100, (_sample select 1) + 100]; + _screenOffset = _map posWorldToScreen _offset; + _difW = abs ((_screenOffset select 0) - 0.5); + _difH = abs ((_screenOffset select 1) - 0.5); + + + + + _difW = _difW/(_o/_scale); + _oScaleW = (_difW*_magicW); + _cScaleW = (_o/_scale)*_oScaleW; + _oScaleH = (_difH*_magicH); + _cScaleH = (_o/_scale)*_oScaleH; + QUOTE(DOUBLES(ADDON,compassRuler)) setMarkerSizeLocal [_cScaleW, _oScaleH]; + QUOTE(DOUBLES(ADDON,compassRose)) setMarkerSizeLocal [_cScaleW, _oScaleH]; + }; + } else { + if (ace_common_spectator_SPECTATINGON || {!(inITEMS("ACE_Map_Tools",player))}) then { + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRuler)); + deleteMarkerLocal QUOTE(DOUBLES(ADDON,compassRose)); + }; + _actionId = -1; + GVAR(MouseDown) = false; + GVAR(DragOK) = false; + GVAR(OffDrag) = false; + GVAR(MouseShift) = false; + GVAR(RulerKeyDown) = -1000; + sleep 1; + }; + false + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_KeyBoardHandler.sqf b/TO_MERGE/ace/sys_maptools/fnc_KeyBoardHandler.sqf new file mode 100644 index 0000000000..7ced3d1980 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_KeyBoardHandler.sqf @@ -0,0 +1,25 @@ +///////////////////////////////////////////////////// +// testkb.sqf +// by nou +// +// please see the documentation in add_ruler.sqf +///////////////////////////////////////////////////// +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_2(_event,_down); + +if(_down) then { + GVAR(RulerKeyDown) = (_event select 1); + switch (GVAR(RulerKeyDown)) do { + case (["CBA","events","ace_sys_maptools","Delete_Line","key"] call ace_settings_fnc_getNumber): { + [] call FUNC(DeleteLine); + }; + default {}; + }; +} else { + GVAR(RulerKeyDown) = -1000; + [] call GVAR(UpHandlerFnc); + GVAR(UpHandlerFnc) = {}; + GVAR(DragAction) = ""; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_MouseHandler.sqf b/TO_MERGE/ace/sys_maptools/fnc_MouseHandler.sqf new file mode 100644 index 0000000000..15c5c518e9 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_MouseHandler.sqf @@ -0,0 +1,27 @@ +///////////////////////////////////////////////////// +// mouseHandler.sqf +// by nou +// +// please see the documentation in add_ruler.sqf +///////////////////////////////////////////////////// +//#define DEBUG_MODE_FULL +#include "script_component.hpp" + +PARAMS_2(_event,_down); + +if ((_event select 1) == 0) then { + if(_down) then { + GVAR(MouseShift) = _event select 4; + GVAR(MouseDown) = true; + } else { + GVAR(MouseDown) = false; + GVAR(DragOK) = false; + GVAR(OffDrag) = false; + GVAR(LastDragPosition) = []; + GVAR(MouseShift) = false; + GVAR(LastDragAzimuth) = -1000; + [] call GVAR(UpHandlerFnc); + GVAR(UpHandlerFnc) = {}; + GVAR(DragAction) = ""; + }; +}; diff --git a/TO_MERGE/ace/sys_maptools/fnc_OverObject.sqf b/TO_MERGE/ace/sys_maptools/fnc_OverObject.sqf new file mode 100644 index 0000000000..6a76ad4b41 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_OverObject.sqf @@ -0,0 +1,37 @@ +//overCompass.sqf +#include "script_component.hpp" +private ["_posx","_posy","_tx","_ty","_cDir","_in","_objectPosition", "_mapPosition", "_size"]; +_objectPosition = _this select 0; +_mapPosition = _this select 1; +_size = _this select 2; +_cDir = _this select 3; +_posx = _objectPosition select 0; +_posy = _objectPosition select 1; +//_tx = _size select 0; +_tx = 5; +_ty = _size select 1; +_scalarresult = false; + +_difx = (_mapPosition select 0) - _posx; +_dify = (_mapPosition select 1) - _posy; +if(_difx == 0) then { + _difx = 0.001; +}; +if(_dify == 0) then { + _dify = 0.001; +}; +_dir = atan (_difx / _dify); +if (_dify < 0) then {_dir = _dir + 180}; +_relativedir = _cDir - _dir; +_adis = abs (_tx / cos (90 - _relativedir)); +_bdis = abs (_ty / cos _relativedir); +_borderdis = _adis min _bdis; +_positiondis = _mapPosition distance _objectPosition; + +_in = if (_scalarresult) then { + _positiondis - _borderdis; +} else { + (_positiondis < _borderdis) +}; + +_in \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_SelectLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_SelectLine.sqf new file mode 100644 index 0000000000..b29a7824e6 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_SelectLine.sqf @@ -0,0 +1,22 @@ +//SelectLine.sqf +#include "script_component.hpp" +switch (GVAR(SelectedType)) do { + case 1: { + _line = GVAR(RulerLines) select GVAR(SelectedLine); + (_line select 1) setMarkerSizeLocal [5, (getMarkerSize (_line select 1)) select 1]; + }; + + case 2: { + _line = GVAR(RulerLines) select GVAR(SelectedLine); + _lineCount = _line select 2; + if !(isNil "_lineCount") then { + for "_x" from 0 to _lineCount do { + _marker = format["%3_freehand_%1_%2", GVAR(SelectedLine), _x, QUOTE(ADDON)]; + _marker setMarkerSizeLocal [5, (getMarkerSize _marker) select 1]; + }; + }; + }; + + default {}; +}; + \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_StraightLine.sqf b/TO_MERGE/ace/sys_maptools/fnc_StraightLine.sqf new file mode 100644 index 0000000000..be43e668db --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_StraightLine.sqf @@ -0,0 +1,28 @@ +//StraightLine.sqf +#include "script_component.hpp" +_pos = [_this select 1, _this select 2]; +_mPos = ((findDisplay 12) displayCtrl 51) posScreenToWorld _pos; +_lastPos = (markerPos QUOTE(DOUBLES(ADDON,line_origin))); + +if((format["%1", (getMarkerType QUOTE(DOUBLES(ADDON,line_origin)))]) != "") then { + + _length = _mPos distance _lastPos; + if(_length > 2) then { + _x1 = _lastPos select 0; + _x2 = _mPos select 0; + _y1 = _lastPos select 1; + _y2 = _mPos select 1; + _az = (180 + (((_x1 - _x2) atan2 (_y1 - _y2))) mod 360); + _segmentX = (_lastPos select 0) + sin(_az)*(_length/2); + _segmentY = (_lastPos select 1) + cos(_az)*(_length/2); + + _name = QUOTE(DOUBLES(ADDON,temp_line)); + deleteMarker _name; + _segment = createMarkerLocal [_name, [_segmentX, _segmentY, 0]]; + _segment setMarkerShapeLocal "RECTANGLE"; + _segment setMarkerSizeLocal [0, (_length/2)]; + _segment setMarkerDirLocal _az; + _segment setMarkerColorLocal (GVAR(LineColors) select GVAR(MapLineColor)); + _segment setMarkerBrushLocal "BORDER"; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/fnc_copymap_menuDef.sqf b/TO_MERGE/ace/sys_maptools/fnc_copymap_menuDef.sqf new file mode 100644 index 0000000000..c99f4dda10 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_copymap_menuDef.sqf @@ -0,0 +1,49 @@ +//#define DEBUG_MODE_FULL +#include "script_component.hpp" +#include "\a3\editor_f\Data\Scripts\dikCodes.h" + +private ["_menuDef", "_target", "_params", "_menuName", "_menuRsc", "_menus"]; + +_target = _this select 0; +_params = _this select 1; + +_menuName = ""; +_menuRsc = "popup"; + +if (typeName _params == typeName []) then { + if (count _params < 1) exitWith {diag_log format["Error: Invalid params: %1, %2", _this, __FILE__];}; + _menuName = _params select 0; + _menuRsc = if (count _params > 1) then {_params select 1} else {_menuRsc}; +} else { + _menuName = _params; +}; + +//----------------------------------------------------------------------------- +#define __COPY (localize "STR_ACE_MAPTOOLS_COPYUA") + +GVAR(target) = _target; + +_menus = +[ + [ + ["main", _menuName, _menuRsc], + [ + [__COPY, + QUOTE(GVAR(target) call ace_sys_maptools_fnc_CopyMap), + "", "", "", -1, 1,ace_sys_maptools_Enabled && {"ACE_Map_Tools" in (weapons GVAR(target))}] + ] + ] +]; + +//----------------------------------------------------------------------------- +_menuDef = []; +{ + if (_x select 0 select 0 == _menuName) exitWith {_menuDef = _x}; +} forEach _menus; + +if (count _menuDef == 0) then { + hintC format ["Error: Menu not found: %1\n%2\n%3", str _menuName, if (_menuName == "") then {_this} else {""}, __FILE__]; + diag_log format ["Error: Menu not found: %1, %2, %3", str _menuName, _params, __FILE__]; +}; + +_menuDef // return value diff --git a/TO_MERGE/ace/sys_maptools/fnc_handleData.sqf b/TO_MERGE/ace/sys_maptools/fnc_handleData.sqf new file mode 100644 index 0000000000..85a443bd88 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/fnc_handleData.sqf @@ -0,0 +1,60 @@ +#include "script_component.hpp" + +_target = _this select 0; +_x = _this select 1; +if(_target == player) then { + switch((typeName _x)) do { + case "ARRAY": { + switch (_x select 0) do { + case 1: { + _pos = _x select 2; + _length = _x select 3; + _az = _x select 4; + _color = _x select 5; + _markerName = format["%2_line_segment_%1", (count GVAR(RulerLines)), QUOTE(ADDON)]; + _lineName = createMarkerLocal [_markerName, _pos]; + _lineName setMarkerShapeLocal "RECTANGLE"; + _lineName setMarkerSizeLocal [0, _length]; + _lineName setMarkerColorLocal _color; + _lineName setMarkerBrushLocal "BORDER"; + _lineName setMarkerDirLocal _az; + GVAR(RulerLines) set[(count GVAR(RulerLines)), _line]; + }; + case 2: { + _line = _x; + _lineCount = _line select 2; + if(!(isNil "_lineCount")) then { + for "_i" from 0 to _lineCount-1 do { + _markerName = format["%3_freehand_%1_%2", (count GVAR(RulerLines)), _i, QUOTE(ADDON)]; + _pos = ((_x select 3) select _i) select 0; + _length = ((_x select 3) select _i) select 1; + _az = ((_x select 3) select _i) select 2; + _color = _x select 4; + _lineName = createMarkerLocal [_markerName, _pos]; + _lineName setMarkerShapeLocal "RECTANGLE"; + _lineName setMarkerSizeLocal [0, _length]; + _lineName setMarkerColorLocal _color; + _lineName setMarkerBrushLocal "BORDER"; + _lineName setMarkerDirLocal _az; + }; + GVAR(RulerLines) set[(count GVAR(RulerLines)), _line]; + }; + }; + }; + hintSilent format[localize "STR_ACE_MAPTOOLS_COPYSTAT", GVAR(CopyNumber), GVAR(CopyTotal)]; + GVAR(CopyNumber) = GVAR(CopyNumber) + 1; + }; + case "SCALAR": { + GVAR(CopyTotal) = _x; + }; + case "BOOL": { + if(_x) then { + hintSilent localize "STR_ACE_MAPTOOLS_COPYSUC"; + } else { + hintSilent localize "STR_ACE_MAPTOOLS_COPYFAIL"; + }; + GVAR(CopyTotal) = 0; + GVAR(CopyNumber) = 0; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/sys_maptools/license.txt b/TO_MERGE/ace/sys_maptools/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/sys_maptools/script_component.hpp b/TO_MERGE/ace/sys_maptools/script_component.hpp new file mode 100644 index 0000000000..ca06970b87 --- /dev/null +++ b/TO_MERGE/ace/sys_maptools/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT sys_maptools +#include "\z\ace\addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_MAPTOOLS + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_MAPTOOLS + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_MAPTOOLS +#endif + +#include "\z\ace\addons\main\script_macros.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/$PBOPREFIX$ b/TO_MERGE/ace/wep_dragon/$PBOPREFIX$ new file mode 100644 index 0000000000..918ec8bf98 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/$PBOPREFIX$ @@ -0,0 +1 @@ +x\uo\Addons\sys_wep_dragon \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/CfgAmmo.hpp b/TO_MERGE/ace/wep_dragon/CfgAmmo.hpp new file mode 100644 index 0000000000..e9da6d412a --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/CfgAmmo.hpp @@ -0,0 +1,77 @@ +class CfgAmmo { + class MissileBase; + class ShellBase; + + class ace_m47_dragon_serviceCharge : ShellBase { + hit = 1; + indirectHit = 2; + indirectHitRange = 1; + typicalSpeed = 100; + explosive = 1; + cost = 300; + model = "\ca\weapons\empty"; + airFriction = 0; + timeToLive = 1; + explosionTime = 0.001; + soundFly[] = {"",1,1}; + soundEngine[] = {"",1,4}; + CraterEffects = ""; + explosionEffects = "ace_m47_serviceExplosion"; + hitarmor[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitbuilding[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitconcrete[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitdefault[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitfoliage[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitglass[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitglassarmored[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitgroundhard[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitgroundsoft[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitiron[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitman[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitmetal[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitmetalplate[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitplastic[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitrubber[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + hitwood[] = {"soundDefault1", 0.33, "soundDefault2", 0.33, "soundDefault3", 0.33}; + sounddefault1[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject", 56.2341, 1, 1800}; + sounddefault2[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject", 56.2341, 1, 1800}; + sounddefault3[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject", 56.2341, 1, 1800}; + soundHit[] = {"\x\ace\addons\sys_arty_ammunition\Sounds\base_eject",56.23413,1,1800}; + }; + + class M_47_AT_EP1: MissileBase { + ace_towsmoke = 0; // no trail + six_tracerenable = 0; // can't find it? + ace_guidance_type = "dragon"; + soundFly[] = {"",0,1,0}; + soundEngine[] = {"",0,1,0}; + }; + + class ace_missile_dragon : M_47_AT_EP1 { + model = PATHTOF(models\dragon.p3d); + maxSpeed = 120; + thrust = 0; + initTime = 0; + thrustTime = 0; + sideAirFriction = 0.025; + explosionEffects = ""; + CraterEffects = ""; + hitarmor[] = {"soundhit", 1}; + hitbuilding[] = {"soundhit", 1}; + hitconcrete[] = {"soundhit", 1}; + hitdefault[] = {"soundhit", 1}; + hitfoliage[] = {"soundhit", 1}; + hitglass[] = {"soundhit", 1}; + hitglassarmored[] = {"soundhit", 1}; + hitgroundhard[] = {"soundhit", 1}; + hitgroundsoft[] = {"soundhit", 1}; + hitiron[] = {"soundhit", 1}; + hitman[] = {"soundhit", 1}; + hitmetal[] = {"soundhit", 1}; + hitmetalplate[] = {"soundhit", 1}; + hitplastic[] = {"soundhit", 1}; + hitrubber[] = {"soundhit", 1}; + hitwood[] = {"soundhit", 1}; + soundhit[] = {"", 0, 1}; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/CfgEventhandlers.hpp b/TO_MERGE/ace/wep_dragon/CfgEventhandlers.hpp new file mode 100644 index 0000000000..d22d71eb89 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/CfgEventhandlers.hpp @@ -0,0 +1,11 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/CfgMagazines.hpp b/TO_MERGE/ace/wep_dragon/CfgMagazines.hpp new file mode 100644 index 0000000000..904f53a0c9 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/CfgMagazines.hpp @@ -0,0 +1,7 @@ +class CfgMagazines { + class CA_LauncherMagazine; + + class Dragon_EP1: CA_LauncherMagazine { + model = PATHTOF(models\ace_m47_magazine.p3d); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/CfgVehicles.hpp b/TO_MERGE/ace/wep_dragon/CfgVehicles.hpp new file mode 100644 index 0000000000..ec8e60a23f --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/CfgVehicles.hpp @@ -0,0 +1,64 @@ +class CfgVehicles { + class LandVehicle; + + class StaticWeapon : LandVehicle { + class Turrets; + }; + + class StaticATWeapon : StaticWeapon { + class Turrets: Turrets { + class MainTurret; + }; + }; + + class ACE_M47_Static_Base : StaticATWeapon { + class Turrets: Turrets { + class MainTurret : MainTurret { + class ViewOptics; + }; + }; + } + + class ACE_M47_Static: ACE_M47_Static_Base { + scope = 1; // Hide it for now + model = PATHTOF(models\ace_m47_static.p3d); + displayName = "M47 Dragon"; + class Turrets: Turrets { + class MainTurret: MainTurret { + gunnerAction = "LowKORD_Gunner"; + GVAR(tracker) = "TOWLauncherSingle"; + gunnerOpticsModel = "\ca\Weapons_e\optics_m47"; + weapons[] = {"ACE_M47StaticLauncher"}; + magazines[] = {}; + class ViewOptics : ViewOptics { + initFov = DRAGON_FOV; + minFov = DRAGON_FOV; + maxFov = DRAGON_FOV; + }; + }; + }; + class AnimationSources { + class rest_rotate { + source="user"; + animPeriod=0.00001; + initPhase=-0.35; + maxValue="3.60"; + minValue="-3.60"; + }; + class optic_hide { + source="user"; + animPeriod=0.0001; + initPhase=1; + maxValue="1"; + minValue="0"; + }; + class missile_hide { + source="user"; + animPeriod=0.0001; + initPhase=0; + maxValue="1"; + minValue="0"; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/CfgWeapons.hpp b/TO_MERGE/ace/wep_dragon/CfgWeapons.hpp new file mode 100644 index 0000000000..851796b260 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/CfgWeapons.hpp @@ -0,0 +1,45 @@ +class CfgWeapons { + class Weapon_Bag_Base; + class B_AT_01_weapon_F: Weapon_Bag_Base { + }; + class ACE_M47StaticLauncher: B_AT_01_weapon_F { + displayName = "M47 Dragon"; + canLock = 0; + handAnim[] = {"OFP2_ManSkeleton","\Ca\weapons_E\Data\Anim\M47.rtm"}; + sound[] = {"Ca\Sounds_E\Weapons_E\M47\M47_1",3.1622777,1,1200}; + drySound[] = {"Ca\Sounds_E\Weapons_E\M47\dry",0.0001,1,10}; + reloadMagazineSound[] = {"Ca\Sounds_E\Weapons_E\M47\rocket_reload",1.0,1,30}; + soundFly[] = {"",3.1622777,1,500}; + initSpeed = 20; + magazines[] = {"Dragon_EP1"}; + reloadTime = 0; + magazineReloadTime = 0; + }; + + class Launcher; + class M47Launcher_EP1: Launcher { + displayName = "M47 Dragon"; + canlock = 0; + model = PATHTOF(models\ace_m47_magazine.p3d); + picture = PATHTOF(textures\m47_dragon_item_ca.paa); + }; + class ACE_M47_Daysight: M47Launcher_EP1 { + displayName = $STR_DN_ACE_DRAGONSUP36; // Stay next to tubes in gear dialogs + model = PATHTOF(models\ace_m47_optic.p3d); + picture = PATHTOF(textures\m47_daysight_item_ca.paa); + optics = 1; + weaponInfoType = "RscWeaponEmpty"; + modelOptics = "\ca\Weapons_e\optics_m47"; + reloadaction = ""; + showSwitchAction = 1; + useAsBinocular = 1; + uipicture = ""; + descriptionshort = "SU-36/P Daysight"; + ace_disposable = 0; + magazines[] = {}; + type = 4096; + opticsPPEffects[] = {"OpticsCHAbera1","OpticsBlur1"}; + opticsZoomMin = 0.015; + opticsZoomMax = 0.015; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/XEH_post_init.sqf b/TO_MERGE/ace/wep_dragon/XEH_post_init.sqf new file mode 100644 index 0000000000..6904ee6c47 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/XEH_post_init.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" +NO_DEDICATED; + diff --git a/TO_MERGE/ace/wep_dragon/XEH_pre_init.sqf b/TO_MERGE/ace/wep_dragon/XEH_pre_init.sqf new file mode 100644 index 0000000000..dc30361926 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/XEH_pre_init.sqf @@ -0,0 +1,2 @@ +#include "script_component.hpp" + diff --git a/TO_MERGE/ace/wep_dragon/config.cpp b/TO_MERGE/ace/wep_dragon/config.cpp new file mode 100644 index 0000000000..775fd26357 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/config.cpp @@ -0,0 +1,17 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = { "ACE_M47_Static" }; + weapons[] = { "ACE_M47StaticLauncher", "M47Launcher_EP1", "ACE_M47_Daysight" }; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "uo_main", "a3_data_f", "a3_static_f"}; + version = VERSION; + }; +}; + +#include "CfgEventhandlers.hpp" +#include "CfgVehicles.hpp" +#include "CfgWeapons.hpp" +#include "CfgAmmo.hpp" +#include "CfgMagazines.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/fnc_dragon_fired.sqf b/TO_MERGE/ace/wep_dragon/fnc_dragon_fired.sqf new file mode 100644 index 0000000000..ff97232aea --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/fnc_dragon_fired.sqf @@ -0,0 +1,135 @@ +//fnc_fired.sqf +#include "script_component.hpp" +#define DRAGON_VELOCITY 100 +#define SERVICE_INTERVAL 0.3 +#define DRAGON_SERVICE_COUNT 60 +#define DRAGON_TRIM 1 +#define TRACKINTERVAL 0.025 + +if ((_this select 0) == player || {(gunner (_this select 0)) == player}) then { + if ((typeOf (_this select 6)) == "M_47_AT_EP1") then { + _missile = (_this select 6); + _vel = velocity _missile; + _ppos = getPosASL _missile; + _missile setPosATL [_ppos select 0, _ppos select 1, 5000]; + _unitVec = _vel call ACE_fnc_unitVector; + _spawnPos = [(_ppos select 0) + (_unitVec select 0), (_ppos select 1) + (_unitVec select 1), (_ppos select 2) + (_unitVec select 2)]; + _shell = "ace_missile_dragon" createVehicle _spawnPos; + _this set[6, _shell]; + _shell setPosASL _spawnPos; + + _newVel = [_unitVec, DRAGON_VELOCITY*1.25] call ACE_fnc_vectorMultiply; + _shell setVelocity _newVel; + _shell setVectorDir _unitVec; + _gunner = _this select 0; + //setAccTime 0.2; + + [ + { + _unitVec = (velocity _shell) call ACE_fnc_unitVector; + _polar = _unitVec call CBA_fnc_vect2polar; + _spos = getPosATL _shell; + _ppos = getPosASL _shell; + _screenPos = if (_spos select 2 > _ppos select 2) then {worldToScreen _ppos} else {worldToScreen _spos}; + + if (count _screenPos > 0 && {alive _gunner}) then { + _x = (((_screenPos select 0) - 0.5) max -1) min 1; + _y = (((_screenPos select 1) - 0.45) max -1) min 1; + _m = ((_shell distance _gunner)*0.009); + + //player sideChat format["x: %1, y: %2 m: %3 di: %4 spd: %5", _x*_m, _y*_m*-1, _m, (_shell distance _gunner), (speed _shell)]; + + _yDeg = 2.1; + _xDeg = 1.6; + _difEl = _yDeg*(_y*_m); + _difEl = ((_difEl min _yDeg) max (_yDeg*-1)); + if(_difEl < 0) then { + _difEl = _difEl / 2; + }; + _dir = _xDeg*(_x*_m)*-1; + _dir = ((_dir min _xDeg) max (_xDeg*-1)); + _difDir = (_polar select 1) + _dir; + if (_difDir < 0) then {_difDir = _difDir + 360}; + if (_difDir > 360) then {_difDir = _difDir - 360}; + //drop ["\Ca\Data\Cl_basic","","Billboard",1,5,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[1],[[1,0,0,0.25]],[0],0.0,2.0,"","",""]; + _firedAdjust = false; + _shellVelocity = velocity _shell; + _speed = (3.6*sqrt((_shellVelocity select 0)^2 + (_shellVelocity select 1)^2 + (_shellVelocity select 2)^2))*0.278; + //hint format["speed: %1\ndistance: %2\ntime: %3", _speed, (_gunner distance _shell), diag_tickTime-_startTime]; + if (diag_tickTime >= _timerCorrect && {_chargeCount > 0}) then { + if ((abs _dir) >= _xDeg/2) then { + _firedAdjust = true; + _difDir = (_polar select 1) + (_dir*0.25); + if (_difDir < 0) then {_difDir = _difDir + 360}; + if (_difDir > 360) then {_difDir = _difDir - 360}; + //player sideChat "CORRECT!"; + _timerCorrect = diag_tickTime+(SERVICE_INTERVAL*2); + _newVel = [DRAGON_VELOCITY, (_difDir), (_polar select 2)+(_difEl*0.25)+DRAGON_TRIM] call CBA_fnc_polar2vect; + _shell setVelocity _newVel; + _shell setVectorDir (_newVel call ACE_fnc_unitVector); + "ace_m47_dragon_serviceCharge" createVehicle (getPos _shell); + _chargeCount = _chargeCount - 1; + }; + }; + + if (!_firedAdjust && {diag_tickTime >= _timer} && {_chargeCount > 0}) then { + _timer = diag_tickTime+SERVICE_INTERVAL; + + _newVel = [DRAGON_VELOCITY, _difDir, (_polar select 2)+(_difEl)+DRAGON_TRIM] call CBA_fnc_polar2vect; + //_newVel = [(velocity _shell), _newVel] call ACE_fnc_vectorAdd; + // if(_difEl > 0) then { + // drop ["\Ca\Data\Cl_basic","","Billboard",1,5,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[0.5],[[0,1,0,1]],[0],0.0,2.0,"","",""]; + // } else { + // drop ["\Ca\Data\Cl_basic","","Billboard",1,5,(getPos _shell),[0,0,0],1,1.275,1.0,0.0,[0.5],[[0,0,1,1]],[0],0.0,2.0,"","",""]; + // }; + _shell setVelocity _newVel; + _shell setVectorDir (_newVel call ACE_fnc_unitVector); + + // charge FX + _shellCharge = "ace_m47_dragon_serviceCharge" createVehicle _ppos; + _shellCharge setPosASL _ppos; + _chargeCount = _chargeCount - 1; + }; + }; + _missile setPosATL [_ppos select 0, _ppos select 1, 5000]; + _prevTime = diag_tickTime; + }, + [_shell,_gunner,_unitVec,_missile], + 0.0, // delay + { + //init + _shell = _this select 0; + _gunner = _this select 1; + _chargeCount = DRAGON_SERVICE_COUNT; + _timer = diag_tickTime+SERVICE_INTERVAL; + _timerCorrect = _timer; + _originalVec = _this select 2; + _originalPolar = _originalVec call CBA_fnc_vect2polar; + _targetPolar = +_originalPolar; + _startTime = diag_tickTime; + _lastX = 1000; + _lastY = 1000; + // Return original missile at explosion + _missile = _this select 3; + // start from beginning + _prevTime = diag_tickTime - TRACKINTERVAL; + }, + { + // exit + if !(isNull _missile) then { + _missile setVelocity _newVel; + _missile setVectorDir (_newVel call ACE_fnc_unitVector); + _missile setPosASL _ppos; + }; + }, + { + diag_tickTime - _prevTime > TRACKINTERVAL + }, + {!alive _shell}, + [ + "_shell", "_gunner", "_chargeCount", "_timer", "_originalVec", "_originalPolar", "_timerCorrect", "_startTime", "_lastX", "_lastY", + "_missile", "_ppos", "_newVel", "_prevTime" + ] + ] call cba_common_fnc_addPerFrameHandlerLogic; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_dragon/license.txt b/TO_MERGE/ace/wep_dragon/license.txt new file mode 100644 index 0000000000..ff5ec3e450 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/license.txt @@ -0,0 +1,79 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. +2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, +to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. +5. Representations, Warranties and Disclaimer + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. +8. Miscellaneous + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/TO_MERGE/ace/wep_dragon/model.cfg b/TO_MERGE/ace/wep_dragon/model.cfg new file mode 100644 index 0000000000..6aeaf2e95e --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/model.cfg @@ -0,0 +1,96 @@ +class CfgSkeletons { + class Default { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + + class ace_m47_static_skeleton: Default { + skeletonInherit = "Default"; + skeletonBones[] = { + "bipod","", + "grav_box","bipod", + "launcher","grav_box", + "optic","launcher", + "missile","launcher" + }; + }; +}; + +class CfgModels { + class Default { + sectionsInherit = ""; + sections[] = {}; + }; + + class ace_m47_static: Default { + sectionsInherit = "Default"; + sections[] = {}; + skeletonName = "ace_m47_static_skeleton"; + class Animations { + class MainGun { + type="rotation"; + selection="launcher"; + sourceAddress = "clamp"; + source="MainGun"; + axis="elevate_axis"; + animPeriod=0.01; + initPhase=0; + maxValue="rad 360"; + minValue="rad -360"; + angle1="rad 360"; + angle0="rad -360"; + }; + class MainTurret { + type="rotation"; + source="MainTurret"; + selection="bipod"; + sourceAddress = "loop"; + axis="rotate_axis"; + animPeriod=0.005; + minValue="rad -360"; + maxValue="rad +360"; + angle0="rad -360"; + angle1="rad +360"; + }; + class rest_rotate { + type="rotation"; + selection="grav_box"; + sourceAddress = "clamp"; + source="user"; + axis="elevate_axis"; + animPeriod=0.00001; + initPhase=-0.35; + maxValue="3.60"; + minValue="-3.60"; + angle1="rad -360"; + angle0="rad 360"; + }; + class optic_hide + { + type = "hide"; + source = "user"; + selection = "optic"; + animPeriod = 0.0001; + minValue = 0; + maxValue = 1; + minPhase = 0; + maxPhase = 1; + hideValue = 0.99; + initPhase = 1; + }; + class missile_hide + { + type = "hide"; + source = "user"; + selection = "missile"; + animPeriod = 0.0001; + minValue = 0; + maxValue = 1; + minPhase = 0; + maxPhase = 1; + hideValue = 0.99; + }; + }; + }; +}; diff --git a/TO_MERGE/ace/wep_dragon/models/ace_m47_magazine.p3d b/TO_MERGE/ace/wep_dragon/models/ace_m47_magazine.p3d new file mode 100644 index 0000000000..e8464fc389 Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/models/ace_m47_magazine.p3d differ diff --git a/TO_MERGE/ace/wep_dragon/models/ace_m47_optic.p3d b/TO_MERGE/ace/wep_dragon/models/ace_m47_optic.p3d new file mode 100644 index 0000000000..839892f686 Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/models/ace_m47_optic.p3d differ diff --git a/TO_MERGE/ace/wep_dragon/models/ace_m47_static.p3d b/TO_MERGE/ace/wep_dragon/models/ace_m47_static.p3d new file mode 100644 index 0000000000..15c4d5ef15 Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/models/ace_m47_static.p3d differ diff --git a/TO_MERGE/ace/wep_dragon/models/dragon.p3d b/TO_MERGE/ace/wep_dragon/models/dragon.p3d new file mode 100644 index 0000000000..42ce5780f2 Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/models/dragon.p3d differ diff --git a/TO_MERGE/ace/wep_dragon/script_component.hpp b/TO_MERGE/ace/wep_dragon/script_component.hpp new file mode 100644 index 0000000000..18c1aa72e8 --- /dev/null +++ b/TO_MERGE/ace/wep_dragon/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT sys_wep_dragon +#include "\x\uo\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_WEP_DRAGON + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_WEP_DRAGON + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_WEP_DRAGON +#endif + +#include "\x\uo\Addons\main\script_macros.hpp" diff --git a/TO_MERGE/ace/wep_dragon/textures/dragon_text.paa b/TO_MERGE/ace/wep_dragon/textures/dragon_text.paa new file mode 100644 index 0000000000..a8a3787292 Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/textures/dragon_text.paa differ diff --git a/TO_MERGE/ace/wep_dragon/textures/m47_daysight_item_ca.paa b/TO_MERGE/ace/wep_dragon/textures/m47_daysight_item_ca.paa new file mode 100644 index 0000000000..9768f42b9c Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/textures/m47_daysight_item_ca.paa differ diff --git a/TO_MERGE/ace/wep_dragon/textures/m47_dragon_item_ca.paa b/TO_MERGE/ace/wep_dragon/textures/m47_dragon_item_ca.paa new file mode 100644 index 0000000000..0e87574794 Binary files /dev/null and b/TO_MERGE/ace/wep_dragon/textures/m47_dragon_item_ca.paa differ diff --git a/TO_MERGE/ace/wep_javelin/$PBOPREFIX$ b/TO_MERGE/ace/wep_javelin/$PBOPREFIX$ new file mode 100644 index 0000000000..7b53b3ab81 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/$PBOPREFIX$ @@ -0,0 +1 @@ +x\uo\Addons\sys_wep_javelin \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/CfgEventhandlers.hpp b/TO_MERGE/ace/wep_javelin/CfgEventhandlers.hpp new file mode 100644 index 0000000000..70e16353cd --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/CfgEventhandlers.hpp @@ -0,0 +1,17 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_pre_init)); + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call COMPILE_FILE(XEH_post_init)); + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + ADDON = QUOTE(_this call FUNC(fired)); + }; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/CfgOptics.hpp b/TO_MERGE/ace/wep_javelin/CfgOptics.hpp new file mode 100644 index 0000000000..53f36710fb --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/CfgOptics.hpp @@ -0,0 +1,50 @@ +class RscControlsGroup; +class RscPicture; +class RscMapControl; + +// Taken from AGM for optics management. + +class RscInGameUI { + class RscOptics_titan { + + class CA_javelin_elements_group: RscControlsGroup { + class Controls { + class CA_Javelin_Day_mode_off: RscPicture {}; + class CA_Javelin_SEEK_off: CA_Javelin_Day_mode_off { + idc = 1005; + }; + // From AGM + class GetLockedTarget: RscMapControl { + onDraw = QUOTE(_this call FUNC(onGetLockedTarget)); + idc = -1; + w = 0; + h = 0; + }; + }; + }; + }; +}; + +// on colorText[] = {0.2941, 0.8745, 0.2157, 1.0}; +// off colorText[] = {0.2941, 0.2941, 0.2941, 1.0}; +// orange colorText[] = {0.9255, 0.5216, 0.1216, 1.0}; + +/* +CA_javelin_elements_group: 170 +CA_Javelin_Day_mode_off: 1001 +CA_Javelin_Day_mode: 160 +CA_Javelin_WFOV_mode_off: 1004 +CA_Javelin_WFOV_mode_group: 163 +CA_Javelin_NFOV_mode_off: 1003 +CA_Javelin_NFOV_mode_group: 162 +CA_Javelin_SEEK_off: 1005 //1001 +CA_Javelin_SEEK: 166 +CA_Javelin_Missle_off: 1032 +CA_Javelin_Missle: 167 +CA_Javelin_CLU_off: 1027 +CA_Javelin_HangFire_off: 1028 +CA_Javelin_TOP_off: 1006 +CA_Javelin_DIR: 1007 +CA_Javelin_FLTR_mode_off: 1002 +CA_Javelin_FLTR_mode: 161 +*/ \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/XEH_post_init.sqf b/TO_MERGE/ace/wep_javelin/XEH_post_init.sqf new file mode 100644 index 0000000000..6904ee6c47 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/XEH_post_init.sqf @@ -0,0 +1,3 @@ +#include "script_component.hpp" +NO_DEDICATED; + diff --git a/TO_MERGE/ace/wep_javelin/XEH_pre_init.sqf b/TO_MERGE/ace/wep_javelin/XEH_pre_init.sqf new file mode 100644 index 0000000000..8682a8a2e9 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/XEH_pre_init.sqf @@ -0,0 +1,4 @@ +#include "script_component.hpp" + +PREP(fired); +PREP(onGetLockedTarget); \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/config.cpp b/TO_MERGE/ace/wep_javelin/config.cpp new file mode 100644 index 0000000000..19758ee057 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/config.cpp @@ -0,0 +1,14 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { "uo_main", "uo_sys_laser", "a3_ui_f", "a3_weapons_f" }; + version = VERSION; + }; +}; + +#include "CfgEventhandlers.hpp" +#include "CfgOptics.hpp" \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/fnc_fired.sqf b/TO_MERGE/ace/wep_javelin/fnc_fired.sqf new file mode 100644 index 0000000000..d7f85691b2 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/fnc_fired.sqf @@ -0,0 +1,130 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" +//_this=[TEST_AI_HELICOPTER,"missiles_DAGR","missiles_DAGR","Far_AI","M_PG_AT","24Rnd_PG_missiles",163988: rocket_01_fly_f.p3d] +TRACE_1("enter", _this); +PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + +FUNC(guidance_Javelin_LOBL_HI_PFH) = { + TRACE_1("enter", _this); + _args = _this select 0; + //PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + _shooter = _args select 0; + _missile = _args select 6; + _curVelocity = velocity _missile; + + if(!alive _missile || isNull _missile || isNull _shooter) exitWith { + [(_this select 1)] call cba_fnc_removePerFrameHandler; + }; + + TRACE_2("Setting launch parameters", GVAR(currentTarget), GVAR(currentTargetPos)); + _target = GVAR(currentTarget); + + _addHeight = [0,0,0]; + if(!isNil "_target") then { + + _yVec = vectorDir _missile; + _zVec = vectorUp _missile; + _xVec = vectorNormalized (_yVec vectorCrossProduct _zVec); + + _missilePos = getPosASL _missile; + // player sideChat "G!"; + _targetPos = GVAR(currentTargetPos); + + TRACE_4("Phase Check", _launchPos, _missilePos, _targetPos, (_missilePos distance _targetPos)); + if((count _targetPos) > 0) then { + _distanceToTarget = _missilePos vectorDistance _targetPos; + + _defPitch = 0.05; + + if((_launchPos distance _missilePos) < 400 && (_targetPos distance _missilePos) > 400) then { + _addHeight = [0,0,(_targetPos select 2) + ((_launchPos distance _targetPos)*2)]; + TRACE_1("Climb phase", _addHeight); + //_defPitch = 0.1; + } else { + // Covered half the distance, go terminal + if((_missilePos distance _targetPos) < (_launchPos distance _targetPos) / 2) then { + TRACE_1("TERMINAL", ""); + } else { + if((_missilePos select 2) > (_targetPos select 2)) then { + _heightDiff = (_missilePos select 2) - (_targetPos select 2); + TRACE_1("Coasting", _heightDiff); + _addHeight = [0,0, _heightDiff]; + }; + }; + }; + _targetPos = _targetPos vectorAdd _addHeight; + + _defYaw = 0.0035; + + + _targetVectorSeeker = [_missile, [_xVec, _yVec, _zVec], _targetPos] call FUNC(translateToWeaponSpace); + _yaw = 0.0; + if((_targetVectorSeeker select 0) < 0) then { + _yaw = -_defYaw; + } else { + if((_targetVectorSeeker select 0) > 0) then { + _yaw = _defYaw; + }; + }; + + _pitch = 0.0; + if((_targetVectorSeeker select 2) < 0) then { + _pitch = -_defPitch; + } else { + if((_targetVectorSeeker select 2) > 0) then { + _pitch = _defPitch; + }; + }; + #ifdef DEBUG_MODE_FULL + drawLine3D [(ASLtoATL _targetPos) vectorAdd _addHeight, ASLtoATL _targetPos, [0,1,0,1]]; + + _light = "#lightpoint" createVehicleLocal (getPos _missile); + _light setLightBrightness 1.0; + _light setLightAmbient [1.0, 0.0, 0.0]; + _light setLightColor [1.0, 0.0, 0.0]; + + drawIcon3D ["\a3\ui_f\data\IGUI\Cfg\Cursors\selectover_ca.paa", [1,1,1,1], ASLtoATL _missilePos, 0.75, 0.75, 0, str _vectorTo, 1, 0.025, "TahomaB"]; + drawLine3D [ASLtoATL _missilePos, ASLtoATL _targetPos, [1,0,0,1]]; + + _distance = ([getPos startPos, _missilePos] call BIS_fnc_distance2D); + _marker = createMarkerLocal [format["m%1", MARKERCOUNT], [_distance, _missilePos select 2]]; + _marker setMarkerTypeLocal "mil_dot"; + _marker setMarkerColorLocal "ColorRed"; + + MARKERCOUNT = MARKERCOUNT + 1; + #endif + + if(accTime > 0) then { + _outVector = [_missile, [_xVec, _yVec, _zVec], [_yaw, 1/accTime, _pitch]] call FUNC(translateToModelSpace); + + _vectorTo = _missilePos vectorFromTo _outVector; + _missile setVectorDirAndUp [_vectorTo, vectorUp _missile]; + }; + + #ifdef DEBUG_MODE_FULL + hintSilent format["d: %1", _distanceToTarget]; + #endif + }; + }; +}; + +FUNC(guidance_Javelin_LOBL_HI) = { + PARAMS_7(_shooter,_weapon,_muzzle,_mode,_ammo,_magazine,_projectile); + + GVAR(lastTime) = time; + [FUNC(guidance_Javelin_LOBL_HI_PFH), 0, _this] call cba_fnc_addPerFrameHandler; +}; + +if(!local _shooter) exitWith { false }; +if(_weapon == "launch_B_Titan_short_F") then { + _fireMode = _shooter getVariable ["ACE_FIRE_SELECTION", ACE_DEFAULT_FIRE_SELECTION]; + + switch (_fireMode select 0) do { + // Default to FIREMODE_DIRECT_LOAL + // FIREMODE_DIRECT_LOAL + default { + LOG("Initiating Javelin FIREMODE_LOBL_HI"); + _this call FUNC(guidance_Javelin_LOBL_HI); + }; +}; +}; \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/fnc_onGetLockedTarget.sqf b/TO_MERGE/ace/wep_javelin/fnc_onGetLockedTarget.sqf new file mode 100644 index 0000000000..cd8609c7c8 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/fnc_onGetLockedTarget.sqf @@ -0,0 +1,8 @@ +#define DEBUG_MODE_FULL +#include "script_component.hpp" + +// Store the current cursor target for guidance +GVAR(currentTarget) = cursorTarget; +GVAR(currentTargetPos) = screenToWorld [0.5,0.5]; + +TRACE_2("Tracking optics target draw", GVAR(currentTarget), GVAR(currentTargetPos)); \ No newline at end of file diff --git a/TO_MERGE/ace/wep_javelin/script_component.hpp b/TO_MERGE/ace/wep_javelin/script_component.hpp new file mode 100644 index 0000000000..72c3268c97 --- /dev/null +++ b/TO_MERGE/ace/wep_javelin/script_component.hpp @@ -0,0 +1,12 @@ +#define COMPONENT sys_wep_javelin +#include "\x\uo\Addons\main\script_mod.hpp" + +#ifdef DEBUG_ENABLED_SYS_WEP_JAVELIN + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_SYS_WEP_JAVELIN + #define DEBUG_SETTINGS DEBUG_SETTINGS_SYS_WEP_JAVELIN +#endif + +#include "\x\uo\Addons\main\script_macros.hpp" diff --git a/TO_MERGE/agm/AI/config.cpp b/TO_MERGE/agm/AI/config.cpp new file mode 100644 index 0000000000..bd2e7b922e --- /dev/null +++ b/TO_MERGE/agm/AI/config.cpp @@ -0,0 +1,528 @@ +class CfgPatches { + class AGM_AI { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "commy2"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +/* + * Documentation: + * https://community.bistudio.com/wiki/AI_Sub-skills + * + * The idea here is to reduce the AI's godlike aiming + * capabilties while retaining it's high intelligence. + * The AI should be smart enough to move through a town, + * but also be 'human' in their reaction time and aim. + * + * Note: All these values can still be adjusted via + * scripts, these arrays just change what 0 & 1 + * are for setSkill. + */ + +class CfgAISkill { + aimingAccuracy[] = {0,0, 1,0.8}; // {0,0,1,1}; v1.26 defaults + aimingShake[] = {0,0, 1,0.6}; // {0,0,1,1}; + aimingSpeed[] = {0,0, 1,0.7}; // {0,0.5,1,1}; + commanding[] = {0,0, 1,0.8}; // {0,0,1,1}; + courage[] = {0,0, 1,0.7}; // {0,0,1,1}; + endurance[] = {0,0, 1,0.7}; // {0,0,1,1}; + general[] = {0,0, 1,0.9}; // {0,0,1,1}; + reloadSpeed[] = {0,0, 1,0.8}; // {0,0,1,1}; + spotDistance[] = {0,0, 1,0.9}; // {0,0.2,1,0.4}; + spotTime[] = {0,0, 1,0.7}; // {0,0,1,0.7}; +}; + +// weapon config changes, by commy2 + +/* documentation: +aiDispersionCoefX = 1.0 Dispersion multiplier for AI units (axis X - left to right). +aiDispersionCoefY = 1.0 Dispersion multiplier for AI units (axis Y - top-down). +aiRateOfFire = 5.0 Delay between shots at given aiRateOfFireDistance. +aiRateOfFireDistance = 500 At shorter distance delay (aiRateOfFire) goes linearly to zero. +*/ + +class Mode_SemiAuto; +class Mode_Burst; +class Mode_FullAuto; + +class CfgWeapons { + + // rifles + class RifleCore; + class Rifle: RifleCore { + aiDispersionCoefX = 6; + aiDispersionCoefY = 6; + }; + class Rifle_Base_F: Rifle {}; + class Rifle_Long_Base_F: Rifle_Base_F {}; + + class arifle_MX_Base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] = {"Single","FullAuto","fullauto_medium","single_medium_optics1","single_far_optics2","AGM_Burst_far"}; + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 300; // 200; + midRangeProbab = 0.5; // 0.7; + }; + class FullAuto; + class fullauto_medium: FullAuto { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + class single_medium_optics1: Single { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 700; // 600; + }; + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 900; // 700; + minRange = 200; // 100; + maxRange = 900; // 700; + }; + }; + + class arifle_MXC_F: arifle_MX_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.5; // 0.3; + midRange = 250; // 150; + midRangeProbab = 0.3; // 0.5; + }; + class FullAuto; + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 2; + maxRange = 600; // 500; + }; + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + + //class arifle_MX_F: arifle_MX_Base_F {}; + //class arifle_MX_GL_F: arifle_MX_Base_F {}; + + class arifle_MXM_F: arifle_MX_Base_F { + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 350; // 250; + midRangeProbab = 0.5; // 0.7; + }; + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 750; // 650; + }; + class single_far_optics2: single_far_optics2 { + aiRateOfFireDistance = 900; // 800; + minRange = 200; // 100; + maxRange = 900; // 800; + }; + }; + + class arifle_MX_SW_F: arifle_MX_Base_F { + aiDispersionCoefY = 24.0; + aiDispersionCoefX = 21.0; + modes[] = {"Single","manual","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + class Single: Mode_SemiAuto { + minRange = 120; // 2; + }; + class close; + class medium; + class AGM_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 500; + minRangeProbab = 0.1; + midRange = 700; + midRangeProbab = 0.2; + maxRange = 900; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + class far_optic1: close { + aiRateOfFireDistance = 750; // 650; + maxRange = 750; // 650; + }; + class far_optic2: far_optic1 { + maxRange = 1100; // 900; + aiRateOfFireDistance = 1100;// 900; + }; + }; + + class arifle_Katiba_Base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] = {"Single","FullAuto","single_medium_optics1","single_far_optics2","fullauto_medium","AGM_Burst_far"}; + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 300; // 200; + midRangeProbab = 0.5; // 0.7; + }; + class FullAuto; + class fullauto_medium: FullAuto { + minRange = 20; // 2; + burst = "3 + round random 5"; //3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + class single_medium_optics1: Single { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 700; // 600; + }; + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 900; // 800; + minRange = 200; // 100; + maxRange = 900; // 800; + }; + }; + class arifle_Katiba_C_F: arifle_Katiba_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.5; // 0.3; + midRange = 250; // 150; + midRangeProbab = 0.3; // 0.7; + }; + //class FullAuto: FullAuto {}; + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + maxRange = 150; //100; + burst = "3 + round random 5"; //3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + class single_medium_optics1: single_medium_optics1 { + minRange = 120; // 2; + maxRange = 600; // 500; + }; + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + + class mk20_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + modes[] = {"Single","FullAuto","fullauto_medium","single_medium_optics1","single_far_optics2","AGM_Burst_far"}; + class Single: Mode_SemiAuto { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 250; // 150; + midRangeProbab = 0.5; // 0.7; + }; + class FullAuto: Mode_FullAuto { + minRange = 0; //2; + }; + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 500; + minRange = 400; + minRangeProbab = 0.1; + midRange = 500; + midRangeProbab = 0.2; + maxRange = 600; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + class single_medium_optics1: Single { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 5; + maxRange = 600; // 500; + }; + class single_far_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + }; + class arifle_Mk20C_F: mk20_base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.5; + midRange = 250; // 150; + midRangeProbab = 0.5; // 0.7; + maxRange = 350; // 250; + }; + class FullAuto: FullAuto { + minRange = 0; //2; + }; + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 5; + maxRange = 550; // 450; + }; + //class single_medium_optics2: single_medium_optics1 {}; + class fullauto_medium: fullauto_medium { + minRange = 20; //2; + burst = "3 + round random 5"; //3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + }; + + class Tavor_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + + modes[] = {"Single","FullAuto","single_medium_optics1","single_medium_optics2","fullauto_medium","AGM_Burst_far"}; + class Single: Mode_SemiAuto { + minRange = 120; //2; + minRangeProbab = 0.7; //0.5; + midRange = 250; //150; + midRangeProbab = 0.5; //0.7; + maxRange = 350; //250; + }; + class FullAuto: Mode_FullAuto { + minRange = 0; //2; + }; + class fullauto_medium: FullAuto { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + class single_medium_optics1: Single { + aiRateOfFireDistance = 600; // 500; + minRange = 120; // 5; + maxRange = 550; // 450; + }; + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 200; // 100; + maxRange = 700; // 600; + }; + }; + class arifle_TRG21_F: Tavor_base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Single { + minRange = 120; // 2; + minRangeProbab = 0.7; // 0.3; + midRange = 300; // 200; + midRangeProbab = 0.5; // 0.7; + maxRange = 400; // 300; + }; + class FullAuto: FullAuto { + minRange = 0; //2; + }; + class fullauto_medium: fullauto_medium { + minRange = 20; // 2; + maxRange = 150; // 100; + burst = "3 + round random 5"; // 3; + }; + class single_medium_optics1: single_medium_optics1 { + aiRateOfFireDistance = 700; // 600; + minRange = 120; // 2; + maxRange = 600; // 500; + }; + class single_medium_optics2: single_medium_optics1 { + aiRateOfFireDistance = 800; // 700; + minRange = 200; // 100; + maxRange = 800; // 700; + }; + class AGM_Burst_far: fullauto_medium { + aiRateOfFire = 2.0; + aiRateOfFireDistance = 400; + minRange = 300; + minRangeProbab = 0.1; + midRange = 400; + midRangeProbab = 0.2; + maxRange = 500; + maxRangeProbab = 0.2; + burst = "2 + round random 3"; + }; + }; + + // sub machine guns + class SDAR_base_F: Rifle_Base_F { + aiDispersionCoefY = 28.0; + aiDispersionCoefX = 20.0; + class Single: Mode_SemiAuto { + minRange = 10; //2; + }; + class Burst: Mode_Burst { + minRange = 5; //1; + }; + }; + + class pdw2000_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Mode_SemiAuto { + minRange = 100; //2; + }; + class Burst: Mode_Burst { + minRange = 50; //1; + }; + }; + + class SMG_01_Base: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Mode_SemiAuto { + minRange = 50; //2; + }; + class Burst: Mode_Burst { + minRange = 25; //2; + }; + }; + + class SMG_02_base_F: Rifle_Base_F { + aiDispersionCoefY = 18.0; + aiDispersionCoefX = 12.0; + class Single: Mode_SemiAuto { + minRange = 50; //2; + }; + class Burst: Mode_Burst { + minRange = 25; //2; + }; + }; + + // machine guns + class LMG_Mk200_F: Rifle_Long_Base_F { + aiDispersionCoefY = 24.0; + aiDispersionCoefX = 21.0; + modes[] = {"manual","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + class medium; + class AGM_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 500; + minRangeProbab = 0.1; + midRange = 700; + midRangeProbab = 0.2; + maxRange = 900; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + class far_optic1: medium { + maxRange = 750; // 650; + }; + class far_optic2: far_optic1 { + maxRange = 1100; // 900; + aiRateOfFireDistance = 1100;// 900; + }; + }; + + class LMG_Zafir_F: Rifle_Long_Base_F { + aiDispersionCoefY = 23.0; + aiDispersionCoefX = 19.0; + modes[] = {"Single","FullAuto","close","short","medium","far_optic1","far_optic2","AGM_Burst_far"}; + class Single: Mode_SemiAuto { + minRange = 120; // 2; + }; + class close; + class medium; + class AGM_Burst_far: medium { + aiRateOfFire = 6.0; + aiRateOfFireDistance = 900; + minRange = 500; + minRangeProbab = 0.1; + midRange = 700; + midRangeProbab = 0.2; + maxRange = 900; + maxRangeProbab = 0.2; + burst = "3 + round random 5"; + }; + class far_optic1: close { + maxRange = 800; //700; + }; + class far_optic2: far_optic1 { + maxRange = 1200; //1000; + }; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/_hud_thunderbolt.hpp b/TO_MERGE/agm/Aircraft/_hud_thunderbolt.hpp new file mode 100644 index 0000000000..84ecbe6d32 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/_hud_thunderbolt.hpp @@ -0,0 +1,6562 @@ + + + +class MFD3 +{ + class HUD_1 + { + topLeft="HUD_top_left"; + topRight="HUD_top_right"; + bottomLeft="HUD_bottom_left"; + borderLeft=0.12; + borderRight=0.12; + borderTop=0.05; + borderBottom=0.15; + color[]={0,1,0,0.1}; + enableParallax=1; + class Bones + { + class WeaponAim + { + type="vector"; + source="weapon"; + pos0[]={0.5,0.38}; + pos10[]={1.166,1.215}; + }; + class Target + { + type="vector"; + source="target"; + pos0[]={0.5,0.38}; + pos10[]={1.166,1.215}; + }; + class Velocity + { + type="vector"; + source="velocity"; + pos0[]={0.5,0.5}; + pos10[]={1.215,1.215}; + }; + class VerticalSpeed + { + type="linear"; + source="vspeed"; + sourceScale=1; + min=-100; + max=100; + minPos[]={0,0.15000001}; + maxPos[]={0,-0.15000001}; + }; + class center + { + type="fixed"; + pos[]={0.5,0.38}; + }; + class RangeBone + { + type="linear"; + source="targetDist"; + sourceScale=1; //meters + min=0; + max=12000; + minPos[]={0.08,0.40}; + maxPos[]={0.08,0.60}; + }; + class RadarAltitudeBone + { + type="linear"; + source="altitudeAGL"; + sourceScale=1; // meters + //hideValue=1500; + min=0; + max=500; + minPos[]={0.71,0.40}; + maxPos[]={0.71,0.60}; + }; + class VspeedBone + { + type="linear"; + source="vspeed"; + sourceScale=1; // m/s + min=-50; + max=50; + minPos[]={0.94,0.40}; + maxPos[]={0.94,0.60}; + }; + }; + class Draw + { + color[]={0.15000001,1,0.15000001}; + alpha=0.9; + clipTL[]={0,0}; + clipBR[]={1,1}; + condition="on"; + + class WeaponName + { + type="text"; + source="weapon"; + sourceScale=1; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.85}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.85}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.89}, + 1 + }; + }; + class AmmoCount + { + type="text"; + source="ammo"; + sourceScale=1; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.89}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.89}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.93}, + 1 + }; + }; + class GearGroup + { + type="group"; + condition="ils"; + class GearText + { + type="text"; + source="static"; + text="GEAR"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.40" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.40" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.40 + 0.05" + }, + 1 + }; + }; + class radarbanda + { + type="line"; + width=4; + points[]= + { + { + "RadarAltitudeBone", + {-0.005,0.005}, + 1 + }, + { + "RadarAltitudeBone", + {-0.005,0}, + 1 + }, + { + "RadarAltitudeBone", + {0,0}, + 1 + }, + {{ 0.71,0.60 },1 }, + { }, + + {{ 0.71,0.40 },1 }, + {{ 0.72,0.40 },1 }, + { }, + {{ 0.71,0.44 },1 }, + {{ 0.72,0.44 },1 }, + { }, + {{ 0.71,0.48 },1 }, + {{ 0.72,0.48 },1 }, + { }, + {{ 0.71,0.52 },1 }, + {{ 0.72,0.52 },1 }, + { }, + {{ 0.71,0.56 },1 }, + {{ 0.72,0.56 },1 }, + { }, + {{ 0.71,0.60 },1 }, + {{ 0.72,0.60 },1 } + }; + }; + class radartext_5 + { + type="text"; + source="static"; + text="5"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.00"},1}; + right[]= {{0.751,"0.385 + 0.00"},1}; + down[]= {{0.721,"0.415 + 0.00"},1}; + }; + class radartext_4 + { + type="text"; + source="static"; + text="4"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.04"},1}; + right[]= {{0.751,"0.385 + 0.04"},1}; + down[]= {{0.721,"0.415 + 0.04"},1}; + }; + class radartext_3 + { + type="text"; + source="static"; + text="3"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.08"},1}; + right[]= {{0.751,"0.385 + 0.08"},1}; + down[]= {{0.721,"0.415 + 0.08"},1}; + }; + class radartext_2 + { + type="text"; + source="static"; + text="2"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.120"},1}; + right[]= {{0.751,"0.385 + 0.120"},1}; + down[]= {{0.721,"0.415 + 0.120"},1}; + }; + class radartext_1 + { + type="text"; + source="static"; + text="1"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.160"},1}; + right[]= {{0.751,"0.385 + 0.160"},1}; + down[]= {{0.721,"0.415 + 0.160"},1}; + }; + class radartext_0 + { + type="text"; + source="static"; + text="0"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.200"},1}; + right[]= {{0.751,"0.385 + 0.200"},1}; + down[]= {{0.721,"0.415 + 0.200"},1}; + }; + + /*class Vspeedbanda + { + type="line"; + width=4; + points[]= + { + { + "VspeedBone", + {0.007,-0.007}, + 1 + }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.007,0.007}, + 1 + }, + { }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.012,0}, + 1 + }, + {{ 0.952,0.50 },1 }, + { }, + + {{ 0.92,0.40 },1 }, // + {{ 0.94,0.40 },1 }, + { }, + {{ 0.92,0.42 },1 }, + {{ 0.93,0.42 },1 }, + { }, + {{ 0.92,0.44 },1 }, + {{ 0.93,0.44 },1 }, + { }, + {{ 0.92,0.46 },1 }, + {{ 0.93,0.46 },1 }, + { }, + {{ 0.92,0.48 },1 }, + {{ 0.93,0.48 },1 }, + { }, + {{ 0.92,0.50 },1 }, // + {{ 0.94,0.50 },1 }, + { }, + {{ 0.92,0.52 },1 }, + {{ 0.93,0.52 },1 }, + { }, + {{ 0.92,0.54 },1 }, + {{ 0.93,0.54 },1 }, + { }, + {{ 0.92,0.56 },1 }, + {{ 0.93,0.56 },1 }, + { }, + {{ 0.92,0.58 },1 }, + {{ 0.93,0.58 },1 }, + { }, + {{ 0.92,0.60 },1 }, // + {{ 0.94,0.60 },1 }, + }; + };*/ + }; + class Vspeedbanda1 + { + type="line"; + width=4; + points[]= + { + { + "VspeedBone", + {0.007,-0.007}, + 1 + }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.007,0.007}, + 1 + }, + { }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.012,0}, + 1 + }, + {{ 0.952,0.50 },1 }, + { }, + + {{ 0.92,0.40 },1 }, // + {{ 0.94,0.40 },1 }, + { }, + {{ 0.92,0.42 },1 }, + {{ 0.93,0.42 },1 }, + { }, + {{ 0.92,0.44 },1 }, + {{ 0.93,0.44 },1 }, + { }, + {{ 0.92,0.46 },1 }, + {{ 0.93,0.46 },1 }, + { }, + {{ 0.92,0.48 },1 }, + {{ 0.93,0.48 },1 }, + { }, + {{ 0.92,0.50 },1 }, // + {{ 0.94,0.50 },1 }, + { }, + {{ 0.92,0.52 },1 }, + {{ 0.93,0.52 },1 }, + { }, + {{ 0.92,0.54 },1 }, + {{ 0.93,0.54 },1 }, + { }, + {{ 0.92,0.56 },1 }, + {{ 0.93,0.56 },1 }, + { }, + {{ 0.92,0.58 },1 }, + {{ 0.93,0.58 },1 }, + { }, + {{ 0.92,0.60 },1 }, // + {{ 0.94,0.60 },1 }, + }; + }; + class StallGroup + { + type="group"; + condition="stall"; + color[]={1,0,0}; + blinkingPattern[]={0.2,0.2}; + blinkingStartsOn=1; + class StallText + { + type="text"; + source="static"; + text="STALL"; + align="center"; + scale=1; + pos[]= + { + + { + 0.5, + "0.53 - 0.25" + }, + 1 + }; + right[]= + { + + { + 0.55000001, + "0.53 - 0.25" + }, + 1 + }; + down[]= + { + + { + 0.5, + "0.53 - 0.21" + }, + 1 + }; + }; + }; + class FLAPSGroup + { + type="group"; + condition="flaps"; + class FLAPSText + { + type="text"; + source="static"; + text="FLAPS"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.35" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.35" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.35 + 0.05" + }, + 1 + }; + }; + }; + class CollisionLightsGroup + { + type="group"; + condition="collisionlights"; + class CollisionLightsText + { + type="text"; + source="static"; + text="A-COL"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.25" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.25" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.25 + 0.05" + }, + 1 + }; + }; + }; + class LightsGroup + { + type="group"; + condition="lights"; + class LightsText + { + type="text"; + source="static"; + text="LLS"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.30" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.30" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.30 + 0.05" + }, + 1 + }; + }; + }; + class SpeedNumber + { + type="text"; + align="left"; + scale=1; + source="speed"; + sourceScale=3.5999999; + pos[]= + { + {"0.15 + 0.1",0.47}, + 1 + }; + right[]= + { + {"0.21 + 0.1",0.47}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.52999998}, + 1 + }; + }; + /*class GroundSpeedNumber + { + type="text"; + align="left"; + scale=1; + source="sqrt((""speed""*""speed"")-(""vspeed""*""vspeed""))"; + sourceScale=3.5999999; + pos[]= + { + {"0.15 + 0.1",0.37}, + 1 + }; + right[]= + { + {"0.21 + 0.1",0.37}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.42999998}, + 1 + }; + }; + */ + class MachNumber + { + type="text"; + align="left"; + scale=1; + source="speed"; + sourceScale=0.0288; + pos[]= + { + {"0.12 + 0.1",0.53}, + 1 + }; + right[]= + { + {"0.17 + 0.1",0.53}, + 1 + }; + down[]= + { + {"0.12 + 0.1",0.58}, + 1 + }; + }; + class MachText + { + type="text"; + source="static"; + text="0."; + align="left"; + scale=1; + pos[]= + { + {"0.09 + 0.1",0.53}, + 1 + }; + right[]= + { + {"0.14 + 0.1",0.53}, + 1 + }; + down[]= + { + {"0.09 + 0.1",0.58}, + 1 + }; + }; + class MachTextM + { + type="text"; + source="static"; + text="M"; + align="left"; + scale=1; + pos[]= + { + {"0.1501 + 0.1",0.53}, + 1 + }; + right[]= + { + {"0.2001 + 0.1",0.53}, + 1 + }; + down[]= + { + {"0.1501 + 0.1",0.58}, + 1 + }; + }; + class HeadingNumber: SpeedNumber + { + source="heading"; + sourceScale=1; + align="right"; + pos[]= + { + {"0.85 - 0.1",0.15}, + 1 + }; + right[]= + { + {"0.90 - 0.1",0.15}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.20}, + 1 + }; + }; + class AltNumber: SpeedNumber + { + align="right"; + source="altitudeASL"; + sourceScale=1; + pos[]= + { + {"0.85 - 0.1",0.47}, + 1 + }; + right[]= + { + {"0.91 - 0.1",0.47}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.52999998}, + 1 + }; + }; + class PitcherNumber: SpeedNumber + { + type="text"; + source="horizonDive"; + sourceScale=57.29578; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.54}, + 1 + }; + right[]= + { + {"0.90 - 0.1",0.54}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.59}, + 1 + }; + }; + class AGLText + { + type="text"; + source="static"; + text="AGL/"; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.76}, + 1 + }; + right[]= + { + {"0.89000002 - 0.1",0.76}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.80}, + 1 + }; + }; + class AGLNumber + { + type="text"; + source="altitudeAGL"; + sourceScale=1; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.80}, + 1 + }; + right[]= + { + {"0.89 - 0.1",0.80}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.84}, + 1 + }; + }; + class ClimbText + { + type="text"; + source="static"; + text="CLIMB/"; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.85001}, + 1 + }; + right[]= + { + {"0.89 - 0.1",0.85001}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.89001}, + 1 + }; + }; + class ClimbNumber + { + type="text"; + source="vspeed"; + sourceScale=1; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.89001}, + 1 + }; + right[]= + { + {"0.89 - 0.1",0.89001}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.93001}, + 1 + }; + }; + class RangeText + { + type="text"; + source="static"; + text="RNG/"; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.76}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.76}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.80}, + 1 + }; + }; + class RangeNumber + { + type="text"; + source="targetDist"; + sourceScale=1; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.80}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.80}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.84}, + 1 + }; + }; + class ATRangeScale + { + condition="ATmissile"; + type="group"; + class RangeBand + { + type="line"; + width=3.0; + points[]= + { + + { + "RangeBone", + {0.00,0.0}, + 1 + }, + + { + "RangeBone", + {-0.01,-0.01}, + 1 + }, + + { + "RangeBone", + {-0.01,0.01}, + 1 + }, + + { + "RangeBone", + {0.00,0.0}, + 1 + } + }; + }; + class ATMissileRange + { + type="line"; + width=3.0; + points[] = + { + ///////////////////////////////// range marks + { { 0.08,0.40 },1 }, + { { 0.10,0.40 },1 }, + {}, + { { 0.08,0.467 },1 }, + { { 0.10,0.467 },1 }, + {}, + { { 0.08,0.567 },1 }, + { { 0.10,0.567 },1 }, + {}, + { { 0.08,0.60 },1 }, + { { 0.10,0.60 },1 }, + {}, + + { { 0.08,0.467 },1 }, // line + { { 0.08,0.567 },1 }, + {} + }; + }; + }; + class HeadingArrow + { + type="line"; + width=4; + points[]= + { + + { + {0.50,0.95}, + 1 + }, + { + {0.515,0.965}, + 1 + }, + { + {0.485,0.965}, + 1 + }, + { + {0.50,0.95}, + 1 + } + }; + }; + class HeadingScale + { + type="scale"; + horizontal=1; + source="heading"; + sourceScale=0.1; + width=5; + top=0.35; + center=0.50; + bottom=0.65; + lineXleft="0.06 + 0.89"; + lineYright="0.05 + 0.89"; + lineXleftMajor="0.06 + 0.89"; + lineYrightMajor="0.04 + 0.89"; + majorLineEach=2; + numberEach=2; + step="1 / 2"; + stepSize="(0.65 - 0.35) / 5"; + align="center"; + scale=1; + pos[]= + { + 0.35, + "0.0 + 0.89" + }; + right[]= + { + 0.38, + "0.0 + 0.89" + }; + down[]= + { + 0.35, + "0.03 + 0.89" + }; + }; + }; + }; + class HUD_2 + { + topLeft="HUD_top_left"; + topRight="HUD_top_right"; + bottomLeft="HUD_bottom_left"; + borderLeft=0.12; + borderRight=0.12; + borderTop=0.05; + borderBottom=0.15; + color[]={0,1,0,0.1}; + enableParallax=1; + class Bones + { + class ForwardVec1 + { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + //pos10[] = {0.25,0.25}; + //pos0[]={0.50,0.32}; + //pos10[]={"1.382 - 0.5","1.145 - 0.32"}; + pos10[] = {0.0,0.0}; + }; + class ForwardVec + { + type = "vector"; + source = "forward"; + pos0[] = {0.0,0.0}; + //pos10[] = {"0.253 + 0.0","0.253 + 0.0"}; + pos10[] = {0.0,0.0}; + }; + class RadarContact + { + //source="radar"; + type="fixed"; + pos[]={0,0}; + }; + class HorizonBankRot + { + type="rotational"; + source="horizonBank"; + center[]={0.5,0.32}; + min=3.1416; + max=-3.1416; + //max=0.52359998; + minAngle=-180; + maxAngle=180; + aspectRatio=1; + }; + class VspeedBone + { + type="linear"; + source="vspeed"; + sourceScale=1; + min=-10; + max=10; + minPos[]={0.2,0.35}; + maxPos[]={0.2,0.65}; + }; + class ILS_H + { + type = "ils"; + pos0[] = {0.5,0.32}; + pos3[] = {0.7,0.32}; + }; + class ILS_W: ILS_H + { + pos3[] = {0.5,0.53}; + }; + class WeaponAimGUN + { + type = "vector"; + source = "weapon"; + //pos0[] = {0.5,0.125}; + pos0[] = {0.5,0.32}; + pos10[] = {" 0.5 + 0.253 "," 0.32 + 0.253 "}; + }; + class WeaponAimROCKET + { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.390}; + pos10[] = {" 0.5 + 0.253 "," 0.390 + 0.253 "}; + }; + class RadarAltitudeBone + { + type="linear"; + source="altitudeAGL"; + sourceScale=0.10; + min=0; + max=200; + minPos[]={0.5,0.10}; + maxPos[]={0.5,0.85}; + }; + class TargetSelected + { + type = "vector"; + source = "target"; + pos0[]={ 0.50, 0.32 }; + //pos10[]={" 0.5 + 1.5 ", " 0.32 + 1.5"}; + pos10[]={1.382,1.145}; + }; + class Velocity + { + type="vector"; + source="velocity"; + pos0[]={0.5,0.32}; + pos10[]={0.8,0.62}; + //pos10[]={1.5,1.32}; + }; + class center + { + type="fixed"; + pos[]={0.5,0.38}; + }; + class Level0 + { + type="horizon"; + pos0[]={0.50,0.32}; + pos10[]={1.5,1.32}; + //pos10[]={1.382,1.145}; + angle=0; + }; + class LevelP5: Level0 + { + angle=5; + }; + class LevelM5: Level0 + { + angle=-5; + }; + class LevelP10: Level0 + { + angle=10; + }; + class LevelM10: Level0 + { + angle=-10; + }; + class LevelP15: Level0 + { + angle=15; + }; + class LevelM15: Level0 + { + angle=-15; + }; + class LevelP20: Level0 + { + angle=20; + }; + class LevelM20: Level0 + { + angle=-20; + }; + class LevelP25: Level0 + { + angle=25; + }; + class LevelM25: Level0 + { + angle=-25; + }; + class LevelP30: Level0 + { + angle=30; + }; + class LevelM30: Level0 + { + angle=-30; + }; + class LevelP35: Level0 + { + angle=35; + }; + class LevelM35: Level0 + { + angle=-35; + }; + class LevelP40: Level0 + { + angle=40; + }; + class LevelM40: Level0 + { + angle=-40; + }; + class LevelP45: Level0 + { + angle=45; + }; + class LevelM45: Level0 + { + angle=-45; + }; + class LevelP50: Level0 + { + angle=50; + }; + class LevelM50: Level0 + { + angle=-50; + }; + }; + class Draw + { + color[]={0.15000001,1,0.15000001}; + alpha=0.9; + clipTL[]={0,0}; + clipBR[]={1,1}; + condition="on"; + /*class Horizont // default + { + clipTL[]={0.10,0.10}; + clipBR[]={0.90,0.90}; + class Dimmed + { + class Level0 + { + type="line"; + points[]= + { + + { + "Level0", + {-0.2,0}, + 1 + }, + + { + "Level0", + {-0.050000001,0}, + 1 + }, + {}, + + { + "Level0", + {0.050000001,0}, + 1 + }, + + { + "Level0", + {0.2,0}, + 1 + } + }; + }; + class VALM_1_0 + { + type="text"; + source="static"; + text=0; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "Level0", + {-0.23,-0.025}, + 1 + }; + right[]= + { + "Level0", + {-0.13,-0.025}, + 1 + }; + down[]= + { + "Level0", + {-0.23,0.025}, + 1 + }; + }; + class VALM_2_0: VALM_1_0 + { + align="right"; + pos[]= + { + "Level0", + {0.22,-0.025}, + 1 + }; + right[]= + { + "Level0", + {0.31999999,-0.025}, + 1 + }; + down[]= + { + "Level0", + {0.22,0.025}, + 1 + }; + }; + class LevelM5: Level0 + { + type="line"; + points[]= + { + + { + "LevelM5", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM5", + {-0.2,0}, + 1 + }, + + { + "LevelM5", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {-0.1,0}, + 1 + }, + + { + "LevelM5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.050000001,0}, + 1 + }, + + { + "LevelM5", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.15000001,0}, + 1 + }, + + { + "LevelM5", + {0.2,0}, + 1 + }, + + { + "LevelM5", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_5 + { + type="text"; + source="static"; + text=-5; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM5", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_5: VALM_1_5 + { + align="right"; + pos[]= + { + "LevelM5", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {0.22,-0.035}, + 1 + }; + }; + class LevelP5: Level0 + { + type="line"; + points[]= + { + + { + "LevelP5", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP5", + {-0.2,0}, + 1 + }, + + { + "LevelP5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP5", + {0.050000001,0}, + 1 + }, + + { + "LevelP5", + {0.2,0}, + 1 + }, + + { + "LevelP5", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_5 + { + type="text"; + source="static"; + text="5"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP5", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_5: VALP_1_5 + { + align="right"; + pos[]= + { + "LevelP5", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM10: Level0 + { + type="line"; + points[]= + { + + { + "LevelM10", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM10", + {-0.2,0}, + 1 + }, + + { + "LevelM10", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {-0.1,0}, + 1 + }, + + { + "LevelM10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.050000001,0}, + 1 + }, + + { + "LevelM10", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.15000001,0}, + 1 + }, + + { + "LevelM10", + {0.2,0}, + 1 + }, + + { + "LevelM10", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_10 + { + type="text"; + source="static"; + text=-10; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM10", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_10: VALM_1_10 + { + align="right"; + pos[]= + { + "LevelM10", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {0.22,-0.035}, + 1 + }; + }; + class LevelP10: Level0 + { + type="line"; + points[]= + { + + { + "LevelP10", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP10", + {-0.2,0}, + 1 + }, + + { + "LevelP10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP10", + {0.050000001,0}, + 1 + }, + + { + "LevelP10", + {0.2,0}, + 1 + }, + + { + "LevelP10", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_10 + { + type="text"; + source="static"; + text="10"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP10", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_10: VALP_1_10 + { + align="right"; + pos[]= + { + "LevelP10", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM15: Level0 + { + type="line"; + points[]= + { + + { + "LevelM15", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM15", + {-0.2,0}, + 1 + }, + + { + "LevelM15", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {-0.1,0}, + 1 + }, + + { + "LevelM15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.050000001,0}, + 1 + }, + + { + "LevelM15", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.15000001,0}, + 1 + }, + + { + "LevelM15", + {0.2,0}, + 1 + }, + + { + "LevelM15", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_15 + { + type="text"; + source="static"; + text=-15; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM15", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_15: VALM_1_15 + { + align="right"; + pos[]= + { + "LevelM15", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {0.22,-0.035}, + 1 + }; + }; + class LevelP15: Level0 + { + type="line"; + points[]= + { + + { + "LevelP15", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP15", + {-0.2,0}, + 1 + }, + + { + "LevelP15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP15", + {0.050000001,0}, + 1 + }, + + { + "LevelP15", + {0.2,0}, + 1 + }, + + { + "LevelP15", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_15 + { + type="text"; + source="static"; + text="15"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP15", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_15: VALP_1_15 + { + align="right"; + pos[]= + { + "LevelP15", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM20: Level0 + { + type="line"; + points[]= + { + + { + "LevelM20", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM20", + {-0.2,0}, + 1 + }, + + { + "LevelM20", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {-0.1,0}, + 1 + }, + + { + "LevelM20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.050000001,0}, + 1 + }, + + { + "LevelM20", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.15000001,0}, + 1 + }, + + { + "LevelM20", + {0.2,0}, + 1 + }, + + { + "LevelM20", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_20 + { + type="text"; + source="static"; + text=-20; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM20", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_20: VALM_1_20 + { + align="right"; + pos[]= + { + "LevelM20", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {0.22,-0.035}, + 1 + }; + }; + class LevelP20: Level0 + { + type="line"; + points[]= + { + + { + "LevelP20", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP20", + {-0.2,0}, + 1 + }, + + { + "LevelP20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP20", + {0.050000001,0}, + 1 + }, + + { + "LevelP20", + {0.2,0}, + 1 + }, + + { + "LevelP20", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_20 + { + type="text"; + source="static"; + text="20"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP20", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_20: VALP_1_20 + { + align="right"; + pos[]= + { + "LevelP20", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM25: Level0 + { + type="line"; + points[]= + { + + { + "LevelM25", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM25", + {-0.2,0}, + 1 + }, + + { + "LevelM25", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {-0.1,0}, + 1 + }, + + { + "LevelM25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.050000001,0}, + 1 + }, + + { + "LevelM25", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.15000001,0}, + 1 + }, + + { + "LevelM25", + {0.2,0}, + 1 + }, + + { + "LevelM25", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_25 + { + type="text"; + source="static"; + text=-25; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM25", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_25: VALM_1_25 + { + align="right"; + pos[]= + { + "LevelM25", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {0.22,-0.035}, + 1 + }; + }; + class LevelP25: Level0 + { + type="line"; + points[]= + { + + { + "LevelP25", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP25", + {-0.2,0}, + 1 + }, + + { + "LevelP25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP25", + {0.050000001,0}, + 1 + }, + + { + "LevelP25", + {0.2,0}, + 1 + }, + + { + "LevelP25", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_25 + { + type="text"; + source="static"; + text="25"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP25", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_25: VALP_1_25 + { + align="right"; + pos[]= + { + "LevelP25", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM30: Level0 + { + type="line"; + points[]= + { + + { + "LevelM30", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM30", + {-0.2,0}, + 1 + }, + + { + "LevelM30", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {-0.1,0}, + 1 + }, + + { + "LevelM30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.050000001,0}, + 1 + }, + + { + "LevelM30", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.15000001,0}, + 1 + }, + + { + "LevelM30", + {0.2,0}, + 1 + }, + + { + "LevelM30", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_30 + { + type="text"; + source="static"; + text=-30; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM30", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_30: VALM_1_30 + { + align="right"; + pos[]= + { + "LevelM30", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {0.22,-0.035}, + 1 + }; + }; + class LevelP30: Level0 + { + type="line"; + points[]= + { + + { + "LevelP30", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP30", + {-0.2,0}, + 1 + }, + + { + "LevelP30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP30", + {0.050000001,0}, + 1 + }, + + { + "LevelP30", + {0.2,0}, + 1 + }, + + { + "LevelP30", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_30 + { + type="text"; + source="static"; + text="30"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP30", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_30: VALP_1_30 + { + align="right"; + pos[]= + { + "LevelP30", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM35: Level0 + { + type="line"; + points[]= + { + + { + "LevelM35", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM35", + {-0.2,0}, + 1 + }, + + { + "LevelM35", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {-0.1,0}, + 1 + }, + + { + "LevelM35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.050000001,0}, + 1 + }, + + { + "LevelM35", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.15000001,0}, + 1 + }, + + { + "LevelM35", + {0.2,0}, + 1 + }, + + { + "LevelM35", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_35 + { + type="text"; + source="static"; + text=-35; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM35", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_35: VALM_1_35 + { + align="right"; + pos[]= + { + "LevelM35", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {0.22,-0.035}, + 1 + }; + }; + class LevelP35: Level0 + { + type="line"; + points[]= + { + + { + "LevelP35", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP35", + {-0.2,0}, + 1 + }, + + { + "LevelP35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP35", + {0.050000001,0}, + 1 + }, + + { + "LevelP35", + {0.2,0}, + 1 + }, + + { + "LevelP35", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_35 + { + type="text"; + source="static"; + text="35"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP35", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_35: VALP_1_35 + { + align="right"; + pos[]= + { + "LevelP35", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM40: Level0 + { + type="line"; + points[]= + { + + { + "LevelM40", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM40", + {-0.2,0}, + 1 + }, + + { + "LevelM40", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {-0.1,0}, + 1 + }, + + { + "LevelM40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.050000001,0}, + 1 + }, + + { + "LevelM40", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.15000001,0}, + 1 + }, + + { + "LevelM40", + {0.2,0}, + 1 + }, + + { + "LevelM40", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_40 + { + type="text"; + source="static"; + text=-40; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM40", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_40: VALM_1_40 + { + align="right"; + pos[]= + { + "LevelM40", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {0.22,-0.035}, + 1 + }; + }; + class LevelP40: Level0 + { + type="line"; + points[]= + { + + { + "LevelP40", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP40", + {-0.2,0}, + 1 + }, + + { + "LevelP40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP40", + {0.050000001,0}, + 1 + }, + + { + "LevelP40", + {0.2,0}, + 1 + }, + + { + "LevelP40", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_40 + { + type="text"; + source="static"; + text="40"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP40", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_40: VALP_1_40 + { + align="right"; + pos[]= + { + "LevelP40", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM45: Level0 + { + type="line"; + points[]= + { + + { + "LevelM45", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM45", + {-0.2,0}, + 1 + }, + + { + "LevelM45", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {-0.1,0}, + 1 + }, + + { + "LevelM45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.050000001,0}, + 1 + }, + + { + "LevelM45", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.15000001,0}, + 1 + }, + + { + "LevelM45", + {0.2,0}, + 1 + }, + + { + "LevelM45", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_45 + { + type="text"; + source="static"; + text=-45; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM45", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_45: VALM_1_45 + { + align="right"; + pos[]= + { + "LevelM45", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {0.22,-0.035}, + 1 + }; + }; + class LevelP45: Level0 + { + type="line"; + points[]= + { + + { + "LevelP45", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP45", + {-0.2,0}, + 1 + }, + + { + "LevelP45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP45", + {0.050000001,0}, + 1 + }, + + { + "LevelP45", + {0.2,0}, + 1 + }, + + { + "LevelP45", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_45 + { + type="text"; + source="static"; + text="45"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP45", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_45: VALP_1_45 + { + align="right"; + pos[]= + { + "LevelP45", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM50: Level0 + { + type="line"; + points[]= + { + + { + "LevelM50", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM50", + {-0.2,0}, + 1 + }, + + { + "LevelM50", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {-0.1,0}, + 1 + }, + + { + "LevelM50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.050000001,0}, + 1 + }, + + { + "LevelM50", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.15000001,0}, + 1 + }, + + { + "LevelM50", + {0.2,0}, + 1 + }, + + { + "LevelM50", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_50 + { + type="text"; + source="static"; + text=-50; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM50", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_50: VALM_1_50 + { + align="right"; + pos[]= + { + "LevelM50", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {0.22,-0.035}, + 1 + }; + }; + class LevelP50: Level0 + { + type="line"; + points[]= + { + + { + "LevelP50", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP50", + {-0.2,0}, + 1 + }, + + { + "LevelP50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP50", + {0.050000001,0}, + 1 + }, + + { + "LevelP50", + {0.2,0}, + 1 + }, + + { + "LevelP50", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_50 + { + type="text"; + source="static"; + text="50"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP50", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_50: VALP_1_50 + { + align="right"; + pos[]= + { + "LevelP50", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {0.22,0.085000001}, + 1 + }; + }; + }; + }; + */ + class Horizont + { + clipTL[]={0,0}; + clipBR[]={1.0,1.0}; + class Dimmed + { + class Level0 + { + type="line"; + points[]= + { + + { + "Level0", + {-0.3,0}, + 1 + }, + + { + "Level0", + {-0.050000001,0}, + 1 + }, + {}, + + { + "Level0", + {0.050000001,0}, + 1 + }, + + { + "Level0", + {0.3,0}, + 1 + } + }; + }; + /*class VALM_1_0 + { + type="text"; + source="static"; + text=0; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "Level0", + {-0.23,-0.025}, + 1 + }; + right[]= + { + "Level0", + {-0.13,-0.025}, + 1 + }; + down[]= + { + "Level0", + {-0.23,0.025}, + 1 + }; + }; + class VALM_2_0: VALM_1_0 + { + align="right"; + pos[]= + { + "Level0", + {0.22,-0.025}, + 1 + }; + right[]= + { + "Level0", + {0.31999999,-0.025}, + 1 + }; + down[]= + { + "Level0", + {0.22,0.025}, + 1 + }; + }; + */ + class LevelM5: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM5", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM5", + {-0.2,0}, + 1 + }, + + { + "LevelM5", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {-0.1,0}, + 1 + }, + + { + "LevelM5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.050000001,0}, + 1 + }, + + { + "LevelM5", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.15000001,0}, + 1 + }, + + { + "LevelM5", + {0.2,0}, + 1 + }, + + { + "LevelM5", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_5 + { + type="text"; + source="static"; + text=-5; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM5", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_5: VALM_1_5 + { + align="right"; + pos[]= + { + "LevelM5", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {0.22,-0.035}, + 1 + }; + }; + class LevelP5: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP5", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP5", + {-0.2,0}, + 1 + }, + + { + "LevelP5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP5", + {0.050000001,0}, + 1 + }, + + { + "LevelP5", + {0.2,0}, + 1 + }, + + { + "LevelP5", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_5 + { + type="text"; + source="static"; + text="5"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP5", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_5: VALP_1_5 + { + align="right"; + pos[]= + { + "LevelP5", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM10: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM10", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM10", + {-0.2,0}, + 1 + }, + + { + "LevelM10", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {-0.1,0}, + 1 + }, + + { + "LevelM10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.050000001,0}, + 1 + }, + + { + "LevelM10", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.15000001,0}, + 1 + }, + + { + "LevelM10", + {0.2,0}, + 1 + }, + + { + "LevelM10", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_10 + { + type="text"; + source="static"; + text=-10; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM10", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_10: VALM_1_10 + { + align="right"; + pos[]= + { + "LevelM10", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {0.22,-0.035}, + 1 + }; + }; + class LevelP10: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP10", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP10", + {-0.2,0}, + 1 + }, + + { + "LevelP10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP10", + {0.050000001,0}, + 1 + }, + + { + "LevelP10", + {0.2,0}, + 1 + }, + + { + "LevelP10", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_10 + { + type="text"; + source="static"; + text="10"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP10", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_10: VALP_1_10 + { + align="right"; + pos[]= + { + "LevelP10", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM15: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM15", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM15", + {-0.2,0}, + 1 + }, + + { + "LevelM15", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {-0.1,0}, + 1 + }, + + { + "LevelM15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.050000001,0}, + 1 + }, + + { + "LevelM15", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.15000001,0}, + 1 + }, + + { + "LevelM15", + {0.2,0}, + 1 + }, + + { + "LevelM15", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_15 + { + type="text"; + source="static"; + text=-15; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM15", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_15: VALM_1_15 + { + align="right"; + pos[]= + { + "LevelM15", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {0.22,-0.035}, + 1 + }; + }; + class LevelP15: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP15", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP15", + {-0.2,0}, + 1 + }, + + { + "LevelP15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP15", + {0.050000001,0}, + 1 + }, + + { + "LevelP15", + {0.2,0}, + 1 + }, + + { + "LevelP15", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_15 + { + type="text"; + source="static"; + text="15"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP15", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_15: VALP_1_15 + { + align="right"; + pos[]= + { + "LevelP15", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM20: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM20", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM20", + {-0.2,0}, + 1 + }, + + { + "LevelM20", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {-0.1,0}, + 1 + }, + + { + "LevelM20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.050000001,0}, + 1 + }, + + { + "LevelM20", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.15000001,0}, + 1 + }, + + { + "LevelM20", + {0.2,0}, + 1 + }, + + { + "LevelM20", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_20 + { + type="text"; + source="static"; + text=-20; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM20", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_20: VALM_1_20 + { + align="right"; + pos[]= + { + "LevelM20", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {0.22,-0.035}, + 1 + }; + }; + class LevelP20: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP20", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP20", + {-0.2,0}, + 1 + }, + + { + "LevelP20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP20", + {0.050000001,0}, + 1 + }, + + { + "LevelP20", + {0.2,0}, + 1 + }, + + { + "LevelP20", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_20 + { + type="text"; + source="static"; + text="20"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP20", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_20: VALP_1_20 + { + align="right"; + pos[]= + { + "LevelP20", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM25: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM25", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM25", + {-0.2,0}, + 1 + }, + + { + "LevelM25", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {-0.1,0}, + 1 + }, + + { + "LevelM25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.050000001,0}, + 1 + }, + + { + "LevelM25", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.15000001,0}, + 1 + }, + + { + "LevelM25", + {0.2,0}, + 1 + }, + + { + "LevelM25", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_25 + { + type="text"; + source="static"; + text=-25; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM25", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_25: VALM_1_25 + { + align="right"; + pos[]= + { + "LevelM25", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {0.22,-0.035}, + 1 + }; + }; + class LevelP25: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP25", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP25", + {-0.2,0}, + 1 + }, + + { + "LevelP25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP25", + {0.050000001,0}, + 1 + }, + + { + "LevelP25", + {0.2,0}, + 1 + }, + + { + "LevelP25", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_25 + { + type="text"; + source="static"; + text="25"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP25", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_25: VALP_1_25 + { + align="right"; + pos[]= + { + "LevelP25", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM30: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM30", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM30", + {-0.2,0}, + 1 + }, + + { + "LevelM30", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {-0.1,0}, + 1 + }, + + { + "LevelM30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.050000001,0}, + 1 + }, + + { + "LevelM30", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.15000001,0}, + 1 + }, + + { + "LevelM30", + {0.2,0}, + 1 + }, + + { + "LevelM30", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_30 + { + type="text"; + source="static"; + text=-30; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM30", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_30: VALM_1_30 + { + align="right"; + pos[]= + { + "LevelM30", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {0.22,-0.035}, + 1 + }; + }; + class LevelP30: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP30", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP30", + {-0.2,0}, + 1 + }, + + { + "LevelP30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP30", + {0.050000001,0}, + 1 + }, + + { + "LevelP30", + {0.2,0}, + 1 + }, + + { + "LevelP30", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_30 + { + type="text"; + source="static"; + text="30"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP30", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_30: VALP_1_30 + { + align="right"; + pos[]= + { + "LevelP30", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM35: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM35", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM35", + {-0.2,0}, + 1 + }, + + { + "LevelM35", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {-0.1,0}, + 1 + }, + + { + "LevelM35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.050000001,0}, + 1 + }, + + { + "LevelM35", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.15000001,0}, + 1 + }, + + { + "LevelM35", + {0.2,0}, + 1 + }, + + { + "LevelM35", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_35 + { + type="text"; + source="static"; + text=-35; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM35", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_35: VALM_1_35 + { + align="right"; + pos[]= + { + "LevelM35", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {0.22,-0.035}, + 1 + }; + }; + class LevelP35: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP35", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP35", + {-0.2,0}, + 1 + }, + + { + "LevelP35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP35", + {0.050000001,0}, + 1 + }, + + { + "LevelP35", + {0.2,0}, + 1 + }, + + { + "LevelP35", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_35 + { + type="text"; + source="static"; + text="35"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP35", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_35: VALP_1_35 + { + align="right"; + pos[]= + { + "LevelP35", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM40: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM40", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM40", + {-0.2,0}, + 1 + }, + + { + "LevelM40", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {-0.1,0}, + 1 + }, + + { + "LevelM40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.050000001,0}, + 1 + }, + + { + "LevelM40", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.15000001,0}, + 1 + }, + + { + "LevelM40", + {0.2,0}, + 1 + }, + + { + "LevelM40", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_40 + { + type="text"; + source="static"; + text=-40; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM40", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_40: VALM_1_40 + { + align="right"; + pos[]= + { + "LevelM40", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {0.22,-0.035}, + 1 + }; + }; + class LevelP40: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP40", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP40", + {-0.2,0}, + 1 + }, + + { + "LevelP40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP40", + {0.050000001,0}, + 1 + }, + + { + "LevelP40", + {0.2,0}, + 1 + }, + + { + "LevelP40", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_40 + { + type="text"; + source="static"; + text="40"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP40", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_40: VALP_1_40 + { + align="right"; + pos[]= + { + "LevelP40", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM45: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM45", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM45", + {-0.2,0}, + 1 + }, + + { + "LevelM45", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {-0.1,0}, + 1 + }, + + { + "LevelM45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.050000001,0}, + 1 + }, + + { + "LevelM45", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.15000001,0}, + 1 + }, + + { + "LevelM45", + {0.2,0}, + 1 + }, + + { + "LevelM45", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_45 + { + type="text"; + source="static"; + text=-45; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM45", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_45: VALM_1_45 + { + align="right"; + pos[]= + { + "LevelM45", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {0.22,-0.035}, + 1 + }; + }; + class LevelP45: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP45", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP45", + {-0.2,0}, + 1 + }, + + { + "LevelP45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP45", + {0.050000001,0}, + 1 + }, + + { + "LevelP45", + {0.2,0}, + 1 + }, + + { + "LevelP45", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_45 + { + type="text"; + source="static"; + text="45"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP45", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_45: VALP_1_45 + { + align="right"; + pos[]= + { + "LevelP45", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM50: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM50", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM50", + {-0.2,0}, + 1 + }, + + { + "LevelM50", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {-0.1,0}, + 1 + }, + + { + "LevelM50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.050000001,0}, + 1 + }, + + { + "LevelM50", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.15000001,0}, + 1 + }, + + { + "LevelM50", + {0.2,0}, + 1 + }, + + { + "LevelM50", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_50 + { + type="text"; + source="static"; + text=-50; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM50", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_50: VALM_1_50 + { + align="right"; + pos[]= + { + "LevelM50", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {0.22,-0.035}, + 1 + }; + }; + class LevelP50: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP50", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP50", + {-0.2,0}, + 1 + }, + + { + "LevelP50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP50", + {0.050000001,0}, + 1 + }, + + { + "LevelP50", + {0.2,0}, + 1 + }, + + { + "LevelP50", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_50 + { + type="text"; + source="static"; + text="50"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP50", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_50: VALP_1_50 + { + align="right"; + pos[]= + { + "LevelP50", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {0.22,0.085000001}, + 1 + }; + }; + }; + }; + class PlaneMovementCrosshair //fwd + { + clipTL[]={0,1}; + clipBR[]={1,0}; + type="line"; + width=6; + points[]= + { + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","-0.02 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.0099999998 *2 /3","-0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.01732 *2 /3","-0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.02 *2 /3","0 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.01732 *2 /3","0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.0099999998 *2 /3","0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","0.02 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.0099999998 *2 /3","0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.01732 *2 /3","0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.02 *2 /3","0 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.01732 *2 /3","-0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.0099999998 *2 /3","-0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","-0.02 *2 /3"},1}, + + {}, + + {"ForwardVec1",1,"Velocity",1,{0.035,0},1}, + {"ForwardVec1",1,"Velocity",1,{"0.02 *2 /3",0},1}, + + {}, + + {"ForwardVec1",1,"Velocity",1,{-0.035,0},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.02 *2 /3",0},1}, + + {}, + + {"ForwardVec1",1,"Velocity",1,{0,"-0.039999999 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{0,"-0.02 *2 /3"},1} + }; + }; + class RadarTargets //fwd + { + type="radar"; + //pos0[]={0.50,0.38}; + //pos10[]={1.40,1.22}; + ///pos0[]={0.50,0.27}; + ///pos10[]={1.40,1.10}; + pos0[]={0.50,0.32}; + pos10[]={1.382,1.145}; + width=2.5; + points[]= + { + + { + "ForwardVec",1,"RadarContact", + {-0.02,-0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {0.02,-0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {0.02,0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {-0.02,0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {-0.02,-0.02}, + 1 + } + }; + }; + class AA_target //fwd + { + condition="AAmissile"; + class Target + { + type = "line"; + points[] = + { + /*{ "TargetSelected",{ 0,"-0.08 + 0.2" },1 }, + { "TargetSelected",{ 0.05,"-0.0696 + 0.2" },1 }, + { "TargetSelected",{ 0.087,"-0.50*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ 0.1,"0 + 0.2"},1 }, + { "TargetSelected",{ 0.087,"0.04 + 0.2" },1 }, + { "TargetSelected",{ 0.05,"+0.87*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ 0,"0.08 + 0.2"},1 }, + { "TargetSelected",{ -0.05,"0.0696 + 0.2"},1 }, + { "TargetSelected",{ -0.087,"+0.50*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ -0.1,"0 + 0.2" },1 }, + { "TargetSelected",{ -0.087,"-0.04 + 0.2" },1 }, + { "TargetSelected",{ -0.05,"-0.87*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ 0,"-0.08 + 0.2" },1 }*/ + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + } + }; + }; + }; + class AG_target //fwd + { + condition="ATmissile"; + class Target + { + type = "line"; + points[] = + { + /*{ "TargetSelected",{ 0,"-0.08" },1 }, + { "TargetSelected",{ 0.05,"-0.0696" },1 }, + { "TargetSelected",{ 0.087,"-0.50*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ 0.1,"0"},1 }, + { "TargetSelected",{ 0.087,"0.04" },1 }, + { "TargetSelected",{ 0.05,"+0.87*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ 0,"0.08"},1 }, + { "TargetSelected",{ -0.05,"0.0696"},1 }, + { "TargetSelected",{ -0.087,"+0.50*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ -0.1,"0" },1 }, + { "TargetSelected",{ -0.087,"-0.04" },1 }, + { "TargetSelected",{ -0.05,"-0.87*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ 0,"-0.08" },1 },*/ + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + }, + + + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.02 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.01 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.02 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.01 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.02,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.01,0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.02,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.01,0 },1 } + }; + }; + }; + class GUN_target //fwd + { + condition="mgun"; + class Target + { + type="line"; + width=4; + points[]= + { + //////////////////////////////////////////////// UP + + /*{ "ForwardVec",1,"target",{ 0,-0.060 },1 }, + { "ForwardVec",1,"target",{ 0,-0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.050 },1 }, + { "ForwardVec",1,"target",{ 0,-0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.040 },1 }, + { "ForwardVec",1,"target",{ 0,-0.035 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.005 },1 }, + {}, + //////////////////////////////////////////////// center + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + {}, + /////////////////////////////////////////////// DOWN + + /*{ "ForwardVec",1,"target",{ 0,0.060 },1 }, + { "ForwardVec",1,"target",{ 0,0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.050 },1 }, + { "ForwardVec",1,"target",{ 0,0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.040 },1 }, + { "ForwardVec",1,"target",{ 0,0.035 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ 0,0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.005 },1 }, + {}, + /////////////////////////////////////////////// LEFT + + /*{ "ForwardVec",1,"target",{ -0.060, 0 },1 }, + { "ForwardVec",1,"target",{ -0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.050, 0 },1 }, + { "ForwardVec",1,"target",{ -0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.040, 0 },1 }, + { "ForwardVec",1,"target",{ -0.035, 0 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ -0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.005, 0 },1 }, + {}, + /////////////////////////////////////////////// RIGHT + + /*{ "ForwardVec",1,"target",{ 0.060, 0 },1 }, + { "ForwardVec",1,"target",{ 0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.050, 0 },1 }, + { "ForwardVec",1,"target",{ 0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.040, 0 },1 }, + { "ForwardVec",1,"target",{ 0.035, 0 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ 0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.005, 0 },1 }, + {} + }; + }; + }; + class Rocket_target //fwd + { + condition="rocket"; + class Target + { + type="line"; + width=4; + points[]= + { + //////////////////////////////////////////////// UP + + /*{ "ForwardVec",1,"target",{ 0,-0.060 },1 }, + { "ForwardVec",1,"target",{ 0,-0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.050 },1 }, + { "ForwardVec",1,"target",{ 0,-0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.040 },1 }, + { "ForwardVec",1,"target",{ 0,-0.035 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.005 },1 }, + {}, + //////////////////////////////////////////////// center + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + {}, + /////////////////////////////////////////////// DOWN + + /*{ "ForwardVec",1,"target",{ 0,0.060 },1 }, + { "ForwardVec",1,"target",{ 0,0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.050 },1 }, + { "ForwardVec",1,"target",{ 0,0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.040 },1 }, + { "ForwardVec",1,"target",{ 0,0.035 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ 0,0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.005 },1 }, + {}, + /////////////////////////////////////////////// LEFT + + /*{ "ForwardVec",1,"target",{ -0.060, 0 },1 }, + { "ForwardVec",1,"target",{ -0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.050, 0 },1 }, + { "ForwardVec",1,"target",{ -0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.040, 0 },1 }, + { "ForwardVec",1,"target",{ -0.035, 0 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ -0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.005, 0 },1 }, + {}, + /////////////////////////////////////////////// RIGHT + + /*{ "ForwardVec",1,"target",{ 0.060, 0 },1 }, + { "ForwardVec",1,"target",{ 0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.050, 0 },1 }, + { "ForwardVec",1,"target",{ 0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.040, 0 },1 }, + { "ForwardVec",1,"target",{ 0.035, 0 },1 }, + {},*/ + { "ForwardVec",1,"TargetSelected",1,{ 0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.005, 0 },1 }, + {} + }; + }; + }; + class GunCross //fwd + { + type="group"; + condition = "mgun"; + class CCIP_circle + { + type = "line"; + width = 5.0; + points[] = + { + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.2000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.2000 * 0.06","0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","-1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ 0.005,0 },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ -0.005,0 },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ 0,0.005 },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ 0,-0.005 },1 } + }; + }; + }; + class RocketCross //fwd + { + type="group"; + condition="rocket"; + class CCIP_circle + { + type = "line"; + width = 5.0; + points[] = + { + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.2000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.2000 * 0.06","0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","-1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ 0.005,0 },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ -0.005,0 },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ 0,0.005 },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ 0,-0.005 },1 } + }; + }; + }; + class AC_Centerline //fwd + { + type="group"; + condition="on"; + class RockCross + { + type = "line"; + width=4; + points[] = + { + {"ForwardVec",1,{" -0.006 + 0.5" , "0 + 0.32" },1}, + {"ForwardVec",1,{" 0.006 + 0.5" , "0 + 0.32" },1}, + { }, + {"ForwardVec",1,{" -0.0 + 0.5" , "0.006 + 0.32" },1}, + {"ForwardVec",1,{" 0.0 + 0.5" , "-0.006 + 0.32" },1} + }; + }; + }; + class ATMissileTOFGroup + { + condition="ATmissile"; + type="group"; + class TOFtext + { + type="text"; + align="right"; + source="static"; + text="TOF="; + scale=1; + pos[]= + { + {0.15,0.62}, + 1 + }; + right[]= + { + {0.19,0.62}, + 1 + }; + down[]= + { + {0.15,0.66}, + 1 + }; + }; + class TOFnumber + { + type="text"; + source="targetDist"; + sourcescale = 0.0025; + align="right"; + scale=1; + pos[]= + { + {0.23,0.62}, + 1 + }; + right[]= + { + {0.27,0.62}, + 1 + }; + down[]= + { + {0.23,0.66}, + 1 + }; + }; + }; + class BombTOFGroup + { + condition="Bomb"; + type="group"; + class Crosshairs + { + type = "line"; + width=7; + points[] = + { + {{"0 + 0.5" , "-0.02 + 0.5"},1 }, + {{"0.0099999998 + 0.5" , "-0.01732 + 0.5"},1}, + {{"0.01732 + 0.5" , "-0.0099999998 + 0.5"},1}, + {{"0.02 + 0.5" , "0 + 0.5"},1}, + {{"0.01732 + 0.5" , "0.0099999998 + 0.5"},1}, + {{"0.0099999998 + 0.5" , "0.01732 + 0.5"},1}, + {{"0 + 0.5" , "0.02 + 0.5"},1}, + {{"-0.0099999998 + 0.5" , "0.01732 + 0.5"},1}, + {{"-0.01732 + 0.5" , "0.0099999998 + 0.5"},1}, + {{"-0.02 + 0.5" , "0 + 0.5"},1}, + {{"-0.01732 + 0.5" , "-0.0099999998 + 0.5"},1}, + {{"-0.0099999998 + 0.5" , "-0.01732 + 0.5"},1}, + {{"0 + 0.5" , "-0.02 + 0.5"},1}, + { }, + {{" -0.005 + 0.5" , "0 + 0.5" },1}, + {{" 0.005 + 0.5" , "0 + 0.5" },1}, + { }, + {{" -0.00 + 0.5" , "-0.005 + 0.5" },1}, + {{" 0.00 + 0.5" , "0.005 + 0.5" },1} + + }; + }; + /*class Target_Line_LGB + { + type = "line"; + width=5; + points[] = + { + + { + "TargetSelected", + {0,0}, + 1 + }, + + { + "Velocity", + {0,0}, + 1 + }, + + + }; + };*/ + class Target_SPI_LGB + { + type = "line"; + width=3; + points[] = + { + + { + "TargetSelected", + {0,0}, + 1 + }, + + { + "TargetSelected", + {0,-0.05}, + 1 + }, + + + }; + }; + class TOFtext + { + type="text"; + align="right"; + source="static"; + text="TOF="; + scale=1; + pos[]= + { + {0.15,0.62}, + 1 + }; + right[]= + { + {0.19,0.62}, + 1 + }; + down[]= + { + {0.15,0.66}, + 1 + }; + }; + class TOFnumber + { + type="text"; + source="altitudeASL"; + sourcescale = 0.013; + align="right"; + scale=1; + pos[]= + { + {0.23,0.62}, + 1 + }; + right[]= + { + {0.27,0.62}, + 1 + }; + down[]= + { + {0.23,0.66}, + 1 + }; + }; + }; + class ILS_Bars //fwd + { + condition = "ils"; + class Glideslope + { + clipTL[] = {0.0,0.0}; + clipBR[] = {1.0,1.0}; + class ILS + { + type = "line"; + width=2.5; + points[] = + { + { "ForwardVec",1,"ILS_W",1,{ -0.2,0 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0.2,0 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ 0,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ 0.1,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0.1,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ 0.2,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0.2,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ -0.1,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ -0.1,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ -0.2,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ -0.2,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0,-0.2 },1 }, + { "ForwardVec",1,"ILS_H",1,{ 0,0.2 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,0 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,0 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,0.1 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,0.1 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,0.2 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,0.2 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,-0.1 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,-0.1 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,-0.2 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,-0.2 },1 }, + { } + }; + }; + }; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/config.cpp b/TO_MERGE/agm/Aircraft/config.cpp new file mode 100644 index 0000000000..e7ebb6be80 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/config.cpp @@ -0,0 +1,1174 @@ +class CfgPatches { + class AGM_Aircraft { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "Crusty"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgAmmo { + class BulletBase; + class LaserBombCore; + class MissileBase; + class RocketBase; + class SubmunitionBullet; + class M_Titan_AA; + + class B_20mm: BulletBase { + deflecting = 3; + hit = 100; + indirectHit = 10; + indirectHitRange = 2; + model = "\A3\Weapons_f\Data\bullettracer\tracer_red"; + }; + + class B_65x39_Minigun_Caseless: SubmunitionBullet { + hit = 10; + indirectHit = 0; + indirectHitRange = 0; + caliber = 1; + deflecting = 5; + typicalSpeed = 850; + }; + + class B_762x51_Minigun_Tracer_Red: SubmunitionBullet { + hit = 12; + indirectHit = 0; + indirectHitRange = 0; + model = "\A3\Weapons_f\Data\bullettracer\tracer_red"; + caliber = 1.6; + deflecting = 5; + typicalSpeed = 850; + }; + + class M_Zephyr: M_Titan_AA { + proxyShape = "\A3\Weapons_F\Ammo\Missile_AA_02_F.p3d"; + model = "\A3\Weapons_F\Ammo\Missile_AA_02_fly_F.p3d"; + airFriction = 0.078; + sideAirFriction = 0.18; + maneuvrability = 24; + class CamShakeFire {}; + class CamShakePlayerFire {}; + }; + + class M_Zephyr_Mi06: M_Zephyr { + maverickWeaponIndexOffset = 6; + }; + + class M_Air_AA: MissileBase { + model = "\A3\Weapons_F\Ammo\Missile_AT_02_fly_F"; + proxyShape = "\A3\Weapons_F\Ammo\Missile_AT_02_F"; + hit = 280; + indirectHit = 85; + indirectHitRange = 10; + maneuvrability = 27; + simulationStep = 0.002; + airLock = 1; + irLock = 1; + cost = 1500; + //maxSpeed = 2400; + timeToLive = 40; + airFriction = 0.05; + sideAirFriction = 0.1; + trackOversteer = 1; + trackLead = 1; + initTime = 0; + thrustTime = 12; + thrust = 340; + fuseDistance = 500; + weaponLockSystem = "2 + 16"; + maxControlRange = 8000; + class CamShakeExplode {}; + class CamShakeHit {}; + class CamShakeFire {}; + class CamShakePlayerFire {}; + }; + + class Missile_AA_04_F: MissileBase { + hit = 800; + indirectHit = 60; + indirectHitRange = 12; + airLock = 2; + irLock = 1; + laserLock = 0; + nvLock = 0; + weaponLockSystem = "2 + 16"; + cmimmunity = 0.8; + initTime = 0; + thrust = 380; + thrustTime = 9.5; + airFriction = 0.04; + sideAirFriction = 0.08; + //maxSpeed = 2600; + maneuvrability = 14; + simulationStep = 0.002; + fuseDistance = 500; + timeToLive = 19; + trackLead = 1; + trackOversteer = 1; + }; + + class Gatling_30mm_HE_Plane_CAS_01_F: BulletBase { + model = "\A3\Weapons_f\Data\bullettracer\tracer_red.p3d"; + cost = 20; + hit = 80; + indirectHit = 12; + indirectHitRange = 3; + caliber = 1.4; + explosive = 0.6; + airlock = 1; + deflecting = 3; + airFriction = -0.00042; + typicalSpeed = 960; + visibleFire = 32; + audibleFire = 32; + visibleFireTime = 3; + fuseDistance = 3; + tracerScale = 2.5; + tracerStartTime = 0.02; + tracerEndTime = 4.7; + multiSoundHit[] = {"soundHit1",0.2,"soundHit2",0.2,"soundHit3",0.2,"soundHit4",0.1,"soundHit5",0.15,"soundHit6",0.15}; + soundFly[] = {"A3\Sounds_F\weapons\Explosion\cannon_fly",1,1,50}; + explosionSoundEffect = "DefaultExplosion"; + explosionEffects = "ExploAmmoExplosion"; + craterEffects = "ExploAmmoCrater"; + soundHit1[] = {"A3\Sounds_F\weapons\Explosion\gr_explosion_1",3.16228,1,1600}; + soundHit2[] = {"A3\Sounds_F\weapons\Explosion\gr_explosion_2",3.16228,1,1600}; + soundHit3[] = {"A3\Sounds_F\weapons\Explosion\gr_explosion_3",3.16228,1,1600}; + soundHit4[] = {"A3\Sounds_F\weapons\Explosion\gr_explosion_4",3.16228,1,1600}; + soundHit5[] = {"A3\Sounds_F\weapons\Explosion\gr_explosion_5",3.16228,1,1600}; + soundHit6[] = {"A3\Sounds_F\weapons\Explosion\gr_explosion_6",3.16228,1,1600}; + class CamShakeExplode {}; + class CamShakeHit {}; + class CamShakeFire {}; + class CamShakePlayerFire {}; + }; + class AGM_Gatling_30mm_HE_Plane_CAS_01_Deploy: Gatling_30mm_HE_Plane_CAS_01_F { + simulation = "shotSubmunitions"; + triggerTime = 0; + submunitionAmmo = "AGM_Gatling_30mm_HE_Plane_CAS_01_Sub"; + submunitionConeType[] = {"custom", {{0,0}, {0,0}, {0,0}} }; + }; + class AGM_Gatling_30mm_HE_Plane_CAS_01_Sub: Gatling_30mm_HE_Plane_CAS_01_F { + }; + + class Cannon_30mm_HE_Plane_CAS_02_F: Gatling_30mm_HE_Plane_CAS_01_F { + model = "\A3\Weapons_f\Data\bullettracer\tracer_green.p3d"; + hit = 70; + indirectHit = 11; + indirectHitRange = 3; + caliber = 2; + explosive = 0.6; + }; + + class Missile_AGM_02_F: MissileBase { + model = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_02_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_02_F.p3d"; + maverickWeaponIndexOffset = 2; + cost = 1500; + hit = 2100; + indirectHit = 85; + indirectHitRange = 8; + manualControl = 0; + maxControlRange = 8000; + airLock = 0; + irLock = 1; + laserLock = 0; + nvLock = 0; + weaponLockSystem = "2 + 16"; + cmimmunity = 0.8; + initTime = 0; + thrust = 240; + thrustTime = 5; + airFriction = 0.05; + sideAirFriction = 0.1; + maxSpeed = 828; + maneuvrability = 27; + simulationStep = 0.002; + fuseDistance = 500; + timeToLive = 40; + trackLead = 1; + trackOversteer = 1; + craterEffects = "AAMissileCrater"; + effectsMissile = "missile3"; + explosionEffects = "AAMissileExplosion"; + muzzleEffect = "BIS_fnc_effectFiredHeliRocket"; + whistleDist = 20; + class CamShakeExplode {}; + class CamShakeHit {}; + class CamShakeFire {}; + class CamShakePlayerFire {}; + }; + + class Bomb_04_F: LaserBombCore { + model = "\A3\Weapons_F_EPC\Ammo\Bomb_04_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Bomb_04_F.p3d"; + maverickWeaponIndexOffset = 8; + hit = 6000; + indirectHit = 1400; + indirectHitRange = 15; + nvLock = 1; + weaponLockSystem = "2 + 16 + 4"; + maneuvrability = 20; + fuseDistance = 35; + trackLead = 0.95; + trackOversteer = 1; + craterEffects = "BombCrater"; + explosionEffects = "BombExplosion"; + explosionSoundEffect = "DefaultExplosion"; + explosionTime = 2; + multiSoundHit[] = {"soundHit1",0.2,"soundHit2",0.2,"soundHit3",0.2,"soundHit4",0.2,"soundHit5",0.2}; + soundHit1[] = {"\A3\Sounds_F\weapons\Explosion\expl_big_1",2.51189,1,2400}; + soundHit2[] = {"\A3\Sounds_F\weapons\Explosion\expl_big_2",2.51189,1,2400}; + soundHit3[] = {"\A3\Sounds_F\weapons\Explosion\expl_big_3",2.51189,1,2400}; + soundHit4[] = {"\A3\Sounds_F\weapons\Explosion\expl_shell_1",2.51189,1,2400}; + soundHit5[] = {"\A3\Sounds_F\weapons\Explosion\expl_shell_2",2.51189,1,2400}; + whistleDist = 24; + }; + + class Rocket_04_HE_F: MissileBase { + model = "\A3\Weapons_F_EPC\Ammo\Rocket_04_HE_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Rocket_04_HE_F.p3d"; + maverickWeaponIndexOffset = 12; + cost = 500; + hit = 210; + indirectHit = 55; + indirectHitRange = 15; + manualControl = 0; + maxControlRange = 8000; + airLock = 0; + irLock = 1; + laserLock = 0; + nvLock = 0; + weaponLockSystem = 0; + cmimmunity = 1; + initTime = 0.002; + thrust = 1600; + thrustTime = 0.7; + airFriction = 0.0046; + sideAirFriction = 0.005; + maxSpeed = 610; + maneuvrability = 0; + fuseDistance = 50; + timeToLive = 60; + effectsMissileInit = "MissileDAR1"; + whistleDist = 30; + class CamShakeExplode {}; + class CamShakeHit {}; + class CamShakeFire {}; + class CamShakePlayerFire {}; + }; + + class Rocket_04_AP_F: Rocket_04_HE_F { + model = "\A3\Weapons_F_EPC\Ammo\Rocket_04_AP_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Rocket_04_AP_F.p3d"; + maverickWeaponIndexOffset = 19; + hit = 400; + indirectHit = 20; + indirectHitRange = 10; + }; + + class Missile_AA_03_F: Missile_AA_04_F { + model = "\A3\Weapons_F_EPC\Ammo\Missile_AA_03_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Missile_AA_03_F.p3d"; + maverickWeaponIndexOffset = 0; + hit = 900; + indirectHit = 50; + indirectHitRange = 15; + }; + + class Missile_AGM_01_F: Missile_AGM_02_F { + model = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_01_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Missile_AGM_01_F.p3d"; + maverickWeaponIndexOffset = 2; + hit = 2200; + indirectHit = 90; + indirectHitRange = 10; + }; + + class Bomb_03_F: Bomb_04_F { + model = "\A3\Weapons_F_EPC\Ammo\Bomb_03_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Bomb_03_F.p3d"; + maverickWeaponIndexOffset = 6; + hit = 6400; + indirectHit = 1400; + indirectHitRange = 16; + }; + + class Rocket_03_HE_F: Rocket_04_HE_F { + model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Rocket_03_HE_F.p3d"; + maverickWeaponIndexOffset = 8; + }; + + class Rocket_03_AP_F: Rocket_04_AP_F { + model = "\A3\Weapons_F_EPC\Ammo\Rocket_03_AP_fly_F.p3d"; + proxyShape = "\A3\Weapons_F_EPC\Ammo\Rocket_03_AP_F.p3d"; + maverickWeaponIndexOffset = 28; + }; +}; + +class CfgMagazines { + class VehicleMagazine; + class 24Rnd_PG_missiles; + + class 12Rnd_PG_missiles: 24Rnd_PG_missiles { + count = 12; + displayName = "$STR_A3_CfgMagazines_12Rnd_PG_missiles0"; + displayNameShort = "$STR_A3_CfgMagazines_12Rnd_PG_missiles_dns"; + descriptionShort = "$STR_A3_CfgMagazines_12Rnd_PG_missiles1"; + }; + class 12Rnd_missiles: VehicleMagazine { + scope = 2; + count = 12; + ammo = "M_AT"; + displayName = "$STR_A3_CfgMagazines_24Rnd_PuG_missiles0"; + displayNameShort = "$STR_A3_CfgMagazines_24Rnd_PuG_missiles_dns"; + descriptionShort = "$STR_A3_CfgMagazines_24Rnd_PuG_missiles0"; + initSpeed = 44; + maxLeadSpeed = 800; + nameSound = "rockets"; + sound[] = {"A3\sounds_f\weapons\rockets\explosion_missile_01",1,1,1200}; + reloadSound[] = {"",0.000316228,1}; + }; + + //minigun magazines, muzzle velocities and tracercounts + class 200Rnd_65x39_Belt: VehicleMagazine {}; + class 2000Rnd_65x39_Belt: 200Rnd_65x39_Belt {}; + class 2000Rnd_65x39_Belt_Tracer_Red: 2000Rnd_65x39_Belt { + }; + class 2000Rnd_65x39_Belt_Green: 2000Rnd_65x39_Belt {}; + class 2000Rnd_65x39_Belt_Tracer_Green: 2000Rnd_65x39_Belt_Green { + tracersEvery = 1; + }; + class 2000Rnd_65x39_Belt_Yellow: 2000Rnd_65x39_Belt { + tracersEvery = 1; + }; + class 2000Rnd_65x39_Belt_Tracer_Yellow: 2000Rnd_65x39_Belt_Yellow { + tracersEvery = 1; + }; + + class 5000Rnd_762x51_Belt: 2000Rnd_65x39_Belt { + tracersEvery = 1; + count = 5000; + }; + class 5000Rnd_762x51_Yellow_Belt: 5000Rnd_762x51_Belt {}; + class 4000Rnd_762x51_M134 : 5000Rnd_762x51_Belt { + count = 4000; + tracersEvery = 1; + }; + class 2000Rnd_762x51_M134 : 4000Rnd_762x51_M134 { + count = 2000; + tracersEvery = 1; + }; + + class 2Rnd_AAA_missiles: VehicleMagazine { + scope = 2; + displayName = "$STR_A3_CfgMagazines_2Rnd_AAA_missiles0"; + displayNameShort = "$STR_A3_CfgMagazines_2Rnd_AAA_missiles_dns"; + ammo = "M_Air_AA"; + count = 2; + maxLeadSpeed = 950; + nameSound = "missiles"; + }; + class 2Rnd_AAA_missiles_MI02: 2Rnd_AAA_missiles { + ammo = "M_Air_AA_MI02"; + }; + class 4Rnd_AAA_missiles: 2Rnd_AAA_missiles { + displayName = "$STR_A3_CfgMagazines_4Rnd_AAA_missiles0"; + displayNameShort = "$STR_A3_CfgMagazines_4Rnd_AAA_missiles_dns"; + count = 4; + }; + class 4Rnd_AAA_missiles_MI02: 4Rnd_AAA_missiles { + ammo = "M_Air_AA_MI02"; + }; + + class 4Rnd_GAA_missiles: VehicleMagazine { + scope = 2; + displayName = "$STR_A3_CfgMagazines_4Rnd_GAA_missiles0"; + displayNameShort = "$STR_A3_CfgMagazines_4Rnd_GAA_missiles_dns"; + count = 4; + ammo = "M_Zephyr"; + maxLeadSpeed = 950; + nameSound = "missiles"; + }; + + class 300Rnd_20mm_shells: VehicleMagazine { + scope = 2; + displayName = "$STR_A3_CfgMagazines_300Rnd_20mm_shells0"; + displayNameShort = "$STR_A3_CfgMagazines_300Rnd_20mm_shells_dns"; + ammo = "B_20mm"; + count = 300; + deflecting = 3; + maxLeadSpeed = 300; + tracersEvery = 5; + nameSound = "cannon"; + }; + + class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { + scope = 2; + displayNameShort = ""; + ammo = "AGM_Gatling_30mm_HE_Plane_CAS_01_Deploy"; + count = 1170; + //count = 390; + //initSpeed = 3852; + maxLeadSpeed = 300; + nameSound = "cannon"; + tracersEvery = 1; + }; + + class 2Rnd_Missile_AA_04_F: VehicleMagazine { + scope = 2; + displayNameShort = "$STR_A3_CFGMAGAZINES_4RND_AAA_MISSILES_DNS"; + ammo = "Missile_AA_04_F"; + count = 2; + maxLeadSpeed = 220; + nameSound = "missiles"; + }; + class 6Rnd_Missile_AGM_02_F: VehicleMagazine { + scope = 2; + displayNameShort = "$STR_A3_CFGMAGAZINES_38RND_80MM_ROCKETS_DNS"; + ammo = "Missile_AGM_02_F"; + count = 6; + maxLeadSpeed = 450; + nameSound = "missiles"; + }; + class 2Rnd_Missile_AGM_02_F: VehicleMagazine { + scope = 2; + displayNameShort = "$STR_A3_CFGMAGAZINES_38RND_80MM_ROCKETS_DNS"; + ammo = "Missile_AGM_02_F"; + count = 2; + maxLeadSpeed = 450; + nameSound = "missiles"; + }; + + class 7Rnd_Rocket_04_HE_F: VehicleMagazine { + scope = 2; + displayNameShort = "$STR_A3_CFGMAGAZINES_40RND_20MM_G_BELT_DNS"; + ammo = "Rocket_04_HE_F"; + count = 7; + maxLeadSpeed = 200; + nameSound = "rockets"; + }; + class 7Rnd_Rocket_04_AP_F: 7Rnd_Rocket_04_HE_F { + displayNameShort = "$STR_A3_CFGMAGAZINES_TITAN_AP_DNS"; + ammo = "Rocket_04_AP_F"; + }; + + class 4Rnd_Bomb_04_F: VehicleMagazine { + scope = 2; + displayNameShort = "$STR_A3_CFGVEHICLES_BOMB0"; + ammo = "Bomb_04_F"; + count = 4; + maxLeadSpeed = 1000; + nameSound = "cannon"; + }; + + class 500Rnd_Cannon_30mm_Plane_CAS_02_F: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + displayNameShort = ""; + ammo = "Cannon_30mm_HE_Plane_CAS_02_F"; + count = 500; + }; + + class 2Rnd_Missile_AA_03_F: 2Rnd_Missile_AA_04_F { + displayNameShort = "$STR_A3_CFGMAGAZINES_4RND_AAA_MISSILES_DNS"; + ammo = "Missile_AA_03_F"; + count = 2; + }; + class 4Rnd_Missile_AGM_01_F: 6Rnd_Missile_AGM_02_F { + displayNameShort = "$STR_A3_CFGMAGAZINES_38RND_80MM_ROCKETS_DNS"; + ammo = "Missile_AGM_01_F"; + count = 4; + }; + + class 20Rnd_Rocket_03_HE_F: 7Rnd_Rocket_04_HE_F { + displayNameShort = "$STR_A3_CFGMAGAZINES_40RND_20MM_G_BELT_DNS"; + ammo = "Rocket_03_HE_F"; + count = 20; + }; + class 20Rnd_Rocket_03_AP_F: 7Rnd_Rocket_04_AP_F { + displayNameShort = "$STR_A3_CFGMAGAZINES_TITAN_AP_DNS"; + ammo = "Rocket_03_AP_F"; + count = 20; + }; + + class 2Rnd_Bomb_03_F: 4Rnd_Bomb_04_F { + displayNameShort = "$STR_A3_CFGVEHICLES_BOMB0"; + ammo = "Bomb_03_F"; + count = 2; + }; + + class AGM_500Rnd_20mm_shells_Comanche: 300Rnd_20mm_shells { + displayName = "20mm"; + displayNameShort = "20mm"; + ammo = "B_20mm"; + count = 500; + deflecting = 3; + initSpeed = 1030; + maxLeadSpeed = 300; + tracersEvery = 5; + }; +}; + +class Mode_SemiAuto; +class Mode_Burst; +class Mode_FullAuto; + +class CfgWeapons { + class MissileLauncher; + class RocketPods; + class SmokeLauncher; + class CannonCore; + class MGunCore; + class MGun: MGunCore {}; + class LMG_RCWS: MGun {}; + + // Manual Switching Of Flare Mode + class CMFlareLauncher: SmokeLauncher { + modes[] = {"Single", "Burst", "AIBurst"}; + class Single: Mode_SemiAuto { + reloadTime = 0.1; + }; + class Burst: Mode_Burst { + displayName = "$STR_AGM_Aircraft_CMFlareLauncher_Burst_Name"; + }; + }; + + class gatling_20mm: CannonCore { + magazines[] = {"2000Rnd_20mm_shells","1000Rnd_20mm_shells","300Rnd_20mm_shells","AGM_500Rnd_20mm_shells_Comanche"}; + + class manual: CannonCore { + reloadTime = 0.023; + dispersion = 0.006; + }; + class close: manual {}; + class short: close {}; + class medium: close {}; + class far: close {}; + }; + + class AGM_gatling_20mm_Comanche: gatling_20mm { + displayName = "XM301"; + class close: close { + reloadTime = 0.04; + dispersion = 0.0022; + }; + class far: far { + reloadTime = 0.04; + dispersion = 0.0022; + }; + class manual: manual { + reloadTime = 0.04; + dispersion = 0.0022; + displayName = "XM301"; + }; + class medium: medium { + reloadTime = 0.04; + dispersion = 0.0022; + }; + class short: short { + reloadTime = 0.04; + dispersion = 0.0022; + }; + }; + + class LMG_Minigun: LMG_RCWS { + magazines[] = {"1000Rnd_65x39_Belt","1000Rnd_65x39_Belt_Green","1000Rnd_65x39_Belt_Tracer_Green","1000Rnd_65x39_Belt_Tracer_Red","1000Rnd_65x39_Belt_Tracer_Yellow","1000Rnd_65x39_Belt_Yellow","2000Rnd_65x39_Belt","2000Rnd_65x39_Belt_Green","2000Rnd_65x39_Belt_Tracer_Green","2000Rnd_65x39_Belt_Tracer_Green_Splash","2000Rnd_65x39_Belt_Tracer_Red","2000Rnd_65x39_Belt_Tracer_Yellow","2000Rnd_65x39_Belt_Tracer_Yellow_Splash","2000Rnd_65x39_Belt_Yellow","2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_T_Yellow","200Rnd_65x39_Belt","200Rnd_65x39_Belt_Tracer_Green","200Rnd_65x39_Belt_Tracer_Red","200Rnd_65x39_Belt_Tracer_Yellow","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt"}; + class manual: MGun { + reloadTime = 0.015; + dispersion = 0.006; + }; + class close: manual {}; + class short: close {}; + class medium: close {}; + class far: close {}; + }; + class LMG_Minigun_heli: LMG_Minigun { + showAimCursorInternal = 0; + class manual: manual { + reloadTime = 0.015; + dispersion = 0.006; + }; + class close: manual {}; + class short: close {}; + class medium: close {}; + class far: close {}; + }; + class M134_minigun: MGunCore { + class LowROF: Mode_FullAuto { + reloadTime = 0.015; + dispersion = 0.006; + }; + class HighROF: LowROF { + reloadTime = 0.015; + dispersion = 0.006; + }; + class close: HighROF {}; + class short: close {}; + class medium: LowROF {}; + class far: medium {}; + }; + + class Gatling_30mm_Plane_CAS_01_F: CannonCore { + autoFire = 1; + burst = 1; + reloadTime = 0.0154; + class LowROF: Mode_FullAuto { + autoFire = 0; + //burst = 65; + burst = 22; + //reloadTime = 0.0154; + reloadTime = 0.0462; + //sound[] = {"A3\Sounds_F_epc\weapons\cas_02_cannon",1.77828,1,3800}; + sound[] = {"A3\Sounds_F_EPC\Weapons\gau_03_burst",2.51189,1,4500,{25704,32159}}; + weaponSoundEffect = "DefaultRifle"; + dispersion = 0.005; + soundContinuous = 1; + textureType = "burst"; + multiplier = 3; + }; + class close: LowROF {}; + class near: close {}; + class short: close {}; + class medium: close {}; + class far: close {}; + }; + + class Missile_AA_04_Plane_CAS_01_F: RocketPods { + holdsterAnimValue = 2; + aiRateOfFire = 5; + aiRateOfFireDistance = 500; + autoFire = 0; + cursor = "EmptyCursor"; + cursorAim = "missile"; + nameSound = "MissileLauncher"; + textureType = "fullAuto"; + weaponLockDelay = 3; + minRange = 300; + minRangeProbab = 0.25; + midRange = 2500; + midRangeProbab = 0.9; + maxRange = 9000; + maxRangeProbab = 0.01; + }; + + class Missile_AGM_02_Plane_CAS_01_F: MissileLauncher { + holdsterAnimValue = 3; + magazineReloadTime = 30; + reloadTime = 0.001; + textureType = "semi"; + weaponLockDelay = 3; + weaponSoundEffect = "DefaultRifle"; + }; + + class Rocket_04_HE_Plane_CAS_01_F: RocketPods { + holdsterAnimValue = 4; + canLock = 1; + modes[] = {"Far_AI","Medium_AI","Close_AI","Burst"}; + weaponLockDelay = 0; + class Far_AI: RocketPods { + canLock = 1; + weaponLockDelay = 0; + showToPlayer = 0; + minRange = 800; + minRangeProbab = 0.31; + midRange = 2500; + midRangeProbab = 0.71; + maxRange = 3200; + maxRangeProbab = 0.1; + burst = 1; + reloadTime = 0.001; + autoFire = 0; + aiRateOfFire = 5; + aiRateOfFireDistance = 500; + }; + class Medium_AI: Far_AI {}; + class Close_AI: Far_AI {}; + class Burst: RocketPods { + burst = 1; + reloadTime = 0.002; + minRange = 300; + minRangeProbab = 0.25; + midRange = 400; + midRangeProbab = 0.7; + maxRange = 1300; + maxRangeProbab = 0.1; + aiRateOfFire = 5; + aiRateOfFireDistance = 500; + autoFire = 0; + soundContinuous = 0; + textureType = "fullAuto"; + weaponSoundEffect = "DefaultRifle"; + }; + }; + + class Rocket_04_AP_Plane_CAS_01_F: Rocket_04_HE_Plane_CAS_01_F { + holdsterAnimValue = 5; + }; + + class Bomb_04_Plane_CAS_01_F: RocketPods { + holdsterAnimValue = 6; + aiRateOfFire = 5; + aiRateOfFireDistance = 500; + missileLockCone = 180; + nameSound = ""; + textureType = "fullAuto"; + weaponLockDelay = 1; + }; + + class Cannon_30mm_Plane_CAS_02_F: CannonCore { + scope = 1; + holdsterAnimValue = 1; + ballisticsComputer = 2; + canLock = 1; + modes[] = {"LowROF","close","near","short","medium","far"}; + nameSound = "cannon"; + shotFromTurret = 0; + muzzlePos = "Cannon_muzzleflash"; + muzzleEnd = "Cannon_barrel_end"; + selectionFireAnim = "Cannon_muzzleflash"; + autoFire = 1; + burst = 5; + reloadTime = 0.04; + class GunParticles { + class Effect { + effectName = "MachineGun2"; + positionName = "Cannon_barrel_start"; + directionName = "Cannon_barrel_end"; + }; + }; + class LowROF: Mode_FullAuto { + dispersion = 0.0055; + reloadTime = 0.04; + }; + class close: LowROF {}; + class near: close {}; + class short: close {}; + class medium: close {}; + class far: close {}; + }; +}; + +class CfgVehicles { + class All { + class Turrets; + }; + + class AllVehicles: All { + class NewTurret { + class Turrets; + }; + class CargoTurret; + }; + + class Air: AllVehicles { + class AnimationSources; + }; + + class Helicopter: Air { + class Turrets { + class MainTurret; + }; + }; + + class Plane: Air {}; + + class ParachuteBase: Helicopter { + class Turrets; + }; + + class UAV: Plane {}; + + class Helicopter_Base_F: Helicopter { + class Turrets: Turrets { + class CopilotTurret; + }; + }; + + class Helicopter_Base_H: Helicopter_Base_F { + class Turrets: Turrets { + class CopilotTurret; + }; + //class UserActions; + }; + + class Heli_Light_01_base_F: Helicopter_Base_H { + lockDetectionSystem = 0; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class MFD {}; + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + showHMD = 1; + }; + }; + }; + + class B_Heli_Light_01_F: Heli_Light_01_base_F { + #include + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + class CargoTurret_03: CargoTurret_02 {}; + class CargoTurret_04: CargoTurret_01 {}; + };*/ + }; + + class Heli_Light_01_armed_base_F: Heli_Light_01_base_F { + lockDetectionSystem = 0; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class MFD {}; + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + }; + }; + }; + + class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F { + #include + }; + + class Heli_Light_02_base_F: Helicopter_Base_H { + driverCanEject = 1; + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + magazines[] = {"2000Rnd_762x51_Belt_T_Green", "12Rnd_PG_missiles", "168Rnd_CMFlare_Chaff_Magazine"}; + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + showHMD = 1; + }; + }; + }; + + class Plane_Base_F: Plane { + class Turrets { + class CopilotTurret; + }; + }; + + class Heli_Attack_01_base_F: Helicopter_Base_F { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class MFD {}; + class AnimationSources: AnimationSources { + class HitGlass1 { + source = "Hit"; + hitpoint = "HitGlass1"; + raw = 1; + }; + class HitGlass2: HitGlass1 { + hitpoint = "HitGlass2"; + }; + class HitGlass3: HitGlass1 { + hitpoint = "HitGlass3"; + }; + class HitGlass4: HitGlass1 { + hitpoint = "HitGlass4"; + }; + class Gatling { + source = "revolving"; + weapon = "AGM_gatling_20mm_Comanche"; + }; + class Hide { + source = "user"; + animPeriod = 0; + initPhase = 0; + }; + class Muzzle_flash { + source = "ammorandom"; + weapon = "AGM_gatling_20mm_Comanche"; + }; + }; + class Turrets: Turrets { + class MainTurret: MainTurret { + canEject = 1; + showHMD = 1; + weapons[] = {"AGM_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM"}; + magazines[] = {"AGM_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"}; + }; + }; + }; + + class B_Heli_Attack_01_F: Heli_Attack_01_base_F { + #include + }; + + class Heli_Attack_02_base_F: Helicopter_Base_F { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class Turrets: Turrets { + class MainTurret: MainTurret { + canEject = 1; + }; + }; + }; + + class Heli_Transport_01_base_F: Helicopter_Base_H { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + #include + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + showHMD = 1; + }; + class MainTurret: MainTurret { + magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; + canEject = 1; + }; + class RightDoorGun: MainTurret { + magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; + canEject = 1; + }; + }; + /*class UserActions { + class DoorL1_Open { + available = 1; + condition = "((this doorPhase 'door_L') == 0) AND Alive(this) AND driver this != player AND gunner this != player"; + }; + class DoorR1_Open: DoorL1_Open { + condition = "((this doorPhase 'door_R') == 0) AND Alive(this) AND driver this != player AND gunner this != player"; + }; + class DoorL1_Close: DoorL1_Open { + condition = "((this doorPhase 'door_L') > 0) AND Alive(this) AND driver this != player AND gunner this != player"; + }; + class DoorR1_Close: DoorL1_Close { + condition = "((this doorPhase 'door_R') > 0) AND Alive(this) AND driver this != player AND gunner this != player"; + }; + };*/ + }; + + class Heli_Transport_02_base_F: Helicopter_Base_H { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class MFD {}; + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + showHMD = 1; + }; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + }; + /*class UserActions: UserActions { + class DoorL1_Open { + available = 1; + condition = "this animationPhase ""door_back_L"" < 0.5 AND Alive(this)"; + }; + class DoorR1_Open: DoorL1_Open { + condition = "this animationPhase ""door_back_R"" < 0.5 AND Alive(this)"; + }; + class DoorL1_Close: DoorL1_Open { + condition = "this animationPhase ""door_back_L"" > 0.5 AND Alive(this)"; + }; + class DoorR1_Close: DoorL1_Close { + condition = "this animationPhase ""door_back_R"" > 0.5 AND Alive(this)"; + }; + class CargoRamp_Open: DoorL1_Open { + userActionID = 52; + displayName = "$STR_AGM_Aircraft_OpenCargoRamp"; + textToolTip = "$STR_AGM_Aircraft_OpenCargoRamp"; + position = "action_cargoramp"; + radius = 3.0; + condition = "this animationPhase ""cargoramp_open"" < 0.5 AND Alive(this)"; + statement = "this animateDoor ['cargoramp_open', 1]"; + }; + class CargoRamp_Close: DoorL1_Close { + userActionID = 55; + displayName = "$STR_AGM_Aircraft_CloseCargoRamp"; + textToolTip = "$STR_AGM_Aircraft_CloseCargoRamp"; + position = "action_cargoramp"; + radius = 3.0; + condition = "this animationPhase ""cargoramp_open"" > 0.5 AND Alive(this)"; + statement = "this animateDoor ['cargoramp_open', 0]"; + }; + };*/ + }; + + class I_Heli_Transport_02_F: Heli_Transport_02_base_F { + #include + }; + + class I_Heli_light_03_base_F: Helicopter_Base_F { + lockDetectionSystem = 0; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class MFD {}; + weapons[] = {"M134_minigun","missiles_DAR","CMFlareLauncher"}; + magazines[] = {"5000Rnd_762x51_Yellow_Belt","24Rnd_missiles","168Rnd_CMFlare_Chaff_Magazine"}; + class Turrets: Turrets { + class MainTurret: MainTurret { + canEject = 1; + showHMD = 1; + gunBeg = "commanderview"; + gunEnd = "laserstart"; + memoryPointGun = "laserstart"; + stabilizedInAxes = 3; + weapons[] = {"Laserdesignator_mounted"}; + soundServo[] = {"",0.01,1,30}; + magazines[] = {"Laserbatteries"}; + inGunnerMayFire = 1; + }; + }; + }; + + class I_Heli_light_03_F: I_Heli_light_03_base_F { + #include + class Turrets: Turrets { + class MainTurret: MainTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + }; + }; + + class I_Heli_light_03_unarmed_base_F: I_Heli_light_03_base_F { + class MFD {}; + }; + class I_Heli_light_03_unarmed_F: I_Heli_light_03_unarmed_base_F { + #include + }; + + class Plane_CAS_01_base_F: Plane_Base_F { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + //class MFD {}; + class Turrets; + #include + }; + + /*class B_Plane_CAS_01_F: Plane_CAS_01_base_F { + #include + //#include + };*/ + + class Plane_CAS_02_base_F: Plane_Base_F { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + class Turrets; + #include + }; + + class Plane_Fighter_03_base_F: Plane_Base_F { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + class Turrets; + #include + }; + + class UAV_01_base_F: Helicopter_Base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class UAV_02_base_F: UAV { + class Turrets { + class MainTurret; + }; + weapons[] = {}; + magazines[] = {}; + }; + + class UAV_02_CAS_base_F: UAV_02_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + weapons[] = {}; + magazines[] = {}; + }; + + class B_Heli_Transport_03_base_F: Helicopter_Base_H { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + }; + //class MainTurret: MainTurret {}; + class RightDoorGun: MainTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + }; + }; + + class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F { + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + }; + //class MainTurret: MainTurret {}; + //class RightDoorGun: MainTurret {}; + + //class CargoTurret_01: CargoTurret {}; + //class CargoTurret_02: CargoTurret_01 {}; + }; + }; + + class Heli_Transport_04_base_F: Helicopter_Base_H { + lockDetectionSystem = 12; + incomingMissileDetectionSystem = 16; + driverCanEject = 1; + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + }; + class LoadmasterTurret: MainTurret { + canEject = 1; + }; + }; + }; + + class O_Heli_Transport_04_bench_F: Heli_Transport_04_base_F { + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + }; + class LoadmasterTurret: LoadmasterTurret { + canEject = 1; + }; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + class CargoTurret_03: CargoTurret_01 {}; + class CargoTurret_04: CargoTurret_01 {}; + class CargoTurret_05: CargoTurret_01 {}; + class CargoTurret_06: CargoTurret_05 {}; + class CargoTurret_07: CargoTurret_05 {}; + class CargoTurret_08: CargoTurret_05 {}; + }; + }; + + class O_Heli_Transport_04_covered_F: Heli_Transport_04_base_F { + class Turrets: Turrets { + class CopilotTurret: CopilotTurret { + canEject = 1; + }; + class LoadmasterTurret: LoadmasterTurret { + canEject = 1; + }; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + }; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/flightmodel_alca.hpp b/TO_MERGE/agm/Aircraft/flightmodel_alca.hpp new file mode 100644 index 0000000000..09785e22e7 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/flightmodel_alca.hpp @@ -0,0 +1,24 @@ + +acceleration = 300; +maxSpeed = 936; +irScanRangeMin = 500; +irScanRangeMax = 5000; +aileronSensitivity = 0.64; +elevatorSensitivity = 0.682; +rudderInfluence = 0.001; +aileronControlsSensitivityCoef = 3; +elevatorControlsSensitivity = 2; +rudderControlsSensitivityoef = 4; +elevatorCoef[] = {0.6,0.73,0.62,0.52,0.39,0.33,0.28}; +aileronCoef[] = {0.5,0.68,0.75,0.86,0.92,0.96,1}; +rudderCoef[] = {0.9,0.75,0.58,0.45,0.38,0.35,0.3}; +envelope[] = {0,0.06,1.2,3,3.6,3.75,3.65,3.45,3.3,2.8,2.4,1.9,1.5}; +angleOfIndicence = 0.0523599; //determines velocity vector behaviour, how quickly it catches up with where your nose is pointing, I think +draconicForceXCoef = 7.5; //max angle of attack, lower value gives higher aoa +draconicForceYCoef = 0.2198; //Something to do with bleed off of speed, low values seem to increase bleed off +draconicForceZCoef = 5.12; //???? +draconicTorqueXCoef = 0.18; //resistance to elevator input, also impacts speed degradation +draconicTorqueYCoef = 0.000017; +thrustCoef[] = {1.3,1.27,1.24,1.2,1.17,1.15,1.13,1.1,1.06,1,0.94,0.72,0.51,0.4,0.25,0}; +gunAimDown = 0.029; +flapsFrictionCoef = 0.32; diff --git a/TO_MERGE/agm/Aircraft/flightmodel_thunderbolt.hpp b/TO_MERGE/agm/Aircraft/flightmodel_thunderbolt.hpp new file mode 100644 index 0000000000..fa99f40424 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/flightmodel_thunderbolt.hpp @@ -0,0 +1,23 @@ + +maxSpeed = 736; +aileronSensitivity = 0.85; +elevatorSensitivity = 0.75; +rudderInfluence = 0.001; +aileronControlsSensitivityCoef = 3; +elevatorControlsSensitivity = 2; +rudderControlsSensitivityoef = 4; +elevatorCoef[] = {0.7,0.75,0.75,0.65,0.55,0.45,0.35}; +aileronCoef[] = {0.6,0.85,0.88,0.92,0.95,0.97,1}; +rudderCoef[] = {0.8,0.75,0.65,0.5,0.4,0.33,0.3}; +flapsFrictionCoef = 0.35; +angleOfIndicence = 0.0523599; +draconicForceXCoef = 9.5; +draconicForceYCoef = 0.56; +draconicForceZCoef = 0.1; +draconicTorqueXCoef = 0.58; +draconicTorqueYCoef = 0.00013; +envelope[] = {0,0,0.75,2.4,3.6,3.8,3.7,3.2,2.2,1.7,0.9}; +thrustCoef[] = {1,1.2,1.3,1.25,1.06,1.01,1,0.92,0.75,0.65,0.5,0.25,0}; +acceleration = 265; +landingSpeed = 220; +gunAimDown = 0.087266463; diff --git a/TO_MERGE/agm/Aircraft/flightmodel_yak.hpp b/TO_MERGE/agm/Aircraft/flightmodel_yak.hpp new file mode 100644 index 0000000000..bcf5a4cfd0 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/flightmodel_yak.hpp @@ -0,0 +1,21 @@ + +maxSpeed = 1059; +acceleration = 300; +aileronSensitivity = 0.635; +elevatorSensitivity = 0.814; +rudderInfluence = 0.001; +aileronControlsSensitivityCoef = 3; +elevatorControlsSensitivity = 2; +rudderControlsSensitivityoef = 4; +elevatorCoef[] = {0.6,0.76,0.7,0.65,0.58,0.47,0.43}; +aileronCoef[] = {0.5,0.85,0.87,0.89,0.92,0.95,1}; +rudderCoef[] = {0.8,0.7,0.6,0.5,0.4,0.32,0.27}; +angleOfIndicence = 0.0523599; +draconicForceXCoef = 7.6; +draconicForceYCoef = 0.75; +draconicForceZCoef = 0.085; +draconicTorqueXCoef = 0.815; +draconicTorqueYCoef = 0.000152; +envelope[] = {0,0.446,1.5,3.9,5.2,4.8,4.2,3.5,2,1,0.5}; +thrustCoef[] = {1,1.2,1.7,1.7,1.65,1.54,1.32,1.1,0.95,0.75,0.5,0.35,0}; +flapsFrictionCoef = 0.32; diff --git a/TO_MERGE/agm/Aircraft/hmd_thunderbolt.hpp b/TO_MERGE/agm/Aircraft/hmd_thunderbolt.hpp new file mode 100644 index 0000000000..ed23d62ee4 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/hmd_thunderbolt.hpp @@ -0,0 +1,6562 @@ + + + +class MFD3 +{ + class HUD_1 + { + topLeft="HUD_top_left"; + topRight="HUD_top_right"; + bottomLeft="HUD_bottom_left"; + borderLeft=0.12; + borderRight=0.12; + borderTop=0.05; + borderBottom=0.15; + color[]={0,1,0,0.1}; + enableParallax=1; + class Bones + { + class WeaponAim + { + type="vector"; + source="weapon"; + pos0[]={0.5,0.38}; + pos10[]={1.166,1.215}; + }; + class Target + { + type="vector"; + source="target"; + pos0[]={0.5,0.38}; + pos10[]={1.166,1.215}; + }; + class Velocity + { + type="vector"; + source="velocity"; + pos0[]={0.5,0.5}; + pos10[]={1.215,1.215}; + }; + class VerticalSpeed + { + type="linear"; + source="vspeed"; + sourceScale=1; + min=-100; + max=100; + minPos[]={0,0.15000001}; + maxPos[]={0,-0.15000001}; + }; + class center + { + type="fixed"; + pos[]={0.5,0.38}; + }; + class RangeBone + { + type="linear"; + source="targetDist"; + sourceScale=1; //meters + min=0; + max=12000; + minPos[]={0.08,0.40}; + maxPos[]={0.08,0.60}; + }; + class RadarAltitudeBone + { + type="linear"; + source="altitudeAGL"; + sourceScale=1; // meters + //hideValue=1500; + min=0; + max=500; + minPos[]={0.71,0.40}; + maxPos[]={0.71,0.60}; + }; + class VspeedBone + { + type="linear"; + source="vspeed"; + sourceScale=1; // m/s + min=-50; + max=50; + minPos[]={0.94,0.40}; + maxPos[]={0.94,0.60}; + }; + }; + class Draw + { + color[]={0.15000001,1,0.15000001}; + alpha=0.9; + clipTL[]={0,0}; + clipBR[]={1,1}; + condition="on"; + + class WeaponName + { + type="text"; + source="weapon"; + sourceScale=1; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.85}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.85}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.89}, + 1 + }; + }; + class AmmoCount + { + type="text"; + source="ammo"; + sourceScale=1; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.89}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.89}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.93}, + 1 + }; + }; + class GearGroup + { + type="group"; + condition="ils"; + class GearText + { + type="text"; + source="static"; + text="GEAR"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.40" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.40" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.40 + 0.05" + }, + 1 + }; + }; + class radarbanda + { + type="line"; + width=4; + points[]= + { + { + "RadarAltitudeBone", + {-0.005,0.005}, + 1 + }, + { + "RadarAltitudeBone", + {-0.005,0}, + 1 + }, + { + "RadarAltitudeBone", + {0,0}, + 1 + }, + {{ 0.71,0.60 },1 }, + { }, + + {{ 0.71,0.40 },1 }, + {{ 0.72,0.40 },1 }, + { }, + {{ 0.71,0.44 },1 }, + {{ 0.72,0.44 },1 }, + { }, + {{ 0.71,0.48 },1 }, + {{ 0.72,0.48 },1 }, + { }, + {{ 0.71,0.52 },1 }, + {{ 0.72,0.52 },1 }, + { }, + {{ 0.71,0.56 },1 }, + {{ 0.72,0.56 },1 }, + { }, + {{ 0.71,0.60 },1 }, + {{ 0.72,0.60 },1 } + }; + }; + class radartext_5 + { + type="text"; + source="static"; + text="5"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.00"},1}; + right[]= {{0.751,"0.385 + 0.00"},1}; + down[]= {{0.721,"0.415 + 0.00"},1}; + }; + class radartext_4 + { + type="text"; + source="static"; + text="4"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.04"},1}; + right[]= {{0.751,"0.385 + 0.04"},1}; + down[]= {{0.721,"0.415 + 0.04"},1}; + }; + class radartext_3 + { + type="text"; + source="static"; + text="3"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.08"},1}; + right[]= {{0.751,"0.385 + 0.08"},1}; + down[]= {{0.721,"0.415 + 0.08"},1}; + }; + class radartext_2 + { + type="text"; + source="static"; + text="2"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.120"},1}; + right[]= {{0.751,"0.385 + 0.120"},1}; + down[]= {{0.721,"0.415 + 0.120"},1}; + }; + class radartext_1 + { + type="text"; + source="static"; + text="1"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.160"},1}; + right[]= {{0.751,"0.385 + 0.160"},1}; + down[]= {{0.721,"0.415 + 0.160"},1}; + }; + class radartext_0 + { + type="text"; + source="static"; + text="0"; + align="right"; + scale=1; + pos[]= {{0.721,"0.385 + 0.200"},1}; + right[]= {{0.751,"0.385 + 0.200"},1}; + down[]= {{0.721,"0.415 + 0.200"},1}; + }; + + class Vspeedbanda + { + type="line"; + width=4; + points[]= + { + { + "VspeedBone", + {0.007,-0.007}, + 1 + }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.007,0.007}, + 1 + }, + { }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.012,0}, + 1 + }, + {{ 0.952,0.50 },1 }, + { }, + + {{ 0.92,0.40 },1 }, // + {{ 0.94,0.40 },1 }, + { }, + {{ 0.92,0.42 },1 }, + {{ 0.93,0.42 },1 }, + { }, + {{ 0.92,0.44 },1 }, + {{ 0.93,0.44 },1 }, + { }, + {{ 0.92,0.46 },1 }, + {{ 0.93,0.46 },1 }, + { }, + {{ 0.92,0.48 },1 }, + {{ 0.93,0.48 },1 }, + { }, + {{ 0.92,0.50 },1 }, // + {{ 0.94,0.50 },1 }, + { }, + {{ 0.92,0.52 },1 }, + {{ 0.93,0.52 },1 }, + { }, + {{ 0.92,0.54 },1 }, + {{ 0.93,0.54 },1 }, + { }, + {{ 0.92,0.56 },1 }, + {{ 0.93,0.56 },1 }, + { }, + {{ 0.92,0.58 },1 }, + {{ 0.93,0.58 },1 }, + { }, + {{ 0.92,0.60 },1 }, // + {{ 0.94,0.60 },1 }, + }; + }; + }; + class Vspeedbanda1 + { + type="line"; + width=4; + points[]= + { + { + "VspeedBone", + {0.007,-0.007}, + 1 + }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.007,0.007}, + 1 + }, + { }, + { + "VspeedBone", + {0,0}, + 1 + }, + { + "VspeedBone", + {0.012,0}, + 1 + }, + {{ 0.952,0.50 },1 }, + { }, + + {{ 0.92,0.40 },1 }, // + {{ 0.94,0.40 },1 }, + { }, + {{ 0.92,0.42 },1 }, + {{ 0.93,0.42 },1 }, + { }, + {{ 0.92,0.44 },1 }, + {{ 0.93,0.44 },1 }, + { }, + {{ 0.92,0.46 },1 }, + {{ 0.93,0.46 },1 }, + { }, + {{ 0.92,0.48 },1 }, + {{ 0.93,0.48 },1 }, + { }, + {{ 0.92,0.50 },1 }, // + {{ 0.94,0.50 },1 }, + { }, + {{ 0.92,0.52 },1 }, + {{ 0.93,0.52 },1 }, + { }, + {{ 0.92,0.54 },1 }, + {{ 0.93,0.54 },1 }, + { }, + {{ 0.92,0.56 },1 }, + {{ 0.93,0.56 },1 }, + { }, + {{ 0.92,0.58 },1 }, + {{ 0.93,0.58 },1 }, + { }, + {{ 0.92,0.60 },1 }, // + {{ 0.94,0.60 },1 }, + }; + }; + class StallGroup + { + type="group"; + condition="stall"; + color[]={1,0,0}; + blinkingPattern[]={0.2,0.2}; + blinkingStartsOn=1; + class StallText + { + type="text"; + source="static"; + text="STALL"; + align="center"; + scale=1; + pos[]= + { + + { + 0.5, + "0.53 - 0.25" + }, + 1 + }; + right[]= + { + + { + 0.55000001, + "0.53 - 0.25" + }, + 1 + }; + down[]= + { + + { + 0.5, + "0.53 - 0.21" + }, + 1 + }; + }; + }; + class FLAPSGroup + { + type="group"; + condition="flaps"; + class FLAPSText + { + type="text"; + source="static"; + text="FLAPS"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.35" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.35" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.35 + 0.05" + }, + 1 + }; + }; + }; + class CollisionLightsGroup + { + type="group"; + condition="collisionlights"; + class CollisionLightsText + { + type="text"; + source="static"; + text="A-COL"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.25" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.25" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.25 + 0.05" + }, + 1 + }; + }; + }; + class LightsGroup + { + type="group"; + condition="lights"; + class LightsText + { + type="text"; + source="static"; + text="LLS"; + align="left"; + scale=1; + pos[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.30" + }, + 1 + }; + right[]= + { + + { + "0.20 + 0.1", + "0.53 - 0.30" + }, + 1 + }; + down[]= + { + + { + "0.15 + 0.1", + "0.53 - 0.30 + 0.05" + }, + 1 + }; + }; + }; + class SpeedNumber + { + type="text"; + align="left"; + scale=1; + source="speed"; + sourceScale=3.5999999; + pos[]= + { + {"0.15 + 0.1",0.47}, + 1 + }; + right[]= + { + {"0.21 + 0.1",0.47}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.52999998}, + 1 + }; + }; + class GroundSpeedNumber + { + type="text"; + align="left"; + scale=1; + source="sqrt((""speed""*""speed"")-(""vspeed""*""vspeed""))"; + sourceScale=3.5999999; + pos[]= + { + {"0.15 + 0.1",0.37}, + 1 + }; + right[]= + { + {"0.21 + 0.1",0.37}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.42999998}, + 1 + }; + }; + + class MachNumber + { + type="text"; + align="left"; + scale=1; + source="speed"; + sourceScale=0.0288; + pos[]= + { + {"0.12 + 0.1",0.53}, + 1 + }; + right[]= + { + {"0.17 + 0.1",0.53}, + 1 + }; + down[]= + { + {"0.12 + 0.1",0.58}, + 1 + }; + }; + class MachText + { + type="text"; + source="static"; + text="0."; + align="left"; + scale=1; + pos[]= + { + {"0.09 + 0.1",0.53}, + 1 + }; + right[]= + { + {"0.14 + 0.1",0.53}, + 1 + }; + down[]= + { + {"0.09 + 0.1",0.58}, + 1 + }; + }; + class MachTextM + { + type="text"; + source="static"; + text="M"; + align="left"; + scale=1; + pos[]= + { + {"0.1501 + 0.1",0.53}, + 1 + }; + right[]= + { + {"0.2001 + 0.1",0.53}, + 1 + }; + down[]= + { + {"0.1501 + 0.1",0.58}, + 1 + }; + }; + class HeadingNumber: SpeedNumber + { + source="heading"; + sourceScale=1; + align="right"; + pos[]= + { + {"0.85 - 0.1",0.15}, + 1 + }; + right[]= + { + {"0.90 - 0.1",0.15}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.20}, + 1 + }; + }; + class AltNumber: SpeedNumber + { + align="right"; + source="altitudeASL"; + sourceScale=1; + pos[]= + { + {"0.85 - 0.1",0.47}, + 1 + }; + right[]= + { + {"0.91 - 0.1",0.47}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.52999998}, + 1 + }; + }; + class PitcherNumber: SpeedNumber + { + type="text"; + source="horizonDive"; + sourceScale=57.29578; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.54}, + 1 + }; + right[]= + { + {"0.90 - 0.1",0.54}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.59}, + 1 + }; + }; + class AGLText + { + type="text"; + source="static"; + text="AGL/"; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.76}, + 1 + }; + right[]= + { + {"0.89000002 - 0.1",0.76}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.80}, + 1 + }; + }; + class AGLNumber + { + type="text"; + source="altitudeAGL"; + sourceScale=1; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.80}, + 1 + }; + right[]= + { + {"0.89 - 0.1",0.80}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.84}, + 1 + }; + }; + class ClimbText + { + type="text"; + source="static"; + text="CLIMB/"; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.85001}, + 1 + }; + right[]= + { + {"0.89 - 0.1",0.85001}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.89001}, + 1 + }; + }; + class ClimbNumber + { + type="text"; + source="vspeed"; + sourceScale=1; + align="right"; + scale=1; + pos[]= + { + {"0.85 - 0.1",0.89001}, + 1 + }; + right[]= + { + {"0.89 - 0.1",0.89001}, + 1 + }; + down[]= + { + {"0.85 - 0.1",0.93001}, + 1 + }; + }; + class RangeText + { + type="text"; + source="static"; + text="RNG/"; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.76}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.76}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.80}, + 1 + }; + }; + class RangeNumber + { + type="text"; + source="targetDist"; + sourceScale=1; + align="left"; + scale=1; + pos[]= + { + {"0.15 + 0.1",0.80}, + 1 + }; + right[]= + { + {"0.19 + 0.1",0.80}, + 1 + }; + down[]= + { + {"0.15 + 0.1",0.84}, + 1 + }; + }; + class ATRangeScale + { + condition="ATmissile"; + type="group"; + class RangeBand + { + type="line"; + width=3.0; + points[]= + { + + { + "RangeBone", + {0.00,0.0}, + 1 + }, + + { + "RangeBone", + {-0.01,-0.01}, + 1 + }, + + { + "RangeBone", + {-0.01,0.01}, + 1 + }, + + { + "RangeBone", + {0.00,0.0}, + 1 + } + }; + }; + class ATMissileRange + { + type="line"; + width=3.0; + points[] = + { + ///////////////////////////////// range marks + { { 0.08,0.40 },1 }, + { { 0.10,0.40 },1 }, + {}, + { { 0.08,0.467 },1 }, + { { 0.10,0.467 },1 }, + {}, + { { 0.08,0.567 },1 }, + { { 0.10,0.567 },1 }, + {}, + { { 0.08,0.60 },1 }, + { { 0.10,0.60 },1 }, + {}, + + { { 0.08,0.467 },1 }, // line + { { 0.08,0.567 },1 }, + {} + }; + }; + }; + class HeadingArrow + { + type="line"; + width=4; + points[]= + { + + { + {0.50,0.95}, + 1 + }, + { + {0.515,0.965}, + 1 + }, + { + {0.485,0.965}, + 1 + }, + { + {0.50,0.95}, + 1 + } + }; + }; + class HeadingScale + { + type="scale"; + horizontal=1; + source="heading"; + sourceScale=0.1; + width=5; + top=0.35; + center=0.50; + bottom=0.65; + lineXleft="0.06 + 0.89"; + lineYright="0.05 + 0.89"; + lineXleftMajor="0.06 + 0.89"; + lineYrightMajor="0.04 + 0.89"; + majorLineEach=2; + numberEach=2; + step="1 / 2"; + stepSize="(0.65 - 0.35) / 5"; + align="center"; + scale=1; + pos[]= + { + 0.35, + "0.0 + 0.89" + }; + right[]= + { + 0.38, + "0.0 + 0.89" + }; + down[]= + { + 0.35, + "0.03 + 0.89" + }; + }; + }; + }; + class HUD_2 + { + topLeft="HUD_top_left"; + topRight="HUD_top_right"; + bottomLeft="HUD_bottom_left"; + borderLeft=0.12; + borderRight=0.12; + borderTop=0.05; + borderBottom=0.15; + color[]={0,1,0,0.1}; + enableParallax=1; + class Bones + { + class ForwardVec1 + { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + //pos10[] = {0.25,0.25}; + //pos0[]={0.50,0.32}; + //pos10[]={"1.382 - 0.5","1.145 - 0.32"}; + pos10[] = {0.0,0.0}; + }; + class ForwardVec + { + type = "vector"; + source = "forward"; + pos0[] = {0.0,0.0}; + //pos10[] = {"0.253 + 0.0","0.253 + 0.0"}; + pos10[] = {0.0,0.0}; + }; + class RadarContact + { + //source="radar"; + type="fixed"; + pos[]={0,0}; + }; + class HorizonBankRot + { + type="rotational"; + source="horizonBank"; + center[]={0.5,0.32}; + min=3.1416; + max=-3.1416; + //max=0.52359998; + minAngle=-180; + maxAngle=180; + aspectRatio=1; + }; + class VspeedBone + { + type="linear"; + source="vspeed"; + sourceScale=1; + min=-10; + max=10; + minPos[]={0.2,0.35}; + maxPos[]={0.2,0.65}; + }; + class ILS_H + { + type = "ils"; + pos0[] = {0.5,0.32}; + pos3[] = {0.7,0.32}; + }; + class ILS_W: ILS_H + { + pos3[] = {0.5,0.53}; + }; + class WeaponAimGUN + { + type = "vector"; + source = "weapon"; + //pos0[] = {0.5,0.125}; + pos0[] = {0.5,0.32}; + pos10[] = {" 0.5 + 0.253 "," 0.32 + 0.253 "}; + }; + class WeaponAimROCKET + { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.390}; + pos10[] = {" 0.5 + 0.253 "," 0.390 + 0.253 "}; + }; + class RadarAltitudeBone + { + type="linear"; + source="altitudeAGL"; + sourceScale=0.10; + min=0; + max=200; + minPos[]={0.5,0.10}; + maxPos[]={0.5,0.85}; + }; + class TargetSelected + { + type = "vector"; + source = "target"; + pos0[]={ 0.50, 0.32 }; + //pos10[]={" 0.5 + 1.5 ", " 0.32 + 1.5"}; + pos10[]={1.382,1.145}; + }; + class Velocity + { + type="vector"; + source="velocity"; + pos0[]={0.5,0.32}; + pos10[]={0.8,0.62}; + //pos10[]={1.5,1.32}; + }; + class center + { + type="fixed"; + pos[]={0.5,0.38}; + }; + class Level0 + { + type="horizon"; + pos0[]={0.50,0.32}; + pos10[]={1.5,1.32}; + //pos10[]={1.382,1.145}; + angle=0; + }; + class LevelP5: Level0 + { + angle=5; + }; + class LevelM5: Level0 + { + angle=-5; + }; + class LevelP10: Level0 + { + angle=10; + }; + class LevelM10: Level0 + { + angle=-10; + }; + class LevelP15: Level0 + { + angle=15; + }; + class LevelM15: Level0 + { + angle=-15; + }; + class LevelP20: Level0 + { + angle=20; + }; + class LevelM20: Level0 + { + angle=-20; + }; + class LevelP25: Level0 + { + angle=25; + }; + class LevelM25: Level0 + { + angle=-25; + }; + class LevelP30: Level0 + { + angle=30; + }; + class LevelM30: Level0 + { + angle=-30; + }; + class LevelP35: Level0 + { + angle=35; + }; + class LevelM35: Level0 + { + angle=-35; + }; + class LevelP40: Level0 + { + angle=40; + }; + class LevelM40: Level0 + { + angle=-40; + }; + class LevelP45: Level0 + { + angle=45; + }; + class LevelM45: Level0 + { + angle=-45; + }; + class LevelP50: Level0 + { + angle=50; + }; + class LevelM50: Level0 + { + angle=-50; + }; + }; + class Draw + { + color[]={0.15000001,1,0.15000001}; + alpha=0.9; + clipTL[]={0,0}; + clipBR[]={1,1}; + condition="on"; + class Horizont // default + { + clipTL[]={0.10,0.10}; + clipBR[]={0.90,0.90}; + class Dimmed + { + class Level0 + { + type="line"; + points[]= + { + + { + "Level0", + {-0.2,0}, + 1 + }, + + { + "Level0", + {-0.050000001,0}, + 1 + }, + {}, + + { + "Level0", + {0.050000001,0}, + 1 + }, + + { + "Level0", + {0.2,0}, + 1 + } + }; + }; + class VALM_1_0 + { + type="text"; + source="static"; + text=0; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "Level0", + {-0.23,-0.025}, + 1 + }; + right[]= + { + "Level0", + {-0.13,-0.025}, + 1 + }; + down[]= + { + "Level0", + {-0.23,0.025}, + 1 + }; + }; + class VALM_2_0: VALM_1_0 + { + align="right"; + pos[]= + { + "Level0", + {0.22,-0.025}, + 1 + }; + right[]= + { + "Level0", + {0.31999999,-0.025}, + 1 + }; + down[]= + { + "Level0", + {0.22,0.025}, + 1 + }; + }; + class LevelM5: Level0 + { + type="line"; + points[]= + { + + { + "LevelM5", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM5", + {-0.2,0}, + 1 + }, + + { + "LevelM5", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {-0.1,0}, + 1 + }, + + { + "LevelM5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.050000001,0}, + 1 + }, + + { + "LevelM5", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.15000001,0}, + 1 + }, + + { + "LevelM5", + {0.2,0}, + 1 + }, + + { + "LevelM5", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_5 + { + type="text"; + source="static"; + text=-5; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM5", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_5: VALM_1_5 + { + align="right"; + pos[]= + { + "LevelM5", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {0.22,-0.035}, + 1 + }; + }; + class LevelP5: Level0 + { + type="line"; + points[]= + { + + { + "LevelP5", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP5", + {-0.2,0}, + 1 + }, + + { + "LevelP5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP5", + {0.050000001,0}, + 1 + }, + + { + "LevelP5", + {0.2,0}, + 1 + }, + + { + "LevelP5", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_5 + { + type="text"; + source="static"; + text="5"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP5", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_5: VALP_1_5 + { + align="right"; + pos[]= + { + "LevelP5", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM10: Level0 + { + type="line"; + points[]= + { + + { + "LevelM10", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM10", + {-0.2,0}, + 1 + }, + + { + "LevelM10", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {-0.1,0}, + 1 + }, + + { + "LevelM10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.050000001,0}, + 1 + }, + + { + "LevelM10", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.15000001,0}, + 1 + }, + + { + "LevelM10", + {0.2,0}, + 1 + }, + + { + "LevelM10", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_10 + { + type="text"; + source="static"; + text=-10; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM10", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_10: VALM_1_10 + { + align="right"; + pos[]= + { + "LevelM10", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {0.22,-0.035}, + 1 + }; + }; + class LevelP10: Level0 + { + type="line"; + points[]= + { + + { + "LevelP10", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP10", + {-0.2,0}, + 1 + }, + + { + "LevelP10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP10", + {0.050000001,0}, + 1 + }, + + { + "LevelP10", + {0.2,0}, + 1 + }, + + { + "LevelP10", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_10 + { + type="text"; + source="static"; + text="10"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP10", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_10: VALP_1_10 + { + align="right"; + pos[]= + { + "LevelP10", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM15: Level0 + { + type="line"; + points[]= + { + + { + "LevelM15", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM15", + {-0.2,0}, + 1 + }, + + { + "LevelM15", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {-0.1,0}, + 1 + }, + + { + "LevelM15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.050000001,0}, + 1 + }, + + { + "LevelM15", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.15000001,0}, + 1 + }, + + { + "LevelM15", + {0.2,0}, + 1 + }, + + { + "LevelM15", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_15 + { + type="text"; + source="static"; + text=-15; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM15", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_15: VALM_1_15 + { + align="right"; + pos[]= + { + "LevelM15", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {0.22,-0.035}, + 1 + }; + }; + class LevelP15: Level0 + { + type="line"; + points[]= + { + + { + "LevelP15", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP15", + {-0.2,0}, + 1 + }, + + { + "LevelP15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP15", + {0.050000001,0}, + 1 + }, + + { + "LevelP15", + {0.2,0}, + 1 + }, + + { + "LevelP15", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_15 + { + type="text"; + source="static"; + text="15"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP15", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_15: VALP_1_15 + { + align="right"; + pos[]= + { + "LevelP15", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM20: Level0 + { + type="line"; + points[]= + { + + { + "LevelM20", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM20", + {-0.2,0}, + 1 + }, + + { + "LevelM20", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {-0.1,0}, + 1 + }, + + { + "LevelM20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.050000001,0}, + 1 + }, + + { + "LevelM20", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.15000001,0}, + 1 + }, + + { + "LevelM20", + {0.2,0}, + 1 + }, + + { + "LevelM20", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_20 + { + type="text"; + source="static"; + text=-20; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM20", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_20: VALM_1_20 + { + align="right"; + pos[]= + { + "LevelM20", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {0.22,-0.035}, + 1 + }; + }; + class LevelP20: Level0 + { + type="line"; + points[]= + { + + { + "LevelP20", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP20", + {-0.2,0}, + 1 + }, + + { + "LevelP20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP20", + {0.050000001,0}, + 1 + }, + + { + "LevelP20", + {0.2,0}, + 1 + }, + + { + "LevelP20", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_20 + { + type="text"; + source="static"; + text="20"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP20", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_20: VALP_1_20 + { + align="right"; + pos[]= + { + "LevelP20", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM25: Level0 + { + type="line"; + points[]= + { + + { + "LevelM25", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM25", + {-0.2,0}, + 1 + }, + + { + "LevelM25", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {-0.1,0}, + 1 + }, + + { + "LevelM25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.050000001,0}, + 1 + }, + + { + "LevelM25", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.15000001,0}, + 1 + }, + + { + "LevelM25", + {0.2,0}, + 1 + }, + + { + "LevelM25", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_25 + { + type="text"; + source="static"; + text=-25; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM25", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_25: VALM_1_25 + { + align="right"; + pos[]= + { + "LevelM25", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {0.22,-0.035}, + 1 + }; + }; + class LevelP25: Level0 + { + type="line"; + points[]= + { + + { + "LevelP25", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP25", + {-0.2,0}, + 1 + }, + + { + "LevelP25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP25", + {0.050000001,0}, + 1 + }, + + { + "LevelP25", + {0.2,0}, + 1 + }, + + { + "LevelP25", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_25 + { + type="text"; + source="static"; + text="25"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP25", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_25: VALP_1_25 + { + align="right"; + pos[]= + { + "LevelP25", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM30: Level0 + { + type="line"; + points[]= + { + + { + "LevelM30", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM30", + {-0.2,0}, + 1 + }, + + { + "LevelM30", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {-0.1,0}, + 1 + }, + + { + "LevelM30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.050000001,0}, + 1 + }, + + { + "LevelM30", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.15000001,0}, + 1 + }, + + { + "LevelM30", + {0.2,0}, + 1 + }, + + { + "LevelM30", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_30 + { + type="text"; + source="static"; + text=-30; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM30", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_30: VALM_1_30 + { + align="right"; + pos[]= + { + "LevelM30", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {0.22,-0.035}, + 1 + }; + }; + class LevelP30: Level0 + { + type="line"; + points[]= + { + + { + "LevelP30", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP30", + {-0.2,0}, + 1 + }, + + { + "LevelP30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP30", + {0.050000001,0}, + 1 + }, + + { + "LevelP30", + {0.2,0}, + 1 + }, + + { + "LevelP30", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_30 + { + type="text"; + source="static"; + text="30"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP30", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_30: VALP_1_30 + { + align="right"; + pos[]= + { + "LevelP30", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM35: Level0 + { + type="line"; + points[]= + { + + { + "LevelM35", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM35", + {-0.2,0}, + 1 + }, + + { + "LevelM35", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {-0.1,0}, + 1 + }, + + { + "LevelM35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.050000001,0}, + 1 + }, + + { + "LevelM35", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.15000001,0}, + 1 + }, + + { + "LevelM35", + {0.2,0}, + 1 + }, + + { + "LevelM35", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_35 + { + type="text"; + source="static"; + text=-35; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM35", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_35: VALM_1_35 + { + align="right"; + pos[]= + { + "LevelM35", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {0.22,-0.035}, + 1 + }; + }; + class LevelP35: Level0 + { + type="line"; + points[]= + { + + { + "LevelP35", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP35", + {-0.2,0}, + 1 + }, + + { + "LevelP35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP35", + {0.050000001,0}, + 1 + }, + + { + "LevelP35", + {0.2,0}, + 1 + }, + + { + "LevelP35", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_35 + { + type="text"; + source="static"; + text="35"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP35", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_35: VALP_1_35 + { + align="right"; + pos[]= + { + "LevelP35", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM40: Level0 + { + type="line"; + points[]= + { + + { + "LevelM40", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM40", + {-0.2,0}, + 1 + }, + + { + "LevelM40", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {-0.1,0}, + 1 + }, + + { + "LevelM40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.050000001,0}, + 1 + }, + + { + "LevelM40", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.15000001,0}, + 1 + }, + + { + "LevelM40", + {0.2,0}, + 1 + }, + + { + "LevelM40", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_40 + { + type="text"; + source="static"; + text=-40; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM40", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_40: VALM_1_40 + { + align="right"; + pos[]= + { + "LevelM40", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {0.22,-0.035}, + 1 + }; + }; + class LevelP40: Level0 + { + type="line"; + points[]= + { + + { + "LevelP40", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP40", + {-0.2,0}, + 1 + }, + + { + "LevelP40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP40", + {0.050000001,0}, + 1 + }, + + { + "LevelP40", + {0.2,0}, + 1 + }, + + { + "LevelP40", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_40 + { + type="text"; + source="static"; + text="40"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP40", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_40: VALP_1_40 + { + align="right"; + pos[]= + { + "LevelP40", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM45: Level0 + { + type="line"; + points[]= + { + + { + "LevelM45", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM45", + {-0.2,0}, + 1 + }, + + { + "LevelM45", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {-0.1,0}, + 1 + }, + + { + "LevelM45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.050000001,0}, + 1 + }, + + { + "LevelM45", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.15000001,0}, + 1 + }, + + { + "LevelM45", + {0.2,0}, + 1 + }, + + { + "LevelM45", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_45 + { + type="text"; + source="static"; + text=-45; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM45", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_45: VALM_1_45 + { + align="right"; + pos[]= + { + "LevelM45", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {0.22,-0.035}, + 1 + }; + }; + class LevelP45: Level0 + { + type="line"; + points[]= + { + + { + "LevelP45", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP45", + {-0.2,0}, + 1 + }, + + { + "LevelP45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP45", + {0.050000001,0}, + 1 + }, + + { + "LevelP45", + {0.2,0}, + 1 + }, + + { + "LevelP45", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_45 + { + type="text"; + source="static"; + text="45"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP45", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_45: VALP_1_45 + { + align="right"; + pos[]= + { + "LevelP45", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM50: Level0 + { + type="line"; + points[]= + { + + { + "LevelM50", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM50", + {-0.2,0}, + 1 + }, + + { + "LevelM50", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {-0.1,0}, + 1 + }, + + { + "LevelM50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.050000001,0}, + 1 + }, + + { + "LevelM50", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.15000001,0}, + 1 + }, + + { + "LevelM50", + {0.2,0}, + 1 + }, + + { + "LevelM50", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_50 + { + type="text"; + source="static"; + text=-50; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelM50", + {-0.23,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {-0.13,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {-0.23,-0.035}, + 1 + }; + }; + class VALM_2_50: VALM_1_50 + { + align="right"; + pos[]= + { + "LevelM50", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {0.31999999,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {0.22,-0.035}, + 1 + }; + }; + class LevelP50: Level0 + { + type="line"; + points[]= + { + + { + "LevelP50", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP50", + {-0.2,0}, + 1 + }, + + { + "LevelP50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP50", + {0.050000001,0}, + 1 + }, + + { + "LevelP50", + {0.2,0}, + 1 + }, + + { + "LevelP50", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_50 + { + type="text"; + source="static"; + text="50"; + align="left"; + scale=1; + sourceScale=57.2958; + pos[]= + { + "LevelP50", + {-0.23,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {-0.13,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {-0.23,0.085000001}, + 1 + }; + }; + class VALP_2_50: VALP_1_50 + { + align="right"; + pos[]= + { + "LevelP50", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {0.31999999,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {0.22,0.085000001}, + 1 + }; + }; + }; + }; + + class Horizont + { + clipTL[]={0,0}; + clipBR[]={1.0,1.0}; + class Dimmed + { + class Level0 + { + type="line"; + points[]= + { + + { + "Level0", + {-0.3,0}, + 1 + }, + + { + "Level0", + {-0.050000001,0}, + 1 + }, + {}, + + { + "Level0", + {0.050000001,0}, + 1 + }, + + { + "Level0", + {0.3,0}, + 1 + } + }; + }; + class VALM_1_0 + { + type="text"; + source="static"; + text=0; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "Level0", + {-0.23,-0.025}, + 1 + }; + right[]= + { + "Level0", + {-0.13,-0.025}, + 1 + }; + down[]= + { + "Level0", + {-0.23,0.025}, + 1 + }; + }; + class VALM_2_0: VALM_1_0 + { + align="right"; + pos[]= + { + "Level0", + {0.22,-0.025}, + 1 + }; + right[]= + { + "Level0", + {0.31999999,-0.025}, + 1 + }; + down[]= + { + "Level0", + {0.22,0.025}, + 1 + }; + }; + + class LevelM5: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM5", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM5", + {-0.2,0}, + 1 + }, + + { + "LevelM5", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {-0.1,0}, + 1 + }, + + { + "LevelM5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.050000001,0}, + 1 + }, + + { + "LevelM5", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM5", + {0.15000001,0}, + 1 + }, + + { + "LevelM5", + {0.2,0}, + 1 + }, + + { + "LevelM5", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_5 + { + type="text"; + source="static"; + text=-5; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM5", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_5: VALM_1_5 + { + align="right"; + pos[]= + { + "LevelM5", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM5", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM5", + {0.22,-0.035}, + 1 + }; + }; + class LevelP5: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP5", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP5", + {-0.2,0}, + 1 + }, + + { + "LevelP5", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP5", + {0.050000001,0}, + 1 + }, + + { + "LevelP5", + {0.2,0}, + 1 + }, + + { + "LevelP5", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_5 + { + type="text"; + source="static"; + text="5"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP5", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_5: VALP_1_5 + { + align="right"; + pos[]= + { + "LevelP5", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP5", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP5", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM10: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM10", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM10", + {-0.2,0}, + 1 + }, + + { + "LevelM10", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {-0.1,0}, + 1 + }, + + { + "LevelM10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.050000001,0}, + 1 + }, + + { + "LevelM10", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM10", + {0.15000001,0}, + 1 + }, + + { + "LevelM10", + {0.2,0}, + 1 + }, + + { + "LevelM10", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_10 + { + type="text"; + source="static"; + text=-10; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM10", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_10: VALM_1_10 + { + align="right"; + pos[]= + { + "LevelM10", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM10", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM10", + {0.22,-0.035}, + 1 + }; + }; + class LevelP10: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP10", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP10", + {-0.2,0}, + 1 + }, + + { + "LevelP10", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP10", + {0.050000001,0}, + 1 + }, + + { + "LevelP10", + {0.2,0}, + 1 + }, + + { + "LevelP10", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_10 + { + type="text"; + source="static"; + text="10"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP10", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_10: VALP_1_10 + { + align="right"; + pos[]= + { + "LevelP10", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP10", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP10", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM15: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM15", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM15", + {-0.2,0}, + 1 + }, + + { + "LevelM15", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {-0.1,0}, + 1 + }, + + { + "LevelM15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.050000001,0}, + 1 + }, + + { + "LevelM15", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM15", + {0.15000001,0}, + 1 + }, + + { + "LevelM15", + {0.2,0}, + 1 + }, + + { + "LevelM15", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_15 + { + type="text"; + source="static"; + text=-15; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM15", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_15: VALM_1_15 + { + align="right"; + pos[]= + { + "LevelM15", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM15", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM15", + {0.22,-0.035}, + 1 + }; + }; + class LevelP15: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP15", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP15", + {-0.2,0}, + 1 + }, + + { + "LevelP15", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP15", + {0.050000001,0}, + 1 + }, + + { + "LevelP15", + {0.2,0}, + 1 + }, + + { + "LevelP15", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_15 + { + type="text"; + source="static"; + text="15"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP15", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_15: VALP_1_15 + { + align="right"; + pos[]= + { + "LevelP15", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP15", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP15", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM20: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM20", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM20", + {-0.2,0}, + 1 + }, + + { + "LevelM20", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {-0.1,0}, + 1 + }, + + { + "LevelM20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.050000001,0}, + 1 + }, + + { + "LevelM20", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM20", + {0.15000001,0}, + 1 + }, + + { + "LevelM20", + {0.2,0}, + 1 + }, + + { + "LevelM20", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_20 + { + type="text"; + source="static"; + text=-20; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM20", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_20: VALM_1_20 + { + align="right"; + pos[]= + { + "LevelM20", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM20", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM20", + {0.22,-0.035}, + 1 + }; + }; + class LevelP20: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP20", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP20", + {-0.2,0}, + 1 + }, + + { + "LevelP20", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP20", + {0.050000001,0}, + 1 + }, + + { + "LevelP20", + {0.2,0}, + 1 + }, + + { + "LevelP20", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_20 + { + type="text"; + source="static"; + text="20"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP20", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_20: VALP_1_20 + { + align="right"; + pos[]= + { + "LevelP20", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP20", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP20", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM25: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM25", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM25", + {-0.2,0}, + 1 + }, + + { + "LevelM25", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {-0.1,0}, + 1 + }, + + { + "LevelM25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.050000001,0}, + 1 + }, + + { + "LevelM25", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM25", + {0.15000001,0}, + 1 + }, + + { + "LevelM25", + {0.2,0}, + 1 + }, + + { + "LevelM25", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_25 + { + type="text"; + source="static"; + text=-25; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM25", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_25: VALM_1_25 + { + align="right"; + pos[]= + { + "LevelM25", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM25", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM25", + {0.22,-0.035}, + 1 + }; + }; + class LevelP25: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP25", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP25", + {-0.2,0}, + 1 + }, + + { + "LevelP25", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP25", + {0.050000001,0}, + 1 + }, + + { + "LevelP25", + {0.2,0}, + 1 + }, + + { + "LevelP25", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_25 + { + type="text"; + source="static"; + text="25"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP25", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_25: VALP_1_25 + { + align="right"; + pos[]= + { + "LevelP25", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP25", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP25", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM30: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM30", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM30", + {-0.2,0}, + 1 + }, + + { + "LevelM30", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {-0.1,0}, + 1 + }, + + { + "LevelM30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.050000001,0}, + 1 + }, + + { + "LevelM30", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM30", + {0.15000001,0}, + 1 + }, + + { + "LevelM30", + {0.2,0}, + 1 + }, + + { + "LevelM30", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_30 + { + type="text"; + source="static"; + text=-30; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM30", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_30: VALM_1_30 + { + align="right"; + pos[]= + { + "LevelM30", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM30", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM30", + {0.22,-0.035}, + 1 + }; + }; + class LevelP30: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP30", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP30", + {-0.2,0}, + 1 + }, + + { + "LevelP30", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP30", + {0.050000001,0}, + 1 + }, + + { + "LevelP30", + {0.2,0}, + 1 + }, + + { + "LevelP30", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_30 + { + type="text"; + source="static"; + text="30"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP30", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_30: VALP_1_30 + { + align="right"; + pos[]= + { + "LevelP30", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP30", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP30", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM35: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM35", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM35", + {-0.2,0}, + 1 + }, + + { + "LevelM35", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {-0.1,0}, + 1 + }, + + { + "LevelM35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.050000001,0}, + 1 + }, + + { + "LevelM35", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM35", + {0.15000001,0}, + 1 + }, + + { + "LevelM35", + {0.2,0}, + 1 + }, + + { + "LevelM35", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_35 + { + type="text"; + source="static"; + text=-35; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM35", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_35: VALM_1_35 + { + align="right"; + pos[]= + { + "LevelM35", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM35", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM35", + {0.22,-0.035}, + 1 + }; + }; + class LevelP35: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP35", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP35", + {-0.2,0}, + 1 + }, + + { + "LevelP35", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP35", + {0.050000001,0}, + 1 + }, + + { + "LevelP35", + {0.2,0}, + 1 + }, + + { + "LevelP35", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_35 + { + type="text"; + source="static"; + text="35"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP35", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_35: VALP_1_35 + { + align="right"; + pos[]= + { + "LevelP35", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP35", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP35", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM40: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM40", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM40", + {-0.2,0}, + 1 + }, + + { + "LevelM40", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {-0.1,0}, + 1 + }, + + { + "LevelM40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.050000001,0}, + 1 + }, + + { + "LevelM40", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM40", + {0.15000001,0}, + 1 + }, + + { + "LevelM40", + {0.2,0}, + 1 + }, + + { + "LevelM40", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_40 + { + type="text"; + source="static"; + text=-40; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM40", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_40: VALM_1_40 + { + align="right"; + pos[]= + { + "LevelM40", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM40", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM40", + {0.22,-0.035}, + 1 + }; + }; + class LevelP40: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP40", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP40", + {-0.2,0}, + 1 + }, + + { + "LevelP40", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP40", + {0.050000001,0}, + 1 + }, + + { + "LevelP40", + {0.2,0}, + 1 + }, + + { + "LevelP40", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_40 + { + type="text"; + source="static"; + text="40"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP40", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_40: VALP_1_40 + { + align="right"; + pos[]= + { + "LevelP40", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP40", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP40", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM45: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM45", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM45", + {-0.2,0}, + 1 + }, + + { + "LevelM45", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {-0.1,0}, + 1 + }, + + { + "LevelM45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.050000001,0}, + 1 + }, + + { + "LevelM45", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM45", + {0.15000001,0}, + 1 + }, + + { + "LevelM45", + {0.2,0}, + 1 + }, + + { + "LevelM45", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_45 + { + type="text"; + source="static"; + text=-45; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM45", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_45: VALM_1_45 + { + align="right"; + pos[]= + { + "LevelM45", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM45", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM45", + {0.22,-0.035}, + 1 + }; + }; + class LevelP45: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP45", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP45", + {-0.2,0}, + 1 + }, + + { + "LevelP45", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP45", + {0.050000001,0}, + 1 + }, + + { + "LevelP45", + {0.2,0}, + 1 + }, + + { + "LevelP45", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_45 + { + type="text"; + source="static"; + text="45"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP45", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_45: VALP_1_45 + { + align="right"; + pos[]= + { + "LevelP45", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP45", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP45", + {0.22,0.085000001}, + 1 + }; + }; + class LevelM50: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelM50", + {-0.2,-0.029999999}, + 1 + }, + + { + "LevelM50", + {-0.2,0}, + 1 + }, + + { + "LevelM50", + {-0.15000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {-0.1,0}, + 1 + }, + + { + "LevelM50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.050000001,0}, + 1 + }, + + { + "LevelM50", + {0.1,0}, + 1 + }, + {}, + + { + "LevelM50", + {0.15000001,0}, + 1 + }, + + { + "LevelM50", + {0.2,0}, + 1 + }, + + { + "LevelM50", + {0.2,-0.029999999}, + 1 + } + }; + }; + class VALM_1_50 + { + type="text"; + source="static"; + text=-50; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelM50", + {-0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {-0.17,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {-0.22,-0.035}, + 1 + }; + }; + class VALM_2_50: VALM_1_50 + { + align="right"; + pos[]= + { + "LevelM50", + {0.22,-0.085000001}, + 1 + }; + right[]= + { + "LevelM50", + {0.27,-0.085000001}, + 1 + }; + down[]= + { + "LevelM50", + {0.22,-0.035}, + 1 + }; + }; + class LevelP50: Level0 + { + type="line"; + width=3.0; + points[]= + { + + { + "LevelP50", + {-0.2,0.029999999}, + 1 + }, + + { + "LevelP50", + {-0.2,0}, + 1 + }, + + { + "LevelP50", + {-0.050000001,0}, + 1 + }, + {}, + + { + "LevelP50", + {0.050000001,0}, + 1 + }, + + { + "LevelP50", + {0.2,0}, + 1 + }, + + { + "LevelP50", + {0.2,0.029999999}, + 1 + } + }; + }; + class VALP_1_50 + { + type="text"; + source="static"; + text="50"; + align="left"; + scale=1; + sourceScale=1; + pos[]= + { + "LevelP50", + {-0.22,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {-0.17,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {-0.22,0.085000001}, + 1 + }; + }; + class VALP_2_50: VALP_1_50 + { + align="right"; + pos[]= + { + "LevelP50", + {0.22,0.035}, + 1 + }; + right[]= + { + "LevelP50", + {0.27,0.035}, + 1 + }; + down[]= + { + "LevelP50", + {0.22,0.085000001}, + 1 + }; + }; + }; + }; + class PlaneMovementCrosshair //fwd + { + clipTL[]={0,1}; + clipBR[]={1,0}; + type="line"; + width=6; + points[]= + { + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","-0.02 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.0099999998 *2 /3","-0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.01732 *2 /3","-0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.02 *2 /3","0 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.01732 *2 /3","0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.0099999998 *2 /3","0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","0.02 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.0099999998 *2 /3","0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.01732 *2 /3","0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.02 *2 /3","0 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.01732 *2 /3","-0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.0099999998 *2 /3","-0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","-0.02 *2 /3"},1}, + + {}, + + {"ForwardVec1",1,"Velocity",1,{0.035,0},1}, + {"ForwardVec1",1,"Velocity",1,{"0.02 *2 /3",0},1}, + + {}, + + {"ForwardVec1",1,"Velocity",1,{-0.035,0},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.02 *2 /3",0},1}, + + {}, + + {"ForwardVec1",1,"Velocity",1,{0,"-0.039999999 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{0,"-0.02 *2 /3"},1} + }; + }; + class RadarTargets //fwd + { + type="radar"; + //pos0[]={0.50,0.38}; + //pos10[]={1.40,1.22}; + ///pos0[]={0.50,0.27}; + ///pos10[]={1.40,1.10}; + pos0[]={0.50,0.32}; + pos10[]={1.382,1.145}; + width=2.5; + points[]= + { + + { + "ForwardVec",1,"RadarContact", + {-0.02,-0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {0.02,-0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {0.02,0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {-0.02,0.02}, + 1 + }, + + { + "ForwardVec",1,"RadarContact", + {-0.02,-0.02}, + 1 + } + }; + }; + class AA_target //fwd + { + condition="AAmissile"; + class Target + { + type = "line"; + points[] = + { + { "TargetSelected",{ 0,"-0.08 + 0.2" },1 }, + { "TargetSelected",{ 0.05,"-0.0696 + 0.2" },1 }, + { "TargetSelected",{ 0.087,"-0.50*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ 0.1,"0 + 0.2"},1 }, + { "TargetSelected",{ 0.087,"0.04 + 0.2" },1 }, + { "TargetSelected",{ 0.05,"+0.87*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ 0,"0.08 + 0.2"},1 }, + { "TargetSelected",{ -0.05,"0.0696 + 0.2"},1 }, + { "TargetSelected",{ -0.087,"+0.50*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ -0.1,"0 + 0.2" },1 }, + { "TargetSelected",{ -0.087,"-0.04 + 0.2" },1 }, + { "TargetSelected",{ -0.05,"-0.87*0.10/(1.5/1.2) + 0.2" },1 }, + { "TargetSelected",{ 0,"-0.08 + 0.2" },1 },{"*/"}, + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + } + }; + }; + }; + class AG_target //fwd + { + condition="ATmissile"; + class Target + { + type = "line"; + points[] = + { + { "TargetSelected",{ 0,"-0.08" },1 }, + { "TargetSelected",{ 0.05,"-0.0696" },1 }, + { "TargetSelected",{ 0.087,"-0.50*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ 0.1,"0"},1 }, + { "TargetSelected",{ 0.087,"0.04" },1 }, + { "TargetSelected",{ 0.05,"+0.87*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ 0,"0.08"},1 }, + { "TargetSelected",{ -0.05,"0.0696"},1 }, + { "TargetSelected",{ -0.087,"+0.50*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ -0.1,"0" },1 }, + { "TargetSelected",{ -0.087,"-0.04" },1 }, + { "TargetSelected",{ -0.05,"-0.87*0.10/(1.5/1.2)" },1 }, + { "TargetSelected",{ 0,"-0.08" },1 }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,0.02}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.02,0}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.01732,-0.0099999998}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {-0.0099999998,-0.01732}, + 1 + }, + + { + "ForwardVec",1,"TargetSelected",1, + {0,-0.02}, + 1 + }, + + + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.02 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.01 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.02 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.01 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.02,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.01,0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.02,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.01,0 },1 } + }; + }; + }; + class GUN_target //fwd + { + condition="mgun"; + class Target + { + type="line"; + width=4; + points[]= + { + //////////////////////////////////////////////// UP + + { "ForwardVec",1,"target",{ 0,-0.060 },1 }, + { "ForwardVec",1,"target",{ 0,-0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.050 },1 }, + { "ForwardVec",1,"target",{ 0,-0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.040 },1 }, + { "ForwardVec",1,"target",{ 0,-0.035 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.005 },1 }, + {}, + //////////////////////////////////////////////// center + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + {}, + /////////////////////////////////////////////// DOWN + + { "ForwardVec",1,"target",{ 0,0.060 },1 }, + { "ForwardVec",1,"target",{ 0,0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.050 },1 }, + { "ForwardVec",1,"target",{ 0,0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.040 },1 }, + { "ForwardVec",1,"target",{ 0,0.035 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.005 },1 }, + {}, + /////////////////////////////////////////////// LEFT + + { "ForwardVec",1,"target",{ -0.060, 0 },1 }, + { "ForwardVec",1,"target",{ -0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.050, 0 },1 }, + { "ForwardVec",1,"target",{ -0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.040, 0 },1 }, + { "ForwardVec",1,"target",{ -0.035, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.005, 0 },1 }, + {}, + /////////////////////////////////////////////// RIGHT + + { "ForwardVec",1,"target",{ 0.060, 0 },1 }, + { "ForwardVec",1,"target",{ 0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.050, 0 },1 }, + { "ForwardVec",1,"target",{ 0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.040, 0 },1 }, + { "ForwardVec",1,"target",{ 0.035, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.005, 0 },1 }, + {} + }; + }; + }; + class Rocket_target //fwd + { + condition="rocket"; + class Target + { + type="line"; + width=4; + points[]= + { + //////////////////////////////////////////////// UP + + { "ForwardVec",1,"target",{ 0,-0.060 },1 }, + { "ForwardVec",1,"target",{ 0,-0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.050 },1 }, + { "ForwardVec",1,"target",{ 0,-0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,-0.040 },1 }, + { "ForwardVec",1,"target",{ 0,-0.035 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,-0.005 },1 }, + {}, + //////////////////////////////////////////////// center + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0 },1 }, + {}, + /////////////////////////////////////////////// DOWN + + { "ForwardVec",1,"target",{ 0,0.060 },1 }, + { "ForwardVec",1,"target",{ 0,0.055 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.050 },1 }, + { "ForwardVec",1,"target",{ 0,0.045 },1 }, + {}, + { "ForwardVec",1,"target",{ 0,0.040 },1 }, + { "ForwardVec",1,"target",{ 0,0.035 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.030 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.025 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.020 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.015 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.010 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0,0.005 },1 }, + {}, + /////////////////////////////////////////////// LEFT + + { "ForwardVec",1,"target",{ -0.060, 0 },1 }, + { "ForwardVec",1,"target",{ -0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.050, 0 },1 }, + { "ForwardVec",1,"target",{ -0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ -0.040, 0 },1 }, + { "ForwardVec",1,"target",{ -0.035, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ -0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ -0.005, 0 },1 }, + {}, + /////////////////////////////////////////////// RIGHT + + { "ForwardVec",1,"target",{ 0.060, 0 },1 }, + { "ForwardVec",1,"target",{ 0.055, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.050, 0 },1 }, + { "ForwardVec",1,"target",{ 0.045, 0 },1 }, + {}, + { "ForwardVec",1,"target",{ 0.040, 0 },1 }, + { "ForwardVec",1,"target",{ 0.035, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.030, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.025, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.020, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.015, 0 },1 }, + {}, + { "ForwardVec",1,"TargetSelected",1,{ 0.010, 0 },1 }, + { "ForwardVec",1,"TargetSelected",1,{ 0.005, 0 },1 }, + {} + }; + }; + }; + class GunCross //fwd + { + type="group"; + condition = "mgun"; + class CCIP_circle + { + type = "line"; + width = 5.0; + points[] = + { + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.2000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "1.2000 * 0.06","0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","-1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ "-0.0000 * 0.06","1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ 0.005,0 },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ -0.005,0 },1 }, + { }, + { "ForwardVec",1,"WeaponAimGUN",1,{ 0,0.005 },1 }, + { "ForwardVec",1,"WeaponAimGUN",1,{ 0,-0.005 },1 } + }; + }; + }; + class RocketCross //fwd + { + type="group"; + condition="rocket"; + class CCIP_circle + { + type = "line"; + width = 5.0; + points[] = + { + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.1736 * 0.06","-0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.3420 * 0.06","-0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.5000 * 0.06","-0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.6428 * 0.06","-0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.7660 * 0.06","-0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.8660 * 0.06","-0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9397 * 0.06","-0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9877 * 0.06","-0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.0000 * 0.06","-0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.2000 * 0.06","-0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.2000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.1736 * 0.06","0.9877 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.3420 * 0.06","0.9397 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.5000 * 0.06","0.8660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.6428 * 0.06","0.7660 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.7660 * 0.06","0.6428 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.8660 * 0.06","0.5000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9397 * 0.06","0.3420 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "0.9877 * 0.06","0.1736 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.0000 * 0.06","0.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "1.2000 * 0.06","0.0000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","-1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","-1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","1.0000 * 0.06" },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ "-0.0000 * 0.06","1.2000 * 0.06" },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ 0.005,0 },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ -0.005,0 },1 }, + { }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ 0,0.005 },1 }, + { "ForwardVec",1,"WeaponAimROCKET",1,{ 0,-0.005 },1 } + }; + }; + }; + class AC_Centerline //fwd + { + type="group"; + condition="on"; + class RockCross + { + type = "line"; + width=4; + points[] = + { + {"ForwardVec",1,{" -0.006 + 0.5" , "0 + 0.32" },1}, + {"ForwardVec",1,{" 0.006 + 0.5" , "0 + 0.32" },1}, + { }, + {"ForwardVec",1,{" -0.0 + 0.5" , "0.006 + 0.32" },1}, + {"ForwardVec",1,{" 0.0 + 0.5" , "-0.006 + 0.32" },1} + }; + }; + }; + class ATMissileTOFGroup + { + condition="ATmissile"; + type="group"; + class TOFtext + { + type="text"; + align="right"; + source="static"; + text="TOF="; + scale=1; + pos[]= + { + {0.15,0.62}, + 1 + }; + right[]= + { + {0.19,0.62}, + 1 + }; + down[]= + { + {0.15,0.66}, + 1 + }; + }; + class TOFnumber + { + type="text"; + source="targetDist"; + sourcescale = 0.0025; + align="right"; + scale=1; + pos[]= + { + {0.23,0.62}, + 1 + }; + right[]= + { + {0.27,0.62}, + 1 + }; + down[]= + { + {0.23,0.66}, + 1 + }; + }; + }; + class BombTOFGroup + { + condition="Bomb"; + type="group"; + class Crosshairs + { + type = "line"; + width=7; + points[] = + { + {{"0 + 0.5" , "-0.02 + 0.5"},1 }, + {{"0.0099999998 + 0.5" , "-0.01732 + 0.5"},1}, + {{"0.01732 + 0.5" , "-0.0099999998 + 0.5"},1}, + {{"0.02 + 0.5" , "0 + 0.5"},1}, + {{"0.01732 + 0.5" , "0.0099999998 + 0.5"},1}, + {{"0.0099999998 + 0.5" , "0.01732 + 0.5"},1}, + {{"0 + 0.5" , "0.02 + 0.5"},1}, + {{"-0.0099999998 + 0.5" , "0.01732 + 0.5"},1}, + {{"-0.01732 + 0.5" , "0.0099999998 + 0.5"},1}, + {{"-0.02 + 0.5" , "0 + 0.5"},1}, + {{"-0.01732 + 0.5" , "-0.0099999998 + 0.5"},1}, + {{"-0.0099999998 + 0.5" , "-0.01732 + 0.5"},1}, + {{"0 + 0.5" , "-0.02 + 0.5"},1}, + { }, + {{" -0.005 + 0.5" , "0 + 0.5" },1}, + {{" 0.005 + 0.5" , "0 + 0.5" },1}, + { }, + {{" -0.00 + 0.5" , "-0.005 + 0.5" },1}, + {{" 0.00 + 0.5" , "0.005 + 0.5" },1} + + }; + }; + class Target_Line_LGB + { + type = "line"; + width=5; + points[] = + { + + { + "TargetSelected", + {0,0}, + 1 + }, + + { + "Velocity", + {0,0}, + 1 + }, + + + }; + }; + class Target_SPI_LGB + { + type = "line"; + width=3; + points[] = + { + + { + "TargetSelected", + {0,0}, + 1 + }, + + { + "TargetSelected", + {0,-0.05}, + 1 + }, + + + }; + }; + class TOFtext + { + type="text"; + align="right"; + source="static"; + text="TOF="; + scale=1; + pos[]= + { + {0.15,0.62}, + 1 + }; + right[]= + { + {0.19,0.62}, + 1 + }; + down[]= + { + {0.15,0.66}, + 1 + }; + }; + class TOFnumber + { + type="text"; + source="altitudeASL"; + sourcescale = 0.013; + align="right"; + scale=1; + pos[]= + { + {0.23,0.62}, + 1 + }; + right[]= + { + {0.27,0.62}, + 1 + }; + down[]= + { + {0.23,0.66}, + 1 + }; + }; + }; + class ILS_Bars //fwd + { + condition = "ils"; + class Glideslope + { + clipTL[] = {0.0,0.0}; + clipBR[] = {1.0,1.0}; + class ILS + { + type = "line"; + width=2.5; + points[] = + { + { "ForwardVec",1,"ILS_W",1,{ -0.2,0 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0.2,0 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ 0,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ 0.1,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0.1,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ 0.2,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ 0.2,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ -0.1,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ -0.1,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_W",1,{ -0.2,0.02 },1 }, + { "ForwardVec",1,"ILS_W",1,{ -0.2,-0.02 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0,-0.2 },1 }, + { "ForwardVec",1,"ILS_H",1,{ 0,0.2 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,0 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,0 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,0.1 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,0.1 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,0.2 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,0.2 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,-0.1 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,-0.1 },1 }, + { }, + { "ForwardVec",1,"ILS_H",1,{ 0.02,-0.2 },1 }, + { "ForwardVec",1,"ILS_H",1,{ -0.02,-0.2 },1 }, + { } + }; + }; + }; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_comanche.hpp b/TO_MERGE/agm/Aircraft/mfd_comanche.hpp new file mode 100644 index 0000000000..087c0a7988 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_comanche.hpp @@ -0,0 +1,1310 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.54}; + }; + + class GunnerAim { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.011,0.0035}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + + class LevelP5: Level0 { + angle = 5; + }; + + class LevelM5: Level0 { + angle = -5; + }; + + class LevelP10: Level0 { + angle = 10; + }; + + class LevelM10: Level0 { + angle = -10; + }; + + class LevelP15: Level0 { + angle = 15; + }; + + class LevelM15: Level0 { + angle = -15; + }; + + class LevelP20: Level0 { + angle = 20; + }; + + class LevelM20: Level0 { + angle = -20; + }; + + class LevelP25: Level0 { + angle = 25; + }; + + class LevelM25: Level0 { + angle = -25; + }; + + class LevelP30: Level0 { + angle = 30; + }; + + class LevelM30: Level0 { + angle = -30; + }; + + class LevelP35: Level0 { + angle = 35; + }; + + class LevelM35: Level0 { + angle = -35; + }; + + class LevelP40: Level0 { + angle = 40; + }; + + class LevelM40: Level0 { + angle = -40; + }; + + class LevelP45: Level0 { + angle = 45; + }; + + class LevelM45: Level0 { + angle = -45; + }; + + class LevelP50: Level0 { + angle = 50; + }; + + class LevelM50: Level0 { + angle = -50; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.38,0},1},{}, + {"Level0",{-0.37,0},1}, + {"Level0",{-0.33,0},1},{}, + {"Level0",{-0.32,0},1}, + {"Level0",{-0.28,0},1},{}, + {"Level0",{-0.27,0},1}, + {"Level0",{-0.23,0},1},{}, + {"Level0",{-0.22,0},1}, + {"Level0",{-0.18,0},1},{}, + {"Level0",{-0.17,0},1}, + {"Level0",{-0.13,0},1},{}, + {"Level0",{-0.12,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.38,0},1},{}, + {"Level0",{0.37,0},1}, + {"Level0",{0.33,0},1},{}, + {"Level0",{0.32,0},1}, + {"Level0",{0.28,0},1},{}, + {"Level0",{0.27,0},1}, + {"Level0",{0.23,0},1},{}, + {"Level0",{0.22,0},1}, + {"Level0",{0.18,0},1},{}, + {"Level0",{0.17,0},1}, + {"Level0",{0.13,0},1},{}, + {"Level0",{0.12,0},1}, + {"Level0",{0.08,0},1} + }; + }; + + class LevelM10: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM10",{-0.2,-0.03},1}, + {"LevelM10",{-0.2,0},1}, + {"LevelM10",{-0.15,0},1},{}, + {"LevelM10",{-0.1,0},1}, + {"LevelM10",{-0.05,0},1},{}, + {"LevelM10",{0.05,0},1}, + {"LevelM10",{0.1,0},1},{}, + {"LevelM10",{0.15,0},1}, + {"LevelM10",{0.2,0},1}, + {"LevelM10",{0.2,-0.03},1} + }; + }; + + class VALM_1_10 { + type = "text"; + source = "static"; + text = -10; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM10",{-0.22,-0.085},1}; + right[] = {"LevelM10",{-0.17,-0.085},1}; + down[] = {"LevelM10",{-0.22,-0.035},1}; + }; + + class VALM_2_10: VALM_1_10 { + align = "right"; + pos[] = {"LevelM10",{0.22,-0.085},1}; + right[] = {"LevelM10",{0.27,-0.085},1}; + down[] = {"LevelM10",{0.22,-0.035},1}; + }; + + class LevelP10: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP10",{-0.2,0.03},1}, + {"LevelP10",{-0.2,0},1}, + {"LevelP10",{-0.05,0},1},{}, + {"LevelP10",{0.05,0},1}, + {"LevelP10",{0.2,0},1}, + {"LevelP10",{0.2,0.03},1} + }; + }; + + class VALP_1_10 { + type = "text"; + source = "static"; + text = "10"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP10",{-0.22,0.035},1}; + right[] = {"LevelP10",{-0.17,0.035},1}; + down[] = {"LevelP10",{-0.22,0.085},1}; + }; + + class VALP_2_10: VALP_1_10 { + align = "right"; + pos[] = {"LevelP10",{0.22,0.035},1}; + right[] = {"LevelP10",{0.27,0.035},1}; + down[] = {"LevelP10",{0.22,0.085},1}; + }; + + class LevelM20: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM20",{-0.2,-0.03},1}, + {"LevelM20",{-0.2,0},1}, + {"LevelM20",{-0.15,0},1},{}, + {"LevelM20",{-0.1,0},1}, + {"LevelM20",{-0.05,0},1},{}, + {"LevelM20",{0.05,0},1}, + {"LevelM20",{0.1,0},1},{}, + {"LevelM20",{0.15,0},1}, + {"LevelM20",{0.2,0},1}, + {"LevelM20",{0.2,-0.03},1} + }; + }; + + class VALM_1_20 { + type = "text"; + source = "static"; + text = -20; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM20",{-0.22,-0.085},1}; + right[] = {"LevelM20",{-0.17,-0.085},1}; + down[] = {"LevelM20",{-0.22,-0.035},1}; + }; + + class VALM_2_20: VALM_1_20 { + align = "right"; + pos[] = {"LevelM20",{0.22,-0.085},1}; + right[] = {"LevelM20",{0.27,-0.085},1}; + down[] = {"LevelM20",{0.22,-0.035},1}; + }; + + class LevelP20: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP20",{-0.2,0.03},1}, + {"LevelP20",{-0.2,0},1}, + {"LevelP20",{-0.05,0},1},{}, + {"LevelP20",{0.05,0},1}, + {"LevelP20",{0.2,0},1}, + {"LevelP20",{0.2,0.03},1} + }; + }; + + class VALP_1_20 { + type = "text"; + source = "static"; + text = "20"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP20",{-0.22,0.035},1}; + right[] = {"LevelP20",{-0.17,0.035},1}; + down[] = {"LevelP20",{-0.22,0.085},1}; + }; + + class VALP_2_20: VALP_1_20 { + align = "right"; + pos[] = {"LevelP20",{0.22,0.035},1}; + right[] = {"LevelP20",{0.27,0.035},1}; + down[] = {"LevelP20",{0.22,0.085},1}; + }; + + class LevelM30: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM30",{-0.2,-0.03},1}, + {"LevelM30",{-0.2,0},1}, + {"LevelM30",{-0.15,0},1},{}, + {"LevelM30",{-0.1,0},1}, + {"LevelM30",{-0.05,0},1},{}, + {"LevelM30",{0.05,0},1}, + {"LevelM30",{0.1,0},1},{}, + {"LevelM30",{0.15,0},1}, + {"LevelM30",{0.2,0},1}, + {"LevelM30",{0.2,-0.03},1} + }; + }; + + class VALM_1_30 { + type = "text"; + source = "static"; + text = -30; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM30",{-0.22,-0.085},1}; + right[] = {"LevelM30",{-0.17,-0.085},1}; + down[] = {"LevelM30",{-0.22,-0.035},1}; + }; + + class VALM_2_30: VALM_1_30 { + align = "right"; + pos[] = {"LevelM30",{0.22,-0.085},1}; + right[] = {"LevelM30",{0.27,-0.085},1}; + down[] = {"LevelM30",{0.22,-0.035},1}; + }; + + class LevelP30: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP30",{-0.2,0.03},1}, + {"LevelP30",{-0.2,0},1}, + {"LevelP30",{-0.05,0},1},{}, + {"LevelP30",{0.05,0},1}, + {"LevelP30",{0.2,0},1}, + {"LevelP30",{0.2,0.03},1} + }; + }; + + class VALP_1_30 { + type = "text"; + source = "static"; + text = "30"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP30",{-0.22,0.035},1}; + right[] = {"LevelP30",{-0.17,0.035},1}; + down[] = {"LevelP30",{-0.22,0.085},1}; + }; + + class VALP_2_30: VALP_1_30 { + align = "right"; + pos[] = {"LevelP30",{0.22,0.035},1}; + right[] = {"LevelP30",{0.27,0.035},1}; + down[] = {"LevelP30",{0.22,0.085},1}; + }; + + class LevelM40: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM40",{-0.2,-0.03},1}, + {"LevelM40",{-0.2,0},1}, + {"LevelM40",{-0.15,0},1},{}, + {"LevelM40",{-0.1,0},1}, + {"LevelM40",{-0.05,0},1},{}, + {"LevelM40",{0.05,0},1}, + {"LevelM40",{0.1,0},1},{}, + {"LevelM40",{0.15,0},1}, + {"LevelM40",{0.2,0},1}, + {"LevelM40",{0.2,-0.03},1} + }; + }; + + class VALM_1_40 { + type = "text"; + source = "static"; + text = -40; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM40",{-0.22,-0.085},1}; + right[] = {"LevelM40",{-0.17,-0.085},1}; + down[] = {"LevelM40",{-0.22,-0.035},1}; + }; + + class VALM_2_40: VALM_1_40 { + align = "right"; + pos[] = {"LevelM40",{0.22,-0.085},1}; + right[] = {"LevelM40",{0.27,-0.085},1}; + down[] = {"LevelM40",{0.22,-0.035},1}; + }; + + class LevelP40: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP40",{-0.2,0.03},1}, + {"LevelP40",{-0.2,0},1}, + {"LevelP40",{-0.05,0},1},{}, + {"LevelP40",{0.05,0},1}, + {"LevelP40",{0.2,0},1}, + {"LevelP40",{0.2,0.03},1} + }; + }; + + class VALP_1_40 { + type = "text"; + source = "static"; + text = "40"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP40",{-0.22,0.035},1}; + right[] = {"LevelP40",{-0.17,0.035},1}; + down[] = {"LevelP40",{-0.22,0.085},1}; + }; + + class VALP_2_40: VALP_1_40 { + align = "right"; + pos[] = {"LevelP40",{0.22,0.035},1}; + right[] = {"LevelP40",{0.27,0.035},1}; + down[] = {"LevelP40",{0.22,0.085},1}; + }; + + class LevelM50: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM50",{-0.2,-0.03},1}, + {"LevelM50",{-0.2,0},1}, + {"LevelM50",{-0.15,0},1},{}, + {"LevelM50",{-0.1,0},1}, + {"LevelM50",{-0.05,0},1},{}, + {"LevelM50",{0.05,0},1}, + {"LevelM50",{0.1,0},1},{}, + {"LevelM50",{0.15,0},1}, + {"LevelM50",{0.2,0},1}, + {"LevelM50",{0.2,-0.03},1} + }; + }; + + class VALM_1_50 { + type = "text"; + source = "static"; + text = -50; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM50",{-0.22,-0.085},1}; + right[] = {"LevelM50",{-0.17,-0.085},1}; + down[] = {"LevelM50",{-0.22,-0.035},1}; + }; + + class VALM_2_50: VALM_1_50 { + align = "right"; + pos[] = {"LevelM50",{0.22,-0.085},1}; + right[] = {"LevelM50",{0.27,-0.085},1}; + down[] = {"LevelM50",{0.22,-0.035},1}; + }; + + class LevelP50: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP50",{-0.2,0.03},1}, + {"LevelP50",{-0.2,0},1}, + {"LevelP50",{-0.05,0},1},{}, + {"LevelP50",{0.05,0},1}, + {"LevelP50",{0.2,0},1}, + {"LevelP50",{0.2,0.03},1} + }; + }; + + class VALP_1_50 { + type = "text"; + source = "static"; + text = "50"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP50",{-0.22,0.035},1}; + right[] = {"LevelP50",{-0.17,0.035},1}; + down[] = {"LevelP50",{-0.22,0.085},1}; + }; + + class VALP_2_50: VALP_1_50 { + align = "right"; + pos[] = {"LevelP50",{0.22,0.035},1}; + right[] = {"LevelP50",{0.27,0.035},1}; + down[] = {"LevelP50",{0.22,0.085},1}; + }; + }; + }; + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = { + {"HorizonBankRot",{0,0.25},1}, + {"HorizonBankRot",{-0.01,0.23},1}, + {"HorizonBankRot",{0.01,0.23},1}, + {"HorizonBankRot",{0,0.25},1} + }; + }; + + class Static { + clipTL[] = {0,1}; + clipBR[] = {1,0}; + type = "line"; + width = 5; + points[] = { + {{"0.5-0.1","0.9-0.04"},1}, + {{"0.5-0.1","0.9+0.04"},1}, + {{"0.5+0.1","0.9+0.04"},1}, + {{"0.5+0.1","0.9-0.04"},1}, + {{"0.5-0.1","0.9-0.04"},1},{}, + {{"0.5-0.1",0.9},1}, + {{"0.5-0.092",0.9},1},{}, + {{"0.5+0.1",0.9},1}, + {{"0.5+0.092",0.9},1},{}, + {{0.5,"0.9-0.04"},1}, + {{0.5,"0.9-0.032"},1},{}, + {{0.5,"0.9+0.04"},1}, + {{0.5,"0.9+0.032"},1},{} + }; + }; + + class Centerline { + type = "line"; + width = 5; + points[] = { + {{0.5,0.48},1}, + {{0.5,0.45},1},{}, + {{0.5,0.52},1}, + {{0.5,0.55},1},{}, + {{0.48,0.5},1}, + {{0.45,0.5},1},{}, + {{0.52,0.5},1}, + {{0.55,0.5},1}, + {} + }; + }; + + class Gunner { + type = "line"; + width = 6; + points[] = { + {"GunnerAim",{"0.5-0.015","0.9-0.008"},1}, + {"GunnerAim",{"0.5-0.015","0.9+0.008"},1}, + {"GunnerAim",{"0.5+0.015","0.9+0.008"},1}, + {"GunnerAim",{"0.5+0.015","0.9-0.008"},1}, + {"GunnerAim",{"0.5-0.015","0.9-0.008"},1} + }; + }; + + class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.61,0.86},1}; + right[] = {{0.65,0.86},1}; + down[] = {{0.61,0.9},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.61,0.89},1}; + right[] = {{0.65,0.89},1}; + down[] = {{0.61,0.93},1}; + }; + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class GearGroup { + type = "group"; + condition = "ils"; + class GearText { + type = "text"; + source = "static"; + text = "GEAR"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.155"},1}; + right[] = {{0.07,"0.53 + 0.155"},1}; + down[] = {{0.03,"0.53 + 0.195"},1}; + }; + }; + + class ATMissileTOFGroup { + condition = "ATmissile"; + type = "group"; + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF = "; + scale = 1; + pos[] = {{0.61,0.92},1}; + right[] = {{0.65,0.92},1}; + down[] = {{0.61,0.96},1}; + }; + + class TOFnumber { + type = "text"; + source = "targetDist"; + sourcescale = 0.0025; + align = "right"; + scale = 1; + pos[] = {{0.69,0.92},1}; + right[] = {{0.73,0.92},1}; + down[] = {{0.69,0.96},1}; + }; + }; + + class LaserTOFGroup { + condition = "Bomb"; + type = "group"; + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF = "; + scale = 1; + pos[] = {{0.61,0.92},1}; + right[] = {{0.65,0.92},1}; + down[] = {{0.61,0.96},1}; + }; + + class TOFnumber { + type = "text"; + source = "targetDist"; + sourcescale = 0.0025; + align = "right"; + scale = 1; + pos[] = {{0.69,0.92},1}; + right[] = {{0.73,0.92},1}; + down[] = {{0.69,0.96},1}; + }; + }; + + class RocketTOFGroup { + condition = "Rocket"; + type = "group"; + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF = "; + scale = 1; + pos[] = {{0.61,0.92},1}; + right[] = {{0.65,0.92},1}; + down[] = {{0.61,0.96},1}; + }; + + class TOFnumber { + type = "text"; + source = "targetDist"; + sourcescale = 0.0025; + align = "right"; + scale = 1; + pos[] = {{0.69,0.92},1}; + right[] = {{0.73,0.92},1}; + down[] = {{0.69,0.96},1}; + }; + }; + + class RangeNumber { + type = "text"; + source = "targetDist"; + sourceScale = 1; + align = "left"; + scale = 1; + pos[] = {{0.39,0.89},1}; + right[] = {{0.43,0.89},1}; + down[] = {{0.39,0.93},1}; + }; + + class RangeText { + type = "text"; + source = "static"; + text = "RNG"; + align = "left"; + scale = 1; + pos[] = {{0.39,0.86},1}; + right[] = {{0.43,0.86},1}; + down[] = {{0.39,0.9},1}; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 290; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = { + {{0.98,0.2},1}, + {{1,0.2},1},{}, + {{0.93,0.2},1}, + {{0.95,0.2},1},{}, + {{0.98,0.35},1}, + {{1,0.35},1},{}, + {{0.93,0.35},1}, + {{0.95,0.35},1},{}, + {{0.94,0.38},1}, + {{0.95,0.38},1},{}, + {{0.94,0.41},1}, + {{0.95,0.41},1},{}, + {{0.94,0.44},1}, + {{0.95,0.44},1},{}, + {{0.94,0.47},1}, + {{0.95,0.47},1},{}, + {{0.98,0.5},1}, + {{1,0.5},1},{}, + {{0.93,0.5},1}, + {{0.95,0.5},1},{}, + {{0.94,0.53},1}, + {{0.95,0.53},1},{}, + {{0.94,0.56},1}, + {{0.95,0.56},1},{}, + {{0.94,0.59},1}, + {{0.95,0.59},1},{}, + {{0.94,0.62},1}, + {{0.95,0.62},1},{}, + {{0.98,0.65},1}, + {{1,0.65},1},{}, + {{0.93,0.65},1}, + {{0.95,0.65},1},{}, + {{0.99,0.68},1}, + {{0.98,0.68},1},{}, + {{0.99,0.71},1}, + {{0.98,0.71},1},{}, + {{0.99,0.74},1}, + {{0.98,0.74},1},{}, + {{0.99,0.77},1}, + {{0.98,0.77},1},{}, + {{0.98,0.8},1}, + {{1,0.8},1},{}, + {{0.93,0.8},1}, + {{0.95,0.8},1},{} + }; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + hideValue = 201; + class radarbanda { + type = "line"; + width = 17; + points[] = { + {"RadarAltitudeBone",{0,0},1}, + {"RadarAltitudeBone",{0,0.6},1} + }; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = { + {"VspeedBone",{-0.01,0},1}, + {"VspeedBone",{-0.025,-0.015},1}, + {"VspeedBone",{-0.025,0.015},1}, + {"VspeedBone",{-0.01,0},1},{} + }; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = { + {{0.44,0.005},1}, + {{"0.44 + 0.12",0.005},1}, + {{"0.44 + 0.12","0.005 + 0.06"},1}, + {{0.44,"0.005 + 0.06"},1}, + {{0.44,0.005},1} + }; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = {{{"0.5","0.128 + 0.03"},1},{{0.5,0.128},1}}; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.119,"0.0 + 0.065"}; + right[] = {0.159,"0.0 + 0.065"}; + down[] = {0.119,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.03,0.9},1}; + right[] = {{0.07,0.9},1}; + down[] = {{0.03,0.94},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.1,0.9},1}; + right[] = {{0.14,0.9},1}; + down[] = {{0.1,0.94},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class WeaponAim1 { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.253,0.23}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = { + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,0.02},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,-0.04},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1} + }; + }; + + class GunCross { + condition = "mgun"; + width = 6; + class Circle { + type = "line"; + width = 6; + points[] = { + {"ForwardVec",1,"WeaponAim",1,{0,-0.05},1}, + {"ForwardVec",1,"WeaponAim",1,{0,-0.015},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0,0.015},1}, + {"ForwardVec",1,"WeaponAim",1,{0,0.05},1},{}, + {"ForwardVec",1,"WeaponAim",1,{-0.05,0},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.015,0},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0.015,0},1}, + {"ForwardVec",1,"WeaponAim",1,{0.05,0},1},{} + }; + }; + }; + + class RocketCross { + condition = "rocket"; + width = 6; + class Circle { + type = "line"; + width = 6; + points[] = { + {"ForwardVec",1,"WeaponAim",1,{-0.05,-0.08},1}, + {"ForwardVec",1,"WeaponAim",1,{0.05,-0.08},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0,-0.08},1}, + {"ForwardVec",1,"WeaponAim",1,{0,0.08},1},{}, + {"ForwardVec",1,"WeaponAim",1,{-0.05,0.08},1}, + {"ForwardVec",1,"WeaponAim",1,{0.05,0.08},1},{} + }; + }; + }; + + class AT_Aim { + condition = "ATmissile"; + width = 2; + class Circle { + type = "line"; + width = 2; + points[] = { + {"ForwardVec",1,"WeaponAim",1,{-0.15,-0.15},1}, + {"ForwardVec",1,"WeaponAim",1,{0.15,-0.15},1}, + {"ForwardVec",1,"WeaponAim",1,{0.15,0.15},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.15,0.15},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.15,-0.15},1} + }; + }; + }; + + class AA_aim { + condition = "AAmissile"; + class Circle { + type = "line"; + width = 2.5; + points[] = { + {"ForwardVec",1,"WeaponAim",1,{"0 / 4","-0.248559 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0434 / 4","-0.244781 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0855 / 4","-0.233571 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.125 / 4","-0.215252 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1607 / 4","-0.190396 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1915 / 4","-0.159774 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2165 / 4","-0.12428 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.234925 / 4","-0.0850072 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2462 / 4","-0.0431499 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.25 / 4","0 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2462 / 4","0.0431499 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.234925 / 4","0.0850072 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2165 / 4","0.12428 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1915 / 4","0.159774 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1607 / 4","0.190396 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.125 / 4","0.215252 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0855 / 4","0.233571 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0434 / 4","0.244781 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0 / 4","0.248559 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0434 / 4","0.244781 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0855 / 4","0.233571 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.125 / 4","0.215252 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1607 / 4","0.190396 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1915 / 4","0.159774 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2165 / 4","0.12428 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.234925 / 4","0.0850072 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2462 / 4","0.0431499 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.25 / 4","0 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2462 / 4","-0.0431499 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.234925 / 4","-0.0850072 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2165 / 4","-0.12428 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1915 / 4","-0.159774 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1607 / 4","-0.190396 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.125 / 4","-0.215252 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0855 / 4","-0.233571 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0434 / 4","-0.244781 / 4"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0 / 4","-0.248559 / 4"},1},{}, + {"ForwardVec",1,"WeaponAim",1,{"0 / 2","-0.248559 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0434 / 2","-0.244781 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0855 / 2","-0.233571 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.125 / 2","-0.215252 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1607 / 2","-0.190396 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1915 / 2","-0.159774 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2165 / 2","-0.12428 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.234925 / 2","-0.0850072 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2462 / 2","-0.0431499 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.25 / 2","0 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2462 / 2","0.0431499 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.234925 / 2","0.0850072 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.2165 / 2","0.12428 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1915 / 2","0.159774 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.1607 / 2","0.190396 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.125 / 2","0.215252 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0855 / 2","0.233571 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0.0434 / 2","0.244781 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0 / 2","0.248559 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0434 / 2","0.244781 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0855 / 2","0.233571 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.125 / 2","0.215252 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1607 / 2","0.190396 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1915 / 2","0.159774 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2165 / 2","0.12428 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.234925 / 2","0.0850072 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2462 / 2","0.0431499 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.25 / 2","0 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2462 / 2","-0.0431499 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.234925 / 2","-0.0850072 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.2165 / 2","-0.12428 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1915 / 2","-0.159774 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.1607 / 2","-0.190396 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.125 / 2","-0.215252 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0855 / 2","-0.233571 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"-0.0434 / 2","-0.244781 / 2"},1}, + {"ForwardVec",1,"WeaponAim",1,{"0 / 2","-0.248559 / 2"},1} + }; + }; + }; + + class TargetACQ { + type = "line"; + width = 2; + points[] = { + {"ForwardVec",1,"target",{0,-0.060},1}, + {"ForwardVec",1,"target",{0,-0.055},1},{}, + {"ForwardVec",1,"target",{0,-0.050},1}, + {"ForwardVec",1,"target",{0,-0.045},1},{}, + {"ForwardVec",1,"target",{0,-0.040},1}, + {"ForwardVec",1,"target",{0,-0.035},1},{}, + {"ForwardVec",1,"target",{0,-0.030},1}, + {"ForwardVec",1,"target",{0,-0.025},1},{}, + {"ForwardVec",1,"target",{0,-0.020},1}, + {"ForwardVec",1,"target",{0,-0.015},1},{}, + {"ForwardVec",1,"target",{0,-0.010},1}, + {"ForwardVec",1,"target",{0,-0.005},1},{}, + {"ForwardVec",1,"target",{0,0},1}, + {"ForwardVec",1,"target",{0,0},1},{}, + {"ForwardVec",1,"target",{0,0.060},1}, + {"ForwardVec",1,"target",{0,0.055},1},{}, + {"ForwardVec",1,"target",{0,0.050},1}, + {"ForwardVec",1,"target",{0,0.045},1},{}, + {"ForwardVec",1,"target",{0,0.040},1}, + {"ForwardVec",1,"target",{0,0.035},1},{}, + {"ForwardVec",1,"target",{0,0.030},1}, + {"ForwardVec",1,"target",{0,0.025},1},{}, + {"ForwardVec",1,"target",{0,0.020},1}, + {"ForwardVec",1,"target",{0,0.015},1},{}, + {"ForwardVec",1,"target",{0,0.010},1}, + {"ForwardVec",1,"target",{0,0.005},1},{}, + {"ForwardVec",1,"target",{-0.060,0},1}, + {"ForwardVec",1,"target",{-0.055,0},1},{}, + {"ForwardVec",1,"target",{-0.050,0},1}, + {"ForwardVec",1,"target",{-0.045,0},1},{}, + {"ForwardVec",1,"target",{-0.040,0},1}, + {"ForwardVec",1,"target",{-0.035,0},1},{}, + {"ForwardVec",1,"target",{-0.030,0},1}, + {"ForwardVec",1,"target",{-0.025,0},1},{}, + {"ForwardVec",1,"target",{-0.020,0},1}, + {"ForwardVec",1,"target",{-0.015,0},1},{}, + {"ForwardVec",1,"target",{-0.010,0},1}, + {"ForwardVec",1,"target",{-0.005,0},1},{}, + {"ForwardVec",1,"target",{0.060,0},1}, + {"ForwardVec",1,"target",{0.055,0},1},{}, + {"ForwardVec",1,"target",{0.050,0},1}, + {"ForwardVec",1,"target",{0.045,0},1},{}, + {"ForwardVec",1,"target",{0.040,0},1}, + {"ForwardVec",1,"target",{0.035,0},1},{}, + {"ForwardVec",1,"target",{0.030,0},1}, + {"ForwardVec",1,"target",{0.025,0},1},{}, + {"ForwardVec",1,"target",{0.020,0},1}, + {"ForwardVec",1,"target",{0.015,0},1},{}, + {"ForwardVec",1,"target",{0.010,0},1}, + {"ForwardVec",1,"target",{0.005,0},1},{} + }; + }; + + class RadarTargets { + type = "radar"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + width = 2.5; + points[] = { + {"ForwardVec",1,"RadarContact",{-0.01,-0.01},1}, + {"ForwardVec",1,"RadarContact",{0.01,-0.01},1}, + {"ForwardVec",1,"RadarContact",{0.01,0.01},1}, + {"ForwardVec",1,"RadarContact",{-0.01,0.01},1}, + {"ForwardVec",1,"RadarContact",{-0.01,-0.01},1} + }; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_ghosthawk.hpp b/TO_MERGE/agm/Aircraft/mfd_ghosthawk.hpp new file mode 100644 index 0000000000..29e2c97819 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_ghosthawk.hpp @@ -0,0 +1,1409 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.54}; + }; + + class GunnerAim { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.011,0.0027}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + + class LevelP5: Level0 { + angle = 5; + }; + + class LevelM5: Level0 { + angle = -5; + }; + + class LevelP10: Level0 { + angle = 10; + }; + + class LevelM10: Level0 { + angle = -10; + }; + + class LevelP15: Level0 { + angle = 15; + }; + + class LevelM15: Level0 { + angle = -15; + }; + + class LevelP20: Level0 { + angle = 20; + }; + + class LevelM20: Level0 { + angle = -20; + }; + + class LevelP25: Level0 { + angle = 25; + }; + + class LevelM25: Level0 { + angle = -25; + }; + + class LevelP30: Level0 { + angle = 30; + }; + + class LevelM30: Level0 { + angle = -30; + }; + + class LevelP35: Level0 { + angle = 35; + }; + + class LevelM35: Level0 { + angle = -35; + }; + + class LevelP40: Level0 { + angle = 40; + }; + + class LevelM40: Level0 { + angle = -40; + }; + + class LevelP45: Level0 { + angle = 45; + }; + + class LevelM45: Level0 { + angle = -45; + }; + + class LevelP50: Level0 { + angle = 50; + }; + + class LevelM50: Level0 { + angle = -50; + }; + + class LevelP55: Level0 { + angle = 55; + }; + + class LevelM55: Level0 { + angle = -55; + }; + + class LevelP60: Level0 { + angle = 60; + }; + + class LevelM60: Level0 { + angle = -60; + }; + + class LevelP65: Level0 { + angle = 65; + }; + + class LevelM65: Level0 { + angle = -65; + }; + + class LevelP70: Level0 { + angle = 70; + }; + + class LevelM70: Level0 { + angle = -70; + }; + + class LevelP75: Level0 { + angle = 75; + }; + + class LevelM75: Level0 { + angle = -75; + }; + + class LevelP80: Level0 { + angle = 80; + }; + + class LevelM80: Level0 { + angle = -80; + }; + + class LevelP85: Level0 { + angle = 85; + }; + + class LevelM85: Level0 { + angle = -85; + }; + + class LevelP90: Level0 { + angle = 90; + }; + + class LevelM90: Level0 { + angle = -90; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.08,0},1},{} + }; + }; + + /*class VALM_1_0 { + type = "text"; + source = "static"; + text = 0; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"Level0",{-0.23,-0.025},1}; + right[] = {"Level0",{-0.13,-0.025},1}; + down[] = {"Level0",{-0.23,0.025},1}; + }; + + class VALM_2_0: VALM_1_0 { + align = "right"; + pos[] = {"Level0",{0.22,-0.025},1}; + right[] = {"Level0",{0.31999999,-0.025},1}; + down[] = {"Level0",{0.22,0.025},1}; + }; + + class LevelM5: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelM5",{-0.2,-0.029999999},1}, + {"LevelM5",{-0.2,0},1}, + {"LevelM5",{-0.15000001,0},1},{}, + {"LevelM5",{-0.1,0},1}, + {"LevelM5",{-0.050000001,0},1},{}, + {"LevelM5",{0.050000001,0},1}, + {"LevelM5",{0.1,0},1},{}, + {"LevelM5",{0.15000001,0},1}, + {"LevelM5",{0.2,0},1}, + {"LevelM5",{0.2,-0.029999999},1} + }; + }; + + class VALM_1_5 { + type = "text"; + source = "static"; + text = -5; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM5",{-0.22,-0.085000001},1}; + right[] = {"LevelM5",{-0.17,-0.085000001},1}; + down[] = {"LevelM5",{-0.22,-0.035},1}; + }; + + class VALM_2_5: VALM_1_5 { + align = "right"; + pos[] = {"LevelM5",{0.22,-0.085000001},1}; + right[] = {"LevelM5",{0.27,-0.085000001},1}; + down[] = {"LevelM5",{0.22,-0.035},1}; + }; + + class LevelP5: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelP5",{-0.2,0.029999999},1}, + {"LevelP5",{-0.2,0},1}, + {"LevelP5",{-0.050000001,0},1},{}, + {"LevelP5",{0.050000001,0},1}, + {"LevelP5",{0.2,0},1}, + {"LevelP5",{0.2,0.029999999},1} + }; + }; + + class VALP_1_5 { + type = "text"; + source = "static"; + text = "5"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP5",{-0.22,0.035},1}; + right[] = {"LevelP5",{-0.17,0.035},1}; + down[] = {"LevelP5",{-0.22,0.085000001},1}; + }; + + class VALP_2_5: VALP_1_5 { + align = "right"; + pos[] = {"LevelP5",{0.22,0.035},1}; + right[] = {"LevelP5",{0.27,0.035},1}; + down[] = {"LevelP5",{0.22,0.085000001},1}; + };*/ + + class LevelM10: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM10",{-0.2,-0.03},1}, + {"LevelM10",{-0.2,0},1}, + {"LevelM10",{-0.15,0},1},{}, + {"LevelM10",{-0.1,0},1}, + {"LevelM10",{-0.05,0},1},{}, + {"LevelM10",{0.05,0},1}, + {"LevelM10",{0.1,0},1},{}, + {"LevelM10",{0.15,0},1}, + {"LevelM10",{0.2,0},1}, + {"LevelM10",{0.2,-0.03},1} + }; + }; + + class VALM_1_10 { + type = "text"; + source = "static"; + text = -10; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM10",{-0.22,-0.085},1}; + right[] = {"LevelM10",{-0.17,-0.085},1}; + down[] = {"LevelM10",{-0.22,-0.035},1}; + }; + + class VALM_2_10: VALM_1_10 { + align = "right"; + pos[] = {"LevelM10",{0.22,-0.085},1}; + right[] = {"LevelM10",{0.27,-0.085},1}; + down[] = {"LevelM10",{0.22,-0.035},1}; + }; + + class LevelP10: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP10",{-0.2,0.03},1}, + {"LevelP10",{-0.2,0},1}, + {"LevelP10",{-0.05,0},1},{}, + {"LevelP10",{0.05,0},1}, + {"LevelP10",{0.2,0},1}, + {"LevelP10",{0.2,0.03},1} + }; + }; + + class VALP_1_10 { + type = "text"; + source = "static"; + text = "10"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP10",{-0.22,0.035},1}; + right[] = {"LevelP10",{-0.17,0.035},1}; + down[] = {"LevelP10",{-0.22,0.085},1}; + }; + + class VALP_2_10: VALP_1_10 { + align = "right"; + pos[] = {"LevelP10",{0.22,0.035},1}; + right[] = {"LevelP10",{0.27,0.035},1}; + down[] = {"LevelP10",{0.22,0.085},1}; + }; + + /*class LevelM15: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelM15",{-0.2,-0.029999999},1}, + {"LevelM15",{-0.2,0},1}, + {"LevelM15",{-0.15000001,0},1},{}, + {"LevelM15",{-0.1,0},1}, + {"LevelM15",{-0.050000001,0},1},{}, + {"LevelM15",{0.050000001,0},1}, + {"LevelM15",{0.1,0},1},{}, + {"LevelM15",{0.15000001,0},1}, + {"LevelM15",{0.2,0},1}, + {"LevelM15",{0.2,-0.029999999},1} + }; + }; + + class VALM_1_15 { + type = "text"; + source = "static"; + text = -15; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM15",{-0.22,-0.085000001},1}; + right[] = {"LevelM15",{-0.17,-0.085000001},1}; + down[] = {"LevelM15",{-0.22,-0.035},1}; + }; + + class VALM_2_15: VALM_1_15 { + align = "right"; + pos[] = {"LevelM15",{0.22,-0.085000001},1}; + right[] = {"LevelM15",{0.27,-0.085000001},1}; + down[] = {"LevelM15",{0.22,-0.035},1}; + }; + + class LevelP15: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelP15",{-0.2,0.029999999},1}, + {"LevelP15",{-0.2,0},1}, + {"LevelP15",{-0.050000001,0},1},{}, + {"LevelP15",{0.050000001,0},1}, + {"LevelP15",{0.2,0},1}, + {"LevelP15",{0.2,0.029999999},1} + }; + }; + + class VALP_1_15 { + type = "text"; + source = "static"; + text = "15"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP15",{-0.22,0.035},1}; + right[] = {"LevelP15",{-0.17,0.035},1}; + down[] = {"LevelP15",{-0.22,0.085000001},1}; + }; + + class VALP_2_15: VALP_1_15 { + align = "right"; + pos[] = {"LevelP15",{0.22,0.035},1}; + right[] = {"LevelP15",{0.27,0.035},1}; + down[] = {"LevelP15",{0.22,0.085000001},1}; + };*/ + + class LevelM20: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM20",{-0.2,-0.03},1}, + {"LevelM20",{-0.2,0},1}, + {"LevelM20",{-0.15,0},1},{}, + {"LevelM20",{-0.1,0},1}, + {"LevelM20",{-0.05,0},1},{}, + {"LevelM20",{0.05,0},1}, + {"LevelM20",{0.1,0},1},{}, + {"LevelM20",{0.15,0},1}, + {"LevelM20",{0.2,0},1}, + {"LevelM20",{0.2,-0.03},1} + }; + }; + + class VALM_1_20 { + type = "text"; + source = "static"; + text = -20; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM20",{-0.22,-0.085},1}; + right[] = {"LevelM20",{-0.17,-0.085},1}; + down[] = {"LevelM20",{-0.22,-0.035},1}; + }; + + class VALM_2_20: VALM_1_20 { + align = "right"; + pos[] = {"LevelM20",{0.22,-0.085},1}; + right[] = {"LevelM20",{0.27,-0.085},1}; + down[] = {"LevelM20",{0.22,-0.035},1}; + }; + + class LevelP20: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP20",{-0.2,0.03},1}, + {"LevelP20",{-0.2,0},1}, + {"LevelP20",{-0.05,0},1},{}, + {"LevelP20",{0.05,0},1}, + {"LevelP20",{0.2,0},1}, + {"LevelP20",{0.2,0.03},1} + }; + }; + + class VALP_1_20 { + type = "text"; + source = "static"; + text = "20"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP20",{-0.22,0.035},1}; + right[] = {"LevelP20",{-0.17,0.035},1}; + down[] = {"LevelP20",{-0.22,0.085},1}; + }; + + class VALP_2_20: VALP_1_20 { + align = "right"; + pos[] = {"LevelP20",{0.22,0.035},1}; + right[] = {"LevelP20",{0.27,0.035},1}; + down[] = {"LevelP20",{0.22,0.085},1}; + }; + + /*class LevelM25: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelM25",{-0.2,-0.029999999},1}, + {"LevelM25",{-0.2,0},1}, + {"LevelM25",{-0.15000001,0},1},{}, + {"LevelM25",{-0.1,0},1}, + {"LevelM25",{-0.050000001,0},1},{}, + {"LevelM25",{0.050000001,0},1}, + {"LevelM25",{0.1,0},1},{}, + {"LevelM25",{0.15000001,0},1}, + {"LevelM25",{0.2,0},1}, + {"LevelM25",{0.2,-0.029999999},1} + }; + }; + + class VALM_1_25 { + type = "text"; + source = "static"; + text = -25; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM25",{-0.22,-0.085000001},1}; + right[] = {"LevelM25",{-0.17,-0.085000001},1}; + down[] = {"LevelM25",{-0.22,-0.035},1}; + }; + + class VALM_2_25: VALM_1_25 { + align = "right"; + pos[] = {"LevelM25",{0.22,-0.085000001},1}; + right[] = {"LevelM25",{0.27,-0.085000001},1}; + down[] = {"LevelM25",{0.22,-0.035},1}; + }; + + class LevelP25: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelP25",{-0.2,0.029999999},1}, + {"LevelP25",{-0.2,0},1}, + {"LevelP25",{-0.050000001,0},1},{}, + {"LevelP25",{0.050000001,0},1}, + {"LevelP25",{0.2,0},1}, + {"LevelP25",{0.2,0.029999999},1} + }; + }; + + class VALP_1_25 { + type = "text"; + source = "static"; + text = "25"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP25",{-0.22,0.035},1}; + right[] = {"LevelP25",{-0.17,0.035},1}; + down[] = {"LevelP25",{-0.22,0.085000001},1}; + }; + + class VALP_2_25: VALP_1_25 { + align = "right"; + pos[] = {"LevelP25",{0.22,0.035},1}; + right[] = {"LevelP25",{0.27,0.035},1}; + down[] = {"LevelP25",{0.22,0.085000001},1}; + };*/ + + class LevelM30: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM30",{-0.2,-0.03},1}, + {"LevelM30",{-0.2,0},1}, + {"LevelM30",{-0.15,0},1},{}, + {"LevelM30",{-0.1,0},1}, + {"LevelM30",{-0.05,0},1},{}, + {"LevelM30",{0.05,0},1}, + {"LevelM30",{0.1,0},1},{}, + {"LevelM30",{0.15,0},1}, + {"LevelM30",{0.2,0},1}, + {"LevelM30",{0.2,-0.03},1} + }; + }; + + class VALM_1_30 { + type = "text"; + source = "static"; + text = -30; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM30",{-0.22,-0.085},1}; + right[] = {"LevelM30",{-0.17,-0.085},1}; + down[] = {"LevelM30",{-0.22,-0.035},1}; + }; + + class VALM_2_30: VALM_1_30 { + align = "right"; + pos[] = {"LevelM30",{0.22,-0.085},1}; + right[] = {"LevelM30",{0.27,-0.085},1}; + down[] = {"LevelM30",{0.22,-0.035},1}; + }; + + class LevelP30: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP30",{-0.2,0.03},1}, + {"LevelP30",{-0.2,0},1}, + {"LevelP30",{-0.05,0},1},{}, + {"LevelP30",{0.05,0},1}, + {"LevelP30",{0.2,0},1}, + {"LevelP30",{0.2,0.03},1} + }; + }; + + class VALP_1_30 { + type = "text"; + source = "static"; + text = "30"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP30",{-0.22,0.035},1}; + right[] = {"LevelP30",{-0.17,0.035},1}; + down[] = {"LevelP30",{-0.22,0.085},1}; + }; + + class VALP_2_30: VALP_1_30 { + align = "right"; + pos[] = {"LevelP30",{0.22,0.035},1}; + right[] = {"LevelP30",{0.27,0.035},1}; + down[] = {"LevelP30",{0.22,0.085},1}; + }; + + /*class LevelM35: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelM35",{-0.2,-0.029999999},1}, + {"LevelM35",{-0.2,0},1}, + {"LevelM35",{-0.15000001,0},1},{}, + {"LevelM35",{-0.1,0},1}, + {"LevelM35",{-0.050000001,0},1},{}, + {"LevelM35",{0.050000001,0},1}, + {"LevelM35",{0.1,0},1},{}, + {"LevelM35",{0.15000001,0},1}, + {"LevelM35",{0.2,0},1}, + {"LevelM35",{0.2,-0.029999999},1} + }; + }; + + class VALM_1_35 { + type = "text"; + source = "static"; + text = -35; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM35",{-0.22,-0.085000001},1}; + right[] = {"LevelM35",{-0.17,-0.085000001},1}; + down[] = {"LevelM35",{-0.22,-0.035},1}; + }; + + class VALM_2_35: VALM_1_35 { + align = "right"; + pos[] = {"LevelM35",{0.22,-0.085000001},1}; + right[] = {"LevelM35",{0.27,-0.085000001},1}; + down[] = {"LevelM35",{0.22,-0.035},1}; + }; + + class LevelP35: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelP35",{-0.2,0.029999999},1}, + {"LevelP35",{-0.2,0},1}, + {"LevelP35",{-0.050000001,0},1},{}, + {"LevelP35",{0.050000001,0},1}, + {"LevelP35",{0.2,0},1}, + {"LevelP35",{0.2,0.029999999},1} + }; + }; + + class VALP_1_35 { + type = "text"; + source = "static"; + text = "35"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP35",{-0.22,0.035},1}; + right[] = {"LevelP35",{-0.17,0.035},1}; + down[] = {"LevelP35",{-0.22,0.085000001},1}; + }; + + class VALP_2_35: VALP_1_35 { + align = "right"; + pos[] = {"LevelP35",{0.22,0.035},1}; + right[] = {"LevelP35",{0.27,0.035},1}; + down[] = {"LevelP35",{0.22,0.085000001},1}; + };*/ + + class LevelM40: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM40",{-0.2,-0.03},1}, + {"LevelM40",{-0.2,0},1}, + {"LevelM40",{-0.15,0},1},{}, + {"LevelM40",{-0.1,0},1}, + {"LevelM40",{-0.05,0},1},{}, + {"LevelM40",{0.05,0},1}, + {"LevelM40",{0.1,0},1},{}, + {"LevelM40",{0.15,0},1}, + {"LevelM40",{0.2,0},1}, + {"LevelM40",{0.2,-0.03},1} + }; + }; + + class VALM_1_40 { + type = "text"; + source = "static"; + text = -40; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM40",{-0.22,-0.085},1}; + right[] = {"LevelM40",{-0.17,-0.085},1}; + down[] = {"LevelM40",{-0.22,-0.035},1}; + }; + + class VALM_2_40: VALM_1_40 { + align = "right"; + pos[] = {"LevelM40",{0.22,-0.085},1}; + right[] = {"LevelM40",{0.27,-0.085},1}; + down[] = {"LevelM40",{0.22,-0.035},1}; + }; + + class LevelP40: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP40",{-0.2,0.03},1}, + {"LevelP40",{-0.2,0},1}, + {"LevelP40",{-0.05,0},1},{}, + {"LevelP40",{0.05,0},1}, + {"LevelP40",{0.2,0},1}, + {"LevelP40",{0.2,0.03},1} + }; + }; + + class VALP_1_40 { + type = "text"; + source = "static"; + text = "40"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP40",{-0.22,0.035},1}; + right[] = {"LevelP40",{-0.17,0.035},1}; + down[] = {"LevelP40",{-0.22,0.085},1}; + }; + + class VALP_2_40: VALP_1_40 { + align = "right"; + pos[] = {"LevelP40",{0.22,0.035},1}; + right[] = {"LevelP40",{0.27,0.035},1}; + down[] = {"LevelP40",{0.22,0.085},1}; + }; + + /*class LevelM45: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelM45",{-0.2,-0.029999999},1}, + {"LevelM45",{-0.2,0},1}, + {"LevelM45",{-0.15000001,0},1},{}, + {"LevelM45",{-0.1,0},1}, + {"LevelM45",{-0.050000001,0},1},{}, + {"LevelM45",{0.050000001,0},1}, + {"LevelM45",{0.1,0},1},{}, + {"LevelM45",{0.15000001,0},1}, + {"LevelM45",{0.2,0},1}, + {"LevelM45",{0.2,-0.029999999},1} + }; + }; + + class VALM_1_45 { + type = "text"; + source = "static"; + text = -45; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM45",{-0.22,-0.085000001},1}; + right[] = {"LevelM45",{-0.17,-0.085000001},1}; + down[] = {"LevelM45",{-0.22,-0.035},1}; + }; + + class VALM_2_45: VALM_1_45 { + align = "right"; + pos[] = {"LevelM45",{0.22,-0.085000001},1}; + right[] = {"LevelM45",{0.27,-0.085000001},1}; + down[] = {"LevelM45",{0.22,-0.035},1}; + }; + + class LevelP45: Level0 { + type = "line"; + width = 3.0; + points[] = { + {"LevelP45",{-0.2,0.029999999},1}, + {"LevelP45",{-0.2,0},1}, + {"LevelP45",{-0.050000001,0},1},{}, + {"LevelP45",{0.050000001,0},1}, + {"LevelP45",{0.2,0},1}, + {"LevelP45",{0.2,0.029999999},1} + }; + }; + + class VALP_1_45 { + type = "text"; + source = "static"; + text = "45"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP45",{-0.22,0.035},1}; + right[] = {"LevelP45",{-0.17,0.035},1}; + down[] = {"LevelP45",{-0.22,0.085000001},1}; + }; + + class VALP_2_45: VALP_1_45 { + align = "right"; + pos[] = {"LevelP45",{0.22,0.035},1}; + right[] = {"LevelP45",{0.27,0.035},1}; + down[] = {"LevelP45",{0.22,0.085000001},1}; + };*/ + + class LevelM50: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM50",{-0.2,-0.03},1}, + {"LevelM50",{-0.2,0},1}, + {"LevelM50",{-0.15,0},1},{}, + {"LevelM50",{-0.1,0},1}, + {"LevelM50",{-0.05,0},1},{}, + {"LevelM50",{0.05,0},1}, + {"LevelM50",{0.1,0},1},{}, + {"LevelM50",{0.15,0},1}, + {"LevelM50",{0.2,0},1}, + {"LevelM50",{0.2,-0.03},1} + }; + }; + + class VALM_1_50 { + type = "text"; + source = "static"; + text = -50; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM50",{-0.22,-0.085},1}; + right[] = {"LevelM50",{-0.17,-0.085},1}; + down[] = {"LevelM50",{-0.22,-0.035},1}; + }; + + class VALM_2_50: VALM_1_50 { + align = "right"; + pos[] = {"LevelM50",{0.22,-0.085},1}; + right[] = {"LevelM50",{0.27,-0.085},1}; + down[] = {"LevelM50",{0.22,-0.035},1}; + }; + + class LevelP50: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP50",{-0.2,0.03},1}, + {"LevelP50",{-0.2,0},1}, + {"LevelP50",{-0.05,0},1},{}, + {"LevelP50",{0.05,0},1}, + {"LevelP50",{0.2,0},1}, + {"LevelP50",{0.2,0.03},1} + }; + }; + + class VALP_1_50 { + type = "text"; + source = "static"; + text = "50"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP50",{-0.22,0.035},1}; + right[] = {"LevelP50",{-0.17,0.035},1}; + down[] = {"LevelP50",{-0.22,0.085},1}; + }; + + class VALP_2_50: VALP_1_50 { + align = "right"; + pos[] = {"LevelP50",{0.22,0.035},1}; + right[] = {"LevelP50",{0.27,0.035},1}; + down[] = {"LevelP50",{0.22,0.085},1}; + }; + }; + }; + + class StaticBank { + type = "line"; + width = 3; + points[] = { + {{0.4782,0.251},1}, + {{0.4773,0.241},1},{}, + {{0.4566,0.2538},1}, + {{0.4549,0.2439},1},{}, + {{0.4353,0.2585},1}, + {{0.4301,0.2392},1},{}, + {{0.4145,0.2651},1}, + {{0.4111,0.2557},1},{}, + {{0.3943,0.2734},1}, + {{0.3901,0.2644},1},{}, + {{0.375,0.2835},1}, + {{0.365,0.2662},1},{}, + {{0.3232,0.3232},1}, + {{0.3091,0.3091},1},{}, + {{0.2835,0.375},1}, + {{0.2662,0.365},1},{}, + {{"0.5 + (0.5- 0.4782)",0.251},1}, + {{"0.5 + (0.5- 0.4773)",0.241},1},{}, + {{"0.5 + (0.5- 0.4566)",0.2538},1}, + {{"0.5 + (0.5- 0.4549)",0.2439},1},{}, + {{"0.5 + (0.5- 0.4353)",0.2585},1}, + {{"0.5 + (0.5- 0.4301)",0.2392},1},{}, + {{"0.5 + (0.5- 0.4145)",0.2651},1}, + {{"0.5 + (0.5- 0.4111)",0.2557},1},{}, + {{"0.5 + (0.5- 0.3943)",0.2734},1}, + {{"0.5 + (0.5- 0.3901)",0.2644},1},{}, + {{"0.5 + (0.5- 0.3750)",0.2835},1}, + {{"0.5 + (0.5- 0.3650)",0.2662},1},{}, + {{"0.5 + (0.5- 0.3232)",0.3232},1}, + {{"0.5 + (0.5- 0.3091)",0.3091},1},{}, + {{"0.5 + (0.5- 0.2835)",0.375},1}, + {{"0.5 + (0.5- 0.2662)",0.365},1},{}, + {{0.5,"0.5 - 0.25"},1}, + {{0.5,"0.5 - 0.28"},1} + }; + }; + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = { + {"HorizonBankRot",{0,0.25},1}, + {"HorizonBankRot",{-0.01,0.23},1}, + {"HorizonBankRot",{0.01,0.23},1}, + {"HorizonBankRot",{0,0.25},1} + }; + }; + + class Centerline { + type = "line"; + width = 7; + points[] = { + {{0.45,0.5},1}, + {{0.48,0.5},1}, + {{0.49,0.525},1}, + {{0.5,0.5},1}, + {{0.51,0.525},1}, + {{0.52,0.5},1}, + {{0.55,0.5},1} + }; + }; + + /*class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.86},1}; + right[] = {{0.07,0.86},1}; + down[] = {{0.03,0.90},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.89},1}; + right[] = {{0.07,0.89},1}; + down[] = {{0.03,0.93},1}; + };*/ + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class GearGroup { + type = "group"; + condition = "ils"; + class GearText { + type = "text"; + source = "static"; + text = "GEAR"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.155"},1}; + right[] = {{0.07,"0.53 + 0.155"},1}; + down[] = {{0.03,"0.53 + 0.195"},1}; + }; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 318; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = { + {{0.98,0.2},1}, + {{1,0.2},1},{}, + {{0.93,0.2},1}, + {{0.95,0.2},1},{}, + {{0.98,0.35},1}, + {{1,0.35},1},{}, + {{0.93,0.35},1}, + {{0.95,0.35},1},{}, + {{0.94,0.38},1}, + {{0.95,0.38},1},{}, + {{0.94,0.41},1}, + {{0.95,0.41},1},{}, + {{0.94,0.44},1}, + {{0.95,0.44},1},{}, + {{0.94,0.47},1}, + {{0.95,0.47},1},{}, + {{0.98,0.5},1}, + {{1,0.5},1},{}, + {{0.93,0.5},1}, + {{0.95,0.5},1},{}, + {{0.94,0.53},1}, + {{0.95,0.53},1},{}, + {{0.94,0.56},1}, + {{0.95,0.56},1},{}, + {{0.94,0.59},1}, + {{0.95,0.59},1},{}, + {{0.94,0.62},1}, + {{0.95,0.62},1},{}, + {{0.98,0.65},1}, + {{1,0.65},1},{}, + {{0.93,0.65},1}, + {{0.95,0.65},1},{}, + {{0.99,0.68},1}, + {{0.98,0.68},1},{}, + {{0.99,0.71},1}, + {{0.98,0.71},1},{}, + {{0.99,0.74},1}, + {{0.98,0.74},1},{}, + {{0.99,0.77},1}, + {{0.98,0.77},1},{}, + {{0.98,0.8},1}, + {{1,0.8},1},{}, + {{0.93,0.8},1}, + {{0.95,0.8},1},{} + }; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + class radarbanda { + type = "line"; + width = 17; + points[] = { + {"RadarAltitudeBone",{0,0},1}, + {"RadarAltitudeBone",{0,0.6},1} + }; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = { + {"VspeedBone",{-0.01,0},1}, + {"VspeedBone",{-0.025,-0.015},1}, + {"VspeedBone",{-0.025,0.015},1}, + {"VspeedBone",{-0.01,0},1},{} + }; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = { + {{0.44,0.005},1}, + {{"0.44 + 0.12",0.005},1}, + {{"0.44 + 0.12","0.005 + 0.06"},1}, + {{0.44,"0.005 + 0.06"},1}, + {{0.44,0.005},1} + }; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = { + {{"0.5","0.128 + 0.03"},1}, + {{0.5,0.128},1} + }; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.119,"0.0 + 0.065"}; + right[] = {0.159,"0.0 + 0.065"}; + down[] = {0.119,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.85,0.86},1}; + right[] = {{0.89,0.86},1}; + down[] = {{0.85,0.9},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.92,0.86},1}; + right[] = {{0.96,0.86},1}; + down[] = {{0.92,0.9},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class WeaponAim1 { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.253,0.23}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = { + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,0.02},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,-0.04},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1} + }; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_littlebird.hpp b/TO_MERGE/agm/Aircraft/mfd_littlebird.hpp new file mode 100644 index 0000000000..57970e3108 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_littlebird.hpp @@ -0,0 +1,565 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.5}; + }; + + class Target: Pos10Vector { + source = "target"; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.1,0.1}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.38,0},1},{}, + {"Level0",{-0.37,0},1}, + {"Level0",{-0.33,0},1},{}, + {"Level0",{-0.32,0},1}, + {"Level0",{-0.28,0},1},{}, + {"Level0",{-0.27,0},1}, + {"Level0",{-0.23,0},1},{}, + {"Level0",{-0.22,0},1}, + {"Level0",{-0.18,0},1},{}, + {"Level0",{-0.17,0},1}, + {"Level0",{-0.13,0},1},{}, + {"Level0",{-0.12,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.38,0},1},{}, + {"Level0",{0.37,0},1}, + {"Level0",{0.33,0},1},{}, + {"Level0",{0.32,0},1}, + {"Level0",{0.28,0},1},{}, + {"Level0",{0.27,0},1}, + {"Level0",{0.23,0},1},{}, + {"Level0",{0.22,0},1}, + {"Level0",{0.18,0},1},{}, + {"Level0",{0.17,0},1}, + {"Level0",{0.13,0},1},{}, + {"Level0",{0.12,0},1}, + {"Level0",{0.08,0},1} + }; + }; + }; + }; + + /*class StaticBank { + type = "line"; + width = 3; + points[] = { + ////////////////////////////////////////////////////// LEFT + {{0.4782,0.2510},1}, + {{0.4773,0.2410},1},{}, + {{0.4566,0.2538},1}, + {{0.4549,0.2439},1},{}, + {{0.4353,0.2585},1}, + {{0.4301,0.2392},1},{}, + {{0.4145,0.2651},1}, + {{0.4111,0.2557},1},{}, + {{0.3943,0.2734},1}, + {{0.3901,0.2644},1},{}, + {{0.3750,0.2835},1}, + {{0.3650,0.2662},1},{}, + {{0.3232,0.3232},1}, + {{0.3091,0.3091},1},{}, + {{0.2835,0.3750},1}, + {{0.2662,0.3650},1},{}, + /////////////////////////////////////////////////////// RIGHT + {{"0.5 + (0.5- 0.4782)",0.2510},1}, + {{"0.5 + (0.5- 0.4773)",0.2410},1},{}, + {{"0.5 + (0.5- 0.4566)",0.2538},1}, + {{"0.5 + (0.5- 0.4549)",0.2439},1},{}, + {{"0.5 + (0.5- 0.4353)",0.2585},1}, + {{"0.5 + (0.5- 0.4301)",0.2392},1},{}, + {{"0.5 + (0.5- 0.4145)",0.2651},1}, + {{"0.5 + (0.5- 0.4111)",0.2557},1},{}, + {{"0.5 + (0.5- 0.3943)",0.2734},1}, + {{"0.5 + (0.5- 0.3901)",0.2644},1},{}, + {{"0.5 + (0.5- 0.3750)",0.2835},1}, + {{"0.5 + (0.5- 0.3650)",0.2662},1},{}, + {{"0.5 + (0.5- 0.3232)",0.3232},1}, + {{"0.5 + (0.5- 0.3091)",0.3091},1},{}, + {{"0.5 + (0.5- 0.2835)",0.3750},1}, + {{"0.5 + (0.5- 0.2662)",0.3650},1},{}, + /////////////////////////////////////////////////////// CENTER + {{0.5,"0.5 - 0.25"},1}, + {{0.5,"0.5 - 0.28"},1} + }; + };*/ + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = { + {"HorizonBankRot",{0,0.25},1}, + {"HorizonBankRot",{-0.01,0.23},1}, + {"HorizonBankRot",{0.01,0.23},1}, + {"HorizonBankRot",{0,0.25},1} + }; + }; + + class Centerline { + type = "line"; + width = 7; + points[] = { + {{0.45,0.5},1}, + {{0.48,0.5},1}, + {{0.49,0.525},1}, + {{0.5,0.5},1}, + {{0.51,0.525},1}, + {{0.52,0.5},1}, + {{0.55,0.5},1} + }; + }; + + /*class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.86},1}; + right[] = {{0.07,0.86},1}; + down[] = {{0.03,0.90},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.89},1}; + right[] = {{0.07,0.89},1}; + down[] = {{0.03,0.93},1}; + };*/ + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 110; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = { + {{0.98,0.2},1}, + {{1,0.2},1},{}, + {{0.93,0.2},1}, + {{0.95,0.2},1},{}, + {{0.98,0.35},1}, + {{1,0.35},1},{}, + {{0.93,0.35},1}, + {{0.95,0.35},1},{}, + {{0.94,0.38},1}, + {{0.95,0.38},1},{}, + {{0.94,0.41},1}, + {{0.95,0.41},1},{}, + {{0.94,0.44},1}, + {{0.95,0.44},1},{}, + {{0.94,0.47},1}, + {{0.95,0.47},1},{}, + {{0.98,0.5},1}, + {{1,0.5},1},{}, + {{0.93,0.5},1}, + {{0.95,0.5},1},{}, + {{0.94,0.53},1}, + {{0.95,0.53},1},{}, + {{0.94,0.56},1}, + {{0.95,0.56},1},{}, + {{0.94,0.59},1}, + {{0.95,0.59},1},{}, + {{0.94,0.62},1}, + {{0.95,0.62},1},{}, + {{0.98,0.65},1}, + {{1,0.65},1},{}, + {{0.93,0.65},1}, + {{0.95,0.65},1},{}, + {{0.99,0.68},1}, + {{0.98,0.68},1},{}, + {{0.99,0.71},1}, + {{0.98,0.71},1},{}, + {{0.99,0.74},1}, + {{0.98,0.74},1},{}, + {{0.99,0.77},1}, + {{0.98,0.77},1},{}, + {{0.98,0.8},1}, + {{1,0.8},1},{}, + {{0.93,0.8},1}, + {{0.95,0.8},1},{} + }; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + class radarbanda { + type = "line"; + width = 17; + points[] = { + {"RadarAltitudeBone",{0,0},1}, + {"RadarAltitudeBone",{0,0.6},1} + }; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = { + {"VspeedBone",{-0.01,0},1}, + {"VspeedBone",{-0.025,-0.015},1}, + {"VspeedBone",{-0.025,0.015},1}, + {"VspeedBone",{-0.01,0},1},{} + }; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = { + {{0.44,0.005},1}, + {{"0.44 + 0.12",0.005},1}, + {{"0.44 + 0.12","0.005 + 0.06"},1}, + {{0.44,"0.005 + 0.06"},1}, + {{0.44,0.005},1} + }; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = {{{"0.5","0.128 + 0.03"},1},{{0.5,0.128},1}}; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.12,"0.0 + 0.065"}; + right[] = {0.16,"0.0 + 0.065"}; + down[] = {0.12,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.85,0.86},1}; + right[] = {{0.89,0.86},1}; + down[] = {{0.85,0.9},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.92,0.86},1}; + right[] = {{0.96,0.86},1}; + down[] = {{0.92,0.9},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class WeaponAim1 { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.253,0.23}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = { + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,0.02},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,-0.04},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1} + }; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_littlebird_armed.hpp b/TO_MERGE/agm/Aircraft/mfd_littlebird_armed.hpp new file mode 100644 index 0000000000..424e7cd408 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_littlebird_armed.hpp @@ -0,0 +1,694 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.5}; + }; + + class Target: Pos10Vector { + source = "target"; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.22,0.22}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.73,0.73}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.38,0},1},{}, + {"Level0",{-0.37,0},1}, + {"Level0",{-0.33,0},1},{}, + {"Level0",{-0.32,0},1}, + {"Level0",{-0.28,0},1},{}, + {"Level0",{-0.27,0},1}, + {"Level0",{-0.23,0},1},{}, + {"Level0",{-0.22,0},1}, + {"Level0",{-0.18,0},1},{}, + {"Level0",{-0.17,0},1}, + {"Level0",{-0.13,0},1},{}, + {"Level0",{-0.12,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.38,0},1},{}, + {"Level0",{0.37,0},1}, + {"Level0",{0.33,0},1},{}, + {"Level0",{0.32,0},1}, + {"Level0",{0.28,0},1},{}, + {"Level0",{0.27,0},1}, + {"Level0",{0.23,0},1},{}, + {"Level0",{0.22,0},1}, + {"Level0",{0.18,0},1},{}, + {"Level0",{0.17,0},1}, + {"Level0",{0.13,0},1},{}, + {"Level0",{0.12,0},1}, + {"Level0",{0.08,0},1} + }; + }; + }; + }; + + /*class StaticBank { + type = "line"; + width = 3; + points[] = { + ////////////////////////////////////////////////////// LEFT + {{0.4782,0.2510},1}, + {{0.4773,0.2410},1},{}, + {{0.4566,0.2538},1}, + {{0.4549,0.2439},1},{}, + {{0.4353,0.2585},1}, + {{0.4301,0.2392},1},{}, + {{0.4145,0.2651},1}, + {{0.4111,0.2557},1},{}, + {{0.3943,0.2734},1}, + {{0.3901,0.2644},1},{}, + {{0.3750,0.2835},1}, + {{0.3650,0.2662},1},{}, + {{0.3232,0.3232},1}, + {{0.3091,0.3091},1},{}, + {{0.2835,0.3750},1}, + {{0.2662,0.3650},1},{}, + /////////////////////////////////////////////////////// RIGHT + {{"0.5 + (0.5- 0.4782)",0.2510},1}, + {{"0.5 + (0.5- 0.4773)",0.2410},1},{}, + {{"0.5 + (0.5- 0.4566)",0.2538},1}, + {{"0.5 + (0.5- 0.4549)",0.2439},1},{}, + {{"0.5 + (0.5- 0.4353)",0.2585},1}, + {{"0.5 + (0.5- 0.4301)",0.2392},1},{}, + {{"0.5 + (0.5- 0.4145)",0.2651},1}, + {{"0.5 + (0.5- 0.4111)",0.2557},1},{}, + {{"0.5 + (0.5- 0.3943)",0.2734},1}, + {{"0.5 + (0.5- 0.3901)",0.2644},1},{}, + {{"0.5 + (0.5- 0.3750)",0.2835},1}, + {{"0.5 + (0.5- 0.3650)",0.2662},1},{}, + {{"0.5 + (0.5- 0.3232)",0.3232},1}, + {{"0.5 + (0.5- 0.3091)",0.3091},1},{}, + {{"0.5 + (0.5- 0.2835)",0.3750},1}, + {{"0.5 + (0.5- 0.2662)",0.3650},1},{}, + /////////////////////////////////////////////////////// CENTER + {{0.5,"0.5 - 0.25"},1}, + {{0.5,"0.5 - 0.28"},1} + }; + };*/ + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = { + {"HorizonBankRot",{0,0.25},1}, + {"HorizonBankRot",{-0.01,0.23},1}, + {"HorizonBankRot",{0.01,0.23},1}, + {"HorizonBankRot",{0,0.25},1} + }; + }; + + class Centerline { + type = "line"; + width = 7; + points[] = { + {{0.45,0.5},1}, + {{0.48,0.5},1}, + {{0.49,0.525},1}, + {{0.5,0.5},1}, + {{0.51,0.525},1}, + {{0.52,0.5},1}, + {{0.55,0.5},1} + }; + }; + + class GunCross { + condition = "mgun"; + type = "group"; + class GunSight { + type = "line"; + width = 7; + points[] = { + {"ForwardVec",1,"WeaponAim",1,{0,-0.02},1}, + {"ForwardVec",1,"WeaponAim",1,{0,-0.05},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0,0.02},1}, + {"ForwardVec",1,"WeaponAim",1,{0,0.05},1},{}, + {"ForwardVec",1,"WeaponAim",1,{-0.02,0},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.05,0},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0.02,0},1}, + {"ForwardVec",1,"WeaponAim",1,{0.05,0},1},{} + }; + }; + }; + + class RocketCross { + condition = "rocket"; + type = "group"; + class RocketSight { + type = "line"; + width = 5.5; + points[] = { + {"ForwardVec",1,"WeaponAim",1,{0.04,-0.06},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.04,-0.06},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0,-0.06},1}, + {"ForwardVec",1,"WeaponAim",1,{0,-0.01},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0,0.001},1}, + {"ForwardVec",1,"WeaponAim",1,{0,-0.001},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0.001,0},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.001,0},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0,0.01},1}, + {"ForwardVec",1,"WeaponAim",1,{0,0.06},1},{}, + {"ForwardVec",1,"WeaponAim",1,{0.04,0.06},1}, + {"ForwardVec",1,"WeaponAim",1,{-0.04,0.06},1},{} + }; + }; + }; + + /*class Mastermode_GUN { + condition = "mgun"; + type = "group"; + class MasterMODE { + type = "text"; + source = "static"; + text = "GUN"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.83},1}; + right[] = {{0.07,0.83},1}; + down[] = {{0.03,0.87},1}; + }; + };*/ + + class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.86},1}; + right[] = {{0.07,0.86},1}; + down[] = {{0.03,0.9},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.89},1}; + right[] = {{0.07,0.89},1}; + down[] = {{0.03,0.93},1}; + }; + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class RangeNumber { + type = "text"; + source = "targetDist"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.51,0.94},1}; + right[] = {{0.56,0.94},1}; + down[] = {{0.51,0.98},1}; + }; + + class RangeText { + type = "text"; + source = "static"; + text = "RNG"; + align = "left"; + scale = 1; + pos[] = {{0.49,0.94},1}; + right[] = {{0.54,0.94},1}; + down[] = {{0.49,0.98},1}; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 100; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = { + {{0.98,0.2},1}, + {{1,0.2},1},{}, + {{0.93,0.2},1}, + {{0.95,0.2},1},{}, + {{0.98,0.35},1}, + {{1,0.35},1},{}, + {{0.93,0.35},1}, + {{0.95,0.35},1},{}, + {{0.94,0.38},1}, + {{0.95,0.38},1},{}, + {{0.94,0.41},1}, + {{0.95,0.41},1},{}, + {{0.94,0.44},1}, + {{0.95,0.44},1},{}, + {{0.94,0.47},1}, + {{0.95,0.47},1},{}, + {{0.98,0.5},1}, + {{1,0.5},1},{}, + {{0.93,0.5},1}, + {{0.95,0.5},1},{}, + {{0.94,0.53},1}, + {{0.95,0.53},1},{}, + {{0.94,0.56},1}, + {{0.95,0.56},1},{}, + {{0.94,0.59},1}, + {{0.95,0.59},1},{}, + {{0.94,0.62},1}, + {{0.95,0.62},1},{}, + {{0.98,0.65},1}, + {{1,0.65},1},{}, + {{0.93,0.65},1}, + {{0.95,0.65},1},{}, + {{0.99,0.68},1}, + {{0.98,0.68},1},{}, + {{0.99,0.71},1}, + {{0.98,0.71},1},{}, + {{0.99,0.74},1}, + {{0.98,0.74},1},{}, + {{0.99,0.77},1}, + {{0.98,0.77},1},{}, + {{0.98,0.8},1}, + {{1,0.8},1},{}, + {{0.93,0.8},1}, + {{0.95,0.8},1},{} + }; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + class radarbanda { + type = "line"; + width = 17; + points[] = { + {"RadarAltitudeBone",{0,0},1}, + {"RadarAltitudeBone",{0,0.6},1} + }; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = { + {"VspeedBone",{-0.01,0},1}, + {"VspeedBone",{-0.025,-0.015},1}, + {"VspeedBone",{-0.025,0.015},1}, + {"VspeedBone",{-0.01,0},1} + }; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = { + {{0.44,0.005},1}, + {{"0.44 + 0.12",0.005},1}, + {{"0.44 + 0.12","0.005 + 0.06"},1}, + {{0.44,"0.005 + 0.06"},1}, + {{0.44,0.005},1} + }; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = { + {{"0.5","0.128 + 0.03"},1}, + {{0.5,0.128},1} + }; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.119,"0.0 + 0.065"}; + right[] = {0.159,"0.0 + 0.065"}; + down[] = {0.119,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.85,0.86},1}; + right[] = {{0.89,0.86},1}; + down[] = {{0.85,0.9},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.92,0.86},1}; + right[] = {{0.96,0.86},1}; + down[] = {{0.92,0.9},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.76,0.76}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.26,0.26}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = { + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,0.02},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,-0.04},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1} + }; + }; + + class TargetACQ { + type = "line"; + width = 2; + points[] = { + //////////////////////////////////////////////// UP + /*{"ForwardVec1",1,"target",{0,-0.10},1},{"ForwardVec1",1,"target",{0,-0.095},1},{}, + {"ForwardVec1",1,"target",{0,-0.09},1},{"ForwardVec1",1,"target",{0,-0.085},1},{}, + {"ForwardVec1",1,"target",{0,-0.080},1},{"ForwardVec1",1,"target",{0,-0.075},1},{}, + {"ForwardVec1",1,"target",{0,-0.070},1},{"ForwardVec1",1,"target",{0,-0.065},1},{},*/ + {"ForwardVec",1,"target",{0,-0.060},1},{"ForwardVec",1,"target",{0,-0.055},1},{}, + {"ForwardVec",1,"target",{0,-0.050},1},{"ForwardVec",1,"target",{0,-0.045},1},{}, + {"ForwardVec",1,"target",{0,-0.040},1},{"ForwardVec",1,"target",{0,-0.035},1},{}, + {"ForwardVec",1,"target",{0,-0.030},1},{"ForwardVec",1,"target",{0,-0.025},1},{}, + {"ForwardVec",1,"target",{0,-0.020},1},{"ForwardVec",1,"target",{0,-0.015},1},{}, + {"ForwardVec",1,"target",{0,-0.010},1},{"ForwardVec",1,"target",{0,-0.005},1},{}, + //////////////////////////////////////////////// center + {"ForwardVec",1,"target",{0,0},1},{"ForwardVec",1,"target",{0,0},1},{}, + /////////////////////////////////////////////// DOWN + /*{"ForwardVec1",1,"target",{0,0.10},1},{"ForwardVec1",1,"target",{0,0.095},1},{}, + {"ForwardVec1",1,"target",{0,0.09},1},{"ForwardVec1",1,"target",{0,0.085},1},{}, + {"ForwardVec1",1,"target",{0,0.080},1},{"ForwardVec1",1,"target",{0,0.075},1},{}, + {"ForwardVec1",1,"target",{0,0.070},1},{"ForwardVec1",1,"target",{0,0.065},1},{},*/ + {"ForwardVec",1,"target",{0,0.060},1},{"ForwardVec",1,"target",{0,0.055},1},{}, + {"ForwardVec",1,"target",{0,0.050},1},{"ForwardVec",1,"target",{0,0.045},1},{}, + {"ForwardVec",1,"target",{0,0.040},1},{"ForwardVec",1,"target",{0,0.035},1},{}, + {"ForwardVec",1,"target",{0,0.030},1},{"ForwardVec",1,"target",{0,0.025},1},{}, + {"ForwardVec",1,"target",{0,0.020},1},{"ForwardVec",1,"target",{0,0.015},1},{}, + {"ForwardVec",1,"target",{0,0.010},1},{"ForwardVec",1,"target",{0,0.005},1},{}, + /////////////////////////////////////////////// LEFT + /*{"ForwardVec1",1,"target",{-0.10, 0},1},{"ForwardVec1",1,"target",{-0.095,0},1},{}, + {"ForwardVec1",1,"target",{-0.09, 0},1},{"ForwardVec1",1,"target",{-0.085,0},1},{}, + {"ForwardVec1",1,"target",{-0.080, 0},1},{"ForwardVec1",1,"target",{-0.075,0},1},{}, + {"ForwardVec1",1,"target",{-0.070, 0},1},{"ForwardVec1",1,"target",{-0.065,0},1},{},*/ + {"ForwardVec",1,"target",{-0.060, 0},1},{"ForwardVec",1,"target",{-0.055,0},1},{}, + {"ForwardVec",1,"target",{-0.050, 0},1},{"ForwardVec",1,"target",{-0.045,0},1},{}, + {"ForwardVec",1,"target",{-0.040, 0},1},{"ForwardVec",1,"target",{-0.035,0},1},{}, + {"ForwardVec",1,"target",{-0.030, 0},1},{"ForwardVec",1,"target",{-0.025,0},1},{}, + {"ForwardVec",1,"target",{-0.020, 0},1},{"ForwardVec",1,"target",{-0.015,0},1},{}, + {"ForwardVec",1,"target",{-0.010, 0},1},{"ForwardVec",1,"target",{-0.005,0},1},{}, + /////////////////////////////////////////////// RIGHT + /*{"ForwardVec1",1,"target",{0.10, 0},1},{"ForwardVec1",1,"target",{0.095,0},1},{}, + {"ForwardVec1",1,"target",{0.09, 0},1},{"ForwardVec1",1,"target",{0.085,0},1},{}, + {"ForwardVec1",1,"target",{0.080, 0},1},{"ForwardVec1",1,"target",{0.075,0},1},{}, + {"ForwardVec1",1,"target",{0.070, 0},1},{"ForwardVec1",1,"target",{0.065,0},1},{},*/ + {"ForwardVec",1,"target",{0.060, 0},1},{"ForwardVec",1,"target",{0.055,0},1},{}, + {"ForwardVec",1,"target",{0.050, 0},1},{"ForwardVec",1,"target",{0.045,0},1},{}, + {"ForwardVec",1,"target",{0.040, 0},1},{"ForwardVec",1,"target",{0.035,0},1},{}, + {"ForwardVec",1,"target",{0.030, 0},1},{"ForwardVec",1,"target",{0.025,0},1},{}, + {"ForwardVec",1,"target",{0.020, 0},1},{"ForwardVec",1,"target",{0.015,0},1},{}, + {"ForwardVec",1,"target",{0.010, 0},1},{"ForwardVec",1,"target",{0.005,0},1},{} + }; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_merlin.hpp b/TO_MERGE/agm/Aircraft/mfd_merlin.hpp new file mode 100644 index 0000000000..227e1c6c43 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_merlin.hpp @@ -0,0 +1,1296 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.54}; + }; + + class GunnerAim { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.011,0.0027}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + + class LevelP5: Level0 { + angle = 5; + }; + + class LevelM5: Level0 { + angle = -5; + }; + + class LevelP10: Level0 { + angle = 10; + }; + + class LevelM10: Level0 { + angle = -10; + }; + + class LevelP15: Level0 { + angle = 15; + }; + + class LevelM15: Level0 { + angle = -15; + }; + + class LevelP20: Level0 { + angle = 20; + }; + + class LevelM20: Level0 { + angle = -20; + }; + + class LevelP25: Level0 { + angle = 25; + }; + + class LevelM25: Level0 { + angle = -25; + }; + + class LevelP30: Level0 { + angle = 30; + }; + + class LevelM30: Level0 { + angle = -30; + }; + + class LevelP35: Level0 { + angle = 35; + }; + + class LevelM35: Level0 { + angle = -35; + }; + + class LevelP40: Level0 { + angle = 40; + }; + + class LevelM40: Level0 { + angle = -40; + }; + + class LevelP45: Level0 { + angle = 45; + }; + + class LevelM45: Level0 { + angle = -45; + }; + + class LevelP50: Level0 { + angle = 50; + }; + + class LevelM50: Level0 { + angle = -50; + }; + + class LevelP55: Level0 { + angle = 55; + }; + + class LevelM55: Level0 { + angle = -55; + }; + + class LevelP60: Level0 { + angle = 60; + }; + + class LevelM60: Level0 { + angle = -60; + }; + + class LevelP65: Level0 { + angle = 65; + }; + + class LevelM65: Level0 { + angle = -65; + }; + + class LevelP70: Level0 { + angle = 70; + }; + + class LevelM70: Level0 { + angle = -70; + }; + + class LevelP75: Level0 { + angle = 75; + }; + + class LevelM75: Level0 { + angle = -75; + }; + + class LevelP80: Level0 { + angle = 80; + }; + + class LevelM80: Level0 { + angle = -80; + }; + + class LevelP85: Level0 { + angle = 85; + }; + + class LevelM85: Level0 { + angle = -85; + }; + + class LevelP90: Level0 { + angle = 90; + }; + + class LevelM90: Level0 { + angle = -90; + }; + + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.08,0},1},{} + }; + }; + + /*class VALM_1_0 { + type = "text"; + source = "static"; + text = 0; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"Level0",{-0.23,-0.025},1}; + right[] = {"Level0",{-0.13,-0.025},1}; + down[] = {"Level0",{-0.23,0.025},1}; + }; + + class VALM_2_0: VALM_1_0 { + align = "right"; + pos[] = {"Level0",{0.22,-0.025},1}; + right[] = {"Level0",{0.32,-0.025},1}; + down[] = {"Level0",{0.22,0.025},1}; + }; + + class LevelM5: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM5",{-0.2,-0.03},1}, + {"LevelM5",{-0.2,0},1}, + {"LevelM5",{-0.15,0},1},{}, + {"LevelM5",{-0.1,0},1}, + {"LevelM5",{-0.05,0},1},{}, + {"LevelM5",{0.05,0},1}, + {"LevelM5",{0.1,0},1},{}, + {"LevelM5",{0.15,0},1}, + {"LevelM5",{0.2,0},1}, + {"LevelM5",{0.2,-0.03},1} + }; + }; + + class VALM_1_5 { + type = "text"; + source = "static"; + text = -5; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM5",{-0.22,-0.085},1}; + right[] = {"LevelM5",{-0.17,-0.085},1}; + down[] = {"LevelM5",{-0.22,-0.035},1}; + }; + + class VALM_2_5: VALM_1_5 { + align = "right"; + pos[] = {"LevelM5",{0.22,-0.085},1}; + right[] = {"LevelM5",{0.27,-0.085},1}; + down[] = {"LevelM5",{0.22,-0.035},1}; + }; + + class LevelP5: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP5",{-0.2,0.03},1}, + {"LevelP5",{-0.2,0},1}, + {"LevelP5",{-0.05,0},1},{}, + {"LevelP5",{0.05,0},1}, + {"LevelP5",{0.2,0},1}, + {"LevelP5",{0.2,0.03},1} + }; + }; + + class VALP_1_5 { + type = "text"; + source = "static"; + text = "5"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP5",{-0.22,0.035},1}; + right[] = {"LevelP5",{-0.17,0.035},1}; + down[] = {"LevelP5",{-0.22,0.085},1}; + }; + + class VALP_2_5: VALP_1_5 { + align = "right"; + pos[] = {"LevelP5",{0.22,0.035},1}; + right[] = {"LevelP5",{0.27,0.035},1}; + down[] = {"LevelP5",{0.22,0.085},1}; + };*/ + + class LevelM10: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM10",{-0.2,-0.03},1}, + {"LevelM10",{-0.2,0},1}, + {"LevelM10",{-0.15,0},1},{}, + {"LevelM10",{-0.1,0},1}, + {"LevelM10",{-0.05,0},1},{}, + {"LevelM10",{0.05,0},1}, + {"LevelM10",{0.1,0},1},{}, + {"LevelM10",{0.15,0},1}, + {"LevelM10",{0.2,0},1}, + {"LevelM10",{0.2,-0.03},1} + }; + }; + + class VALM_1_10 { + type = "text"; + source = "static"; + text = -10; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM10",{-0.22,-0.085},1}; + right[] = {"LevelM10",{-0.17,-0.085},1}; + down[] = {"LevelM10",{-0.22,-0.035},1}; + }; + + class VALM_2_10: VALM_1_10 { + align = "right"; + pos[] = {"LevelM10",{0.22,-0.085},1}; + right[] = {"LevelM10",{0.27,-0.085},1}; + down[] = {"LevelM10",{0.22,-0.035},1}; + }; + + class LevelP10: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP10",{-0.2,0.03},1}, + {"LevelP10",{-0.2,0},1}, + {"LevelP10",{-0.05,0},1},{}, + {"LevelP10",{0.05,0},1}, + {"LevelP10",{0.2,0},1}, + {"LevelP10",{0.2,0.03},1} + }; + }; + + class VALP_1_10 { + type = "text"; + source = "static"; + text = "10"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP10",{-0.22,0.035},1}; + right[] = {"LevelP10",{-0.17,0.035},1}; + down[] = {"LevelP10",{-0.22,0.085},1}; + }; + + class VALP_2_10: VALP_1_10 { + align = "right"; + pos[] = {"LevelP10",{0.22,0.035},1}; + right[] = {"LevelP10",{0.27,0.035},1}; + down[] = {"LevelP10",{0.22,0.085},1}; + }; + + /*class LevelM15: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM15",{-0.2,-0.03},1}, + {"LevelM15",{-0.2,0},1}, + {"LevelM15",{-0.15,0},1},{}, + {"LevelM15",{-0.1,0},1}, + {"LevelM15",{-0.05,0},1},{}, + {"LevelM15",{0.05,0},1}, + {"LevelM15",{0.1,0},1},{}, + {"LevelM15",{0.15,0},1}, + {"LevelM15",{0.2,0},1}, + {"LevelM15",{0.2,-0.03},1} + }; + }; + + class VALM_1_15 { + type = "text"; + source = "static"; + text = -15; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM15",{-0.22,-0.085},1}; + right[] = {"LevelM15",{-0.17,-0.085},1}; + down[] = {"LevelM15",{-0.22,-0.035},1}; + }; + + class VALM_2_15: VALM_1_15 { + align = "right"; + pos[] = {"LevelM15",{0.22,-0.085},1}; + right[] = {"LevelM15",{0.27,-0.085},1}; + down[] = {"LevelM15",{0.22,-0.035},1}; + }; + + class LevelP15: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP15",{-0.2,0.03},1}, + {"LevelP15",{-0.2,0},1}, + {"LevelP15",{-0.05,0},1},{}, + {"LevelP15",{0.05,0},1}, + {"LevelP15",{0.2,0},1}, + {"LevelP15",{0.2,0.03},1} + }; + }; + + class VALP_1_15 { + type = "text"; + source = "static"; + text = "15"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP15",{-0.22,0.035},1}; + right[] = {"LevelP15",{-0.17,0.035},1}; + down[] = {"LevelP15",{-0.22,0.085},1}; + }; + + class VALP_2_15: VALP_1_15 { + align = "right"; + pos[] = {"LevelP15",{0.22,0.035},1}; + right[] = {"LevelP15",{0.27,0.035},1}; + down[] = {"LevelP15",{0.22,0.085},1}; + };*/ + + class LevelM20: Level0 { + type = "line"; + width = 3; + points[] = {{"LevelM20",{-0.2,-0.03},1},{"LevelM20",{-0.2,0},1},{"LevelM20",{-0.15,0},1},{},{"LevelM20",{-0.1,0},1},{"LevelM20",{-0.05,0},1},{},{"LevelM20",{0.05,0},1},{"LevelM20",{0.1,0},1},{},{"LevelM20",{0.15,0},1},{"LevelM20",{0.2,0},1},{"LevelM20",{0.2,-0.03},1}}; + }; + + class VALM_1_20 { + type = "text"; + source = "static"; + text = -20; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM20",{-0.22,-0.085},1}; + right[] = {"LevelM20",{-0.17,-0.085},1}; + down[] = {"LevelM20",{-0.22,-0.035},1}; + }; + + class VALM_2_20: VALM_1_20 { + align = "right"; + pos[] = {"LevelM20",{0.22,-0.085},1}; + right[] = {"LevelM20",{0.27,-0.085},1}; + down[] = {"LevelM20",{0.22,-0.035},1}; + }; + + class LevelP20: Level0 { + type = "line"; + width = 3; + points[] = {{"LevelP20",{-0.2,0.03},1},{"LevelP20",{-0.2,0},1},{"LevelP20",{-0.05,0},1},{},{"LevelP20",{0.05,0},1},{"LevelP20",{0.2,0},1},{"LevelP20",{0.2,0.03},1}}; + }; + + class VALP_1_20 { + type = "text"; + source = "static"; + text = "20"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP20",{-0.22,0.035},1}; + right[] = {"LevelP20",{-0.17,0.035},1}; + down[] = {"LevelP20",{-0.22,0.085},1}; + }; + + class VALP_2_20: VALP_1_20 { + align = "right"; + pos[] = {"LevelP20",{0.22,0.035},1}; + right[] = {"LevelP20",{0.27,0.035},1}; + down[] = {"LevelP20",{0.22,0.085},1}; + }; + + /*class LevelM25: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM25",{-0.2,-0.03},1}, + {"LevelM25",{-0.2,0},1}, + {"LevelM25",{-0.15,0},1},{}, + {"LevelM25",{-0.1,0},1}, + {"LevelM25",{-0.05,0},1},{}, + {"LevelM25",{0.05,0},1}, + {"LevelM25",{0.1,0},1},{}, + {"LevelM25",{0.15,0},1}, + {"LevelM25",{0.2,0},1}, + {"LevelM25",{0.2,-0.03},1} + }; + }; + + class VALM_1_25 { + type = "text"; + source = "static"; + text = -25; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM25",{-0.22,-0.085},1}; + right[] = {"LevelM25",{-0.17,-0.085},1}; + down[] = {"LevelM25",{-0.22,-0.035},1}; + }; + + class VALM_2_25: VALM_1_25 { + align = "right"; + pos[] = {"LevelM25",{0.22,-0.085},1}; + right[] = {"LevelM25",{0.27,-0.085},1}; + down[] = {"LevelM25",{0.22,-0.035},1}; + }; + + class LevelP25: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP25",{-0.2,0.03},1}, + {"LevelP25",{-0.2,0},1}, + {"LevelP25",{-0.05,0},1},{}, + {"LevelP25",{0.05,0},1}, + {"LevelP25",{0.2,0},1}, + {"LevelP25",{0.2,0.03},1} + }; + }; + + class VALP_1_25 { + type = "text"; + source = "static"; + text = "25"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP25",{-0.22,0.035},1}; + right[] = {"LevelP25",{-0.17,0.035},1}; + down[] = {"LevelP25",{-0.22,0.085},1}; + }; + + class VALP_2_25: VALP_1_25 { + align = "right"; + pos[] = {"LevelP25",{0.22,0.035},1}; + right[] = {"LevelP25",{0.27,0.035},1}; + down[] = {"LevelP25",{0.22,0.085},1}; + };*/ + + class LevelM30: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM30",{-0.2,-0.03},1}, + {"LevelM30",{-0.2,0},1}, + {"LevelM30",{-0.15,0},1},{}, + {"LevelM30",{-0.1,0},1}, + {"LevelM30",{-0.05,0},1},{}, + {"LevelM30",{0.05,0},1}, + {"LevelM30",{0.1,0},1},{}, + {"LevelM30",{0.15,0},1}, + {"LevelM30",{0.2,0},1}, + {"LevelM30",{0.2,-0.03},1} + }; + }; + + class VALM_1_30 { + type = "text"; + source = "static"; + text = -30; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM30",{-0.22,-0.085},1}; + right[] = {"LevelM30",{-0.17,-0.085},1}; + down[] = {"LevelM30",{-0.22,-0.035},1}; + }; + + class VALM_2_30: VALM_1_30 { + align = "right"; + pos[] = {"LevelM30",{0.22,-0.085},1}; + right[] = {"LevelM30",{0.27,-0.085},1}; + down[] = {"LevelM30",{0.22,-0.035},1}; + }; + + class LevelP30: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP30",{-0.2,0.03},1}, + {"LevelP30",{-0.2,0},1}, + {"LevelP30",{-0.05,0},1},{}, + {"LevelP30",{0.05,0},1}, + {"LevelP30",{0.2,0},1}, + {"LevelP30",{0.2,0.03},1} + }; + }; + + class VALP_1_30 { + type = "text"; + source = "static"; + text = "30"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP30",{-0.22,0.035},1}; + right[] = {"LevelP30",{-0.17,0.035},1}; + down[] = {"LevelP30",{-0.22,0.085},1}; + }; + + class VALP_2_30: VALP_1_30 { + align = "right"; + pos[] = {"LevelP30",{0.22,0.035},1}; + right[] = {"LevelP30",{0.27,0.035},1}; + down[] = {"LevelP30",{0.22,0.085},1}; + }; + + /*class LevelM35: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM35",{-0.2,-0.03},1}, + {"LevelM35",{-0.2,0},1}, + {"LevelM35",{-0.15,0},1},{}, + {"LevelM35",{-0.1,0},1}, + {"LevelM35",{-0.05,0},1},{}, + {"LevelM35",{0.05,0},1}, + {"LevelM35",{0.1,0},1},{}, + {"LevelM35",{0.15,0},1}, + {"LevelM35",{0.2,0},1}, + {"LevelM35",{0.2,-0.03},1} + }; + }; + + class VALM_1_35 { + type = "text"; + source = "static"; + text = -35; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM35",{-0.22,-0.085},1}; + right[] = {"LevelM35",{-0.17,-0.085},1}; + down[] = {"LevelM35",{-0.22,-0.035},1}; + }; + + class VALM_2_35: VALM_1_35 { + align = "right"; + pos[] = {"LevelM35",{0.22,-0.085},1}; + right[] = {"LevelM35",{0.27,-0.085},1}; + down[] = {"LevelM35",{0.22,-0.035},1}; + }; + + class LevelP35: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP35",{-0.2,0.03},1}, + {"LevelP35",{-0.2,0},1}, + {"LevelP35",{-0.05,0},1},{}, + {"LevelP35",{0.05,0},1}, + {"LevelP35",{0.2,0},1}, + {"LevelP35",{0.2,0.03},1} + }; + }; + + class VALP_1_35 { + type = "text"; + source = "static"; + text = "35"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP35",{-0.22,0.035},1}; + right[] = {"LevelP35",{-0.17,0.035},1}; + down[] = {"LevelP35",{-0.22,0.085},1}; + }; + + class VALP_2_35: VALP_1_35 { + align = "right"; + pos[] = {"LevelP35",{0.22,0.035},1}; + right[] = {"LevelP35",{0.27,0.035},1}; + down[] = {"LevelP35",{0.22,0.085},1}; + };*/ + + class LevelM40: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM40",{-0.2,-0.03},1}, + {"LevelM40",{-0.2,0},1}, + {"LevelM40",{-0.15,0},1},{}, + {"LevelM40",{-0.1,0},1}, + {"LevelM40",{-0.05,0},1},{}, + {"LevelM40",{0.05,0},1}, + {"LevelM40",{0.1,0},1},{}, + {"LevelM40",{0.15,0},1}, + {"LevelM40",{0.2,0},1}, + {"LevelM40",{0.2,-0.03},1} + }; + }; + + class VALM_1_40 { + type = "text"; + source = "static"; + text = -40; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM40",{-0.22,-0.085},1}; + right[] = {"LevelM40",{-0.17,-0.085},1}; + down[] = {"LevelM40",{-0.22,-0.035},1}; + }; + + class VALM_2_40: VALM_1_40 { + align = "right"; + pos[] = {"LevelM40",{0.22,-0.085},1}; + right[] = {"LevelM40",{0.27,-0.085},1}; + down[] = {"LevelM40",{0.22,-0.035},1}; + }; + + class LevelP40: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP40",{-0.2,0.03},1}, + {"LevelP40",{-0.2,0},1}, + {"LevelP40",{-0.05,0},1},{}, + {"LevelP40",{0.05,0},1}, + {"LevelP40",{0.2,0},1}, + {"LevelP40",{0.2,0.03},1} + }; + }; + + class VALP_1_40 { + type = "text"; + source = "static"; + text = "40"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP40",{-0.22,0.035},1}; + right[] = {"LevelP40",{-0.17,0.035},1}; + down[] = {"LevelP40",{-0.22,0.085},1}; + }; + + class VALP_2_40: VALP_1_40 { + align = "right"; + pos[] = {"LevelP40",{0.22,0.035},1}; + right[] = {"LevelP40",{0.27,0.035},1}; + down[] = {"LevelP40",{0.22,0.085},1}; + }; + + /*class LevelM45: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM45",{-0.2,-0.03},1}, + {"LevelM45",{-0.2,0},1}, + {"LevelM45",{-0.15,0},1},{}, + {"LevelM45",{-0.1,0},1}, + {"LevelM45",{-0.05,0},1},{}, + {"LevelM45",{0.05,0},1}, + {"LevelM45",{0.1,0},1},{}, + {"LevelM45",{0.15,0},1}, + {"LevelM45",{0.2,0},1}, + {"LevelM45",{0.2,-0.03},1} + }; + }; + + class VALM_1_45 { + type = "text"; + source = "static"; + text = -45; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM45",{-0.22,-0.085},1}; + right[] = {"LevelM45",{-0.17,-0.085},1}; + down[] = {"LevelM45",{-0.22,-0.035},1}; + }; + + class VALM_2_45: VALM_1_45 { + align = "right"; + pos[] = {"LevelM45",{0.22,-0.085},1}; + right[] = {"LevelM45",{0.27,-0.085},1}; + down[] = {"LevelM45",{0.22,-0.035},1}; + }; + + class LevelP45: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP45",{-0.2,0.03},1}, + {"LevelP45",{-0.2,0},1}, + {"LevelP45",{-0.05,0},1},{}, + {"LevelP45",{0.05,0},1}, + {"LevelP45",{0.2,0},1}, + {"LevelP45",{0.2,0.03},1} + }; + }; + + class VALP_1_45 { + type = "text"; + source = "static"; + text = "45"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP45",{-0.22,0.035},1}; + right[] = {"LevelP45",{-0.17,0.035},1}; + down[] = {"LevelP45",{-0.22,0.085},1}; + }; + + class VALP_2_45: VALP_1_45 { + align = "right"; + pos[] = {"LevelP45",{0.22,0.035},1}; + right[] = {"LevelP45",{0.27,0.035},1}; + down[] = {"LevelP45",{0.22,0.085},1}; + };*/ + + class LevelM50: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelM50",{-0.2,-0.03},1}, + {"LevelM50",{-0.2,0},1}, + {"LevelM50",{-0.15,0},1},{}, + {"LevelM50",{-0.1,0},1}, + {"LevelM50",{-0.05,0},1},{}, + {"LevelM50",{0.05,0},1}, + {"LevelM50",{0.1,0},1},{}, + {"LevelM50",{0.15,0},1}, + {"LevelM50",{0.2,0},1}, + {"LevelM50",{0.2,-0.03},1} + }; + }; + + class VALM_1_50 { + type = "text"; + source = "static"; + text = -50; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelM50",{-0.22,-0.085},1}; + right[] = {"LevelM50",{-0.17,-0.085},1}; + down[] = {"LevelM50",{-0.22,-0.035},1}; + }; + + class VALM_2_50: VALM_1_50 { + align = "right"; + pos[] = {"LevelM50",{0.22,-0.085},1}; + right[] = {"LevelM50",{0.27,-0.085},1}; + down[] = {"LevelM50",{0.22,-0.035},1}; + }; + + class LevelP50: Level0 { + type = "line"; + width = 3; + points[] = { + {"LevelP50",{-0.2,0.03},1}, + {"LevelP50",{-0.2,0},1}, + {"LevelP50",{-0.05,0},1},{}, + {"LevelP50",{0.05,0},1}, + {"LevelP50",{0.2,0},1}, + {"LevelP50",{0.2,0.03},1} + }; + }; + + class VALP_1_50 { + type = "text"; + source = "static"; + text = "50"; + align = "left"; + scale = 1; + sourceScale = 1; + pos[] = {"LevelP50",{-0.22,0.035},1}; + right[] = {"LevelP50",{-0.17,0.035},1}; + down[] = {"LevelP50",{-0.22,0.085},1}; + }; + + class VALP_2_50: VALP_1_50 { + align = "right"; + pos[] = {"LevelP50",{0.22,0.035},1}; + right[] = {"LevelP50",{0.27,0.035},1}; + down[] = {"LevelP50",{0.22,0.085},1}; + }; + }; + }; + + class StaticBank { + type = "line"; + width = 3; + points[] = { + {{0.4782,0.251},1}, + {{0.4773,0.241},1},{}, + {{0.4566,0.2538},1}, + {{0.4549,0.2439},1},{}, + {{0.4353,0.2585},1}, + {{0.4301,0.2392},1},{}, + {{0.4145,0.2651},1}, + {{0.4111,0.2557},1},{}, + {{0.3943,0.2734},1}, + {{0.3901,0.2644},1},{}, + {{0.375,0.2835},1}, + {{0.365,0.2662},1},{}, + {{0.3232,0.3232},1}, + {{0.3091,0.3091},1},{}, + {{0.2835,0.375},1}, + {{0.2662,0.365},1},{}, + {{"0.5 + (0.5- 0.4782)",0.251},1}, + {{"0.5 + (0.5- 0.4773)",0.241},1},{}, + {{"0.5 + (0.5- 0.4566)",0.2538},1}, + {{"0.5 + (0.5- 0.4549)",0.2439},1},{}, + {{"0.5 + (0.5- 0.4353)",0.2585},1}, + {{"0.5 + (0.5- 0.4301)",0.2392},1},{}, + {{"0.5 + (0.5- 0.4145)",0.2651},1}, + {{"0.5 + (0.5- 0.4111)",0.2557},1},{}, + {{"0.5 + (0.5- 0.3943)",0.2734},1}, + {{"0.5 + (0.5- 0.3901)",0.2644},1},{}, + {{"0.5 + (0.5- 0.3750)",0.2835},1}, + {{"0.5 + (0.5- 0.3650)",0.2662},1},{}, + {{"0.5 + (0.5- 0.3232)",0.3232},1}, + {{"0.5 + (0.5- 0.3091)",0.3091},1},{}, + {{"0.5 + (0.5- 0.2835)",0.375},1}, + {{"0.5 + (0.5- 0.2662)",0.365},1},{}, + {{0.5,"0.5 - 0.25"},1},{{0.5,"0.5 - 0.28"},1} + }; + }; + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = {{"HorizonBankRot",{0,0.25},1},{"HorizonBankRot",{-0.01,0.23},1},{"HorizonBankRot",{0.01,0.23},1},{"HorizonBankRot",{0,0.25},1}}; + }; + + class Centerline { + type = "line"; + width = 7; + points[] = {{{0.45,0.5},1},{{0.48,0.5},1},{{0.49,0.525},1},{{0.5,0.5},1},{{0.51,0.525},1},{{0.52,0.5},1},{{0.55,0.5},1}}; + }; + + /*class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.86},1}; + right[] = {{0.07,0.86},1}; + down[] = {{0.03,0.9},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.03,0.89},1}; + right[] = {{0.07,0.89},1}; + down[] = {{0.03,0.93},1}; + };*/ + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class GearGroup { + type = "group"; + condition = "ils"; + class GearText { + type = "text"; + source = "static"; + text = "GEAR"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.155"},1}; + right[] = {{0.07,"0.53 + 0.155"},1}; + down[] = {{0.03,"0.53 + 0.195"},1}; + }; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 488; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = {{{0.98,0.2},1},{{1,0.2},1},{},{{0.93,0.2},1},{{0.95,0.2},1},{},{{0.98,0.35},1},{{1,0.35},1},{},{{0.93,0.35},1},{{0.95,0.35},1},{},{{0.94,0.38},1},{{0.95,0.38},1},{},{{0.94,0.41},1},{{0.95,0.41},1},{},{{0.94,0.44},1},{{0.95,0.44},1},{},{{0.94,0.47},1},{{0.95,0.47},1},{},{{0.98,0.5},1},{{1,0.5},1},{},{{0.93,0.5},1},{{0.95,0.5},1},{},{{0.94,0.53},1},{{0.95,0.53},1},{},{{0.94,0.56},1},{{0.95,0.56},1},{},{{0.94,0.59},1},{{0.95,0.59},1},{},{{0.94,0.62},1},{{0.95,0.62},1},{},{{0.98,0.65},1},{{1,0.65},1},{},{{0.93,0.65},1},{{0.95,0.65},1},{},{{0.99,0.68},1},{{0.98,0.68},1},{},{{0.99,0.71},1},{{0.98,0.71},1},{},{{0.99,0.74},1},{{0.98,0.74},1},{},{{0.99,0.77},1},{{0.98,0.77},1},{},{{0.98,0.8},1},{{1,0.8},1},{},{{0.93,0.8},1},{{0.95,0.8},1},{}}; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + class radarbanda { + type = "line"; + width = 17; + points[] = {{"RadarAltitudeBone",{0,0},1},{"RadarAltitudeBone",{0,0.6},1}}; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = {{"VspeedBone",{-0.01,0},1},{"VspeedBone",{-0.025,-0.015},1},{"VspeedBone",{-0.025,0.015},1},{"VspeedBone",{-0.01,0},1},{}}; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = {{{0.44,0.005},1},{{"0.44 + 0.12",0.005},1},{{"0.44 + 0.12","0.005 + 0.06"},1},{{0.44,"0.005 + 0.06"},1},{{0.44,0.005},1}}; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = {{{"0.5","0.128 + 0.03"},1},{{0.5,0.128},1}}; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.119,"0.0 + 0.065"}; + right[] = {0.159,"0.0 + 0.065"}; + down[] = {0.119,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.85,0.86},1}; + right[] = {{0.89,0.86},1}; + down[] = {{0.85,0.9},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.92,0.86},1}; + right[] = {{0.96,0.86},1}; + down[] = {{0.92,0.9},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class WeaponAim1 { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.253,0.23}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = {{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1},{"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1},{"ForwardVec1",1,"Velocity",1,{0.02,0},1},{"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1},{"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1},{"ForwardVec1",1,"Velocity",1,{0,0.02},1},{"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1},{"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1},{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1},{"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1},{"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{},{"ForwardVec1",1,"Velocity",1,{0.04,0},1},{"ForwardVec1",1,"Velocity",1,{0.02,0},1},{},{"ForwardVec1",1,"Velocity",1,{-0.04,0},1},{"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{},{"ForwardVec1",1,"Velocity",1,{0,-0.04},1},{"ForwardVec1",1,"Velocity",1,{0,-0.02},1}}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_thunderbolt.hpp b/TO_MERGE/agm/Aircraft/mfd_thunderbolt.hpp new file mode 100644 index 0000000000..18571e8b1d --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_thunderbolt.hpp @@ -0,0 +1,1979 @@ + +class MFD { + class HUD_1 { + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0.12; + borderRight = 0.12; + borderTop = 0.05; + borderBottom = 0.15; + color[] = {0,1,0,0.1}; + enableParallax = 1; + class Bones { + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.38}; + pos10[] = {1.166,1.215}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.38}; + pos10[] = {1.166,1.215}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {1.215,1.215}; + }; + + class VerticalSpeed { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -100; + max = 100; + minPos[] = {0,0.15}; + maxPos[] = {0,-0.15}; + }; + + class center { + type = "fixed"; + pos[] = {0.5,0.38}; + }; + + class RangeBone { + type = "linear"; + source = "targetDist"; + sourceScale = 1; + min = 0; + max = 12000; + minPos[] = {0.08,0.4}; + maxPos[] = {0.08,0.6}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 500; + minPos[] = {0.71,0.4}; + maxPos[] = {0.71,0.6}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -50; + max = 50; + minPos[] = {0.94,0.4}; + maxPos[] = {0.94,0.6}; + }; + }; + + class Draw { + color[] = {0.15,1,0.15}; + alpha = 0.9; + clipTL[] = {0,0}; + clipBR[] = {1,1}; + condition = "on"; + class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1",0.85},1}; + right[] = {{"0.19 + 0.1",0.85},1}; + down[] = {{"0.15 + 0.1",0.89},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1",0.89},1}; + right[] = {{"0.19 + 0.1",0.89},1}; + down[] = {{"0.15 + 0.1",0.93},1}; + }; + + class GearGroup { + type = "group"; + condition = "ils"; + class GearText { + type = "text"; + source = "static"; + text = "GEAR"; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1","0.53 - 0.40"},1}; + right[] = {{"0.20 + 0.1","0.53 - 0.40"},1}; + down[] = {{"0.15 + 0.1","0.53 - 0.40 + 0.05"},1}; + }; + + class radarbanda { + type = "line"; + width = 4; + points[] = { + {"RadarAltitudeBone",{-0.005,0.005},1}, + {"RadarAltitudeBone",{-0.005,0},1}, + {"RadarAltitudeBone",{0,0},1}, + {{0.71,0.6},1},{}, + {{0.71,0.4},1}, + {{0.72,0.4},1},{}, + {{0.71,0.44},1}, + {{0.72,0.44},1},{}, + {{0.71,0.48},1}, + {{0.72,0.48},1},{}, + {{0.71,0.52},1}, + {{0.72,0.52},1},{}, + {{0.71,0.56},1}, + {{0.72,0.56},1},{}, + {{0.71,0.6},1}, + {{0.72,0.6},1} + }; + }; + + class radartext_5 { + type = "text"; + source = "static"; + text = "5"; + align = "right"; + scale = 1; + pos[] = {{0.721,"0.385 + 0.00"},1}; + right[] = {{0.751,"0.385 + 0.00"},1}; + down[] = {{0.721,"0.415 + 0.00"},1}; + }; + + class radartext_4 { + type = "text"; + source = "static"; + text = "4"; + align = "right"; + scale = 1; + pos[] = {{0.721,"0.385 + 0.04"},1}; + right[] = {{0.751,"0.385 + 0.04"},1}; + down[] = {{0.721,"0.415 + 0.04"},1}; + }; + + class radartext_3 { + type = "text"; + source = "static"; + text = "3"; + align = "right"; + scale = 1; + pos[] = {{0.721,"0.385 + 0.08"},1}; + right[] = {{0.751,"0.385 + 0.08"},1}; + down[] = {{0.721,"0.415 + 0.08"},1}; + }; + + class radartext_2 { + type = "text"; + source = "static"; + text = "2"; + align = "right"; + scale = 1; + pos[] = {{0.721,"0.385 + 0.120"},1}; + right[] = {{0.751,"0.385 + 0.120"},1}; + down[] = {{0.721,"0.415 + 0.120"},1}; + }; + + class radartext_1 { + type = "text"; + source = "static"; + text = "1"; + align = "right"; + scale = 1; + pos[] = {{0.721,"0.385 + 0.160"},1}; + right[] = {{0.751,"0.385 + 0.160"},1}; + down[] = {{0.721,"0.415 + 0.160"},1}; + }; + + class radartext_0 { + type = "text"; + source = "static"; + text = "0"; + align = "right"; + scale = 1; + pos[] = {{0.721,"0.385 + 0.200"},1}; + right[] = {{0.751,"0.385 + 0.200"},1}; + down[] = {{0.721,"0.415 + 0.200"},1}; + }; + + /*class Vspeedbanda { + type = "line"; + width = 4; + points[] = { + {"VspeedBone",{0.007,-0.007},1}, + {"VspeedBone",{0,0},1}, + {"VspeedBone",{0.007,0.007},1},{}, + {"VspeedBone",{0,0},1}, + {"VspeedBone",{0.012,0},1}, + {{0.952,0.5},1},{}, + {{0.92,0.4},1}, + {{0.94,0.4},1},{}, + {{0.92,0.42},1}, + {{0.93,0.42},1},{}, + {{0.92,0.44},1}, + {{0.93,0.44},1},{}, + {{0.92,0.46},1}, + {{0.93,0.46},1},{}, + {{0.92,0.48},1}, + {{0.93,0.48},1},{}, + {{0.92,0.5},1}, + {{0.94,0.5},1},{}, + {{0.92,0.52},1}, + {{0.93,0.52},1},{}, + {{0.92,0.54},1}, + {{0.93,0.54},1},{}, + {{0.92,0.56},1}, + {{0.93,0.56},1},{}, + {{0.92,0.58},1}, + {{0.93,0.58},1},{}, + {{0.92,0.6},1}, + {{0.94,0.6},1} + }; + };*/ + }; + + class Vspeedbanda1 { + type = "line"; + width = 4; + points[] = { + {"VspeedBone",{0.007,-0.007},1}, + {"VspeedBone",{0,0},1}, + {"VspeedBone",{0.007,0.007},1},{}, + {"VspeedBone",{0,0},1}, + {"VspeedBone",{0.012,0},1}, + {{0.952,0.5},1},{}, + {{0.92,0.4},1}, + {{0.94,0.4},1},{}, + {{0.92,0.42},1}, + {{0.93,0.42},1},{}, + {{0.92,0.44},1}, + {{0.93,0.44},1},{}, + {{0.92,0.46},1}, + {{0.93,0.46},1},{}, + {{0.92,0.48},1}, + {{0.93,0.48},1},{}, + {{0.92,0.5},1}, + {{0.94,0.5},1},{}, + {{0.92,0.52},1}, + {{0.93,0.52},1},{}, + {{0.92,0.54},1}, + {{0.93,0.54},1},{}, + {{0.92,0.56},1}, + {{0.93,0.56},1},{}, + {{0.92,0.58},1}, + {{0.93,0.58},1},{}, + {{0.92,0.6},1}, + {{0.94,0.6},1} + }; + }; + + class StallGroup { + type = "group"; + condition = "stall"; + color[] = {1,0,0}; + blinkingPattern[] = {0.2,0.2}; + blinkingStartsOn = 1; + class StallText { + type = "text"; + source = "static"; + text = "STALL"; + align = "center"; + scale = 1; + pos[] = {{0.5,"0.53 - 0.25"},1}; + right[] = {{0.55,"0.53 - 0.25"},1}; + down[] = {{0.5,"0.53 - 0.21"},1}; + }; + }; + + class FLAPSGroup { + type = "group"; + condition = "flaps"; + class FLAPSText { + type = "text"; + source = "static"; + text = "FLAPS"; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1","0.53 - 0.35"},1}; + right[] = {{"0.20 + 0.1","0.53 - 0.35"},1}; + down[] = {{"0.15 + 0.1","0.53 - 0.35 + 0.05"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1","0.53 - 0.25"},1}; + right[] = {{"0.20 + 0.1","0.53 - 0.25"},1}; + down[] = {{"0.15 + 0.1","0.53 - 0.25 + 0.05"},1}; + }; + }; + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LLS"; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1","0.53 - 0.30"},1}; + right[] = {{"0.20 + 0.1","0.53 - 0.30"},1}; + down[] = {{"0.15 + 0.1","0.53 - 0.30 + 0.05"},1}; + }; + }; + + class SpeedNumber { + type = "text"; + align = "left"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{"0.15 + 0.1",0.47},1}; + right[] = {{"0.21 + 0.1",0.47},1}; + down[] = {{"0.15 + 0.1",0.53},1}; + }; + + /*class GroundSpeedNumber { + type = "text"; + align = "left"; + scale = 1; + source = "sqrt((speed*speed)-(vspeed*vspeed))"; + sourceScale = 3.6; + pos[] = {{"0.15 + 0.1",0.37},1}; + right[] = {{"0.21 + 0.1",0.37},1}; + down[] = {{"0.15 + 0.1",0.43},1}; + };*/ + + class MachNumber { + type = "text"; + align = "left"; + scale = 1; + source = "speed"; + sourceScale = 0.0288; + pos[] = {{"0.12 + 0.1",0.53},1}; + right[] = {{"0.17 + 0.1",0.53},1}; + down[] = {{"0.12 + 0.1",0.58},1}; + }; + + class MachText { + type = "text"; + source = "static"; + text = "0."; + align = "left"; + scale = 1; + pos[] = {{"0.09 + 0.1",0.53},1}; + right[] = {{"0.14 + 0.1",0.53},1}; + down[] = {{"0.09 + 0.1",0.58},1}; + }; + + class MachTextM { + type = "text"; + source = "static"; + text = "M"; + align = "left"; + scale = 1; + pos[] = {{"0.1501 + 0.1",0.53},1}; + right[] = {{"0.2001 + 0.1",0.53},1}; + down[] = {{"0.1501 + 0.1",0.58},1}; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "right"; + pos[] = {{"0.85 - 0.1",0.15},1}; + right[] = {{"0.90 - 0.1",0.15},1}; + down[] = {{"0.85 - 0.1",0.2},1}; + }; + + class AltNumber: SpeedNumber { + align = "right"; + source = "altitudeASL"; + sourceScale = 1; + pos[] = {{"0.85 - 0.1",0.47},1}; + right[] = {{"0.91 - 0.1",0.47},1}; + down[] = {{"0.85 - 0.1",0.53},1}; + }; + + class PitcherNumber: SpeedNumber { + type = "text"; + source = "horizonDive"; + sourceScale = 57.2958; + align = "right"; + scale = 1; + pos[] = {{"0.85 - 0.1",0.54},1}; + right[] = {{"0.90 - 0.1",0.54},1}; + down[] = {{"0.85 - 0.1",0.59},1}; + }; + + class AGLText { + type = "text"; + source = "static"; + text = "AGL/"; + align = "right"; + scale = 1; + pos[] = {{"0.85 - 0.1",0.76},1}; + right[] = {{"0.89000002 - 0.1",0.76},1}; + down[] = {{"0.85 - 0.1",0.8},1}; + }; + + class AGLNumber { + type = "text"; + source = "altitudeAGL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{"0.85 - 0.1",0.8},1}; + right[] = {{"0.89 - 0.1",0.8},1}; + down[] = {{"0.85 - 0.1",0.84},1}; + }; + + class ClimbText { + type = "text"; + source = "static"; + text = "CLIMB/"; + align = "right"; + scale = 1; + pos[] = {{"0.85 - 0.1",0.85001},1}; + right[] = {{"0.89 - 0.1",0.85001},1}; + down[] = {{"0.85 - 0.1",0.89001},1}; + }; + + class ClimbNumber { + type = "text"; + source = "vspeed"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{"0.85 - 0.1",0.89001},1}; + right[] = {{"0.89 - 0.1",0.89001},1}; + down[] = {{"0.85 - 0.1",0.93001},1}; + }; + + class RangeText { + type = "text"; + source = "static"; + text = "RNG/"; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1",0.76},1}; + right[] = {{"0.19 + 0.1",0.76},1}; + down[] = {{"0.15 + 0.1",0.8},1}; + }; + + class RangeNumber { + type = "text"; + source = "targetDist"; + sourceScale = 1; + align = "left"; + scale = 1; + pos[] = {{"0.15 + 0.1",0.8},1}; + right[] = {{"0.19 + 0.1",0.8},1}; + down[] = {{"0.15 + 0.1",0.84},1}; + }; + + class ATRangeScale { + condition = "ATmissile"; + type = "group"; + class RangeBand { + type = "line"; + width = 3; + points[] = { + {"RangeBone",{0,0},1}, + {"RangeBone",{-0.01,-0.01},1}, + {"RangeBone",{-0.01,0.01},1}, + {"RangeBone",{0,0},1} + }; + }; + + class ATMissileRange { + type = "line"; + width = 3; + points[] = { + {{0.08,0.4},1}, + {{0.1,0.4},1},{}, + {{0.08,0.467},1}, + {{0.1,0.467},1},{}, + {{0.08,0.567},1}, + {{0.1,0.567},1},{}, + {{0.08,0.6},1}, + {{0.1,0.6},1},{}, + {{0.08,0.467},1}, + {{0.08,0.567},1},{} + }; + }; + }; + + class HeadingArrow { + type = "line"; + width = 4; + points[] = { + {{0.5,0.95},1}, + {{0.515,0.965},1}, + {{0.485,0.965},1}, + {{0.5,0.95},1} + }; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 0.1; + width = 5; + top = 0.35; + center = 0.5; + bottom = 0.65; + lineXleft = "0.06 + 0.89"; + lineYright = "0.05 + 0.89"; + lineXleftMajor = "0.06 + 0.89"; + lineYrightMajor = "0.04 + 0.89"; + majorLineEach = 2; + numberEach = 2; + step = "1 / 2"; + stepSize = "(0.65 - 0.35) / 5"; + align = "center"; + scale = 1; + pos[] = {0.35,"0.0 + 0.89"}; + right[] = {0.38,"0.0 + 0.89"}; + down[] = {0.35,"0.03 + 0.89"}; + }; + }; + }; + + class HUD_2 { + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0.12; + borderRight = 0.12; + borderTop = 0.05; + borderBottom = 0.15; + color[] = {0,1,0,0.1}; + enableParallax = 1; + class Bones { + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0,0}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0,0}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.32}; + min = 3.1416; + max = -3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.2,0.35}; + maxPos[] = {0.2,0.65}; + }; + + class ILS_H { + type = "ils"; + pos0[] = {0.5,0.32}; + pos3[] = {0.7,0.32}; + }; + + class ILS_W: ILS_H { + pos3[] = {0.5,0.53}; + }; + + class WeaponAimGUN { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.32}; + pos10[] = {" 0.5 + 0.253 "," 0.32 + 0.253 "}; + }; + + class WeaponAimROCKET { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.39}; + pos10[] = {" 0.5 + 0.253 "," 0.390 + 0.253 "}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 0.1; + min = 0; + max = 200; + minPos[] = {0.5,0.1}; + maxPos[] = {0.5,0.85}; + }; + + class TargetSelected { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.32}; + pos10[] = {1.382,1.145}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.32}; + pos10[] = {0.8,0.62}; + }; + + class center { + type = "fixed"; + pos[] = {0.5,0.38}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.32}; + pos10[] = {1.5,1.32}; + angle = 0; + }; + + class LevelP5: Level0 { + angle = 5; + }; + + class LevelM5: Level0 { + angle = -5; + }; + + class LevelP10: Level0 { + angle = 10; + }; + + class LevelM10: Level0 { + angle = -10; + }; + + class LevelP15: Level0 { + angle = 15; + }; + + class LevelM15: Level0 { + angle = -15; + }; + + class LevelP20: Level0 { + angle = 20; + }; + + class LevelM20: Level0 { + angle = -20; + }; + + class LevelP25: Level0 { + angle = 25; + }; + + class LevelM25: Level0 { + angle = -25; + }; + + class LevelP30: Level0 { + angle = 30; + }; + + class LevelM30: Level0 { + angle = -30; + }; + + class LevelP35: Level0 { + angle = 35; + }; + + class LevelM35: Level0 { + angle = -35; + }; + + class LevelP40: Level0 { + angle = 40; + }; + + class LevelM40: Level0 { + angle = -40; + }; + + class LevelP45: Level0 { + angle = 45; + }; + + class LevelM45: Level0 { + angle = -45; + }; + + class LevelP50: Level0 { + angle = 50; + }; + + class LevelM50: Level0 { + angle = -50; + }; + }; + + class Draw { + color[] = {0.15,1,0.15}; + alpha = 0.9; + clipTL[] = {0,0}; + clipBR[] = {1,1}; + condition = "on"; + class Horizont { + clipTL[] = {0.1,0.1}; + clipBR[] = {0.9,0.9}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.2,0},1}, + {"Level0",{-0.05,0},1},{}, + {"Level0",{0.05,0},1}, + {"Level0",{0.2,0},1} + }; + }; + + /*class VALM_1_0 { + type = "text"; + source = "static"; + text = 0; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"Level0",{-0.23,-0.025},1}; + right[] = {"Level0",{-0.13,-0.025},1}; + down[] = {"Level0",{-0.23,0.025},1}; + }; + + class VALM_2_0: VALM_1_0 { + align = "right"; + pos[] = {"Level0",{0.22,-0.025},1}; + right[] = {"Level0",{0.32,-0.025},1}; + down[] = {"Level0",{0.22,0.025},1}; + };*/ + + class LevelM5: Level0 { + type = "line"; + points[] = { + {"LevelM5",{-0.2,-0.03},1}, + {"LevelM5",{-0.2,0},1}, + {"LevelM5",{-0.15,0},1},{}, + {"LevelM5",{-0.1,0},1}, + {"LevelM5",{-0.05,0},1},{}, + {"LevelM5",{0.05,0},1}, + {"LevelM5",{0.1,0},1},{}, + {"LevelM5",{0.15,0},1}, + {"LevelM5",{0.2,0},1}, + {"LevelM5",{0.2,-0.03},1} + }; + }; + + class VALM_1_5 { + type = "text"; + source = "static"; + text = -5; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM5",{-0.23,-0.085},1}; + right[] = {"LevelM5",{-0.13,-0.085},1}; + down[] = {"LevelM5",{-0.23,-0.035},1}; + }; + + class VALM_2_5: VALM_1_5 { + align = "right"; + pos[] = {"LevelM5",{0.22,-0.085},1}; + right[] = {"LevelM5",{0.32,-0.085},1}; + down[] = {"LevelM5",{0.22,-0.035},1}; + }; + + class LevelP5: Level0 { + type = "line"; + points[] = { + {"LevelP5",{-0.2,0.03},1}, + {"LevelP5",{-0.2,0},1}, + {"LevelP5",{-0.05,0},1},{}, + {"LevelP5",{0.05,0},1}, + {"LevelP5",{0.2,0},1}, + {"LevelP5",{0.2,0.03},1} + }; + }; + + class VALP_1_5 { + type = "text"; + source = "static"; + text = "5"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP5",{-0.23,0.035},1}; + right[] = {"LevelP5",{-0.13,0.035},1}; + down[] = {"LevelP5",{-0.23,0.085},1}; + }; + + class VALP_2_5: VALP_1_5 { + align = "right"; + pos[] = {"LevelP5",{0.22,0.035},1}; + right[] = {"LevelP5",{0.32,0.035},1}; + down[] = {"LevelP5",{0.22,0.085},1}; + }; + + class LevelM10: Level0 { + type = "line"; + points[] = { + {"LevelM10",{-0.2,-0.03},1}, + {"LevelM10",{-0.2,0},1}, + {"LevelM10",{-0.15,0},1},{}, + {"LevelM10",{-0.1,0},1}, + {"LevelM10",{-0.05,0},1},{}, + {"LevelM10",{0.05,0},1}, + {"LevelM10",{0.1,0},1},{}, + {"LevelM10",{0.15,0},1}, + {"LevelM10",{0.2,0},1}, + {"LevelM10",{0.2,-0.03},1} + }; + }; + + class VALM_1_10 { + type = "text"; + source = "static"; + text = -10; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM10",{-0.23,-0.085},1}; + right[] = {"LevelM10",{-0.13,-0.085},1}; + down[] = {"LevelM10",{-0.23,-0.035},1}; + }; + + class VALM_2_10: VALM_1_10 { + align = "right"; + pos[] = {"LevelM10",{0.22,-0.085},1}; + right[] = {"LevelM10",{0.32,-0.085},1}; + down[] = {"LevelM10",{0.22,-0.035},1}; + }; + + class LevelP10: Level0 { + type = "line"; + points[] = { + {"LevelP10",{-0.2,0.03},1}, + {"LevelP10",{-0.2,0},1}, + {"LevelP10",{-0.05,0},1},{}, + {"LevelP10",{0.05,0},1}, + {"LevelP10",{0.2,0},1}, + {"LevelP10",{0.2,0.03},1} + }; + }; + + class VALP_1_10 { + type = "text"; + source = "static"; + text = "10"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP10",{-0.23,0.035},1}; + right[] = {"LevelP10",{-0.13,0.035},1}; + down[] = {"LevelP10",{-0.23,0.085},1}; + }; + + class VALP_2_10: VALP_1_10 { + align = "right"; + pos[] = {"LevelP10",{0.22,0.035},1}; + right[] = {"LevelP10",{0.32,0.035},1}; + down[] = {"LevelP10",{0.22,0.085},1}; + }; + + class LevelM15: Level0 { + type = "line"; + points[] = { + {"LevelM15",{-0.2,-0.03},1}, + {"LevelM15",{-0.2,0},1}, + {"LevelM15",{-0.15,0},1},{}, + {"LevelM15",{-0.1,0},1}, + {"LevelM15",{-0.05,0},1},{}, + {"LevelM15",{0.05,0},1}, + {"LevelM15",{0.1,0},1},{}, + {"LevelM15",{0.15,0},1}, + {"LevelM15",{0.2,0},1}, + {"LevelM15",{0.2,-0.03},1} + }; + }; + + class VALM_1_15 { + type = "text"; + source = "static"; + text = -15; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM15",{-0.23,-0.085},1}; + right[] = {"LevelM15",{-0.13,-0.085},1}; + down[] = {"LevelM15",{-0.23,-0.035},1}; + }; + + class VALM_2_15: VALM_1_15 { + align = "right"; + pos[] = {"LevelM15",{0.22,-0.085},1}; + right[] = {"LevelM15",{0.32,-0.085},1}; + down[] = {"LevelM15",{0.22,-0.035},1}; + }; + + class LevelP15: Level0 { + type = "line"; + points[] = { + {"LevelP15",{-0.2,0.03},1}, + {"LevelP15",{-0.2,0},1}, + {"LevelP15",{-0.05,0},1},{}, + {"LevelP15",{0.05,0},1}, + {"LevelP15",{0.2,0},1}, + {"LevelP15",{0.2,0.03},1} + }; + }; + + class VALP_1_15 { + type = "text"; + source = "static"; + text = "15"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP15",{-0.23,0.035},1}; + right[] = {"LevelP15",{-0.13,0.035},1}; + down[] = {"LevelP15",{-0.23,0.085},1}; + }; + + class VALP_2_15: VALP_1_15 { + align = "right"; + pos[] = {"LevelP15",{0.22,0.035},1}; + right[] = {"LevelP15",{0.32,0.035},1}; + down[] = {"LevelP15",{0.22,0.085},1}; + }; + + class LevelM20: Level0 { + type = "line"; + points[] = { + {"LevelM20",{-0.2,-0.03},1}, + {"LevelM20",{-0.2,0},1}, + {"LevelM20",{-0.15,0},1},{}, + {"LevelM20",{-0.1,0},1}, + {"LevelM20",{-0.05,0},1},{}, + {"LevelM20",{0.05,0},1}, + {"LevelM20",{0.1,0},1},{}, + {"LevelM20",{0.15,0},1}, + {"LevelM20",{0.2,0},1}, + {"LevelM20",{0.2,-0.03},1} + }; + }; + + class VALM_1_20 { + type = "text"; + source = "static"; + text = -20; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM20",{-0.23,-0.085},1}; + right[] = {"LevelM20",{-0.13,-0.085},1}; + down[] = {"LevelM20",{-0.23,-0.035},1}; + }; + + class VALM_2_20: VALM_1_20 { + align = "right"; + pos[] = {"LevelM20",{0.22,-0.085},1}; + right[] = {"LevelM20",{0.32,-0.085},1}; + down[] = {"LevelM20",{0.22,-0.035},1}; + }; + + class LevelP20: Level0 { + type = "line"; + points[] = { + {"LevelP20",{-0.2,0.03},1}, + {"LevelP20",{-0.2,0},1}, + {"LevelP20",{-0.05,0},1},{}, + {"LevelP20",{0.05,0},1}, + {"LevelP20",{0.2,0},1}, + {"LevelP20",{0.2,0.03},1} + }; + }; + + class VALP_1_20 { + type = "text"; + source = "static"; + text = "20"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP20",{-0.23,0.035},1}; + right[] = {"LevelP20",{-0.13,0.035},1}; + down[] = {"LevelP20",{-0.23,0.085},1}; + }; + + class VALP_2_20: VALP_1_20 { + align = "right"; + pos[] = {"LevelP20",{0.22,0.035},1}; + right[] = {"LevelP20",{0.32,0.035},1}; + down[] = {"LevelP20",{0.22,0.085},1}; + }; + + class LevelM25: Level0 { + type = "line"; + points[] = { + {"LevelM25",{-0.2,-0.03},1}, + {"LevelM25",{-0.2,0},1}, + {"LevelM25",{-0.15,0},1},{}, + {"LevelM25",{-0.1,0},1}, + {"LevelM25",{-0.05,0},1},{}, + {"LevelM25",{0.05,0},1}, + {"LevelM25",{0.1,0},1},{}, + {"LevelM25",{0.15,0},1}, + {"LevelM25",{0.2,0},1}, + {"LevelM25",{0.2,-0.03},1} + }; + }; + + class VALM_1_25 { + type = "text"; + source = "static"; + text = -25; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM25",{-0.23,-0.085},1}; + right[] = {"LevelM25",{-0.13,-0.085},1}; + down[] = {"LevelM25",{-0.23,-0.035},1}; + }; + + class VALM_2_25: VALM_1_25 { + align = "right"; + pos[] = {"LevelM25",{0.22,-0.085},1}; + right[] = {"LevelM25",{0.32,-0.085},1}; + down[] = {"LevelM25",{0.22,-0.035},1}; + }; + + class LevelP25: Level0 { + type = "line"; + points[] = { + {"LevelP25",{-0.2,0.03},1}, + {"LevelP25",{-0.2,0},1}, + {"LevelP25",{-0.05,0},1},{}, + {"LevelP25",{0.05,0},1}, + {"LevelP25",{0.2,0},1}, + {"LevelP25",{0.2,0.03},1} + }; + }; + + class VALP_1_25 { + type = "text"; + source = "static"; + text = "25"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP25",{-0.23,0.035},1}; + right[] = {"LevelP25",{-0.13,0.035},1}; + down[] = {"LevelP25",{-0.23,0.085},1}; + }; + + class VALP_2_25: VALP_1_25 { + align = "right"; + pos[] = {"LevelP25",{0.22,0.035},1}; + right[] = {"LevelP25",{0.32,0.035},1}; + down[] = {"LevelP25",{0.22,0.085},1}; + }; + + class LevelM30: Level0 { + type = "line"; + points[] = { + {"LevelM30",{-0.2,-0.03},1}, + {"LevelM30",{-0.2,0},1}, + {"LevelM30",{-0.15,0},1},{}, + {"LevelM30",{-0.1,0},1}, + {"LevelM30",{-0.05,0},1},{}, + {"LevelM30",{0.05,0},1}, + {"LevelM30",{0.1,0},1},{}, + {"LevelM30",{0.15,0},1}, + {"LevelM30",{0.2,0},1}, + {"LevelM30",{0.2,-0.03},1} + }; + }; + + class VALM_1_30 { + type = "text"; + source = "static"; + text = -30; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM30",{-0.23,-0.085},1}; + right[] = {"LevelM30",{-0.13,-0.085},1}; + down[] = {"LevelM30",{-0.23,-0.035},1}; + }; + + class VALM_2_30: VALM_1_30 { + align = "right"; + pos[] = {"LevelM30",{0.22,-0.085},1}; + right[] = {"LevelM30",{0.32,-0.085},1}; + down[] = {"LevelM30",{0.22,-0.035},1}; + }; + + class LevelP30: Level0 { + type = "line"; + points[] = { + {"LevelP30",{-0.2,0.03},1}, + {"LevelP30",{-0.2,0},1}, + {"LevelP30",{-0.05,0},1},{}, + {"LevelP30",{0.05,0},1}, + {"LevelP30",{0.2,0},1}, + {"LevelP30",{0.2,0.03},1} + }; + }; + + class VALP_1_30 { + type = "text"; + source = "static"; + text = "30"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP30",{-0.23,0.035},1}; + right[] = {"LevelP30",{-0.13,0.035},1}; + down[] = {"LevelP30",{-0.23,0.085},1}; + }; + + class VALP_2_30: VALP_1_30 { + align = "right"; + pos[] = {"LevelP30",{0.22,0.035},1}; + right[] = {"LevelP30",{0.32,0.035},1}; + down[] = {"LevelP30",{0.22,0.085},1}; + }; + + class LevelM35: Level0 { + type = "line"; + points[] = { + {"LevelM35",{-0.2,-0.03},1}, + {"LevelM35",{-0.2,0},1}, + {"LevelM35",{-0.15,0},1},{}, + {"LevelM35",{-0.1,0},1}, + {"LevelM35",{-0.05,0},1},{}, + {"LevelM35",{0.05,0},1}, + {"LevelM35",{0.1,0},1},{}, + {"LevelM35",{0.15,0},1}, + {"LevelM35",{0.2,0},1}, + {"LevelM35",{0.2,-0.03},1} + }; + }; + + class VALM_1_35 { + type = "text"; + source = "static"; + text = -35; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM35",{-0.23,-0.085},1}; + right[] = {"LevelM35",{-0.13,-0.085},1}; + down[] = {"LevelM35",{-0.23,-0.035},1}; + }; + + class VALM_2_35: VALM_1_35 { + align = "right"; + pos[] = {"LevelM35",{0.22,-0.085},1}; + right[] = {"LevelM35",{0.32,-0.085},1}; + down[] = {"LevelM35",{0.22,-0.035},1}; + }; + + class LevelP35: Level0 { + type = "line"; + points[] = { + {"LevelP35",{-0.2,0.03},1}, + {"LevelP35",{-0.2,0},1}, + {"LevelP35",{-0.05,0},1},{}, + {"LevelP35",{0.05,0},1}, + {"LevelP35",{0.2,0},1}, + {"LevelP35",{0.2,0.03},1} + }; + }; + + class VALP_1_35 { + type = "text"; + source = "static"; + text = "35"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP35",{-0.23,0.035},1}; + right[] = {"LevelP35",{-0.13,0.035},1}; + down[] = {"LevelP35",{-0.23,0.085},1}; + }; + + class VALP_2_35: VALP_1_35 { + align = "right"; + pos[] = {"LevelP35",{0.22,0.035},1}; + right[] = {"LevelP35",{0.32,0.035},1}; + down[] = {"LevelP35",{0.22,0.085},1}; + }; + + class LevelM40: Level0 { + type = "line"; + points[] = { + {"LevelM40",{-0.2,-0.03},1}, + {"LevelM40",{-0.2,0},1}, + {"LevelM40",{-0.15,0},1},{}, + {"LevelM40",{-0.1,0},1}, + {"LevelM40",{-0.05,0},1},{}, + {"LevelM40",{0.05,0},1}, + {"LevelM40",{0.1,0},1},{}, + {"LevelM40",{0.15,0},1}, + {"LevelM40",{0.2,0},1}, + {"LevelM40",{0.2,-0.03},1} + }; + }; + + class VALM_1_40 { + type = "text"; + source = "static"; + text = -40; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM40",{-0.23,-0.085},1}; + right[] = {"LevelM40",{-0.13,-0.085},1}; + down[] = {"LevelM40",{-0.23,-0.035},1}; + }; + + class VALM_2_40: VALM_1_40 { + align = "right"; + pos[] = {"LevelM40",{0.22,-0.085},1}; + right[] = {"LevelM40",{0.32,-0.085},1}; + down[] = {"LevelM40",{0.22,-0.035},1}; + }; + + class LevelP40: Level0 { + type = "line"; + points[] = { + {"LevelP40",{-0.2,0.03},1}, + {"LevelP40",{-0.2,0},1}, + {"LevelP40",{-0.05,0},1},{}, + {"LevelP40",{0.05,0},1}, + {"LevelP40",{0.2,0},1}, + {"LevelP40",{0.2,0.03},1} + }; + }; + + class VALP_1_40 { + type = "text"; + source = "static"; + text = "40"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP40",{-0.23,0.035},1}; + right[] = {"LevelP40",{-0.13,0.035},1}; + down[] = {"LevelP40",{-0.23,0.085},1}; + }; + + class VALP_2_40: VALP_1_40 { + align = "right"; + pos[] = {"LevelP40",{0.22,0.035},1}; + right[] = {"LevelP40",{0.32,0.035},1}; + down[] = {"LevelP40",{0.22,0.085},1}; + }; + + class LevelM45: Level0 { + type = "line"; + points[] = { + {"LevelM45",{-0.2,-0.03},1}, + {"LevelM45",{-0.2,0},1}, + {"LevelM45",{-0.15,0},1},{}, + {"LevelM45",{-0.1,0},1}, + {"LevelM45",{-0.05,0},1},{}, + {"LevelM45",{0.05,0},1}, + {"LevelM45",{0.1,0},1},{}, + {"LevelM45",{0.15,0},1}, + {"LevelM45",{0.2,0},1}, + {"LevelM45",{0.2,-0.03},1} + }; + }; + + class VALM_1_45 { + type = "text"; + source = "static"; + text = -45; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM45",{-0.23,-0.085},1}; + right[] = {"LevelM45",{-0.13,-0.085},1}; + down[] = {"LevelM45",{-0.23,-0.035},1}; + }; + + class VALM_2_45: VALM_1_45 { + align = "right"; + pos[] = {"LevelM45",{0.22,-0.085},1}; + right[] = {"LevelM45",{0.32,-0.085},1}; + down[] = {"LevelM45",{0.22,-0.035},1}; + }; + + class LevelP45: Level0 { + type = "line"; + points[] = { + {"LevelP45",{-0.2,0.03},1}, + {"LevelP45",{-0.2,0},1}, + {"LevelP45",{-0.05,0},1},{}, + {"LevelP45",{0.05,0},1}, + {"LevelP45",{0.2,0},1}, + {"LevelP45",{0.2,0.03},1} + }; + }; + + class VALP_1_45 { + type = "text"; + source = "static"; + text = "45"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP45",{-0.23,0.035},1}; + right[] = {"LevelP45",{-0.13,0.035},1}; + down[] = {"LevelP45",{-0.23,0.085},1}; + }; + + class VALP_2_45: VALP_1_45 { + align = "right"; + pos[] = {"LevelP45",{0.22,0.035},1}; + right[] = {"LevelP45",{0.32,0.035},1}; + down[] = {"LevelP45",{0.22,0.085},1}; + }; + + class LevelM50: Level0 { + type = "line"; + points[] = { + {"LevelM50",{-0.2,-0.03},1}, + {"LevelM50",{-0.2,0},1}, + {"LevelM50",{-0.15,0},1},{}, + {"LevelM50",{-0.1,0},1}, + {"LevelM50",{-0.05,0},1},{}, + {"LevelM50",{0.05,0},1}, + {"LevelM50",{0.1,0},1},{}, + {"LevelM50",{0.15,0},1}, + {"LevelM50",{0.2,0},1}, + {"LevelM50",{0.2,-0.03},1} + }; + }; + + class VALM_1_50 { + type = "text"; + source = "static"; + text = -50; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelM50",{-0.23,-0.085},1}; + right[] = {"LevelM50",{-0.13,-0.085},1}; + down[] = {"LevelM50",{-0.23,-0.035},1}; + }; + + class VALM_2_50: VALM_1_50 { + align = "right"; + pos[] = {"LevelM50",{0.22,-0.085},1}; + right[] = {"LevelM50",{0.32,-0.085},1}; + down[] = {"LevelM50",{0.22,-0.035},1}; + }; + + class LevelP50: Level0 { + type = "line"; + points[] = { + {"LevelP50",{-0.2,0.03},1}, + {"LevelP50",{-0.2,0},1}, + {"LevelP50",{-0.05,0},1},{}, + {"LevelP50",{0.05,0},1}, + {"LevelP50",{0.2,0},1}, + {"LevelP50",{0.2,0.03},1} + }; + }; + + class VALP_1_50 { + type = "text"; + source = "static"; + text = "50"; + align = "left"; + scale = 1; + sourceScale = 57.2958; + pos[] = {"LevelP50",{-0.23,0.035},1}; + right[] = {"LevelP50",{-0.13,0.035},1}; + down[] = {"LevelP50",{-0.23,0.085},1}; + }; + + class VALP_2_50: VALP_1_50 { + align = "right"; + pos[] = {"LevelP50",{0.22,0.035},1}; + right[] = {"LevelP50",{0.32,0.035},1}; + down[] = {"LevelP50",{0.22,0.085},1}; + }; + }; + }; + + class PlaneMovementCrosshair { + clipTL[] = {0,1}; + clipBR[] = {1,0}; + type = "line"; + width = 6; + points[] = { + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","-0.02 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.0099999998 *2 /3","-0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.01732 *2 /3","-0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.02 *2 /3","0 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.01732 *2 /3","0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0.0099999998 *2 /3","0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","0.02 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.0099999998 *2 /3","0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.01732 *2 /3","0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.02 *2 /3","0 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.01732 *2 /3","-0.0099999998 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.0099999998 *2 /3","-0.01732 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{"0 *2 /3","-0.02 *2 /3"},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.035,0},1}, + {"ForwardVec1",1,"Velocity",1,{"0.02 *2 /3",0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.035,0},1}, + {"ForwardVec1",1,"Velocity",1,{"-0.02 *2 /3",0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,"-0.039999999 *2 /3"},1}, + {"ForwardVec1",1,"Velocity",1,{0,"-0.02 *2 /3"},1} + }; + }; + + class RadarTargets { + type = "radar"; + pos0[] = {0.5,0.32}; + pos10[] = {1.382,1.145}; + width = 2.5; + points[] = { + {"ForwardVec",1,"RadarContact",{-0.02,-0.02},1}, + {"ForwardVec",1,"RadarContact",{0.02,-0.02},1}, + {"ForwardVec",1,"RadarContact",{0.02,0.02},1}, + {"ForwardVec",1,"RadarContact",{-0.02,0.02},1}, + {"ForwardVec",1,"RadarContact",{-0.02,-0.02},1} + }; + }; + + class AA_target { + condition = "AAmissile"; + class Target { + type = "line"; + points[] = { + /*{"TargetSelected",{ 0,"-0.08 + 0.2"},1}, + {"TargetSelected",{0.05,"-0.0696 + 0.2"},1}, + {"TargetSelected",{0.087,"-0.50*0.10/(1.5/1.2) + 0.2"},1}, + {"TargetSelected",{0.1,"0 + 0.2"},1}, + {"TargetSelected",{0.087,"0.04 + 0.2"},1}, + {"TargetSelected",{0.05,"+0.87*0.10/(1.5/1.2) + 0.2"},1}, + {"TargetSelected",{0,"0.08 + 0.2"},1}, + {"TargetSelected",{-0.05,"0.0696 + 0.2"},1}, + {"TargetSelected",{-0.087,"+0.50*0.10/(1.5/1.2) + 0.2"},1}, + {"TargetSelected",{-0.1,"0 + 0.2"},1}, + {"TargetSelected",{-0.087,"-0.04 + 0.2"},1}, + {"TargetSelected",{-0.05,"-0.87*0.10/(1.5/1.2) + 0.2"},1}, + {"TargetSelected",{0,"-0.08 + 0.2"},1}*/ + {"ForwardVec",1,"TargetSelected",1,{0,-0.02},1}, + {"ForwardVec",1,"TargetSelected",1,{0.0099999998,-0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{0.01732,-0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{0.02,0},1}, + {"ForwardVec",1,"TargetSelected",1,{0.01732,0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{0.0099999998,0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{0,0.02},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.0099999998,0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.01732,0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.02,0},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.01732,-0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.0099999998,-0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{0,-0.02},1} + }; + }; + }; + + class AG_target { + condition = "ATmissile"; + class Target { + type = "line"; + points[] = { + /*{"TargetSelected",{0,"-0.08"},1}, + {"TargetSelected",{0.05,"-0.0696"},1}, + {"TargetSelected",{0.087,"-0.50*0.10/(1.5/1.2)"},1}, + {"TargetSelected",{0.1,"0"},1}, + {"TargetSelected",{0.087,"0.04"},1}, + {"TargetSelected",{0.05,"+0.87*0.10/(1.5/1.2)"},1}, + {"TargetSelected",{0,"0.08"},1}, + {"TargetSelected",{-0.05,"0.0696"},1}, + {"TargetSelected",{-0.087,"+0.50*0.10/(1.5/1.2)"},1}, + {"TargetSelected",{-0.1,"0"},1}, + {"TargetSelected",{-0.087,"-0.04"},1}, + {"TargetSelected",{-0.05,"-0.87*0.10/(1.5/1.2)"},1}, + {"TargetSelected",{0,"-0.08"},1},*/ + {"ForwardVec",1,"TargetSelected",1,{0,-0.02},1}, + {"ForwardVec",1,"TargetSelected",1,{0.0099999998,-0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{0.01732,-0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{0.02,0},1}, + {"ForwardVec",1,"TargetSelected",1,{0.01732,0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{0.0099999998,0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{0,0.02},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.0099999998,0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.01732,0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.02,0},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.01732,-0.0099999998},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.0099999998,-0.01732},1}, + {"ForwardVec",1,"TargetSelected",1,{0,-0.02},1},{}, + {"ForwardVec",1,"TargetSelected",1,{0,-0.02},1}, + {"ForwardVec",1,"TargetSelected",1,{0,-0.01},1},{}, + {"ForwardVec",1,"TargetSelected",1,{0,0.02},1}, + {"ForwardVec",1,"TargetSelected",1,{0,0.01},1},{}, + {"ForwardVec",1,"TargetSelected",1,{0.02,0},1}, + {"ForwardVec",1,"TargetSelected",1,{0.01,0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{-0.02,0},1}, + {"ForwardVec",1,"TargetSelected",1,{-0.01,0},1} + }; + }; + }; + + class GUN_target { + condition = "mgun"; + class Target { + type = "line"; + width = 4; + points[] = { + //////////////////////////////////////////////// UP + /*{"ForwardVec",1,"target",{ 0,-0.060},1}, + {"ForwardVec",1,"target",{ 0,-0.055},1},{}, + {"ForwardVec",1,"target",{ 0,-0.050},1}, + {"ForwardVec",1,"target",{ 0,-0.045},1},{}, + {"ForwardVec",1,"target",{ 0,-0.040},1}, + {"ForwardVec",1,"target",{ 0,-0.035},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.030},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.025},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.020},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.015},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.010},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.005},1},{}, + //////////////////////////////////////////////// center + {"ForwardVec",1,"TargetSelected",1,{ 0,0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0},1},{}, + /////////////////////////////////////////////// DOWN + /*{"ForwardVec",1,"target",{ 0,0.060},1}, + {"ForwardVec",1,"target",{ 0,0.055},1},{}, + {"ForwardVec",1,"target",{ 0,0.050},1}, + {"ForwardVec",1,"target",{ 0,0.045},1},{}, + {"ForwardVec",1,"target",{ 0,0.040},1}, + {"ForwardVec",1,"target",{ 0,0.035},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ 0,0.030},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.025},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.020},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.015},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.010},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.005},1},{}, + /////////////////////////////////////////////// LEFT + /*{"ForwardVec",1,"target",{ -0.060, 0},1}, + {"ForwardVec",1,"target",{ -0.055, 0},1},{}, + {"ForwardVec",1,"target",{ -0.050, 0},1}, + {"ForwardVec",1,"target",{ -0.045, 0},1},{}, + {"ForwardVec",1,"target",{ -0.040, 0},1}, + {"ForwardVec",1,"target",{ -0.035, 0},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ -0.030, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ -0.025, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ -0.020, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ -0.015, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ -0.010, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ -0.005, 0},1},{}, + /////////////////////////////////////////////// RIGHT + /*{"ForwardVec",1,"target",{ 0.060, 0},1}, + {"ForwardVec",1,"target",{ 0.055, 0},1},{}, + {"ForwardVec",1,"target",{ 0.050, 0},1}, + {"ForwardVec",1,"target",{ 0.045, 0},1},{}, + {"ForwardVec",1,"target",{ 0.040, 0},1}, + {"ForwardVec",1,"target",{ 0.035, 0},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ 0.030, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0.025, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0.020, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0.015, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0.010, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0.005, 0},1},{} + }; + }; + }; + + class Rocket_target { + condition = "rocket"; + class Target { + type = "line"; + width = 4; + points[] = { + //////////////////////////////////////////////// UP + /*{"ForwardVec",1,"target",{ 0,-0.060},1}, + {"ForwardVec",1,"target",{ 0,-0.055},1},{}, + {"ForwardVec",1,"target",{ 0,-0.050},1}, + {"ForwardVec",1,"target",{ 0,-0.045},1},{}, + {"ForwardVec",1,"target",{ 0,-0.040},1}, + {"ForwardVec",1,"target",{ 0,-0.035},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.030},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.025},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.020},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.015},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.010},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,-0.005},1},{}, + //////////////////////////////////////////////// center + {"ForwardVec",1,"TargetSelected",1,{ 0,0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0},1},{}, + /////////////////////////////////////////////// DOWN + /*{"ForwardVec",1,"target",{ 0,0.060},1}, + {"ForwardVec",1,"target",{ 0,0.055},1},{}, + {"ForwardVec",1,"target",{ 0,0.050},1}, + {"ForwardVec",1,"target",{ 0,0.045},1},{}, + {"ForwardVec",1,"target",{ 0,0.040},1}, + {"ForwardVec",1,"target",{ 0,0.035},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ 0,0.030},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.025},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.020},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.015},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.010},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0,0.005},1},{}, + /////////////////////////////////////////////// LEFT + /*{"ForwardVec",1,"target",{ -0.060, 0},1}, + {"ForwardVec",1,"target",{ -0.055, 0},1},{}, + {"ForwardVec",1,"target",{ -0.050, 0},1}, + {"ForwardVec",1,"target",{ -0.045, 0},1},{}, + {"ForwardVec",1,"target",{ -0.040, 0},1}, + {"ForwardVec",1,"target",{ -0.035, 0},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ -0.030, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ -0.025, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ -0.020, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ -0.015, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ -0.010, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ -0.005, 0},1},{}, + /////////////////////////////////////////////// RIGHT + /*{"ForwardVec",1,"target",{ 0.060, 0},1}, + {"ForwardVec",1,"target",{ 0.055, 0},1},{}, + {"ForwardVec",1,"target",{ 0.050, 0},1}, + {"ForwardVec",1,"target",{ 0.045, 0},1},{}, + {"ForwardVec",1,"target",{ 0.040, 0},1}, + {"ForwardVec",1,"target",{ 0.035, 0},1},{},*/ + {"ForwardVec",1,"TargetSelected",1,{ 0.030, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0.025, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0.020, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0.015, 0},1},{}, + {"ForwardVec",1,"TargetSelected",1,{ 0.010, 0},1}, + {"ForwardVec",1,"TargetSelected",1,{ 0.005, 0},1},{} + }; + }; + }; + + class GunCross { + type = "group"; + condition = "mgun"; + class CCIP_circle { + type = "line"; + width = 5; + points[] = { + {"ForwardVec",1,"WeaponAimGUN",1,{"-1.2000 * 0.06","-0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-1.0000 * 0.06","-0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.9877 * 0.06","-0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.9397 * 0.06","-0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.8660 * 0.06","-0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.7660 * 0.06","-0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.6428 * 0.06","-0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.5000 * 0.06","-0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.3420 * 0.06","-0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.1736 * 0.06","-0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.0000 * 0.06","-1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.1736 * 0.06","-0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.3420 * 0.06","-0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.5000 * 0.06","-0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.6428 * 0.06","-0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.7660 * 0.06","-0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.8660 * 0.06","-0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.9397 * 0.06","-0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.9877 * 0.06","-0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"1.0000 * 0.06","-0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"1.2000 * 0.06","-0.0000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-1.2000 * 0.06","0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-1.0000 * 0.06","0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.9877 * 0.06","0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.9397 * 0.06","0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.8660 * 0.06","0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.7660 * 0.06","0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.6428 * 0.06","0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.5000 * 0.06","0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.3420 * 0.06","0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.1736 * 0.06","0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.0000 * 0.06","1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.1736 * 0.06","0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.3420 * 0.06","0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.5000 * 0.06","0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.6428 * 0.06","0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.7660 * 0.06","0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.8660 * 0.06","0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.9397 * 0.06","0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"0.9877 * 0.06","0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"1.0000 * 0.06","0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"1.2000 * 0.06","0.0000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.0000 * 0.06","-1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.0000 * 0.06","-1.2000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.0000 * 0.06","1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{"-0.0000 * 0.06","1.2000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimGUN",1,{ 0.005,0},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{ -0.005,0},1},{}, + {"ForwardVec",1,"WeaponAimGUN",1,{ 0,0.005},1}, + {"ForwardVec",1,"WeaponAimGUN",1,{ 0,-0.005},1} + }; + }; + }; + + class RocketCross { + type = "group"; + condition = "rocket"; + class CCIP_circle { + type = "line"; + width = 5; + points[] = { + {"ForwardVec",1,"WeaponAimROCKET",1,{"-1.2000 * 0.06","-0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-1.0000 * 0.06","-0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.9877 * 0.06","-0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.9397 * 0.06","-0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.8660 * 0.06","-0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.7660 * 0.06","-0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.6428 * 0.06","-0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.5000 * 0.06","-0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.3420 * 0.06","-0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.1736 * 0.06","-0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.0000 * 0.06","-1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.1736 * 0.06","-0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.3420 * 0.06","-0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.5000 * 0.06","-0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.6428 * 0.06","-0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.7660 * 0.06","-0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.8660 * 0.06","-0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.9397 * 0.06","-0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.9877 * 0.06","-0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"1.0000 * 0.06","-0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"1.2000 * 0.06","-0.0000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-1.2000 * 0.06","0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-1.0000 * 0.06","0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.9877 * 0.06","0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.9397 * 0.06","0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.8660 * 0.06","0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.7660 * 0.06","0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.6428 * 0.06","0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.5000 * 0.06","0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.3420 * 0.06","0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.1736 * 0.06","0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.0000 * 0.06","1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.1736 * 0.06","0.9877 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.3420 * 0.06","0.9397 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.5000 * 0.06","0.8660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.6428 * 0.06","0.7660 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.7660 * 0.06","0.6428 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.8660 * 0.06","0.5000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.9397 * 0.06","0.3420 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"0.9877 * 0.06","0.1736 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"1.0000 * 0.06","0.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"1.2000 * 0.06","0.0000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.0000 * 0.06","-1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.0000 * 0.06","-1.2000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.0000 * 0.06","1.0000 * 0.06"},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{"-0.0000 * 0.06","1.2000 * 0.06"},1},{}, + {"ForwardVec",1,"WeaponAimROCKET",1,{ 0.005,0},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{ -0.005,0},1},{}, + {"ForwardVec",1,"WeaponAimROCKET",1,{ 0,0.005},1}, + {"ForwardVec",1,"WeaponAimROCKET",1,{ 0,-0.005},1} + }; + }; + }; + + class AC_Centerline { + type = "group"; + condition = "on"; + class RockCross { + type = "line"; + width = 4; + points[] = { + {"ForwardVec",1,{" -0.006 + 0.5","0 + 0.32"},1}, + {"ForwardVec",1,{" 0.006 + 0.5","0 + 0.32"},1},{}, + {"ForwardVec",1,{" -0.0 + 0.5","0.006 + 0.32"},1}, + {"ForwardVec",1,{" 0.0 + 0.5","-0.006 + 0.32"},1} + }; + }; + }; + + class ATMissileTOFGroup { + condition = "ATmissile"; + type = "group"; + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF="; + scale = 1; + pos[] = {{0.15,0.62},1}; + right[] = {{0.19,0.62},1}; + down[] = {{0.15,0.66},1}; + }; + + class TOFnumber { + type = "text"; + source = "targetDist"; + sourcescale = 0.0025; + align = "right"; + scale = 1; + pos[] = {{0.23,0.62},1}; + right[] = {{0.27,0.62},1}; + down[] = {{0.23,0.66},1}; + }; + }; + + class BombTOFGroup { + condition = "Bomb"; + type = "group"; + class Crosshairs { + type = "line"; + width = 7; + points[] = { + {{"0 + 0.5","-0.02 + 0.5"},1}, + {{"0.0099999998 + 0.5","-0.01732 + 0.5"},1}, + {{"0.01732 + 0.5","-0.0099999998 + 0.5"},1}, + {{"0.02 + 0.5","0 + 0.5"},1}, + {{"0.01732 + 0.5","0.0099999998 + 0.5"},1}, + {{"0.0099999998 + 0.5","0.01732 + 0.5"},1}, + {{"0 + 0.5","0.02 + 0.5"},1}, + {{"-0.0099999998 + 0.5","0.01732 + 0.5"},1}, + {{"-0.01732 + 0.5","0.0099999998 + 0.5"},1}, + {{"-0.02 + 0.5","0 + 0.5"},1}, + {{"-0.01732 + 0.5","-0.0099999998 + 0.5"},1}, + {{"-0.0099999998 + 0.5","-0.01732 + 0.5"},1}, + {{"0 + 0.5","-0.02 + 0.5"},1},{}, + {{" -0.005 + 0.5","0 + 0.5"},1}, + {{" 0.005 + 0.5","0 + 0.5"},1},{}, + {{" -0.00 + 0.5","-0.005 + 0.5"},1}, + {{" 0.00 + 0.5","0.005 + 0.5"},1} + }; + }; + + /*class Target_Line_LGB { + type = "line"; + width = 5; + points[] = { + {"TargetSelected",{0,0},1}, + {"Velocity",{0,0},1} + }; + };*/ + + class Target_SPI_LGB { + type = "line"; + width = 3; + points[] = { + {"TargetSelected",{0,0},1}, + {"TargetSelected",{0,-0.05},1} + }; + }; + + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF="; + scale = 1; + pos[] = {{0.15,0.62},1}; + right[] = {{0.19,0.62},1}; + down[] = {{0.15,0.66},1}; + }; + + class TOFnumber { + type = "text"; + source = "altitudeASL"; + sourcescale = 0.013; + align = "right"; + scale = 1; + pos[] = {{0.23,0.62},1}; + right[] = {{0.27,0.62},1}; + down[] = {{0.23,0.66},1}; + }; + + }; + + class ILS_Bars { + condition = "ils"; + class Glideslope { + clipTL[] = {0,0}; + clipBR[] = {1,1}; + class ILS { + type = "line"; + width = 2.5; + points[] = { + {"ForwardVec",1,"ILS_W",1,{-0.2,0},1}, + {"ForwardVec",1,"ILS_W",1,{0.2,0},1},{}, + {"ForwardVec",1,"ILS_W",1,{0,0.02},1}, + {"ForwardVec",1,"ILS_W",1,{0,-0.02},1},{}, + {"ForwardVec",1,"ILS_W",1,{0.1,0.02},1}, + {"ForwardVec",1,"ILS_W",1,{0.1,-0.02},1},{}, + {"ForwardVec",1,"ILS_W",1,{0.2,0.02},1}, + {"ForwardVec",1,"ILS_W",1,{0.2,-0.02},1},{}, + {"ForwardVec",1,"ILS_W",1,{-0.1,0.02},1}, + {"ForwardVec",1,"ILS_W",1,{-0.1,-0.02},1},{}, + {"ForwardVec",1,"ILS_W",1,{-0.2,0.02},1}, + {"ForwardVec",1,"ILS_W",1,{-0.2,-0.02},1},{}, + {"ForwardVec",1,"ILS_H",1,{0,-0.2},1}, + {"ForwardVec",1,"ILS_H",1,{0,0.2},1},{}, + {"ForwardVec",1,"ILS_H",1,{0.02,0},1}, + {"ForwardVec",1,"ILS_H",1,{-0.02,0},1},{}, + {"ForwardVec",1,"ILS_H",1,{0.02,0.1},1}, + {"ForwardVec",1,"ILS_H",1,{-0.02,0.1},1},{}, + {"ForwardVec",1,"ILS_H",1,{0.02,0.2},1}, + {"ForwardVec",1,"ILS_H",1,{-0.02,0.2},1},{}, + {"ForwardVec",1,"ILS_H",1,{0.02,-0.1},1}, + {"ForwardVec",1,"ILS_H",1,{-0.02,-0.1},1},{}, + {"ForwardVec",1,"ILS_H",1,{0.02,-0.2},1}, + {"ForwardVec",1,"ILS_H",1,{-0.02,-0.2},1},{} + }; + }; + }; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_wildcat.hpp b/TO_MERGE/agm/Aircraft/mfd_wildcat.hpp new file mode 100644 index 0000000000..d3217f0ac4 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_wildcat.hpp @@ -0,0 +1,784 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.5}; + }; + + class GunnerAim { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.011,0.0027}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.2193,0.2193}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.38,0},1},{}, + {"Level0",{-0.37,0},1}, + {"Level0",{-0.33,0},1},{}, + {"Level0",{-0.32,0},1}, + {"Level0",{-0.28,0},1},{}, + {"Level0",{-0.27,0},1}, + {"Level0",{-0.23,0},1},{}, + {"Level0",{-0.22,0},1}, + {"Level0",{-0.18,0},1},{}, + {"Level0",{-0.17,0},1}, + {"Level0",{-0.13,0},1},{}, + {"Level0",{-0.12,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.38,0},1},{}, + {"Level0",{0.37,0},1}, + {"Level0",{0.33,0},1},{}, + {"Level0",{0.32,0},1}, + {"Level0",{0.28,0},1},{}, + {"Level0",{0.27,0},1}, + {"Level0",{0.23,0},1},{}, + {"Level0",{0.22,0},1}, + {"Level0",{0.18,0},1},{}, + {"Level0",{0.17,0},1}, + {"Level0",{0.13,0},1},{}, + {"Level0",{0.12,0},1}, + {"Level0",{0.08,0},1} + }; + }; + }; + }; + + /*class StaticBank { + type = "line"; + width = 3; + points[] = { + {{0.4782,0.251},1}, + {{0.4773,0.241},1},{}, + {{0.4566,0.2538},1}, + {{0.4549,0.2439},1},{}, + {{0.4353,0.2585},1}, + {{0.4301,0.2392},1},{}, + {{0.4145,0.2651},1}, + {{0.4111,0.2557},1},{}, + {{0.3943,0.2734},1}, + {{0.3901,0.2644},1},{}, + {{0.375,0.2835},1}, + {{0.365,0.2662},1},{}, + {{0.3232,0.3232},1}, + {{0.3091,0.3091},1},{}, + {{0.2835,0.375},1}, + {{0.2662,0.365},1},{}, + {{"0.5 + (0.5- 0.4782)",0.251},1}, + {{"0.5 + (0.5- 0.4773)",0.241},1},{}, + {{"0.5 + (0.5- 0.4566)",0.2538},1}, + {{"0.5 + (0.5- 0.4549)",0.2439},1},{}, + {{"0.5 + (0.5- 0.4353)",0.2585},1}, + {{"0.5 + (0.5- 0.4301)",0.2392},1},{}, + {{"0.5 + (0.5- 0.4145)",0.2651},1}, + {{"0.5 + (0.5- 0.4111)",0.2557},1},{}, + {{"0.5 + (0.5- 0.3943)",0.2734},1}, + {{"0.5 + (0.5- 0.3901)",0.2644},1},{}, + {{"0.5 + (0.5- 0.3750)",0.2835},1}, + {{"0.5 + (0.5- 0.3650)",0.2662},1},{}, + {{"0.5 + (0.5- 0.3232)",0.3232},1}, + {{"0.5 + (0.5- 0.3091)",0.3091},1},{}, + {{"0.5 + (0.5- 0.2835)",0.375},1}, + {{"0.5 + (0.5- 0.2662)",0.365},1},{}, + {{0.5,"0.5 - 0.25"},1}, + {{0.5,"0.5 - 0.28"},1} + }; + };*/ + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = {{"HorizonBankRot",{0,0.25},1},{"HorizonBankRot",{-0.01,0.23},1},{"HorizonBankRot",{0.01,0.23},1},{"HorizonBankRot",{0,0.25},1}}; + }; + + class Static { + clipTL[] = {0,1}; + clipBR[] = {1,0}; + type = "line"; + width = 5; + points[] = {{{"0.5-0.1","0.9-0.04"},1},{{"0.5-0.1","0.9+0.04"},1},{{"0.5+0.1","0.9+0.04"},1},{{"0.5+0.1","0.9-0.04"},1},{{"0.5-0.1","0.9-0.04"},1},{},{{"0.5-0.1",0.9},1},{{"0.5-0.092",0.9},1},{},{{"0.5+0.1",0.9},1},{{"0.5+0.092",0.9},1},{},{{0.5,"0.9-0.04"},1},{{0.5,"0.9-0.032"},1},{},{{0.5,"0.9+0.04"},1},{{0.5,"0.9+0.032"},1},{}}; + }; + + class Centerline { + type = "line"; + width = 7; + points[] = {{{0.5,0.49},1},{{0.5,0.47},1},{},{{0.5,0.51},1},{{0.5,0.53},1},{},{{0.49,0.5},1},{{0.47,0.5},1},{},{{0.51,0.5},1},{{0.53,0.5},1},{}}; + }; + + class GunCross_CIRCLE { + type = "group"; + class CCIP_circle { + type = "line"; + width = 4; + points[] = { + {"ForwardVec",1,"PlaneOrientation",1,{"-1.2000 * 0.04","-0.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-1.0000 * 0.04","-0.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.9877 * 0.04","-0.1736 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.9397 * 0.04","-0.3420 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.8660 * 0.04","-0.5000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.7660 * 0.04","-0.6428 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.6428 * 0.04","-0.7660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.5000 * 0.04","-0.8660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.3420 * 0.04","-0.9397 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.1736 * 0.04","-0.9877 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","-1.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.1736 * 0.04","-0.9877 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.3420 * 0.04","-0.9397 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.5000 * 0.04","-0.8660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.6428 * 0.04","-0.7660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.7660 * 0.04","-0.6428 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.8660 * 0.04","-0.5000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.9397 * 0.04","-0.3420 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.9877 * 0.04","-0.1736 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"1.0000 * 0.04","-0.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"1.2000 * 0.04","-0.0000 * 0.04"},1},{}, + {"ForwardVec",1,"PlaneOrientation",1,{"-1.2000 * 0.04","0.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-1.0000 * 0.04","0.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.9877 * 0.04","0.1736 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.9397 * 0.04","0.3420 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.8660 * 0.04","0.5000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.7660 * 0.04","0.6428 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.6428 * 0.04","0.7660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.5000 * 0.04","0.8660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.3420 * 0.04","0.9397 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.1736 * 0.04","0.9877 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","1.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.1736 * 0.04","0.9877 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.3420 * 0.04","0.9397 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.5000 * 0.04","0.8660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.6428 * 0.04","0.7660 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.7660 * 0.04","0.6428 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.8660 * 0.04","0.5000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.9397 * 0.04","0.3420 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"0.9877 * 0.04","0.1736 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"1.0000 * 0.04","0.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"1.2000 * 0.04","0.0000 * 0.04"},1},{}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","-1.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","-1.2000 * 0.04"},1},{}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","1.0000 * 0.04"},1}, + {"ForwardVec",1,"PlaneOrientation",1,{"-0.0000 * 0.04","1.2000 * 0.04"},1},{}, + {"ForwardVec",1,"PlaneOrientation",1,{0.005,0},1}, + {"ForwardVec",1,"PlaneOrientation",1,{-0.005,0},1},{}, + {"ForwardVec",1,"PlaneOrientation",1,{0,0.005},1}, + {"ForwardVec",1,"PlaneOrientation",1,{0,-0.005},1} + }; + }; + }; + + class Gunner { + type = "line"; + width = 6; + points[] = { + {"GunnerAim",{"0.5-0.015","0.9-0.008"},1}, + {"GunnerAim",{"0.5-0.015","0.9+0.008"},1}, + {"GunnerAim",{"0.5+0.015","0.9+0.008"},1}, + {"GunnerAim",{"0.5+0.015","0.9-0.008"},1}, + {"GunnerAim",{"0.5-0.015","0.9-0.008"},1} + }; + }; + + class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.61,0.86},1}; + right[] = {{0.65,0.86},1}; + down[] = {{0.61,0.9},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.61,0.89},1}; + right[] = {{0.65,0.89},1}; + down[] = {{0.61,0.93},1}; + }; + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class ATMissileTOFGroup { + condition = "ATmissile"; + type = "group"; + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF="; + scale = 1; + pos[] = {{0.61,0.92},1}; + right[] = {{0.65,0.92},1}; + down[] = {{0.61,0.96},1}; + }; + + class TOFnumber { + type = "text"; + source = "targetDist"; + sourcescale = 0.0025; + align = "right"; + scale = 1; + pos[] = {{0.69,0.92},1}; + right[] = {{0.73,0.92},1}; + down[] = {{0.69,0.96},1}; + }; + }; + + class RangeNumber { + type = "text"; + source = "targetDist"; + sourceScale = 1; + align = "left"; + scale = 1; + pos[] = {{0.39,0.89},1}; + right[] = {{0.43,0.89},1}; + down[] = {{0.39,0.93},1}; + }; + + class RangeText { + type = "text"; + source = "static"; + text = "RNG"; + align = "left"; + scale = 1; + pos[] = {{0.39,0.86},1}; + right[] = {{0.43,0.86},1}; + down[] = {{0.39,0.9},1}; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 363; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = { + {{0.98,0.2},1}, + {{1,0.2},1},{}, + {{0.93,0.2},1}, + {{0.95,0.2},1},{}, + {{0.98,0.35},1}, + {{1,0.35},1},{}, + {{0.93,0.35},1}, + {{0.95,0.35},1},{}, + {{0.94,0.38},1}, + {{0.95,0.38},1},{}, + {{0.94,0.41},1}, + {{0.95,0.41},1},{}, + {{0.94,0.44},1}, + {{0.95,0.44},1},{}, + {{0.94,0.47},1}, + {{0.95,0.47},1},{}, + {{0.98,0.5},1}, + {{1,0.5},1},{}, + {{0.93,0.5},1}, + {{0.95,0.5},1},{}, + {{0.94,0.53},1}, + {{0.95,0.53},1},{}, + {{0.94,0.56},1}, + {{0.95,0.56},1},{}, + {{0.94,0.59},1}, + {{0.95,0.59},1},{}, + {{0.94,0.62},1}, + {{0.95,0.62},1},{}, + {{0.98,0.65},1}, + {{1,0.65},1},{}, + {{0.93,0.65},1}, + {{0.95,0.65},1},{}, + {{0.99,0.68},1}, + {{0.98,0.68},1},{}, + {{0.99,0.71},1}, + {{0.98,0.71},1},{}, + {{0.99,0.74},1}, + {{0.98,0.74},1},{}, + {{0.99,0.77},1}, + {{0.98,0.77},1},{}, + {{0.98,0.8},1}, + {{1,0.8},1},{}, + {{0.93,0.8},1}, + {{0.95,0.8},1},{} + }; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + class radarbanda { + type = "line"; + width = 17; + points[] = { + {"RadarAltitudeBone",{0,0},1}, + {"RadarAltitudeBone",{0,0.6},1} + }; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = { + {"VspeedBone",{-0.01,0},1}, + {"VspeedBone",{-0.025,-0.015},1}, + {"VspeedBone",{-0.025,0.015},1}, + {"VspeedBone",{-0.01,0},1},{} + }; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = { + {{0.44,0.005},1}, + {{"0.44 + 0.12",0.005},1}, + {{"0.44 + 0.12","0.005 + 0.06"},1}, + {{0.44,"0.005 + 0.06"},1}, + {{0.44,0.005},1} + }; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = { + {{"0.5","0.128 + 0.03"},1}, + {{0.5,0.128},1} + }; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.119,"0.0 + 0.065"}; + right[] = {0.159,"0.0 + 0.065"}; + down[] = {0.119,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.03,0.9},1}; + right[] = {{0.07,0.9},1}; + down[] = {{0.03,0.94},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.1,0.9},1}; + right[] = {{0.14,0.9},1}; + down[] = {{0.1,0.94},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class WeaponAim1 { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.253,0.23}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = { + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,0.02},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,-0.04},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1} + }; + }; + + class TargetACQ { + type = "line"; + width = 2; + points[] = { + //////////////////////////////////////////////// UP + /*{"ForwardVec1",1,"target",{0,-0.1},1}, + {"ForwardVec1",1,"target",{0,-0.095},1},{}, + {"ForwardVec1",1,"target",{0,-0.09},1}, + {"ForwardVec1",1,"target",{0,-0.085},1},{}, + {"ForwardVec1",1,"target",{0,-0.08},1}, + {"ForwardVec1",1,"target",{0,-0.075},1},{}, + {"ForwardVec1",1,"target",{0,-0.07},1}, + {"ForwardVec1",1,"target",{0,-0.065},1},{},*/ + {"ForwardVec",1,"target",{0,-0.06},1}, + {"ForwardVec",1,"target",{0,-0.055},1},{}, + {"ForwardVec",1,"target",{0,-0.05},1}, + {"ForwardVec",1,"target",{0,-0.045},1},{}, + {"ForwardVec",1,"target",{0,-0.04},1}, + {"ForwardVec",1,"target",{0,-0.035},1},{}, + {"ForwardVec",1,"target",{0,-0.03},1}, + {"ForwardVec",1,"target",{0,-0.025},1},{}, + {"ForwardVec",1,"target",{0,-0.02},1}, + {"ForwardVec",1,"target",{0,-0.015},1},{}, + {"ForwardVec",1,"target",{0,-0.01},1}, + {"ForwardVec",1,"target",{0,-0.005},1},{}, + //////////////////////////////////////////////// center + {"ForwardVec",1,"target",{0,0},1}, + {"ForwardVec",1,"target",{0,0},1},{}, + /////////////////////////////////////////////// DOWN + /*{"ForwardVec1",1,"target",{0,0.1},1}, + {"ForwardVec1",1,"target",{0,0.095},1},{}, + {"ForwardVec1",1,"target",{0,0.09},1}, + {"ForwardVec1",1,"target",{0,0.085},1},{}, + {"ForwardVec1",1,"target",{0,0.080},1}, + {"ForwardVec1",1,"target",{0,0.075},1},{}, + {"ForwardVec1",1,"target",{0,0.070},1}, + {"ForwardVec1",1,"target",{0,0.065},1},{},*/ + {"ForwardVec",1,"target",{0,0.060},1}, + {"ForwardVec",1,"target",{0,0.055},1},{}, + {"ForwardVec",1,"target",{0,0.050},1}, + {"ForwardVec",1,"target",{0,0.045},1},{}, + {"ForwardVec",1,"target",{0,0.040},1}, + {"ForwardVec",1,"target",{0,0.035},1},{}, + {"ForwardVec",1,"target",{0,0.030},1}, + {"ForwardVec",1,"target",{0,0.025},1},{}, + {"ForwardVec",1,"target",{0,0.020},1}, + {"ForwardVec",1,"target",{0,0.015},1},{}, + {"ForwardVec",1,"target",{0,0.010},1}, + {"ForwardVec",1,"target",{0,0.005},1},{}, + /////////////////////////////////////////////// LEFT + /*{"ForwardVec1",1,"target",{-0.10, 0},1}, + {"ForwardVec1",1,"target",{-0.095, 0},1},{}, + {"ForwardVec1",1,"target",{-0.09, 0},1}, + {"ForwardVec1",1,"target",{-0.085, 0},1},{}, + {"ForwardVec1",1,"target",{-0.080, 0},1}, + {"ForwardVec1",1,"target",{-0.075, 0},1},{}, + {"ForwardVec1",1,"target",{-0.070, 0},1}, + {"ForwardVec1",1,"target",{-0.065, 0},1},{},*/ + {"ForwardVec",1,"target",{-0.060, 0},1}, + {"ForwardVec",1,"target",{-0.055, 0},1},{}, + {"ForwardVec",1,"target",{-0.050, 0},1}, + {"ForwardVec",1,"target",{-0.045, 0},1},{}, + {"ForwardVec",1,"target",{-0.040, 0},1}, + {"ForwardVec",1,"target",{-0.035, 0},1},{}, + {"ForwardVec",1,"target",{-0.030, 0},1}, + {"ForwardVec",1,"target",{-0.025, 0},1},{}, + {"ForwardVec",1,"target",{-0.020, 0},1}, + {"ForwardVec",1,"target",{-0.015, 0},1},{}, + {"ForwardVec",1,"target",{-0.010, 0},1}, + {"ForwardVec",1,"target",{-0.005, 0},1},{}, + /////////////////////////////////////////////// RIGHT + /*{"ForwardVec1",1,"target",{0.10, 0},1}, + {"ForwardVec1",1,"target",{0.095, 0},1},{}, + {"ForwardVec1",1,"target",{0.09, 0},1}, + {"ForwardVec1",1,"target",{0.085, 0},1},{}, + {"ForwardVec1",1,"target",{0.080, 0},1}, + {"ForwardVec1",1,"target",{0.075, 0},1},{}, + {"ForwardVec1",1,"target",{0.070, 0},1}, + {"ForwardVec1",1,"target",{0.065, 0},1},{},*/ + {"ForwardVec",1,"target",{0.060, 0},1}, + {"ForwardVec",1,"target",{0.055, 0},1},{}, + {"ForwardVec",1,"target",{0.050, 0},1}, + {"ForwardVec",1,"target",{0.045, 0},1},{}, + {"ForwardVec",1,"target",{0.040, 0},1}, + {"ForwardVec",1,"target",{0.035, 0},1},{}, + {"ForwardVec",1,"target",{0.030, 0},1}, + {"ForwardVec",1,"target",{0.025, 0},1},{}, + {"ForwardVec",1,"target",{0.020, 0},1}, + {"ForwardVec",1,"target",{0.015, 0},1},{}, + {"ForwardVec",1,"target",{0.010, 0},1}, + {"ForwardVec",1,"target",{0.005, 0},1},{} + }; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/mfd_wildcat_unarmed.hpp b/TO_MERGE/agm/Aircraft/mfd_wildcat_unarmed.hpp new file mode 100644 index 0000000000..26f4b42dc5 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/mfd_wildcat_unarmed.hpp @@ -0,0 +1,896 @@ + +class MFD { + class AirplaneHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class PlaneOrientation { + type = "fixed"; + pos[] = {0.5,0.5}; + }; + + class GunnerAim { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.011,0.0027}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.85,0.85}; + }; + + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.65,0.65}; + }; + + class VspeedBone { + type = "linear"; + source = "vspeed"; + sourceScale = 1; + min = -10; + max = 10; + minPos[] = {0.93,0.2}; + maxPos[] = {0.93,0.8}; + }; + + class RadarAltitudeBone { + type = "linear"; + source = "altitudeAGL"; + sourceScale = 1; + min = 0; + max = 60; + minPos[] = {0.965,0.2}; + maxPos[] = {0.965,0.8}; + }; + + class HorizonBankRot { + type = "rotational"; + source = "horizonBank"; + center[] = {0.5,0.5}; + min = -3.1416; + max = 3.1416; + minAngle = -180; + maxAngle = 180; + aspectRatio = 1; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.235,0.235}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class Level0 { + type = "horizon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.78,0.78}; + angle = 0; + }; + + class LevelP5: Level0 { + angle = 5; + }; + + class LevelM5: Level0 { + angle = -5; + }; + + class LevelP10: Level0 { + angle = 10; + }; + + class LevelM10: Level0 { + angle = -10; + }; + + class LevelP15: Level0 { + angle = 15; + }; + + class LevelM15: Level0 { + angle = -15; + }; + + class LevelP20: Level0 { + angle = 20; + }; + + class LevelM20: Level0 { + angle = -20; + }; + + class LevelP25: Level0 { + angle = 25; + }; + + class LevelM25: Level0 { + angle = -25; + }; + + class LevelP30: Level0 { + angle = 30; + }; + + class LevelM30: Level0 { + angle = -30; + }; + + class LevelP35: Level0 { + angle = 35; + }; + + class LevelM35: Level0 { + angle = -35; + }; + + class LevelP40: Level0 { + angle = 40; + }; + + class LevelM40: Level0 { + angle = -40; + }; + + class LevelP45: Level0 { + angle = 45; + }; + + class LevelM45: Level0 { + angle = -45; + }; + + class LevelP50: Level0 { + angle = 50; + }; + + class LevelM50: Level0 { + angle = -50; + }; + + class LevelP55: Level0 { + angle = 55; + }; + + class LevelM55: Level0 { + angle = -55; + }; + + class LevelP60: Level0 { + angle = 60; + }; + + class LevelM60: Level0 { + angle = -60; + }; + + class LevelP65: Level0 { + angle = 65; + }; + + class LevelM65: Level0 { + angle = -65; + }; + + class LevelP70: Level0 { + angle = 70; + }; + + class LevelM70: Level0 { + angle = -70; + }; + + class LevelP75: Level0 { + angle = 75; + }; + + class LevelM75: Level0 { + angle = -75; + }; + + class LevelP80: Level0 { + angle = 80; + }; + + class LevelM80: Level0 { + angle = -80; + }; + + class LevelP85: Level0 { + angle = 85; + }; + + class LevelM85: Level0 { + angle = -85; + }; + + class LevelP90: Level0 { + angle = 90; + }; + + class LevelM90: Level0 { + angle = -90; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class Horizont { + clipTL[] = {0.15,0.15}; + clipBR[] = {0.85,0.85}; + class Dimmed { + class Level0 { + type = "line"; + points[] = { + {"Level0",{-0.42,0},1}, + {"Level0",{-0.38,0},1},{}, + {"Level0",{-0.37,0},1}, + {"Level0",{-0.33,0},1},{}, + {"Level0",{-0.32,0},1}, + {"Level0",{-0.28,0},1},{}, + {"Level0",{-0.27,0},1}, + {"Level0",{-0.23,0},1},{}, + {"Level0",{-0.22,0},1}, + {"Level0",{-0.18,0},1},{}, + {"Level0",{-0.17,0},1}, + {"Level0",{-0.13,0},1},{}, + {"Level0",{-0.12,0},1}, + {"Level0",{-0.08,0},1},{}, + {"Level0",{0.42,0},1}, + {"Level0",{0.38,0},1},{}, + {"Level0",{0.37,0},1}, + {"Level0",{0.33,0},1},{}, + {"Level0",{0.32,0},1}, + {"Level0",{0.28,0},1},{}, + {"Level0",{0.27,0},1}, + {"Level0",{0.23,0},1},{}, + {"Level0",{0.22,0},1}, + {"Level0",{0.18,0},1},{}, + {"Level0",{0.17,0},1}, + {"Level0",{0.13,0},1},{}, + {"Level0",{0.12,0},1}, + {"Level0",{0.08,0},1} + }; + }; + }; + }; + + /*class StaticBank { + type = "line"; + width = 3; + points[] = { + {{0.4782,0.251},1}, + {{0.4773,0.241},1},{}, + {{0.4566,0.2538},1}, + {{0.4549,0.2439},1},{}, + {{0.4353,0.2585},1}, + {{0.4301,0.2392},1},{}, + {{0.4145,0.2651},1}, + {{0.4111,0.2557},1},{}, + {{0.3943,0.2734},1}, + {{0.3901,0.2644},1},{}, + {{0.375,0.2835},1}, + {{0.365,0.2662},1},{}, + {{0.3232,0.3232},1}, + {{0.3091,0.3091},1},{}, + {{0.2835,0.375},1}, + {{0.2662,0.365},1},{}, + {{"0.5 + (0.5- 0.4782)",0.251},1}, + {{"0.5 + (0.5- 0.4773)",0.241},1},{}, + {{"0.5 + (0.5- 0.4566)",0.2538},1}, + {{"0.5 + (0.5- 0.4549)",0.2439},1},{}, + {{"0.5 + (0.5- 0.4353)",0.2585},1}, + {{"0.5 + (0.5- 0.4301)",0.2392},1},{}, + {{"0.5 + (0.5- 0.4145)",0.2651},1}, + {{"0.5 + (0.5- 0.4111)",0.2557},1},{}, + {{"0.5 + (0.5- 0.3943)",0.2734},1}, + {{"0.5 + (0.5- 0.3901)",0.2644},1},{}, + {{"0.5 + (0.5- 0.3750)",0.2835},1}, + {{"0.5 + (0.5- 0.3650)",0.2662},1},{}, + {{"0.5 + (0.5- 0.3232)",0.3232},1}, + {{"0.5 + (0.5- 0.3091)",0.3091},1},{}, + {{"0.5 + (0.5- 0.2835)",0.375},1}, + {{"0.5 + (0.5- 0.2662)",0.365},1},{}, + {{0.5,"0.5 - 0.25"},1}, + {{0.5,"0.5 - 0.28"},1} + }; + };*/ + + class HorizonBankRot { + type = "line"; + width = 3; + points[] = { + {"HorizonBankRot",{0,0.25},1}, + {"HorizonBankRot",{-0.01,0.23},1}, + {"HorizonBankRot",{0.01,0.23},1}, + {"HorizonBankRot",{0,0.25},1} + }; + }; + + class Static { + clipTL[] = {0,1}; + clipBR[] = {1,0}; + type = "line"; + width = 5; + points[] = { + {{"0.5-0.1","0.9-0.04"},1}, + {{"0.5-0.1","0.9+0.04"},1}, + {{"0.5+0.1","0.9+0.04"},1}, + {{"0.5+0.1","0.9-0.04"},1}, + {{"0.5-0.1","0.9-0.04"},1},{}, + {{"0.5-0.1",0.9},1}, + {{"0.5-0.092",0.9},1},{}, + {{"0.5+0.1",0.9},1}, + {{"0.5+0.092",0.9},1},{}, + {{0.5,"0.9-0.04"},1}, + {{0.5,"0.9-0.032"},1},{}, + {{0.5,"0.9+0.04"},1}, + {{0.5,"0.9+0.032"},1},{} + }; + }; + + class Centerline { + type = "line"; + width = 7; + points[] = { + {{0.5,0.49},1}, + {{0.5,0.47},1},{}, + {{0.5,0.51},1}, + {{0.5,0.53},1},{}, + {{0.49,0.5},1}, + {{0.47,0.5},1},{}, + {{0.51,0.5},1}, + {{0.53,0.5},1},{} + }; + }; + + class Gunner { + type = "line"; + width = 6; + points[] = { + {"GunnerAim",{"0.5-0.015","0.9-0.008"},1}, + {"GunnerAim",{"0.5-0.015","0.9+0.008"},1}, + {"GunnerAim",{"0.5+0.015","0.9+0.008"},1}, + {"GunnerAim",{"0.5+0.015","0.9-0.008"},1}, + {"GunnerAim",{"0.5-0.015","0.9-0.008"},1} + }; + }; + + class WeaponName { + type = "text"; + source = "weapon"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.61,0.86},1}; + right[] = {{0.65,0.86},1}; + down[] = {{0.61,0.9},1}; + }; + + class AmmoCount { + type = "text"; + source = "ammo"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.61,0.89},1}; + right[] = {{0.65,0.89},1}; + down[] = {{0.61,0.93},1}; + }; + + class LightsGroup { + type = "group"; + condition = "lights"; + class LightsText { + type = "text"; + source = "static"; + text = "LIGHTS"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.055"},1}; + right[] = {{0.07,"0.53 + 0.055"},1}; + down[] = {{0.03,"0.53 + 0.095"},1}; + }; + }; + + class CollisionLightsGroup { + type = "group"; + condition = "collisionlights"; + class CollisionLightsText { + type = "text"; + source = "static"; + text = "A-COL"; + align = "right"; + scale = 1; + pos[] = {{0.03,"0.53 + 0.105"},1}; + right[] = {{0.07,"0.53 + 0.105"},1}; + down[] = {{0.03,"0.53 + 0.145"},1}; + }; + }; + + class ATMissileTOFGroup { + condition = "ATmissile"; + type = "group"; + class TOFtext { + type = "text"; + align = "right"; + source = "static"; + text = "TOF="; + scale = 1; + pos[] = {{0.61,0.92},1}; + right[] = {{0.65,0.92},1}; + down[] = {{0.61,0.96},1}; + }; + + class TOFnumber { + type = "text"; + source = "targetDist"; + sourcescale = 0.0025; + align = "right"; + scale = 1; + pos[] = {{0.69,0.92},1}; + right[] = {{0.73,0.92},1}; + down[] = {{0.69,0.96},1}; + }; + }; + + class RangeNumber { + type = "text"; + source = "targetDist"; + sourceScale = 1; + align = "left"; + scale = 1; + pos[] = {{0.39,0.89},1}; + right[] = {{0.43,0.89},1}; + down[] = {{0.39,0.93},1}; + }; + + class RangeText { + type = "text"; + source = "static"; + text = "RNG"; + align = "left"; + scale = 1; + pos[] = {{0.39,0.86},1}; + right[] = {{0.43,0.86},1}; + down[] = {{0.39,0.9},1}; + }; + + class SpeedNumber { + type = "text"; + align = "right"; + scale = 1; + source = "speed"; + sourceScale = 3.6; + pos[] = {{0.03,0.475},1}; + right[] = {{0.08,0.475},1}; + down[] = {{0.03,0.525},1}; + }; + + class TorqueNumber { + type = "text"; + align = "left"; + scale = 1; + source = "rtdRotorTorque"; + sourceScale = 110; + pos[] = {{0.065,0.175},1}; + right[] = {{0.115,0.175},1}; + down[] = {{0.065,0.225},1}; + }; + + class Torquetext { + type = "text"; + source = "static"; + text = "%"; + align = "right"; + scale = 1; + pos[] = {{0.07,0.175},1}; + right[] = {{0.12,0.175},1}; + down[] = {{0.07,0.225},1}; + }; + + class AltNumber { + type = "text"; + align = "right"; + scale = 1; + source = "altitudeAGL"; + sourceScale = 1; + pos[] = {{0.83,0.475},1}; + right[] = {{0.88,0.475},1}; + down[] = {{0.83,0.525},1}; + }; + + class ASLNumber { + type = "text"; + source = "altitudeASL"; + sourceScale = 1; + align = "right"; + scale = 1; + pos[] = {{0.835,0.18},1}; + right[] = {{0.875,0.18},1}; + down[] = {{0.835,0.22},1}; + }; + + class VspeedScalePosta { + type = "line"; + width = 5; + points[] = { + {{0.98,0.2},1}, + {{1,0.2},1},{}, + {{0.93,0.2},1}, + {{0.95,0.2},1},{}, + {{0.98,0.35},1}, + {{1,0.35},1},{}, + {{0.93,0.35},1}, + {{0.95,0.35},1},{}, + {{0.94,0.38},1}, + {{0.95,0.38},1},{}, + {{0.94,0.41},1}, + {{0.95,0.41},1},{}, + {{0.94,0.44},1}, + {{0.95,0.44},1},{}, + {{0.94,0.47},1}, + {{0.95,0.47},1},{}, + {{0.98,0.5},1}, + {{1,0.5},1},{}, + {{0.93,0.5},1}, + {{0.95,0.5},1},{}, + {{0.94,0.53},1}, + {{0.95,0.53},1},{}, + {{0.94,0.56},1}, + {{0.95,0.56},1},{}, + {{0.94,0.59},1}, + {{0.95,0.59},1},{}, + {{0.94,0.62},1}, + {{0.95,0.62},1},{}, + {{0.98,0.65},1}, + {{1,0.65},1},{}, + {{0.93,0.65},1}, + {{0.95,0.65},1},{}, + {{0.99,0.68},1}, + {{0.98,0.68},1},{}, + {{0.99,0.71},1}, + {{0.98,0.71},1},{}, + {{0.99,0.74},1}, + {{0.98,0.74},1},{}, + {{0.99,0.77},1}, + {{0.98,0.77},1},{}, + {{0.98,0.8},1}, + {{1,0.8},1},{}, + {{0.93,0.8},1}, + {{0.95,0.8},1},{} + }; + }; + + class RadarAltitudeBand { + clipTL[] = {0,0.2}; + clipBR[] = {1,0.8}; + class radarbanda { + type = "line"; + width = 17; + points[] = { + {"RadarAltitudeBone",{0,0},1}, + {"RadarAltitudeBone",{0,0.6},1} + }; + }; + }; + + class VspeedBand { + type = "line"; + width = 3; + points[] = { + {"VspeedBone",{-0.01,0},1}, + {"VspeedBone",{-0.025,-0.015},1}, + {"VspeedBone",{-0.025,0.015},1}, + {"VspeedBone",{-0.01,0},1},{} + }; + }; + + class HeadingNumber: SpeedNumber { + source = "heading"; + sourceScale = 1; + align = "center"; + pos[] = {{0.5,0.01},1}; + right[] = {{0.56,0.01},1}; + down[] = {{0.5,0.06},1}; + }; + + class Center_box { + type = "line"; + width = 3; + points[] = { + {{0.44,0.005},1}, + {{"0.44 + 0.12",0.005},1}, + {{"0.44 + 0.12","0.005 + 0.06"},1}, + {{0.44,"0.005 + 0.06"},1}, + {{0.44,0.005},1} + }; + }; + + class HeadingArrow { + type = "line"; + width = 7; + points[] = { + {{"0.5","0.128 + 0.03"},1}, + {{0.5,0.128},1} + }; + }; + + class HeadingScale { + type = "scale"; + horizontal = 1; + source = "heading"; + sourceScale = 1; + width = 5; + top = 0.12; + center = 0.5; + bottom = 0.88; + lineXleft = "0.03 + 0.085"; + lineYright = "0.02 + 0.085"; + lineXleftMajor = "0.04 + 0.085"; + lineYrightMajor = "0.02 + 0.085"; + majorLineEach = 3; + numberEach = 3; + step = 10; + stepSize = "0.05"; + align = "center"; + scale = 1; + pos[] = {0.119,"0.0 + 0.065"}; + right[] = {0.159,"0.0 + 0.065"}; + down[] = {0.119,"0.04 + 0.065"}; + }; + + class Fuel_Text { + type = "text"; + source = "static"; + text = "Fuel"; + align = "right"; + scale = 1; + pos[] = {{0.03,0.9},1}; + right[] = {{0.07,0.9},1}; + down[] = {{0.03,0.94},1}; + }; + + class Fuel_Number { + type = "text"; + source = "fuel"; + sourceScale = 100; + align = "right"; + scale = 1; + pos[] = {{0.1,0.9},1}; + right[] = {{0.14,0.9},1}; + down[] = {{0.1,0.94},1}; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.04,0.04,0.1}; + helmetRight[] = {0.08,0,0}; + helmetDown[] = {0,-0.08,0}; + }; + + class LittleHUD { + class Pos10Vector { + type = "vector"; + pos0[] = {0.5,0.5}; + pos10[] = {0.722,0.722}; + }; + + topLeft = "HUD_top_left"; + topRight = "HUD_top_right"; + bottomLeft = "HUD_bottom_left"; + borderLeft = 0; + borderRight = 0; + borderTop = 0; + borderBottom = 0; + color[] = {0.15,1,0.15,1}; + enableParallax = 0; + class Bones { + class Velocity { + type = "vector"; + source = "velocity"; + pos0[] = {0.5,0.5}; + pos10[] = {0.75,0.75}; + }; + + class ForwardVec1 { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.25,0.25}; + }; + + class ForwardVec { + type = "vector"; + source = "forward"; + pos0[] = {0,0}; + pos10[] = {0.253,0.253}; + }; + + class WeaponAim { + type = "vector"; + source = "weapon"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class WeaponAim1 { + type = "vector"; + source = "weapon"; + pos0[] = {0,0}; + pos10[] = {0.253,0.23}; + }; + + class Target { + type = "vector"; + source = "target"; + pos0[] = {0.5,0.5}; + pos10[] = {0.753,0.753}; + }; + + class RadarContact { + type = "fixed"; + pos[] = {0,0}; + }; + }; + + class Draw { + color[] = {0.18,1,0.18}; + alpha = 1; + condition = "on"; + class PlaneMovementCrosshair { + type = "line"; + width = 7; + points[] = { + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,0.02},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01732,-0.01},1}, + {"ForwardVec1",1,"Velocity",1,{-0.01,-0.01732},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1},{}, + {"ForwardVec1",1,"Velocity",1,{0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{-0.04,0},1}, + {"ForwardVec1",1,"Velocity",1,{-0.02,0},1},{}, + {"ForwardVec1",1,"Velocity",1,{0,-0.04},1}, + {"ForwardVec1",1,"Velocity",1,{0,-0.02},1} + }; + }; + + class TargetACQ { + type = "line"; + width = 2; + points[] = { + //////////////////////////////////////////////// UP + /*{"ForwardVec1",1,"target",{0,-0.1},1}, + {"ForwardVec1",1,"target",{0,-0.095},1},{}, + {"ForwardVec1",1,"target",{0,-0.09},1}, + {"ForwardVec1",1,"target",{0,-0.085},1},{}, + {"ForwardVec1",1,"target",{0,-0.08},1}, + {"ForwardVec1",1,"target",{0,-0.075},1},{}, + {"ForwardVec1",1,"target",{0,-0.07},1}, + {"ForwardVec1",1,"target",{0,-0.065},1},{},*/ + {"ForwardVec",1,"target",{0,-0.06},1}, + {"ForwardVec",1,"target",{0,-0.055},1},{}, + {"ForwardVec",1,"target",{0,-0.05},1}, + {"ForwardVec",1,"target",{0,-0.045},1},{}, + {"ForwardVec",1,"target",{0,-0.04},1}, + {"ForwardVec",1,"target",{0,-0.035},1},{}, + {"ForwardVec",1,"target",{0,-0.03},1}, + {"ForwardVec",1,"target",{0,-0.025},1},{}, + {"ForwardVec",1,"target",{0,-0.02},1}, + {"ForwardVec",1,"target",{0,-0.015},1},{}, + {"ForwardVec",1,"target",{0,-0.01},1}, + {"ForwardVec",1,"target",{0,-0.005},1},{}, + //////////////////////////////////////////////// center + {"ForwardVec",1,"target",{0,0},1}, + {"ForwardVec",1,"target",{0,0},1},{}, + /////////////////////////////////////////////// DOWN + /*{"ForwardVec1",1,"target",{0,0.1},1}, + {"ForwardVec1",1,"target",{0,0.095},1},{}, + {"ForwardVec1",1,"target",{0,0.09},1}, + {"ForwardVec1",1,"target",{0,0.085},1},{}, + {"ForwardVec1",1,"target",{0,0.080},1}, + {"ForwardVec1",1,"target",{0,0.075},1},{}, + {"ForwardVec1",1,"target",{0,0.070},1}, + {"ForwardVec1",1,"target",{0,0.065},1},{},*/ + {"ForwardVec",1,"target",{0,0.060},1}, + {"ForwardVec",1,"target",{0,0.055},1},{}, + {"ForwardVec",1,"target",{0,0.050},1}, + {"ForwardVec",1,"target",{0,0.045},1},{}, + {"ForwardVec",1,"target",{0,0.040},1}, + {"ForwardVec",1,"target",{0,0.035},1},{}, + {"ForwardVec",1,"target",{0,0.030},1}, + {"ForwardVec",1,"target",{0,0.025},1},{}, + {"ForwardVec",1,"target",{0,0.020},1}, + {"ForwardVec",1,"target",{0,0.015},1},{}, + {"ForwardVec",1,"target",{0,0.010},1}, + {"ForwardVec",1,"target",{0,0.005},1},{}, + /////////////////////////////////////////////// LEFT + /*{"ForwardVec1",1,"target",{-0.10, 0},1}, + {"ForwardVec1",1,"target",{-0.095, 0},1},{}, + {"ForwardVec1",1,"target",{-0.09, 0},1}, + {"ForwardVec1",1,"target",{-0.085, 0},1},{}, + {"ForwardVec1",1,"target",{-0.080, 0},1}, + {"ForwardVec1",1,"target",{-0.075, 0},1},{}, + {"ForwardVec1",1,"target",{-0.070, 0},1}, + {"ForwardVec1",1,"target",{-0.065, 0},1},{},*/ + {"ForwardVec",1,"target",{-0.060, 0},1}, + {"ForwardVec",1,"target",{-0.055, 0},1},{}, + {"ForwardVec",1,"target",{-0.050, 0},1}, + {"ForwardVec",1,"target",{-0.045, 0},1},{}, + {"ForwardVec",1,"target",{-0.040, 0},1}, + {"ForwardVec",1,"target",{-0.035, 0},1},{}, + {"ForwardVec",1,"target",{-0.030, 0},1}, + {"ForwardVec",1,"target",{-0.025, 0},1},{}, + {"ForwardVec",1,"target",{-0.020, 0},1}, + {"ForwardVec",1,"target",{-0.015, 0},1},{}, + {"ForwardVec",1,"target",{-0.010, 0},1}, + {"ForwardVec",1,"target",{-0.005, 0},1},{}, + /////////////////////////////////////////////// RIGHT + /*{"ForwardVec1",1,"target",{0.10, 0},1}, + {"ForwardVec1",1,"target",{0.095, 0},1},{}, + {"ForwardVec1",1,"target",{0.09, 0},1}, + {"ForwardVec1",1,"target",{0.085, 0},1},{}, + {"ForwardVec1",1,"target",{0.080, 0},1}, + {"ForwardVec1",1,"target",{0.075, 0},1},{}, + {"ForwardVec1",1,"target",{0.070, 0},1}, + {"ForwardVec1",1,"target",{0.065, 0},1},{},*/ + {"ForwardVec",1,"target",{0.060, 0},1}, + {"ForwardVec",1,"target",{0.055, 0},1},{}, + {"ForwardVec",1,"target",{0.050, 0},1}, + {"ForwardVec",1,"target",{0.045, 0},1},{}, + {"ForwardVec",1,"target",{0.040, 0},1}, + {"ForwardVec",1,"target",{0.035, 0},1},{}, + {"ForwardVec",1,"target",{0.030, 0},1}, + {"ForwardVec",1,"target",{0.025, 0},1},{}, + {"ForwardVec",1,"target",{0.020, 0},1}, + {"ForwardVec",1,"target",{0.015, 0},1},{}, + {"ForwardVec",1,"target",{0.010, 0},1}, + {"ForwardVec",1,"target",{0.005, 0},1},{} + }; + }; + }; + + helmetMountedDisplay = 1; + helmetPosition[] = {-0.035,0.035,0.1}; + helmetRight[] = {0.07,0,0}; + helmetDown[] = {0,-0.07,0}; + }; +}; diff --git a/TO_MERGE/agm/Aircraft/stringtable.xml b/TO_MERGE/agm/Aircraft/stringtable.xml new file mode 100644 index 0000000000..767ee131e1 --- /dev/null +++ b/TO_MERGE/agm/Aircraft/stringtable.xml @@ -0,0 +1,38 @@ + + + + + + Burst + Feuerstoß + Ráfaga + Seria + Dávka + Rafale + Очередь + Sorozat + Rajada + Raffica + + + Open Cargo Door + Laderampe öffnen + Abrir compuerta de carga + Ourvir Rampe Cargo + Otwórz drzwi ładowni + Otevřít nákladní prostor + Rámpát kinyitni + Открыть грузовой отсек + + + Close Cargo Door + Laderampe schließen + Cerrar compuerta de carga + Fermer Rampe Cargo + Zamknij drzwi ładowni + Zavřít nákladní prostor + Rámpát zárni + Закрыть грузовой отсек + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Armour/config.cpp b/TO_MERGE/agm/Armour/config.cpp new file mode 100644 index 0000000000..080298a2ae --- /dev/null +++ b/TO_MERGE/agm/Armour/config.cpp @@ -0,0 +1,258 @@ +class CfgPatches { + class AGM_Armour { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "Adanteh"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Armour { + class AGM_Armour { + file = "AGM_Armour\functions"; + class cookOff; + class getHitPointBySelection; + class handleDamage; + class init; + }; + }; +}; + +class Extended_Init_EventHandlers { + class AllVehicles { + class AGM_Armour { + init = "_this call AGM_Armour_fnc_init"; + }; + }; +}; + +class CfgSFX { + class AGM_CookOff { + name = "Cook-Off"; + sounds[] = {"cookoff"}; + cookoff[] = {"\AGM_Armour\sounds\cookoff.wav",6,1.8,400,1,0,0,0}; + empty[] = {"",0,0,0,0,0,0,0}; + }; +}; + +class CfgVehicles { + /* + * AGM_Armour_AmmoLocation: + * HitPoint classname that holds the magazine of the vehicle + * AGM_Armour_CookOffLocations: + * Positions to spawn cookoff particle effects at + * AGM_Armour_CookOffOnTurret: + * Positions placed on turret? + * + * These 2 will be introduced in v0.96: + * AGM_Armour_TurretObject: + * Object to spawn to simulate turret flying off; "" to not spawn enything + * AGM_Armour_TurretPosition: + * Position to spawn turret at + * + * All positions are Y-up, just like in Oxygen/Object Builder. + */ + + class Sound; + class AGM_Sound_CookOff: Sound { + sound = "AGM_CookOff"; + scope = 2; + }; + + class Land; + class LandVehicle: Land { + AGM_Armour_AmmoLocation = "HitTurret"; + AGM_Armour_CookOffLocations[] = {{0,-0.2,0}}; + AGM_Armour_CookOffOnTurret[] = {0}; + explosionEffect = ""; + }; + class Tank: LandVehicle { + // 2 hatches on the turret; fits most tanks + AGM_Armour_CookOffLocations[] = {{-0.6,-0.3,1.65}, {0.5,-0.3,1.65}}; + AGM_Armour_CookOffOnTurret[] = {1, 1 }; + }; + + // Small explosions for cars with explosive ammunition + class MRAP_01_gmg_base_F; + class B_MRAP_01_gmg_F: MRAP_01_gmg_base_F { + explosionEffect = "FuelExplosion"; + }; + class MRAP_02_gmg_base_F; + class O_MRAP_01_gmg_F: MRAP_02_gmg_base_F { + explosionEffect = "FuelExplosion"; + }; + class MRAP_03_gmg_base_F; + class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F { + explosionEffect = "FuelExplosion"; + }; + + // Big explosions for tracked vehicles and wheeled APCs + class Tank_F: Tank { + explosionEffect = "FuelExplosionBig"; + }; + class Car_F; + class Wheeled_APC_F: Car_F { + explosionEffect = "FuelExplosionBig"; + }; + class APC_Wheeled_03_base_F: Wheeled_APC_F { + explosionEffect = "FuelExplosionBig"; + }; + class APC_Wheeled_01_base_F: Wheeled_APC_F { + explosionEffect = "FuelExplosionBig"; + }; + class APC_Wheeled_02_base_F: Wheeled_APC_F { + explosionEffect = "FuelExplosionBig"; + }; + + class B_MBT_01_base_F; + class B_MBT_01_cannon_F: B_MBT_01_base_F { + AGM_Armour_AmmoLocation = "HitHull"; + //AGM_Armour_TurretObject = "AGM_Turret_MBT_01"; + //AGM_Armour_TurretPosition[] = {3,3,0}; + AGM_Armour_CookOffLocations[] = {{-0.3,-0.3,1.8}}; + AGM_Armour_CookOffOnTurret[] = {1}; + }; + class B_MBT_01_arty_base_F; + class B_MBT_01_arty_F: B_MBT_01_arty_base_F { + AGM_Armour_CookOffLocations[] = {{0.7,-0.3,3.5}}; + AGM_Armour_CookOffOnTurret[] = {1}; + }; + class B_MBT_01_mlrs_base_F; + class B_MBT_01_mlrs_F: B_MBT_01_mlrs_base_F { + AGM_Armour_CookOffLocations[] = {{0,-0.3,1.65}}; + AGM_Armour_CookOffOnTurret[] = {0}; + }; + class B_APC_Tracked_01_base_F; + class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F { + AGM_Armour_AmmoLocation = "HitHull"; + AGM_Armour_CookOffLocations[] = {{0.5,-0.3,1.3}}; + AGM_Armour_CookOffOnTurret[] = {0}; + }; + class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { + AGM_Armour_CookOffLocations[] = {{-0.4,-0.3,1.9}, {0.3,-0.3,1.9}}; + AGM_Armour_CookOffOnTurret[] = {1, 1 }; + }; + class B_APC_Wheeled_01_base_F; + class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { + AGM_Armour_CookOffLocations[] = {{-0.3,0,1.85}, {0.3,0,1.85}}; + AGM_Armour_CookOffOnTurret[] = {1, 1 }; + }; + + class I_APC_tracked_03_base_F; + class I_APC_tracked_03_cannon_F: I_APC_tracked_03_base_F { + AGM_Armour_CookOffLocations[] = {{-0.4,-0.3,1.5}, {0.7,-0.3,1.5}}; + AGM_Armour_CookOffOnTurret[] = {1, 1 }; + }; + class I_APC_Wheeled_03_base_F; + class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { + AGM_Armour_CookOffLocations[] = {{0,-0.6,0}}; + AGM_Armour_CookOffOnTurret[] = {0}; + }; + + class O_MBT_02_base_F; + class O_MBT_02_cannon_F: O_MBT_02_base_F { + AGM_Armour_CookOffLocations[] = {{-0.6,-0.3,1.65}, {0.5,-0.3,1.65}}; + AGM_Armour_CookOffOnTurret[] = {1, 1 }; + }; + class O_MBT_02_arty_base_F; + class O_MBT_02_arty_F: O_MBT_02_arty_base_F { + AGM_Armour_CookOffLocations[] = {{0.7,-0.3,3.5}}; + AGM_Armour_CookOffOnTurret[] = {1}; + }; + class O_APC_Tracked_02_base_F; + class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { + AGM_Armour_CookOffLocations[] = {{-0.4,0.2,3.6}, {0.3,0.2,3.6}}; + AGM_Armour_CookOffOnTurret[] = {1, 1 }; + }; + class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { + AGM_Armour_CookOffLocations[] = {{0,-0.5,1.65}}; + AGM_Armour_CookOffOnTurret[] = {1}; + }; + class O_APC_Wheeled_02_base_F; + class O_APC_Wheeled_02_rcws_F: O_APC_Wheeled_02_base_F { + AGM_Armour_AmmoLocation = "HitHull"; + AGM_Armour_CookOffLocations[] = {{0,-0.4,1}}; + AGM_Armour_CookOffOnTurret[] = {0}; + }; + + + /* + class O_MBT_02_base_F; + class O_MBT_02_cannon_F: O_MBT_02_base_F { + AGM_Armour_TurretObject = "AGM_Turret_MBT_02"; + AGM_Armour_TurretPosition[] = {0.9,3,1.5}; + };*/ + + // Turret Objects + /* + class thingX; + class AGM_Turret_MBT_01: thingX { + scope = 1; + model = "\A3\Structures_F\Wrecks\Wreck_Slammer_turret_F.p3d"; + }; + class AGM_Turret_MBT_02: thingX { + scope = 1; + model = "\A3\Structures_F\Wrecks\Wreck_T72_turret_F.p3d"; + }; + */ +}; + +class CfgCloudlets { + class AGM_CookOff { + angle = 0; + angleVar = 0; + animationName = ""; + animationSpeed[] = {1}; + animationSpeedCoef = 1; + beforeDestroyScript = ""; + bounceOnSurface = 0.6; + bounceOnSurfaceVar = 0; + circleRadius = 0; + circleVelocity[] = {2,2,2}; + color[] = {{1,1,1,-4},{1,1,1,-3},{1,1,1,-2},{1,1,1,-1},{1,1,1,0}}; + colorCoef[] = {1,1,1,1}; + colorVar[] = {0,0,0,2}; + destroyOnWaterSurface = 0; + destroyOnWaterSurfaceOffset = 0; + interval = 0.004; + keepOnSurface = 0; + lifeTime = 1; + lifeTimeVar = 0; + moveVelocity[] = {0,4,0}; + moveVelocityVar[] = {1,2,1}; + moveVelocityVarConst[] = {0,0,0}; + onSurface = 1; + onTimerScript = ""; + particleEffects = ""; + particleFSFrameCount = 32; + particleFSIndex = 0; + particleFSLoop = 0; + particleFSNtieth = 16; + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal"; + particleType = "Billboard"; + position[] = {0,0,0}; + positionVar[] = {0,0,0}; + positionVarConst[] = {0,0,0}; + postEffects = ""; + randomDirectionIntensity = 1; + randomDirectionIntensityVar = 2; + randomDirectionPeriod = 5; + randomDirectionPeriodVar = 1; + rotationVelocity = 1; + rotationVelocityVar = 3; + rubbing = 0; + size[] = {0.01,0.5,1,1,1.5,0.01,0.001}; + sizeCoef = 1; + sizeVar = 0.1; + surfaceOffset = 0; + timerPeriod = 1; + volume = 0.45; + weight = 0.4; + }; +}; diff --git a/TO_MERGE/agm/Armour/functions/fn_cookOff.sqf b/TO_MERGE/agm/Armour/functions/fn_cookOff.sqf new file mode 100644 index 0000000000..0804c9b244 --- /dev/null +++ b/TO_MERGE/agm/Armour/functions/fn_cookOff.sqf @@ -0,0 +1,147 @@ +/* + * Author: KoffeinFlummi + * + * Start a cook-off in the given vehicle. + * + * Arguments: + * 0: Vehicle + * + * Return Value: + * Boom. + */ + +if !(local (_this select 0)) then { + [_this, "AGM_Armour_fnc_cookOff", (_this select 0)] call AGM_Core_fnc_execRemoteFnc; +}; + +if ((_this select 0) getVariable ["AGM_Armour_isCookingOff", False]) exitWith {}; +(_this select 0) setVariable ["AGM_Armour_isCookingOff", True]; + +_this spawn { + private ["_vehicle", "_positions", "_onTurret"]; + + _vehicle = _this select 0; + _positions = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Armour_CookOffLocations"); + _onTurret = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Armour_CookOffOnTurret"); + + sleep 0.5 + (random 0.3); + + // guesstimate turret center; intersect weapon direction with front axis. + // if you find a better method, yell at me. + _gunBeg = _vehicle selectionPosition (getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "gunBeg")); + _gunEnd = _vehicle selectionPosition (getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "gunEnd")); + _weaponDir = _gunEnd vectorFromTo _gunBeg; // this may seem counterintuitive, but it's BIS we're talking about. + _turretAxis = [-1,-1]; + if (abs (_weaponDir select 0) > 0.05 and !(isArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "memoryPointGun"))) then { + _y = (_gunBeg select 1) - ((_gunBeg select 0) / (_weaponDir select 0)) * (_weaponDir select 1); + if (_y < 5) then { + _turretAxis set [0, 0]; + _turretAxis set [1, _y]; + }; + }; + + ["Armour", nil, { + AGM_TurretAxis = _turretAxis; + addMissionEventHandler ["Draw3D", { + drawLine3D [(vehicle player) modelToWorld (AGM_TurretAxis + [-5]), (vehicle player) modelToWorld (AGM_TurretAxis + [10]), [1,0,0,1]]; + }]; + }] call AGM_Debug_fnc_log; + + // Smoke out of cannon and hatches + _smokeBarrel = "#particlesource" createVehicle [0,0,0]; + _smokeBarrel setParticleClass "MediumDestructionSmoke"; + _smokeBarrel attachTo [_vehicle, _vehicle selectionPosition (getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "gunBeg"))]; + + _smokes = []; + { + _position = [ + - (_x select 0), + - (_x select 2), + (_x select 1) + ]; +/* if (_onTurret select _forEachIndex == 1 and _turretAxis select 0 != -1) then { + _weaponDirDeg = ((_weaponDir select 0) atan2 (_weaponDir select 1)) * -1; + _posX = (_position select 0) - (_turretAxis select 0); + _posY = (_position select 1) - (_turretAxis select 1); + _posNewX = _posX * cos _weaponDirDeg - _posY * sin _weaponDirDeg; + _posNewY = _posX * sin _weaponDirDeg - _posY * cos _weaponDirDeg; + _position set [0, _posNewX + (_turretAxis select 0)]; + _position set [1, _posNewY + (_turretAxis select 1)]; + };*/ + + _smoke = "#particlesource" createVehicle [0,0,0]; + _smoke setParticleClass "ObjectDestructionSmoke1_2Smallx"; + _smoke attachTo [_vehicle, _position]; + _smokes pushBack _smoke; + } forEach _positions; + + sleep 3 + (random 2); + + // this shit is busy being on fire, can't go driving around all over the place + _vehicle setFuel 0; + + _light = "#lightpoint" createVehicle [0,0,0]; + _light lightAttachObject [_vehicle, [0,0,4]]; + + [_light, "{_this setLightBrightness 0.7; _this setLightAmbient [1,0.4,0.15]; _this setLightColor [1,0.4,0.15];}"] call AGM_Core_fnc_execRemoteFnc; + + // CookOffs + _fires = []; + { + _position = [ + - (_x select 0), + - (_x select 2), + (_x select 1) + ]; + if (_onTurret select _forEachIndex == 1 and _turretAxis select 0 != -1) then { + _weaponDirDeg = ((_weaponDir select 0) atan2 (_weaponDir select 1)) * -1; + _posX = (_position select 0) - (_turretAxis select 0); + _posY = (_position select 1) - (_turretAxis select 1); + _posNewX = _posX * cos _weaponDirDeg - _posY * sin _weaponDirDeg; + _posNewY = _posX * sin _weaponDirDeg - _posY * cos _weaponDirDeg; + _position set [0, _posNewX + (_turretAxis select 0)]; + _position set [1, _posNewY + (_turretAxis select 1)]; + }; + + _fire = "#particlesource" createVehicle [0,0,0]; + _fire setParticleClass "AGM_CookOff"; + _fire attachTo [_vehicle, _position]; + _fires pushBack _fire; + } forEach _positions; + + _sound = createSoundSource ["AGM_Sound_CookOff", getPos _vehicle, [], 0]; + + // indicator for the crew - yo, your shit's on fire + { + if ([_x] call AGM_Core_fnc_isPlayer) then { + [[_vehicle], "{(_this select 0) spawn {for '_i' from 0 to 11 do {if (vehicle AGM_player != _this) exitWith {}; [] call BIS_fnc_flamesEffect; sleep 0.4;};};}", _x] call AGM_Core_fnc_execRemoteFnc; + }; + } forEach (crew _vehicle); + + sleep (4 + random 1); + + deleteVehicle _smokeBarrel; + [_smokes, {deleteVehicle _this}] call AGM_Core_fnc_map; + [_fires, {deleteVehicle _this}] call AGM_Core_fnc_map; + deleteVehicle _light; + _sound setPosASL [-10000, -10000, 1000]; //deleteVehicle _sound; + + (_this select 0) setVariable ["AGM_Armour_isCookingOff", False]; + if (local _vehicle and damage _vehicle < 1) then { + _vehicle setDamage 1; + /* @todo: this is for v0.96 + _turretClass = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Armour_TurretObject"); + if (_turretClass != "") then { + _turretPos = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Armour_TurretPosition"); + _position = [ + - (_turretPos select 0), + - (_turretPos select 2), + (_turretPos select 1) + ]; + _turret = _turretClass createVehicle (_vehicle modelToWorld _position); + // @todo + //_turret setVectorUp [random 1, random 1, 1]; + //_turret setVelocity [random 7, random 7, 8 + random 5]; + };*/ + }; +}; diff --git a/TO_MERGE/agm/Armour/functions/fn_getHitPointBySelection.sqf b/TO_MERGE/agm/Armour/functions/fn_getHitPointBySelection.sqf new file mode 100644 index 0000000000..48bd7cbcf8 --- /dev/null +++ b/TO_MERGE/agm/Armour/functions/fn_getHitPointBySelection.sqf @@ -0,0 +1,31 @@ +/* + * Author: KoffeinFlummi + * + * Finds out the hitpoint classname of the given selection. + * (works only for main and MainTurret hitpoints) + * + * Arguments: + * 0: Vehicle + * 1: Selection name + * + * Return Value: + * None + */ + +private ["_vehicle", "_selectionName"]; + +_vehicle = _this select 0; +_selectionName = _this select 1; + +_vehicleConfig = configFile >> "CfgVehicles" >> typeOf _vehicle; +_hitPoints = ("True" configClasses (_vehicleConfig >> "HitPoints")) + + ("True" configClasses (_vehicleConfig >> "Turrets" >> "MainTurret" >> "HitPoints")); + +_hitPoint = ""; +for "_i" from 0 to (count _hitPoints - 1) do { + if (getText ((_hitPoints select _i) >> "name") == _selectionName) exitWith { + _hitPoint = configName (_hitPoints select _i); + }; +}; + +_hitPoint diff --git a/TO_MERGE/agm/Armour/functions/fn_handleDamage.sqf b/TO_MERGE/agm/Armour/functions/fn_handleDamage.sqf new file mode 100644 index 0000000000..218b312e6d --- /dev/null +++ b/TO_MERGE/agm/Armour/functions/fn_handleDamage.sqf @@ -0,0 +1,119 @@ +/* + * Author: KoffeinFlummi + * + * Handles all incoming damage for vehicles. + * + * Arguments: + * HandleDamage EH + * + * Return Value: + * Damage to be inflicted. + */ + +_vehicle = _this select 0; +_selectionName = _this select 1; +_damage = _this select 2; +_source = _this select 3; +_projectile = _this select 4; + +if (typeName _projectile == "OBJECT") then { + _projectile = typeOf _projectile; +}; + +// It's already dead, who cares? +if (damage _vehicle >= 1) exitWith {}; + +// Find out what hitpoint the selection belongs to. +_hitpoint = [_vehicle, _selectionName] call AGM_Armour_fnc_getHitPointBySelection; + +// Determine type of vehicle and whether the selection is critical. +_type = ""; +_critical = True; +if (_vehicle isKindOf "Car_F") then { + if (_vehicle isKindOf "Wheeled_APC_F") then { + _type = "tank"; + } else { + _type = "car"; + }; + _critical = _hitpoint in ["HitHull", "HitFuel", ""]; +}; +if (_vehicle isKindOf "Tank_F") then { + _type = "tank"; + _critical = _hitpoint in ["HitHull", ""]; +}; +if (_vehicle isKindOf "Helicopter") then { + _type = "heli"; + _critical = _hitpoint in ["HitHull", ""]; +}; +if (_vehicle isKindOf "Plane") then { + _type = "plane"; + _critical = _hitpoint in ["HitHull", ""]; +}; +if (_vehicle isKindOf "Ship_F") then { + _type = "ship"; + _critical = _hitpoint in ["HitHull", ""]; +}; +if (_vehicle isKindOf "StaticWeapon") then { + _type = "static"; + _critical = _hitpoint in ["HitHull", ""]; +}; + +// Are we doing anything with this type of vehicle? +if !(_type in ["tank", "car"]) exitWith {}; + +// Change in damage +_newDamage = _damage - (_vehicle getHit _selectionName); + +// Prevent total destruction of car unless round used is explosive +if (_type == "car") exitWith { + if (!_critical or (getNumber (configFile >> "CfgAmmo" >> _projectile >> "explosive") > 0.5)) then { + if (!(_vehicle getVariable ["AGM_Armour_isEngineSmoking", False]) and _hitpoint == "HitEngine" and _damage > 0.9) then { + _vehicle setVariable ["AGM_Armour_isEngineSmoking", True, True]; + _pos = [ + 0, + (((boundingBoxReal _vehicle) select 1) select 1) - 4, + (((boundingBoxReal _vehicle) select 0) select 2) + 2 + ]; + _smoke = "#particlesource" createVehicle [0,0,0]; + _smoke setParticleClass "ObjectDestructionSmoke1_2Smallx"; + _smoke attachTo [_vehicle, _pos]; + [_vehicle, _smoke] spawn { + _vehicle = _this select 0; + _smoke = _this select 1; + _time = time; + waitUntil {sleep 5; isNull _vehicle or !(alive _vehicle) or ((_vehicle getHitPointDamage "HitEngine") < 0.9) or (_time + 240 < time)}; + deleteVehicle _smoke; + }; + }; + _damage + } else { + _damage min 0.89 + }; +}; + +// Prevent total destruction of tank unless ammo storage is hit +if (_type == "tank") exitWith { + + // Determine ammo storage location + _target = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Armour_AmmoLocation"); + + // Ammo was hit, high chance for cook-off + if (_hitpoint == _target and _damage > 0.5 and random 1 > 0.3) then { + [_vehicle] call AGM_Armour_fnc_cookOff; + }; + + // Ammo wasn't hit, slim chance for cook-off (only for high-damage weapons) + if (_hitpoint != target and _hitpoint in ["HitBody", "HitTurret", ""] and _newDamage > (0.6 + random 0.3)) then { + [_vehicle] call AGM_Armour_fnc_cookOff; + }; + + // Prevent destruction, let cook-off handle it if necessary + if (_critical) then { + _damage min 0.89 + } else { + _damage + }; +}; + +// this shouldn't happen, but who knows +_damage diff --git a/TO_MERGE/agm/Armour/functions/fn_init.sqf b/TO_MERGE/agm/Armour/functions/fn_init.sqf new file mode 100644 index 0000000000..7306ae1bdd --- /dev/null +++ b/TO_MERGE/agm/Armour/functions/fn_init.sqf @@ -0,0 +1,16 @@ +/* + * Author: KoffeinFlummi + * + * Because CBA's EHs sucks. + * + * Arguments: + * Init EH + * + * Return Value: + * None + */ + +_vehicle = _this select 0; +if (_vehicle isKindOf "CAManBase") exitWith {}; + +_vehicle addEventHandler ["HandleDamage", {_this call AGM_Armour_fnc_handleDamage}]; diff --git a/TO_MERGE/agm/Armour/sounds/cookoff.wav b/TO_MERGE/agm/Armour/sounds/cookoff.wav new file mode 100644 index 0000000000..169986617b Binary files /dev/null and b/TO_MERGE/agm/Armour/sounds/cookoff.wav differ diff --git a/TO_MERGE/agm/Attach/UI/attach_ca.paa b/TO_MERGE/agm/Attach/UI/attach_ca.paa new file mode 100644 index 0000000000..ec545508ba Binary files /dev/null and b/TO_MERGE/agm/Attach/UI/attach_ca.paa differ diff --git a/TO_MERGE/agm/Attach/UI/detach_ca.paa b/TO_MERGE/agm/Attach/UI/detach_ca.paa new file mode 100644 index 0000000000..886c494d90 Binary files /dev/null and b/TO_MERGE/agm/Attach/UI/detach_ca.paa differ diff --git a/TO_MERGE/agm/Attach/UI/irstrobe_item.paa b/TO_MERGE/agm/Attach/UI/irstrobe_item.paa new file mode 100644 index 0000000000..376ea4c906 Binary files /dev/null and b/TO_MERGE/agm/Attach/UI/irstrobe_item.paa differ diff --git a/TO_MERGE/agm/Attach/config.cpp b/TO_MERGE/agm/Attach/config.cpp new file mode 100644 index 0000000000..8902471b70 --- /dev/null +++ b/TO_MERGE/agm/Attach/config.cpp @@ -0,0 +1,159 @@ +class CfgPatches { + class AGM_Attach { + units[] = {}; + weapons[] = {"AGM_IR_Strobe_Item"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "eRazeri", "CAA-Picard"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Attach { + class AGM_Attach { + file = "AGM_Attach\functions"; + class attach; + class canAttach; + class canDetach; + class detach; + class openAttachUI; + }; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + class AGM_SelfActions { + class AGM_Equipment { + class AGM_Attach { + displayName = "$STR_AGM_Attach_AttachDetach"; + condition = "[_player, ''] call AGM_Attach_fnc_canAttach"; + statement = "[_player] call AGM_Attach_fnc_openAttachUI;"; + exceptions[] = {"AGM_Drag_isNotDragging"}; + showDisabled = 0; + priority = 5; + icon = "\AGM_Attach\UI\attach_ca.paa"; + hotkey = "T"; + }; + class AGM_Attach_Detach { + displayName = "$STR_AGM_Attach_Detach"; + condition = "[_player] call AGM_Attach_fnc_canDetach"; + statement = "[_player] call AGM_Attach_fnc_detach"; + exceptions[] = {"AGM_Drag_isNotDragging"}; + showDisabled = 0; + priority = 5; + icon = "\AGM_Attach\UI\detach_ca.paa"; + hotkey = "T"; + }; + }; + }; + }; + + class All; + class AGM_IR_Strobe_Effect: All { + scope = 1; + displayName = "IR Strobe"; + model = "\A3\Weapons_F\empty.p3d"; + simulation = "nvmarker"; + + class NVGMarker { + diffuse[] = {0,0,0}; + ambient[] = {0,0,0}; + brightness = 0.004; + name = "pozicni blik"; + drawLight = 1; + drawLightSize = 0.005; + drawLightCenterSize = 0.003; + activeLight = 0; + blinking=1; + dayLight = 0; + onlyInNvg = 1; + useFlare = 0; + }; + side = 7;//-1=NO_SIDE yellow box,3=CIV grey box,4=NEUTRAL yellow box,6=FRIENDLY green box,7=LOGIC no radar signature + accuracy = 1000; + cost = 0; + armor = 500; + threat[] = {0,0,0}; + nameSound = ""; + type = 0; + weapons[] = {}; + magazines[] = {}; + nvTarget = 1; + destrType = "DestructNo"; + brightness = 20; + }; + + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class FIA_Box_Base_F; + + class Box_NATO_Support_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_IR_Strobe_Item,12) + }; + }; + + class Box_East_Support_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_IR_Strobe_Item,12) + }; + }; + + class Box_IND_Support_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_IR_Strobe_Item,12) + }; + }; + + class Box_FIA_Support_F: FIA_Box_Base_F { + class TransportItems { + MACRO_ADDITEM(AGM_IR_Strobe_Item,12) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_IR_Strobe_Item,12) + }; + }; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_IR_Strobe_Item: AGM_ItemCore { + displayName = "$STR_AGM_IrStrobe_Name"; + descriptionShort = "$STR_AGM_IrStrobe_Description"; + model = "\A3\weapons_F\ammo\mag_univ.p3d"; + picture = "\AGM_Attach\UI\irstrobe_item.paa"; + scope = 2; + AGM_attachable = 1; + class ItemInfo: InventoryItem_Base_F { + mass = 1; + }; + }; +}; + +class CfgMagazines { + class CA_Magazine; + class B_IR_Grenade: CA_Magazine { + AGM_Attachable = 1; + }; + class SmokeShell; + class Chemlight_green: SmokeShell { + AGM_Attachable = 1; + }; +}; diff --git a/TO_MERGE/agm/Attach/functions/fn_attach.sqf b/TO_MERGE/agm/Attach/functions/fn_attach.sqf new file mode 100644 index 0000000000..c82e4a2d2c --- /dev/null +++ b/TO_MERGE/agm/Attach/functions/fn_attach.sqf @@ -0,0 +1,60 @@ +/* +Author: eRazeri and CAA-Picard + +Attach an item to the unit + +Arguments: +0: unit +1: Item name + +Return Value: +none +*/ + +private ["_unit", "_itemName", "_attachedItem"]; + +_unit = _this select 0; +_itemName = _this select 1; + +// Check if unit has an attached item +if (_unit getVariable ["AGM_AttachedItemName", ""] != "") exitWith {}; + +// Check if the unit still has the item +if !((_itemName in items _unit) or (_itemName in magazines _unit)) exitWith {}; + +// Attach item +switch true do { + case (_itemName == "AGM_IR_Strobe_Item") : { + _attachedItem = "AGM_IR_Strobe_Effect" createVehicle [0,0,0]; + _attachedItem attachTo [_unit,[0,-0.11,0.16],"pilot"];//makes it attach to the head a bit better, shoulder is not good for visibility - eRazeri + [localize "STR_AGM_Attach_IrStrobe_Attached"] call AGM_Core_fnc_displayTextStructured; + }; + case (_itemName == "B_IR_Grenade") : { + _attachedItem = "B_IRStrobe" createVehicle [0,0,0]; + _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; + [localize "STR_AGM_Attach_IrGrenade_Attached"] call AGM_Core_fnc_displayTextStructured; + }; + case (_itemName == "O_IR_Grenade") : { + _attachedItem = "O_IRStrobe" createVehicle [0,0,0]; + _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; + [localize "STR_AGM_Attach_IrGrenade_Attached"] call AGM_Core_fnc_displayTextStructured; + }; + case (_itemName == "I_IR_Grenade") : { + _attachedItem = "I_IRStrobe" createVehicle [0,0,0]; + _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; + [localize "STR_AGM_Attach_IrGrenade_Attached"] call AGM_Core_fnc_displayTextStructured; + }; + case (_itemName == "Chemlight_blue" or {_itemName == "Chemlight_green"} or {_itemName == "Chemlight_red"} or {_itemName == "Chemlight_yellow"}) : { + _attachedItem = _itemName createVehicle [0,0,0]; + _attachedItem attachTo [_unit,[-0.05,0,0.12],"rightshoulder"]; + [localize "STR_AGM_Attach_Chemlight_Attached"] call AGM_Core_fnc_displayTextStructured; + }; + default { + if (true) exitWith {}; + }; +}; + +// Remove item +_unit removeItem _itemName; +_unit setVariable ["AGM_AttachedItemName", _itemName, true]; +_unit setVariable ["AGM_AttachedItem", _attachedItem, true]; diff --git a/TO_MERGE/agm/Attach/functions/fn_canAttach.sqf b/TO_MERGE/agm/Attach/functions/fn_canAttach.sqf new file mode 100644 index 0000000000..0401f9d21f --- /dev/null +++ b/TO_MERGE/agm/Attach/functions/fn_canAttach.sqf @@ -0,0 +1,19 @@ +/* + * Author: commy2 + * + * Check if a unit can attach a specific item. + * + * Argument: + * 0: Unit that wants to attach the object (Object) + * 1: Name of the attachable item (String) + * + * Return value: + * Boolean (Bool) + */ + +private ["_unit", "_item"]; + +_unit = _this select 0; +_item = _this select 1; + +canStand _unit && {_unit getVariable ["AGM_AttachedItemName", ""] == ""} && {_item in (magazines _unit + items _unit + [""])} diff --git a/TO_MERGE/agm/Attach/functions/fn_canDetach.sqf b/TO_MERGE/agm/Attach/functions/fn_canDetach.sqf new file mode 100644 index 0000000000..fcda3cbdd3 --- /dev/null +++ b/TO_MERGE/agm/Attach/functions/fn_canDetach.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * + * Check if a unit has an item attached and if it can remove that item. + * + * Argument: + * 0: Unit that wants to detach something (Object) + * + * Return value: + * Boolean (Bool) + */ + +private "_unit"; + +_unit = _this select 0; + +canStand _unit && {_unit getVariable ["AGM_AttachedItemName", ""] != ""} diff --git a/TO_MERGE/agm/Attach/functions/fn_detach.sqf b/TO_MERGE/agm/Attach/functions/fn_detach.sqf new file mode 100644 index 0000000000..f84bb163cd --- /dev/null +++ b/TO_MERGE/agm/Attach/functions/fn_detach.sqf @@ -0,0 +1,63 @@ +/* +Author: eRazeri and CAA-Picard + +Detach an item from a unit + +Arguments: +unit + +Return Value: +none +*/ + +private ["_unit", "_itemName", "_count", "_attachedItem"]; + +_unit = _this select 0; +_itemName = _unit getVariable ["AGM_AttachedItemName", ""]; + +// Check if unit has an attached item +if (_itemName == "") exitWith {}; + +// Add item to inventory +_count = (count items _unit) + (count magazines _unit); +_unit addItem _itemName; +if ((count items _unit) + (count magazines _unit) <= _count) exitWith { + [localize "STR_AGM_Attach_Inventory_Full"] call AGM_Core_fnc_displayTextStructured; +}; + +if (_itemName == "B_IR_Grenade" or _itemName == "O_IR_Grenade" or _itemName == "I_IR_Grenade") then { + // Hack for dealing with X_IR_Grenade effect not dissapearing on deleteVehicle + [_unit getVariable "AGM_AttachedItem", _unit] spawn { + _attachedItem = _this select 0; + _unit = _this select 1; + detach _attachedItem; + _attachedItem setPos [getPos _unit select 0, getPos _unit select 1, (getPos _unit select 2) -1000]; + sleep 0.5; + deleteVehicle _attachedItem; + }; +} +else +{ + // Delete attached item + deleteVehicle (_unit getVariable "AGM_AttachedItem"); +}; + +// Reset unit variables +_unit setVariable ["AGM_AttachedItemName","", true]; +_unit setVariable ["AGM_AttachedItem",nil, true]; + +// Display message +switch true do { + case (_itemName == "AGM_IR_Strobe_Item") : { + [localize "STR_AGM_Attach_IrStrobe_Detached"] call AGM_Core_fnc_displayTextStructured; + }; + case (_itemName == "B_IR_Grenade" or _itemName == "O_IR_Grenade" or _itemName == "I_IR_Grenade") : { + [localize "STR_AGM_Attach_IrGrenade_Detached"] call AGM_Core_fnc_displayTextStructured; + }; + case (_itemName == "Chemlight_blue" or {_itemName == "Chemlight_green"} or {_itemName == "Chemlight_red"} or {_itemName == "Chemlight_yellow"}) : { + [localize "STR_AGM_Attach_Chemlight_Detached"] call AGM_Core_fnc_displayTextStructured; + }; + default { + if (true) exitWith {}; + }; +}; diff --git a/TO_MERGE/agm/Attach/functions/fn_openAttachUI.sqf b/TO_MERGE/agm/Attach/functions/fn_openAttachUI.sqf new file mode 100644 index 0000000000..2a1f0cf784 --- /dev/null +++ b/TO_MERGE/agm/Attach/functions/fn_openAttachUI.sqf @@ -0,0 +1,63 @@ +/* + Name: AGM_Attach_fnc_openAttachUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for attaching objects. + + Parameters: + 0: OBJECT - unit + + Returns: + Nothing + + Example: + [player] call AGM_Attach_fnc_openAttachUI; +*/ +private ["_unit", "_actions", "_attachables", "_item"]; +_unit = _this select 0; +_listed = []; +_attachables = magazines _unit; +_actions = [localize "STR_AGM_Attach_AttachDetach", localize "STR_AGM_Attach_Attach"] call AGM_Interaction_fnc_prepareSelectMenu; +{ + if !(_x in _listed) then { + _item = ConfigFile >> "CfgMagazines" >> _x; + if (getNumber (_item >> "AGM_Attachable") == 1) then { + _actions = [ + _actions, + getText(_item >> "displayName"), + getText(_item >> "picture"), + _x + ] call AGM_Interaction_fnc_AddSelectableItem; + }; + _listed pushBack _x; + }; +} forEach _attachables; +_attachables = items _unit; +{ + if !(_x in _listed) then { + _item = ConfigFile >> "CfgWeapons" >> _x; + if (getNumber (_item >> "AGM_Attachable") == 1) then { + _actions = [ + _actions, + getText(_item >> "displayName"), + getText(_item >> "picture"), + _x + ] call AGM_Interaction_fnc_AddSelectableItem; + }; + _listed pushBack _x; + }; +} forEach _attachables; + +[ + _actions, + { + [AGM_player, _this] call AGM_Attach_fnc_attach; + call AGM_Interaction_fnc_hideMenu; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenuSelf}; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Attach/stringtable.xml b/TO_MERGE/agm/Attach/stringtable.xml new file mode 100644 index 0000000000..895dff95c7 --- /dev/null +++ b/TO_MERGE/agm/Attach/stringtable.xml @@ -0,0 +1,150 @@ + + + + + + Attach item >> + Gegenstand befestigen >> + Acoplar objeto >> + Przyczep przedmiot >> + Attacher l'objet >> + Připnout předmět >> + Acoplar item >> + Attacca l'oggetto >> + Tárgy hozzácsatolása >> + Добавить приспособления + + + Attach + Befestigen + Acoplar + Przyczep + Attacher + Připnout + Acoplar + Attacca + Hozzácsatolás + Присоединить + + + Detach item + Gegenstand entfernen + Quitar objeto + Odczep przedmiot + Détacher l'objet + Odepnout předmět + Separar item + Stacca l'oggetto + Tárgy lecsatolása + Отсоединить + + + IR Strobe Attached + IR-Stroboskop befestigt + Marcador IR acoplado + Przyczepiono stroboskop IR + Strobe IR attaché + IR Značkovač Připnutý + Marcador IV Acoplado + Strobo IR attaccata + Infravörös jeladó hozzácsatolva + ИК строб присоединён + + + IR Strobe Detached + IR-Stroboskop entfernt + Marcador IR quitado + Odczepiono stroboskop IR + Strobe IR détaché + IR Značkovač Odepnutý + Marcador IV Separado + Strobo IR staccata + Infravörös jeladó lecsatolva + ИК строб отсоединён + + + IR Grenade Attached + IR-Granate befestigt + Granada IR acoplada + Przyczepiono granat IR + Grenade IR attachée + IR Granát Připnutý + Granada IV Acoplada + Granata IR attaccata + Infravörös gránát hozzácsatolva + ИК граната присоединена + + + IR Grenade Detached + IR-Granate entfernt + Granada IR quitada + Odczepiono granat IR + Grenade IR détachée + IR Granát Odepnutý + Granada IV Separada + Granata IR staccata + Infravörös gránát lecsatolva + ИК граната отсоединена + + + Chemlight Attached + Leuchtstab befestigt + Barra de luz acoplada + Przyczepiono światło chemiczne + Chemlight attaché + Chemické světlo Připnuto + Chemlight Acoplada + Chemlight attaccata + Chemlight hozzácsatolva + Химсвет присоединён + + + Chemlight Detached + Leuchtstab entfernt + Barra de luz quitada + Odczepiono światło chemiczne + Chemlight détaché + Chemické světlo Odepnuto + Chemlight Separada + Chemlight staccata + Chemlight hozzácsatolva + Химсвет отсоединён + + + No inventory space + Kein Platz im Inventar + Sin espacio en inventario + Brak miejsca w ekwipunku + Pas de place dans l'inventaire + Není místo v inventáři + Sem espaço no inventário + Non hai più spazio + Nincs több hely + В инвентаре нет места + + + IR Strobe + IR-Stroboskop + Marcador IR + Stroboskop IR + Strobe IR + IR Značkovač + Marcador IV + Strobo IR + Infravörös jeladó + ИК строб + + + IR Strobe allows you to signal your position through a pulsating beacon only visible with NVGs. + Das IR-Stroboskop erlaubt es dir deine Position mit einem blinkenden Leuchtfeuer zu signalisieren, welches nur mit Nachtsichtgerät zu erkennen ist. + Stroboskop światła podczerwieni umożliwia oznaczenie swojej pozycji pulsacyjnym światłem widocznym tylko przez optykę noktowizyjną i gogle noktowizyjne. + El Marcador IR permite señalizar su posisición a través de una baliza visible solo a través de dispositivos de visión nocturna. + Le Strobe IR permet de signaler votre position grace à un clignotement visible par des JVN. + IR Značkovač je Infračerveně zářící stroboskop umožňující signalizaci vaší pozice díky blikajícímu světlu, které je vidět pouze při užití noktovizoru. + O Marcador IV permite que você sinalize sua posição através de um pulso visível somente com equipamento de visão noturna. + La Strobo IR è una luce stroboscopica che ti permette di segnalare la tua posizione grazie all'emissione di impulsi ad infrarossi visibili solo con i visori notturni. + Az infravörös jeladóval megjelölheted a helyzetedet úgy, hogy annak pulzáló fénye csak éjjellátó készülékkel látható. + ИК строб позволяет сигнализировать свое местоположение через пульсирующий маяк, видимый только через ПНВ. + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Backblast/config.cpp b/TO_MERGE/agm/Backblast/config.cpp new file mode 100644 index 0000000000..9bac3035a6 --- /dev/null +++ b/TO_MERGE/agm/Backblast/config.cpp @@ -0,0 +1,80 @@ +class CfgPatches { + class AGM_Backblast { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Backblast { + class AGM_Backblast { + file = "\AGM_Backblast\functions"; + class getDistance; + class launcherBackblast; + class tankDangerZone; + }; + }; +}; + +class Extended_FiredNear_EventHandlers { + class CAManBase { + class AGM_FiredNear_LauncherBackblast { + FiredNear = "if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 3 >> 'AGM_Backblast_Damage') > 0}) then {_this call AGM_Backblast_fnc_launcherBackblast}"; + }; + class AGM_FiredNear_TankDangerZone { + FiredNear = "if (local (_this select 0) && {getNumber (configfile >> 'CfgWeapons' >> _this select 3 >> 'AGM_DangerZone_Damage') > 0}) then {_this call AGM_Backblast_fnc_tankDangerZone}"; + }; + }; +}; + +class CfgWeapons { + + class LauncherCore; + class Launcher: LauncherCore { + AGM_Backblast_Angle = 60; + AGM_Backblast_Range = 10; + AGM_Backblast_Damage = 0.7; + }; + class Launcher_Base_F: Launcher {}; + + class launch_Titan_base: Launcher_Base_F { + AGM_Backblast_Angle = 40; + AGM_Backblast_Range = 8; + AGM_Backblast_Damage = 0.5; + }; + class launch_Titan_short_base: launch_Titan_base { + AGM_Backblast_Angle = 40; + AGM_Backblast_Range = 8; + AGM_Backblast_Damage = 0.5; + }; + + class launch_NLAW_F: Launcher_Base_F { + AGM_Backblast_Angle = 40; + AGM_Backblast_Range = 5; + AGM_Backblast_Damage = 0.6; + }; + class launch_RPG32_F: Launcher_Base_F { + AGM_Backblast_Angle = 60; + AGM_Backblast_Range = 15; + AGM_Backblast_Damage = 0.7; + }; + + class CannonCore; + class cannon_120mm: CannonCore { + AGM_DangerZone_Angle = 90; + AGM_DangerZone_Range = 50; + AGM_DangerZone_Damage = 0.85; + }; + class mortar_155mm_AMOS: CannonCore { + AGM_DangerZone_Angle = 90; + AGM_DangerZone_Range = 60; + AGM_DangerZone_Damage = 1; + }; +}; diff --git a/TO_MERGE/agm/Backblast/functions/fn_getDistance.sqf b/TO_MERGE/agm/Backblast/functions/fn_getDistance.sqf new file mode 100644 index 0000000000..41f79a010a --- /dev/null +++ b/TO_MERGE/agm/Backblast/functions/fn_getDistance.sqf @@ -0,0 +1,30 @@ +// by commy2 + +private ["_position", "_direction", "_maxDistance", "_distance", "_iteration", "_laser", "_line"]; + +_position = + _this select 0; +_direction = + _this select 1; +_maxDistance = _this select 2; + +_distance = _maxDistance; +_iteration = _distance; +_laser = []; +_line = [_position, _laser]; + +while { + _iteration > 0.1 +} do { + _iteration = _iteration / 2; + + _laser set [0, (_position select 0) - _distance * (_direction select 0)]; + _laser set [1, (_position select 1) - _distance * (_direction select 1)]; + _laser set [2, (_position select 2) - _distance * (_direction select 2)]; + + _intersections = { + _x isKindOf "Static" || {_x isKindOf "AllVehicles"} + } count (lineIntersectsWith _line); + + _distance = _distance + ([1, -1] select (_intersections > 0)) * _iteration; +}; + +if (_distance > _maxDistance) then {999} else {_distance} diff --git a/TO_MERGE/agm/Backblast/functions/fn_launcherBackblast.sqf b/TO_MERGE/agm/Backblast/functions/fn_launcherBackblast.sqf new file mode 100644 index 0000000000..c4e8b8b662 --- /dev/null +++ b/TO_MERGE/agm/Backblast/functions/fn_launcherBackblast.sqf @@ -0,0 +1,67 @@ +// by commy2 + +_unit = _this select 0; +_firer = _this select 1; +_distance = _this select 2; +_weapon = _this select 3; + +if (vehicle _unit != _unit || {!([_firer] call AGM_Core_fnc_isPlayer)}) exitWith {}; + +_backblastAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Backblast_Angle") / 2; +_backblastRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Backblast_Range"); +_backblastDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Backblast_Damage"); + +_position = eyePos _firer; +_direction = _firer weaponDirection currentWeapon _firer; + +if (_unit == _firer) then { + _distance = [_position, _direction, _backblastRange] call AGM_Backblast_fnc_getDistance; + + if (_distance < _backblastRange) then { + _alpha = sqrt (1 - _distance / _backblastRange); + _beta = sqrt 0.5; + + _damage = 2 * _alpha * _beta * _backblastDamage; + [_damage * 100] call BIS_fnc_bloodEffect; + + if (isClass (configFile >> "CfgPatches" >> "AGM_Medical")) then { + [_unit, "HitBody", ([_unit, "", ((_unit getHitPointDamage "HitBody") + _damage), objNull, objNull] call AGM_Medical_fnc_handleDamage)] call AGM_Medical_fnc_setHitPointDamage; + } else { + _unit setDamage (damage _unit + _damage); + }; + }; +} else { + _direction = [0, 0, 0] vectorDiff _direction; + + _azimuth = (_direction select 0) atan2 (_direction select 1); + _inclination = asin (_direction select 2); + + _relativePosition = eyePos _unit; + _relativeDirection = _relativePosition vectorDiff _position; + + _relativeAzimuth = (_relativeDirection select 0) atan2 (_relativeDirection select 1); + _relativeInclination = asin (_relativeDirection select 2); + + _angle = sqrt ((_relativeAzimuth - _azimuth) ^ 2 + (_relativeInclination - _inclination) ^ 2); + _distance = vectorMagnitude _relativeDirection; + + _line = [_position, _relativePosition]; + + if (_angle < _backblastAngle && {_distance < _backblastRange} && {!lineIntersects _line} && {!terrainIntersectASL _line}) then { + _alpha = sqrt (1 - _distance / _backblastRange); + _beta = sqrt (1 - _angle / _backblastAngle); + + _damage = 2 * _alpha * _beta * _backblastDamage; + if (_unit == AGM_player) then {[_damage * 100] call BIS_fnc_bloodEffect}; + + if (isClass (configFile >> "CfgPatches" >> "AGM_Medical")) then { + [_unit, "HitBody", ([_unit, "", ((_unit getHitPointDamage "HitBody") + _damage), objNull, objNull] call AGM_Medical_fnc_handleDamage)] call AGM_Medical_fnc_setHitPointDamage; + _unit spawn { + sleep 0.5; + [_this, "", 0, objNull, objNull] call AGM_Medical_fnc_handleDamage; + }; + } else { + _unit setDamage (damage _unit + _damage); + }; + }; +}; diff --git a/TO_MERGE/agm/Backblast/functions/fn_tankDangerZone.sqf b/TO_MERGE/agm/Backblast/functions/fn_tankDangerZone.sqf new file mode 100644 index 0000000000..a85fbc4928 --- /dev/null +++ b/TO_MERGE/agm/Backblast/functions/fn_tankDangerZone.sqf @@ -0,0 +1,51 @@ +// by commy2 + +#define BARREL_MUZZLE "usti hlavne" + +_unit = _this select 0; +_vehicle = vehicle (_this select 1); +_distance = _this select 2; +_weapon = _this select 3; + +if (vehicle _unit != _unit || {!([gunner _firer] call AGM_Core_fnc_isPlayer)}) exitWith {}; + +_dangerZoneAngle = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_DangerZone_Angle") / 2; +_dangerZoneRange = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_DangerZone_Range"); +_dangerZoneDamage = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_DangerZone_Damage"); + +_position = ATLToASL (_vehicle modelToWorld (_vehicle selectionPosition BARREL_MUZZLE)); +_direction = _vehicle weaponDirection _weapon; + +if (_unit != _vehicle) then { + _azimuth = (_direction select 0) atan2 (_direction select 1); + _inclination = asin (_direction select 2); + + _relativePosition = eyePos _unit; + _relativeDirection = _relativePosition vectorDiff _position; + + _relativeAzimuth = (_relativeDirection select 0) atan2 (_relativeDirection select 1); + _relativeInclination = asin (_relativeDirection select 2); + + _angle = sqrt ((_relativeAzimuth - _azimuth) ^ 2 + (_relativeInclination - _inclination) ^ 2); + _distance = vectorMagnitude _relativeDirection; + + _line = [_position, _relativePosition]; + + if (_angle < _dangerZoneAngle && {_distance < _dangerZoneRange} && {!lineIntersects (_line + [_vehicle])} && {!terrainIntersectASL _line}) then { + _alpha = sqrt (1 - _distance / _dangerZoneRange); + _beta = sqrt (1 - _angle / _dangerZoneAngle); + + _damage = 2 * _alpha * _beta * _dangerZoneDamage; + if (_unit == AGM_player) then {[_damage * 100] call BIS_fnc_bloodEffect}; + + if (isClass (configFile >> "CfgPatches" >> "AGM_Medical")) then { + [_unit, "HitBody", ([_unit, "", ((_unit getHitPointDamage "HitBody") + _damage), objNull, objNull] call AGM_Medical_fnc_handleDamage)] call AGM_Medical_fnc_setHitPointDamage; + _unit spawn { + sleep 0.5; + [_this, "", 0, objNull, objNull] call AGM_Medical_fnc_handleDamage; + }; + } else { + _unit setDamage (damage _unit + _damage); + }; + }; +}; diff --git a/TO_MERGE/agm/Backpacks/config.cpp b/TO_MERGE/agm/Backpacks/config.cpp new file mode 100644 index 0000000000..c93e0c5f89 --- /dev/null +++ b/TO_MERGE/agm/Backpacks/config.cpp @@ -0,0 +1,62 @@ +class CfgPatches { + class AGM_Backpacks { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"bux", "commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Backpacks { + class AGM_Backpacks { + file = "\AGM_Backpacks\functions"; + class getBackpackAssignedUnit; + class isBackpack; + class openInventory; + }; + }; +}; + +class Extended_InventoryOpened_EventHandlers { + class CAManBase { + class AGM_Backpacks_openInventory { + clientInventoryOpened = "if (_this select 0 == AGM_player) then {_this call AGM_Backpacks_fnc_openInventory};"; + }; + }; +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + class AGM_SelfActions { + class AGM_Equipment { + class AGM_LockBackpack { + displayName = "$STR_AGM_Backpacks_LockBackpack"; + condition = "[backpackContainer _player] call AGM_Backpacks_fnc_isBackpack && {!((backpackContainer _player) getVariable ['AGM_LockedInventory', false])}"; + statement = "(backpackContainer _player) setVariable ['AGM_LockedInventory', true, true]"; + showDisabled = 0; + priority = 2.5; + icon = ""; // @todo + hotkey = "L"; + enableInside = 1; + }; + class AGM_UnlockBackpack { + displayName = "$STR_AGM_Backpacks_UnlockBackpack"; + condition = "[backpackContainer _player] call AGM_Backpacks_fnc_isBackpack && {(backpackContainer _player) getVariable ['AGM_LockedInventory', false]}"; + statement = "(backpackContainer _player) setVariable ['AGM_LockedInventory', false, true]"; + showDisabled = 0; + priority = 2.5; + icon = ""; // @todo + hotkey = "L"; + enableInside = 1; + }; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Backpacks/functions/fn_getBackpackAssignedUnit.sqf b/TO_MERGE/agm/Backpacks/functions/fn_getBackpackAssignedUnit.sqf new file mode 100644 index 0000000000..afe95ef578 --- /dev/null +++ b/TO_MERGE/agm/Backpacks/functions/fn_getBackpackAssignedUnit.sqf @@ -0,0 +1,21 @@ +/* + * Author: commy2 + * + * Returns the unit that has the given backpack object equipped. + * + * Argument: + * 0: A backpack object (Object) + * + * Return value: + * Unit that has the backpack equipped. (Object) + */ + +private ["_backpack", "_unit"]; + +_backpack = _this select 0; + +_unit = objNull; +{ + if (backpackContainer _x == _backpack) exitWith {_unit = _x}; +} forEach (allUnits + allDeadMen); +_unit diff --git a/TO_MERGE/agm/Backpacks/functions/fn_isBackpack.sqf b/TO_MERGE/agm/Backpacks/functions/fn_isBackpack.sqf new file mode 100644 index 0000000000..7413a1d5dd --- /dev/null +++ b/TO_MERGE/agm/Backpacks/functions/fn_isBackpack.sqf @@ -0,0 +1,23 @@ +/* + * Author: commy2 + * + * Check if the given backpack is an actual backpack that can store items. Parachute backpacks will return false for example. + * + * Argument: + * 0: A backpack (Object or String) + * + * Return value: + * Boolean (Bool) + */ + +private ["_backpack", "_config"]; + +_backpack = _this select 0; + +if (typeName _backpack == "OBJECT") then { + _backpack = typeOf _backpack; +}; + +_config = configFile >> "CfgVehicles" >> _backpack; + +getText (_config >> "vehicleClass") == "backpacks" && {getNumber (_config >> "maximumLoad") > 0} diff --git a/TO_MERGE/agm/Backpacks/functions/fn_openInventory.sqf b/TO_MERGE/agm/Backpacks/functions/fn_openInventory.sqf new file mode 100644 index 0000000000..8e584be19b --- /dev/null +++ b/TO_MERGE/agm/Backpacks/functions/fn_openInventory.sqf @@ -0,0 +1,46 @@ +/* + * Author: bux, commy2 + * + * Handle the open inventory event. Don't open the inventory if it's locked and display message. + * + * Argument: + * Input from "InventoryOpened" eventhandler + * + * Return value: + * Don't open the inventory dialog? (Bool) + */ + +private ["_target", "_isBackpack", "_isLocked", "_return"]; + +_target = _this select 1; + +_isBackpack = [_target] call AGM_Backpacks_fnc_isBackpack; +_isLocked = _target getVariable ["AGM_LockedInventory", false]; + +_return = false; +if (_isBackpack) then { + // target is a backpack + private "_unit"; + _unit = [_target] call AGM_Backpacks_fnc_getBackpackAssignedUnit; + + if (!alive _unit || {_unit getVariable ["AGM_isUnconscious", false]}) exitWith {}; + + if (_isLocked) then { + // target is a locked backpack + [format [localize "STR_AGM_Backpacks_BackpackLocked", [_unit] call AGM_Core_fnc_getName]] call AGM_Core_fnc_displayTextStructured; + _return = true; + } else { + // target is a not-locked backpack + if (_unit getVariable ["AGM_LockedInventory", false]) then { + [localize "STR_AGM_Backpacks_InventoryLocked"] call AGM_Core_fnc_displayTextStructured; + _return = true; + }; + }; +} else { + // target is not a backpack + if (_isLocked) then { + [localize "STR_AGM_Backpacks_InventoryLocked"] call AGM_Core_fnc_displayTextStructured; + _return = true; + }; +}; +_return diff --git a/TO_MERGE/agm/Backpacks/stringtable.xml b/TO_MERGE/agm/Backpacks/stringtable.xml new file mode 100644 index 0000000000..4ec5aedee5 --- /dev/null +++ b/TO_MERGE/agm/Backpacks/stringtable.xml @@ -0,0 +1,70 @@ + + + + + + Take (Ventral) + Aufnehmen (Am Bauch) + Coger (Mochila delantera) + Załóż (brzuch) + Vzít (ventrální) + Prendre (Ventral) + Взять рюкзак (передний) + Felvétel (előre) + Pegar (Mochila Ventral) + Prendi + + + Take Off Backpack + Rucksack ablegen + Dejar mochila + Zdejmij (brzuch) + Odložit batoh + Enlever (Ventral) + Снять рюкзак (передний) + Táska levétele + Retirar Mochila + Togliere zaino + + + Lock Backpack + Rucksack verschließen + Verrouiller le sac à dos + Bloquear mochila + Zamknout batoh + Zablokuj plecak + Táska zárolása + Запереть рюкзак + + + Unlock Backpack + Rucksack aufschließen + Déverouiller le sac à dos + Desbloquear mochila + Odemknout batoh + Odblokuj plecak + Táska nyitása + Отпереть рюкзак + + + Backpack of %1 is locked + Der Rucksack von %1 ist verschlossen + Le sac à dos de %1 est verroullé + La mochila de %1 está bloqueada + %1 má zamčený batoh + Plecak %1 jest zablokowany + %1 táskája zárolva + Рюкзак %1 заперт + + + Inventory is locked + Das Inventar ist verschlossen + L'inventaire est verrouillé + Inventario bloqueado + Inventář je zamčený + Ekwipunek jest zablokowany + Felszerelés zárolt + Инвентарь заперт + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Ballistics/FixHelmets.hpp b/TO_MERGE/agm/Ballistics/FixHelmets.hpp new file mode 100644 index 0000000000..6c3d6a9e2f --- /dev/null +++ b/TO_MERGE/agm/Ballistics/FixHelmets.hpp @@ -0,0 +1,230 @@ + +// INTEGER +#define HELMET_ARMOR_NO_PROTECTION 0 + +// FLOAT, 0-1 +#define HELMET_PASSTHROUGH_NO_PROTECTION 1 + +/*class InventoryItem_Base_F; +class HeadgearItem: InventoryItem_Base_F { + armor = 0; + passThrough = 1; +}; + +class H_HelmetB: ItemCore { + class ItemInfo: HeadgearItem { + //mass = 40; + armor = 4; + passThrough = 0.5; + }; +}; + +class H_HelmetB_camo: H_HelmetB { + class ItemInfo: HeadgearItem { + //mass = 40; + armor = 4; + passThrough = 0.5; + }; +}; + +class H_HelmetB_light: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 30; + armor = 3; + passThrough = 0.5; + }; +}; + +class H_Booniehat_khk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 10; + armor = 0; + passThrough = 1; + }; +}; + +class H_HelmetB_plain_mcamo: H_HelmetB {}; + +class H_HelmetSpecB: H_HelmetB_plain_mcamo { + class ItemInfo: ItemInfo { + //mass = 50; + armor = 5; + passThrough = 0.5; + }; +}; + +class H_HelmetIA: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 40; + armor = 4; + passThrough = 0.5; + }; +}; + +class H_Cap_red: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 4; + armor = 0; + passThrough = 1; + }; +}; + +class H_Cap_headphones: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 8; + armor = 0; + passThrough = 1; + }; +}; + +class H_HelmetCrew_B: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 40; + armor = 4; + passThrough = 0.5; + }; +}; + +class H_PilotHelmetFighter_B: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 50; + armor = 5; + passThrough = 0.5; + }; +}; + +class H_PilotHelmetHeli_B: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 30; + armor = 3; + passThrough = 0.5; + }; +}; + +class H_CrewHelmetHeli_B: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 30; + armor = 3; + passThrough = 0.5; + }; +}; + +class H_HelmetO_ocamo: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 50; + armor = 5; + passThrough = 0.5; + }; +}; + +class H_HelmetLeaderO_ocamo: H_HelmetO_ocamo { + class ItemInfo: ItemInfo { + //mass = 60; + armor = 6; + passThrough = 0.5; + }; +}; + +class H_MilCap_ocamo: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_BandMask_blk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 8; + armor = 0; + passThrough = 1; + }; +}; + +class H_HelmetSpecO_ocamo: H_HelmetO_ocamo { + class ItemInfo: ItemInfo { + //mass = 40; + armor = 4; + passThrough = 0.5; + }; +}; + +class H_Bandanna_surfer: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 8; + armor = 0; + passThrough = 1; + }; +}; + +class H_Shemag_khk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_ShemagOpen_khk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_Beret_blk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_Beret_02: H_Beret_blk { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_Watchcap_blk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_TurbanO_blk: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 8; + armor = 0; + passThrough = 1; + }; +}; + +class H_StrawHat: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_Hat_blue: H_HelmetB { + class ItemInfo: ItemInfo { + //mass = 6; + armor = 0; + passThrough = 1; + }; +}; + +class H_RacingHelmet_1_F: H_HelmetB_camo { + class ItemInfo: ItemInfo { + //mass = 50; + armor = 5; + passThrough = 0.5; + }; +};*/ diff --git a/TO_MERGE/agm/Ballistics/FixUniforms.hpp b/TO_MERGE/agm/Ballistics/FixUniforms.hpp new file mode 100644 index 0000000000..add1524c8a --- /dev/null +++ b/TO_MERGE/agm/Ballistics/FixUniforms.hpp @@ -0,0 +1,569 @@ + +class Man; +class CAManBase: Man { + class HitPoints { + class HitHead { + /*armor = 1; + passThrough = 1; + radius = 0.1; + explosionShielding = 0.5; + minimalHit = 0;*/ + }; + + class HitBody { + /*armor = 1; + passThrough = 1; + radius = 0.15; + explosionShielding = 10; + minimalHit = 0;*/ + }; + + class HitHands { + /*armor = 1; + passThrough = 1; + radius = 0.08; + explosionShielding = 1; + minimalHit = 0;*/ + }; + + class HitLegs { + /*armor = 1; + passThrough = 1; + radius = 0.1; + explosionShielding = 1; + minimalHit = 0;*/ + }; + }; + + /*armor = 2; + armorStructural = 5;*/ +}; + +class Civilian: CAManBase { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 2; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ +}; + +/*class Civilian_F: Civilian {}; +class C_man_1: Civilian_F {};*/ + +class SoldierWB: CAManBase {}; +class SoldierEB: CAManBase {}; +class SoldierGB: CAManBase {}; + +class B_Soldier_base_F: SoldierWB { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 2; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + }; + + armor = 2; + armorStructural = 5;*/ +}; + +class B_Soldier_02_f: B_Soldier_base_F { // t-shirt + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + }; + + class HitBody: HitBody { + armor = 1; + }; + + class HitHands: HitHands { + armor = 1; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ + + armorStructural = 5; //7; +}; + +class B_Soldier_03_f: B_Soldier_base_F { // sleeves + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 1; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ + + armorStructural = 5; //7; +}; + +class B_Soldier_04_f: B_Soldier_base_F { // heli pilot + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + /*armor = 2;*/ + passThrough = 1; //0.5; + /*explosionShielding = 2.4;*/ + }; + + class HitHands: HitHands { + armor = 2; //8; + passThrough = 1; //0.5; + /*explosionShielding = 1.2;*/ + }; + + class HitLegs: HitLegs { + armor = 2; //8; + passThrough = 1; //0.5; + /*explosionShielding = 1.2;*/ + }; + }; +}; + +class B_Soldier_05_f: B_Soldier_base_F { // cas pilot + armorStructural = 5; //3; + + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + armor = 3; //2; + passThrough = 1; //0.5; + /*explosionShielding = 2.4;*/ + }; + + class HitHands: HitHands { + armor = 3; //8; + /*passThrough = 1; + explosionShielding = 1.2;*/ + }; + + class HitLegs: HitLegs { + armor = 3; //8; + /*passThrough = 1; + explosionShielding = 1.2;*/ + }; + }; +}; + +class B_Soldier_diver_base_F: B_Soldier_base_F { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 2; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 2; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ +}; + +// these appear to be broken, remnants from A2? +/*class C_man_p_fugitive_F: C_man_1 { + class HitPoints: HitPoints { + class HitBody: HitBody { + armor = "0.3*10"; + }; + + class HitLegs: HitLegs { + armor = "0.3*5"; + }; + }; +}; + +class C_man_w_worker_F: C_man_1 { + class HitPoints: HitPoints { + class HitBody: HitBody { + armor = "0.6*10"; + }; + + class HitHands: HitHands { + armor = "0.5*5"; + }; + + class HitLegs: HitLegs { + armor = "0.5*5"; + }; + }; +}; + +class C_man_hunter_1_F: C_man_1 { + class HitPoints: HitPoints { + class HitBody: HitBody { + armor = "0.6*10"; + }; + + class HitHands: HitHands { + armor = "0.5*5"; + }; + + class HitLegs: HitLegs { + armor = "0.5*5"; + }; + }; +}; + +class C_man_p_shorts_1_F: C_man_1 { + class HitPoints: HitPoints { + class HitLegs: HitLegs { + armor = "0.3*5"; + }; + }; +}; + +class C_man_pilot_F: C_man_1 { + class HitPoints: HitPoints { + class HitBody: HitBody { + armor = "0.6*10"; + }; + + class HitHands: HitHands { + armor = "0.5*5"; + }; + + class HitLegs: HitLegs { + armor = "0.5*5"; + }; + }; +};*/ + +class I_Soldier_base_F: SoldierGB { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 2; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ + + /*armor = 2;*/ + armorStructural = 5; //7; +}; + +class I_Soldier_02_F: I_Soldier_base_F { // sleeves + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 1; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ +}; + +class I_Soldier_03_F: I_Soldier_base_F { // heli pilot + /*armorStructural = 5;*/ + + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + /*armor = 2;*/ + passThrough = 1; //0.5; + /*explosionShielding = 2.4;*/ + }; + + class HitHands: HitHands { + armor = 2; //8; + passThrough = 1; //0.5; + /*explosionShielding = 1.2;*/ + }; + + class HitLegs: HitLegs { + armor = 2; //8; + passThrough = 1; //0.5; + /*explosionShielding = 1.2;*/ + }; + }; +}; + +class I_Soldier_04_F: I_Soldier_base_F { // cas pilot + armorStructural = 5; //3; + + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + armor = 3; //2; + passThrough = 1; //0.5; + /*explosionShielding = 2.4;*/ + }; + + class HitHands: HitHands { + armor = 3; //8; + /*passThrough = 1; + explosionShielding = 1.2;*/ + }; + + class HitLegs: HitLegs { + armor = 3; //8; + /*passThrough = 1; + explosionShielding = 1.2;*/ + }; + }; +}; + +class I_Soldier_diver_base_F: I_Soldier_base_F { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 2; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 2; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ +}; + +class O_Soldier_base_F: SoldierEB { + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + armor = 4; //6; + passThrough = 0.85; //0.5; + /*explosionShielding = 1.5;*/ + }; + + class HitHands: HitHands { + armor = 4; //8; + passThrough = 0.85; //0.5; + /*explosionShielding = 0.8;*/ + }; + + class HitLegs: HitLegs { + armor = 4; //8; + passThrough = 0.85; //0.5; + /*explosionShielding = 0.8;*/ + }; + }; + + /*armor = 2; + armorStructural = 5;*/ +}; + +class O_officer_F: O_Soldier_base_F { + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + /*armor = 2; + passThrough = 1; + explosionShielding = 10;*/ + }; + + class HitHands: HitHands { + /*armor = 2; + passThrough = 1; + explosionShielding = 1;*/ + }; + + class HitLegs: HitLegs { + armor = 2; //8; + passThrough = 1; //0.5; + /*explosionShielding = 1;*/ + }; + }; +}; + +class O_Soldier_02_F: O_Soldier_base_F { // crew ? + armorStructural = 5; //3; + + class HitPoints: HitPoints { + class HitHead: HitHead { + /*armor = 1; + passThrough = 1; + explosionShielding = 0.5;*/ + }; + + class HitBody: HitBody { + armor = 4; //6; + passThrough = 0.85; //0.5; + /*explosionShielding = 1.5;*/ + }; + + class HitHands: HitHands { + armor = 4; //8; + passThrough = 0.85; //1; + /*explosionShielding = 0.8;*/ + }; + + class HitLegs: HitLegs { + armor = 4; //8; + passThrough = 0.85; //1; + /*explosionShielding = 0.8;*/ + }; + }; +}; + +class O_Soldier_diver_base_F: O_Soldier_base_F { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 2; + }; + + class HitBody: HitBody { + armor = 2; + }; + + class HitHands: HitHands { + armor = 2; + }; + + class HitLegs: HitLegs { + armor = 2; + }; + };*/ +}; + +class O_Soldier_VR_F: O_Soldier_base_F { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + passThrough = 1; + explosionShielding = 0.5; + }; + + class HitBody: HitBody { + armor = 2; + passThrough = 1; + explosionShielding = 10; + }; + + class HitHands: HitHands { + armor = 2; + passThrough = 1; + explosionShielding = 1; + }; + + class HitLegs: HitLegs { + armor = 2; + passThrough = 1; + explosionShielding = 1; + }; + };*/ +}; + +class O_Protagonist_VR_F: O_Soldier_base_F { + /*class HitPoints: HitPoints { + class HitHead: HitHead { + armor = 1; + passThrough = 1; + explosionShielding = 0.5; + }; + + class HitBody: HitBody { + armor = 2; + passThrough = 1; + explosionShielding = 10; + }; + + class HitHands: HitHands { + armor = 2; + passThrough = 1; + explosionShielding = 1; + }; + + class HitLegs: HitLegs { + armor = 2; + passThrough = 1; + explosionShielding = 1; + }; + };*/ +}; diff --git a/TO_MERGE/agm/Ballistics/FixVests.hpp b/TO_MERGE/agm/Ballistics/FixVests.hpp new file mode 100644 index 0000000000..5bfcfd4669 --- /dev/null +++ b/TO_MERGE/agm/Ballistics/FixVests.hpp @@ -0,0 +1,294 @@ + +class VestItem; +class Vest_Camo_Base: ItemCore { + class ItemInfo: VestItem { + /*containerClass = "Supply0"; + mass = 0; + armor = 0; + passThrough = 1;*/ + }; +}; +class Vest_NoCamo_Base: ItemCore { + class ItemInfo: VestItem { + /*containerClass = "Supply0"; + mass = 0; + armor = 0; + passThrough = 1;*/ + }; +}; + +// belts +class V_Rangemaster_belt: Vest_NoCamo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply40"; + mass = 10; + armor = 0; + passThrough = 1;*/ + }; +}; + +// bandolliers +class V_BandollierB_khk: Vest_Camo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply80"; + mass = 15; + armor = 0;*/ + passThrough = 0.85; //1; + }; +}; +/*class V_BandollierB_cbr: V_BandollierB_khk { + class ItemInfo: ItemInfo {}; +}; +class V_BandollierB_rgr: V_BandollierB_khk { + class ItemInfo: ItemInfo {}; +}; +class V_BandollierB_blk: V_BandollierB_khk { + class ItemInfo: ItemInfo {}; +}; +class V_BandollierB_oli: V_BandollierB_khk { + class ItemInfo: ItemInfo {}; +};*/ + +// plate carriers +class V_PlateCarrier1_rgr: Vest_NoCamo_Base { // lite + class ItemInfo: ItemInfo { + /*containerClass = "Supply140"; + mass = 80;*/ + armor = 8; //20; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrier2_rgr: V_PlateCarrier1_rgr { // heavy + class ItemInfo: ItemInfo { + /*containerClass = "Supply140"; + mass = 100;*/ + armor = 12; //30; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrier3_rgr: Vest_NoCamo_Base { // heavy (us) + class ItemInfo: ItemInfo { + /*containerClass = "Supply140"; + mass = 100;*/ + armor = 12; //30; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrierGL_rgr: Vest_NoCamo_Base { // lite (gl) + class ItemInfo: ItemInfo { + containerClass = "Supply160"; //"Supply140"; + /*mass = 100;*/ + armor = 8; //100; + passThrough = 0.75; //0.7; + }; +}; +class V_PlateCarrier1_blk: Vest_Camo_Base { // heavy (black) + class ItemInfo: ItemInfo { + /*containerClass = "Supply140";*/ + mass = 100; //80; + armor = 12; //20; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrierSpec_rgr: Vest_NoCamo_Base { // lite (special) + class ItemInfo: ItemInfo { + /*containerClass = "Supply100"; + mass = 120;*/ + armor = 16; //40; + passThrough = 0.75; //0.1; + }; +}; + +// chestrigs +/*class V_Chestrig_khk: Vest_Camo_Base { + class ItemInfo: ItemInfo { + containerClass = "Supply140"; + mass = 20; + armor = 0; + passThrough = 1; + }; +}; +class V_Chestrig_rgr: V_Chestrig_khk {}; +class V_Chestrig_blk: V_Chestrig_khk {}; +class V_Chestrig_oli: Vest_Camo_Base { + class ItemInfo: ItemInfo { + containerClass = "Supply140"; + mass = 20; + armor = 0; + passThrough = 1; + }; +};*/ + +// tactical vests +class V_TacVest_khk: Vest_Camo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply100"; + mass = 40;*/ + armor = 8; //20; + /*passThrough = 1;*/ + }; +}; +class V_TacVest_brn: V_TacVest_khk {}; +class V_TacVest_oli: V_TacVest_khk {}; +class V_TacVest_blk: V_TacVest_khk {}; +class V_TacVest_camo: Vest_Camo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply100"; + mass = 40;*/ + armor = 8; //20; + /*passThrough = 1;*/ + }; +}; +class V_TacVest_blk_POLICE: Vest_Camo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply100";*/ + mass = 40; //60; + armor = 8; //100; + passThrough = 1; //0.7; + }; +}; +class V_TacVestIR_blk: Vest_NoCamo_Base { // raven vest + class ItemInfo: VestItem { + /*containerClass = "Supply100"; + mass = 50;*/ + armor = 8; //20; + passThrough = 0.85; //0.5; + }; +}; +class V_TacVestCamo_khk: Vest_Camo_Base { + class ItemInfo: VestItem { + /*containerClass = "Supply100"; + mass = 40;*/ + armor = 8; //20; + /*passThrough = 1;*/ + }; +}; + +// harnesses +class V_HarnessO_brn: Vest_NoCamo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply160"; + mass = 30; + armor = 0;*/ + passThrough = 0.85; //0.5; + }; +}; +class V_HarnessOGL_brn: Vest_NoCamo_Base { // gl + class ItemInfo: ItemInfo { + /*containerClass = "Supply120"; + mass = 20; + armor = 0;*/ + passThrough = 0.85; //0.5; + }; +}; +class V_HarnessO_gry: V_HarnessO_brn { + class ItemInfo: ItemInfo { + /*containerClass = "Supply160"; + mass = 30; + armor = 0;*/ + passThrough = 0.85; //0.5; + }; +}; +class V_HarnessOGL_gry: V_HarnessO_gry { // gl + class ItemInfo: ItemInfo { + /*containerClass = "Supply120"; + mass = 20; + armor = 0;*/ + passThrough = 0.85; //0.5; + }; +}; +class V_HarnessOSpec_brn: V_HarnessO_brn { + class ItemInfo: VestItem { + /*containerClass = "Supply160"; + mass = 30; + armor = 0;*/ + passThrough = 0.85; //0.5; + }; +}; +class V_HarnessOSpec_gry: V_HarnessO_gry { + class ItemInfo: ItemInfo { + /*containerClass = "Supply160"; + mass = 30; + armor = 0;*/ + passThrough = 0.85; //0.5; + }; +}; + +// indep plate carriers +class V_PlateCarrierIA1_dgtl: Vest_NoCamo_Base { // lite + class ItemInfo: VestItem { + /*containerClass = "Supply120"; + mass = 60;*/ + armor = 8; //20; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrierIA2_dgtl: V_PlateCarrierIA1_dgtl { // heavy + class ItemInfo: VestItem { + /*containerClass = "Supply120"; + mass = 80;*/ + armor = 12; //30; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrierIAGL_dgtl: V_PlateCarrierIA2_dgtl { // heavy (gl) + class ItemInfo: VestItem { + containerClass = "Supply140"; //"Supply120"; + mass = 100; //80; + armor = 12; //100; + passThrough = 0.75; //0.7; + }; +}; + +// rebreather +/*class V_RebreatherB: Vest_Camo_Base { + class ItemInfo: ItemInfo { + containerClass = "Supply0"; + mass = 80; + armor = 20; + passThrough = 1; + }; +}; +class V_RebreatherIR: V_RebreatherB {}; +class V_RebreatherIA: V_RebreatherB {};*/ + +// more plate carriers +class V_PlateCarrier_Kerry: V_PlateCarrier1_rgr { // lighter + class ItemInfo: ItemInfo { + /*containerClass = "Supply140"; + mass = 80;*/ + armor = 8; //30; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrierL_CTRG: V_PlateCarrier1_rgr { // lite + class ItemInfo: ItemInfo { + /*containerClass = "Supply140"; + mass = 80;*/ + armor = 8; //20; + passThrough = 0.75; //0.5; + }; +}; +class V_PlateCarrierH_CTRG: V_PlateCarrier2_rgr { // heavy + class ItemInfo: ItemInfo { + /*containerClass = "Supply140"; + mass = 100;*/ + armor = 12; //30; + passThrough = 0.75; //0.5; + }; +}; + +// another tactical vest +class V_I_G_resistanceLeader_F: V_TacVest_camo { + class ItemInfo: ItemInfo {}; +}; + +// press vest +class V_Press_F: Vest_Camo_Base { + class ItemInfo: ItemInfo { + /*containerClass = "Supply40"; + mass = 20;*/ + armor = 8; //0; ? + /*passThrough = 1;*/ + }; +}; diff --git a/TO_MERGE/agm/Ballistics/config.cpp b/TO_MERGE/agm/Ballistics/config.cpp new file mode 100644 index 0000000000..d8bc4bad83 --- /dev/null +++ b/TO_MERGE/agm/Ballistics/config.cpp @@ -0,0 +1,1336 @@ +// NEW CLASSES +/* + +// CFGWeapons + +AGM_muzzle_mzls_H +AGM_muzzle_mzls_B +AGM_muzzle_mzls_L +AGM_muzzle_mzls_smg_01 +AGM_muzzle_mzls_smg_02 + + +// CFGAmmo + +AGM_B_65x39_Caseless_Tracer_Dim +AGM_B_65x39_Caseless_SD +AGM_B_65x39_Caseless_AP + +AGM_B_65x39_Case_Tracer_Dim +AGM_B_65x39_Case_SD +AGM_B_65x39_Case_AP + +AGM_B_556x45_Ball_Tracer_Dim +AGM_B_556x45_Ball_SD +AGM_B_556x45_Ball_AP + +AGM_B_762x51_Tracer_Dim +AGM_B_762x51_Ball_SD +AGM_B_762x51_Ball_AP +AGM_B_762x51_M118LR + + +// CFGMagazines + +AGM_30Rnd_65x39_caseless_mag_Tracer_Dim +AGM_30Rnd_65x39_caseless_mag_SD +AGM_30Rnd_65x39_caseless_mag_AP + +AGM_30Rnd_65x39_caseless_green_mag_Tracer_Dim +AGM_30Rnd_65x39_caseless_green_mag_SD +AGM_30Rnd_65x39_caseless_green_mag_AP + +AGM_30Rnd_556x45_Stanag_Tracer_Dim +AGM_30Rnd_556x45_Stanag_SD +AGM_30Rnd_556x45_Stanag_AP + +AGM_20Rnd_762x51_Mag_Tracer +AGM_20Rnd_762x51_Mag_Tracer_Dim +AGM_20Rnd_762x51_Mag_SD +AGM_20Rnd_762x51_Mag_AP +*/ + +class CfgPatches { + class AGM_Ballistics { + units[] = {"AGM_TargetWall"}; + weapons[] = {"AGM_muzzle_mzls_H", "AGM_muzzle_mzls_B", "AGM_muzzle_mzls_L", "AGM_muzzle_mzls_smg_01", "AGM_muzzle_mzls_smg_02"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"TaoSensai", "commy2"}; + authorUrl = "https://github.com/Taosenai/tmr"; + }; +}; + +// EVERYTHING BELOW BELONGS TO TAOSENSAI + +class CfgAmmo { + class BulletBase; + + + /* 6.5x39mm Grendel */ + + class B_65x39_Caseless : BulletBase { + typicalSpeed = 724; + airFriction = -0.000915; + }; + + // IR Dim + class B_65x39_Caseless_yellow; + class AGM_B_65x39_Caseless_Tracer_Dim : B_65x39_Caseless_yellow { + nvgOnly = 1; + }; + class B_65x39_Case_yellow; + class AGM_B_65x39_Case_Tracer_Dim : B_65x39_Case_yellow { + nvgOnly = 1; + }; + + // sub sonic + class AGM_B_65x39_Caseless_SD : B_65x39_Caseless { + airFriction = -0.00054; + hit = 8.75; + supersonicCrackFar[] = {}; + supersonicCrackNear[] = {}; + typicalSpeed = 320; + audibleFire = 0.8; + visibleFire = 2.5; + }; + class B_65x39_Case; + class AGM_B_65x39_Case_SD : B_65x39_Case { + airFriction = -0.00054; + hit = 8.75; + supersonicCrackFar[] = {}; + supersonicCrackNear[] = {}; + typicalSpeed = 320; + audibleFire = 0.8; + visibleFire = 2.5; + }; + + // armor piercing + class AGM_B_65x39_Caseless_AP : B_65x39_Caseless { + caliber = 1.8; + hit = 10.5; + }; + class AGM_B_65x39_Case_AP : B_65x39_Case { + caliber = 1.8; + hit = 10.5; + }; + + + /* 5.56x45mm NATO */ + + class B_556x45_Ball : BulletBase { + typicalSpeed = 911; + airFriction = -0.001335; + }; + + // IR Dim + class B_556x45_Ball_Tracer_Red; + class AGM_B_556x45_Ball_Tracer_Dim : B_556x45_Ball_Tracer_Red { + nvgOnly = 1; + }; + + // sub sonic + class AGM_B_556x45_Ball_SD : B_556x45_Ball { + airFriction = -0.0006; + hit = 7; + supersonicCrackFar[] = {}; + supersonicCrackNear[] = {}; + typicalSpeed = 320; + audibleFire = 0.6; + visibleFire = 2.0; + }; + + // armor piercing + class AGM_B_556x45_Ball_AP : B_556x45_Ball { + caliber = 1.4; + hit = 8.4; + }; + + + /* 7.62x51mm NATO */ + + class B_762x51_Ball: BulletBase { + typicalSpeed = 853; + //airfriction = + }; + + // IR Dim + class B_762x51_Tracer_Red; + class AGM_B_762x51_Tracer_Dim : B_762x51_Tracer_Red { + nvgOnly = 1; + }; + + // sub sonic + class AGM_B_762x51_Ball_SD : B_762x51_Ball { + airFriction = -0.00048; + hit = 10.5; + supersonicCrackFar[] = {}; + supersonicCrackNear[] = {}; + typicalSpeed = 320; + audibleFire = 0.9; + visibleFire = 3.0; + }; + + // armor piercing + class AGM_B_762x51_Ball_AP : B_762x51_Ball { + caliber = 2.4; + hit = 12.6; + }; + + // M118 LR + class AGM_B_762x51_M118LR : B_762x51_Ball { + typicalspeed = 792; + airfriction = -0.0008577; + }; + + + /* Other */ + + class B_9x21_Ball; + class B_9x19_Ball : B_9x21_Ball { + typicalSpeed = 381; + airfriction = -0.00213; + }; + + class B_45ACP_Ball: BulletBase { + typicalSpeed = 250; + airfriction = -0.0009; + }; +}; + +class CfgMagazines { + class CA_Magazine; + + + /* 6.5x39mm Grendel - MX */ + + class 30Rnd_65x39_caseless_mag : CA_Magazine { + initSpeed = 724; + }; + class 30Rnd_65x39_caseless_mag_Tracer; + class 100Rnd_65x39_caseless_mag : CA_Magazine { + initSpeed = 724; + }; + + class AGM_30Rnd_65x39_caseless_mag_Tracer_Dim : 30Rnd_65x39_caseless_mag_Tracer { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_65x39_Caseless_Tracer_Dim"; + displayName = "$STR_AGM_30Rnd_65x39_caseless_mag_Tracer_DimName"; + displayNameShort = "$STR_AGM_30Rnd_65x39_caseless_mag_Tracer_DimNameShort"; + descriptionShort = "$STR_AGM_30Rnd_65x39_caseless_mag_Tracer_DimDescription"; + picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_yellow_CA.paa"; + }; + class AGM_30Rnd_65x39_caseless_mag_SD : 30Rnd_65x39_caseless_mag { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_65x39_Caseless_SD"; + displayName = "$STR_AGM_30Rnd_65x39_caseless_mag_SDName"; + displayNameShort = "$STR_AGM_30Rnd_65x39_caseless_mag_SDNameShort"; + descriptionShort = "$STR_AGM_30Rnd_65x39_caseless_mag_SDDescription"; + picture = "\A3\weapons_f\data\ui\m_30stanag_caseless_green_CA.paa"; + initSpeed = 320; + }; + class AGM_30Rnd_65x39_caseless_mag_AP : 30Rnd_65x39_caseless_mag { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_65x39_Caseless_AP"; + displayName = "$STR_AGM_30Rnd_65x39_caseless_mag_APName"; + displayNameShort = "$STR_AGM_30Rnd_65x39_caseless_mag_APNameShort"; + descriptionShort = "$STR_AGM_30Rnd_65x39_caseless_mag_APDescription"; + }; + + + /* 6.5x39mm Grendel - Katiba */ + + class 30Rnd_65x39_caseless_green : 30Rnd_65x39_caseless_mag { + initSpeed = 724; + }; + class 30Rnd_65x39_caseless_green_mag_Tracer; + class 200Rnd_65x39_cased_Box : 100Rnd_65x39_caseless_mag { + initSpeed = 691; + }; + + class AGM_30Rnd_65x39_caseless_green_mag_Tracer_Dim : 30Rnd_65x39_caseless_green_mag_Tracer { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_65x39_Caseless_Tracer_Dim"; + displayName = "$STR_AGM_30Rnd_65x39_caseless_green_mag_Tracer_DimName"; + displayNameShort = "$STR_AGM_30Rnd_65x39_caseless_green_mag_Tracer_DimNameShort"; + descriptionShort = "$STR_AGM_30Rnd_65x39_caseless_green_mag_Tracer_DimDescription"; + }; + class AGM_30Rnd_65x39_caseless_green_mag_SD : 30Rnd_65x39_caseless_green { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_65x39_Caseless_SD"; + displayName = "$STR_AGM_30Rnd_65x39_caseless_green_mag_SDName"; + displayNameShort = "$STR_AGM_30Rnd_65x39_caseless_green_mag_SDNameShort"; + descriptionShort = "$STR_AGM_30Rnd_65x39_caseless_green_mag_SDDescription"; + initSpeed = 320; + }; + class AGM_30Rnd_65x39_caseless_green_mag_AP : 30Rnd_65x39_caseless_green { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_65x39_Caseless_AP"; + displayName = "$STR_AGM_30Rnd_65x39_caseless_green_mag_APName"; + displayNameShort = "$STR_AGM_30Rnd_65x39_caseless_green_mag_APNameShort"; + descriptionShort = "$STR_AGM_30Rnd_65x39_caseless_green_mag_APDescription"; + }; + + + /* 5.56x45mm NATO */ + + class 30Rnd_556x45_Stanag : CA_Magazine { + initSpeed = 911; + }; + class 30Rnd_556x45_Stanag_Tracer_Red; //picture = "\A3\weapons_f\data\ui\m_30stanag_red_ca.paa"; + + class AGM_30Rnd_556x45_Stanag_Tracer_Dim : 30Rnd_556x45_Stanag_Tracer_Red { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_556x45_Ball_Tracer_Dim"; + displayName = "$STR_AGM_30Rnd_556x45_mag_Tracer_DimName"; + displayNameShort = "$STR_AGM_30Rnd_556x45_mag_Tracer_DimNameShort"; + descriptionShort = "$STR_AGM_30Rnd_556x45_mag_Tracer_DimDescription"; + picture = "\A3\weapons_f\data\ui\m_30stanag_yellow_ca.paa"; + }; + class AGM_30Rnd_556x45_Stanag_SD : 30Rnd_556x45_Stanag { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_556x45_Ball_SD"; + displayName = "$STR_AGM_30Rnd_556x45_mag_SDName"; + displayNameShort = "$STR_AGM_30Rnd_556x45_mag_SDNameShort"; + descriptionShort = "$STR_AGM_30Rnd_556x45_mag_SDDescription"; + initSpeed = 320; + picture = "\A3\weapons_f\data\ui\m_30stanag_green_ca.paa"; + }; + class AGM_30Rnd_556x45_Stanag_AP : 30Rnd_556x45_Stanag { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_556x45_Ball_AP"; + displayName = "$STR_AGM_30Rnd_556x45_mag_APName"; + displayNameShort = "$STR_AGM_30Rnd_556x45_mag_APNameShort"; + descriptionShort = "$STR_AGM_30Rnd_556x45_mag_APDescription"; + }; + + + /* 7.62x51mm NATO */ + + class 20Rnd_762x51_Mag: CA_Magazine { + descriptionshort = "$STR_AGM_Ballistics_20Rnd_762x51_Mag_Description"; + initSpeed = 792; // 18" M14 EBR barrel + ammo = "AGM_B_762x51_M118LR"; // Use M118LR + }; + class 150Rnd_762x51_Box : CA_Magazine { + ammo = "B_762x51_Ball"; + initSpeed = 853; // Typical MV for M240 + }; + + class AGM_20Rnd_762x51_Mag_Tracer : 20Rnd_762x51_Mag { //@todo Green tracers for opfor and yellow tracers for independent + author = "$STR_AGM_Core_AGMTeam"; + ammo = "B_762x51_Tracer_Red"; + displayName = "$STR_AGM_20Rnd_762x51_mag_TracerName"; + displayNameShort = "$STR_AGM_20Rnd_762x51_mag_TracerNameShort"; + descriptionShort = "$STR_AGM_20Rnd_762x51_mag_TracerDescription"; + tracersEvery = 1; + }; + class AGM_20Rnd_762x51_Mag_Tracer_Dim : AGM_20Rnd_762x51_Mag_Tracer { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_762x51_Tracer_Dim"; + displayName = "$STR_AGM_20Rnd_762x51_mag_Tracer_DimName"; + displayNameShort = "$STR_AGM_20Rnd_762x51_mag_Tracer_DimNameShort"; + descriptionShort = "$STR_AGM_20Rnd_762x51_mag_Tracer_DimDescription"; + }; + class AGM_20Rnd_762x51_Mag_SD : 20Rnd_762x51_Mag { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_762x51_Ball_SD"; + displayName = "$STR_AGM_20Rnd_762x51_mag_SDName"; + displayNameShort = "$STR_AGM_20Rnd_762x51_mag_SDNameShort"; + descriptionShort = "$STR_AGM_20Rnd_762x51_mag_SDDescription"; + initSpeed = 320; + }; + class AGM_20Rnd_762x51_Mag_AP : 20Rnd_762x51_Mag { + author = "$STR_AGM_Core_AGMTeam"; + ammo = "AGM_B_762x51_Ball_AP"; + displayName = "$STR_AGM_20Rnd_762x51_mag_APName"; + displayNameShort = "$STR_AGM_20Rnd_762x51_mag_APNameShort"; + descriptionShort = "$STR_AGM_20Rnd_762x51_mag_APDescription"; + }; + + + /* Other */ + + class 30Rnd_9x21_Mag : CA_Magazine { + ammo = "B_9x19_Ball"; + initSpeed = 370; + }; + class 16Rnd_9x21_Mag : 30Rnd_9x21_Mag { + ammo = "B_9x19_Ball"; + initSpeed = 381; + }; + class 30Rnd_45ACP_Mag_SMG_01 : 30Rnd_9x21_Mag { + initSpeed = 259; + }; + class 9Rnd_45ACP_Mag : 30Rnd_45ACP_Mag_SMG_01 { + initSpeed = 250; + }; +}; + +class Mode_SemiAuto; +class Mode_FullAuto; +class SlotInfo; +//class MuzzleSlot; + +class CfgWeapons { + class Pistol; + class Pistol_Base_F: Pistol { + class WeaponSlotsInfo; + }; + class Rifle; + class Rifle_Base_F: Rifle { + class WeaponSlotsInfo; + }; + class Rifle_Long_Base_F: Rifle_Base_F { + class WeaponSlotsInfo; + }; + + + /* MX */ + + class arifle_MX_Base_F : Rifle_Base_F { + magazines[] += { + "AGM_30Rnd_65x39_caseless_mag_Tracer_Dim", + "AGM_30Rnd_65x39_caseless_mag_SD", + "AGM_30Rnd_65x39_caseless_mag_AP", + "100Rnd_65x39_caseless_mag", + "100Rnd_65x39_caseless_mag_Tracer" + }; + class Single : Mode_SemiAuto { + dispersion = 0.000800; // radians. Equal to 2.75 MOA. + // Based on widely cited 2 MOA figure for new 5.56 ACR. + }; + class FullAuto : Mode_FullAuto { + dispersion = 0.00147; // radians. Equal to 5.1 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_H"}; + }; + }; + }; + class arifle_MX_SW_F : arifle_MX_Base_F { + magazines[] += { + "30Rnd_65x39_caseless_mag", + "30Rnd_65x39_caseless_mag_Tracer" + }; + class Single : Mode_SemiAuto { + dispersion = 0.000800; // radians. Equal to 2.75 MOA. + // Based on widely cited 2 MOA figure for new 5.56 ACR. + }; + class manual : FullAuto { + dispersion = 0.00147; // radians. Equal to 5.1 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: MuzzleSlot { + // Shit is broken again + //compatibleItems[] += {"AGM_muzzle_mzls_H"}; + compatibleItems[] = {"muzzle_snds_H","muzzle_snds_H_SW","AGM_muzzle_mzls_H"}; + }; + }; + }; + class arifle_MXM_F : arifle_MX_Base_F { + magazines[] += { + "30Rnd_65x39_caseless_mag", + "30Rnd_65x39_caseless_mag_Tracer" + }; + class Single : Single { + dispersion = 0.00029; // radians. Equal to 1 MOA. + // 6.5mm is easily capable of this in a half-tuned rifle. + }; + class FullAuto : FullAuto { + dispersion = 0.000800; // radians. Equal to 2.75 MOA. + }; + }; + + + /* Katiba */ + + class arifle_katiba_Base_F : Rifle_Base_F { + magazines[] += { + "AGM_30Rnd_65x39_caseless_green_mag_Tracer_Dim", + "AGM_30Rnd_65x39_caseless_green_mag_SD", + "AGM_30Rnd_65x39_caseless_green_mag_AP" + }; + class Single : Mode_SemiAuto { + dispersion = 0.000800; // radians. Equal to 2.75 MOA. + // Based on widely cited 2 MOA figure for new 5.56 ACR? + // Use your imagination for fictional weapons! + }; + class FullAuto : Mode_FullAuto { + dispersion = 0.00147; // radians. Equal to 5.1 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_H"}; + }; + }; + }; + + + /* Other */ + + class EBR_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_B"}; + }; + }; + }; + class DMR_01_base_F: Rifle_Long_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_B"}; + }; + }; + }; + + class LMG_Mk200_F : Rifle_Long_Base_F { + class manual : Mode_FullAuto { + dispersion = 0.00175; // radians. Equal to 6 MOA. + }; + class Single : manual { + dispersion = 0.00175; // radians. Equal to 6 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_H"}; + }; + }; + }; + + class LMG_Zafir_F : Rifle_Long_Base_F { + class FullAuto : Mode_FullAuto { + dispersion = 0.00175; // radians. Equal to 6 MOA. + }; + class Single : Mode_SemiAuto { + dispersion = 0.00175; // radians. Equal to 6 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_B"}; + }; + }; + }; + + + /* Assault Rifles */ + + class Tavor_base_F : Rifle_Base_F { + magazines[] += { + "AGM_30Rnd_556x45_Stanag_Tracer_Dim", + "AGM_30Rnd_556x45_Stanag_SD", + "AGM_30Rnd_556x45_Stanag_AP" + }; + class Single : Mode_SemiAuto { + dispersion = 0.000727; // radians. Equal to 2.5 MOA, about the limit of mass-produced M855. + // + }; + class FullAuto : Mode_FullAuto { + dispersion = 0.00147; // radians. Equal to 5.1 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_L"}; + }; + }; + }; + + class mk20_base_F : Rifle_Base_F { + magazines[] += { + "AGM_30Rnd_556x45_Stanag_Tracer_Dim", + "AGM_30Rnd_556x45_Stanag_SD", + "AGM_30Rnd_556x45_Stanag_AP" + }; + class Single : Mode_SemiAuto { + dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus + // some extra for these worn out Greek Army service rifles. + }; + class FullAuto : Mode_FullAuto { + dispersion = 0.00147; // radians. Equal to 5.1 MOA. + }; + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_L"}; + }; + }; + }; + + + /* SMGs */ + + class SDAR_base_F : Rifle_Base_F { + magazines[] += { + "AGM_30Rnd_556x45_Stanag_Tracer_Dim", + "AGM_30Rnd_556x45_Stanag_SD", + "AGM_30Rnd_556x45_Stanag_AP" + }; + class Single : Mode_SemiAuto { + dispersion = 0.0008727; // radians. Equal to 3 MOA, about the limit of mass-produced M855 plus + // some extra because Kel-Tec. + }; + class FullAuto : Mode_FullAuto { + dispersion = 0.00147; // radians. Equal to 5.1 MOA. + }; + }; + + class pdw2000_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_smg_02"}; + }; + }; + }; + class SMG_01_Base: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_smg_01"}; + }; + }; + }; + class SMG_02_base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_smg_02"}; + }; + }; + }; + + + /* Pistols */ + + class hgun_P07_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; + compatibleItems[] += {"AGM_muzzle_mzls_smg_02"}; + }; + }; + }; + + class hgun_Rook40_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; + compatibleItems[] += {"AGM_muzzle_mzls_smg_02"}; + }; + }; + }; + + class hgun_ACPC2_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_smg_01"}; + }; + }; + }; + + class hgun_Pistol_heavy_01_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo { + compatibleItems[] += {"AGM_muzzle_mzls_smg_01"}; + }; + }; + }; + + /*class hgun_Pistol_heavy_02_F: Pistol_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot { + linkProxy = "\A3\data_f\proxies\weapon_slots\MUZZLE"; + compatibleItems[] += {"AGM_muzzle_mzls_smg_01"}; + }; + }; + };*/ + + + /* Silencers */ + + class ItemCore; + class InventoryMuzzleItem_Base_F; + + class muzzle_snds_H: ItemCore { + class ItemInfo: InventoryMuzzleItem_Base_F { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + class muzzle_snds_L: muzzle_snds_H { + class ItemInfo: ItemInfo { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + class muzzle_snds_M: muzzle_snds_H { + class ItemInfo: ItemInfo { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + class muzzle_snds_B: muzzle_snds_H { + class ItemInfo: ItemInfo { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + class muzzle_snds_H_MG: muzzle_snds_H { + class ItemInfo: ItemInfo { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + class muzzle_snds_H_SW: muzzle_snds_H_MG { + class ItemInfo: ItemInfo { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + class muzzle_snds_acp: muzzle_snds_H { + class ItemInfo: ItemInfo { + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 0.9; + visibleFire = 0.5; + audibleFire = 0.1; + visibleFireTime = 0.5; + audibleFireTime = 0.5; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.8f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + }; + + // Flash suppressors + class AGM_muzzle_mzls_H: ItemCore { + author = "$STR_AGM_Core_AGMTeam"; + _generalMacro = "AGM_muzzle_mzls_H"; + htMin = 1; + htMax = 600; + afMax = 0; + mfMax = 0; + mFact = 1; + tBody = 100; + scope = 2; + displayName = "$STR_AGM_muzzle_mzls_H"; + picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_h_ca.paa"; + model = "\A3\weapons_f\acc\acca_mzls_H_F"; + + class ItemInfo: InventoryMuzzleItem_Base_F { + mass = 8; + soundTypeIndex = 0; + muzzleEnd = "zaslehPoint"; + alternativeFire = "Zasleh2"; + + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 1.0; + visibleFire = 0.5; + audibleFire = 1.0; + visibleFireTime = 0.5; + audibleFireTime = 1.0; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.9f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + inertia = 0.2; + }; + + class AGM_muzzle_mzls_B: AGM_muzzle_mzls_H { + author = "$STR_AGM_Core_AGMTeam"; + _generalMacro = "AGM_muzzle_mzls_B"; + displayName = "$STR_AGM_muzzle_mzls_B"; + picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_h_ca.paa"; + model = "\A3\weapons_f\acc\acca_mzls_H_F"; + + class ItemInfo: ItemInfo { + mass = 6; + soundTypeIndex = 0; + muzzleEnd = "zaslehPoint"; + alternativeFire = "Zasleh2"; + + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 1.0; + visibleFire = 0.5; + audibleFire = 1.0; + visibleFireTime = 0.5; + audibleFireTime = 1.0; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.9f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + inertia = 0.2; + }; + + class AGM_muzzle_mzls_L: AGM_muzzle_mzls_H { + author = "$STR_AGM_Core_AGMTeam"; + _generalMacro = "AGM_muzzle_mzls_L"; + displayName = "$STR_AGM_muzzle_mzls_L"; + picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_l_ca.paa"; + model = "\A3\weapons_f\acc\acca_mzls_l_F"; + + class ItemInfo: ItemInfo { + mass = 6; + soundTypeIndex = 0; + muzzleEnd = "zaslehPoint"; + alternativeFire = "Zasleh2"; + + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 1.0; + visibleFire = 0.5; + audibleFire = 1.0; + visibleFireTime = 0.5; + audibleFireTime = 1.0; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.9f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + inertia = 0.1; + }; + + class AGM_muzzle_mzls_smg_01: AGM_muzzle_mzls_H { + author = "$STR_AGM_Core_AGMTeam"; + _generalMacro = "AGM_muzzle_mzls_smg_01"; + displayName = "$STR_AGM_muzzle_mzls_smg_01"; + picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_l_ca.paa"; + model = "\A3\weapons_f\acc\acca_mzls_H_F"; //"\A3\weapons_f\acc\acca_mzls_smg_01_F"; + + class ItemInfo: ItemInfo { + mass = 6; + soundTypeIndex = 0; + muzzleEnd = "zaslehPoint"; + alternativeFire = "Zasleh2"; + + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 1.0; + visibleFire = 0.5; + audibleFire = 1.0; + visibleFireTime = 0.5; + audibleFireTime = 1.0; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.9f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + inertia = 0.1; + }; + + class AGM_muzzle_mzls_smg_02: AGM_muzzle_mzls_H { + author = "$STR_AGM_Core_AGMTeam"; + _generalMacro = "AGM_muzzle_mzls_smg_02"; + displayName = "$STR_AGM_muzzle_mzls_smg_02"; + picture = "\A3\weapons_F\Data\UI\gear_acca_mzls_l_ca.paa"; + model = "\A3\weapons_f\acc\acca_mzls_H_F"; //"\A3\weapons_f\acc\acca_mzls_smg_01_F"; + + class ItemInfo: ItemInfo { + mass = 6; + soundTypeIndex = 0; + muzzleEnd = "zaslehPoint"; + alternativeFire = "Zasleh2"; + + class MagazineCoef { + initSpeed = 1.0; + }; + + class AmmoCoef { + hit = 1.0; + visibleFire = 0.5; + audibleFire = 1.0; + visibleFireTime = 0.5; + audibleFireTime = 1.0; + cost = 1.0; + typicalSpeed = 1.0; + airFriction = 1.0; + }; + + class MuzzleCoef { + dispersionCoef = "0.9f"; + artilleryDispersionCoef = "1.0f"; + fireLightCoef = "0.5f"; + recoilCoef = "1.0f"; + recoilProneCoef = "1.0f"; + minRangeCoef = "1.0f"; + minRangeProbabCoef = "1.0f"; + midRangeCoef = "1.0f"; + midRangeProbabCoef = "1.0f"; + maxRangeCoef = "1.0f"; + maxRangeProbabCoef = "1.0f"; + }; + }; + inertia = 0.1; + }; + + /* Vests */ + + #include +}; + +#define MACRO_ADDMAGAZINE(MAGAZINE,COUNT) class _xx_##MAGAZINE { \ + magazine = #MAGAZINE; \ + count = COUNT; \ +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + #include + #include + + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class FIA_Box_Base_F; + class ReammoBox_F; + + class Box_NATO_Wps_F: NATO_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_AP,2) + }; + }; + + class Box_NATO_WpsSpecial_F: NATO_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_Tracer_Dim,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_Tracer_Dim,1) + }; + }; + + class Box_NATO_Ammo_F: NATO_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_SD,2) + }; + }; + + class Box_NATO_Support_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_muzzle_mzls_H,5) + MACRO_ADDITEM(AGM_muzzle_mzls_B,5) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_01,5) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_02,5) + }; + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_SD,6) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,3) + }; + }; + + class B_supplyCrate_F: ReammoBox_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_SD,2) + }; + }; + + class Box_East_Wps_F: EAST_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_AP,2) + }; + }; + + class Box_East_WpsSpecial_F: EAST_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_Tracer_Dim,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_Tracer_Dim,1) + }; + }; + + class Box_East_Ammo_F: EAST_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_SD,2) + }; + }; + + class Box_East_Support_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_muzzle_mzls_H,5) + MACRO_ADDITEM(AGM_muzzle_mzls_B,5) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_01,5) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_02,5) + }; + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_SD,6) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,3) + }; + }; + + class O_supplyCrate_F: B_supplyCrate_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_SD,2) + }; + }; + + class Box_IND_Wps_F: IND_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + }; + }; + + class Box_IND_WpsSpecial_F: IND_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_Tracer_Dim,2) + }; + }; + + class Box_IND_Ammo_F: IND_Box_Base { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,2) + }; + }; + + class Box_IND_Support_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_muzzle_mzls_H,1) + MACRO_ADDITEM(AGM_muzzle_mzls_B,5) + MACRO_ADDITEM(AGM_muzzle_mzls_L,5) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_01,5) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_02,5) + }; + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,6) + }; + }; + + class Box_FIA_Wps_F: FIA_Box_Base_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + }; + }; + + class Box_FIA_Ammo_F: FIA_Box_Base_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,2) + }; + }; + + class Box_FIA_Support_F: FIA_Box_Base_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,6) + }; + }; + + class I_supplyCrate_F: B_supplyCrate_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,2) + }; + }; + + class IG_supplyCrate_F: ReammoBox_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,2) + }; + }; + + class C_supplyCrate_F: ReammoBox_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_SD,2) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportMagazines { + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_Tracer_Dim,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_SD,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_Tracer_Dim,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_SD,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_65x39_caseless_green_mag_AP,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_Tracer_Dim,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_SD,2) + MACRO_ADDMAGAZINE(AGM_30Rnd_556x45_Stanag_AP,2) + /*MACRO_ADDMAGAZINE(AGM_20Rnd_762x51_Mag_Tracer,2) + MACRO_ADDMAGAZINE(AGM_20Rnd_762x51_Mag_Tracer_Dim,2) + MACRO_ADDMAGAZINE(AGM_20Rnd_762x51_Mag_SD,2) + MACRO_ADDMAGAZINE(AGM_20Rnd_762x51_Mag_AP,2)*/ + }; + class TransportItems { + MACRO_ADDITEM(AGM_muzzle_mzls_H,2) + MACRO_ADDITEM(AGM_muzzle_mzls_B,2) + MACRO_ADDITEM(AGM_muzzle_mzls_L,2) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_01,2) + MACRO_ADDITEM(AGM_muzzle_mzls_smg_02,2) + }; + }; + + class Sign_F; + class AGM_TargetWall: Sign_F { + author = "$STR_AGM_Core_AGMTeam"; + class Eventhandlers { + init = "_this call compile preprocessFileLineNumbers '\AGM_Ballistics\scripts\initTargetWall.sqf'"; + //hitPart = "systemChat str _this"; + }; + }; +}; + +/* +MACRO_ADDITEM(AGM_muzzle_mzls_H,2) +MACRO_ADDITEM(AGM_muzzle_mzls_B,2) +MACRO_ADDITEM(AGM_muzzle_mzls_L,2) +MACRO_ADDITEM(AGM_muzzle_mzls_smg_01,2) +MACRO_ADDITEM(AGM_muzzle_mzls_smg_02,2) +*/ diff --git a/TO_MERGE/agm/Ballistics/scripts/initTargetWall.sqf b/TO_MERGE/agm/Ballistics/scripts/initTargetWall.sqf new file mode 100644 index 0000000000..4df45fa1db --- /dev/null +++ b/TO_MERGE/agm/Ballistics/scripts/initTargetWall.sqf @@ -0,0 +1,12 @@ +// by commy2 + +_wall = _this select 0; + +if (local _wall) then { + _paper = "UserTexture_1x2_F" createVehicle position _wall; + + _paper attachTo [_wall, [0,-0.02,0.6]]; + _paper setDir getDir _wall; + + _paper setObjectTextureGlobal [0, "\AGM_Ballistics\textures\target_ca.paa"]; +}; diff --git a/TO_MERGE/agm/Ballistics/stringtable.xml b/TO_MERGE/agm/Ballistics/stringtable.xml new file mode 100644 index 0000000000..dc315651dc --- /dev/null +++ b/TO_MERGE/agm/Ballistics/stringtable.xml @@ -0,0 +1,551 @@ + + + + + + + 6.5mm 30Rnd Tracer IR-DIM Mag + 6,5 mm Nyomjelző IR-DIM 30-as Tár + 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 30 balas trazadoras IR-DIM de 6,5mm + Ch. 6,5mm 30Cps Traçantes IR-DIM + Magazynek 6,5mm 30rd Smugacz IR-DIM + 6.5mm 30ks Svítící IR-DIM Zásobník + Carregador de 30 projéteis traçantes IR-DIM de 6,5mm + Caricatore 6.5mm 30Rnd Traccianti IR-DIM + Магазин из 30-и 6.5 мм трассирующих под ПНВ + + + 6.5mm IR-DIM + 6,5 mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6.5mm IR-DIM + 6,5mm IR-DIM + 6.5 IR-DIM + 6.5 мм трассирущие под ПНВ + + + Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5 x 39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39 mm Traccianti IR-DIM <br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL + + + 6.5mm 30Rnd SD Mag + 6,5 mm Hangtompítós 30-as Tár + 6,5 mm 30-Schuss-Magazin SD + Cargador de 30 balas SD de 6,5mm + Ch. 6,5mm 30Cps SD + Magazynek 6,5mm 30rd SD + 6.5mm 30ks SD Zásobník + Carregador de 30 projéteis SD de 6,5mm + Caricatore 6.5mm 30Rnd Sil. + Магазин из 30-и 6.5 мм дозвуковых + + + 6.5mm SD + 6,5 mm Hangtompítós + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6.5mm SD + 6,5mm SD + 6.5mm Sil. + 6.5 мм дозвуковые + + + Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5 x 39 mm SD<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL + + + 6.5mm 30Rnd AP Mag + 6,5 mm Páncéltörő 30-as Tár + 6,5 mm 30-Schuss-Magazin AP + Cargador de 30 balas AP de 6,5mm + Ch. 6,5mm 30Cps AP + Magazynek 6,5mm 30rd AP + 6.5mm 30ks AP Zásobník + Carregador de 30 projéteis AP de 6,5mm + Caricatore 6.5mm 30Rnd AP + Магазин из 30-и 6.5 мм бронебойных + + + 6.5mm AP + 6,5 mm Páncéltörő + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6.5mm AP + 6,5mm AP + 6.5mm AP + 6.5 мм бронебойные + + + Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: MX/C/M/SW/3GL + Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: MX/C/M/SW/3GL + Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: MX/C/M/SW/3GL + Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: MX/C/M/SW/3GL + Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: MX/C/M/SW/3GL + Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: MX/C/M/SW/3GL + Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: MX/C/M/SW/3GL + Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: MX/C/M/SW/3GL + Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: MX/C/M/SW/3GL + + + + 6.5mm 30Rnd Tracer IR-DIM Mag + 6,5mm IR-DIM Nyomjelző 30-as Tár + 6,5 mm 30-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 30 balas trazadoras IR-DIM de 6,5mm + Ch. 6,5mm 30Cps Traçantes IR-DIM + Magazynek 6,5mm 30rd Smugacz IR-DIM + 6.5mm 30ks Svítící IR-DIM Zásobník + Carregador de 30 projéteis traçantes IR-DIM de 6,5mm + Caricatore 6.5mm 30Rnd Traccianti IR-DIM + Магазин из 30-и 6.5 мм трассирующих под ПНВ + + + 6.5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6,5mm IR-DIM + 6.5mm IR-DIM + 6,5mm IR-DIM + 6.5mm IR-DIM + 6.5 мм трассирущие под ПНВ + + + Caliber: 6.5x39 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: Katiba + Kaliber: 6,5x39 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: Katiba + Calibre: 6,5x39 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5x39 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: Katiba + Ráže: 6.5x39 mm Svítící IR-DIM<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39 mm Tracciant IR-DIM<br />Munizioni: 30<br />In uso su: Katiba + Калибр: 6.5x39 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: Katiba + + + 6.5mm 30Rnd SD Mag + 6,5 mm Hangtompítós 30-as Tár + 6,5 mm 30-Schuss-Magazin SD + Cargador de 30 balas SD de 6,5mm + Ch. 6,5mm 30Cps SD + Magazynek 6,5mm 30rd SD + 6.5mm 30ks SD Zásobník + Carregador de 30 projéteis SD de 6,5mm + Caricatore 6.5mm 30Rnd Sil. + Магазин из 30-и 6.5 мм дозвуковых + + + 6.5mm SD + 6,5 mm Hangtompítós + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6,5mm SD + 6.5mm SD + 6,5mm SD + 6.5mm Sil. + 6.5 мм дозвуковые + + + Caliber: 6.5x39 mm SD<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39 mm Hangtompítós<br />Lőszerek: 30<br />Használható: Katiba + Kaliber: 6,5x39 mm SD<br />Patronen: 30<br />Eingesetzt von: Katiba + Calibre: 6,5x39 mm SD<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39 mm SD<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5 x 39 mm SD<br />Naboje: 30<br />Używane w: Katiba + Ráže: 6.5x39 mm SD<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39 mm SD<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39 mm Sil.<br />Munizioni: 30<br />In uso su: Katiba + Калибр: 6.5x39 мм дозвуковые<br />Патронов: 30<br />Применимы в: Katiba + + + 6.5mm 30Rnd AP Mag + 6,5 mm Páncéltörő 30-as Tár + 6,5 mm 30-Schuss-Magazin AP + Cargador de 30 balas AP de 6,5mm + Ch. 6,5mm 30Cps AP + Magazynek 6,5mm 30rd AP + 6.5mm 30ks AP Zásobník + Carregador de 30 projéteis AP de 6,5mm + Caricatore 6.5mm 30Rnd AP + Магазин из 30-и 6.5 мм бронебойных + + + 6.5mm AP + 6,5 mm Páncéltörő + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6,5mm AP + 6.5mm AP + 6,5mm AP + 6.5mm AP + 6.5 мм бронебойные + + + Caliber: 6.5x39 mm AP<br />Rounds: 30<br />Used in: Katiba + Kaliber: 6,5x39 mm Páncéltörő<br />Lőszerek: 30<br />Használható: Katiba + Kaliber: 6,5x39 mm AP<br />Patronen: 30<br />Eingesetzt von: Katiba + Calibre: 6,5x39 mm AP<br />Balas: 30<br />Se usa en: Katiba + Calibre: 6,5x39 mm AP<br />Cartouches: 30<br />Utilisé dans: Katiba + Kaliber: 6,5 x 39 mm AP<br />Pociski: 30<br />Używane w: Katiba + Ráže: 6.5x39 mm AP<br />Munice: 30<br />Použití: Katiba + Calibre: 6,5x39 mm AP<br />Projéteis: 30<br />Usado em: Katiba + Calibro: 6.5x39 mm AP<br />Munizioni: 30<br />In uso su: Katiba + Калибр: 6.5x39 мм бронебойные<br />Патронов: 30<br />Применимы в: Katiba + + + + 5.56mm 30rnd Tracer IR-DIM Mag + 5,56 mm Nyomjelző IR-DIM 30-as Tár + 5,56 mm 30-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 30 balas trazadoras IR-DIM de 5,56mm + Ch. 5,56mm 30Cps Traçantes IR-DIM + Magazynek 5,56mm 30rd Smugacz IR-DIM + 5.56mm 30ks Svítící IR-DIM Zásobník + Carregador de 30 projéteis traçantes IR-DIM de 5,56mm + Caricatore 5.56mm 30rnd Traccianti IR-DIM + Магазин из 30-и 5.56 мм трассирующих под ПНВ + + + 5.56mm IR-DIM + 5,56 mm IR-DIM + 5,56mm IR-DIM + 5,56mm IR-DIM + 5,56mm IR-DIM + 5,56mm IR-DIM + 5.56mm IR-DIM + 5,56mm IR-DIM + 5.56mm IR-DIM + 5.56 мм трассирущие под ПНВ + + + Caliber: 5.56x45 mm Tracer IR-DIM<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Nyomjelző IR-DIM<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Leuchtspur IR-DIM<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm Trazadoras IR-DIM<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm Traçantes IR-DIM<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56 x 45 mm Smugowy IR-DIM<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45 mm Svítící IR-DIM<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm Traçante IR-DIM<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45 mm Traccianti IR-DIM<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Калибр: 5.56x45 мм трассирующие под ПНВ<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + + + 5.56mm 30Rnd SD Mag + 5,56 mm Hangtompítós 30-as Tár + 5,56 mm 30-Schuss-Magazin SD + Cargador de 30 balas SD de 5,56 mm + Ch. 5,56mm 30Cps SD + Magazynek 5,56mm 30rd SD + 5.56mm 30ks SD Zásobník + Carregador de 30 projéteis SD de 5,56mm + Caricatore 5.56mm 30Rnd Sil. + Магазин из 30-и 5.56 мм дозвуковых + + + 5.56mm SD + 5,56 mm Hangtompítós + 5,56mm SD + 5,56 mm SD + 5,56mm SD + 5,56mm SD + 5.56mm SD + 5,56mm SD + 5.56 Sil. + 5.56 мм дозвуковые + + + Caliber: 5.56x45 mm SD<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Hangtompítós<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm SD<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm SD<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5.56x45 mm SD<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56 x 45 mm SD<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45 mm SD<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm SD<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45 mm Sil.<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Калибр: 5.56x45 мм дозвуковые<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + + + 5.56mm 30Rnd AP Mag + 5,56 mm Páncéltörő 30-as Tár + 5,56 mm 30-Schuss-Magazin AP + Cargador de 30 balas AP de 5,56mm + Ch. 5,56mm 30Cps AP + Magazynek 5,56mm 30rd AP + 5.56mm 30ks AP Zásobník + Carregador de 30 projéteis AP de 5,56mm + Caricatore 5.56mm 30Rnd AP + Магазин из 30-и 5.56 мм бронебойных + + + 5.56mm AP + 5,56 mm Páncéltörő + 5,56mm AP + 5,56mm AP + 5,56mm AP + 5,56mm AP + 5.56mm AP + 5,56mm AP + 5.56mm AP + 5.56 мм бронебойные + + + Caliber: 5.56x45 mm AP<br />Rounds: 30<br />Used in: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm Páncéltörő<br />Lőszerek: 30<br />Használható: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56x45 mm AP<br />Patronen: 30<br />Eingesetzt von: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm AP<br />Balas: 30<br />Se usa en: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm AP<br />Cartouches: 30<br />Utilisé dans: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Kaliber: 5,56 x 45 mm AP<br />Pociski: 30<br />Używane w: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Ráže: 5.56x45 mm AP<br />Munice: 30<br />Použití: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibre: 5,56x45 mm AP<br />Projéteis: 30<br />Usado em: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Calibro: 5.56x45 mm AP<br />Munizioni: 30<br />In uso su: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + Калибр: 5.56x45 мм бронебойные<br />Патронов: 30<br />Применимы в: TRG-20, TRG-21/EGLM, Mk20/C/EGLM, SDAR + + + + 7.62mm 20rnd Tracer Mag + 7,62 mm Nyomjelző IR-DIM 20-as Tár + 7,62 mm 20-Schuss-Magazin Leuchtspur + Cargador de 20 balas trazadores de 7,62mm + Ch. 7,62mm 20Cps Traçantes + Magazynek 7,62mm 20rd Smugacz + 7.62mm 20ks Svítící Zásobník + Carregador de 20 projéteis traçantes de 7,62mm + Caricatore 7.62mm 20Rnd Traccianti + Магазин из 20-и 7.62 мм трассирующих + + + 7.62mm Tracer + 7,62 mm Nyomjelző + 7,62mm Leuchtspur + 7,62mm Trazadora + 7,62mm Traçantes + 7,62mm Smugacz + 7.62mm Svítící + 7,62mm Traçante + 7.62mm Traccianti + 7.62 мм трассирущие + + + Caliber: 7.62x51 mm Tracer<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Nyomjelző<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm Leuchtspur<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm Trazadora<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm Traçantes<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm Smugacz<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm Svítící<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm Traçante<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm Traccianti<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм трассирующие<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + 7.62mm 20rnd Tracer IR-DIM Mag + 7,62 mm Nyomjelző IR-DIM 20-as Tár + 7,62 mm 20-Schuss-Magazin Leuchtspur IR-DIM + Cargador de 20 balas IR-DIM de 7,62mm + Ch. 7,62mm 20Cps Traçantes IR-DIM + Magazynek 7,62mm 20rd Smugacz IR-DIM + 7.62mm 20ks Svítící IR-DIM Zásobník + Carregador de 20 projéteis IR-DIM de 7,62mm + Caricatore 7.62mm 20rnd Traccianti IR-DIM + Магазин из 20-и 7.62 мм трассирующих под ПНВ + + + 7.62mm IR-DIM + 7,62 mm IR-DIM + 7,62mm IR-DIM + 7,62mm IR-DIM + 7,62mm IR-DIM + 7,62mm IR-DIM + 7.62mm IR-DIM + 7,62mm IR-DIM + 7.62mm IR-DIM + 7.62 мм трассирущие под ПНВ + + + Caliber: 7.62x51 mm Tracer IR-DIM<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Nyomjelző IR-DIM<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm Leuchtspur IR-DIM<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm Trazadoras IR-DIM<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm Traçantes IR-DIM<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm Smugacz IR-DIM<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm Svítící IR-DIM<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm Traçante IR-DIM<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm Traccianti IR-DIM<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм трассирующие под ПНВ<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + 7.62mm 20Rnd SD Mag + 7,62 mm Hangtompítós 20-as Tár + 7,62 mm 20-Schuss-Magazin SD + Cargador de 20 balas SD de 7,62mm + Ch. 7,62mm 20Cps SD + Magazynek 7,62mm 20rd SD + 7.62mm 20ks SD Zásobník + Carregador de 20 projéteis SD de 7,62mm + Caricatore 7.62mm 20Rnd Sil. + Магазин из 20-и 7.62 мм дозвуковых + + + 7.62mm SD + 7,62 mm Hangtompítós + 7,62mm SD + 7,62mm SD + 7,62mm SD + 7,62mm SD + 7.62mm SD + 7,62mm SD + 7.62mm Sil. + 7.62 мм дозвуковые + + + Caliber: 7.62x51 mm SD<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Hangtompítós<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm SD<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm SD<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm SD<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm SD<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm SD<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm SD<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm Sil.<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + 7.62mm 20Rnd AP Mag + 7,62 mm Páncéltörő 20-as Tár + 7,62 mm 20-Schuss-Magazin AP + Cargador de 20 balas AP de 7,62mm + Ch. 7,62mm 20Cps AP + Magazynek 7,62mm 20rd AP + 7.62mm 20ks AP Zásobník + Carregador de 20 projéteis AP de 7,62mm + Caricatore 7.62mm 20Rnd AP + Магазин из 20-и 7.62 мм бронебойных + + + 7.62mm AP + 7,62 mm Páncéltörő + 7,62mm AP + 7,62mm AP + 7,62mm AP + 7,62mm AP + 7.62mm AP + 7,62mm AP + 7.62mm AP + 7.62 мм бронебойные + + + Caliber: 7.62x51 mm AP<br />Rounds: 20<br />Used in: Mk18 ABR + Kaliber: 7,62x51 mm Páncéltörő<br />Lőszerek: 20<br />Használható: Mk18 ABR + Kaliber: 7,62x51 mm AP<br />Patronen: 20<br />Eingesetzt von: EBR + Calibre: 7,62x51 mm AP<br />Balas: 20<br />Se usa en: Mk18 ABR + Calibre: 7,62x51 mm AP<br />Cartouches: 20<br />Utilisé dans: EBR + Kaliber: 7,62 x 51 mm AP<br />Pociski: 20<br />Używane w: Mk18 ABR + Ráže: 7.62x51 mm AP<br />Munice: 20<br />Použití: Mk18 ABR + Calibre: 7,62x51 mm AP<br />Projéteis: 20<br />Usado em: Mk18 ABR + Calibro: 7.62x51 mm AP<br />Munizioni: 20<br />In uso su: Mk18 ABR + Калибр: 7.62x51 мм дозвуковые<br />Патронов: 20<br />Применимы в: Mk18 ABR + + + Caliber: 7.62x51mm M118LR<br />Rounds: 20<br />Type: M14 + Kaliber: 7,62x51 mm M118LR<br />Lőszerek: 20<br />Típus: M14 + Kaliber: 7,62x51mm M118LR<br />Schuss: 20<br />Typ: M14 + Calibre: 7,62x51mm M118LR<br />Balas: 20<br />Tipo: M14 + Kaliber: 7,62 x 51 mm M118LR<br />Pociski: 20<br />Typ: M14 + Kalibr: 7.62x51mm M118LR<br />Náboje: 20<br />Typ: M14 + Calibre : 7,62x51mm M118LR<br />Cartouches: 20<br />Type: M14 + Calibre: 7,62x51mm M118LR<br />Projéteis: 20<br />Tipo: M14 + Калибр: 7.62x51mm M118LR<br />Патронов: 20<br />Тип: M14 + Calibro: 7.62x51mm M118LR<br />Munizioni:20<br />In uso su: M14 + + + + Flash Suppressor (6.5 mm) + Lángrejtő (6,5 mm) + Mündungsfeuerdämpfer (6,5 mm) + Soppressore di fiamma (6.5mm) + Supressor de Clarão (6,5mm) + Tłumik płomieni (6,5 mm) + Tlumič záblesku (6,5 mm) + Cache-flamme (6,5 mm) + Пламегаситель (6,5 мм) + Supresor (6,5 mm) + + + Flash Suppressor (7.62 mm) + Lángrejtő (7,62 mm) + Mündungsfeuerdämpfer (7,62 mm) + Soppressore di fiamma (7.62mm) + Supressor de Clarão (7,62mm) + Tłumik płomieni (7,62 mm) + Tlumič záblesku (7,62 mm) + Cache-flamme (7,62 mm) + Пламегаситель (7,62 мм) + Supresor (7,62 mm) + + + Flash Suppressor (5.56 mm) + Lángrejtő (5,56 mm) + Mündungsfeuerdämpfer (5,56 mm) + Soppressore di fiamma (5.56mm) + Supressor de Clarão (5,56mm) + Tłumik płomieni (5,56 mm) + Tlumič záblesku (5,56 mm) + Cache-flamme (5,56 mm) + Пламегаситель (5,56 мм) + Supresor (5,56 mm) + + + Flash Suppressor (.45 ACP) + Lángrejtő (.45 ACP) + Mündungsfeuerdämpfer (.45 ACP) + Soppressore di fiamma (.45 ACP) + Supressor de Clarão (.45 ACP) + Tłumik płomieni (.45 ACP) + Tlumič záblesku (.45 ACP) + Cache-flamme (.45 ACP) + Пламегаситель (.45 ACP) + Supresor (.45 ACP) + + + Flash Suppressor (9 mm) + Lángrejtő (9 mm) + Mündungsfeuerdämpfer (9 mm) + Soppressore di fiamma (9 mm) + Supressor de Clarão (9mm) + Tłumik płomieni (9 mm) + Tlumič záblesku (9 mm) + Cache-flamme (9 mm) + Пламегаситель (9 мм) + Supresor (9 mm) + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Ballistics/textures/target_ca.paa b/TO_MERGE/agm/Ballistics/textures/target_ca.paa new file mode 100644 index 0000000000..d2bb6e38f7 Binary files /dev/null and b/TO_MERGE/agm/Ballistics/textures/target_ca.paa differ diff --git a/TO_MERGE/agm/Captives/UI/agm_cabletie_x_ca.paa b/TO_MERGE/agm/Captives/UI/agm_cabletie_x_ca.paa new file mode 100644 index 0000000000..a0eba2d13f Binary files /dev/null and b/TO_MERGE/agm/Captives/UI/agm_cabletie_x_ca.paa differ diff --git a/TO_MERGE/agm/Captives/UI/captive_ca.paa b/TO_MERGE/agm/Captives/UI/captive_ca.paa new file mode 100644 index 0000000000..9f5b07019c Binary files /dev/null and b/TO_MERGE/agm/Captives/UI/captive_ca.paa differ diff --git a/TO_MERGE/agm/Captives/UI/handcuff_ca.paa b/TO_MERGE/agm/Captives/UI/handcuff_ca.paa new file mode 100644 index 0000000000..a56ff8b3e3 Binary files /dev/null and b/TO_MERGE/agm/Captives/UI/handcuff_ca.paa differ diff --git a/TO_MERGE/agm/Captives/agm_cabletie.p3d b/TO_MERGE/agm/Captives/agm_cabletie.p3d new file mode 100644 index 0000000000..e0804b8c5f Binary files /dev/null and b/TO_MERGE/agm/Captives/agm_cabletie.p3d differ diff --git a/TO_MERGE/agm/Captives/clientInit.sqf b/TO_MERGE/agm/Captives/clientInit.sqf new file mode 100644 index 0000000000..bb7c5ebbb0 --- /dev/null +++ b/TO_MERGE/agm/Captives/clientInit.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[missionNamespace, "playerChanged", {_this call AGM_Captives_fnc_handlePlayerChanged}] call AGM_Core_fnc_addCustomEventhandler; diff --git a/TO_MERGE/agm/Captives/config.cpp b/TO_MERGE/agm/Captives/config.cpp new file mode 100644 index 0000000000..56b3f8bc32 --- /dev/null +++ b/TO_MERGE/agm/Captives/config.cpp @@ -0,0 +1,363 @@ +class CfgPatches { + class AGM_Captives { + units[] = {}; + weapons[] = {"AGM_CableTie"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Captives { + class AGM_Captives { + file = "\AGM_Captives\functions"; + class canFriskPerson; + class canLoadCaptive; + class canUnloadCaptive; + class escortCaptive; + class handleGetOut; + class handleKnockedOut; + class handlePlayerChanged; + class handleWokeUp; + class initPost; + class initUnit; + class loadCaptive; + class openFriskMenu; + class setCaptive; + class surrender; + class unloadCaptive; + }; + }; +}; + +//release escorted captive when entering a vehicle +class Extended_GetIn_EventHandlers { + class All { + class AGM_Captives_AutoDetachCaptive { + getIn = "if (local (_this select 2) && {(_this select 2) getVariable ['AGM_isEscorting', false]}) then {(_this select 2) setVariable ['AGM_isEscorting', false, true]}"; + }; + }; +}; + +//reset captive animation after leaving vehicle +class Extended_GetOut_EventHandlers { + class All { + class AGM_Captives_LeaveVehicle { + getOut = "if (local (_this select 2) && {(_this select 2) getVariable ['AGM_isCaptive', false]}) then {_this call AGM_Captives_fnc_handleGetOut}"; + }; + }; +}; + +//reset captivity and escorting status when getting killed +class Extended_Killed_EventHandlers { + class CAManBase { + class AGM_Captives_AutoDetachCaptive { + killed = "if ((_this select 0) getVariable ['AGM_isCaptive', false]) then {(_this select 0) setVariable ['AGM_isCaptive', false, true]}; if ((_this select 0) getVariable ['AGM_isEscorting', false]) then {(_this select 0) setVariable ['AGM_isEscorting', false, true]};"; + }; + }; +}; + +//handle captive and unconsciousness state +class Extended_Init_EventHandlers { + class CAManBase { + class AGM_Captives_AutoDetachCaptive { + init = "_this call AGM_Captives_fnc_initUnit"; + }; + }; +}; + +//mission start +class Extended_InitPost_EventHandlers { + class CAManBase { + class AGM_Captives_InitPost { + init = "if (local (_this select 0)) then {_this call AGM_Captives_fnc_initPost};"; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Captives { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Captives\clientInit.sqf'"; + }; +}; + +class AGM_Core_canInteractConditions { + class AGM_Interaction_isNotEscorting { + condition = "!(_player getVariable ['AGM_isEscorting', false])"; + }; + class AGM_Interaction_isNotCaptive { + condition = "!(_player getVariable ['AGM_isCaptive', false])"; + }; + class AGM_Interaction_isNotSurrendering { + condition = "!(_player getVariable ['AGM_isSurrender', false])"; + }; +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + class AGM_Actions { + class AGM_SetCaptive { + displayName = "$STR_AGM_Captives_SetCaptive"; + distance = 4; + condition = "'AGM_CableTie' in items _player && {alive _target} && {!(_target getVariable ['AGM_isCaptive', false])}"; + statement = "player removeItem 'AGM_CableTie'; [_target, true] call AGM_Captives_fnc_setCaptive"; + showDisabled = 0; + priority = 2.4; + icon = "\AGM_Captives\UI\handcuff_ca.paa"; + hotkey = "C"; + }; + class AGM_ReleaseCaptive { + displayName = "$STR_AGM_Captives_ReleaseCaptive"; + distance = 4; + condition = "_target getVariable ['AGM_isCaptive', false] && {isNull (attachedTo _target)}"; + statement = "[_target, false] call AGM_Captives_fnc_setCaptive"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + showDisabled = 0; + priority = 2.4; + icon = "\AGM_Captives\UI\handcuff_ca.paa"; + hotkey = "R"; + }; + class AGM_EscortCaptive { + displayName = "$STR_AGM_Captives_EscortCaptive"; + distance = 4; + condition = "_target getVariable ['AGM_isCaptive', false] && {isNull (attachedTo _target)} && {alive _target} && {!(_target getVariable ['AGM_isUnconscious', false])}"; + statement = "[_target, true] call AGM_Captives_fnc_escortCaptive"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + showDisabled = 0; + icon = "\AGM_Captives\UI\captive_ca.paa"; + priority = 2.3; + hotkey = "E"; + }; + class AGM_StopEscorting { + displayName = "$STR_AGM_Captives_StopEscorting"; + distance = 4; + condition = "_target getVariable ['AGM_isCaptive', false] && {_target in attachedObjects _player}"; + statement = "[_target, false] call AGM_Captives_fnc_escortCaptive"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + showDisabled = 0; + icon = "\AGM_Captives\UI\captive_ca.paa"; + priority = 2.3; + hotkey = "E"; + }; + class AGM_LoadCaptive { + displayName = "$STR_AGM_Captives_LoadCaptive"; + distance = 4; + condition = "[_player, _target, objNull] call AGM_Captives_fnc_canLoadCaptive"; + statement = "[_player, _target, objNull] call AGM_Captives_fnc_loadCaptive"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + showDisabled = 0; + icon = "\AGM_Captives\UI\captive_ca.paa"; + priority = 2.2; + hotkey = "L"; + }; + class AGM_FriskPerson { + displayName = "$STR_AGM_Captives_FriskPerson"; + distance = 2; + condition = "[_player, _target] call AGM_Captives_fnc_canFriskPerson"; + statement = "[_player, _target] call AGM_Captives_fnc_openFriskMenu"; + showDisabled = 0; + //icon = ""; //@todo + priority = 3; + hotkey = "F"; + }; + }; + + class AGM_SelfActions { + class AGM_StopEscortingSelf { + displayName = "$STR_AGM_Captives_StopEscorting"; + condition = "(_player getVariable ['AGM_escortedUnit', objNull]) getVariable ['AGM_isCaptive', false] && {(_player getVariable ['AGM_escortedUnit', objNull]) in attachedObjects _player}"; + statement = "[_player getVariable ['AGM_escortedUnit', objNull], false] call AGM_Captives_fnc_escortCaptive;"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + showDisabled = 0; + priority = 2.3; + hotkey = "C"; + }; + /*class AGM_LoadCaptiveSelf { + displayName = "$STR_AGM_Captives_LoadCaptive"; + condition = "[_player, objNull, objNull] call AGM_Captives_fnc_canLoadCaptiveIntoVehicle"; + statement = "[_player, objNull, objNull] call AGM_Captives_fnc_loadCaptiveIntoVehicle"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + showDisabled = 0; + priority = 2.2; + hotkey = "K"; + };*/ + }; + }; + + #define MACRO_LOADUNLOADCAPTIVE \ + class AGM_Actions { \ + class AGM_LoadCaptive { \ + displayName = "$STR_AGM_Captives_LoadCaptive"; \ + distance = 4; \ + condition = "[_player, objNull, _target] call AGM_Captives_fnc_canLoadCaptive"; \ + statement = "[_player, objNull, _target] call AGM_Captives_fnc_loadCaptive"; \ + exceptions[] = {"AGM_Interaction_isNotEscorting"}; \ + showDisabled = 0; \ + priority = 1.2; \ + hotkey = "L"; \ + }; \ + class AGM_UnloadCaptive { \ + displayName = "$STR_AGM_Captives_UnloadCaptive"; \ + distance = 4; \ + condition = "[_player, _target] call AGM_Captives_fnc_canUnloadCaptive"; \ + statement = "[_player, _target] call AGM_Captives_fnc_unloadCaptive"; \ + showDisabled = 0; \ + priority = 1.2; \ + hotkey = "C"; \ + }; \ + }; + + class LandVehicle; + class Car: LandVehicle { + MACRO_LOADUNLOADCAPTIVE + }; + class Tank: LandVehicle { + MACRO_LOADUNLOADCAPTIVE + }; + + class Air; + class Helicopter: Air { + MACRO_LOADUNLOADCAPTIVE + }; + class Plane: Air { + MACRO_LOADUNLOADCAPTIVE + }; + + class Ship; + class Ship_F: Ship { + MACRO_LOADUNLOADCAPTIVE + }; + + class StaticWeapon: LandVehicle { + MACRO_LOADUNLOADCAPTIVE + }; + + class StaticMortar; + class Mortar_01_base_F: StaticMortar { + MACRO_LOADUNLOADCAPTIVE + }; + + #define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ + }; + + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_CableTie,12) + }; + }; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_CableTie: AGM_ItemCore { + displayName = "$STR_AGM_Captives_CableTie"; + descriptionShort = "$STR_AGM_Captives_CableTieDescription"; + model = "\AGM_Captives\agm_cabletie.p3d"; + picture = "\AGM_Captives\UI\agm_cabletie_x_ca.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 1; + }; + }; +}; + +/*class CfgMovesBasic; +class CfgMovesMaleSdr: CfgMovesBasic { + class States { + class CutSceneAnimationBase; + class AmovPercMstpSnonWnonDnon_EaseIn: CutSceneAnimationBase { + head = "headDefault"; + static = 1; + disableWeapons = 0; + forceAim = 0; + InterpolateTo[] = {"AmovPercMstpSnonWnonDnon_EaseOut",0.02,"Unconscious",0.1}; + }; + class AmovPercMstpSnonWnonDnon_Ease: AmovPercMstpSnonWnonDnon_EaseIn { + looped = 1; + InterpolateTo[] = {"Unconscious",0.1}; + }; + class AmovPercMstpSnonWnonDnon_EaseOut: AmovPercMstpSnonWnonDnon_EaseIn { + InterpolateTo[] = {"AmovPercMstpSnonWnonDnon_EaseIn",0.02,"Unconscious",0.1}; + }; + + class AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon: CutSceneAnimationBase { + InterpolateTo[] = {"Unconscious",0.01,"AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1}; + }; + + class AmovPercMstpSsurWnonDnon: AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon { + looped = 1; + InterpolateTo[] = {"Unconscious",0.01}; + }; + + class AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon: AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon { + InterpolateTo[] = {"Unconscious",0.01,"AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon",0.1}; + }; + }; +};*/ + +class CfgMovesBasic { + class Actions { + class CivilStandActions; + class AGM_CivilStandCaptiveActions: CivilStandActions { + turnL = ""; + turnR = ""; + stop = "AGM_AmovPercMstpScapWnonDnon"; + StopRelaxed = "AGM_AmovPercMstpScapWnonDnon"; + default = "AGM_AmovPercMstpScapWnonDnon"; + getOver = ""; + throwPrepare = ""; + throwGrenade[] = {"","Gesture"}; + }; + }; +}; + +class CfgMovesMaleSdr: CfgMovesBasic { + class StandBase; + class States { + class AmovPercMstpSnonWnonDnon: StandBase { + ConnectTo[] += {"AGM_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1}; + }; + + class CutSceneAnimationBase; + class AGM_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon: CutSceneAnimationBase { + actions = "AGM_CivilStandCaptiveActions"; + file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_EaseIn"; + speed = 1; + looped = 0; + interpolationRestart = 2; + ConnectTo[] = {"AGM_AmovPercMstpScapWnonDnon",0.1}; + InterpolateTo[] = {"Unconscious",0.01,"AGM_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1}; + }; + + class AGM_AmovPercMstpScapWnonDnon: AGM_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon { + file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_Ease"; + speed = 0; + ConnectTo[] = {"AGM_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1}; + InterpolateTo[] = {"Unconscious",0.01}; + looped = 1; + }; + + class AGM_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon: AGM_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon { + actions = "CivilStandActions"; + file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\amovpercmstpsnonwnondnon_easeout"; + ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1}; + InterpolateTo[] = {"Unconscious",0.01,"AGM_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1}; + }; + }; +}; + +/* +player playMove "AGM_AmovPercMstpScapWnonDnon"; +player switchMove "AGM_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon"; +*/ diff --git a/TO_MERGE/agm/Captives/functions/fn_canFriskPerson.sqf b/TO_MERGE/agm/Captives/functions/fn_canFriskPerson.sqf new file mode 100644 index 0000000000..77ad6f6446 --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_canFriskPerson.sqf @@ -0,0 +1,21 @@ +/* + * By: bux578 + * + * Checks the conditions for being able to frisk a unit + * + * Arguments: + * 0: caller (player) (Object) + * 1: target (Object) + * + * Return Value: + * Boolean + */ + +private ["_unit", "_target"]; + +_unit = _this select 0; +_target = _this select 1; + + _target getVariable ["AGM_isCaptive", false] +|| {_target getVariable ["AGM_isSearchable", false]} +|| {_target getVariable ["AGM_isUnconscious", false]} diff --git a/TO_MERGE/agm/Captives/functions/fn_canLoadCaptive.sqf b/TO_MERGE/agm/Captives/functions/fn_canLoadCaptive.sqf new file mode 100644 index 0000000000..637a4889af --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_canLoadCaptive.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * + * Check if the unit can load the target object into a vehicle. + * + * Argument: + * 0: Unit that wants to load a captive (Object) + * 1: A captive. ObjNull for the first escorted captive (Object) + * 2: Vehicle to load the captive into. ObjNull for the nearest vehicle (Object) + * + * Return value: + * Boolean (Bool) + */ + +private ["_unit", "_target", "_vehicle", "_objects"]; + +_unit = _this select 0; +_target = _this select 1; +_vehicle = _this select 2; + +if (isNull _target) then { + _objects = attachedObjects _unit; + _objects = [_objects, {_this getVariable ["AGM_isCaptive", false]}] call AGM_Core_fnc_filter; + _target = _objects select 0; +}; + +if (isNull _vehicle) then { + _objects = nearestObjects [_unit, ["Car", "Tank", "Helicopter", "Plane", "Ship_F"], 10]; + _vehicle = _objects select 0; +}; + +_unit getVariable ["AGM_isEscorting", false] +&& {!isNil "_target"} +&& {!isNil "_vehicle"} +&& {_vehicle emptyPositions "cargo" > 0} diff --git a/TO_MERGE/agm/Captives/functions/fn_canUnloadCaptive.sqf b/TO_MERGE/agm/Captives/functions/fn_canUnloadCaptive.sqf new file mode 100644 index 0000000000..8c52bac0b0 --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_canUnloadCaptive.sqf @@ -0,0 +1,23 @@ +/* + * Author: commy2 + * + * Check if the unit can unload a captive from the vehicle. + * + * Argument: + * 0: Unit that wants to unload a captive (Object) + * 1: Vehicle to unload a captive from. (Object) + * + * Return value: + * Boolean (Bool) + */ + +private ["_unit", "_vehicle", "_cargo"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_cargo = crew _vehicle; // Can also unload from driver, gunner, commander, turret positions. They shouldn't be there anyway. + +_cargo = [_cargo, {_this getVariable ["AGM_isCaptive", false]}] call AGM_Core_fnc_filter; + +count _cargo > 0 diff --git a/TO_MERGE/agm/Captives/functions/fn_escortCaptive.sqf b/TO_MERGE/agm/Captives/functions/fn_escortCaptive.sqf new file mode 100644 index 0000000000..55244cf2f8 --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_escortCaptive.sqf @@ -0,0 +1,43 @@ +//author : Nic547 +//Attaches a Captive to the player + +private ["_unit", "_state"]; + +_unit = _this select 0; +_state = _this select 1; + +if !("AGM_Handcuffed" in ([_unit] call AGM_Core_fnc_getCaptivityStatus)) exitWith { + [localize "STR_AGM_Captives_NoCaptive"] call AGM_Core_fnc_displayTextStructured; +}; + +if (_state) then { + if (player getVariable ["AGM_isEscorting", false]) exitWith {}; + + [player, _unit] call AGM_Core_fnc_claim; + player setVariable ["AGM_isEscorting", true, true]; + + _unit attachTo [player, [0, 1, 0]]; + + player setVariable ["AGM_escortedUnit", _unit, true]; + _actionID = player addAction [format ["%1", localize "STR_AGM_Captives_StopEscorting"], "[player getVariable ['AGM_escortedUnit', objNull], false] call AGM_Captives_fnc_escortCaptive;", nil, 20, false, true, "", "!isNull (player getVariable ['AGM_escortedUnit', objNull])"]; + + [_unit, _actionID] spawn { + _unit = _this select 0; + _actionID = _this select 1; + + while {player getVariable ["AGM_isEscorting", false]} do { + sleep 0.2; + + if (!alive _unit || {!alive player} || {!canStand _unit} || {!canStand player} || {_unit getVariable ["AGM_isUnconscious", false]} || {player getVariable ["AGM_isUnconscious", false]} || {!isNull (attachedTo player)}) then { + player setVariable ["AGM_isEscorting", false, true]; + }; + }; + [objNull, _unit] call AGM_Core_fnc_claim; + + detach _unit; + player removeAction _actionID; + }; +} else { + player setVariable ["AGM_isEscorting", false, true]; + player setVariable ["AGM_escortedUnit", objNull, true]; +}; diff --git a/TO_MERGE/agm/Captives/functions/fn_handleGetOut.sqf b/TO_MERGE/agm/Captives/functions/fn_handleGetOut.sqf new file mode 100644 index 0000000000..0cb88b0a8e --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_handleGetOut.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_vehicle", "_unit", "_cargoIndex"]; + +_vehicle = _this select 0; +_unit = _this select 2; + +_cargoIndex = _unit getVariable ["AGM_Captives_CargoIndex", -1]; + +if (_cargoIndex != -1) exitWith { + _unit moveInCargo [_vehicle, _cargoIndex]; +}; + +[_unit, 'AGM_AmovPercMstpScapWnonDnon', 2] call AGM_Core_fnc_doAnimation; diff --git a/TO_MERGE/agm/Captives/functions/fn_handleKnockedOut.sqf b/TO_MERGE/agm/Captives/functions/fn_handleKnockedOut.sqf new file mode 100644 index 0000000000..3257d544ca --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_handleKnockedOut.sqf @@ -0,0 +1,2 @@ +// by commy2 + diff --git a/TO_MERGE/agm/Captives/functions/fn_handlePlayerChanged.sqf b/TO_MERGE/agm/Captives/functions/fn_handlePlayerChanged.sqf new file mode 100644 index 0000000000..5bece824f9 --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_handlePlayerChanged.sqf @@ -0,0 +1,12 @@ +// by commy2 + +private ["_unit", "_oldUnit"]; + +_unit = _this select 0; +_oldUnit = _this select 1; + +if (_unit getVariable ["AGM_isCaptive", false]) then { + showHUD false; +} else { + showHUD true; +}; diff --git a/TO_MERGE/agm/Captives/functions/fn_handleWokeUp.sqf b/TO_MERGE/agm/Captives/functions/fn_handleWokeUp.sqf new file mode 100644 index 0000000000..facbf9b31f --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_handleWokeUp.sqf @@ -0,0 +1,10 @@ +// by commy2 + +private "_unit"; + +_unit = _this select 0; + +if (_unit getVariable ["AGM_isCaptive", false] && {vehicle _unit == _unit}) then { + [_unit] call AGM_Core_fnc_fixLoweredRifleAnimation; + [_unit, "AGM_AmovPercMstpScapWnonDnon", 0] call AGM_Core_fnc_doAnimation; +}; diff --git a/TO_MERGE/agm/Captives/functions/fn_initPost.sqf b/TO_MERGE/agm/Captives/functions/fn_initPost.sqf new file mode 100644 index 0000000000..73c9674f7a --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_initPost.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private "_unit"; + +_unit = _this select 0; + +// reset status on mission start +if (_unit getVariable ["AGM_isCaptive", false]) then { + _unit setVariable ["AGM_isCaptive", false]; + [_unit, true] call AGM_Captives_fnc_setCaptive; +}; diff --git a/TO_MERGE/agm/Captives/functions/fn_initUnit.sqf b/TO_MERGE/agm/Captives/functions/fn_initUnit.sqf new file mode 100644 index 0000000000..76d4671b7f --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_initUnit.sqf @@ -0,0 +1,12 @@ +// by commy2 + +[_this select 0, "knockedOut", { + if (local (_this select 0)) then {_this call AGM_Captives_fnc_handleKnockedOut}; +}] call AGM_Core_fnc_addCustomEventhandler; + +[_this select 0, "wokeUp", { + if (local (_this select 0)) then {_this call AGM_Captives_fnc_handleWokeUp}; +}] call AGM_Core_fnc_addCustomEventhandler; + +// prevent players from throwing grenades +[_this select 0, "Throw", {(_this select 1) getVariable ["AGM_isCaptive", false]}, {}] call AGM_Core_fnc_addActionEventhandler; diff --git a/TO_MERGE/agm/Captives/functions/fn_loadCaptive.sqf b/TO_MERGE/agm/Captives/functions/fn_loadCaptive.sqf new file mode 100644 index 0000000000..12bcb35f9b --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_loadCaptive.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * + * Unit loads the target object into a vehicle. + * + * Argument: + * 0: Unit that wants to load a captive (Object) + * 1: A captive. ObjNull for the first escorted captive (Object) + * 2: Vehicle to load the captive into. ObjNull for the nearest vehicle (Object) + * + * Return value: + * Nothing + */ + +private ["_unit", "_target", "_vehicle", "_objects"]; + +_unit = _this select 0; +_target = _this select 1; +_vehicle = _this select 2; + +if (isNull _target) then { + _objects = attachedObjects _unit; + _objects = [_objects, {_this getVariable ["AGM_isCaptive", false]}] call AGM_Core_fnc_filter; + _target = _objects select 0; +}; + +if (isNull _vehicle) then { + _objects = nearestObjects [_unit, ["Car_F", "Tank_F", "Helicopter_F", "Boat_F", "Plane_F"], 10]; + _vehicle = _objects select 0; +}; + +if (!isNil "_target" && {!isNil "_vehicle"}) then { + _unit setVariable ["AGM_isEscorting", false]; + [[_target, _vehicle], "{(_this select 0) moveInCargo (_this select 1); (_this select 0) assignAsCargo (_this select 1); (_this select 0) setVariable ['AGM_Captives_CargoIndex', (_this select 1) getCargoIndex (_this select 0), true];}", _target] call AGM_Core_fnc_execRemoteFnc; +}; diff --git a/TO_MERGE/agm/Captives/functions/fn_openFriskMenu.sqf b/TO_MERGE/agm/Captives/functions/fn_openFriskMenu.sqf new file mode 100644 index 0000000000..c7f60ba2e6 --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_openFriskMenu.sqf @@ -0,0 +1,70 @@ +/* + Name: AGM_Captives_fnc_openFriskMenu + + Author: bux578 + + Description: + Open the select menu with the "personal" items of a frisked unit + It only shows "handgunWeapon", "uniformItems", "vestItems", "backpackItems" and "assignedItems" because every other item is visible on the character + + Parameters: + 0: Object - player unit + 1: Object - unit + + Returns: + Nothing +*/ + +private ["_player", "_unit", "_weapon", "_listedItemClasses", "_actions", "_allGear"]; + +_player = _this select 0; +_unit = _this select 1; + +_weapon = currentWeapon _player; +if (_weapon == primaryWeapon _player && {_weapon != ""}) then { + [_player, "AmovPercMstpSlowWrflDnon", 0] call AGM_Core_fnc_doAnimation; +}; + +_listedItemClasses = []; + +_actions = [localize "STR_AGM_Captives_FriskMenuHeader", localize "STR_AGM_Captives_CancelSelection"] call AGM_Interaction_fnc_prepareSelectMenu; + +_allGear = []; + +if ((handgunWeapon _unit) != "") then { + _allGear pushBack (handgunWeapon _unit); +}; +if (count (uniformItems _unit) > 0) then { + _allGear = _allGear + (uniformItems _unit); +}; +if (count (vestItems _unit) > 0) then { + _allGear = _allGear + (vestItems _unit); +}; +if (count (backpackItems _unit) > 0) then { + _allGear = _allGear + (backpackItems _unit); +}; +if (count (assignedItems _unit) > 0) then { + _allGear = _allGear + (assignedItems _unit); +}; + +// Handgun +// Uniform Items +// Vest Items +// Backpack Items +// Assigned Items +{ + if (!(_x in _listedItemClasses)) then { + private "_item"; + _item = configFile >> "CfgMagazines" >> _x; + if (isNil "_item" || str _item == "") then { //str _item ? + _item = configFile >> "CfgWeapons" >> _x; + }; + _actions = [_actions, getText(_item >> "displayName"), getText(_item >> "picture"), _x] call AGM_Interaction_fnc_addSelectableItem; + _listedItemClasses pushBack _x; + }; +} forEach (_allGear); + +[_actions, {call AGM_Interaction_fnc_hideMenu;}, {call AGM_Interaction_fnc_hideMenu;}] call AGM_Interaction_fnc_openSelectMenu; + +// don't need an "Ok" Button +ctrlShow [8860, false]; diff --git a/TO_MERGE/agm/Captives/functions/fn_setCaptive.sqf b/TO_MERGE/agm/Captives/functions/fn_setCaptive.sqf new file mode 100644 index 0000000000..a2e4ed7e3e --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_setCaptive.sqf @@ -0,0 +1,57 @@ +/* + * Author: Nic547, commy2 + * + * Makes a civilian unable to move. + * + * Argument: + * 0: Unit (Object) + * 1: True to take captive, false to release captive (Object) + * + * Return value: + * Nothing + */ + +private ["_unit", "_state"]; + +_unit = _this select 0; +_state = _this select 1; + +if (!local _unit) exitWith {[[_unit, _state, true], _fnc_scriptName, _unit] call AGM_Core_fnc_execRemoteFnc}; + +if (_state) then { + if (_unit getVariable ["AGM_isCaptive", false]) exitWith {}; + + _unit setVariable ["AGM_isCaptive", true, true]; + + // fix anim on mission start (should work on dedicated servers) + _unit spawn { + [_this, "AGM_Handcuffed", true] call AGM_Core_fnc_setCaptivityStatus; + + if (_this getVariable ["AGM_isCaptive", false] && {vehicle _this == _this}) then { + [_this] call AGM_Core_fnc_fixLoweredRifleAnimation; + [_this, "AGM_AmovPercMstpScapWnonDnon", 0] spawn AGM_Core_fnc_doAnimation; + }; + }; + + _unit setVariable ["AGM_Captives_CargoIndex", vehicle _unit getCargoIndex _unit, true]; + + if (_unit == AGM_player) then { + showHUD false; + }; +} else { + if !(_unit getVariable ["AGM_isCaptive", false]) exitWith {}; + + _unit setVariable ["AGM_isCaptive", false, true]; + [_unit, "AGM_Handcuffed", false] call AGM_Core_fnc_setCaptivityStatus; + if (vehicle _unit == _unit) then { + [_unit, "AGM_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon", 2] call AGM_Core_fnc_doAnimation; + }; + + if (_unit getVariable ["AGM_Captives_CargoIndex", -1] != -1) then { + _unit setVariable ["AGM_Captives_CargoIndex", -1, true]; + }; + + if (_unit == AGM_player) then { + showHUD true; + }; +}; diff --git a/TO_MERGE/agm/Captives/functions/fn_surrender.sqf b/TO_MERGE/agm/Captives/functions/fn_surrender.sqf new file mode 100644 index 0000000000..9ba1dbcfc2 --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_surrender.sqf @@ -0,0 +1,50 @@ +// by commy2 + +private ["_unit", "_state"]; + +_unit = _this select 0; +_state = _this select 1; + +if (!local _unit) exitWith {[_this, _fnc_scriptName, _unit] call AGM_Core_fnc_execRemoteFnc}; + +if (_state) then { + if (_unit getVariable ["AGM_isSurrender", false]) exitWith {}; + + _unit setVariable ["AGM_isSurrender", true, true]; + [_unit, "AGM_Surrendered", true] call AGM_Core_fnc_setCaptivityStatus; + + _unit spawn { + // fix for lowered rifle animation glitch + if (currentWeapon _this != "" && {currentWeapon _this == primaryWeapon _this} && {weaponLowered _this} && {stance _this == "STAND"}) then { + _this playMove "amovpercmstpsraswrfldnon"; + }; + + while {_this getVariable ["AGM_isSurrender", false]} do { + sleep 0.001; //sleep in UI + + if (isPlayer _this) then {showHUD false}; + + if (!alive _this || {_this getVariable ["AGM_isUnconscious", false]}) then { + _this setVariable ["AGM_isSurrender", false, true]; + } else { + _this playMove "amovpercmstpsnonwnondnon_amovpercmstpssurwnondnon"; + }; + }; + if !(_this getVariable ["AGM_isUnconscious", false]) then { + _this playMoveNow "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon"; + } else { + _this playMoveNow "unconscious"; + }; + + [_this, "AGM_Surrendered", false] call AGM_Core_fnc_setCaptivityStatus; + + if (isPlayer _this) then {showHUD true}; + }; +} else { + _unit setVariable ["AGM_isSurrender", false, true]; +}; + +/* +player playMove "AmovPercMstpSsurWnonDnon" +player switchMove "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon" +*/ diff --git a/TO_MERGE/agm/Captives/functions/fn_unloadCaptive.sqf b/TO_MERGE/agm/Captives/functions/fn_unloadCaptive.sqf new file mode 100644 index 0000000000..e7849f1c0e --- /dev/null +++ b/TO_MERGE/agm/Captives/functions/fn_unloadCaptive.sqf @@ -0,0 +1,31 @@ +/* + * Author: commy2 + * + * Unit unloads a captive from a vehicle. + * + * Argument: + * 0: Unit that wants to unload a captive (Object) + * 1: Vehicle to unload a captive from. (Object) + * + * Return value: + * Nothing + */ + +private ["_unit", "_vehicle", "_cargo", "_target"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_cargo = crew _vehicle; // Can also unload from driver, gunner, commander, turret positions. They shouldn't be there anyway. + +_cargo = [_cargo, {_this getVariable ["AGM_isCaptive", false]}] call AGM_Core_fnc_filter; + +if (count _cargo > 0) then { + _target = _cargo select 0; + + _target setVariable ["AGM_Captives_CargoIndex", -1, true]; + + moveOut _target; + [_target, "AGM_AmovPercMstpScapWnonDnon", 2] call AGM_Core_fnc_doAnimation; + [_target, "{unassignVehicle _this}", _target] call AGM_Core_fnc_execRemoteFnc; +}; diff --git a/TO_MERGE/agm/Captives/stringtable.xml b/TO_MERGE/agm/Captives/stringtable.xml new file mode 100644 index 0000000000..060f89d9ec --- /dev/null +++ b/TO_MERGE/agm/Captives/stringtable.xml @@ -0,0 +1,130 @@ + + + + + + Take Prisoner + Gefangen nehmen + Tomar prisionero + Capturer le prisonnier + Weź więźnia + Zajmout Osobu + Arresta il Prigioniero + Tomar Prisioneiro + Foglyul ejtés + Взять в плен + + + Free Prisoner + Gefangenen freilassen + Liberar prisionero + Wypuść więźnia + Libérer le prisonnier + Osvobodit Zajatce + Libera il Prigioniero + Libertar Prisioneiro + Fogoly szabadon elengedése + Освободить пленника + + + Escort Prisoner + Gefangenen eskortieren + Escoltar prisionero + Eskortuj więźnia + Escorter le prisonnier + Eskortovat Zajatce + Scorta il Prigioniero + Escoltar Prisioneiro + Fogoly kísérése + Конвоировать пленника + + + Release Prisoner + Gefangenen loslassen + Soltar prisionero + Anuluj eskortowanie + Relâcher le prisonnier + Uvolnit Zajatce + Rilascia il Prigioniero + Largar Prisioneiro + Fogoly elengedése + Прекратить конвоирование + + + You need to take him as prisoner first! + Du must ihn zuerst gefangen nehmen. + Necesitas hacerle prisionero primero! + Najpierw musisz wziąć go jako więźnia! + Vous devez d'abord le capturer! + Musíš ho nejdříve zajmout! + Prima devi arrestarlo! + Você deve tomá-lo como prisioneiro primeiro! + Először foglyul kell ejtened! + Вы должны сначала взять его в плен! + + + Load Captive + Gefangenen einladen + Cargar prisionero + Embarquer le prisonnier + Załaduj więźnia + Naložit zajatce + Fogoly berakása + Загрузить пленного + + + Unload Captive + Gefangenen ausladen + Descargar prisionero + Débarquer le prisonnier + Wyładuj więźnia + Vyložit zajatce + Fogoly kivevése + Выгрузить пленного + + + Cable Tie + Kabelbinder + Opaska zaciskowa + Precinto + Serflex + Stahovací Pásek + Algema Plástica + Fascietta + Gyorskötöző + Кабельная стяжка + + + Cable ties that allow you to restrain prisoners. + Kabelbinder ermöglichen es, Gefangene zu fesseln. + Opaska zaciskowa pozwala na skrępowanie dłoni u więźnia. + Los precintos permiten maniatar prisioneros + Les Serflex permettent de menotter les prisonniers. + Stahovací pásky vám umožní zadržet vězně. + A algema plástica permite que você contenha prisioneiros. + Fascietta che ti consente di arrestare i prigionieri. + Gyorskötöző emberek fogjulejtéséhez. + Кабельные стяжки позволяют связывать пленников. + + + Inventory of frisked person + Inventar der durchsuchten Person + Inventaire de la fouille + Inventario de la persona cacheada + Motozott személy felszerelése + Inventář prohledávané osoby + Ekwipunek rewidowanej osoby + Инвентарь обысканных лиц + + + Frisk person + Person durchsuchen + Fouiller + Cachear + Prohledávaná osoba + Rewiduj osobę + Motozás + Обыскать человека + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Difficulties/config.cpp b/TO_MERGE/agm/Difficulties/config.cpp new file mode 100644 index 0000000000..1f52136ca7 --- /dev/null +++ b/TO_MERGE/agm/Difficulties/config.cpp @@ -0,0 +1,47 @@ + +class CfgPatches { + class AGM_Difficulties { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgDifficulties { + class Mercenary { + class Flags { + armor[] = {0,0}; + friendlyTag[] = {0,0}; + enemyTag[] = {0,0}; + mineTag[] = {0,0}; + hud[] = {0,1};//{1,1}; + hudPerm[] = {0,0}; + hudWp[] = {0,0}; + hudWpPerm[] = {0,0}; + autoSpot[] = {0,1}; + map[] = {0,0}; + weaponCursor[] = {0,1};//{1,1}; + autoGuideAT[] = {0,0}; + clockIndicator[] = {0,0}; + 3rdPersonView[] = {0,0}; + autoAim[] = {0,0}; + unlimitedSaves[] = {0,0}; + deathMessages[] = {0,1};//{1,1}; + netStats[] = {0,1};//{1,1}; + vonID[] = {0,1}; + cameraShake[] = {1,0}; + hudGroupInfo[] = {0,0}; + extendetInfoType[] = {0,0}; + roughLanding[] = {0,0}; + windEnabled[] = {1,0}; + autoTrimEnabled[] = {0,0}; + stressDamageEnabled[] = {1,0}; + }; + }; +}; diff --git a/TO_MERGE/agm/Disposable/clientInit.sqf b/TO_MERGE/agm/Disposable/clientInit.sqf new file mode 100644 index 0000000000..c47af35ef4 --- /dev/null +++ b/TO_MERGE/agm/Disposable/clientInit.sqf @@ -0,0 +1,10 @@ +// by commy2 + +// The Arma InventoryOpened EH fires actually before the inventory dialog is opened (findDisplay 602 => displayNull). +if (isNil "AGM_Disposable_UpdateInventoryDisplay_EHID") then { + AGM_Disposable_UpdateInventoryDisplay_EHID = [{ + _player = AGM_player; + [_player, secondaryWeapon _player] call AGM_Disposable_fnc_takeLoadedATWeapon; + [_player, _this select 0] spawn AGM_Disposable_fnc_updateInventoryDisplay; + }] call AGM_Core_fnc_addInventoryDisplayLoadedEventHandler; +}; diff --git a/TO_MERGE/agm/Disposable/config.cpp b/TO_MERGE/agm/Disposable/config.cpp new file mode 100644 index 0000000000..dfaffcf703 --- /dev/null +++ b/TO_MERGE/agm/Disposable/config.cpp @@ -0,0 +1,255 @@ + +class CfgPatches { + class AGM_Disposable { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Disposable { + class AGM_Disposable { + file = "\AGM_Disposable\functions"; + class replaceATWeapon; + class takeLoadedATWeapon; + class updateInventoryDisplay; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Disposable { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Disposable\clientInit.sqf'"; + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + class AGM_Disposable_ReplaceFiredATWeapon { + firedBIS = "if (local (_this select 0)) then {_this call AGM_Disposable_fnc_replaceATWeapon};"; + }; + }; +}; + +// handle preloaded missile +class Extended_Init_EventHandlers { + class CAManBase { + class AGM_Disposable_UpdateInventoryDisplay { + init = "if (local (_this select 0)) then {_this spawn {[_this select 0, secondaryWeapon (_this select 0)] call AGM_Disposable_fnc_takeLoadedATWeapon}};"; + }; + }; +}; + +class Extended_Take_EventHandlers { + class CAManBase { + class AGM_Disposable_UpdateInventoryDisplay { + take = "if (local (_this select 0)) then {[_this select 0, _this select 2] call AGM_Disposable_fnc_takeLoadedATWeapon; [_this select 0, findDisplay 602] call AGM_Disposable_fnc_updateInventoryDisplay};"; + }; + }; +}; + +class Extended_Put_EventHandlers { + class CAManBase { + class AGM_Disposable_UpdateInventoryDisplay { + put = "if (local (_this select 0)) then {[_this select 0, findDisplay 602] call AGM_Disposable_fnc_updateInventoryDisplay};"; + }; + }; +}; + +class CfgWeapons { + class Launcher_Base_F; + class launch_NLAW_F: Launcher_Base_F { + AGM_UsedTube = "AGM_launch_NLAW_Used_F"; // The class name of the used tube. + magazines[] = {"AGM_PreloadedMissileDummy"}; // The dummy magazine + }; + class AGM_launch_NLAW_Used_F: launch_NLAW_F { // the used tube should be a sub class of the disposable launcher + scope = 1; + AGM_isUsedLauncher = 1; + author = "$STR_AGM_Core_AGMTeam"; + displayName = "$STR_AGM_Disposable_UsedTube"; + descriptionShort = "$STR_AGM_Disposable_UsedTubeDescription"; + magazines[] = {"AGM_FiredMissileDummy"}; // This will disable the used launcher class from being fired again. + //picture = ""; @todo + //model = ""; @todo + weaponPoolAvailable = 0; + }; +}; + +class CfgMagazines { + class NLAW_F; + class AGM_PreloadedMissileDummy: NLAW_F { // The dummy magazine + author = "$STR_AGM_Core_AGMTeam"; + scope = 1; + displayName = "$STR_AGM_Disposable_PreloadedMissileDummy"; + picture = "\AGM_Core\UI\blank_CO.paa"; + weaponPoolAvailable = 0; + mass = 0; + }; + class AGM_FiredMissileDummy: AGM_PreloadedMissileDummy { + count = 0; + }; + class AGM_UsedTube_F: NLAW_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "$STR_AGM_Disposable_UsedTube"; + descriptionShort = "$STR_AGM_Disposable_UsedTubeDescription"; + displayNameShort = "-"; + count = 0; + weaponPoolAvailable = 0; + modelSpecial = ""; + mass = 0; + }; +}; + +class CfgVehicles { + #define MACRO_NONLAW \ + class TransportMagazines { \ + class _xx_NLAW_F { \ + count = 0; \ + }; \ + }; + + class ReammoBox_F; + class NATO_Box_Base: ReammoBox_F {}; + class Box_NATO_Ammo_F: NATO_Box_Base { + MACRO_NONLAW + }; + class Box_NATO_WpsLaunch_F: NATO_Box_Base { + MACRO_NONLAW + }; + + class IND_Box_Base: ReammoBox_F {}; + class Box_IND_WpsLaunch_F: IND_Box_Base { + MACRO_NONLAW + }; + class Box_IND_Ammo_F: IND_Box_Base { + MACRO_NONLAW + }; + + class B_supplyCrate_F: ReammoBox_F { + MACRO_NONLAW + }; + class I_supplyCrate_F: B_supplyCrate_F { + MACRO_NONLAW + }; + class C_supplyCrate_F: ReammoBox_F { + MACRO_NONLAW + }; + + class B_AssaultPack_rgr; + class B_AssaultPack_rgr_LAT: B_AssaultPack_rgr { + MACRO_NONLAW + }; + class B_AssaultPack_rgr_ReconLAT: B_AssaultPack_rgr { + MACRO_NONLAW + }; + + class B_Carryall_mcamo; + class B_AssaultPack_mcamo_Ammo: B_Carryall_mcamo { + MACRO_NONLAW + }; + class B_Carryall_oli; + class I_Fieldpack_oli_Ammo: B_Carryall_oli { + MACRO_NONLAW + }; + + class B_AssaultPack_dgtl; + class I_Fieldpack_oli_LAT: B_AssaultPack_dgtl { + MACRO_NONLAW + }; + + class CargoNet_01_ammo_base_F; + class B_CargoNet_01_ammo_F: CargoNet_01_ammo_base_F { + MACRO_NONLAW + }; + class I_CargoNet_01_ammo_F: CargoNet_01_ammo_base_F { + MACRO_NONLAW + }; + + class Slingload_01_Base_F; + class B_Slingload_01_Cargo_F: Slingload_01_Base_F { + MACRO_NONLAW + }; + + class Tank_F; + class APC_Tracked_01_base_F: Tank_F { + MACRO_NONLAW + }; + /*class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F { + MACRO_NONLAW + }; + class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F { + MACRO_NONLAW + }; + class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F { + MACRO_NONLAW + }; + class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { + MACRO_NONLAW + };*/ + + class Car_F; + class MRAP_01_base_F: Car_F { + MACRO_NONLAW + }; + /*class MRAP_01_gmg_base_F: MRAP_01_base_F { + MACRO_NONLAW + }; + class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F { + MACRO_NONLAW + }; + class B_MRAP_01_F: MRAP_01_base_F { + MACRO_NONLAW + }; + class B_MRAP_01_gmg_F: MRAP_01_gmg_base_F { + MACRO_NONLAW + }; + class B_MRAP_01_hmg_F: MRAP_01_hmg_base_F { + MACRO_NONLAW + };*/ + + class MRAP_03_base_F: Car_F { + MACRO_NONLAW + }; + /*class MRAP_03_hmg_base_F: MRAP_03_base_F { + MACRO_NONLAW + }; + class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F { + MACRO_NONLAW + }; + class I_MRAP_03_F: MRAP_03_base_F { + MACRO_NONLAW + }; + class I_MRAP_03_hmg_F: MRAP_03_hmg_base_F { + MACRO_NONLAW + }; + class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F { + MACRO_NONLAW + };*/ + + class Wheeled_APC_F: Car_F {}; + class APC_Wheeled_03_base_F: Wheeled_APC_F { + MACRO_NONLAW + }; + class APC_Wheeled_01_base_F: Wheeled_APC_F { + MACRO_NONLAW + }; + /*class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F { + MACRO_NONLAW + }; + class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { + MACRO_NONLAW + }; + class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F { + MACRO_NONLAW + }; + class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { + MACRO_NONLAW + };*/ +}; diff --git a/TO_MERGE/agm/Disposable/functions/fn_replaceATWeapon.sqf b/TO_MERGE/agm/Disposable/functions/fn_replaceATWeapon.sqf new file mode 100644 index 0000000000..1f9adfeaff --- /dev/null +++ b/TO_MERGE/agm/Disposable/functions/fn_replaceATWeapon.sqf @@ -0,0 +1,48 @@ +/* + * Author: commy2 + * + * Replace the disposable launcher with the used dummy. + * + * Argument: + * Input from "Fired" eventhandler + * + * Return value: + * Nothing + */ + +private ["_unit", "_tube", "_projectile"]; + +_unit = _this select 0; +_tube = getText (configFile >> "CfgWeapons" >> _this select 1 >> "AGM_UsedTube"); +_projectile = _this select 6; + +if (_tube == "") exitWith {}; + +private "_items"; + +_items = secondaryWeaponItems _unit; + +_unit addWeapon _tube; +_unit selectWeapon _tube; +{ + if (_x != "") then {_unit addSecondaryWeaponItem _x}; +} forEach _items; + +// AI +if !([_unit] call AGM_Core_fnc_isPlayer) then { + [_unit, _tube, _projectile] spawn { + _unit = _this select 0; + _tube = _this select 1; + _projectile = _this select 2; + + waitUntil {isNull _projectile}; + sleep 1; + + if (secondaryWeapon _unit == _tube) then { + _logic = createVehicle ["GroundWeaponHolder", position _unit, [], 0, "CAN_COLLIDE"]; + _logic addWeaponCargoGlobal [_tube, 1]; // @todo secondary weapon items + + _unit removeWeapon _tube; + }; + }; +}; diff --git a/TO_MERGE/agm/Disposable/functions/fn_takeLoadedATWeapon.sqf b/TO_MERGE/agm/Disposable/functions/fn_takeLoadedATWeapon.sqf new file mode 100644 index 0000000000..6b2b8bce60 --- /dev/null +++ b/TO_MERGE/agm/Disposable/functions/fn_takeLoadedATWeapon.sqf @@ -0,0 +1,44 @@ +/* + * Author: commy2 + * + * Handle the take event. Add a dummy magazine if a disposable rocket launcher is taken. + * + * Argument: + * Input from "Take" eventhandler + * + * Return value: + * Nothing + */ + +private ["_unit", "_launcher", "_config"]; + +_unit = _this select 0; +_launcher = _this select 1; + +_config = configFile >> "CfgWeapons" >> _launcher; + +if (isClass _config && {getText (_config >> "AGM_UsedTube") != ""} && {getNumber (_config >> "AGM_isUsedLauncher") != 1} && {count secondaryWeaponMagazine _unit == 0}) then { + private ["_magazine", "_isLauncherSelected"]; + + _magazine = getArray (_config >> "magazines") select 0; + + _isLauncherSelected = currentWeapon _unit == _launcher; + + _unit removeMagazines _magazine; + + if (backpack _unit == "") then { + _unit addBackpack "Bag_Base"; + + _unit addMagazine _magazine; + _unit addWeapon _launcher; + + removeBackpack _unit; + } else { + _unit addMagazine _magazine; + _unit addWeapon _launcher; + }; + + if (_isLauncherSelected) then { + _unit selectWeapon _launcher; + }; +}; diff --git a/TO_MERGE/agm/Disposable/functions/fn_updateInventoryDisplay.sqf b/TO_MERGE/agm/Disposable/functions/fn_updateInventoryDisplay.sqf new file mode 100644 index 0000000000..a43b44e0f1 --- /dev/null +++ b/TO_MERGE/agm/Disposable/functions/fn_updateInventoryDisplay.sqf @@ -0,0 +1,47 @@ +/* + * Author: bux, commy2 + * + * Hide or show the secondary weapon magazine inventory slot to prevent unloading of dummy magazines. + * + * Argument: + * 0: The player. (Object) + * + * Return value: + * Nothing + */ + +private ["_player", "_display"]; + +_player = _this select 0; + +_player removeMagazines "AGM_PreloadedMissileDummy"; +_player removeMagazines "AGM_FiredMissileDummy"; + +disableSerialization; +_display = _this select 1; + +if (isNull _display) exitWith {}; + +private ["_launcher", "_control", "_config"]; + +_launcher = secondaryWeapon _player; + +if (_launcher == "" || {getText (configFile >> "CfgWeapons" >> _launcher >> "AGM_UsedTube") == ""}) then { + _control = _display displayCtrl 627; + _config = configFile >> "RscDisplayInventory" >> "controls" >> "SlotSecondaryMagazine"; + _control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; + _control ctrlCommit 0; + + _control = _display displayCtrl 1251; + _config = configFile >> "RscDisplayInventory" >> "controls" >> "BackgroundSlotSecondaryMagazine"; + _control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; + _control ctrlCommit 0; +} else { + _control = _display displayCtrl 627; + _control ctrlSetPosition [0, 0, 0, 0]; + _control ctrlCommit 0; + + _control = _display displayCtrl 1251; + _control ctrlSetPosition [0, 0, 0, 0]; + _control ctrlCommit 0; +}; diff --git a/TO_MERGE/agm/Disposable/stringtable.xml b/TO_MERGE/agm/Disposable/stringtable.xml new file mode 100644 index 0000000000..1f2166d3b2 --- /dev/null +++ b/TO_MERGE/agm/Disposable/stringtable.xml @@ -0,0 +1,36 @@ + + + + + + Used Tube + Benutze Einwegwaffe + Tube utilisé + Použitý odpalovač + Zużyta tuba + Lanzador utilizado + Használt cső + Отстрелянная труба + + + Used disposable rocket launcher + Benutzter Einweg-Raketenwerfer + Lance-roquette à usage unique utilisé + Použitý raketomet + Zużyta tuba granatnika jednorazowego użytku + Lanzador desechable utilizado + Használt rakétavető + Отстрелянная одноразовая пусковая установка + + + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Preloaded Missile Dummy + Заряженная ракетная пустышка + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Explosives/CfgAmmo.hpp b/TO_MERGE/agm/Explosives/CfgAmmo.hpp new file mode 100644 index 0000000000..dd09fb296a --- /dev/null +++ b/TO_MERGE/agm/Explosives/CfgAmmo.hpp @@ -0,0 +1,84 @@ +class CfgAmmo { + // All explosive based Ammo classes. Theses are all listed in case they are required. + class Default; + + class TimeBombCore:Default { + AGM_DefuseTime = 5; + }; + /* + class BoundingMineCore:TimeBombCore; + class BoundingMineBase:BoundingMineCore; + class APERSBoundingMine_Range_Ammo:BoundingMineBase; + + class MineCore: TimeBombCore; + class MineBase:MineCore; + class APERSMine_Range_Ammo:MineBase; + class ATMine_Range_Ammo:MineBase; + + class UnderwaterMine_Range_Ammo:MineBase; + class UnderwaterMineAB_Range_Ammo:UnderwaterMine_Range_Ammo; + class UnderwaterMinePDM_Range_Ammo:UnderwaterMine_Range_Ammo; + + class DirectionalBombCore:TimeBombCore; + class DirectionalBombBase:DirectionalBombCore; + class APERSTripMine_Wire_Ammo:DirectionalBombBase; + + class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase; + + class PipeBombCore: TimeBombCore; + class PipeBombBase:PipeBombCore; + */ + class DirectionalBombBase; + class ClaymoreDirectionalMine_Remote_Ammo:DirectionalBombBase{ + AGM_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted"; + soundActivation[] = {"",0,0,0}; + soundDeactivation[] = {"",0,0,0}; + }; + //class ClaymoreDirectionalMine_Remote_Ammo_Scripted:ClaymoreDirectionalMine_Remote_Ammo; + + class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase{ + indirectHitRange = 20; + AGM_explodeOnDefuse = 1; + }; + class SLAMDirectionalMine_Command_Ammo:SLAMDirectionalMine_Wire_Ammo { + mineTrigger = "RemoteTrigger"; + AGM_explodeOnDefuse = 0; + }; + class SLAMDirectionalMine_Timer_Ammo:SLAMDirectionalMine_Wire_Ammo { + mineTrigger = "TimeTrigger"; + AGM_explodeOnDefuse = 0; + }; + class SLAMDirectionalMine_Magnetic_Ammo:SLAMDirectionalMine_Wire_Ammo { + mineTrigger = "MagneticTrigger"; + }; + + class PipeBombBase; + class DemoCharge_Remote_Ammo:PipeBombBase{ + AGM_Explosive = "DemoCharge_Remote_Ammo_Scripted"; + soundActivation[] = {"",0,0,0}; + soundDeactivation[] = {"",0,0,0}; + hit = 500; + indirectHit = 500; + indirectHitRange = 7; + }; + //class DemoCharge_Remote_Ammo_Scripted:DemoCharge_Remote_Ammo; + class SatchelCharge_Remote_Ammo:PipeBombBase{ + AGM_Explosive = "SatchelCharge_Remote_Ammo_Scripted"; + soundActivation[] = {"",0,0,0}; + soundDeactivation[] = {"",0,0,0}; + }; + /*class SatchelCharge_Remote_Ammo_Scripted:SatchelCharge_Remote_Ammo; + + class IEDLandBig_Remote_Ammo:PipeBombBase{ + triggerWhenDestroyed = 1; + }; + class IEDLandSmall_Remote_Ammo:PipeBombBase{ + triggerWhenDestroyed = 1; + }; + class IEDUrbanBig_Remote_Ammo:PipeBombBase{ + triggerWhenDestroyed = 1; + }; + class IEDUrbanSmall_Remote_Ammo:PipeBombBase{ + triggerWhenDestroyed = 1; + };*/ +}; diff --git a/TO_MERGE/agm/Explosives/CfgMagazines.hpp b/TO_MERGE/agm/Explosives/CfgMagazines.hpp new file mode 100644 index 0000000000..4a93ad84a5 --- /dev/null +++ b/TO_MERGE/agm/Explosives/CfgMagazines.hpp @@ -0,0 +1,155 @@ +class CfgMagazines { + class CA_Magazine; + class ATMine_Range_Mag:CA_Magazine{ + AGM_Placeable = 1; + useAction = 0; + AGM_SetupObject = "AGM_Explosives_Place_ATMine"; // CfgVehicle class for setup object. + AGM_DelayTime = 2.5; + class AGM_Triggers { + AGM_Triggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.1; + }; + }; + }; + class APERSBoundingMine_Range_Mag:ATMine_Range_Mag{ + AGM_SetupObject = "AGM_Explosives_Place_APERSBoundingMine"; + class AGM_Triggers { + AGM_Triggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.075; + }; + }; + }; + class APERSMine_Range_Mag:ATMine_Range_Mag{ + AGM_SetupObject = "AGM_Explosives_Place_APERSMine"; + class AGM_Triggers { + AGM_Triggers[] = {"PressurePlate"}; + class PressurePlate { + digDistance = 0.05; + }; + }; + }; + class APERSTripMine_Wire_Mag:ATMine_Range_Mag{ + AGM_SetupObject = "AGM_Explosives_Place_APERSTripwireMine"; + class AGM_Triggers { + AGM_Triggers[] = {"Tripwire"}; + class Tripwire; + }; + }; + + class ClaymoreDirectionalMine_Remote_Mag:CA_Magazine{ + AGM_Placeable = 1; + useAction = 0; + AGM_SetupObject = "AGM_Explosives_Place_Claymore"; // CfgVehicle class for setup object. + AGM_DelayTime = 1.5; + class AGM_Triggers { + AGM_Triggers[] = {"Command"}; + class Command { + FuseTime = 0.5; + }; + }; + }; + + class SatchelCharge_Remote_Mag:CA_Magazine{ + AGM_Placeable = 1; + useAction = 0; + AGM_SetupObject = "AGM_Explosives_Place_SatchelCharge"; // CfgVehicle class for setup object. + AGM_DelayTime = 1; + class AGM_Triggers { + AGM_Triggers[] = {"Timer","Command", "MK16_Transmitter", "DeadmanSwitch"}; + class Timer { + FuseTime = 0.5; + }; + class Command { + FuseTime = 0.5; + }; + class MK16_Transmitter:Command{}; + class DeadmanSwitch:Command{}; + }; + }; + class DemoCharge_Remote_Mag:SatchelCharge_Remote_Mag{ + AGM_SetupObject = "AGM_Explosives_Place_DemoCharge"; // CfgVehicle class for setup object. + model = "\A3\Weapons_F\explosives\c4_charge_small_d"; + }; + + class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag{ + AGM_SetupObject = "AGM_Explosives_Place_SLAM"; + class AGM_Triggers { + AGM_Triggers[] = {"IRSensor","PressurePlate","Timer","Command"}; + class PressurePlate{ + displayName = $STR_AGM_Explosives_SLAME_Magnetic; + digDistance = 0; + ammo = "SLAMDirectionalMine_Magnetic_Ammo"; + pitch = 90; + }; + class IRSensor{ + displayName = $STR_AGM_Explosives_SLAME_IRSensor; + }; + class Timer { + ammo = "SLAMDirectionalMine_Timer_Ammo"; + }; + class Command { + ammo = "SLAMDirectionalMine_Command_Ammo"; + fuseTime = 0.5; + }; + }; + }; +}; + +class CfgAGM_Triggers { +/* onPlace parameters: + 0: OBJECT - unit placing + 1: OBJECT - Placed explosive + 2: STRING - Magazine classname + 3: ARRAY - vars + Last Index: CfgAGM_Triggers config of trigger type. + onSetup parameters: + 0: STRING - Magazine Classname +*/ + class Command { + displayName = $STR_AGM_Explosives_clacker_displayName; + picture = "\AGM_Explosives\Data\UI\Clacker.paa"; + onPlace = "_this call AGM_Explosives_fnc_AddClacker;false"; + requires[] = {"AGM_Clacker"}; + }; + class MK16_Transmitter:Command { + displayName = $STR_AGM_Explosives_MK16_displayName; + picture = "\AGM_Explosives\Data\UI\MK16_Reciever_ca.paa"; + requires[] = {"AGM_M26_Clacker"}; + }; + class DeadManSwitch:Command { + displayName = $STR_AGM_Explosives_DeadManSwitch_displayName; + picture = "\AGM_Explosives\Data\UI\DeadmanSwitch.paa"; + requires[] = {"AGM_DeadManSwitch"}; + }; + class PressurePlate { + displayName = $STR_AGM_Explosives_PressurePlate; + picture = "AGM_Explosives\data\UI\Pressure_plate.paa"; + onPlace = "_dist=GetNumber(ConfigFile >> 'CfgMagazines' >> (_this select 2) >> 'AGM_Triggers' >> 'PressurePlate' >> 'digDistance');_ex=_this select 1;_ex setPosATL ((getPosATL _ex) vectorDiff ((VectorUp _ex) vectorCrossProduct [0,0,_dist]));false"; + }; + class IRSensor { + displayName = $STR_AGM_Explosives_IRSensor; + picture = "AGM_Explosives\data\UI\Pressure_plate.paa"; + onPlace = "false"; + }; + class Timer { + displayName = $STR_AGM_Explosives_timerName; + picture = "AGM_Explosives\data\UI\Timer.paa"; + onPlace = "[_this select 1, (_this select 3) select 0] call AGM_Explosives_fnc_startTimer;false"; + onSetup = "_this call AGM_Explosives_fnc_openTimerSetUI;true"; + }; + class Tripwire { + displayName = $STR_AGM_Explosives_TripWire; + picture = "AGM_Explosives\data\UI\Tripwire.paa"; + onPlace = "false"; + }; +}; + +class CfgMineTriggers { + class RangeTrigger; + class MagneticTrigger: RangeTrigger { + mineMagnetic = 1; + mineTriggerRange = 1; + }; +}; diff --git a/TO_MERGE/agm/Explosives/CfgVehicles.hpp b/TO_MERGE/agm/Explosives/CfgVehicles.hpp new file mode 100644 index 0000000000..ba31a7a5bc --- /dev/null +++ b/TO_MERGE/agm/Explosives/CfgVehicles.hpp @@ -0,0 +1,65 @@ +//class thingX; +class Items_base_F; +class AGM_Explosives_Place: Items_base_F { + author = "AGM"; + _generalMacro = "AGM_Explosives_Place"; + displayName = "Multi-meter"; + mapSize = 0.2; + icon = "iconObject_1x2"; + model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d"; + scope = 2; + scopeCurator = 1; + vehicleClass = "Cargo"; + AGM_offset[] = {0,0,0}; +}; + +class AGM_Explosives_Place_DemoCharge:AGM_Explosives_Place { + displayName = "Demo Charge"; + model = "\A3\Weapons_F\explosives\c4_charge_small_d"; +}; +class AGM_Explosives_Place_APERSBoundingMine:AGM_Explosives_Place { + displayName = "APERS Bounding Mine"; + model = "\A3\Weapons_F\explosives\mine_AP_bouncing"; +}; +class AGM_Explosives_Place_APERSMine:AGM_Explosives_Place { + displayName = "APERS Mine"; + model = "\A3\Weapons_F\explosives\mine_ap"; +}; +class AGM_Explosives_Place_APERSTripwireMine:AGM_Explosives_Place { + displayName = "APERS Tripwire Mine"; + model = "\A3\Weapons_F\explosives\mine_AP_tripwire"; + AGM_offset[] = {1,0,0}; +}; + +class AGM_Explosives_Place_ATMine:AGM_Explosives_Place { + displayName = "AT Mine"; + model = "\A3\Weapons_f\Explosives\mine_at"; +}; + +class AGM_Explosives_Place_Claymore:AGM_Explosives_Place { + displayName = "Claymore"; + model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore"; +}; + +class AGM_Explosives_Place_SatchelCharge:AGM_Explosives_Place { + displayName = "Satchel Charge"; + model = "\A3\Weapons_F\Explosives\satchel"; +}; + +class AGM_Explosives_Place_SLAM:AGM_Explosives_Place { + displayName = "SLAM"; + model = "\A3\Weapons_F\Explosives\mine_SLAM_directional"; +}; +/* +class AGM_Explosives_Place_NavalMine:AGM_Explosives_Place { + displayName = "Naval Mine"; + model = "\A3\Weapons_F\explosives\mine_naval"; +}; +class AGM_Explosives_Place_NavalABMine:AGM_Explosives_Place { + displayName = "Naval Mine"; + model = "\A3\Weapons_F\explosives\mine_naval2"; +}; +class AGM_Explosives_Place_NavalPDMMine:AGM_Explosives_Place { + displayName = "Naval Mine"; + model = "\A3\Weapons_F\explosives\mine_naval3"; +};*/ diff --git a/TO_MERGE/agm/Explosives/CfgWeapons.hpp b/TO_MERGE/agm/Explosives/CfgWeapons.hpp new file mode 100644 index 0000000000..7ab255fcc2 --- /dev/null +++ b/TO_MERGE/agm/Explosives/CfgWeapons.hpp @@ -0,0 +1,55 @@ +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_f; + + class AGM_ExplosiveItem: InventoryItem_Base_f { + allowedSlots[] = {801,701,901}; + //type = 201; + }; + + class AGM_Clacker: AGM_ItemCore { + scope = 2; + displayName = $STR_AGM_Explosives_clacker_displayName; + descriptionShort = $STR_AGM_Explosives_clacker_description; + picture = "\AGM_Explosives\Data\UI\Clacker.paa"; + model = "\A3\weapons_F\ammo\mag_univ.p3d"; + AGM_range = 250; + AGM_Detonator = 1; + + class ItemInfo: AGM_ExplosiveItem { + mass = 3; + uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d"; + }; + }; + class AGM_M26_Clacker: AGM_Clacker { + displayName = $STR_AGM_Explosives_M26_displayName; + picture = "\AGM_Explosives\Data\UI\MK26_Transmitter_ca.paa"; + AGM_range = 5000; + }; + class AGM_DefusalKit: AGM_ItemCore { + scope = 2; + displayName = $STR_AGM_Explosives_DefusalKit_displayName; + descriptionShort = $STR_AGM_Explosives_DefusalKit_description; + picture = "\AGM_Explosives\Data\UI\pliers.paa"; + model = "\A3\Structures_F\Items\Tools\Pliers_F.p3d"; + + class ItemInfo: AGM_ExplosiveItem { + mass = 5; + uniformModel = "\A3\Structures_F\Items\Tools\Pliers_F.p3d"; + }; + }; + class AGM_DeadManSwitch: AGM_ItemCore { + scope = 2; + displayName = $STR_AGM_Explosives_DeadManSwitch_displayName; + descriptionShort = $STR_AGM_Explosives_DeadManSwitch_description; + picture = "\AGM_Explosives\Data\UI\DeadmanSwitch.paa"; + model = "\A3\weapons_F\ammo\mag_univ.p3d"; + AGM_range = 100; + AGM_Detonator = 1; + + class ItemInfo: AGM_ExplosiveItem { + mass = 2; + uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d"; + }; + }; +}; diff --git a/TO_MERGE/agm/Explosives/Data/Audio/IED_Activated.wss b/TO_MERGE/agm/Explosives/Data/Audio/IED_Activated.wss new file mode 100644 index 0000000000..b1f51c6069 Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/Audio/IED_Activated.wss differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/Clacker.paa b/TO_MERGE/agm/Explosives/Data/UI/Clacker.paa new file mode 100644 index 0000000000..fa56cc0a8d Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/Clacker.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/DeadmanSwitch.paa b/TO_MERGE/agm/Explosives/Data/UI/DeadmanSwitch.paa new file mode 100644 index 0000000000..93e0754551 Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/DeadmanSwitch.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/MK16_Reciever_ca.paa b/TO_MERGE/agm/Explosives/Data/UI/MK16_Reciever_ca.paa new file mode 100644 index 0000000000..3d33b707ef Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/MK16_Reciever_ca.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/MK26_Transmitter_ca.paa b/TO_MERGE/agm/Explosives/Data/UI/MK26_Transmitter_ca.paa new file mode 100644 index 0000000000..9b98d603b3 Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/MK26_Transmitter_ca.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/Pressure_plate.paa b/TO_MERGE/agm/Explosives/Data/UI/Pressure_plate.paa new file mode 100644 index 0000000000..c1f696eb7e Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/Pressure_plate.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/Tripwire.paa b/TO_MERGE/agm/Explosives/Data/UI/Tripwire.paa new file mode 100644 index 0000000000..68b25f8231 Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/Tripwire.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/pliers.paa b/TO_MERGE/agm/Explosives/Data/UI/pliers.paa new file mode 100644 index 0000000000..0886d065f3 Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/pliers.paa differ diff --git a/TO_MERGE/agm/Explosives/Data/UI/timer.paa b/TO_MERGE/agm/Explosives/Data/UI/timer.paa new file mode 100644 index 0000000000..b95961f90c Binary files /dev/null and b/TO_MERGE/agm/Explosives/Data/UI/timer.paa differ diff --git a/TO_MERGE/agm/Explosives/ExplosivesUI.hpp b/TO_MERGE/agm/Explosives/ExplosivesUI.hpp new file mode 100644 index 0000000000..ec17015c47 --- /dev/null +++ b/TO_MERGE/agm/Explosives/ExplosivesUI.hpp @@ -0,0 +1,74 @@ +#define GUI_GRID_X (0) +#define GUI_GRID_Y (0) +#define GUI_GRID_W (0.025) +#define GUI_GRID_H (0.04) + +#define ST_CENTER 0x02 + +class RscText; +class RscButton; + +#define X_OFFSET 0.25 + +class RscXSliderH; +class IGUIBack; + +class Rsc_AGM_Timer_Slider:RscXSliderH{ + x = 0.4; + y = 0.2; + w = 0.3; + h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0,0,0,0.5}; +}; + +class RscAGM_SelectTimeUI +{ + idd = 8854; + movingEnable = 0; + class controls { + class back:IGUIBack { + x = X_OFFSET; + y = 0; + w = 0.5; + h = 0.2; + colorBackground[] = {0, 0, 0, 0.5}; + }; + class header: RscText{ + idc = 8870; + x = X_OFFSET + 0.005; + y = 0.005; + w = 0.49; + h = 0.05; + style = ST_CENTER; + text = ""; + }; + class slider: Rsc_AGM_Timer_Slider { + idc = 8845; + x = X_OFFSET + 0.005; + y = 0.06; + w = 0.49; + h = 0.025; + onSliderPosChanged = "private ['_mins', '_secs'];_mins = floor((_this select 1)/60);_secs=floor((_this select 1) - (_mins*60));ctrlSetText [8870, format[localize 'STR_AGM_Explosives_TimerMenu',_mins, _secs]];"; + }; + class cancelBtn: RscButton { + idc = 8855; + x = X_OFFSET + 0.005; + w = 0.15; + h = 0.1; + y = 0.09; + style = ST_CENTER; + text = $STR_AGM_Explosives_Cancel; + action = "closeDialog 0;"; + }; + class approveBtn: RscButton { + idc = 8860; + x = X_OFFSET + 0.345; + y = 0.09; + h = 0.1; + w = 0.15; + style = ST_CENTER; + text = $STR_AGM_Explosives_SetTime; + action = "closeDialog 0;"; + }; + }; +}; diff --git a/TO_MERGE/agm/Explosives/Module.hpp b/TO_MERGE/agm/Explosives/Module.hpp new file mode 100644 index 0000000000..6f80acc369 --- /dev/null +++ b/TO_MERGE/agm/Explosives/Module.hpp @@ -0,0 +1,46 @@ +class Module_F; +class AGM_ModuleExplosive: Module_F { + author = "AGM Team"; + category = "AGM"; + displayName = "Explosive System"; + function = "AGM_Explosives_fnc_module"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Explosives\UI\IconExplosives_ca.paa"; + class Arguments { + class RequireSpecialist { + displayName = "Require specialists?"; + //description = "Require explosive specialists to plant/disable explosives? Default: No"; + // The above distinction is commented out due to the explanation in fn_SetupExplosive.sqf + description = "Require explosive specialists to disable explosives? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class PunishNonSpecialists { + displayName = "Punish non-specialists?"; + description = "Increase the time it takes to complete actions for non-specialists? Default: Yes"; + typeName = "BOOL"; + class values { + class Yes { + default = 1; + name = "Yes"; + value = 1; + }; + class No { + name = "No"; + value = 0; + }; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Explosives/UI/IconExplosives_ca.paa b/TO_MERGE/agm/Explosives/UI/IconExplosives_ca.paa new file mode 100644 index 0000000000..628df3f657 Binary files /dev/null and b/TO_MERGE/agm/Explosives/UI/IconExplosives_ca.paa differ diff --git a/TO_MERGE/agm/Explosives/UI/Icon_Explosive_ca.paa b/TO_MERGE/agm/Explosives/UI/Icon_Explosive_ca.paa new file mode 100644 index 0000000000..d861dfde7e Binary files /dev/null and b/TO_MERGE/agm/Explosives/UI/Icon_Explosive_ca.paa differ diff --git a/TO_MERGE/agm/Explosives/UI/Place_Explosive_ca.paa b/TO_MERGE/agm/Explosives/UI/Place_Explosive_ca.paa new file mode 100644 index 0000000000..b2e8ecede8 Binary files /dev/null and b/TO_MERGE/agm/Explosives/UI/Place_Explosive_ca.paa differ diff --git a/TO_MERGE/agm/Explosives/UI/defuse_ca.paa b/TO_MERGE/agm/Explosives/UI/defuse_ca.paa new file mode 100644 index 0000000000..8d936ca219 Binary files /dev/null and b/TO_MERGE/agm/Explosives/UI/defuse_ca.paa differ diff --git a/TO_MERGE/agm/Explosives/config.cpp b/TO_MERGE/agm/Explosives/config.cpp new file mode 100644 index 0000000000..ba8cd53029 --- /dev/null +++ b/TO_MERGE/agm/Explosives/config.cpp @@ -0,0 +1,300 @@ +class CfgPatches { + class AGM_Explosives { + units[] = {}; + weapons[] = {"AGM_Clacker", "AGM_DefusalKit", "AGM_M26_Clacker", "AGM_DeadManSwitch"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"Garth 'L-H' de Wet"}; + authorUrl = "https://github.com/corruptedheart/"; + }; +}; + +class CfgFunctions { + class AGM_Explosives { + class Explosives { + file="AGM_Explosives\functions"; + + class AddClacker; + class CanDefuse; + class DefuseExplosive; + class DetonateExplosive; + class HandleScrollWheel; + + class hasExplosives; + class hasPlacedExplosives; + + class getDetonators; + class getPlacedExplosives; + + class initialise{postInit=1;}; + //class JammerInit; + + class openDetonateUI; + class openPlaceUI; + class openTransmitterUI; + class openTimerSetUI; + class openTriggerSelectionUI; + + class Place_Approve; + class Place_Cancel; + class PlaceExplosive; + + class SelectTrigger; + class SetupExplosive; + class SetPos; + class StartDefuse; + class StartTimer; + + class TriggerType; + }; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +#define MACRO_DETONATEACTION class AGM_SelfActions { \ + class AGM_Explosives { \ + displayName = $STR_AGM_Explosives_Menu;\ + condition = "true";\ + statement = "";\ + exceptions[] = {"AGM_Interaction_isNotSwimming"}; \ + showDisabled = 1;\ + priority = 4;\ + icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; \ + subMenu[] = {"AGM_Explosives", 1};\ + hotkey = "X";\ + class AGM_Detonate {\ + displayName = $STR_AGM_Explosives_Detonate;\ + condition = "[_player] call AGM_Explosives_fnc_hasPlacedExplosives and {count ([_player] call AGM_Explosives_fnc_getDetonators) > 0}";\ + statement = "[_player] call AGM_Explosives_fnc_openTransmitterUI;";\ + exceptions[] = {"AGM_Interaction_isNotSwimming"}; \ + icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; \ + showDisabled = 1;\ + priority = 2;\ + hotkey = "T";\ + };\ + };\ + }; + +class CfgVehicles { + class Man; + + class CAManBase: Man { + class AGM_SelfActions { + class AGM_Explosives { + displayName = $STR_AGM_Explosives_Menu; + condition = "!(_player getVariable ['AGM_PlantingExplosive', false])"; + statement = ""; + exceptions[] = {"AGM_Interaction_isNotSwimming"}; \ + showDisabled = 1; + priority = 4; + icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; + subMenu[] = {"AGM_Explosives", 1}; + hotkey = "X"; + //Sub-menu items + class AGM_Detonate { + displayName = $STR_AGM_Explosives_Detonate; + condition = "[_player] call AGM_Explosives_fnc_hasPlacedExplosives and {count ([_player] call AGM_Explosives_fnc_getDetonators) > 0}"; + statement = "[_player] call AGM_Explosives_fnc_openTransmitterUI;"; + exceptions[] = {"AGM_Interaction_isNotSwimming"}; \ + showDisabled = 1; + icon = "AGM_Explosives\UI\Icon_Explosive_ca.paa"; + priority = 2; + hotkey = "T"; + }; + class AGM_Place { + displayName = $STR_AGM_Explosives_Place; + condition = "(vehicle _player == _player) and {[_player] call AGM_Explosives_fnc_hasExplosives}"; + statement = "[_player] call AGM_Explosives_fnc_openPlaceUI;"; + exceptions[] = {"AGM_Interaction_isNotSwimming"}; \ + showDisabled = 1; + icon = "AGM_Explosives\UI\Place_Explosive_ca.paa"; + priority = 1; + hotkey = "P"; + }; + class AGM_Defuse { + displayName = $STR_AGM_Explosives_Defuse; + condition = "[_player] call AGM_Explosives_fnc_CanDefuse"; + statement = "[_player, AGM_Interaction_Target] call AGM_Explosives_fnc_StartDefuse;"; + exceptions[] = {"AGM_Interaction_isNotSwimming"}; \ + showDisabled = 0; + icon = "AGM_Explosives\UI\defuse_ca.paa"; + priority = 0.8; + hotkey = "F"; + }; + }; + }; + }; + + #include "CfgVehicles.hpp" + + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class FIA_Box_Base_F; + class Box_NATO_Support_F; + + class Box_NATO_AmmoOrd_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_Clacker,12) + MACRO_ADDITEM(AGM_M26_Clacker,6) + MACRO_ADDITEM(AGM_DefusalKit,12) + }; + }; + + class Box_East_AmmoOrd_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_Clacker,12) + MACRO_ADDITEM(AGM_M26_Clacker,6) + MACRO_ADDITEM(AGM_DefusalKit,12) + }; + }; + + class Box_IND_AmmoOrd_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_Clacker,12) + MACRO_ADDITEM(AGM_M26_Clacker,6) + MACRO_ADDITEM(AGM_DefusalKit,12) + MACRO_ADDITEM(AGM_Deadmanswitch,2) + }; + }; + + class Box_FIA_Ammo_F: FIA_Box_Base_F { + class TransportItems { + MACRO_ADDITEM(AGM_Clacker,2) + MACRO_ADDITEM(AGM_M26_Clacker,2) + MACRO_ADDITEM(AGM_DefusalKit,2) + MACRO_ADDITEM(AGM_Deadmanswitch,1) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_Clacker,12) + MACRO_ADDITEM(AGM_M26_Clacker,6) + MACRO_ADDITEM(AGM_DefusalKit,12) + MACRO_ADDITEM(AGM_Deadmanswitch,6) + }; + }; + + class B_Kitbag_rgr; + class B_Kitbag_rgr_Exp: B_Kitbag_rgr { + class TransportItems { + class _xx_ToolKit { // xXToOlKiT420mLgXx + count = 0; + }; + }; + }; + class B_Carryall_ocamo; + class B_Carryall_ocamo_Exp: B_Carryall_ocamo { + class TransportItems { + class _xx_ToolKit { + count = 0; + }; + }; + }; + class B_Carryall_oucamo; + class B_Carryall_oucamo_Exp: B_Carryall_oucamo { + class TransportItems { + class _xx_ToolKit { + count = 0; + }; + }; + }; + class B_Carryall_oli; + class G_Carryall_Exp: B_Carryall_oli { + class TransportItems { + class _xx_ToolKit { + count = 0; + }; + }; + }; + class I_Carryall_oli_Exp: B_Carryall_oli { + class TransportItems { + class _xx_ToolKit { + count = 0; + }; + }; + }; + + #include "Module.hpp" + + // Add AGM_Clacker and AGM_DefusalKit to every explosive unit. + #define MACRO_ADDMINEKIT \ + items[] = {"FirstAidKit", "AGM_Clacker", "AGM_DefusalKit"}; \ + respawnitems[] = {"FirstAidKit", "AGM_Clacker", "AGM_DefusalKit"}; + + class B_Soldier_base_F; class B_soldier_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT}; + class B_Soldier_03_f; class B_engineer_F:B_Soldier_03_f {MACRO_ADDMINEKIT}; + class B_Soldier_diver_base_F; class B_diver_exp_F:B_Soldier_diver_base_F {MACRO_ADDMINEKIT}; + class B_Soldier_recon_base; class B_recon_exp_F:B_Soldier_recon_base {MACRO_ADDMINEKIT}; + class B_CTRG_soldier_engineer_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT}; + class I_G_Soldier_base_F; class I_G_engineer_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT}; + class I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT}; + class B_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT}; + class O_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT}; + class B_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT}; + class O_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT}; + class I_Soldier_02_F; class I_Soldier_exp_F:I_Soldier_02_F {MACRO_ADDMINEKIT}; + class I_Soldier_base_F; class I_engineer_F:I_Soldier_base_F {MACRO_ADDMINEKIT}; + class I_Soldier_diver_base_F; class I_diver_exp_F:I_Soldier_diver_base_F {MACRO_ADDMINEKIT}; + class O_Soldier_base_F; class O_soldier_exp_F:O_Soldier_base_F {MACRO_ADDMINEKIT}; + class O_engineer_F:O_Soldier_base_F {MACRO_ADDMINEKIT}; + class O_Soldier_diver_base_F; class O_diver_exp_F:O_Soldier_diver_base_F {MACRO_ADDMINEKIT}; + class O_Soldier_recon_base; class O_recon_exp_F:O_Soldier_recon_base {MACRO_ADDMINEKIT}; + class O_Soldier_Urban_base; class O_soldierU_exp_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT}; + class O_engineer_U_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT}; + class B_Protagonist_VR_F:B_Soldier_base_F {MACRO_ADDMINEKIT}; + class O_Protagonist_VR_F:O_Soldier_base_F {MACRO_ADDMINEKIT}; + class I_Protagonist_VR_F:I_Soldier_base_F {MACRO_ADDMINEKIT}; + class B_Soldier_F; class b_soldier_universal_f:B_Soldier_F {MACRO_ADDMINEKIT}; + class B_G_Soldier_F; class b_g_soldier_universal_f:B_G_Soldier_F {MACRO_ADDMINEKIT}; + class O_Soldier_F; class o_soldier_universal_f:O_Soldier_F {MACRO_ADDMINEKIT}; + class O_G_Soldier_F; class o_g_soldier_universal_f:O_G_Soldier_F {MACRO_ADDMINEKIT}; + class I_soldier_F; class i_soldier_universal_f:I_soldier_F {MACRO_ADDMINEKIT}; + class I_G_Soldier_F; class i_g_soldier_universal_f:I_G_Soldier_F {MACRO_ADDMINEKIT}; + + // Add AGM_Clacker to snipers and spotters for setting off Claymores + #define MACRO_ADDCLAYMOREKIT \ + items[] = {"FirstAidKit","AGM_Clacker"}; \ + respawnitems[] = {"FirstAidKit","AGM_Clacker"}; + + class B_Soldier_sniper_base_F; + class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; + class B_spotter_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; + class I_Soldier_sniper_base_F; + class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; + class I_Spotter_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; + class O_Soldier_sniper_base_F; + class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; + class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; + +}; + +#include "CfgAmmo.hpp" +#include "CfgMagazines.hpp" +#include "CfgWeapons.hpp" + +#include "ExplosivesUI.hpp" + +class CfgActions { + class None; + class Deactivate:None { + show = 0; + }; + class DeactivateMine:None { + show = 0; + }; +}; + +class AGM_Parameters_Boolean { + // Boolean Parameters (0/1) + AGM_Explosives_RequireSpecialist = 0; + AGM_Explosives_PunishNonSpecialists = 1; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_AddClacker.sqf b/TO_MERGE/agm/Explosives/functions/fn_AddClacker.sqf new file mode 100644 index 0000000000..5d203ef4a9 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_AddClacker.sqf @@ -0,0 +1,45 @@ +/* + Name: AGM_Explosives_fnc_AddClacker + + Author(s): + Garth de Wet (LH) + + Description: + Adds an explosive as a clacker item to the passed unit if the unit has a AGM_Clacker item. + + Parameters: + 0: OBJECT - unit + 1: OBJECT - Explosive + 2: STRING - Magazine + 3: ARRAY - Extra vars + + Returns: + Nothing + + Example: + [_unit, _explosive, "SatchelCharge_Remote_Mag", [ConfigFile >> "CfgAGM_Triggers" >> "Command"]] call AGM_Explosives_fnc_AddClacker; +*/ +private ["_unit", "_explosive", "_clacker", "_config", "_magazineClass", "_requiredItems", "_hasRequired"]; +_unit = _this select 0; +_explosive = _this select 1; +_magazineClass = _this select 2; +// Config is the last item in the list of passed in items. +_config = (_this select 3) select (count (_this select 3) - 1); + +_requiredItems = getArray(_config >> "requires"); +_hasRequired = true; +_detonators = [AGM_player] call AGM_Explosives_fnc_getDetonators; +{ + if !(_x in _detonators) exitWith{ + _hasRequired = false; + }; +} count _requiredItems; + +if !(_hasRequired) exitWith {}; +_config = ConfigFile >> "CfgMagazines" >> _magazineClass >> "AGM_Triggers" >> configName _config; + +_clacker = _unit getVariable ["AGM_Clacker", []]; +AGM_Explosives_PlacedCount = AGM_Explosives_PlacedCount + 1; +_clacker pushBack [_explosive, getNumber(_config >> "FuseTime"), format [localize "STR_AGM_Explosives_DetonateCode", AGM_Explosives_PlacedCount], _magazineClass, configName ((_this select 3) select (count (_this select 3) - 1))]; +_unit setVariable ["AGM_Clacker", _clacker, true]; +_unit sideChat format [localize "STR_AGM_Explosives_DetonateCode", AGM_Explosives_PlacedCount]; \ No newline at end of file diff --git a/TO_MERGE/agm/Explosives/functions/fn_CanDefuse.sqf b/TO_MERGE/agm/Explosives/functions/fn_CanDefuse.sqf new file mode 100644 index 0000000000..d7c423e734 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_CanDefuse.sqf @@ -0,0 +1,39 @@ +/* + Name: AGM_Explosives_fnc_CanDefuse + + Author: Garth de Wet (LH) + + Description: + Checks if a unit can defuse an explosive + + Parameters: + 0: OBJECT - unit + + Returns: + Nothing + + Example: + [player] call AGM_Explosives_fnc_CanDefuse; +*/ +private "_unit"; +_unit = _this select 0; +if (vehicle _unit != _unit || {!("AGM_DefusalKit" in (items _unit))}) exitWith {false}; +_isSpecialist = ([_unit] call AGM_Core_fnc_isEOD); + +if (AGM_Explosives_RequireSpecialist && {!_isSpecialist}) exitWith {false}; + +_timeBombCore = nearestObject [_unit, "TimeBombCore"]; +_mineBase = nearestObject [_unit, "MineBase"]; + +_distCore = _unit distance _timeBombCore; +_distBase = _unit distance _mineBase; +_distance = 10; +if (_distCore < _distBase) then { + _distance = _distCore; + AGM_Interaction_Target = _timeBombCore; +}else{ + _distance = _distBase; + AGM_Interaction_Target = _mineBase; +}; +if (isNil "_distance") exitWith {false}; +_distance < 4 diff --git a/TO_MERGE/agm/Explosives/functions/fn_DetonateExplosive.sqf b/TO_MERGE/agm/Explosives/functions/fn_DetonateExplosive.sqf new file mode 100644 index 0000000000..9832af6856 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_DetonateExplosive.sqf @@ -0,0 +1,61 @@ +/* + Name: AGM_Explosives_fnc_DetonateExplosive + + Author(s): + Garth de Wet (LH) + + Description: + Detonates a remote Explosive. + + Parameters: + 0: OBJECT - Unit detonating explosive + 1: NUMBER - Max range (-1 to ignore) + 2: ARRAY - Explosive + 0: OBJECT - Explosive + 1: NUMBER - Fuse Time + 3: BOOLEAN - Ignore Jammer + + Returns: + Nothing + + Example: + // Clacker + [player, 100, [Explosive, 1], false] call AGM_Explosives_fnc_DetonateExplosive; +*/ +private ["_item","_result", "_ignoreRange", "_ignoreJammer", "_unit", "_range"]; +_unit = _this select 0; +_range = _this select 1; +_item = _this select 2; +_ignoreRange = (_range == -1); +_ignoreJammer = true;//(_this select 4); // disabled while jammers aren't in place. +_result = true; + +if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false}; + +if (!_ignoreJammer) then { + { + if (((_x select 2) getVariable ["AGM_JammerEnabled",false]) and {(_x select 0) distance (_item select 0) <= (_x select 1)}) exitWith { + _result = false; + }; + } count AGM_Explosives_Jammers; +}; +if (!_result) exitWith{}; + +if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then { + private ["_exp", "_previousExp"]; + _previousExp = _item select 0; + _exp = getText (ConfigFile >> "CfgAmmo" >> typeof (_previousExp) >> "AGM_Explosive"); + if (_exp != "") then { + _exp = createVehicle [_exp, [0,0,15001], [], 0, "NONE"]; + _exp setDir (getDir _previousExp); + _item set [0, _exp]; + _pos = getPosASL _previousExp; + deleteVehicle _previousExp; + _exp setPosASL _pos; + }; +}; +_item spawn { + sleep (_this select 1); + (_this select 0) setDamage 1; +}; +_result diff --git a/TO_MERGE/agm/Explosives/functions/fn_HandleScrollWheel.sqf b/TO_MERGE/agm/Explosives/functions/fn_HandleScrollWheel.sqf new file mode 100644 index 0000000000..a25e544360 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_HandleScrollWheel.sqf @@ -0,0 +1,25 @@ +/* + Name: AGM_Explosives_fnc_HandleScrollWheel + + Author(s): + L-H + + Description: + Handles rotating of Explosives + + Parameters: + Number: Scroll amount + + Returns: + Boolean: Handled or not. + + Example: + 1.2 call AGM_Explosives_fnc_HandleScrollWheel; +*/ +private ["_obj"]; +if (isNull(AGM_Explosives_Setup) || {AGM_Modifier == 0} || !AGM_Explosives_pfeh_running) exitWith {false}; + +AGM_Explosives_Setup setDir ((getDir AGM_Explosives_Setup) + (_this*5)); +AGM_Explosives_TweakedAngle = AGM_Explosives_TweakedAngle + _this*5; + +true diff --git a/TO_MERGE/agm/Explosives/functions/fn_JammerInit.sqf b/TO_MERGE/agm/Explosives/functions/fn_JammerInit.sqf new file mode 100644 index 0000000000..20b2e72035 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_JammerInit.sqf @@ -0,0 +1,42 @@ +/* + Name: AGM_Explosives_fnc_JammerInit + + Author(s): + Garth de Wet (LH) + + Description: + + + Parameters: + 0:OBJECT - unit carrying + 1:OBJECT - Jammer + + Returns: + Nothing + + Example: + [player,JammerObject] call AGM_Explosives_fnc_JammerInit; +*/ +if (isClass (configFile >> "CfgVehicles" >> (typeof (_this select 1))) and {getNumber(configFile >> "CfgVehicles" >> (typeof (_this select 1)) >> "AGM_JammerRange") > 0}) then { + private ["_found"]; + _found = false; + { + if ((_x select 2) == (_this select 1)) exitWith { + _x set [0, (_this select 0)]; + _found = true; + }; + } count AGM_Explosives_Jammers; + if !(_found) then { + AGM_Explosives_Jammers pushBack [(_this select 0), getNumber(configFile >> "CfgVehicles" >> (typeof (_this select 1)) >> "AGM_JammerRange"),(_this select 1)]; + }; + publicVariable "AGM_Explosives_Jammers"; + private "_check"; + _check = (_this select 1) getVariable "AGM_JammerCharge"; + if (isNil "_check") then { + (_this select 1) setVariable ["AGM_JammerCharge", getNumber(configFile >> "CfgVehicles" >> (typeof (_this select 1)) >> "AGM_JammerMaxCharge"), true]; + }; + _check = (_this select 1) getVariable "AGM_JammerEnabled"; + if (isNil "_check") then { + (_this select 1) setVariable ["AGM_JammerEnabled", false, true]; + }; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_PlaceExplosive.sqf b/TO_MERGE/agm/Explosives/functions/fn_PlaceExplosive.sqf new file mode 100644 index 0000000000..08ba299450 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_PlaceExplosive.sqf @@ -0,0 +1,59 @@ +/* + Name: AGM_Explosives_fnc_PlaceExplosive + + Author(s): + Garth de Wet (LH) + + Description: + Places an explosive at the requested position + + Parameters: + 0: OBJECT - unit + 1: POSITION - Position to place explosive + 2: NUMBER - Rotation + 3: STRING - Magazine class + 4: Config - Config of trigger + 5: ARRAY - variables required for the trigger type + + Returns: + OBJECT: Placed explosive + + Example: + _explosive = [player, player modelToWorld [0,0.5, 0.1], 134, "SatchelCharge_Remote_Mag", "Command", []] call AGM_Explosives_fnc_PlaceExplosive; +*/ +private ["_pos", "_dir", "_magazineClass", "_ammo", "_triggerSpecificVars", "_unit", "_triggerConfig", "_explosive"]; +_unit = _this select 0; +_pos = _this select 1; +_dir = _this select 2; +_magazineClass = _this select 3; +_triggerConfig = _this select 4; +_triggerSpecificVars = _this select 5; +_setDir = true; +if (count _this > 6) then { + _setDir = _this select 6; +}; + +if (isNil "_triggerConfig") exitWith { + diag_log format ["AGM_Explosives: Error config not passed to PlaceExplosive: %1", _this]; + objNull +}; + +_magazineTrigger = ConfigFile >> "CfgMagazines" >> _magazineClass >> "AGM_Triggers" >> _triggerConfig; +_triggerConfig = ConfigFile >> "CfgAGM_Triggers" >> _triggerConfig; + +if (isNil "_triggerConfig") exitWith { + diag_log format ["AGM_Explosives: Error config not found in PlaceExplosive: %1", _this]; + objNull +}; + +_ammo = getText(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ammo"); +if (isText(_magazineTrigger >> "ammo")) then { + _ammo = getText (_magazineTrigger >> "ammo"); +}; +_triggerSpecificVars pushBack _triggerConfig; +_explosive = createVehicle [_ammo, _pos, [], 0, "NONE"]; +if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars] call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive}; +if (_setDir) then { + [[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], "AGM_Explosives_fnc_setPos"] call AGM_Core_fnc_execRemoteFnc; +}; +_explosive diff --git a/TO_MERGE/agm/Explosives/functions/fn_Place_Approve.sqf b/TO_MERGE/agm/Explosives/functions/fn_Place_Approve.sqf new file mode 100644 index 0000000000..d00ed213fd --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_Place_Approve.sqf @@ -0,0 +1,106 @@ +/* + Name: AGM_Explosives_fnc_Place_Approve + + Author(s): + Garth de Wet (LH) + + Description: + Approves placement of the explosive, releases the placement object for it to settle in a location suitable for the explosive to be created. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Explosives_fnc_Place_Approve; +*/ +if (AGM_Explosives_pfeh_running) then { + ["AGM_Explosives_Placement","OnEachFrame"] call BIS_fnc_removeStackedEventHandler; + AGM_Explosives_pfeh_running = false; +}; +private ["_mag", "_setup", "_player"]; +_setup = AGM_Explosives_Setup; +AGM_Explosives_Setup = objNull; +[AGM_Explosives_placer, "AGM_Explosives", false] call AGM_Core_fnc_setForceWalkStatus; +AGM_Explosives_placer = objNull; +_player = AGM_player; +[_player, "DefaultAction", _player getVariable ["AGM_Explosive_Place", -1]] call AGM_Core_fnc_removeActionEventHandler; +[_player, "MenuBack", _player getVariable ["AGM_Explosive_Cancel", -1]] call AGM_Core_fnc_removeActionEventHandler; +call AGM_Interaction_fnc_hideMouseHint; +if ((_setup getVariable ["AGM_Class", ""]) != "") then { + _dir = (getDir _setup); + if (_dir > 180) then { + _dir = _dir - 180; + } else { + _dir = 180 + _dir; + }; + _setup setVariable ["AGM_Dir", _dir]; + _player setVariable ["AGM_PlantingExplosive", true]; + _setup addEventHandler ["EpeContactStart", { + if (!((_this select 0) getVariable ["AGM_Handled", false])) then { + private ["_player", "_pos", "_attachTo"]; + _player = AGM_player; + _pos = getPosATL (_this select 0); + (_this select 0) enableSimulationGlobal false; + if (surfaceIsWater _pos) then { + _pos = getPosASL (_this select 0); + (_this select 0) setPosASL _pos; + }else{ + (_this select 0) setPosATL _pos; + }; + (_this select 0) setVariable ["AGM_Handled", true]; + _player setVariable ["AGM_PlantingExplosive", false]; + _attachTo = objNull; + if (!isNull (_this select 1) && {(_this select 1) isKindOf "AllVehicles"}) then { + _attachTo = (_this select 1); + }; + [(_this select 0),_attachTo, _pos] spawn { + private ["_mag", "_setup", "_dir", "_player"]; + _setup = _this select 0; + _player = AGM_player; + _mag = _setup getVariable ["AGM_Class", ""]; + _dir = _setup getVariable ["AGM_Dir", 0]; + + sleep getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "AGM_DelayTime"); + _explosive = [_player, _this select 2, _dir, _mag, _setup getVariable "AGM_Trigger", [_setup getVariable "AGM_Timer"], isNull (_this select 1)] call AGM_Explosives_fnc_PlaceExplosive; + deleteVehicle _setup; + if (!isNull(_explosive)) then { + _player RemoveMagazine _mag; + sleep 0.2; + if (!isNull (_this select 1)) then { + _explosive attachTo [(_this select 1)]; + _dir = _dir - (getDir (_this select 1)); + [[_explosive, _dir, 0], "AGM_Explosives_fnc_setPos"] call AGM_Core_fnc_execRemoteFnc; + }; + }; + }; + }; + }]; + _setup enableSimulationGlobal true; + _player playActionNow "MedicOther"; + [_setup] spawn { + private ["_setup", "_player"]; + _setup = _this select 0; + _player = AGM_player; + sleep 5; + if (!isNull _setup) then { + private ["_mag", "_dir", "_delayTime"]; + _mag = _setup getVariable ["AGM_Class", ""]; + _dir = _setup getVariable ["AGM_Dir", 0]; + _delayTime = (getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "AGM_DelayTime")) - 5; + if (_delayTime > 0) then { + sleep _delayTime; + }; + if (!isNull _setup) then { + [_player, GetPosATL _setup, _dir, _mag, _setup getVariable "AGM_Trigger", [_setup getVariable "AGM_Timer"], true] call AGM_Explosives_fnc_PlaceExplosive; + deleteVehicle _setup; + _player RemoveMagazine _mag; + _player setVariable ["AGM_PlantingExplosive", false]; + }; + }; + }; +}else{ + deleteVehicle _setup; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_Place_Cancel.sqf b/TO_MERGE/agm/Explosives/functions/fn_Place_Cancel.sqf new file mode 100644 index 0000000000..76e883d356 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_Place_Cancel.sqf @@ -0,0 +1,34 @@ +/* + Name: AGM_Explosives_fnc_Place_Cancel + + Author(s): + Garth de Wet (LH) + + Description: + Cancels placement of the explosive + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Explosives_fnc_Place_Cancel; +*/ +if (AGM_Explosives_pfeh_running) then { + ["AGM_Explosives_Placement","OnEachFrame"] call BIS_fnc_removeStackedEventHandler; + AGM_Explosives_pfeh_running = false; +}; +if (!isNull (AGM_Explosives_Setup)) then { + deleteVehicle AGM_Explosives_Setup; +}; +AGM_Explosives_Setup = objNull; +if (isNil {AGM_Explosives_placer}) then { + AGM_Explosives_placer = objNull; +}; +[AGM_Explosives_placer, "AGM_Explosives", false] call AGM_Core_fnc_setForceWalkStatus; +AGM_Explosives_placer = objNull; +call AGM_Interaction_fnc_hideMouseHint; +[AGM_player, "DefaultAction", AGM_player getVariable ["AGM_Explosive_Place", -1]] call AGM_Core_fnc_removeActionEventHandler; +[AGM_player, "MenuBack", AGM_player getVariable ["AGM_Explosive_Cancel", -1]] call AGM_Core_fnc_removeActionEventHandler; \ No newline at end of file diff --git a/TO_MERGE/agm/Explosives/functions/fn_SetupExplosive.sqf b/TO_MERGE/agm/Explosives/functions/fn_SetupExplosive.sqf new file mode 100644 index 0000000000..d5fedf00cb --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_SetupExplosive.sqf @@ -0,0 +1,65 @@ +/* + Name: AGM_Explosives_fnc_SetupExplosive + + Author(s): + Garth de Wet (LH) + + Description: + Starts the setup process for the passed explosive. + + Parameters: + 0: OBJECT - Unit placing explosive. + 1: STRING - Classname of explosive to place. (CfgMagazine class) + 2: Config - Trigger Config + 3: NUMBER - (optional) timer + + Returns: + Nothing + + Example: + [player, "SatchelCharge_Remote_Mag", "Command"] call AGM_Explosives_fnc_SetupExplosive; +*/ +_this spawn { + private ["_unit", "_class", "_config", "_timer"]; + _unit = _this select 0; + _class = _this select 1; + _config = _this select 2; + _timer = _this select 3; + AGM_Explosives_placer = _unit; + // Commented out due to the fact there is a distinction between who can deactivate mines and who can plant them in standard configs. + // Would require custom config entries (AGM_ExplosiveSpecialist/AGM_Specialist) which excludes custom mods. + //if (AGM_Explosives_RequireSpecialist && {!([_unit] call AGM_Core_fnc_isEOD)}) exitWith {}; + if (isNil "_config") then { + _config = getArray(ConfigFile >> "CfgMagazines" >> _class >> "AGM_Triggers" >> "AGM_Triggers") select 0; + }; + + AGM_Explosives_Setup = getText(ConfigFile >> "CfgMagazines" >> _class >> "AGM_SetupObject") createVehicleLocal [0,0,-10000]; + + AGM_Explosives_Setup enableSimulationGlobal false; + AGM_Explosives_Setup setVariable ["AGM_Class", _class]; + AGM_Explosives_Setup setVariable ["AGM_Trigger", _config]; + //AGM_Explosives_Setup setVariable ["AGM_Offset", GetArray(ConfigFile >> "CfgVehicles" >> typeof AGM_Explosives_Setup >> "AGM_Offset")]; + if (!isNil "_timer") then { + AGM_Explosives_Setup setVariable ["AGM_Timer", _timer]; + }; + + [_unit, "AGM_Explosives", true] call AGM_Core_fnc_setForceWalkStatus; + AGM_Explosives_TweakedAngle = 180; + ["AGM_Explosives_Placement","OnEachFrame", { + private "_player"; + _player = AGM_player; + if (AGM_Explosives_placer != _player) exitWith { + call AGM_Explosives_fnc_Place_Cancel; + }; + AGM_Explosives_pfeh_running = true; + _pos = (ASLtoATL eyePos _player) vectorAdd (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]); + //_pos = _pos vectorAdd ((VectorDir AGM_Explosives_setup) vectorCrossProduct (AGM_Explosives_setup getVariable ["AGM_Offset", [0,0,0]])); + AGM_Explosives_Setup setPosATL _pos; + if (AGM_Modifier == 0) then { + AGM_Explosives_Setup setDir (AGM_Explosives_TweakedAngle + getDir _player); + }; + }] call BIS_fnc_addStackedEventHandler; + [localize "STR_AGM_Explosives_PlaceAction", localize "STR_AGM_Explosives_CancelAction",localize "STR_AGM_Explosives_ScrollAction"] call AGM_Interaction_fnc_showMouseHint; + _unit setVariable ["AGM_Explosive_Place", [_unit, "DefaultAction", {AGM_Explosives_pfeh_running AND !isNull (AGM_Explosives_setup)}, {call AGM_Explosives_fnc_Place_Approve;}] call AGM_Core_fnc_AddActionEventHandler]; + _unit setVariable ["AGM_Explosive_Cancel", [_unit, "MenuBack", {AGM_Explosives_pfeh_running AND !isNull (AGM_Explosives_setup)}, {call AGM_Explosives_fnc_Place_Cancel;}] call AGM_Core_fnc_AddActionEventHandler]; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_StartDefuse.sqf b/TO_MERGE/agm/Explosives/functions/fn_StartDefuse.sqf new file mode 100644 index 0000000000..292244209e --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_StartDefuse.sqf @@ -0,0 +1,65 @@ +/* + Name: AGM_Explosives_fnc_StartDefuse + + Author: Garth de Wet (LH) + + Description: + Starts defusing an explosive + + Parameters: + 0: OBJECT - Unit to defuse explosive + 1: OBJECT - Target explosive + + Returns: + Nothing + + Example: + [player, AGM_Interaction_Target] call AGM_Explosives_fnc_StartDefuse; +*/ +private ["_unit","_target"]; +_unit = _this select 0; +_target = _this select 1; + +// [_specialist, _target] call _fnc_DefuseTime; +_fnc_DefuseTime = { + _target = _this select 1; + + _defuseTime = 5; + if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "AGM_DefuseTime")) then { + _defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "AGM_DefuseTime"); + }; + if (!(_this select 0) && {AGM_Explosives_PunishNonSpecialists}) then { + _defuseTime = _defuseTime * 1.5; + }; + _defuseTime +}; +_actionToPlay = "MedicOther"; +if (STANCE _unit == "Prone") then { + _actionToPlay = "PutDown"; +}; + +if (AGM_player != _unit) then { + // If the unit is a player, call the function on the player. + if (isPlayer _unit) then { + [[_unit, _target], "AGM_Explosives_fnc_StartDefuse", _unit] call AGM_Core_fnc_execRemoteFnc; + } else { + [_unit, _target, [[_unit] call AGM_Core_fnc_isEOD, _target] call _fnc_DefuseTime] spawn { + (_this select 0) playActionNow _actionToPlay; + (_this select 0) disableAI "MOVE"; + (_this select 0) disableAI "TARGET"; + sleep (_this select 2); + [(_this select 0), (_this select 1)] call AGM_Explosives_fnc_DefuseExplosive; + (_this select 0) enableAI "MOVE"; + (_this select 0) enableAI "TARGET"; + }; + }; +} else { + _unit playActionNow _actionToPlay; + if (AGM_Explosives_RequireSpecialist) then { + if ([_unit] call AGM_Core_fnc_isEOD) then { + [[true, _target] call _fnc_DefuseTime, [_unit,_target], "AGM_Explosives_fnc_DefuseExplosive", localize "STR_AGM_Explosives_DefusingExplosive"] call AGM_Core_fnc_progressBar; + }; + } else { + [[([_unit] call AGM_Core_fnc_isEOD), _target] call _fnc_DefuseTime, [_unit,_target], "AGM_Explosives_fnc_DefuseExplosive", localize "STR_AGM_Explosives_DefusingExplosive"] call AGM_Core_fnc_progressBar; + }; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_StartTimer.sqf b/TO_MERGE/agm/Explosives/functions/fn_StartTimer.sqf new file mode 100644 index 0000000000..b07d86bd3c --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_StartTimer.sqf @@ -0,0 +1,29 @@ +/* + Name: AGM_Explosives_fnc_startTimer + + Author(s): + Garth de Wet (LH) + + Description: + Starts a timer for an explosive. + + Parameters: + 0: OBJECT - Explosive + 1: NUMBER - time till detonation + + Returns: + Nothing + + Example: + [_explosive, 10] call AGM_Explosives_fnc_startTimer; +*/ +_this spawn { + private ["_explosive", "_timer"]; + _explosive = _this select 0; + _timer = _this select 1; + + sleep _timer; + if (!isNull _explosive) then { + [_explosive, -1, [_explosive, 0], true] call AGM_Explosives_fnc_DetonateExplosive; + }; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_TriggerType.sqf b/TO_MERGE/agm/Explosives/functions/fn_TriggerType.sqf new file mode 100644 index 0000000000..fb19da9f12 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_TriggerType.sqf @@ -0,0 +1,27 @@ +/* + Name: AGM_Explosives_fnc_TriggerType + + Author(s): + Garth de Wet (LH) + + Description: + Gets the types of triggers associated with the explosive + + Parameters: + 0: String - Explosive magazine + + Returns: + ARRAY + + Example: + _supports = ["SatchelCharge_Remote_Mag"] call AGM_Explosives_fnc_TriggerType; +*/ +private "_result"; +_result = []; +_config = getArray (ConfigFile >> "CfgMagazines" >> (_this select 0) >> "AGM_Triggers" >> "AGM_Triggers"); +_count = count _config; + +for "_index" from 0 to (_count - 1) do { + _result set [_index, ConfigFile >> "CfgAGM_Triggers" >> (_config select _index)]; +}; +_result diff --git a/TO_MERGE/agm/Explosives/functions/fn_defuseExplosive.sqf b/TO_MERGE/agm/Explosives/functions/fn_defuseExplosive.sqf new file mode 100644 index 0000000000..d291b6535f --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_defuseExplosive.sqf @@ -0,0 +1,27 @@ +/* + Name: AGM_Explosives_fnc_DefuseExplosive + + Author: Garth de Wet (LH) + + Description: + Defuses an Explosive + + Parameters: + 0: OBJECT - unit + 1: OBJECT - Explosive + + Returns: + Nothing + + Example: + [player, AGM_Interaction_Target] call AGM_Explosives_fnc_DefuseExplosive; +*/ +private ["_unit", "_explosive"]; +_unit = _this select 0; +_explosive = _this select 1; + +if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "AGM_explodeOnDefuse") == 1) exitWith { + [_unit, -1, [_explosive, 1], true] call AGM_Explosives_fnc_DetonateExplosive; +}; + +_unit action ["Deactivate", _unit, _explosive]; diff --git a/TO_MERGE/agm/Explosives/functions/fn_getDetonators.sqf b/TO_MERGE/agm/Explosives/functions/fn_getDetonators.sqf new file mode 100644 index 0000000000..b770a9938e --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_getDetonators.sqf @@ -0,0 +1,31 @@ +/* + Name: AGM_Explosives_fnc_getDetonators + + Author(s): + Garth de Wet (LH) + + Description: + Gets all the detonators of a specific unit + + Parameters: + 0: OBJECT - Unit to get detonators of + + Returns: + ARRAY - Configs of all detonators. + + Example: + _detonators = [player] call AGM_Explosives_fnc_getDetonators; +*/ +private ["_unit", "_items", "_result", "_config"]; +_unit = _this select 0; +_items = (items _unit); +_result = []; + +{ + _config = ConfigFile >> "CfgWeapons" >> _x; + if (getNumber (_config >> "AGM_Detonator") == 1) then { + _result pushBack _x; + }; +} forEach _items; + +_result diff --git a/TO_MERGE/agm/Explosives/functions/fn_getPlacedExplosives.sqf b/TO_MERGE/agm/Explosives/functions/fn_getPlacedExplosives.sqf new file mode 100644 index 0000000000..0747693dd1 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_getPlacedExplosives.sqf @@ -0,0 +1,49 @@ +/* + Name: AGM_Explosives_fnc_getPlacedExplosives + + Author: Garth de Wet (LH) + + Description: + Gets all placed explosives, whether Clacker based or not. + + Parameters: + 0: OBJECT - unit + 1: STRING - (OPTIONAL) Trigger classname for filter. + + Returns: + Array: Explosives. + + Example: + _allExplosives = [player] call AGM_Explosives_fnc_getPlacedExplosives; + _deadmanExplosives = [player, "DeadManSwitch"] call AGM_Explosives_fnc_getPlacedExplosives; +*/ +private ["_unit", "_clackerList", "_adjustedList", "_list", "_filter"]; +_unit = _this select 0; +_filter = nil; +if (count _this > 1) then { + _filter = ConfigFile >> "CfgAGM_Triggers" >> (_this select 1); +}; +_clackerList = []; +_adjustedList = false; +_clackerList = _unit getVariable ["AGM_Clacker", []]; +_list = []; +{ + if isNull (_x select 0) then { + _clackerList set [_foreachIndex, "X"]; + _adjustedList = true; + } else { + if (isNil "_filter" || {(ConfigFile >> "CfgAGM_Triggers" >> (_x select 4)) == _filter}) then { + _list pushBack _x; + }; + }; +} foreach _clackerList; +if (_adjustedList) then { + _clackerList = _clackerList - ["X"]; + if (count _clackerList == 0) then { + _unit SetVariable ["AGM_Clacker", nil, true]; + } else { + _unit SetVariable ["AGM_Clacker", _clackerList, true]; + }; +}; + +_list \ No newline at end of file diff --git a/TO_MERGE/agm/Explosives/functions/fn_hasExplosives.sqf b/TO_MERGE/agm/Explosives/functions/fn_hasExplosives.sqf new file mode 100644 index 0000000000..491bb8927d --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_hasExplosives.sqf @@ -0,0 +1,28 @@ +/* + Name: AGM_Explosives_fnc_hasExplosives + + Author: Garth de Wet (LH) + + Description: + Whether the passed unit has any explosives on them. + + Parameters: + 0: OBJECT - unit + + Returns: + BOOLEAN - True if the unit has explosives. + + Example: + _hasExplosives = [player] call AGM_Explosives_fnc_hasExplosives; +*/ +private ["_unit", "_result", "_magazines"]; +_result = false; +_unit = _this select 0; +_magazines = magazines _unit; +{ + if (getNumber (ConfigFile >> "CfgMagazines" >> _x >> "AGM_Placeable") == 1) exitWith { + _result = true; + }; +} count _magazines; + +_result diff --git a/TO_MERGE/agm/Explosives/functions/fn_hasPlacedExplosives.sqf b/TO_MERGE/agm/Explosives/functions/fn_hasPlacedExplosives.sqf new file mode 100644 index 0000000000..5932ee20ad --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_hasPlacedExplosives.sqf @@ -0,0 +1,18 @@ +/* + Name: AGM_Explosives_fnc_hasPlacedExplosives + + Author: Garth de Wet (LH) + + Description: + Whether the passed unit has placed any explosives or has a clacker that was used when explosives were placed. + + Parameters: + 0: OBJECT - unit + + Returns: + BOOLEAN - True if the unit has explosives. + + Example: + _hasPLacedExplosives = [player] call AGM_Explosives_fnc_hasPlacedExplosives; +*/ +(count (_this call AGM_Explosives_fnc_getPlacedExplosives) > 0) \ No newline at end of file diff --git a/TO_MERGE/agm/Explosives/functions/fn_initialise.sqf b/TO_MERGE/agm/Explosives/functions/fn_initialise.sqf new file mode 100644 index 0000000000..f1186f6714 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_initialise.sqf @@ -0,0 +1,73 @@ +/* + Name: AGM_Explosives_fnc_Initialise + + Author(s): + Garth de Wet (LH) + + Description: + Initialises explosive behaviour. + + Parameters: + None + + Returns: + None + + Example: + None +*/ +if !(hasInterface) exitWith {}; +AGM_Explosives_PlacedCount = 0; +AGM_Explosives_Setup = objNull; +AGM_Explosives_pfeh_running = false; +AGM_Explosives_null = [] spawn { + waitUntil {sleep 0.356;!isNull(player)}; + [{(_this select 0) call AGM_Explosives_fnc_HandleScrollWheel;}] call AGM_Core_fnc_addScrollWheelEventHandler; + player addEventHandler ["Respawn", { + [(_this select 0)] call AGM_Explosives_fnc_initialiseUnit; + }]; + player addEventHandler ["Killed", { + private "_deadman"; + call AGM_Explosives_fnc_Place_Cancel; + _deadman = [(_this select 0), "DeadManSwitch"] call AGM_Explosives_fnc_getPlacedExplosives; + { + [(_this select 0), -1, _x, true] call AGM_Explosives_fnc_DetonateExplosive; + } count _deadman; + }]; + player addEventHandler ["Take", { + private ["_item", "_getter", "_giver", "_config"]; + _item = _this select 2; + _getter = _this select 0; + _giver = _this select 1; + + _config = ConfigFile >> "CfgWeapons" >> _item; + if (isClass _config && {getNumber(_config >> "AGM_Detonator") == 1}) then { + private ["_clackerItems"]; + _clackerItems = _giver getVariable ["AGM_Clacker", []]; + _getter SetVariable ["AGM_Clacker", (_getter getVariable ["AGM_Clacker", []]) + _clackerItems, true]; + + _detonators = [_giver] call AGM_Explosives_fnc_getDetonators; + if (count _detonators == 0) then { + _giver setVariable ["AGM_Clacker", nil, true]; + }; + }; + }]; + player addEventHandler ["Put", { + private ["_item", "_getter", "_giver", "_config"]; + _item = _this select 2; + _getter = _this select 1; + _giver = _this select 0; + + _config = ConfigFile >> "CfgWeapons" >> _item; + if (isClass _config && {getNumber(_config >> "AGM_Detonator") == 1}) then { + private ["_clackerItems"]; + _clackerItems = _giver getVariable ["AGM_Clacker", []]; + _getter SetVariable ["AGM_Clacker", (_getter getVariable ["AGM_Clacker", []]) + _clackerItems, true]; + + _detonators = [_giver] call AGM_Explosives_fnc_getDetonators; + if (count _detonators == 0) then { + _giver setVariable ["AGM_Clacker", nil, true]; + }; + }; + }]; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_isSpecialist.sqf b/TO_MERGE/agm/Explosives/functions/fn_isSpecialist.sqf new file mode 100644 index 0000000000..99ab01dbc4 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_isSpecialist.sqf @@ -0,0 +1,26 @@ +/* + Name: AGM_Explosives_fnc_isSpecialist + + Author: Garth de Wet (LH) + + Description: + Checks whether the passed unit is an explosive specialist. + Either through config entry: "canDeactivateMines" + or + unit setVariable ["AGM_isEOD", true] + + Parameters: + OBJECT - Unit to check if is a specialist + + Returns: + BOOLEAN + + Example: + _isSpecialist = player call AGM_Explosives_fnc_isSpecialist; +*/ +private "_isSpecialist"; +_isSpecialist = _this getVariable "AGM_isEOD"; +if (isNil "_isSpecialist") then { + _isSpecialist = getNumber(ConfigFile >> "CfgVehicles" >> typeof _this >> "canDeactivateMines") == 1; +}; +_isSpecialist diff --git a/TO_MERGE/agm/Explosives/functions/fn_module.sqf b/TO_MERGE/agm/Explosives/functions/fn_module.sqf new file mode 100644 index 0000000000..2b1a45ac4f --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_module.sqf @@ -0,0 +1,27 @@ +/* + Name: AGM_Explosives_fnc_module + + Author: Garth de Wet (LH) + + Description: + Initialises the explosives module + + Parameters: + Things + + Returns: + Nothing + + Example: + +*/ +if !(isServer) exitWith {}; +_logic = _this select 0; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +[_logic, "AGM_Explosives_RequireSpecialist", "RequireSpecialist" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Explosives_PunishNonSpecialists", "PunishNonSpecialists" ] call AGM_Core_fnc_readBooleanParameterFromModule; + +diag_log text "[AGM]: Explosive Module Initialized."; diff --git a/TO_MERGE/agm/Explosives/functions/fn_openDetonateUI.sqf b/TO_MERGE/agm/Explosives/functions/fn_openDetonateUI.sqf new file mode 100644 index 0000000000..0fcec6a262 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_openDetonateUI.sqf @@ -0,0 +1,61 @@ +/* + Name: AGM_Explosives_fnc_openDetonateUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for explosive detonation selection + + Parameters: + 0: OBJECT - unit + 0: STRING - Classname of detonator + + Returns: + Nothing + + Example: + [player, "AGM_M26_Clacker"] call AGM_Explosives_fnc_openDetonateUI; +*/ +private ["_unit","_result", "_item"]; +call AGM_Interaction_fnc_hideMenu; +_unit = _this select 0; +_detonator = _this select 1; +_range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "AGM_Range"); + +_result = [_unit] call AGM_Explosives_fnc_getPlacedExplosives; +_actions = [localize "STR_AGM_Explosives_DetonateMenu", localize "STR_AGM_Explosives_Detonate"] call AGM_Interaction_fnc_prepareSelectMenu; +_count = 0; +{ + if (!isNull(_x select 0)) then { + _required = getArray (ConfigFile >> "CfgAGM_Triggers" >> (_x select 4) >> "requires"); + if (_detonator in _required) then { + _item = ConfigFile >> "CfgMagazines" >> (_x select 3); + _actions = [ + _actions, + _x select 2, + getText(_item >> "picture"), + [_foreachIndex, _range] + ] call AGM_Interaction_fnc_AddSelectableItem; + _count = _count + 1; + }; + }; +} foreach _result; +if (_count > 0) then { + [ + _actions, + { + [ + AGM_player, + [_this select 1] call AGM_Core_fnc_toNumber, + (AGM_player getVariable ["AGM_Clacker", []]) select ([_this select 0] call AGM_Core_fnc_toNumber), + false + ] call AGM_Explosives_fnc_DetonateExplosive; + call AGM_Interaction_fnc_hideMenu; + }, + {[AGM_player] call AGM_Explosives_fnc_openTransmitterUI;} + ] call AGM_Interaction_fnc_openSelectMenu; +}else{ + call AGM_Interaction_fnc_hideMenu; + [AGM_player] call AGM_Explosives_fnc_openTransmitterUI; + [localize "STR_AGM_Explosives_NoExplosivesAvailable"] call AGM_Core_fnc_displayTextStructured; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_openPlaceUI.sqf b/TO_MERGE/agm/Explosives/functions/fn_openPlaceUI.sqf new file mode 100644 index 0000000000..0f33dc6b20 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_openPlaceUI.sqf @@ -0,0 +1,58 @@ +/* + Name: AGM_Explosives_fnc_openPlaceUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for explosive placement selection + + Parameters: + 0: OBJECT - unit + + Returns: + Nothing + + Example: + [player] call AGM_Explosives_fnc_openPlaceUI; +*/ +private ["_unit","_mags", "_item", "_index", "_actions"]; +_unit = _this select 0; +call AGM_Explosives_fnc_Place_Cancel; + +_mags = magazines _unit; +_list = []; +_itemCount = []; +{ + _item = ConfigFile >> "CfgMagazines" >> _x; + if (getNumber(_item >> "AGM_Placeable") == 1) then { + _index = _list find _item; + if (_index != -1) then { + _itemCount set [_index, (_itemCount select _index) + 1]; + } else { + _list pushBack _item; + _itemCount pushBack 1; + }; + }; +} forEach _mags; +_actions = [localize "STR_AGM_Explosives_PlaceMenu", localize "STR_AGM_Explosives_Place"] call AGM_Interaction_fnc_prepareSelectMenu; +{ + _actions = [ + _actions, + format [getText(_x >> "displayName") + " (%1)", _itemCount select _foreachIndex], + getText(_x >> "picture"), + configName _x + ] call AGM_Interaction_fnc_AddSelectableItem; +} foreach _list; + +[ + _actions, + { + [_this] call AGM_Explosives_fnc_openTriggerSelectionUI; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then { + "AGM_Explosives" call AGM_Interaction_fnc_openMenuSelf; + }; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Explosives/functions/fn_openTimerSetUI.sqf b/TO_MERGE/agm/Explosives/functions/fn_openTimerSetUI.sqf new file mode 100644 index 0000000000..2248b68fdb --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_openTimerSetUI.sqf @@ -0,0 +1,27 @@ +/* + Name: AGM_Explosives_fnc_openTimerSetUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for timer setting of an explosive + + Parameters: + 0: String - Magazine + + Returns: + Nothing + + Example: + [player] call AGM_Explosives_fnc_openTimerSetUI; +*/ +private ["_mag"]; +_mag = _this select 0; +createDialog "RscAGM_SelectTimeUI"; +sliderSetRange [8845, 5, 900]; // 5seconds - 15minutes +sliderSetPosition [8845, 30]; + +buttonSetAction [8860, format["[AGM_player, '%1', 'Timer', floor(sliderPosition 8845)] call AGM_Explosives_fnc_SetupExplosive;closeDialog 0;", _mag]]; +buttonSetAction [8855, format["['%1'] call AGM_Explosives_fnc_openTriggerSelectionUI;", _mag]]; + +ctrlSetText [8870, format[localize "STR_AGM_Explosives_TimerMenu",0, 30]]; diff --git a/TO_MERGE/agm/Explosives/functions/fn_openTransmitterUI.sqf b/TO_MERGE/agm/Explosives/functions/fn_openTransmitterUI.sqf new file mode 100644 index 0000000000..5e18912d3e --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_openTransmitterUI.sqf @@ -0,0 +1,51 @@ +/* + Name: AGM_Explosives_fnc_openTransmitterUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for selecting the transmitter + + Parameters: + 0: OBJECT - Unit + + Returns: + Nothing + + Example: + [player] call AGM_Explosives_fnc_openTransmitterUI; +*/ +private ["_items", "_unit", "_count", "_actions", "_config"]; +_unit = _this select 0; +_items = (items _unit); + +_actions = [localize "STR_AGM_Explosives_TriggerMenu", localize "STR_AGM_Explosives_SelectTrigger"] call AGM_Interaction_fnc_prepareSelectMenu; +_detonators = [_unit] call AGM_Explosives_fnc_getDetonators; +{ + _config = ConfigFile >> "CfgWeapons" >> _x; + _actions = [ + _actions, + getText(_config >> "displayName"), + getText(_config >> "picture"), + _x + ] call AGM_Interaction_fnc_AddSelectableItem; +} count _detonators; + +if (count _detonators == 0) then { + call AGM_Interaction_fnc_hideMenu; + "AGM_Explosives" call AGM_Interaction_fnc_openMenuSelf; + [format[localize "STR_AGM_Explosives_NoTriggersAvailable", "player"]] call AGM_Core_fnc_displayTextStructured; +}else{ + [ + _actions, + { + [AGM_player, _this] call AGM_Explosives_fnc_openDetonateUI; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then { + "AGM_Explosives" call AGM_Interaction_fnc_openMenuSelf; + }; + } + ] call AGM_Interaction_fnc_openSelectMenu; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_openTriggerSelectionUI.sqf b/TO_MERGE/agm/Explosives/functions/fn_openTriggerSelectionUI.sqf new file mode 100644 index 0000000000..31a35bd499 --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_openTriggerSelectionUI.sqf @@ -0,0 +1,56 @@ +/* + Name: AGM_Explosives_fnc_openTriggerSelectionUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for explosive trigger selection + + Parameters: + 0: String - explosive magazine + + Returns: + Nothing + + Example: + [lbData [8866, lbCurSel 8866]] call AGM_Explosives_fnc_openTriggerSelectionUI; +*/ +private ["_magazine", "_hasRequiredItems","_triggerTypes", "_actions", "_detonators", "_required", "_magTriggers"]; +_magazine = _this select 0; +_detonators = [AGM_player] call AGM_Explosives_fnc_getDetonators; + +_triggerTypes = [_magazine] call AGM_Explosives_fnc_TriggerType; +_magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "AGM_Triggers"; +_actions = [localize "STR_AGM_Explosives_TriggerMenu", localize "STR_AGM_Explosives_SelectTrigger"] call AGM_Interaction_fnc_prepareSelectMenu; +_count = 0; +{ + _required = getArray (_x >> "requires"); + _hasRequiredItems = true; + { + if !(_x in _detonators) exitWith { + _hasRequiredItems = false; + }; + } count _required; + if (_hasRequiredItems) then { + _actions = [ + _actions, + if(isText(_magTriggers >> configName _x >> "displayName"))then{getText(_magTriggers >> configName _x >> "displayName")}else{getText(_x >> "displayName")}, + if(isText(_magTriggers >> configName _x >> "picture"))then{getText(_magTriggers >> configName _x >> "picture")}else{getText(_x >> "picture")}, + [configName _x, _magazine] + ] call AGM_Interaction_fnc_AddSelectableItem; + _count = _count + 1; + }; +} count _triggerTypes; + +if (_count == 0) then { + [AGM_player] call AGM_Explosives_fnc_openPlaceUI; + [format[localize "STR_AGM_Explosives_NoTriggersAvailable", getText(configFile >> "CfgMagazines" >> _magazine >> "DisplayName")]] call AGM_Core_fnc_displayTextStructured; +}else{ + [ + _actions, + { + [_this select 1, _this select 0] call AGM_Explosives_fnc_selectTrigger; + }, + {[AGM_player] call AGM_Explosives_fnc_openPlaceUI;} + ] call AGM_Interaction_fnc_openSelectMenu; +}; diff --git a/TO_MERGE/agm/Explosives/functions/fn_selectTrigger.sqf b/TO_MERGE/agm/Explosives/functions/fn_selectTrigger.sqf new file mode 100644 index 0000000000..ed4bfb755c --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_selectTrigger.sqf @@ -0,0 +1,29 @@ +/* + Name: AGM_Explosives_fnc_selectTrigger + + Author: Garth de Wet (LH) + + Description: + Selects a trigger for an explosive. + + Parameters: + 0: String - Magazine + 1: String - trigger index in AGM_triggers of magazine class + + Returns: + Nothing + + Example: + ["SatchelCharge_Remote_Mag","Timer"] call AGM_Explosives_fnc_selectTrigger; +*/ +private ["_magazine","_trigger"]; +closeDialog 0; +_magazine = _this select 0; +_trigger = _this select 1; +_config = ConfigFile >> "CfgAGM_Triggers" >> _trigger; +call AGM_Interaction_fnc_hideMenu; + +// If the onSetup function returns true, it is handled elsewhere +if (isText(_config >> "onSetup") && {[_magazine] call compile getText (_config >> "onSetup")}) exitWith {}; + +[AGM_player, _magazine, _trigger] call AGM_Explosives_fnc_SetupExplosive; diff --git a/TO_MERGE/agm/Explosives/functions/fn_setPos.sqf b/TO_MERGE/agm/Explosives/functions/fn_setPos.sqf new file mode 100644 index 0000000000..88f727e1fe --- /dev/null +++ b/TO_MERGE/agm/Explosives/functions/fn_setPos.sqf @@ -0,0 +1,27 @@ +/* + Name: AGM_Explosives_fnc_SetPos + + Author(s): + Garth de Wet (LH) + + Description: + Sets the Dir and pitch + + Parameters: + 0: OBJECT - Object + 1: NUMBER - Direction + 2: NUMBER - Pitch + + Returns: + Nothing + + Example: + [_explosive, 150, 90] call AGM_Explosives_fnc_SetPos; +*/ +private "_ex"; +_ex=_this select 0; +_ex setDir (_this select 1); +if ((_this select 2) != 0) then { + [_ex, _this select 2, 0] call BIS_fnc_setPitchBank; +}; +//_ex setVectorUp (surfaceNormal _pos); diff --git a/TO_MERGE/agm/Explosives/stringtable.xml b/TO_MERGE/agm/Explosives/stringtable.xml new file mode 100644 index 0000000000..7ca6bf5870 --- /dev/null +++ b/TO_MERGE/agm/Explosives/stringtable.xml @@ -0,0 +1,494 @@ + + + + + + Explosives >> + Sprengstoffe >> + Explosivos >> + Ładunki wybuchowe >> + Explosifs >> + Výbušniny >> + Esplosivi >> + Robbanóanyagok >> + Explosivos >> + Взрывчатка >> + + + Place >> + Platzieren >> + Colocar >> + Umieść >> + Placer >> + Položit >> + Piazza >> + Lerakás >> + Colocar >> + Установить >> + + + Detonate >> + Zünden >> + Detonar >> + Detonuj >> + Mise à feu >> + Odpálit >> + Detona >> + Robbantás >> + Detonar >> + Подрыв >> + + + Explosive code: %1 + Sprengstoffcode: %1 + Código del explosivo: %1 + Kod ładunku: %1 + Code explosif: %1 + Kód výbušniny: %1 + Codice dell'esplosivo : %1 + Robbanóanyag kódja: %1 + Código do explosivo: %1 + Взрывная код: %1 + + + Place + Platzieren + Colocar + Umieść + Placer + Položit + Piazza + Elhelyezés + Colocar + Положить + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Annulla + Mégsem + Cancelar + Отмена + + + + Modifier, rotates + + Modifikator, drehen + + Modificador, girar + + Modificateur, tourner + + Modificatore, rotazione + + Otočit + + Változtatás, forgatás + + modyfikator, obracanie + + Modificador, rotaciona + + Bращать + + + Turn On Thor III + Thor III aktivieren + Encender Thor III + Włącz Thor III + Allumer Thor III + Zapnout Thor III + Accendi Thor III + Thor III bekapcsolása + Ativar Thor III + Активировать Thor III + + + Turn Off Thor III + Thor III deaktivieren + Apagar Thor III + Wyłącz Thor III + Éteindre Thor III + Vypnout Thor III + Spegni Thor III + Thor III kikapcsolása + Desativar Thor III + Деактивировать Thor III + + + Cellphone + Mobiltelefon + Télefono móvil + Telefon komórkowy + Téléphone Portable + Telefon + Cellulare + Mobil + Celular + Сотовый телефон + + + Used to remotely trigger explosives + Wird benutzt um Sprengstoffe fernzuzünden + Usado para detonar remotamente explosivos + Używany do zdalnego detonowania ładunków wybuchowych + Utilisé pour déclencher des explosifs à distance + Používaný ke vzdálenému odpalování výbušnin + Usato per l'attivazione a distanza degli esplosivi + Robbanóanyagok távoli robbantásához + Usado para acionar explosivos remotamente + Используется для удаленного запуска взрывчатку + + + M57 Firing Device + M57 Zündvorrichtung + Dispositivo de detonación M57 + Zapalnik M57 + M57 Dispositif de mise à feu + M57 Odpalovací Zařízení + Detonatore M57 + M57 Detonátor + M57 Dispositivo de Detonação + Взрыватель M57 + + + Used to remotely trigger explosives + Wird benutzt um Sprengstoffe fernzuzünden + Usado para detonar remotamente explosivos + Używany do zdalnego detonowania ładunków wybuchowych + Utilisé pour déclencher des explosifs à distance + Použévané ke vzdálenému odpalování výbušnin + Usato per l'attivazione a distanza degli esplosivi + Robbanóanyagok távoli robbantásához + Usado para acionar explosivos remotamente + Используется для удаленного запуска взрывчатку + + + M26 Firing Device + M26 Zündvorrichtung + Dispositivo de detonación MK26 + Zapalnik M26 + M26 Dispositif de mise à feu + M26 Odpalovací Zařízení + Detonatore M26 + M26 Detonátor + M26 Dispositivo de Detonação + Взрыватель M26 + + + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + M152 RAMS + + + Defusal Kit + Entschärfungskit + Kit de desactivación + Zestaw do rozbrajania + Kit de désamorçage + Zneškodňovací sada + Kit E.O.D. + Hatástalanító felszerelés + Kit de desarme + Разминирование комплект + + + Allows defusing of explosives + Erlaubt die Entschärfung von Sprengstoffen + Permite desactivar explosivos + Umożliwia rozbrajanie ładunków wybuchowych + Permet de désamorçer des explosifs + Dovoluje zneškodňování výbušnin + Consente la disattivazione degli ordigni esplosivi + Robbanóanyagok hatástalanításához + Permite o desarme de explosivos + Allows defusing of explosives + + + Add to Speed Dial + Zur Schnellauswahl hinzufügen + Agregar a marcado rápido + Dodaj do szybkiego wybierania + Ajouter à la composition rapide + Přidat jako rychlou volbu + Aggiungi alla selezione rapida + Hozzáadás gyorshíváshoz + Adicionar à ligação rápida + Добавить в ускоренный набор + + + Clear + Löschen + Borrar + Usuń + Désamorçé + Čistý + Libera + Törlés + Limpar + Pассеиваться + + + Dial + Wählen + Marcar + Wybierz mumer + Composer + Vytočit + Composizione numero + Tárcsázás + Discar + Hабрать + + + Up + Hoch + Arriba + W górę + Haut + Nahoru + Sopra + Fel + Cima + Поднять + + + Down + Runter + Abajo + W dół + Bas + Dolu + Sotto + Le + Baixo + Опустить + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Annulla + Mégsem + Cancelar + Отмена + + + Detonate Menu + "Zünden"-Menü + Menú de detonación + Menu detonowania + Menu de mise à feu + Menu Detonace + Menù di detonazione + Robbantás menü + Menu de detonação + Меню Подрыв + + + Place Menu + "Platzieren"-Menü + Menú de colocación + Menu umieszczania + Menu Placement + Menu Umístění + Menù di collocamento + Lerakás menü + Menu de posicionamento + Меню Установить + + + Defuse + Entschärfen + Desactivar + Rozbrój + Désamorçer + Zneškodnit + Disinnesca + Hatástalanítás + Desarmar + Обезвредить + + + Defusing Explosive... + Entschärfe Sprengstoff... + Desactivando explosivo... + Rozbrajanie ładunku... + Désamorçage des explosifs... + Zneškodňuji Výbušninu... + Esposivo in fase di disattivazione... + Robbanóanyag hatástalaníása... + Desarmando Explosivo... + Обезвреживание... + + + Timer + Zeitzünder + Temporizador + Czasomierz + Retard + Časovač + Cronometro + Időzített + Timer + Временной + + + Time: %1m %2s + Zeit: %1m %2s + Tiempo: %1m %2s + Czas: %1m %2s + Temps : %1m %2s + Čas: %1m %2s + Tempo : %1m %2s + Idő: %1m %2s + Tempo: %1m %2s + Tемп: %1m %2c + + + Set Time + Zeit einstellen + Configurar tiempo + Ustaw czas + Régler retard + Nastavit Čas + Modifica il conto alla rovescia + Idő állítása + Configurar Tempo + Xронометр + + + Select a Trigger + Wähle einen Zünder + Seleccionar un disparador + Wybierz zapalnik + Sélectionner une mise à feu + Zvolit Detonátor + Seleziona un Attivatore + Detonátor kiválasztása + Selecionar um Gatilho + Выберите + + + Select + Wählen + Seleccionar + Wybierz + Sélectionner + Zvolit + Seleziona + Kiválasztás + Selecionar + Выбрать защелка + + + Pressure Plate + Płyta naciskowa + Placa de presión + Druckplatte + Plaque de pression + Nášlapná nástraha + Piastra a Pressione + Nyomólap + Placa de pressão + Давление + + + Tripwire + Linka naciągu + Cable trampa + Stolperdraht + Fil de butée + Nástražný drát + Filo a Inciampo + Botlódrót + Linha de tração + Натяжной + + + IR Sensor + Czujnik podczerwieni + Sensor IR + Infrarotsensor + Capteur IR + IR Značkovač + Sensore IR + IR szenzor + Sensor IV + ИК + + + No triggers available for %1 + Brak dostępnych zapalników dla %1 + No hay detonadores disponibles para %1 + Keine Auslöser vorhanden für %1 + Pas de mise à feu disponible pour %1 + Žádný detonátor k dispozici pro %1 + Nessun attivatore disponibile per %1 + Nincs detonátor a %1 + Nenhum gatilho disponível para %1 + Нет защелка доступны для %1 + + + IR Sensor (Side Attack) + Czujnik podczerwieni (wybuch na bok) + Sensor IR (ataque lateral) + Infrarotsensor (Seitenangriff) + Capteur IR (de flanc) + IR Značkovač (Výbuch stranou) + Sensore IR (Attacco laterale) + IR Sensor (Side Attack) + Sensor infravermelho (ataque lateral) + ИК (боковая атака) + + + Magnetic Influence Sensor (Bottom Attack) + Czujnik magnetyczny (wybuch w górę) + Sensor IM (ataque inferior) + Magnetfeldsensor (Bodenangriff) + Capteur Magnétique (par le bas) + Magnetický Senzor (Výbuch ze spoda) + Sensore Magnetico di Prossimità (Attacco inferiore) + Mágneses (Bottom Attack) + Influência magnética (ataque inferior) + Магнитный (дно атака) + + + No explosives on trigger. + Keine Sprengladungen auf diesem Auslöser. + Ningún explosivo en el detonador. + Pas d'explosif à mettre à feu. + Nessun esplosivo sul sensore. + Žádná výbušnina k odpálení. + Nincs robbanóanyag a detonátorhoz. + Brak ładunków na zapalnik. + Nenhum explosivo no gatilho. + Нет взрывчатки на курок. + + + Dead Man's Switch + Totmannschalter + Mise à feu par relâchement de pression + Spínač mrtvého muže + Czuwak + Detonador de hombre muerto + Dead Man's Switch + Кнопка мертвеца + + + Used to remotely trigger explosives when released. + Zündet Sprengladungen wenn losgelassen. + Déclenche la mise à feu d'un explosif lorsqu'il est libéré. + Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny + Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity. + Utilizado para detonar explosivos remotamente al soltarlo. + Robbanóanyagok távoli robbantásához + Используется для дистанционного подрыва, после смерти оператора. + + + diff --git a/TO_MERGE/agm/FastRoping/agm_fastroping_helper.p3d b/TO_MERGE/agm/FastRoping/agm_fastroping_helper.p3d new file mode 100644 index 0000000000..e473e619e8 Binary files /dev/null and b/TO_MERGE/agm/FastRoping/agm_fastroping_helper.p3d differ diff --git a/TO_MERGE/agm/FastRoping/animbase/agm_fastroping.p3d b/TO_MERGE/agm/FastRoping/animbase/agm_fastroping.p3d new file mode 100644 index 0000000000..e83160849a Binary files /dev/null and b/TO_MERGE/agm/FastRoping/animbase/agm_fastroping.p3d differ diff --git a/TO_MERGE/agm/FastRoping/config.cpp b/TO_MERGE/agm/FastRoping/config.cpp new file mode 100644 index 0000000000..18cff1a62a --- /dev/null +++ b/TO_MERGE/agm/FastRoping/config.cpp @@ -0,0 +1,161 @@ +class CfgPatches { + class AGM_FastRoping { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_FastRoping { + class AGM_FastRoping { + file = "\AGM_FastRoping\functions"; + class createRope; + class cutRopes; + class deployRopes; + class fastRope; + }; + }; +}; + +class CfgVehicles { + //class AGM_FastRoping_Helper: B_UAV_01_F { + class UAV_01_base_F; + class AGM_FastRoping_Helper: UAV_01_base_F { + scope = 1; + model = "agm_fastroping\agm_fastroping_helper.p3d"; + isUav = 0; + }; + + class Air; + class Helicopter: Air { + AGM_FastRoping = 0; + AGM_FastRoping_Positions[] = {}; + class AGM_SelfActions { + class AGM_DeployRopes { + displayName = "$STR_AGM_FastRoping_DeployRopes"; + enableInside = 1; + condition = "(locked _vehicle <= 1) and !(_vehicle getVariable ['AGM_RopesDeployed', False]) and (getPos _vehicle select 2) > 5 and (getNumber (configFile >> 'CfgVehicles' >> typeOf _vehicle >> 'AGM_FastRoping')) == 1"; + statement = "[_vehicle] call AGM_FastRoping_fnc_deployRopes"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + class AGM_FastRope { + displayName = "$STR_AGM_FastRoping_FastRope"; + enableInside = 1; + condition = "(locked _vehicle <= 1) and (_vehicle getVariable ['AGM_RopesDeployed', False]) and (vectorMagnitude (velocity _vehicle) < 4) and (count ([_vehicle getVariable ['AGM_RopesOccupied', []], {!_this}] call AGM_Core_fnc_filter) > 0)"; + statement = "[_player, _vehicle] call AGM_FastRoping_fnc_fastRope"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + class AGM_CutRopes { + displayName = "$STR_AGM_FastRoping_CutRopes"; + enableInside = 1; + condition = "(_vehicle getVariable ['AGM_RopesDeployed', False]) and (count ([_vehicle getVariable ['AGM_RopesOccupied', []], {_this}] call AGM_Core_fnc_filter) == 0)"; + statement = "[_vehicle] call AGM_FastRoping_fnc_cutRopes"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + }; + }; + class Plane: Air { + AGM_FastRoping = 0; + AGM_FastRoping_Positions[] = {}; + class AGM_SelfActions { + class AGM_DeployRopes { + displayName = "$STR_AGM_FastRoping_DeployRopes"; + enableInside = 1; + condition = "(locked _vehicle <= 1) and !(_vehicle getVariable ['AGM_RopesDeployed', False]) and (getPos _vehicle select 2) > 5 and (getNumber (configFile >> 'CfgVehicles' >> typeOf _vehicle >> 'AGM_FastRoping')) == 1"; + statement = "[_vehicle] call AGM_FastRoping_fnc_deployRopes"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + class AGM_FastRope { + displayName = "$STR_AGM_FastRoping_FastRope"; + enableInside = 1; + condition = "(locked _vehicle <= 1) and (_vehicle getVariable ['AGM_RopesDeployed', False]) and (vectorMagnitude (velocity _vehicle) < 4) and (count ([_vehicle getVariable ['AGM_RopesOccupied', []], {!_this}] call AGM_Core_fnc_filter) > 0)"; + statement = "[_player, _vehicle] call AGM_FastRoping_fnc_fastRope"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + class AGM_CutRopes { + displayName = "$STR_AGM_FastRoping_CutRopes"; + enableInside = 1; + condition = "(_vehicle getVariable ['AGM_RopesDeployed', False]) and (count ([_vehicle getVariable ['AGM_RopesOccupied', []], {_this}] call AGM_Core_fnc_filter) == 0)"; + statement = "[_vehicle] call AGM_FastRoping_fnc_cutRopes"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + }; + }; + + class Helicopter_Base_F; + class Helicopter_Base_H: Helicopter_Base_F {}; + + // Ghosthawk + class Heli_Transport_01_base_F: Helicopter_Base_H { + AGM_FastRoping = 1; + AGM_FastRoping_Positions[] = {{1.2, 2.5, 0.25}, {-1.1, 2.5, 0.25}}; + }; + + // Chinook + class B_Heli_Transport_03_base_F: Helicopter_Base_H { + AGM_FastRoping = 1; + AGM_FastRoping_Positions[] = {{0, 1, -1.9}, {0, -5, 0.5}}; + }; + + // Wildcat + class I_Heli_light_03_base_F: Helicopter_Base_F { + AGM_FastRoping = 1; + AGM_FastRoping_Positions[] = {{1.2, 2.5, 0.25}, {-1.1, 2.5, 0.25}}; + }; + + // Merlin + class Heli_Transport_02_base_F: Helicopter_Base_H { + AGM_FastRoping = 1; + AGM_FastRoping_Positions[] = {{1.4, 2.5, 0.25}, {-1.2, 2.5, 0.25}}; + }; + + // Kasatka + class Heli_Light_02_base_F: Helicopter_Base_H { + AGM_FastRoping = 1; + AGM_FastRoping_Positions[] = {{1.4, 1.4, 0.05}, {-1.4, 1.4, 0.05}}; + }; + + // Kajman + class Heli_Attack_02_base_F: Helicopter_Base_F { + AGM_FastRoping = 1; + AGM_FastRoping_Positions[] = {{1.4, 1.4, 0}, {-1.2, 1.4, 0}}; + }; +}; + +class CfgMovesBasic { + class DefaultDie; + class ManActions { + AGM_FastRoping = "AGM_FastRoping"; + }; +}; +class CfgMovesMaleSdr: CfgMovesBasic { + class States { + class Crew; + class AGM_FastRoping: Crew { + file = "agm_fastroping\data\agm_fastroping.rtm"; + interpolateTo[] = {"Unconscious",1}; + disableWeapons = 1; + disableWeaponsLong = 1; + canReload = 0; + }; + }; +}; diff --git a/TO_MERGE/agm/FastRoping/data/agm_fastroping.rtm b/TO_MERGE/agm/FastRoping/data/agm_fastroping.rtm new file mode 100644 index 0000000000..9742732a56 Binary files /dev/null and b/TO_MERGE/agm/FastRoping/data/agm_fastroping.rtm differ diff --git a/TO_MERGE/agm/FastRoping/functions/fn_createRope.sqf b/TO_MERGE/agm/FastRoping/functions/fn_createRope.sqf new file mode 100644 index 0000000000..00f6e7124a --- /dev/null +++ b/TO_MERGE/agm/FastRoping/functions/fn_createRope.sqf @@ -0,0 +1,76 @@ +/* + * Author: KoffeinFlummi + * + * Creates a rope for the vehicle at the given position. + * + * Arguments: + * 0: Vehicle + * 1: Position + * 2: Spawn bottom part of rope in place? (Default: False) + * + * Return Value: + * Array: + * 0: rope 1 + * 1: rope 2 + * 2-3: helper objects + * + * __/| + * | <- rope 1 + * | + * X <- helper 1; attached to player + * | + * | <- rope 2 + * | + * X <- helper 2 + */ + +#define HELPER "AGM_FastRoping_Helper" +#define ROPELENGTH 35 +#define OFFSET 2 + +private ["_vehicle", "_pos", "_inPlace", "_helper1", "_helper1", "_helper2", "_rope1", "_rope2"]; + +_vehicle = _this select 0; +_pos = _this select 1; +_inPlace = False; +if (count _this > 2) then { + _inPlace = _this select 2; +}; + +if (typeName _pos == "STRING") then { + _pos = _vehicle selectionPosition _pos; +}; + +_posWorld = _vehicle modelToWorld _pos; + +// modelToWorld seems to ignore buildings; let's fix that. +_posWorld = _posWorld vectorDiff ((getPosATL _vehicle) vectorDiff (getPos _vehicle)); +_posWorld set [2, (_posWorld select 2) - OFFSET]; + +_posWorld2 =+ _posWorld; +if (_inPlace) then { + _posWorld2 set [2, ((_posWorld select 2) - (ROPELENGTH - OFFSET)) max 0]; +}; + +_helper1 = HELPER createVehicle _posWorld; +_helper1 allowDamage False; + +_helper2 = HELPER createVehicle _posWorld2; +_helper2 allowDamage False; + +//_rope1 = ropeCreate [_helper1, [0,0,0], _helper1, [0,0,0], OFFSET]; +_rope1 = ropeCreate [_vehicle, _pos, _helper1, [0,0,0], OFFSET + 1]; +_rope2 = ropeCreate [_helper1, [0,0,0], _helper2, [0,0,0], ROPELENGTH - (OFFSET + 1)]; + +if (_inPlace) then { + _roof = ((getPosATL _vehicle) vectorDiff (getPos _vehicle)) select 2; + _helper2 setPosATL [ + (getPosATL _helper1) select 0, + (getPosATL _helper1) select 1, + (((getPosATL _helper1) select 2) - ROPELENGTH) max (_roof + 1) + ]; +} else { + _helper2 setPosATL (getPosATL _helper1); +}; + +[_rope1, _rope2, _helper1, _helper2] diff --git a/TO_MERGE/agm/FastRoping/functions/fn_cutRopes.sqf b/TO_MERGE/agm/FastRoping/functions/fn_cutRopes.sqf new file mode 100644 index 0000000000..ce956d33b3 --- /dev/null +++ b/TO_MERGE/agm/FastRoping/functions/fn_cutRopes.sqf @@ -0,0 +1,27 @@ +/* + * Author: KoffeinFlummi + * + * Cuts the ropes from the helicopter + * + * Arguments: + * 0: helicopter + * + * Return Value: + * None + */ + +_vehicle = _this select 0; + +_ropes = _vehicle getVariable "AGM_Ropes"; +{ + (_x select 2) ropeDetach (_x select 0); + ropeDestroy (_x select 0); + _x spawn { + sleep 60; + ropeDestroy (_this select 1); + deleteVehicle (_this select 2); + deleteVehicle (_this select 3); + }; +} forEach _ropes; + +_vehicle setVariable ["AGM_RopesDeployed", False, True]; diff --git a/TO_MERGE/agm/FastRoping/functions/fn_deployRopes.sqf b/TO_MERGE/agm/FastRoping/functions/fn_deployRopes.sqf new file mode 100644 index 0000000000..3fa594d31f --- /dev/null +++ b/TO_MERGE/agm/FastRoping/functions/fn_deployRopes.sqf @@ -0,0 +1,36 @@ +/* + * Author: KoffeinFlummi + * + * Deploys the ropes necessary for fast roping. + * + * Arguments: + * 0: The helicopter + * + * Return Value: + * None + */ + +#define HELPER "AGM_FastRoping_Helper" +#define ROPELENGTH 35 +#define OFFSET 2 + +_vehicle = _this select 0; + +if !(local _vehicle) exitWith { + [[_vehicle], "AGM_FastRoping_fnc_deployRopes", _vehicle] call AGM_Core_fnc_execRemoteFnc; +}; + +_ropePositions = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FastRoping_Positions"); +_ropes = [_ropePositions, {[objNull, objNull, objNull]}] call AGM_Core_fnc_map; +_occupied = [_ropePositions, {False}] call AGM_Core_fnc_map; + +for "_i" from 0 to ((count _ropes) - 1) do { + _ropePositions = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FastRoping_Positions"); + _pos = _ropePositions select _i; + + _ropes set [_i, [_vehicle, _pos] call AGM_FastRoping_fnc_createRope]; +}; + +_vehicle setVariable ["AGM_RopesDeployed", True, True]; +_vehicle setVariable ["AGM_Ropes", _ropes, True]; +_vehicle setVariable ["AGM_RopesOccupied", _occupied, True]; diff --git a/TO_MERGE/agm/FastRoping/functions/fn_fastRope.sqf b/TO_MERGE/agm/FastRoping/functions/fn_fastRope.sqf new file mode 100644 index 0000000000..ad3fc6e05a --- /dev/null +++ b/TO_MERGE/agm/FastRoping/functions/fn_fastRope.sqf @@ -0,0 +1,95 @@ +/* + * Author: KoffeinFlummi + * + * Starts fast roping for a certain unit + * + * Arguments: + * 0: Unit + * 1: Helicopter + * + * Return Value: + * None + */ + +#define ROPELENGTH 35 + +_unit = _this select 0; +_vehicle = _this select 1; + +_ropes = _vehicle getVariable "AGM_Ropes"; +_occupied = _vehicle getVariable "AGM_RopesOccupied"; + +_index = -1; +for "_i" from 0 to ((count _occupied) - 1) do { + if !(_occupied select _i) exitWith { + _index = _i; + }; +}; + +_occupied set [_index, True]; +_vehicle setVariable ["AGM_RopesOccupied", _occupied, True]; + +_rope = _ropes select _index; +_rope1 = _rope select 0; +_rope2 = _rope select 1; +_helper = _rope select 2; +_unit disableCollisionWith _helper; + +[time, _unit, _vehicle, _index, _rope, _index] spawn { + _time = _this select 0; + _unit = _this select 1; + _vehicle = _this select 2; + _index = _this select 3; + _rope = _this select 4; + _index = _this select 5; + + _rope1 = _rope select 0; + _rope2 = _rope select 1; + _helper = _rope select 2; + + _unit allowDamage False; + moveOut _unit; + waitUntil {vehicle _unit == _unit}; + + _helper setVectorUp [0,0,1]; + _unit attachTo [_helper, [0,0,0]]; + + _vector = (getPos _unit) vectorFromTo (getPos _vehicle); + _unit setVectorDir _vector; + + [[_rope1, _rope2], "{ropeUnwind [_this select 0, 6, 35];ropeUnwind [_this select 1, 6, 0];}", _helper] call AGM_Core_fnc_execRemoteFnc; + + sleep 0.1; + _unit allowDamage True; + [_unit, "AGM_FastRoping", 2] call AGM_Core_fnc_doAnimation; + + waitUntil { + ([_unit] + ([[_helper] call AGM_Core_fnc_getPitchBankYaw, {_this * -1}] call AGM_Core_fnc_map)) call AGM_Core_fnc_setPitchBankYaw; + _time + 1 < time and ((getPos _helper select 2) < 1 or (time >= (_time + ROPELENGTH / 6)) or (vectorMagnitude (velocity _vehicle) > 5)) + }; + + _unit allowDamage False; + _unit spawn { + sleep 0.5; + _this allowDamage True; + }; + + detach _unit; + [_unit, "", 2] call AGM_Core_fnc_doAnimation; + _unit setVectorUp [0,0,1]; + + // delete and recreate rope + {deleteVehicle _x;} forEach _rope; + _ropePositions = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FastRoping_Positions"); + _pos = _ropePositions select _index; + [ + [_vehicle, _pos, _index], + "{_ropes = (_this select 0) getVariable 'AGM_Ropes';_ropes set [(_this select 2), [(_this select 0), (_this select 1), True] call AGM_FastRoping_fnc_createRope];(_this select 0) setVariable ['AGM_Ropes', _ropes, True];}", + _vehicle + ] call AGM_Core_fnc_execRemoteFnc; + + // free rope for next unit + _occupied = _vehicle getVariable "AGM_RopesOccupied"; + _occupied set [_index, False]; + _vehicle setVariable ["AGM_RopesOccupied", _occupied, True]; +}; diff --git a/TO_MERGE/agm/FastRoping/stringtable.xml b/TO_MERGE/agm/FastRoping/stringtable.xml new file mode 100644 index 0000000000..ee94e4a5e7 --- /dev/null +++ b/TO_MERGE/agm/FastRoping/stringtable.xml @@ -0,0 +1,30 @@ + + + + + + Deploy Ropes + Seile vorbereiten + Rozwiń liny + Desplegar cuerdas + Развернуть веревку + Připravit lana + + + Fast Rope + Abseilen + Zjedź na linie + Descender por cuerda + Спуститься по веревке + Slanování + + + Cut Ropes + Seile trennen + Odetnij liny + Cortar cuerdas + Перерезать веревку + Odstranit lana + + + \ No newline at end of file diff --git a/TO_MERGE/agm/FireControlSystem/Optics.hpp b/TO_MERGE/agm/FireControlSystem/Optics.hpp new file mode 100644 index 0000000000..0024a9d7ce --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/Optics.hpp @@ -0,0 +1,257 @@ + +#define MACRO_RANGERFINDER \ + class CA_Distance; \ + class AGM_CA_Distance: CA_Distance { \ + idc = 1713151; \ + text = "----"; \ + }; \ + class AGM_Rangehelper: RscMapControl { \ + onDraw = "((ctrlParent (_this select 0)) displayCtrl 1713151) ctrlShow (cameraView == 'GUNNER');"; \ + w = 0; \ + h = 0; \ + }; + +class RscControlsGroup; +class RscMapControl; + +class RscInGameUI { + class RscUnitInfo; + class RscUnitInfo_AH64D_gunner { + onLoad = ""; + controls[] = {"CA_Distance", "AGM_CA_Distance"}; + MACRO_RANGERFINDER + }; + class RscWeaponRangeFinder { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + controls[] = {"CA_Distance", "AGM_CA_Distance"}; + MACRO_RANGERFINDER + }; + //class RscWeaponRangeArtillery + //class RscWeaponRangeArtilleryAuto + + class RscWeaponRangeFinderPAS13 { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + MACRO_RANGERFINDER + }; + class RscOptics_Rangefinder: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_LaserDesignator { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscWeaponRangeFinderMAAWS { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscWeaponRangeFinderAbramsCom { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + controls[] = {"CA_Distance", "AGM_CA_Distance"}; + MACRO_RANGERFINDER + }; + class RscWeaponRangeFinderAbramsGun { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + controls[] = {"CA_Distance", "AGM_CA_Distance"}; + MACRO_RANGERFINDER + }; + class RscWeaponRangeFinderStrykerMGSGun { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + controls[] = {"CA_Distance", "AGM_CA_Distance"}; + MACRO_RANGERFINDER + }; + class RscOptics_crows: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_strider_commander { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + + class RscWeaponRangeZeroing: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + controls[] = {"CA_Zeroing", "CA_DistanceText", "CA_Distance", "AGM_CA_Distance", "AGM_Rangehelper"}; + MACRO_RANGERFINDER + }; + class RscOptics_sos: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_nightstalker: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_tws: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_punisher { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_tws_sniper: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_SDV_periscope { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0];"; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_Heli_Attack_02_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_Heli_Attack_01_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_UAV_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_UGV_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_APC_Tracked_01_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_APC_Tracked_03_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_APC_Wheeled_01_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_APC_Wheeled_03_commander: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_APC_Wheeled_03_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_MBT_01_commander: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_MBT_01_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_MBT_02_commander: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_MBT_02_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; + class RscOptics_MBT_03_gunner: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgRangefinder', _this select 0]; ((_this select 0) displayCtrl 151) ctrlSetTextColor [0, 0, 0, 0]; [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + class CA_IGUI_elements_group: RscControlsGroup { + class controls { + MACRO_RANGERFINDER + }; + }; + }; +}; diff --git a/TO_MERGE/agm/FireControlSystem/clientInit.sqf b/TO_MERGE/agm/FireControlSystem/clientInit.sqf new file mode 100644 index 0000000000..291cfeedd5 --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/clientInit.sqf @@ -0,0 +1,3 @@ +AGM_FCSEnabled = true; +AGM_FCSTime = -1; +AGM_FCSPosition = [0,0,0]; diff --git a/TO_MERGE/agm/FireControlSystem/config.cpp b/TO_MERGE/agm/FireControlSystem/config.cpp new file mode 100644 index 0000000000..e5e279ef6e --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/config.cpp @@ -0,0 +1,899 @@ +class CfgPatches { + class AGM_FireControlSystem { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi","BadGuy (simon84)"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +// @todo: clean up inheritance and remove old code + +class CfgFunctions { + class AGM_FCS { + class AGM_FCS { + file = "AGM_FireControlSystem\functions"; + class adjustRange; + class canUseFCS; + class canUseRangefinder; + class firedEH; + class getAngle; + class getImpactPoint; + class getRange; + class keyDown; + class keyUp; + class reset; + class vehicleInit; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_FCS { + clientInit = "call compile preprocessFileLineNumbers '\AGM_FireControlSystem\clientInit.sqf'"; + }; +}; + +class Extended_Init_EventHandlers { + class AllVehicles { + class AGM_FCS { + clientInit = "_this call AGM_FCS_fnc_vehicleInit"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class laseTarget { + displayName = "$STR_AGM_FireControlSystem_LaseTarget"; + condition = "call AGM_FCS_fnc_canUseRangefinder || AGM_FCS_fnc_canUseFCS"; + statement = "_range = call AGM_FCS_fnc_getRange; if (call AGM_FCS_fnc_canUseFCS) then {[_vehicle, _range] call AGM_FCS_fnc_keyDown};"; + conditionUp = "AGM_FCSEnabled && AGM_FCS_fnc_canUseFCS"; + statementUp = "_range = call AGM_FCS_fnc_getRange; if (AGM_FCSEnabled && AGM_FCS_fnc_canUseFCS) then {[_vehicle, _range] call AGM_FCS_fnc_keyUp};"; + key = 15; + shift = 0; + control = 0; + alt = 0; + }; + class adjustRangeUp { + displayName = "$STR_AGM_FireControlSystem_AdjustRangeUp"; + condition = "player == gunner _vehicle && {getNumber (configFile >> 'CfgVehicles' >> (typeOf _vehicle) >> 'AGM_FCSEnabled') == 1}"; + statement = "[_vehicle, 50] call AGM_FCS_fnc_adjustRange"; + key = 201; + shift = 0; + control = 0; + alt = 0; + allowHolding = 1; + }; + class adjustRangeDown: adjustRangeUp { + displayName = "$STR_AGM_FireControlSystem_AdjustRangeDown"; + statement = "[_vehicle, -50] call AGM_FCS_fnc_adjustRange"; + key = 209; + }; +}; + +class CfgVehicles { + class All { + class Turrets; + }; + + class AllVehicles: All { + AGM_FCSEnabled = 0; + AGM_FCSMinDistance = 200; + AGM_FCSMaxDistance = 9990; + AGM_FCSDistanceInterval = 5; + class NewTurret { + class Turrets; + }; + class CargoTurret; + }; + + class Land: AllVehicles {}; + + class LandVehicle: Land { + class CommanderOptics; + }; + + class Car: LandVehicle { + class AGM_SelfActions { + class AGM_ResetFCS { + displayName = "$STR_AGM_FireControlSystem_ResetFCS"; + condition = "(count (vehicle _player getVariable ['AGM_FCSMagazines', []]) > 1) and (_player == gunner (vehicle _player))"; + statement = "[vehicle _player] call AGM_FCS_fnc_reset;"; + showDisabled = 0; + priority = -1; + }; + }; + }; + + class Tank: LandVehicle { + AGM_FCSEnabled = 1; // all tracked vehicles get one by default + class AGM_SelfActions { + class AGM_ResetFCS { + displayName = "$STR_AGM_FireControlSystem_ResetFCS"; + enableInside = 1; + condition = "(count (_vehicle getVariable ['AGM_FCSMagazines', []]) > 1) and (_player == gunner _vehicle)"; + statement = "[vehicle _player] call AGM_FCS_fnc_reset;"; + showDisabled = 0; + priority = 1; + icon = ""; + }; + }; + class Turrets { + class MainTurret: NewTurret { + class Turrets { + class CommanderOptics; + }; + }; + }; + }; + + class APC: Tank { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class Air: AllVehicles {}; + + class Helicopter: Air { + class Turrets { + class MainTurret; + }; + }; + + class Plane: Air {}; + + class Ship: AllVehicles { + class Turrets { + class MainTurret; + }; + }; + + class Helicopter_Base_F: Helicopter { + class Turrets: Turrets { + class CopilotTurret; + }; + }; + + class Helicopter_Base_H: Helicopter_Base_F { + class Turrets: Turrets { + class CopilotTurret; + }; + }; + + class Heli_Light_01_base_F: Helicopter_Base_H { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + };*/ + }; + + class B_Heli_Light_01_F: Heli_Light_01_base_F { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + class CargoTurret_03: CargoTurret_02 {}; + class CargoTurret_04: CargoTurret_01 {}; + };*/ + }; + + class Heli_Light_01_armed_base_F: Heli_Light_01_base_F { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + };*/ + }; + + class Heli_Light_02_base_F: Helicopter_Base_H { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + };*/ + }; + + class Plane_Base_F: Plane { + class Turrets { + class CopilotTurret; + }; + }; + + class Heli_Attack_01_base_F: Helicopter_Base_F { + AGM_FCSEnabled = 1; + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + }; + }; + }; + + class Heli_Attack_02_base_F: Helicopter_Base_F { + AGM_FCSEnabled = 1; + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + }; + }; + }; + + class Heli_Transport_01_base_F: Helicopter_Base_H { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + class MainTurret: MainTurret {}; + class RightDoorGun: MainTurret {}; + };*/ + }; + + class Heli_Transport_02_base_F: Helicopter_Base_H { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class I_Heli_light_03_base_F: Helicopter_Base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class I_Heli_light_03_F: I_Heli_light_03_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class Plane_CAS_01_base_F: Plane_Base_F { + class Turrets; + }; + + class Plane_CAS_02_base_F: Plane_Base_F { + class Turrets; + }; + + class Plane_Fighter_03_base_F: Plane_Base_F { + class Turrets; + }; + + class Tank_F: Tank { + class Turrets { + class MainTurret: NewTurret { + class Turrets { + class CommanderOptics;//: CommanderOptics {}; + }; + }; + }; + }; + + class Car_F: Car { + class Turrets { + class MainTurret; + }; + }; + + class Wheeled_APC_F: Car_F { + class Turrets { + class MainTurret: NewTurret { + class Turrets { + class CommanderOptics;//: CommanderOptics {}; + }; + }; + }; + }; + + class APC_Tracked_01_base_F: Tank_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets; + }; + };*/ + }; + + class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F { + AGM_FCSEnabled = 0; + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + class CommanderOptics: CommanderOptics {}; + };*/ + }; + + class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F { + AGM_FCSEnabled = 0; + }; + + class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + magazines[] += {"AGM_120Rnd_35mm_ABM_shells_Tracer_Red"}; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class APC_Tracked_02_base_F: Tank_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + };*/ + }; + + class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F {}; + + class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + magazines[] += {"AGM_120Rnd_35mm_ABM_shells_Tracer_Green"}; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class APC_Tracked_03_base_F: Tank_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class MBT_03_base_F: Tank_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class MBT_01_base_F: Tank_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class B_MBT_01_base_F: MBT_01_base_F {}; + + class B_MBT_01_cannon_F: B_MBT_01_base_F {}; + + class MBT_01_arty_base_F: MBT_01_base_F { + AGM_FCSEnabled = 0; + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + };*/ + }; + + class MBT_01_mlrs_base_F: MBT_01_base_F { + AGM_FCSEnabled = 0; + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets; + }; + };*/ + }; + + class MBT_02_base_F: Tank_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class MBT_02_arty_base_F: MBT_02_base_F { + AGM_FCSEnabled = 0; + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + };*/ + }; + + class Ship_F: Ship {}; + + class Boat_F: Ship_F {}; + + class Boat_Armed_01_base_F: Boat_F { + class Turrets: Turrets { + class FrontTurret; + class RearTurret: FrontTurret {}; + }; + }; + + /*class Boat_Armed_01_minigun_base_F: Boat_Armed_01_base_F { + class Turrets: Turrets { + class FrontTurret: FrontTurret {}; + class RearTurret: RearTurret {}; + }; + };*/ + + class Truck_F: Car_F { + //class Turrets: Turrets {}; + }; + + class MRAP_01_base_F: Car_F {}; + + class MRAP_01_gmg_base_F: MRAP_01_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class B_MRAP_01_F: MRAP_01_base_F { + class Turrets; + }; + + class MRAP_02_base_F: Car_F {}; + + class MRAP_02_hmg_base_F: MRAP_02_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; + + class O_MRAP_02_F: MRAP_02_base_F { + class Turrets; + }; + + class Offroad_01_base_F: Car_F {}; + + class C_Offroad_01_F: Offroad_01_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + class CargoTurret_03: CargoTurret_01 {}; + class CargoTurret_04: CargoTurret_03 {}; + };*/ + }; + + class Offroad_01_repair_base_F: Offroad_01_base_F { + class Turrets; + }; + + class I_G_Offroad_01_F: Offroad_01_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + class CargoTurret_03: CargoTurret_01 {}; + class CargoTurret_04: CargoTurret_03 {}; + };*/ + }; + + class Offroad_01_armed_base_F: Offroad_01_base_F { + /*class Turrets: Turrets { + class M2_Turret: MainTurret {}; + };*/ + }; + + class MRAP_03_base_F: Car_F { + /*class Turrets: Turrets { + class CommanderTurret: MainTurret {}; + };*/ + }; + + class MRAP_03_hmg_base_F: MRAP_03_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + class CommanderTurret: CommanderTurret {}; + };*/ + }; + + class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + class CommanderTurret: CommanderTurret {}; + };*/ + }; + + class Truck_01_base_F: Truck_F { + class Turrets; + }; + + class B_Truck_01_transport_F: Truck_01_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class Truck_02_base_F: Truck_F { + class Turrets; + }; + + class O_Truck_02_covered_F: Truck_02_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class O_Truck_02_transport_F: Truck_02_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class I_Truck_02_covered_F: Truck_02_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class I_Truck_02_transport_F: Truck_02_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class Truck_03_base_F: Truck_F { + class Turrets; + }; + + class O_Truck_03_transport_F: Truck_03_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class O_Truck_03_covered_F: Truck_03_base_F { + /*class Turrets: Turrets { + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class Hatchback_01_base_F: Car_F { + class Turrets; + }; + + class SUV_01_base_F: Car_F { + class Turrets; + }; + + class B_Truck_01_mover_F: B_Truck_01_transport_F { + class Turrets; + }; + + class Van_01_base_F: Truck_F { + class Turrets; + }; + + class C_Van_01_transport_F: Van_01_base_F { + //class Turrets: Turrets {}; + }; + + class I_G_Van_01_transport_F: Van_01_base_F { + /*class Turrets: Turrets { + class CargoTurret_L1: CargoTurret {}; + class CargoTurret_L2: CargoTurret_L1 {}; + class CargoTurret_L3: CargoTurret_L1 {}; + class CargoTurret_L4: CargoTurret_L1 {}; + class CargoTurret_L5: CargoTurret_L1 {}; + + class CargoTurret_R1: CargoTurret_L1 {}; + class CargoTurret_R2: CargoTurret_L1 {}; + class CargoTurret_R3: CargoTurret_L1 {}; + class CargoTurret_R4: CargoTurret_L1 {}; + class CargoTurret_R5: CargoTurret_L1 {}; + };*/ + }; + + class Kart_01_Base_F: Car_F { + class Turrets; + }; + + class B_Heli_Transport_03_base_F: Helicopter_Base_H { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + class MainTurret: MainTurret {}; + class RightDoorGun: MainTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + class MainTurret: MainTurret {}; + class RightDoorGun: MainTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class Heli_Transport_04_base_F: Helicopter_Base_H { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + class LoadmasterTurret: MainTurret {}; + };*/ + }; + + class O_Heli_Transport_04_bench_F: Heli_Transport_04_base_F { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + class LoadmasterTurret: LoadmasterTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + class CargoTurret_03: CargoTurret_01 {}; + class CargoTurret_04: CargoTurret_01 {}; + class CargoTurret_05: CargoTurret_01 {}; + class CargoTurret_06: CargoTurret_05 {}; + class CargoTurret_07: CargoTurret_05 {}; + class CargoTurret_08: CargoTurret_05 {}; + };*/ + }; + + class O_Heli_Transport_04_covered_F: Heli_Transport_04_base_F { + /*class Turrets: Turrets { + class CopilotTurret: CopilotTurret {}; + class LoadmasterTurret: LoadmasterTurret {}; + + class CargoTurret_01: CargoTurret {}; + class CargoTurret_02: CargoTurret_01 {}; + };*/ + }; + + class APC_Wheeled_01_base_F: Wheeled_APC_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + };*/ + }; + + class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {}; + + class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { + AGM_FCSEnabled = 1; + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + }; + }; + }; + + class APC_Wheeled_02_base_F: Wheeled_APC_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets; + }; + + class CommanderOptics: CommanderOptics {}; + };*/ + }; + + class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class APC_Wheeled_03_base_F: Wheeled_APC_F { + AGM_FCSEnabled = 1; + class Turrets: Turrets { + class MainTurret: MainTurret { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + /*class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + };*/ + }; + }; + }; + + class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F {}; + + class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { + /*class Turrets: Turrets { + class MainTurret: MainTurret {}; + };*/ + }; +}; + +// disable locking, so it doesn't interfere with our system +class CfgWeapons { + class CannonCore; + class cannon_120mm: CannonCore { + canLock = 0; + ballisticsComputer = 0; + }; + class autocannon_Base_F: CannonCore { + canLock = 0; + ballisticsComputer = 0; + }; + class autocannon_35mm: CannonCore { + canLock = 0; + ballisticsComputer = 0; + magazines[] += {"AGM_120Rnd_35mm_ABM_shells","AGM_120Rnd_35mm_ABM_shells_Tracer_Red","AGM_120Rnd_35mm_ABM_shells_Tracer_Green","AGM_120Rnd_35mm_ABM_shells_Tracer_Yellow"}; + }; + /*class Cannon_30mm_Plane_CAS_02_F: CannonCore { + canLock = 0; + ballisticsComputer = 0; + };*/ + + /*class gatling_20mm: CannonCore { + canLock = 0; + ballisticsComputer = 0; + }; + class gatling_25mm: CannonCore { + canLock = 0; + }; + class gatling_30mm: CannonCore { + canLock = 0; + ballisticsComputer = 0; + }; + class Gatling_30mm_Plane_CAS_01_F: CannonCore { + canLock = 0; + ballisticsComputer = 0; + };*/ + + /*class MGunCore; + class M134_minigun: MGunCore { + canLock = 0; + }; + + class MGun: MGunCore {}; + class LMG_RCWS: MGun { + canLock = 0; + ballisticsComputer = 0; + }; + class HMG_127: LMG_RCWS { + ballisticsComputer = 0; + }; + class GMG_F: MGun { + canLock = 0; + ballisticsComputer = 0; + };*/ + + // fix mrco having an invisible rangefinder + class ItemCore; + class optic_MRCO: ItemCore { + weaponInfoType = "RscWeaponZeroing"; + }; +}; + +class CfgMagazines { + class 680Rnd_35mm_AA_shells; + class 680Rnd_35mm_AA_shells_Tracer_Red; + class 680Rnd_35mm_AA_shells_Tracer_Green; + class 680Rnd_35mm_AA_shells_Tracer_Yellow; + + class AGM_120Rnd_35mm_ABM_shells: 680Rnd_35mm_AA_shells { + ammo = "AGM_B_35mm_ABM"; + count = 120; + displayName = "35mm ABM Shells"; + displayNameShort = "35mm ABM"; + }; + class AGM_120Rnd_35mm_ABM_shells_Tracer_Red: 680Rnd_35mm_AA_shells_Tracer_Red { + ammo = "AGM_B_35mm_ABM_Tracer_Red"; + count = 120; + displayName = "35mm ABM Shells"; + displayNameShort = "35mm ABM-T"; + }; + class AGM_120Rnd_35mm_ABM_shells_Tracer_Green: 680Rnd_35mm_AA_shells_Tracer_Green { + ammo = "AGM_B_35mm_ABM_Tracer_Green"; + count = 120; + displayName = "35mm ABM Shells"; + displayNameShort = "35mm ABM-T"; + }; + class AGM_120Rnd_35mm_ABM_shells_Tracer_Yellow: 680Rnd_35mm_AA_shells_Tracer_Yellow { + ammo = "AGM_B_35mm_ABM_Tracer_Yellow"; + count = 120; + displayName = "35mm ABM Shells"; + displayNameShort = "35mm ABM-T"; + }; +}; + +class CfgAmmo { + class B_35mm_AA; + class B_35mm_AA_Tracer_Red; + class B_35mm_AA_Tracer_Green; + class B_35mm_AA_Tracer_Yellow; + + class AGM_B_35mm_ABM: B_35mm_AA { + AGM_Airburst = 1; + deflecting = 0; + }; + class AGM_B_35mm_ABM_Tracer_Red: B_35mm_AA_Tracer_Red { + AGM_Airburst = 1; + deflecting = 0; + }; + class AGM_B_35mm_ABM_Tracer_Green: B_35mm_AA_Tracer_Green { + AGM_Airburst = 1; + deflecting = 0; + }; + class AGM_B_35mm_ABM_Tracer_Yellow: B_35mm_AA_Tracer_Yellow { + AGM_Airburst = 1; + deflecting = 0; + }; + + class AGM_B_35mm_ABM_Helper: B_35mm_AA { + indirectHitRange = 6; + simulation = "shotRocket"; + timeToLive = 0; + }; +}; + +#include diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_adjustRange.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_adjustRange.sqf new file mode 100644 index 0000000000..485e9585e7 --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_adjustRange.sqf @@ -0,0 +1,27 @@ +/* + * Author: KoffeinFlummi + * + * Adjusts the currently zeroed distance. + * + * Arguments: + * 0: The vehicle in question + * 1: The amount to add to the distance (can be negative) + * + * Return Value: + * None + */ + +private ["_vehicle", "_delta", "_min", "_max", "_distance"]; + +_vehicle = _this select 0; +_delta = _this select 1; + +_min = getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "AGM_FCSMinDistance"); +_max = getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "AGM_FCSMaxDistance"); +_distance = _vehicle getVariable ["AGM_FCSDistance", _min]; + +_distance = _distance + _delta; +_distance = _distance min _max; +_distance = _distance max _min; + +[_vehicle, 0, _distance] call AGM_FCS_fnc_keyUp; diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_canUseFCS.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_canUseFCS.sqf new file mode 100644 index 0000000000..d988c1b791 --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_canUseFCS.sqf @@ -0,0 +1,14 @@ +/* + * Author: commy2 + * + * Called from config. Returns true if the player is a gunner and the players current vehicle has a FCS. + * + * Argument: + * Nothing + * + * Return value: + * Boolean (Bool) + */ + +_player == gunner _vehicle && {getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSEnabled") == 1} +&& {cameraView == "GUNNER"} diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_canUseRangefinder.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_canUseRangefinder.sqf new file mode 100644 index 0000000000..d96211bc5f --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_canUseRangefinder.sqf @@ -0,0 +1,14 @@ +/* + * Author: commy2 + * + * Returns true if the laser distance measurement can be read from the engine. + * + * Argument: + * Nothing + * + * Return value: + * Boolean (Bool) + */ + +!isNull ((uiNamespace getVariable ["AGM_dlgRangefinder", displayNull]) displayCtrl 1713151) +&& {cameraView == "GUNNER"} diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_firedEH.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_firedEH.sqf new file mode 100644 index 0000000000..bf03327127 --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_firedEH.sqf @@ -0,0 +1,59 @@ +/* + * Author: KoffeinFlummi + * + * Adjusts the direction of a shell. + * + * Arguments: + * -> arguments of the FiredBIS EH + * + * Return Value: + * None + */ + +private ["_unit", "_weaponType", "_ammoType", "_magazineType", "_round", "_FCSMagazines", "_FCSElevation", "_offset"]; + +_unit = _this select 0; +_weaponType = _this select 1; +_ammoType = _this select 4; +_magazineType = _this select 5; +_round = _this select 6; + +_FCSMagazines = _unit getVariable "AGM_FCSMagazines"; +_FCSElevation = _unit getVariable "AGM_FCSElevation"; + +if (AGM_player != gunner _unit) exitWith {}; +if !(_magazineType in _FCSMagazines) exitWith {}; + +// GET ELEVATION OFFSET OF CURRENT MAGAZINE +_offset = 0; +{ + if (_x == _magazineType) exitWith { + _offset = _FCSElevation select _forEachIndex; + }; +} forEach _FCSMagazines; + +[_round, (_unit getVariable "AGM_FCSAzimuth"), _offset, 0] call AGM_Core_fnc_changeProjectileDirection; + +// Air burst missile +if (getNumber (configFile >> "CfgAmmo" >> _ammoType >> "AGM_Airburst") == 1) then { + _this spawn { + _vehicle = _this select 0; + _projectile = _this select 6; + + _distance = _vehicle getVariable ["AGM_FCSDistance", currentZeroing _vehicle]; + + if (_distance < 50) exitWith {}; + if (_distance > 1500) exitWith {}; + + waitUntil {_projectile distance _vehicle > _distance || {!alive _projectile}}; + if (!alive _projectile) exitWith {}; + + _position = getPosATL _projectile; + + _subMunition = createVehicle ["AGM_B_35mm_ABM_Helper", _position, [], 0, "FLY"]; + _subMunition setPosATL _position; + _subMunition setVelocity [0, 0, -10]; + + deleteVehicle _projectile; + }; +}; diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_getAngle.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_getAngle.sqf new file mode 100644 index 0000000000..922ef92d86 --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_getAngle.sqf @@ -0,0 +1,90 @@ +/* + * Author: KoffeinFlummi + * + * Calculates the angle offset necessary to hit the current target. + * + * Arguments: + * 0: distance to target in meters + * 1: current angle of the turret + * 2: maximum elevation of the turret + * 3: initSpeed of the projectile + * 4: airFriction of the projectile + * 5: maximum timeToLive of the projectile + * 6: simulationStep of the projectile + * + * Return Value: + * offset from the current angle necessary to hit the target + */ + +#define PRECISION 0.1 + +private ["_distance","_angleTarget","_maxElev","_initSpeed","_airFriction","_timeToLive","_timeToLive","_simulationStep","_angle","_posTargetX","_posTargetY","_posX","_posY","_velocityX","_velocityY","_velocityMagnitude"]; + +_distance = _this select 0; +_angleTarget = _this select 1; +_maxElev = _this select 2; +_initSpeed = _this select 3; +_airFriction = _this select 4; +_timeToLive = _this select 5; +_simulationStep = _this select 6; + +if (_simulationStep == 0) exitWith {_angleTarget}; + +AGM_FCS_traceBullet = { + private ["_distance", "_angleTarget", "_maxElev", "_initSpeed", "_airFriction", "_timeToLive", "_simulationStep", "_angle", "_posTargetX", "_posTargetY", "_posX", "_posY", "_velocityX", "_velocityY", "_velocityMagnitude"]; + + _distance = _this select 0; + _angleTarget = _this select 1; + _maxElev = _this select 2; + _initSpeed = _this select 3; + _airFriction = _this select 4; + _timeToLive = _this select 5; + _simulationStep = _this select 6; + _angle = _this select 7; + + _angle = _angle - _angleTarget; + _angleTarget = 0; + + _posTargetX = (cos _angleTarget) * _distance; + _posTargetY = (sin _angleTarget) * _distance; + + _posX = 0; + _posY = 0; + + _velocityX = (cos _angle) * _initSpeed; + _velocityY = (sin _angle) * _initSpeed; + + // trace the path of the bullet + for "_i" from 1 to ((floor (_timeToLive / _simulationStep)) + 1) do { + _velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2); + _velocityX = _velocityX + _simulationStep * (_velocityX * _velocityMagnitude * _airFriction); + _velocityY = _velocityY + _simulationStep * (_velocityY * _velocityMagnitude * _airFriction - 9.81); + _posX = _posX + _velocityX * _simulationStep; + _posY = _posY + _velocityY * _simulationStep; + if (_posX >= _posTargetX) exitWith {}; // bullet passed the target + }; + + _posY - _posTargetY +}; + +if ((_this + [_maxElev]) call AGM_FCS_traceBullet < 0) exitWith {_maxElev - _angleTarget}; + +// Newton Method / Secand Method +_angle1 = _angleTarget; +_angle2 = _maxElev; +_it2 = 0; +_f1 = (_this + [_angle1]) call AGM_FCS_traceBullet; + +if ((abs _f1) <= PRECISION) exitWith {0}; +while {(abs _f1) > PRECISION} do { + _f2 = (_this + [_angle2]) call AGM_FCS_traceBullet; + _temp = _angle2-_f2*(_angle2-_angle1)/(_f2-_f1); + _angle1 = _angle2; + _angle2 = _temp; + _f1 = _f2; + _it2 = _it2+1; +}; +//player globalChat format ["it1: %1 | _angle1: %2 | it2: %3 | _angle2: %4",_it1, _angle-_angleTarget, _it2, _angle2-_angleTarget]; + +_angle=_angle2; +_angle - _angleTarget diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_getImpactPoint.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_getImpactPoint.sqf new file mode 100644 index 0000000000..68c9cb04bb --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_getImpactPoint.sqf @@ -0,0 +1,36 @@ +/* + * Author: KoffeinFlummi + * + * Gets the impact point if the given bomb were to be dropped at the + * the current time from the given vehicle. + * + * !!! Experimental !!! + * + * Arguments: + * 0: Vehicle + * 1: Classname of bomb + * + * Return Value: + * Coordinates of hit in ATL + */ + +_vehicle = _this select 0; +_projectile = _this select 1; + +_velocity = velocity (_vehicle); +_position = getPosASL _vehicle; + +_airFriction = getNumber (configFile >> "CfgAmmo" >> _projectile >> "airFriction"); +_simulationStep = getNumber (configFile >> "CfgAmmo" >> _projectile >> "simulationStep"); +_timeToLive = getNumber (configFile >> "CfgAmmo" >> _projectile >> "timeToLive"); + +_time = 0; +while {_time < _timeToLive and (ASLToATL _position) select 2 > 0} do { + _position = _position vectorAdd (_velocity vectorMultiply _simulationStep); + _velMag = vectorMagnitude _velocity; + _velocity = _velocity vectorAdd (_velocity vectorMultiply (_simulationStep * _velMag * _airFriction)); + _velocity set [2, (_velocity select 2) - 9.81 * _simulationStep]; + _time = _time + _simulationStep; +}; + +_position diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_getRange.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_getRange.sqf new file mode 100644 index 0000000000..84814e677d --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_getRange.sqf @@ -0,0 +1,21 @@ +/* + * Author: commy2 + * + * Read laser distance measurement from engine and update compatible info elements. + * + * Argument: + * Nothing + * + * Return value: + * Measured distance (Number) + */ + +private ["_dlgRangefinder", "_range"]; + +disableSerialization; +_dlgRangefinder = uiNamespace getVariable ["AGM_dlgRangefinder", displayNull]; + +_range = ctrlText (_dlgRangefinder displayCtrl 151); +(_dlgRangefinder displayCtrl 1713151) ctrlSetText _range; + +parseNumber _range diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_keyDown.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_keyDown.sqf new file mode 100644 index 0000000000..fb6a9f4baf --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_keyDown.sqf @@ -0,0 +1,31 @@ +/* + * Author: KoffeinFlummi + * + * Starts watching the target for sideways correction. + * + * Arguments: + * none + * + * Return Value: + * none + */ + +private ["_vehicle", "_distance", "_weaponDirection"]; + +_vehicle = _this select 0; +_distance = _this select 1; + +AGM_FCSEnabled = true; +AGM_FCSTime = time; + +if (_distance == 0) then { + _distance = [5, 5000, 0] call AGM_Core_fnc_getTargetDistance; // maximum distance: 5000m, 5m precision +}; + +_weaponDirection = _vehicle weaponDirection currentWeapon _vehicle; + +AGM_FCSPosition = [ + (getPos _vehicle select 0) + _distance * (_weaponDirection select 0), + (getPos _vehicle select 1) + _distance * (_weaponDirection select 1), + (getPos _vehicle select 2) + _distance * (_weaponDirection select 2) +]; diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_keyUp.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_keyUp.sqf new file mode 100644 index 0000000000..a73b23390b --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_keyUp.sqf @@ -0,0 +1,160 @@ +/* + * Author: KoffeinFlummi + * + * Calculates the offsets for all weapons needed to hit the current target. + * + * Arguments: + * 0: The vehicle + * 1: Range Override (Optional) + * + * Return Value: + * none + */ + +private ["_ammoType", "_viewDiff", "_posArrival", "_airFriction", "_timeToLive", "_maxElev", "_vehicle", "_posTarget", "_distance", "_simulationStep", "_posX", "_velocityMagnitude", "_magazines", "_movingAzimuth", "_FCSElevation", "_velocityX", "_velocityY", "_weaponDirection", "_velocityTarget", "_FCSAzimuth", "_FCSMagazines", "_dirArrival", "_i", "_magazineType", "_angleTarget", "_offset", "_timeToTarget", "_initSpeed"]; + +_vehicle = _this select 0; +_distance = _this select 1; + +_magazines = magazines _vehicle; + +if (_distance == 0) then { + _distance = [ + getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSDistanceInterval"), + getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSMaxDistance"), + getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_FCSMinDistance") + ] call AGM_Core_fnc_getTargetDistance; // maximum distance: 5000m, 5m precision +}; + +_weaponDirection = _vehicle weaponDirection currentWeapon _vehicle; +_angleTarget = asin (_weaponDirection select 2); + +if (count _this > 2) then { + _distance = _this select 2; +}; + +if (!(isNil "AGM_FCS_backgroundCalculation") and {!(scriptDone AGM_FCS_backgroundCalculation)}) then { + terminate AGM_FCS_backgroundCalculation; +}; + +// MOVING TARGETS +_movingAzimuth = 0; +if (time - AGM_FCSTime > 1 and AGM_FCSTime != -1 and count _this < 3) then { + // calculate speed of target + _posTarget = [ + (getPos _vehicle select 0) + _distance * (_weaponDirection select 0), + (getPos _vehicle select 1) + _distance * (_weaponDirection select 1), + (getPos _vehicle select 2) + _distance * (_weaponDirection select 2) + ]; + _velocityTarget = [ + ((_posTarget select 0) - (AGM_FCSPosition select 0)) / (time - AGM_FCSTime), + ((_posTarget select 1) - (AGM_FCSPosition select 1)) / (time - AGM_FCSTime), + ((_posTarget select 2) - (AGM_FCSPosition select 2)) / (time - AGM_FCSTime) + ]; + + // estimate time to target + _magazineType = currentMagazine _vehicle; + _ammoType = getText (configFile >> "CfgMagazines" >> _magazineType >> "ammo"); + _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineType >> "initSpeed"); + _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); + _timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive"); + _simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep"); + + if (_simulationStep != 0) then { + _posX = 0; + _velocityX = _initSpeed; + _velocityY = 0; + _timeToTarget = 0; + for "_i" from 1 to ((floor (_timeToLive / _simulationStep)) + 1) do { + _posX = _posX + _velocityX * _simulationStep; + if (_posX >= _distance) exitWith { // bullet passed the target + _timeToTarget = _i * _simulationStep; + }; + _velocityMagnitude = sqrt (_velocityX^2 + _velocityY^2); + _velocityX = _velocityX + _velocityX * _velocityMagnitude * _airFriction * _simulationStep; + _velocityY = _velocityY + _velocityY * _velocityMagnitude * _airFriction * _simulationStep - 9.81 * _simulationStep; + }; + + // calculate offsets + _posArrival = [ + (_posTarget select 0) + (_velocityTarget select 0) * _timeToTarget, + (_posTarget select 1) + (_velocityTarget select 1) * _timeToTarget, + (_posTarget select 2) + (_velocityTarget select 2) * _timeToTarget + ]; + _dirArrival = [ + ((_posArrival select 0) - (getPos _vehicle select 0)) / (_posArrival distance (getPos _vehicle)), + ((_posArrival select 1) - (getPos _vehicle select 1)) / (_posArrival distance (getPos _vehicle)), + ((_posArrival select 2) - (getPos _vehicle select 2)) / (_posArrival distance (getPos _vehicle)) + ]; + + _movingAzimuth = ((_dirArrival select 0) atan2 (_dirArrival select 1)) - ((_weaponDirection select 0) atan2 (_weaponDirection select 1)); + _angleTarget = asin (_dirArrival select 2); + _distance = floor (_posArrival distance (getPos _vehicle)); + }; +}; +AGM_FCSEnabled = false; +AGM_FCSTime = -1; + +// CALCULATE AZIMUTH CORRECTION +_viewDiff = _vehicle getVariable "AGM_FCSViewDiff"; +_FCSAzimuth = _movingAzimuth; +if (_viewDiff != 0) then { + _FCSAzimuth = (atan (_distance / _viewDiff) - (abs _viewDiff / _viewDiff) * 90) + _movingAzimuth; +}; + +// CALCULATE OFFSET FOR CURRENT WEAPON +_FCSMagazines = []; +_FCSElevation = []; + +_magazineType = currentMagazine _vehicle; +_ammoType = getText (configFile >> "CfgMagazines" >> _magazineType >> "ammo"); +if !(getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation") == "shotMissile") then { + _maxElev = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "maxElev"); + _initSpeed = getNumber (configFile >> "CfgMagazines" >> _magazineType >> "initSpeed"); + _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); + _timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive"); + _simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep"); + + _offset = [_distance, _angleTarget, _maxElev, _initSpeed, _airFriction, _timeToLive, _simulationStep] call AGM_FCS_fnc_getAngle; + + _FCSMagazines = _FCSMagazines + [_magazineType]; + _FCSElevation = _FCSElevation + [_offset]; +}; + +_vehicle setVariable ["AGM_FCSDistance", _distance, true]; +_vehicle setVariable ["AGM_FCSMagazines", _FCSMagazines, true]; +_vehicle setVariable ["AGM_FCSElevation", _FCSElevation, true]; +_vehicle setVariable ["AGM_FCSAzimuth", _FCSAzimuth, true]; + +// CALCULATE OFFSETS FOR OTHER WEAPONS IN THE BACKGROUND +AGM_FCS_backgroundCalculation = [_vehicle, _magazines, _distance, _angleTarget, _FCSMagazines, _FCSElevation] spawn { + _vehicle = _this select 0; + _magazines = _this select 1; + _distance = _this select 2; + _angleTarget = _this select 3; + _FCSMagazines = _this select 4; + _FCSElevation = _this select 5; + + { + if !(_x in _FCSMagazines) then { + _ammoType = getText (configFile >> "CfgMagazines" >> _x >> "ammo"); + if !(getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation") == "shotMissile") then { + _maxElev = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "Turrets" >> "MainTurret" >> "maxElev"); + _initSpeed = getNumber (configFile >> "CfgMagazines" >> _x >> "initSpeed"); + _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); + _timeToLive = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "timeToLive"); + _simulationStep = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "simulationStep"); + + _offset = [_distance, _angleTarget, _maxElev, _initSpeed, _airFriction, _timeToLive, _simulationStep] call AGM_FCS_fnc_getAngle; + + _FCSMagazines = _FCSMagazines + [_x]; + _FCSElevation = _FCSElevation + [_offset]; + }; + }; + } forEach _magazines; + + _vehicle setVariable ["AGM_FCSMagazines", _FCSMagazines, true]; + _vehicle setVariable ["AGM_FCSElevation", _FCSElevation, true]; +}; + +[format ["%1: %2", localize "STR_AGM_FireControlSystem_ZeroedTo", _distance]] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_reset.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_reset.sqf new file mode 100644 index 0000000000..086826b1af --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_reset.sqf @@ -0,0 +1,22 @@ +/* + * Author: KoffeinFlummi + * + * Resets the FCS to default. + * + * Arguments: + * 0: Vehicle + * + * Return Value: + * none + */ + +private ["_vehicle"]; + +_vehicle = _this select 0; + +_vehicle setVariable ["AGM_FCSDistance", 0, true]; +_vehicle setVariable ["AGM_FCSMagazines", [], true]; +_vehicle setVariable ["AGM_FCSElevation", 0, true]; +_vehicle setVariable ["AGM_FCSAzimuth", 0, true]; + +[localize "STR_AGM_FireControlSystem_HasBeenReset"] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/FireControlSystem/functions/fn_vehicleInit.sqf b/TO_MERGE/agm/FireControlSystem/functions/fn_vehicleInit.sqf new file mode 100644 index 0000000000..ca2b2d5aab --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/functions/fn_vehicleInit.sqf @@ -0,0 +1,34 @@ +/* + * Author: KoffeinFlummi + * + * Checks if a vehicle is equipped with an FCS and if so, adds the fired event handler + * + * Arguments: + * 0: Vehicle + * + * Return Value: + * none + */ + +private ["_gunBeg", "_gunnerView", "_gunBegPos", "_gunnerViewPos", "_viewDiff"]; + +if (getNumber (configFile >> "CfgVehicles" >> (typeOf (_this select 0)) >> "AGM_FCSEnabled") == 1) then { + (_this select 0) addEventHandler ["Fired", {_this call AGM_FCS_fnc_firedEH}]; + + (_this select 0) setVariable ["AGM_FCSDistance", 0, true]; + (_this select 0) setVariable ["AGM_FCSMagazines", [], true]; + (_this select 0) setVariable ["AGM_FCSElevation", [], true]; + (_this select 0) setVariable ["AGM_FCSAzimuth", 0, true]; + + // calculate offset between gunner camera and muzzle position + if !((_this select 0) isKindOf "Air") then { + _gunBeg = getText (configFile >> "CfgVehicles" >> (typeOf (_this select 0)) >> "Turrets" >> "MainTurret" >> "gunBeg"); + _gunnerView = getText (configFile >> "CfgVehicles" >> (typeOf (_this select 0)) >> "Turrets" >> "MainTurret" >> "memoryPointGunnerOptics"); + _gunBegPos = ((_this select 0) selectionPosition _gunBeg) select 0; + _gunnerViewPos = ((_this select 0) selectionPosition _gunnerView) select 0; + _viewDiff = _gunBegPos - _gunnerViewPos; + (_this select 0) setVariable ["AGM_FCSViewDiff", _viewDiff, true]; + } else { + (_this select 0) setVariable ["AGM_FCSViewDiff", 0, true]; + }; +}; diff --git a/TO_MERGE/agm/FireControlSystem/stringtable.xml b/TO_MERGE/agm/FireControlSystem/stringtable.xml new file mode 100644 index 0000000000..67b905b0d9 --- /dev/null +++ b/TO_MERGE/agm/FireControlSystem/stringtable.xml @@ -0,0 +1,81 @@ + + + + + + Lase Target / Measure Distance + Ziel anlasern / Entfernung Messen + Télémétrer la cible + Naświetl cel / Zmierz odległość + Označit cíl / Změřit vzdálenost + Iluminar objetivo / Medir distancia + + Подсветить цель / Измерить расстояние + + + Zeroed To + Haltepunkt + Fijado a + Wyzerowany na + Nastaveno na + Zéroté à + Зероинг + Nullázás + Fixado em + Azzeramento a + + + Adjust FCS Range (Up) + Entfernung des FLS erhöhen + Zwiększ zasięg FCS + Ajustar distancia del FCS (arriba) + Nastavit FCS Náměr (nahoru) + Augmenter la distance du SCT + FCS tartomány állítása (Fel) + Ajustar distância do FCS (Acima) + Aumentare la distanza dell'FCS + Диапазон СУО (Выше) + + + Adjust FCS Range (Down) + Entfernung des FLS verringern + Zmniejsz zasięg FCS + Ajustar distancia del FCS (abajo) + Nastavit FCS Náměr (dolů) + Réduire la distance du SCT + FCS tartomány állítása (Le) + Ajustar distância do FCS (Abaixo) + Ridurre la distanza dell'FCS + Диапазон СУО (Ниже) + + + Reset FCS + FLS zurücksetzen + Reiniciar FCS + Réinitialiser le SCT + Resetuj FCS + Resetovat FCS + FCS visszaállítása + Reiniciar FCS + Azzeramento dell'FCS + Обнулить СУО + + + FCS has been reset. + FLS wurde zurückgesetzt. + FCS reiniciado + SCT réinitialisé. + FCS został zresetowany. + FCS byl resetován. + Az FCS visszaállítva + FCS reiniciado. + L'FCS è stato azzerato + СУО обнулен + + + \ No newline at end of file diff --git a/TO_MERGE/agm/GForces/clientInit.sqf b/TO_MERGE/agm/GForces/clientInit.sqf new file mode 100644 index 0000000000..5b10456164 --- /dev/null +++ b/TO_MERGE/agm/GForces/clientInit.sqf @@ -0,0 +1,94 @@ +#define AVERAGEDURATION 6 +#define INTERVAL 0.25 +#define MAXVIRTUALG 5.4 + +if !(hasInterface) exitWith {}; + +AGM_GForces = []; +AGM_GForces_Index = 0; + +AGM_GForces_CC = ppEffectCreate ["ColorCorrections", 4215]; +AGM_GForces_CC ppEffectEnable true; +AGM_GForces_CC ppEffectForceInNVG true; +AGM_GForces_CC ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]]; +AGM_GForces_CC ppEffectCommit 0.4; + +0 spawn { + while {True} do { + _player = AGM_player; + + if !((vehicle _player isKindOf "Air") or ((getPos _player select 2) > 5)) then { + AGM_GForces = []; + AGM_GForces_Index = 0; + waitUntil {sleep 5; (vehicle _player isKindOf "Air") or ((getPos _player select 2) > 5)}; + }; + + _oldVel = velocity (vehicle _player); + sleep INTERVAL; + _newVel = velocity (vehicle _player); + + _accel = ((_newVel vectorDiff _oldVel) vectorMultiply (1 / INTERVAL)) vectorAdd [0, 0, 9.8]; + AGM_GForce_Current = (_accel vectorDotProduct vectorUp (vehicle _player)) / 9.8; + + // Cap maximum G's to +- 10 to avoid g-effects when the update is low fps. + AGM_GForce_Current = (AGM_GForce_Current max -10) min 10; + + AGM_GForces set [AGM_GForces_Index, AGM_GForce_Current]; + AGM_GForces_Index = (AGM_GForces_Index + 1) % round (AVERAGEDURATION / INTERVAL); + }; +}; + + +/* + * source: http://en.wikipedia.org/wiki/G-LOC + * untrained persons without gsuit will fall unconscious between 4 and 6G + * pilots in gsuits will sustain up to 9G + * a person is for average 12 seconds unconscious + * after being unconscious, a person is unable to do simple tasks for average 15 seconds + * + * _upTolerance converts the effective 9G of a pilot to virtual 5.4G (= 0.8*0.75*9G) + * pilots with gsuit will get unconscious at an _average of 9G + * normal men without gsuit will get unconscious at an _average of 5.4G + */ + +0 spawn { + while {True} do { + sleep INTERVAL; + _player = AGM_player; + + _average = 0; + if (count AGM_GForces > 0) then { + _sum = 0; + { + _sum = _sum + _x; + } forEach AGM_GForces; + _average = _sum / (count AGM_GForces); + }; + + _downTolerance = _player getVariable ["AGM_GForceCoef", + getNumber (configFile >> "CfgVehicles" >> (typeOf _player) >> "AGM_GForceCoef")]; + _upTolerance = _downTolerance * getNumber (configFile >> "CfgWeapons" >> (uniform _player) >> "AGM_GForceCoef"); + + ["GForces", [_average, _upTolerance], {format ["_g _avgG _avgG*_upTol: %1, %2, %3", AGM_GForce_Current, _this select 0, (_this select 0) * (_this select 1)]}] call AGM_Debug_fnc_log; + + if (((_average * _upTolerance) > MAXVIRTUALG) and {isClass (configFile >> "CfgPatches" >> "AGM_Medical") and {!(_player getVariable ["AGM_isUnconscious", false])}}) then { + [_player, (10 + floor(random 5))] call AGM_Medical_fnc_knockOut; + }; + + if ((abs _average > 2) and !(_player getVariable ["AGM_isUnconscious", false])) then { + if (_average > 0) then { + _strength = 1.2 - (((_average - 2) * _upTolerance) / (MAXVIRTUALG - 2)); + AGM_GForces_CC ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[_strength,_strength,0,0,0,0.1,0.5]]; + addCamShake [((abs _average) - 2) / 3, 1, 15]; + } else { + _strength = 1.2 - ((((-1 * _average) - 2) * _downTolerance) / (MAXVIRTUALG - 2)); + AGM_GForces_CC ppEffectAdjust [1,1,0,[1,0.2,0.2,1],[0,0,0,0],[1,1,1,1],[_strength,_strength,0,0,0,0.1,0.5]]; + addCamShake [((abs _average) - 2) / 5, 1, 15]; + }; + } else { + AGM_GForces_CC ppEffectAdjust [1,1,0,[0,0,0,1],[0,0,0,0],[1,1,1,1],[10,10,0,0,0,0.1,0.5]]; + }; + + AGM_GForces_CC ppEffectCommit INTERVAL; + }; +}; diff --git a/TO_MERGE/agm/GForces/config.cpp b/TO_MERGE/agm/GForces/config.cpp new file mode 100644 index 0000000000..b5fe1e12c5 --- /dev/null +++ b/TO_MERGE/agm/GForces/config.cpp @@ -0,0 +1,56 @@ +class CfgPatches { + class AGM_GForces { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_GForces { + clientInit = "call compile preprocessFileLineNumbers '\AGM_GForces\clientInit.sqf'"; + }; +}; + +class CfgWeapons { + class ItemCore; + class Uniform_Base: ItemCore { + AGM_GForceCoef = 1; + }; + + class U_B_PilotCoveralls: Uniform_Base { + AGM_GForceCoef = 0.8; + }; + class U_I_pilotCoveralls: Uniform_Base { + AGM_GForceCoef = 0.8; + }; + class U_O_PilotCoveralls: Uniform_Base { + AGM_GForceCoef = 0.8; + }; +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + AGM_GForceCoef = 1; + }; + + class B_Soldier_05_f; + class B_Pilot_F: B_Soldier_05_f { + AGM_GForceCoef = 0.75; + }; + class I_Soldier_04_F; + class I_pilot_F: I_Soldier_04_F { + AGM_GForceCoef = 0.75; + }; + class O_helipilot_F; + class O_Pilot_F: O_helipilot_F { + AGM_GForceCoef = 0.75; + }; +}; diff --git a/TO_MERGE/agm/Goggles/CfgFunctions.hpp b/TO_MERGE/agm/Goggles/CfgFunctions.hpp new file mode 100644 index 0000000000..4ff3eb37cd --- /dev/null +++ b/TO_MERGE/agm/Goggles/CfgFunctions.hpp @@ -0,0 +1,25 @@ +class CfgFunctions{ + class AGM_Goggles{ + class AGM_Goggles{ + file="AGM_Goggles\functions"; + class Init{postInit = 1;}; + class ApplyGlassesEffect; + class RemoveGlassesEffect; + class ApplyDirtEffect; + class RemoveDirtEffect; + class isGogglesVisible; + class isDivingGoggles; + class ClearGlasses; + class CheckGoggles; + class GetExplosionIndex; + class RainEffect; + class RemoveRainEffect; + class DustHandler; + class ExternalCamera; + class isInRotorWash; + class OnEachFrame; + class ApplyDust; + class RemoveDustEffect; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/RscTitles.hpp b/TO_MERGE/agm/Goggles/RscTitles.hpp new file mode 100644 index 0000000000..15a83a71ce --- /dev/null +++ b/TO_MERGE/agm/Goggles/RscTitles.hpp @@ -0,0 +1,42 @@ +class RscTitles{ + #include "define.hpp" + + class RscAGM_Goggles_BaseTitle{ + idd = -1; + onLoad = "uiNamespace setVariable ['AGM_Goggles_Display', _this select 0]"; + onUnload = "uiNamespace setVariable ['AGM_Goggles_Display', displayNull]"; + fadeIn=0.5; + fadeOut=0.5; + movingEnable = false; + duration = 10e10; + name = "RscAGM_Goggles_BaseTitle"; + class controls; + }; + + class RscAGM_Goggles:RscAGM_Goggles_BaseTitle{ + idd = 1044; + name = "RscAGM_Goggles"; + class controls{ + class gogglesImage: RscPicture{ + idc = 10650; + }; + }; + }; + + class RscAGM_GogglesEffects:RscAGM_Goggles_BaseTitle{ + idd = 1045; + onLoad = "uiNamespace setVariable ['AGM_Goggles_DisplayEffects', _this select 0]"; + onUnload = "uiNamespace setVariable ['AGM_Goggles_DisplayEffects', displayNull]"; + name = "RscAGM_GogglesEffects"; + fadeIn=0; + fadeOut=0.5; + class controls{ + class dirtImage: RscPicture { + idc = 10660; + }; + class dustImage: RscPicture { + idc = 10662; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/anim/WipeGlasses.rtm b/TO_MERGE/agm/Goggles/anim/WipeGlasses.rtm new file mode 100644 index 0000000000..6038fe3357 Binary files /dev/null and b/TO_MERGE/agm/Goggles/anim/WipeGlasses.rtm differ diff --git a/TO_MERGE/agm/Goggles/anim/model.cfg b/TO_MERGE/agm/Goggles/anim/model.cfg new file mode 100644 index 0000000000..00ce647aa7 --- /dev/null +++ b/TO_MERGE/agm/Goggles/anim/model.cfg @@ -0,0 +1,128 @@ +class CfgSkeletons +{ + class Default + { + isDiscrete = 1; + skeletonInherit = ""; + skeletonBones[] = {}; + }; + class OFP2_ManSkeleton + { + isDiscrete = 0; + skeletonInherit = ""; + skeletonBones[] = + { + "Pelvis","", + "Spine","Pelvis", + "Spine1","Spine", + "Spine2","Spine1", + "Spine3","Spine2", + "Camera","Pelvis", + "weapon","Spine1", + "launcher","Spine1", + //Head skeleton in hierarchy + "neck","Spine3", + "neck1","neck", + "head","neck1", + //New facial features + "Face_Hub","head", + "Face_Jawbone","Face_Hub", + "Face_Jowl","Face_Jawbone", + "Face_chopRight","Face_Jawbone", + "Face_chopLeft","Face_Jawbone", + "Face_LipLowerMiddle","Face_Jawbone", + "Face_LipLowerLeft","Face_Jawbone", + "Face_LipLowerRight","Face_Jawbone", + "Face_Chin","Face_Jawbone", + "Face_Tongue","Face_Jawbone", + "Face_CornerRight","Face_Hub", + "Face_CheekSideRight","Face_CornerRight", + "Face_CornerLeft","Face_Hub", + "Face_CheekSideLeft","Face_CornerLeft", + "Face_CheekFrontRight","Face_Hub", + "Face_CheekFrontLeft","Face_Hub", + "Face_CheekUpperRight","Face_Hub", + "Face_CheekUpperLeft","Face_Hub", + "Face_LipUpperMiddle","Face_Hub", + "Face_LipUpperRight","Face_Hub", + "Face_LipUpperLeft","Face_Hub", + "Face_NostrilRight","Face_Hub", + "Face_NostrilLeft","Face_Hub", + "Face_Forehead","Face_Hub", + "Face_BrowFrontRight","Face_Forehead", + "Face_BrowFrontLeft","Face_Forehead", + "Face_BrowMiddle","Face_Forehead", + "Face_BrowSideRight","Face_Forehead", + "Face_BrowSideLeft","Face_Forehead", + "Face_Eyelids","Face_Hub", + "Face_EyelidUpperRight","Face_Hub", + "Face_EyelidUpperLeft","Face_Hub", + "Face_EyelidLowerRight","Face_Hub", + "Face_EyelidLowerLeft","Face_Hub", + "EyeLeft","Face_Hub", + "EyeRight","Face_Hub", + //Left upper side + "LeftShoulder","Spine3", + "LeftArm","LeftShoulder", + "LeftArmRoll","LeftArm", + "LeftForeArm","LeftArmRoll", + "LeftForeArmRoll","LeftForeArm", + "LeftHand","LeftForeArmRoll", + "LeftHandRing","LeftHand", + "LeftHandRing1","LeftHandRing", + "LeftHandRing2","LeftHandRing1", + "LeftHandRing3","LeftHandRing2", + "LeftHandPinky1","LeftHandRing", + "LeftHandPinky2","LeftHandPinky1", + "LeftHandPinky3","LeftHandPinky2", + "LeftHandMiddle1","LeftHand", + "LeftHandMiddle2","LeftHandMiddle1", + "LeftHandMiddle3","LeftHandMiddle2", + "LeftHandIndex1","LeftHand", + "LeftHandIndex2","LeftHandIndex1", + "LeftHandIndex3","LeftHandIndex2", + "LeftHandThumb1","LeftHand", + "LeftHandThumb2","LeftHandThumb1", + "LeftHandThumb3","LeftHandThumb2", + //Right upper side + "RightShoulder","Spine3", + "RightArm","RightShoulder", + "RightArmRoll","RightArm", + "RightForeArm","RightArmRoll", + "RightForeArmRoll","RightForeArm", + "RightHand","RightForeArmRoll", + "RightHandRing","RightHand", + "RightHandRing1","RightHandRing", + "RightHandRing2","RightHandRing1", + "RightHandRing3","RightHandRing2", + "RightHandPinky1","RightHandRing", + "RightHandPinky2","RightHandPinky1", + "RightHandPinky3","RightHandPinky2", + "RightHandMiddle1","RightHand", + "RightHandMiddle2","RightHandMiddle1", + "RightHandMiddle3","RightHandMiddle2", + "RightHandIndex1","RightHand", + "RightHandIndex2","RightHandIndex1", + "RightHandIndex3","RightHandIndex2", + "RightHandThumb1","RightHand", + "RightHandThumb2","RightHandThumb1", + "RightHandThumb3","RightHandThumb2", + //Left lower side + "LeftUpLeg","Pelvis", + "LeftUpLegRoll","LeftUpLeg", + "LeftLeg","LeftUpLegRoll", + "LeftLegRoll","LeftLeg", + "LeftFoot","LeftLegRoll", + "LeftToeBase","LeftFoot", + //Right lower side + "RightUpLeg","Pelvis", + "RightUpLegRoll","RightUpLeg", + "RightLeg","RightUpLegRoll", + "RightLegRoll","RightLeg", + "RightFoot","RightLegRoll", + "RightToeBase","RightFoot" + }; + // location of pivot points (local axes) for hierarchical animation + pivotsModel="A3\anims_f\data\skeleton\SkeletonPivots.p3d"; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/config.cpp b/TO_MERGE/agm/Goggles/config.cpp new file mode 100644 index 0000000000..8bc8ffa9b5 --- /dev/null +++ b/TO_MERGE/agm/Goggles/config.cpp @@ -0,0 +1,295 @@ +#define COLOUR 8.0 +class CfgPatches { + class AGM_Goggles { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"Garth 'L-H' de Wet"}; + authorUrl = "https://github.com/CorruptedHeart"; + }; +}; + +#include "CfgFunctions.hpp" +#define COMBAT_GOGGLES AGM_Overlay="AGM_Goggles\textures\HUD\CombatGoggles.paa"; \ + AGM_OverlayCracked = "AGM_Goggles\textures\HUD\CombatGogglesCracked.paa"; \ + AGM_Resistance = 2; \ + AGM_Protection = 1; + +class CfgGlasses { + class None { + AGM_Color[] = {0,0,0}; + AGM_TintAmount=0; + AGM_Overlay = ""; + AGM_OverlayDirt = "A3\Ui_f\data\igui\rsctitles\HealthTextures\dust_upper_ca.paa"; + AGM_OverlayCracked = "AGM_Goggles\textures\HUD\Cracked.paa"; + AGM_Resistance = 0; + AGM_Protection = 0; + AGM_DustPath = "AGM_Goggles\textures\fx\dust\%1.paa"; + }; + + class G_Combat:None { + COMBAT_GOGGLES + }; + + class G_Diving { + AGM_Overlay="AGM_Goggles\textures\HUD\DivingGoggles.paa"; + AGM_OverlayCracked = "AGM_Goggles\textures\HUD\DivingGogglesCracked.paa"; + AGM_Resistance = 2; + AGM_Protection = 1; + }; + + class G_Lowprofile:None { + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 2; + AGM_Protection = 1; + }; + + class G_Shades_Black:None { + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + }; + + class G_Shades_Blue:None{ + AGM_Color[] = {0,0,1}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Shades_Green:None{ + AGM_Color[] = {0,1,0}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Shades_Red:None{ + AGM_Color[] = {1,0,0}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Spectacles:None{ + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Spectacles_Tinted:None{ + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + }; + + class G_Sport_Blackred:None{ + AGM_Color[] = {1,0,0}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Sport_BlackWhite:None{ + AGM_Color[] = {0,0,1}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Sport_Blackyellow:None{ + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + }; + + class G_Sport_Checkered:None{ + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + }; + + class G_Sport_Greenblack:None{ + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + }; + + class G_Sport_Red:None{ + AGM_TintAmount=COLOUR*2; + AGM_Color[] = {0,0,0}; + AGM_Resistance = 1; + }; + + class G_Squares:None{ + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Squares_Tinted:None{ + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Tactical_Black:None{ + AGM_TintAmount=COLOUR; + AGM_Color[] = {0,0,-1.5}; + AGM_Resistance = 1; + }; + + class G_Tactical_Clear:None{ + AGM_TintAmount=COLOUR; + AGM_Color[] = {0,0,-1}; + AGM_Resistance = 1; + }; + + class G_Aviator:None{ + AGM_Color[] = {0,0,-1}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Lady_Blue:None{ + AGM_Color[] = {0,0,1}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Lady_Red:None{ + AGM_Color[] = {1,0,0}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class G_Lady_Dark:None{ + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + }; + + class G_Lady_Mirror:None{ + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + }; + + class AV_ESS_blk:None{ + COMBAT_GOGGLES + }; + + class G_Balaclava_blk; + + class G_Balaclava_combat:G_Balaclava_blk { + COMBAT_GOGGLES + }; + + class G_Balaclava_lowprofile:G_Balaclava_blk { + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 2; + AGM_Protection = 1; + }; + + class G_Bandanna_blk; + class G_Bandanna_shades:G_Bandanna_blk { + AGM_TintAmount=COLOUR*2; + AGM_Resistance = 1; + AGM_Protection = 1; + }; + class G_Bandanna_sport:G_Bandanna_blk { + AGM_Color[] = {1,0,0}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + AGM_Protection = 1; + }; + class G_Bandanna_aviator:G_Bandanna_blk { + AGM_Color[] = {0,0,-1}; + AGM_TintAmount=COLOUR; + AGM_Resistance = 1; + AGM_Protection = 1; + }; +}; + +#include "RscTitles.hpp" + +class CfgMovesBasic +{ + class ManActions + { + GestureWipeFace[] = {"GestureWipeFace", "gesture"}; + }; +}; + +class CfgGesturesMale +{ + class States + { + class GestureFreezeStand; + class GestureWipeFace: GestureFreezeStand + { + file = "\AGM_Goggles\anim\WipeGlasses.rtm"; + canPullTrigger = 0; + }; + }; +}; + +class CfgWeapons{ + class H_HelmetB; + + class H_CrewHelmetHeli_B:H_HelmetB { + AGM_Protection = 1; + }; + class H_PilotHelmetHeli_B:H_HelmetB { + AGM_Protection = 1; + }; + class H_PilotHelmetFighter_B:H_HelmetB { + AGM_Protection = 1; + }; +}; + +class RifleAssaultCloud { + AGM_Goggles_BulletCount = 4; +}; +class MachineGunCloud { + AGM_Goggles_BulletCount = 3; +}; +class SniperCloud { + AGM_Goggles_BulletCount = 1; +}; + +class AGM_Core_Default_Keys { + class wipeGlasses { + displayName = $STR_AGM_Goggles_WipeGlasses; + condition = "!(player getVariable['AGM_isUnconscious', false])"; + statement = "call AGM_Goggles_fnc_ClearGlasses;"; + key = 20; // T + shift = 1; + control = 1; + alt = 0; + }; +}; + +class AGM_Core_Options { + class showInThirdPerson { + displayName = $STR_AGM_Goggles_ShowInThirdPerson; + default = 0; + }; +}; + +class CfgCloudlets { + class Default; + class AGMRainEffect:Default { + interval = 0.001; + particleShape = "\A3\data_f\ParticleEffects\Universal\Refract"; + particleFSNtieth = 1; + particleFSIndex = 0; + particleFSFrameCount = 1; + particleFSLoop = 1; + + particleType = "Billboard"; + lifeTime = 0.5; + rotationVelocity = 1; + weight = 100; + volume = 0.000; + rubbing = 1.7; + size[] = {0.1}; + color[] = {{1,1,1,1}}; + animationSpeed[] = {0,1}; + randomDirectionPeriod = 0.2; + randomDirectionIntensity = 1.2; + positionVar[] = {2, 2, 2.5}; + sizeVar = 0.01; + colorVar[] = {0, 0, 0, 0.1}; + destroyOnWaterSurface = 1; + }; +}; diff --git a/TO_MERGE/agm/Goggles/define.hpp b/TO_MERGE/agm/Goggles/define.hpp new file mode 100644 index 0000000000..3e7666bfaa --- /dev/null +++ b/TO_MERGE/agm/Goggles/define.hpp @@ -0,0 +1,27 @@ +// Control types +#define CT_STATIC 0 +#define ST_PICTURE 0x30 + +//////////////// +//Base Classes// +//////////////// + +class RscPicture +{ + access = 0; + idc = -1; + type = CT_STATIC; + style = ST_PICTURE; + colorBackground[] = {0,0,0,0}; + colorText[] = {1,1,1,1}; + font = "puristaMedium"; + sizeEx = 0; + lineSpacing = 0; + fixedWidth = 0; + shadow = 0; + text = ""; + x = safezoneX; + y = safezoneY; + w = safezoneW; + h = safezoneH; +}; diff --git a/TO_MERGE/agm/Goggles/functions/fn_ApplyDirtEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_ApplyDirtEffect.sqf new file mode 100644 index 0000000000..eea86c295e --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_ApplyDirtEffect.sqf @@ -0,0 +1,32 @@ +/* + Name: AGM_Goggles_fnc_ApplyDirtEffect + + Author: Garth de Wet (LH) + + Description: + Adds dirt effect to the glasses. + + Parameters: + Nothing + + Returns: + BOOLEAN - True if succeeded false if not + + Example: + call AGM_Goggles_fnc_ApplyDirtEffect; +*/ +#include "\AGM_Goggles\script.sqf" + +if (cameraOn != player || call AGM_Goggles_fnc_ExternalCamera) exitWith{false}; +private "_dirtImage"; +AGM_Goggles_Effects set [DIRT, true]; + +if (player call AGM_Goggles_fnc_isGogglesVisible) then{ + _dirtImage = getText(ConfigFile >> "CfgGlasses" >> goggles player >> "AGM_OverlayDirt"); + if (_dirtImage != "") then { + 100 cutRsc["RscAGM_GogglesEffects", "PLAIN",0.1, false]; + (uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull] displayCtrl 10660) ctrlSetText _dirtImage; + }; +}; + +true \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/functions/fn_ApplyDust.sqf b/TO_MERGE/agm/Goggles/functions/fn_ApplyDust.sqf new file mode 100644 index 0000000000..b01408ed7b --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_ApplyDust.sqf @@ -0,0 +1,69 @@ +/* + Name: AGM_Goggles_fnc_ApplyDust + + Author: Garth de Wet (LH) + + Description: + Applies dust to screen. + + Parameters: + Nothing + + Returns: + Nothing + + Example 1: + call AGM_Goggles_fnc_ApplyDust; +*/ +#include "\AGM_Goggles\script.sqf" +if (call AGM_Goggles_fnc_ExternalCamera) exitWith {}; +if (player call AGM_Goggles_fnc_isGogglesVisible) exitWith { + 100 cutRsc["RscAGM_GogglesEffects", "PLAIN",2,false]; + (uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull] displayCtrl 10662) ctrlSetText format[getText(ConfigFile >> "CfgGlasses" >> AGM_Goggles_Current >> "AGM_DustPath"), GETDUSTT(DAMOUNT)+1]; + SETDUST(DAMOUNT,CLAMP(GETDUSTT(DAMOUNT)+1,0,1)); + SETDUST(DBULLETS,0); +}; + +if (player getVariable ["AGM_EyesDamaged", false]) exitWith {SETDUST(DACTIVE,false);SETDUST(DBULLETS,0);SETDUST(DAMOUNT,0);}; +SETDUST(DAMOUNT,CLAMP(GETDUSTT(DAMOUNT)+1,0,2)); + +private "_amount"; +_amount = 1 - (GETDUSTT(DAMOUNT) * 0.125); + +AGM_Goggles_PostProcessEyes ppEffectAdjust[1, 1, 0, [0,0,0,0], [_amount,_amount,_amount,_amount],[1,1,1,0]]; +AGM_Goggles_PostProcessEyes ppEffectCommit 1; +AGM_Goggles_PostProcessEyes ppEffectEnable true; +if !(scriptDone AGM_Goggles_DustHandler) then { + terminate AGM_Goggles_DustHandler; +}; +SETDUST(DBULLETS,0); +AGM_Goggles_DustHandler = [3] spawn { + private ["_loop", "_timeToSleep"]; + _timeToSleep = _this select 0; + _loop = true; + while {_loop} do { + sleep _timeToSleep; + _timeToSleep = GETDUSTT(DTIME); + + if(_timeToSleep >= (time - 2.5)) then { + _timeToSleep = time - _timeToSleep; + } else { + SETDUST(DAMOUNT,CLAMP(GETDUSTT(DAMOUNT)-1,0,2)); + private "_amount"; + _amount = 1 - (GETDUSTT(DAMOUNT) * 0.125); + if !(player getVariable ["AGM_EyesDamaged", false]) then { + AGM_Goggles_PostProcessEyes ppEffectAdjust[1, 1, 0, [0,0,0,0], [_amount,_amount,_amount,_amount],[1,1,1,0]]; + AGM_Goggles_PostProcessEyes ppEffectCommit 1; + sleep 1; + }; + if (GETDUSTT(DAMOUNT) <= 0) then { + AGM_Goggles_PostProcessEyes ppEffectEnable false; + SETDUST(DACTIVE,false); + SETDUST(DBULLETS,0); + _loop = false; + }; + SETDUST(DTIME,time); + _timeToSleep = 3; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/functions/fn_ApplyGlassesEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_ApplyGlassesEffect.sqf new file mode 100644 index 0000000000..df535485d9 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_ApplyGlassesEffect.sqf @@ -0,0 +1,53 @@ +/* + Name: AGM_Goggles_fnc_ApplyGlassesEffect + + Author: Garth de Wet (LH) + + Description: + Sets screen tint for glasses. + Sets screen overlay for glasses. (broken/fixed) + Sets dirt/rain overlay for glasses. + + Parameters: + 0: STRING - Glasses class name to be applied. + + Returns: + Nothing + + Example: + (goggles player) call AGM_Goggles_fnc_ApplyGlassesEffect; +*/ +#include "\AGM_Goggles\script.sqf" +private["_postProcessColour", "_postProcessTintAmount", "_glassesClassname", "_glassImagePath"]; + +_glassesClassname = _this; +_postProcessColour = getArray(configFile >> "CfgGlasses" >> _glassesClassname >> "AGM_Color"); +_postProcessTintAmount = getNumber(configFile >> "CfgGlasses" >> _glassesClassname >> "AGM_TintAmount"); + +call AGM_Goggles_fnc_RemoveGlassesEffect; +AGM_Goggles_EffectsActive = true; + +if (_postProcessTintAmount != 0 && {AGM_Goggles_UsePP}) then { + _postProcessColour set [3, _postProcessTintAmount/100]; + AGM_Goggles_PostProcess ppEffectAdjust[0.9, 1.1, 0.004, _postProcessColour, [0,0,0,1],[0,0,0,0]]; + AGM_Goggles_PostProcess ppEffectCommit 0; + AGM_Goggles_PostProcess ppEffectEnable true; +}; + +_glassImagePath = getText(configFile >> "CfgGlasses" >> _glassesClassname >> "AGM_Overlay"); +if GETBROKEN then { + _glassImagePath = getText(configFile >> "CfgGlasses" >> _glassesClassname >> "AGM_OverlayCracked"); +}; +if (_glassImagePath != "") then { + 150 cutRsc["RscAGM_Goggles", "PLAIN",1, false]; + (GLASSDISPLAY displayCtrl 10650) ctrlSetText _glassImagePath; +}; + +if GETDIRT then { + call AGM_Goggles_fnc_ApplyDirtEffect; +}; + +if GETDUSTT(DACTIVE) then { + SETDUST(DAMOUNT,CLAMP(GETDUSTT(DAMOUNT)-1,0,2)); + call AGM_Goggles_fnc_ApplyDust; +}; diff --git a/TO_MERGE/agm/Goggles/functions/fn_CheckGoggles.sqf b/TO_MERGE/agm/Goggles/functions/fn_CheckGoggles.sqf new file mode 100644 index 0000000000..e03bbc6069 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_CheckGoggles.sqf @@ -0,0 +1,52 @@ +/* + Author: Garth de Wet (LH) + + Description: + Performs rain checks and checks to see whether glasses effects have been applied or not. + Checks for external camera and removes effects. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + [] execVM "AGM_Goggles\functions\fn_CheckGoggles.sqf"; +*/ +#include "\AGM_Goggles\script.sqf" +waitUntil {sleep 0.46;alive player}; +call AGM_Goggles_fnc_CheckGlasses; +["AGM_Goggles_RotorWash", "OnEachFrame", {call AGM_Goggles_fnc_OnEachFrame;}] call BIS_fnc_addStackedEventHandler; +[] spawn AGM_Goggles_fnc_RainEffect; +while {alive player} do { + sleep 1; + if (true) then { + // Detect if curator interface is open and disable effects + if (!isNull(findDisplay 312)) exitWith { + if (AGM_Goggles_EffectsActive) then { + call AGM_Goggles_fnc_RemoveGlassesEffect; + }; + }; + call AGM_Goggles_fnc_CheckGlasses; + if !(player call AGM_Goggles_fnc_isGogglesVisible) exitWith { + if (AGM_Goggles_EffectsActive) then { + call AGM_Goggles_fnc_RemoveGlassesEffect; + }; + }; + if (call AGM_Goggles_fnc_ExternalCamera) exitWith { + if (AGM_Goggles_EffectsActive) then { + call AGM_Goggles_fnc_RemoveGlassesEffect; + }; + }; + if !(AGM_Goggles_EffectsActive) then { + (goggles player) call AGM_Goggles_fnc_ApplyGlassesEffect; + } else { + if ((goggles player) call AGM_Goggles_fnc_isDivingGoggles && {underwater player}) then { + call AGM_Goggles_fnc_RemoveRainEffect; + call AGM_Goggles_fnc_RemoveDirtEffect; + call AGM_Goggles_fnc_RemoveDustEffect; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/functions/fn_ClearGlasses.sqf b/TO_MERGE/agm/Goggles/functions/fn_ClearGlasses.sqf new file mode 100644 index 0000000000..ab85238818 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_ClearGlasses.sqf @@ -0,0 +1,39 @@ +/* + Name: AGM_Goggles_fnc_ClearGlasses + + Author: Garth de Wet (LH) + + Description: + Clears all dirt, rain, dust from glasses. + Removes glasses effect (PP, overlay) and then puts it back. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Goggles_fnc_ClearGlasses; +*/ +#include "\AGM_Goggles\script.sqf" + +private "_broken"; +_broken = GETBROKEN; +AGM_Goggles_Effects = GLASSESDEFAULT; +AGM_Goggles_Effects set [BROKEN, _broken]; + +if ((stance player) != "PRONE") then { + player playActionNow "gestureWipeFace"; +}; + +null = [] spawn { + sleep 0.3; + if (cameraView == "INTERNAL") then { + addCamShake [5, 1.75, 2]; + }; +}; + +call AGM_Goggles_fnc_RemoveDirtEffect; +call AGM_Goggles_fnc_RemoveRainEffect; +call AGM_Goggles_fnc_RemoveDustEffect; diff --git a/TO_MERGE/agm/Goggles/functions/fn_DustHandler.sqf b/TO_MERGE/agm/Goggles/functions/fn_DustHandler.sqf new file mode 100644 index 0000000000..a4457815e1 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_DustHandler.sqf @@ -0,0 +1,75 @@ +/* + Name: AGM_Goggles_fnc_DustHandler + + Author: Garth de Wet (LH) + + Description: + Determines whether to place dust on the goggles, based on calibre of weapon fired and other requirements. + + Parameters: + 0: Object - unit - eventhandler was attached to. (Used) + 1: String - weapon - Weapon fired (Used) + + Returns: + Nothing + + Example: + player addEventHandler ["Fired", {[_this select 0, _this select 1] call AGM_Goggles_fnc_DustHandler;}]; + See http://community.bistudio.com/wiki/ArmA_3:_Event_Handlers#Fired +*/ +#include "\AGM_Goggles\script.sqf" + +private ["_bullets", "_position", "_surface", "_found", "_weapon", "_cloudType"]; +_weapon = _this select 1; +_cloudType = ""; + +if ((_this select 0) != player) exitWith {true}; + +if (isClass(configFile >> "CfgWeapons" >> _weapon >> "GunParticles" >> "FirstEffect")) then { + _cloudType = getText(configFile >> "CfgWeapons" >> _weapon >> "GunParticles" >> "FirstEffect" >> "effectName"); +} else { + if (isClass(configFile >> "CfgWeapons" >> _weapon >> "GunParticles" >> "effect1")) then { + _cloudType = getText(configFile >> "CfgWeapons" >> _weapon >> "GunParticles" >> "effect1" >> "effectName"); + }; +}; + +if (_cloudType == "") exitWith {true}; +if (rain > 0.1) exitWith {true}; +if ((stance player) != "PRONE") exitWith {true}; + +_position = getPosATL player; + +if (surfaceIsWater _position) exitWith {}; +if ((_position select 2) > 0.2) exitWith {}; + +_surface = surfaceType _position; +_surface = ([_surface, "#"] call CBA_fnc_split) select 1; +_found = false; + +_found = getNumber (ConfigFile >> "CfgSurfaces" >> _surface >> "dust") >= 0.1; + +if (!_found) exitWith {}; + +_bullets = GETDUSTT(DBULLETS); + +if ((time - GETDUSTT(DTIME)) > 1) then { + _bullets = 0; +}; + +_bullets = _bullets + 1; +SETDUST(DBULLETS,_bullets); +SETDUST(DTIME,time); + +if (GETDUSTT(DAMOUNT) < 2) then { + private "_bulletsRequired"; + _bulletsRequired = 100; + if (isNumber (ConfigFile >> _cloudType >> "AGM_Goggles_BulletCount")) then { + _bulletsRequired = getNumber (ConfigFile >> _cloudType >> "AGM_Goggles_BulletCount"); + }; + + if (_bulletsRequired <= _bullets) then { + SETDUST(DACTIVE,true); + call AGM_Goggles_fnc_ApplyDust; + }; +}; +true diff --git a/TO_MERGE/agm/Goggles/functions/fn_ExternalCamera.sqf b/TO_MERGE/agm/Goggles/functions/fn_ExternalCamera.sqf new file mode 100644 index 0000000000..d3e3f98366 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_ExternalCamera.sqf @@ -0,0 +1,19 @@ +/* + Name: AGM_Goggles_fnc_ExternalCamera + + Author: Garth de Wet (LH) + + Description: + Returns if the camera is external or not. + + Parameters: + Nothing + + Returns: + Boolean - whether the camera is in external view or not. + + Example: + call AGM_Goggles_fnc_ExternalCamera; +*/ +if (profileNamespace getVariable ["AGM_showInThirdPerson", false]) exitWith { false }; +(cameraView == "External") diff --git a/TO_MERGE/agm/Goggles/functions/fn_GetExplosionIndex.sqf b/TO_MERGE/agm/Goggles/functions/fn_GetExplosionIndex.sqf new file mode 100644 index 0000000000..e7ac8b04f6 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_GetExplosionIndex.sqf @@ -0,0 +1,28 @@ +/* + Name: AGM_Goggles_fnc_GetExplosionIndex + + Author: Garth de Wet (LH) + + Description: + Turns 0-1 damage into a rating system of 0-3 + + Parameters: + 0: NUMBER - The amount of damage + + Returns: + NUMBER (the rating) [0-3] + + Example: + _rating = 0.05 call AGM_Goggles_fnc_GetExplosionIndex +*/ +private ["_effect", "_effectIndex"]; +_effect = _this; + +_effectIndex = switch true do { + case (_effect <= 0.04): {0}; + case (_effect <= 0.06): {1}; + case (_effect <= 0.09): {2}; + default {3}; +}; + +_effectIndex diff --git a/TO_MERGE/agm/Goggles/functions/fn_Init.sqf b/TO_MERGE/agm/Goggles/functions/fn_Init.sqf new file mode 100644 index 0000000000..7a8710c7f7 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_Init.sqf @@ -0,0 +1,111 @@ +/* + Name: AGM_Goggles_fnc_Init + + Author: Garth de Wet (LH) + + Description: + Sets up the glasses mod for usage. Initialises variables and event handlers. + Shouldn't be called by a user/modder ever. Done by the engine. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Goggles_fnc_Init; +*/ +if (!hasInterface) exitWith {}; +#include "\AGM_Goggles\script.sqf" + +if isNil("AGM_Goggles_UsePP") then { + AGM_Goggles_UsePP = true; +}; + +AGM_Goggles_PostProcess = ppEffectCreate ["ColorCorrections", 1995]; +AGM_Goggles_PostProcessEyes = ppEffectCreate ["ColorCorrections", 1992]; +AGM_Goggles_PostProcessEyes ppEffectAdjust[1, 1, 0, [0,0,0,0], [0,0,0,1],[1,1,1,0]]; +AGM_Goggles_PostProcessEyes ppEffectCommit 0; +AGM_Goggles_PostProcessEyes ppEffectEnable false; +AGM_Goggles_EffectsActive = false; +AGM_Goggles_Effects = GLASSESDEFAULT; +AGM_Goggles_Current = "None"; +AGM_Goggles_EyesDamageScript = 0 spawn {}; +AGM_Goggles_FrameEvent = [false, [false,20]]; +AGM_Goggles_PostProcessEyes_Enabled = false; +AGM_Goggles_DustHandler = 0 spawn {}; +AGM_Goggles_RainDrops = objNull; + +AGM_Goggles_fnc_CheckGlasses = { + if (AGM_Goggles_Current != (goggles player)) then { + AGM_Goggles_Current = (goggles player); + ["GlassesChanged",[AGM_Goggles_Current]] call CBA_fnc_localEvent; + }; +}; + +player addEventHandler ["Explosion", { + if (alive player) then { + call AGM_Goggles_fnc_ApplyDirtEffect; + if (GETBROKEN) exitWith {}; + if (((_this select 1) call AGM_Goggles_fnc_GetExplosionIndex) < getNumber(ConfigFile >> "CfgGlasses" >> AGM_Goggles_Current >> "AGM_Resistance")) exitWith {}; + if !(player call AGM_Goggles_fnc_isGogglesVisible) exitWith {["GlassesCracked",[player]] call CBA_fnc_localEvent;}; + AGM_Goggles_Effects set [BROKEN, true]; + if (getText(ConfigFile >> "CfgGlasses" >> AGM_Goggles_Current >> "AGM_OverlayCracked") != "" && {cameraOn == player}) then { + if (call AGM_Goggles_fnc_ExternalCamera) exitWith {}; + if (isNull(GLASSDISPLAY)) then { + 150 cutRsc["RscAGM_Goggles", "PLAIN",1, false]; + }; + (GLASSDISPLAY displayCtrl 10650) ctrlSetText getText(ConfigFile >> "CfgGlasses" >> AGM_Goggles_Current >> "AGM_OverlayCracked"); + }; + ["GlassesCracked",[player]] call CBA_fnc_localEvent; + }; +}]; +player addEventHandler ["Killed",{ + [] spawn { + sleep 2; + AGM_Goggles_PostProcessEyes ppEffectEnable false; + AGM_Goggles_Effects = GLASSESDEFAULT; + call AGM_Goggles_fnc_RemoveGlassesEffect; + AGM_Goggles_EffectsActive=false; + player setVariable ["AGM_EyesDamaged", false]; + terminate AGM_Goggles_EyesDamageScript; + terminate AGM_Goggles_MainLoop; + terminate AGM_Goggles_DustHandler; + AGM_Goggles_MainLoop = [] spawn AGM_Goggles_fnc_CheckGoggles; + }; +}]; +player addEventHandler ["Fired",{[_this select 0, _this select 1] call AGM_Goggles_fnc_DustHandler;}]; +player AddEventHandler ["Take",{call AGM_Goggles_fnc_CheckGlasses;}]; +player AddEventHandler ["Put", {call AGM_Goggles_fnc_CheckGlasses;}]; + +["GlassesChanged",{ + AGM_Goggles_Effects = GLASSESDEFAULT; + + if (call AGM_Goggles_fnc_ExternalCamera) exitWith {call AGM_Goggles_fnc_RemoveGlassesEffect}; + + if (player call AGM_Goggles_fnc_isGogglesVisible) then { + (_this select 0) call AGM_Goggles_fnc_ApplyGlassesEffect; + } else { + call AGM_Goggles_fnc_RemoveGlassesEffect; + }; +}] call CBA_fnc_addEventHandler; +["GlassesCracked",{ + if (_this select 0 != player) exitWith {}; + player setVariable ["AGM_EyesDamaged", true]; + if !(scriptDone AGM_Goggles_EyesDamageScript) then { + terminate AGM_Goggles_EyesDamageScript; + }; + AGM_Goggles_PostProcessEyes ppEffectAdjust[1, 1, 0, [0,0,0,0], [0.5,0.5,0.5,0.5],[1,1,1,0]]; + AGM_Goggles_PostProcessEyes ppEffectCommit 0; + AGM_Goggles_PostProcessEyes ppEffectEnable true; + AGM_Goggles_EyesDamageScript = [] spawn { + sleep 25; + AGM_Goggles_PostProcessEyes ppEffectAdjust[1, 1, 0, [0,0,0,0], [1,1,1,1],[1,1,1,0]]; + AGM_Goggles_PostProcessEyes ppEffectCommit 5; + sleep 5; + AGM_Goggles_PostProcessEyes ppEffectEnable false; + player setVariable ["AGM_EyesDamaged", false]; + }; +}] call CBA_fnc_addEventHandler; +AGM_Goggles_MainLoop = [] spawn AGM_Goggles_fnc_CheckGoggles; diff --git a/TO_MERGE/agm/Goggles/functions/fn_OnEachFrame.sqf b/TO_MERGE/agm/Goggles/functions/fn_OnEachFrame.sqf new file mode 100644 index 0000000000..660c3d7afa --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_OnEachFrame.sqf @@ -0,0 +1,80 @@ +/* + Name: AGM_Goggles_fnc_OnEachFrame + + Author: Garth de Wet (LH) + + Description: + Runs every frame checking for helicopters. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + ["AGM_Goggles_RotorWash", "OnEachFrame", "call AGM_Goggles_fnc_OnEachFrame;"] call BIS_fnc_addStackedEventHandler; +*/ +#include "\AGM_Goggles\script.sqf" +if (isNull(player)) then { + ["AGM_Goggles_RotorWash", "OnEachFrame"] call BIS_fnc_removeStackedEventHandler; +}; +AGM_Goggles_FrameEvent set [0, !(AGM_Goggles_FrameEvent select 0)]; +if (AGM_Goggles_FrameEvent select 0) exitWith { + if (vehicle player != player && {!([player] call AGM_Core_fnc_isTurnedOut)}) exitWith {(AGM_Goggles_FrameEvent select 1) set [0, false]; }; + AGM_Goggles_FrameEvent set [1, ([player] call AGM_Goggles_fnc_isInRotorWash)]; +}; +private ["_rotorWash","_safe"]; +_rotorWash = AGM_Goggles_FrameEvent select 1; +_safe = false; +if !(_rotorWash select 0) exitWith { + if (AGM_Goggles_PostProcessEyes_Enabled) then { + AGM_Goggles_PostProcessEyes_Enabled = false; + if (!scriptDone (AGM_Goggles_DustHandler)) then { + terminate AGM_Goggles_DustHandler; + }; + AGM_Goggles_DustHandler = [] spawn { + AGM_Goggles_PostProcessEyes ppEffectAdjust [1, 1, 0, [0,0,0,0], [0,0,0,1],[1,1,1,0]]; + AGM_Goggles_PostProcessEyes ppEffectCommit 2; + sleep 2; + AGM_Goggles_PostProcessEyes ppEffectEnable false; + }; + }; +}; +if ((headgear player) != "") then { + _safe = (getNumber (ConfigFile >> "CfgWeapons" >> (headgear player) >> "AGM_Protection") == 1); +}; +if !(_safe) then { + if !(player call AGM_Goggles_fnc_isGogglesVisible) exitWith{}; + if (GETDUSTT(DAMOUNT) < 2) then { + if (!GETDUSTT(DACTIVE)) then { + SETDUST(DACTIVE,true); + call AGM_Goggles_fnc_ApplyDust; + } else { + if ((_rotorWash select 1) > 0.5) then { + call AGM_Goggles_fnc_ApplyDust; + }; + }; + }; + _safe = (getNumber (ConfigFile >> "CfgGlasses" >> AGM_Goggles_Current >> "AGM_Protection") == 1); +}; +if (_safe) exitWith {}; +if ((_rotorWash select 1) <= 15) then { + private "_scale"; + _scale = 0.7; + if ((_rotorWash select 1) != 0) then { + _scale = CLAMP(0.3*(_rotorWash select 1),0.1,0.3); + } else { + _scale = 0.1; + }; + _scale = 1 - _scale; + if (!scriptDone (AGM_Goggles_DustHandler)) then { + terminate AGM_Goggles_DustHandler; + }; + if !(player getVariable ["AGM_EyesDamaged", false]) then { + AGM_Goggles_PostProcessEyes_Enabled = true; + AGM_Goggles_PostProcessEyes ppEffectAdjust [1, 1, 0, [0,0,0,0], [_scale,_scale,_scale,_scale],[1,1,1,0]]; + AGM_Goggles_PostProcessEyes ppEffectCommit 0.5; + AGM_Goggles_PostProcessEyes ppEffectEnable true; + }; +}; diff --git a/TO_MERGE/agm/Goggles/functions/fn_RainEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_RainEffect.sqf new file mode 100644 index 0000000000..a52862a20e --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_RainEffect.sqf @@ -0,0 +1,61 @@ +/* + Name: AGM_Goggles_fnc_RainEffect + + Author: Garth de Wet (LH) + + Description: + + + Parameters: + Nothing + + Returns: + Nothing + + Example: + [] spawn AGM_Goggles_fnc_RainEffect; +*/ +#include "\AGM_Goggles\script.sqf" +AGM_Goggles_RainDrops = objNull; +AGM_Goggles_Rain_Active = false; +_fnc_underCover = { + private ["_pos", "_unit"]; + _unit = (_this select 0); + if (vehicle _unit != _unit && {!([_unit] call AGM_Core_fnc_isTurnedOut)}) exitWith {true}; + _pos = eyePos _unit; + ((positionCameraToWorld [0,0,1] select 2) < ((positionCameraToWorld [0,0,0] select 2) - 0.4)) || {(lineIntersects [_pos, _pos vectorAdd [0,0,15], _unit])} +}; +private ["_lastRain"]; +_lastRain = 0; +while {alive player} do { + sleep 0.5; + if (isNull(findDisplay 312)) then { + // Ignore if player is under water + if (!AGM_Goggles_EffectsActive || {underwater player}) exitWith{call AGM_Goggles_fnc_RemoveRainEffect;}; + if (_lastRain != rain) then { + call AGM_Goggles_fnc_RemoveRainEffect; + _lastRain = rain; + // Rain is happening + if (_lastRain > 0.05 && {!([player] call _fnc_underCover)}) then { + AGM_Goggles_Rain_Active = true; + AGM_Goggles_RainDrops = "#particlesource" createVehicleLocal GetPos player; + AGM_Goggles_RainDrops setParticleClass "AGMRainEffect"; + AGM_Goggles_RainDrops setDropInterval (0.07 * (1.1 - _lastRain)); + AGM_Goggles_RainDrops attachTo [vehicle player,[0,0,0]]; + }; + }else{ + if (_lastRain > 0.05) then { + if (AGM_Goggles_Rain_Active && {[player] call _fnc_underCover}) exitWith { + call AGM_Goggles_fnc_RemoveRainEffect; + }; + if (!AGM_Goggles_Rain_Active) then { + _lastRain = -1; + }; + }; + }; + }else{ + if (AGM_Goggles_Rain_Active) then { + call AGM_Goggles_fnc_RemoveRainEffect; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/functions/fn_RemoveDirtEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_RemoveDirtEffect.sqf new file mode 100644 index 0000000000..0d63dec827 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_RemoveDirtEffect.sqf @@ -0,0 +1,20 @@ +/* + Name: AGM_Goggles_fnc_RemoveDirtEffect + + Author: Garth de Wet (LH) + + Description: + Removes dirt from the glasses. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Goggles_fnc_RemoveDirtEffect; +*/ +if (!isNull(uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull])) then { + (uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull] displayCtrl 10660) ctrlSetText ""; +}; diff --git a/TO_MERGE/agm/Goggles/functions/fn_RemoveDustEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_RemoveDustEffect.sqf new file mode 100644 index 0000000000..a895583e02 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_RemoveDustEffect.sqf @@ -0,0 +1,20 @@ +/* + Name: AGM_Goggles_fnc_RemoveDustEffect + + Author: Garth de Wet (LH) + + Description: + Removes dust from the glasses. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Goggles_fnc_RemoveDustEffect; +*/ +if (!isNull(uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull])) then { + (uiNamespace getVariable ["AGM_Goggles_DisplayEffects", displayNull] displayCtrl 10662) ctrlSetText ""; +}; diff --git a/TO_MERGE/agm/Goggles/functions/fn_RemoveGlassesEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_RemoveGlassesEffect.sqf new file mode 100644 index 0000000000..b80f79a028 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_RemoveGlassesEffect.sqf @@ -0,0 +1,29 @@ +/* + Name: AGM_Goggles_fnc_RemoveGlassesEffect + + Author: Garth de Wet (LH) + + Description: + Removes the glasses effect from the screen, removes dirt effect, removes rain effect, + removes dust effect. Does not reset array (glasses will still be broken, dirty, ect.) + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Goggles_fnc_RemoveGlassesEffect; +*/ +#include "\AGM_Goggles\script.sqf" +AGM_Goggles_EffectsActive = false; +AGM_Goggles_PostProcess ppEffectEnable false; + +if (!isNull(GLASSDISPLAY)) then { + GLASSDISPLAY closeDisplay 0; +}; + +call AGM_Goggles_fnc_RemoveDirtEffect; +call AGM_Goggles_fnc_RemoveRainEffect; +call AGM_Goggles_fnc_RemoveDustEffect; diff --git a/TO_MERGE/agm/Goggles/functions/fn_RemoveRainEffect.sqf b/TO_MERGE/agm/Goggles/functions/fn_RemoveRainEffect.sqf new file mode 100644 index 0000000000..a3e3629bb1 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_RemoveRainEffect.sqf @@ -0,0 +1,21 @@ +/* + Name: AGM_Goggles_fnc_RemoveRainEffect + + Author: Garth de Wet (LH) + + Description: + Removes rain effects from the screen. Resets the rain array. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Goggles_fnc_RemoveRainEffect; +*/ +if (!isNull (AGM_Goggles_RainDrops)) then { + deleteVehicle (AGM_Goggles_RainDrops); +}; +AGM_Goggles_Rain_Active = false; \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/functions/fn_isDivingGoggles.sqf b/TO_MERGE/agm/Goggles/functions/fn_isDivingGoggles.sqf new file mode 100644 index 0000000000..d4b73ff5b7 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_isDivingGoggles.sqf @@ -0,0 +1,23 @@ +/* + Name: AGM_Goggles_fnc_isDivingGoggles + + Author: Garth de Wet (LH) + + Description: + Determines whether current goggles worn by passed unit is diving goggles or a variant of them. + + Parameters: + 0: String - Glasses classname + + Returns: + Boolean - whether diving goggles are worn + + Example: + (goggles player) call AGM_Goggles_fnc_isDivingGoggles; +*/ +private ["_result", "_glasses"]; +_glasses = _this; +_result = _glasses == "G_Diving"; +if (_result) exitWith {true}; +_result = [configFile >> "CfgGlasses" >> _glasses, configFile >> "CfgGlasses" >> "G_Diving"] call CBA_fnc_inheritsFrom; +_result diff --git a/TO_MERGE/agm/Goggles/functions/fn_isGogglesVisible.sqf b/TO_MERGE/agm/Goggles/functions/fn_isGogglesVisible.sqf new file mode 100644 index 0000000000..d694d18c26 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_isGogglesVisible.sqf @@ -0,0 +1,37 @@ +/* + Name: AGM_Goggles_fnc_isGogglesVisible + + Author: Garth de Wet (LH) + + Description: + Determines if goggles are visible on passed unit (Also checks if unit is in vehicle and cameraView is set to GUNNER) + + Parameters: + 0: Object - unit to check for visible goggles + + Returns: + BOOL - Whether the goggles are visible or not. + + Example: + _visible = player call AGM_Goggles_fnc_isGogglesVisible; +*/ +private ["_currentGlasses", "_result", "_unit"]; +_unit = _this; + +_currentGlasses = goggles _unit; +_result = false; + +if ((vehicle _unit) != _unit) exitWith {(cameraView != "GUNNER")}; + +if (_currentGlasses != "") then { + _position =(getPosASLW _unit); + if (surfaceIsWater _position && {((_position select 2) < 0.25)}) exitWith { + _result = (_currentGlasses call AGM_Goggles_fnc_isDivingGoggles); + }; + if (getNumber (ConfigFile >> "CfgGlasses" >> _currentGlasses >> "AGM_Resistance") == 0) exitWith { + _result = false; + }; + _result = !(_currentGlasses call AGM_Goggles_fnc_isDivingGoggles); +}; + +_result \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/functions/fn_isInRotorWash.sqf b/TO_MERGE/agm/Goggles/functions/fn_isInRotorWash.sqf new file mode 100644 index 0000000000..f1e69c9345 --- /dev/null +++ b/TO_MERGE/agm/Goggles/functions/fn_isInRotorWash.sqf @@ -0,0 +1,46 @@ +/* + Name: AGM_Goggles_fnc_isInRotorWash + + Author: Garth de Wet (LH) + + Description: + Checks for nearby helicopters (within 15m) + + Parameters: + 0: Object - Unit + 1: NUMBER - (optional) Radius to check for helicopter Default: 15 + + Returns: + Array: + 0 - boolean - If in rotorwash + 1 - number - Amount of rotor wash. + + Example: + if (([player, 10] call AGM_Goggles_fnc_isInRotorWash) select 0) then { hint "Rotor wash"; }; + if (([player] call AGM_Goggles_fnc_isInRotorWash) select 0) then { hint "Rotor wash"; }; +*/ +private ["_heli", "_unit", "_result", "_radius"]; +_unit = _this select 0; +_radius = 15; +if (count _this > 1) then { + _radius = _this select 1; +}; +_result = [false, _radius + 2]; + +_heli = (getPosATL _unit) nearEntities [["Helicopter"], _radius]; +{ + if !(_x isKindOf "ParachuteBase") then { + if (isEngineOn _x) then { + private "_distance"; + _distance = (_radius - (_unit distance _x)); + if (_distance != 0) then { + _distance = _distance / _radius; + }; + if (_distance < (_result select 1)) then { + _result = [true, _distance]; + }; + }; + }; +} count _heli; + +_result diff --git a/TO_MERGE/agm/Goggles/script.sqf b/TO_MERGE/agm/Goggles/script.sqf new file mode 100644 index 0000000000..92f681915e --- /dev/null +++ b/TO_MERGE/agm/Goggles/script.sqf @@ -0,0 +1,21 @@ +#define GLASSESDEFAULT [false,[false,0,0,0],false] + +#define DIRT 0 +#define DUST 1 +#define BROKEN 2 + +#define GETDIRT (AGM_Goggles_Effects select DIRT) +#define GETDUST (AGM_Goggles_Effects select DUST) +#define GETBROKEN (AGM_Goggles_Effects select BROKEN) +#define GETDUSTT(type) ((AGM_Goggles_Effects select DUST) select type) + +#define SETDUST(type,value) (AGM_Goggles_Effects select DUST) set [type, value] + +#define DACTIVE 0 +#define DTIME 1 +#define DBULLETS 2 +#define DAMOUNT 3 + +#define GLASSDISPLAY (uiNamespace getVariable ["AGM_Goggles_Display", displayNull]) + +#define CLAMP(x,low,high) (if(x > high)then{high}else{if(x < low)then{low}else{x}}) diff --git a/TO_MERGE/agm/Goggles/stringtable.xml b/TO_MERGE/agm/Goggles/stringtable.xml new file mode 100644 index 0000000000..0d079a4063 --- /dev/null +++ b/TO_MERGE/agm/Goggles/stringtable.xml @@ -0,0 +1,30 @@ + + + + + + Show Goggle Effects in Third Person + Brilleneffekt in dritter Person anzeigen + Mostrar efectos de las gafas en tercera persona + Zobrazit účinky brýlí v třetí osobě + Effets de lunettes à la 3ème personne + Отображать эффект очков в третьем лице + Szemüveg effekt mutatása külső nézetből + Włącz efekty gogli w trzeciej osobie + Mostrar efeitos de óculos em Terceira Pessoa + Attiva l'effetto degli occhiali in terza persona + + + Wipe Goggles + Brille abwischen + Limpiar gafas + Vyčistit brýle + Essuyer les lunettes + Протереть очки + Szemüveg törlése + Wytrzyj gogle + Limpar Óculos + Pulisci gli occhiali + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Goggles/textures/HUD/CombatGoggles.paa b/TO_MERGE/agm/Goggles/textures/HUD/CombatGoggles.paa new file mode 100644 index 0000000000..f9f9febc35 Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/HUD/CombatGoggles.paa differ diff --git a/TO_MERGE/agm/Goggles/textures/HUD/CombatGogglesCracked.paa b/TO_MERGE/agm/Goggles/textures/HUD/CombatGogglesCracked.paa new file mode 100644 index 0000000000..3116f98897 Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/HUD/CombatGogglesCracked.paa differ diff --git a/TO_MERGE/agm/Goggles/textures/HUD/Cracked.paa b/TO_MERGE/agm/Goggles/textures/HUD/Cracked.paa new file mode 100644 index 0000000000..3cfc1b4a46 Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/HUD/Cracked.paa differ diff --git a/TO_MERGE/agm/Goggles/textures/HUD/DivingGoggles.paa b/TO_MERGE/agm/Goggles/textures/HUD/DivingGoggles.paa new file mode 100644 index 0000000000..061ec33476 Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/HUD/DivingGoggles.paa differ diff --git a/TO_MERGE/agm/Goggles/textures/HUD/DivingGogglesCracked.paa b/TO_MERGE/agm/Goggles/textures/HUD/DivingGogglesCracked.paa new file mode 100644 index 0000000000..7c2e2e6164 Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/HUD/DivingGogglesCracked.paa differ diff --git a/TO_MERGE/agm/Goggles/textures/fx/dust/1.paa b/TO_MERGE/agm/Goggles/textures/fx/dust/1.paa new file mode 100644 index 0000000000..a1bdfe363c Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/fx/dust/1.paa differ diff --git a/TO_MERGE/agm/Goggles/textures/fx/dust/2.paa b/TO_MERGE/agm/Goggles/textures/fx/dust/2.paa new file mode 100644 index 0000000000..22dd047d0c Binary files /dev/null and b/TO_MERGE/agm/Goggles/textures/fx/dust/2.paa differ diff --git a/TO_MERGE/agm/Grenades/AGM_M84.p3d b/TO_MERGE/agm/Grenades/AGM_M84.p3d new file mode 100644 index 0000000000..0e27ead30c Binary files /dev/null and b/TO_MERGE/agm/Grenades/AGM_M84.p3d differ diff --git a/TO_MERGE/agm/Grenades/AGM_M84_thrown.p3d b/TO_MERGE/agm/Grenades/AGM_M84_thrown.p3d new file mode 100644 index 0000000000..504752d39f Binary files /dev/null and b/TO_MERGE/agm/Grenades/AGM_M84_thrown.p3d differ diff --git a/TO_MERGE/agm/Grenades/UI/agm_m84_x_ca.paa b/TO_MERGE/agm/Grenades/UI/agm_m84_x_ca.paa new file mode 100644 index 0000000000..35880b88d3 Binary files /dev/null and b/TO_MERGE/agm/Grenades/UI/agm_m84_x_ca.paa differ diff --git a/TO_MERGE/agm/Grenades/clientInit.sqf b/TO_MERGE/agm/Grenades/clientInit.sqf new file mode 100644 index 0000000000..343bf82863 --- /dev/null +++ b/TO_MERGE/agm/Grenades/clientInit.sqf @@ -0,0 +1,4 @@ +// by commy2 + +AGM_Flashbang_CC = ppEffectCreate ["ColorCorrections", 4265]; +AGM_Flashbang_CC ppEffectForceInNVG true; diff --git a/TO_MERGE/agm/Grenades/config.cpp b/TO_MERGE/agm/Grenades/config.cpp new file mode 100644 index 0000000000..2a24483a18 --- /dev/null +++ b/TO_MERGE/agm/Grenades/config.cpp @@ -0,0 +1,272 @@ +class CfgPatches { + class AGM_Grenades { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Grenades { + class AGM_Grenades { + file = "\AGM_Grenades\functions"; + class flashbangEffect; + class nextMode; + class throwGrenade; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Grenades { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Grenades\clientInit.sqf'"; + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + class AGM_Grenades_ThrowGrenade { + clientFiredBIS = "if (_this select 0 == AGM_player) then {_this call AGM_Grenades_fnc_throwGrenade;};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class switchGrenadeMode { + displayName = "$STR_AGM_Grenades_SwitchGrenadeMode"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "call AGM_Grenades_fnc_nextMode"; + key = 9;//34; + shift = 0; + control = 0; + alt = 0;//1; + }; +}; + +class CfgAmmo { + class FlareCore; + class FlareBase: FlareCore { + intensity = 20000; + flareSize = 12; + }; + class F_40mm_White: FlareBase { + intensity = 40000; + flareSize = 12; + }; + class F_20mm_White: FlareBase { + intensity = 20000; + flareSize = 12; + }; + class F_Signal_Green: FlareBase { + intensity = 20000; + flareSize = 12; + }; + class Flare_82mm_AMOS_White: FlareCore { + intensity = 80000; + flareSize = 12; + }; + + class F_20mm_Red: F_20mm_White {}; + class F_20mm_Green: F_20mm_White {}; + class F_20mm_Yellow: F_20mm_White {}; + + class AGM_F_Hand_White: F_20mm_White { + grenadeBurningSound[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + grenadeFireSound[] = {"SmokeShellSoundHit1",0.25,"SmokeShellSoundHit2",0.25,"SmokeShellSoundHit3",0.5}; + soundTrigger[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + SmokeShellSoundHit1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_1",1.25893,1,100}; + SmokeShellSoundHit2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_2",1.25893,1,100}; + SmokeShellSoundHit3[] = {"A3\Sounds_F\weapons\smokeshell\smoke_3",1.25893,1,100}; + SmokeShellSoundLoop1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop1",0.125893,1,70}; + SmokeShellSoundLoop2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop2",0.125893,1,70}; + timeToLive = 60; + }; + class AGM_F_Hand_Red: F_20mm_Red { + grenadeBurningSound[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + grenadeFireSound[] = {"SmokeShellSoundHit1",0.25,"SmokeShellSoundHit2",0.25,"SmokeShellSoundHit3",0.5}; + soundTrigger[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + SmokeShellSoundHit1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_1",1.25893,1,100}; + SmokeShellSoundHit2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_2",1.25893,1,100}; + SmokeShellSoundHit3[] = {"A3\Sounds_F\weapons\smokeshell\smoke_3",1.25893,1,100}; + SmokeShellSoundLoop1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop1",0.125893,1,70}; + SmokeShellSoundLoop2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop2",0.125893,1,70}; + timeToLive = 60; + }; + class AGM_F_Hand_Green: F_20mm_Green { + grenadeBurningSound[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + grenadeFireSound[] = {"SmokeShellSoundHit1",0.25,"SmokeShellSoundHit2",0.25,"SmokeShellSoundHit3",0.5}; + soundTrigger[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + SmokeShellSoundHit1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_1",1.25893,1,100}; + SmokeShellSoundHit2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_2",1.25893,1,100}; + SmokeShellSoundHit3[] = {"A3\Sounds_F\weapons\smokeshell\smoke_3",1.25893,1,100}; + SmokeShellSoundLoop1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop1",0.125893,1,70}; + SmokeShellSoundLoop2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop2",0.125893,1,70}; + timeToLive = 60; + }; + class AGM_F_Hand_Yellow: F_20mm_Yellow { + grenadeBurningSound[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + grenadeFireSound[] = {"SmokeShellSoundHit1",0.25,"SmokeShellSoundHit2",0.25,"SmokeShellSoundHit3",0.5}; + soundTrigger[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + SmokeShellSoundHit1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_1",1.25893,1,100}; + SmokeShellSoundHit2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_2",1.25893,1,100}; + SmokeShellSoundHit3[] = {"A3\Sounds_F\weapons\smokeshell\smoke_3",1.25893,1,100}; + SmokeShellSoundLoop1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop1",0.125893,1,70}; + SmokeShellSoundLoop2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop2",0.125893,1,70}; + timeToLive = 60; + }; + + + class AGM_G_M84: F_20mm_Yellow { + useFlare = 0; + flareSize = 0; + intensity = 0; + grenadeBurningSound[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + grenadeFireSound[] = {"SmokeShellSoundHit1",0.25,"SmokeShellSoundHit2",0.25,"SmokeShellSoundHit3",0.5}; + soundTrigger[] = {"SmokeShellSoundLoop1",0.5,"SmokeShellSoundLoop2",0.5}; + SmokeShellSoundHit1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_1",1.25893,1,100}; + SmokeShellSoundHit2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_2",1.25893,1,100}; + SmokeShellSoundHit3[] = {"A3\Sounds_F\weapons\smokeshell\smoke_3",1.25893,1,100}; + SmokeShellSoundLoop1[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop1",0.125893,1,70}; + SmokeShellSoundLoop2[] = {"A3\Sounds_F\weapons\smokeshell\smoke_loop2",0.125893,1,70}; + timeToLive = 60; + fuseDistance = 2.3; + model = "agm_grenades\agm_m84_thrown.p3d"; + }; +}; + +class CfgMagazines { + class HandGrenade; + class AGM_HandFlare_Base: HandGrenade { + value = 2; + nameSoundWeapon = "smokeshell"; + nameSound = "smokeshell"; + mass = 4; + initSpeed = 22; + }; + class AGM_HandFlare_White: AGM_HandFlare_Base { + ammo = "AGM_F_Hand_White"; + displayname = "$STR_AGM_Grenades_M127A1_White_Name"; + descriptionshort = "$STR_AGM_Grenades_M127A1_White_Description"; + displayNameShort = "$STR_AGM_Grenades_M127A1_White_NameShort"; + model = "\A3\weapons_f\ammo\flare_white"; + picture = "\A3\Weapons_F\Data\UI\gear_flare_white_ca.paa"; + }; + class AGM_HandFlare_Red: AGM_HandFlare_Base { + ammo = "AGM_F_Hand_Red"; + displayname = "$STR_AGM_Grenades_M127A1_Red_Name"; + descriptionshort = "$STR_AGM_Grenades_M127A1_Red_Description"; + displayNameShort = "$STR_AGM_Grenades_M127A1_Red_NameShort"; + model = "\A3\weapons_f\ammo\flare_red"; + picture = "\A3\Weapons_F\Data\UI\gear_flare_red_ca.paa"; + }; + class AGM_HandFlare_Green: AGM_HandFlare_Base { + ammo = "AGM_F_Hand_Green"; + displayname = "$STR_AGM_Grenades_M127A1_Green_Name"; + descriptionshort = "$STR_AGM_Grenades_M127A1_Green_Description"; + displayNameShort = "$STR_AGM_Grenades_M127A1_Green_NameShort"; + model = "\A3\weapons_f\ammo\flare_green"; + picture = "\A3\Weapons_F\Data\UI\gear_flare_green_ca.paa"; + }; + class AGM_HandFlare_Yellow: AGM_HandFlare_Base { + ammo = "AGM_F_Hand_Yellow"; + displayname = "$STR_AGM_Grenades_M127A1_Yellow_Name"; + descriptionshort = "$STR_AGM_Grenades_M127A1_Yellow_Description"; + displayNameShort = "$STR_AGM_Grenades_M127A1_Yellow_NameShort"; + model = "\A3\weapons_f\ammo\flare_yellow"; + picture = "\A3\Weapons_F\Data\UI\gear_flare_yellow_ca.paa"; + }; + class AGM_M84: HandGrenade { + ammo = "AGM_G_M84"; + displayname = "$STR_AGM_Grenades_M84_Name"; + descriptionshort = "$STR_AGM_Grenades_M84_Description"; + displayNameShort = "M84"; + model = "agm_grenades\agm_m84.p3d"; + picture = "\agm_grenades\UI\agm_m84_x_ca.paa"; + }; + + class 3Rnd_UGL_FlareGreen_F; + class 6Rnd_GreenSignal_F: 3Rnd_UGL_FlareGreen_F { + ammo = "F_40mm_Green"; + initSpeed = 120; + }; + class 6Rnd_RedSignal_F: 6Rnd_GreenSignal_F { + ammo = "F_40mm_Red"; + initSpeed = 120; + }; +}; + +class CfgWeapons { + class GrenadeLauncher; + + class Throw: GrenadeLauncher { + muzzles[] += {"AGM_HandFlare_WhiteMuzzle", "AGM_HandFlare_RedMuzzle", "AGM_HandFlare_GreenMuzzle", "AGM_HandFlare_YellowMuzzle", "AGM_M84Muzzle"}; + class ThrowMuzzle; + class AGM_HandFlare_WhiteMuzzle: ThrowMuzzle { + magazines[] = {"AGM_HandFlare_White"}; + }; + class AGM_HandFlare_RedMuzzle: ThrowMuzzle { + magazines[] = {"AGM_HandFlare_Red"}; + }; + class AGM_HandFlare_GreenMuzzle: ThrowMuzzle { + magazines[] = {"AGM_HandFlare_Green"}; + }; + class AGM_HandFlare_YellowMuzzle: ThrowMuzzle { + magazines[] = {"AGM_HandFlare_Yellow"}; + }; + class AGM_M84Muzzle: ThrowMuzzle { + magazines[] = {"AGM_M84"}; + }; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class Box_NATO_Support_F; + + class Box_NATO_Grenades_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_HandFlare_White,12) + MACRO_ADDITEM(AGM_HandFlare_Green,12) + MACRO_ADDITEM(AGM_M84,12) + }; + }; + + class Box_East_Grenades_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_HandFlare_Yellow,12) + MACRO_ADDITEM(AGM_HandFlare_Red,12) + MACRO_ADDITEM(AGM_M84,12) + }; + }; + + class Box_IND_Grenades_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_HandFlare_Yellow,12) + MACRO_ADDITEM(AGM_HandFlare_Green,12) + MACRO_ADDITEM(AGM_M84,12) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_HandFlare_White,12) + MACRO_ADDITEM(AGM_HandFlare_Red,12) + MACRO_ADDITEM(AGM_HandFlare_Green,12) + MACRO_ADDITEM(AGM_HandFlare_Yellow,12) + MACRO_ADDITEM(AGM_M84,12) + }; + }; +}; diff --git a/TO_MERGE/agm/Grenades/data/agm_m84.rvmat b/TO_MERGE/agm/Grenades/data/agm_m84.rvmat new file mode 100644 index 0000000000..68a9e35141 Binary files /dev/null and b/TO_MERGE/agm/Grenades/data/agm_m84.rvmat differ diff --git a/TO_MERGE/agm/Grenades/data/agm_m84_co.paa b/TO_MERGE/agm/Grenades/data/agm_m84_co.paa new file mode 100644 index 0000000000..5d14b5ef61 Binary files /dev/null and b/TO_MERGE/agm/Grenades/data/agm_m84_co.paa differ diff --git a/TO_MERGE/agm/Grenades/data/agm_m84_nohq.paa b/TO_MERGE/agm/Grenades/data/agm_m84_nohq.paa new file mode 100644 index 0000000000..f1a17c7740 Binary files /dev/null and b/TO_MERGE/agm/Grenades/data/agm_m84_nohq.paa differ diff --git a/TO_MERGE/agm/Grenades/data/agm_m84_smdi.paa b/TO_MERGE/agm/Grenades/data/agm_m84_smdi.paa new file mode 100644 index 0000000000..c9a102a31e Binary files /dev/null and b/TO_MERGE/agm/Grenades/data/agm_m84_smdi.paa differ diff --git a/TO_MERGE/agm/Grenades/functions/fn_flashbangEffect.sqf b/TO_MERGE/agm/Grenades/functions/fn_flashbangEffect.sqf new file mode 100644 index 0000000000..97d448c6f2 --- /dev/null +++ b/TO_MERGE/agm/Grenades/functions/fn_flashbangEffect.sqf @@ -0,0 +1,93 @@ +/* + * Author: KoffeinFlummi + * + * Creates the flashbang effect locally/knocks out AI units. + * + * Arguments: + * 0: The unit (Object) + * 1: The grenade (Object) + * + * Return Value: + * None + */ + +_this spawn { + _unit = _this select 0; + _grenade = _this select 1; + + if (damage _unit >= 1) exitWith {}; + + _strength = 1 - ((_unit distance _grenade) min 15) / 15; + + if !(isPlayer _unit) exitWith { + _unit disableAI "MOVE"; + _unit disableAI "ANIM"; + _unit disableAI "AUTOTARGET"; + _unit disableAI "TARGET"; + _unit disableAI "FSM"; + _unit setSkill (skill _unit / 50); + + sleep (7 * _strength); + + _unit enableAI "MOVE"; + _unit enableAI "ANIM"; + _unit enableAI "AUTOTARGET"; + _unit enableAI "TARGET"; + _unit enableAI "FSM"; + _unit setSkill (skill _unit * 50); + }; + + // is there line of sight to the grenade? + _posGrenade = getPosASL _grenade; + _posGrenade set [2, (_posGrenade select 2) + 0.2]; // compensate for grenade glitching into ground + if (lineIntersects [_posGrenade, getPosASL _unit, _grenade, _unit]) then { + _strength = _strength / 10; + }; + + // beeeeeeeeeeeeeeeeeeeeeeeeeeeeep + if (isClass (configFile >> "CfgPatches" >> "AGM_Hearing") and _strength > 0) then { + [_unit, 0.5 + (_strength / 2)] call AGM_Hearing_fnc_earRinging; + }; + + // account for people looking away by slightly + // reducing the effect for visual effects. + _posUnit = getPos _unit; + _posGrenade = getPos _grenade; + _angleGrenade = ((_posGrenade select 0) - (_posUnit select 0)) atan2 ((_posGrenade select 1) - (_posUnit select 1)); + _angleGrenade = (_angleGrenade + 360) % 360; + + _angleView = (eyeDirection player select 0) atan2 (eyeDirection player select 1); + _angleView = (_angleView + 360) % 360; + + _angleDiff = 180 - abs (abs (_angleGrenade - _angleView) - 180); + _angleDiff = ((_angleDiff - 45) max 0); + + _strength = _strength - _strength * (_angleDiff / 135); + + // create flash to illuminate environment + _light = "#lightpoint" createVehicleLocal getPos _grenade; + _light setLightBrightness 200; + _light setLightAmbient [1,1,1]; + _light setLightColor [1,1,1]; + _light setLightDayLight true; + + // blind player + if (_strength > 0.1) then { + AGM_Flashbang_CC ppEffectEnable true; + AGM_Flashbang_CC ppEffectAdjust [1,1,(0.8 + _strength) min 1,[1,1,1,0],[0,0,0,1],[0,0,0,0]]; + AGM_Flashbang_CC ppEffectCommit 0.01; + }; + + sleep 0.1; + deleteVehicle _light; + sleep (7 * _strength); + + if (_strength > 0.1) then { + AGM_Flashbang_CC ppEffectAdjust [1,1,0,[1,1,1,0],[0,0,0,1],[0,0,0,0]]; + AGM_Flashbang_CC ppEffectCommit (10 * _strength); + + sleep (10 * _strength); + + AGM_Flashbang_CC ppEffectEnable false; + }; +}; diff --git a/TO_MERGE/agm/Grenades/functions/fn_nextMode.sqf b/TO_MERGE/agm/Grenades/functions/fn_nextMode.sqf new file mode 100644 index 0000000000..b3a1445dc4 --- /dev/null +++ b/TO_MERGE/agm/Grenades/functions/fn_nextMode.sqf @@ -0,0 +1,38 @@ +/* + * Author: commy2 + * + * Select the next throwing mode and display message. + * + * Argument: + * Nothing + * + * Return value: + * Nothing + */ + +private ["_mode", "_hint"]; + +_mode = missionNamespace getVariable ["AGM_Grenades_Mode", 0]; + +if (_mode == 4) then { + _mode = 0; +} else { + _mode = _mode + 1; +}; + +// ROLL GRENADE DOESN'T WORK RIGHT NOW +if (_mode == 3) then { + _mode = 4; +}; + +_hint = [ + localize "STR_AGM_Grenades_NormalThrow", + localize "STR_AGM_Grenades_HighThrow", + localize "STR_AGM_Grenades_PreciseThrow", + localize "STR_AGM_Grenades_RollGrenade", + localize "STR_AGM_Grenades_DropGrenade" +] select _mode; + +[_hint] call AGM_Core_fnc_displayTextStructured; + +AGM_Grenades_Mode = _mode; diff --git a/TO_MERGE/agm/Grenades/functions/fn_throwGrenade.sqf b/TO_MERGE/agm/Grenades/functions/fn_throwGrenade.sqf new file mode 100644 index 0000000000..ab5e7a1cfd --- /dev/null +++ b/TO_MERGE/agm/Grenades/functions/fn_throwGrenade.sqf @@ -0,0 +1,71 @@ +/* + * Author: commy2 + * + * Adjust the grenades throwing direction and speed to the selected throwing mode. + * + * Argument: + * input from "Fired" eventhandler + * + * Return value: + * Nothing + */ + +private ["_unit", "_weapon", "_projectile"]; + +_unit = _this select 0; +_weapon = _this select 1; +_projectile = _this select 6; + +if (_weapon != "Throw") exitWith {}; + +private "_mode"; + +_mode = missionNamespace getVariable ["AGM_Grenades_Mode", 0]; + +if (_mode != 0) then { + private "_velocity"; + + _velocity = velocity _projectile; + + switch (_mode) do { + //high throw + case 1 : { + _velocity = [ + 0.5 * (_velocity select 0), + 0.5 * (_velocity select 1), + [0, 0, 0] distance (_velocity vectorMultiply 0.5) + ]; + }; + //precise throw + case 2 : { + _velocity = (_unit weaponDirection _weapon) vectorMultiply (vectorMagnitude _velocity); + }; + //roll grande + case 3 : { + //@todo + }; + //drop grenade + case 4 : { + _velocity = [0, 0, 0]; + }; + }; + + _projectile setVelocity _velocity; +}; + +if (typeOf _projectile == "AGM_G_M84") then { + _this spawn { + _projectile = _this select 6; + + sleep getNumber (configFile >> "CfgAmmo" >> typeOf _projectile >> "fuseDistance"); + + if (alive _projectile) then { + playSound3D ["A3\Sounds_F\weapons\Explosion\explosion_mine_1.wss", _projectile, false, getPosASL _projectile, 5, 1.2, 400]; + + _affected = _projectile nearEntities ["CAManBase", 50]; + { + [[_x, _projectile], "AGM_Grenades_fnc_flashbangEffect", _x] call AGM_Core_fnc_execRemoteFnc; + } forEach _affected; + }; + }; +}; diff --git a/TO_MERGE/agm/Grenades/stringtable.xml b/TO_MERGE/agm/Grenades/stringtable.xml new file mode 100644 index 0000000000..526a3dbf1b --- /dev/null +++ b/TO_MERGE/agm/Grenades/stringtable.xml @@ -0,0 +1,246 @@ + + + + + + Switch Grenade Mode + Granaten-Modus wechseln + Cambiar modo de granada + Tryb rzutu granatem + Změnit styl hodu granátu + Changer type de lancer de grenade + Сменить режим броска гранаты + Gránátdobás mód váltás + Cambia tipo di granata + Alternar Modo de Granada + + + Normal Throw + Normaler Wurf + Lanzamiento normal + Normalny rzut + Normální + Lancer Normal + Нормальный бросок + Normál dobás + Lancio normale + Arremesso Normal + + + High Throw + Hoher Wurf + Lanzamiento alto + Rzut lobem + Vysoko + Lancer Haut + Высокий бросок + Magas dobás + Lancio verso l'alto + Arremesso Alto + + + Precise Throw + Präziser Wurf + Lanzamiento preciso + Precyzyjny rzut + Přesně + Lancer Précis + Точный бросок + Pontos dobás + Lancio preciso + Arremesso Preciso + + + Roll Grenade + Granate rollen + Rodar granada + Po ziemi + Po zemi + Lancer Roulé + Катить гранату + Gurítás + Fai rotolare la granata + Rolar Granada + + + Drop Grenade + Granate fallenlassen + Soltar granada + Upuść granat + Upustit granát + Lâcher la grenade + Бросить себе под ноги + Ejtés + Lascia la granata + Largar Granada + + + M84 Stun Grenade + M84 Blendgranate + Granada aturdidora M84 + M84 Grenade Incapacitante + Granat hukowy M84 + M84 Omračující granát + M84 светозвуковая граната + M84 Villanógránát + Granata Stordente M84 + M84 granada de atordoamento + + + Also known as flashbang. Causes immediate flash blindness, deafness, tinnitus, and inner ear disturbance. + Verursacht temporäre Blind- und Taubheit. + Produce de manera inmediata ceguera, sordera, tinitus y afecta el oído interior. + Les grenades incapacitantes servent à désorienter ou distraire une menace pendant quelques secondes. + Granat ogłusza, nie zabijając przeciwnika. Detonacja daje efekt oślepiającego błysku i głośnego huku. + Omračující granát je taktická nesmrtící zbraň používaná při záchraně rukojmí a zvládání davu. + Граната XM84 (M84) - не летального действия, и предназначена для отвлечения и временного вывода из строя, либо дезориентации противника. Основное использование нашла при освобождении заложников, захвате преступников и террористов, а также проведении диверсионных миссий. + Eldobás után felrobban és éles hang, valamint fényhatással zavarja össze a környezetében tartózkodókat. + Anche conosciuta come flashbang. Causa accecamento immediato, sensazioni di sposatezza, mancanza d'equilibrio e disturbi al timpano. + Um tipo de granada não-letal destinado a confundir, desorientar e distrair uma potencial ameaça. + + + M127A1 Hand Held Signal (White) + M127A1 Leuchtmittel (Weiß) + M127A1 Světlice (Bílá) + M127A1 Jelzőrakéta (Fehér) + M127A1 Bengala (Bianco) + Flara ręczna sygnałowa M127A1 (biała) + M127A1 Sinalizador (Branco) + M127A1 Фальшфейер (Белый) + Bengala M127A1 (Blanca) + M127A1 Feux à main (Blanc) + + + M127A1 Hand Held Signal (Red) + M127A1 Leuchtmittel (Rot) + M127A1 Světlice (Červená) + M127A1 Jelzőrakéta (Piros) + M127A1 Bengala (Rosso) + Flara ręczna sygnałowa M127A1 (czerwona) + M127A1 Sinalizador (Vermelho) + M127A1 Фальшфейер (Красный) + Bengala M127A1 (Roja) + M127A1 Feux à main (Rouge) + + + M127A1 Hand Held Signal (Green) + M127A1 Leuchtmittel (Grün) + M127A1 Světlice (Zelená) + M127A1 Jelzőrakéta (Zöld) + M127A1 Bengala (Verde) + Flara ręczna sygnałowa M127A1 (zielona) + M127A1 Sinalizador (Verde) + M127A1 Фальшфейер (Зелёный) + Bengala M127A1 (Verde) + M127A1 Feux à main (Vert) + + + M127A1 Hand Held Signal (Yellow) + M127A1 Leuchtmittel (Gelb) + M127A1 Světlice (Žlutá) + M127A1 Jelzőrakéta (Sárga) + M127A1 Bengala (Giallo) + Flara ręczna sygnałowa M127A1 (żółta) + M127A1 Sinalizador (Amarelo) + M127A1 Фальшфейер (Жёлтые) + Bengala M127A1 (Amarilla) + M127A1 Feux à main (Jaune) + + + White Hand Flare + Weiße Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Bílá) + Jelzőrakéta (Fehér) + Bengala (Bianco) + Flara ręczna (biała) + Sinalizador (Branco) + Фальшфейер (Белый) + Bengala (Blanca) + Feux à main (Blanc) + + + Red Hand Flare + Rote Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Červená) + Jelzőrakéta (Piros) + Bengala (Rosso) + Flara ręczna (czerwona) + Sinalizador (Vermelho) + Фальшфейер (Красный) + Bengala (Roja) + Feux à main (Rouge) + + + Green Hand Flare + Grüne Leuchtkugel, wird wie eine Granate geworfen. + Světlice (Zelená) + Jelzőrakéta (Zöld) + Bengala (Verde) + Flara ręczna (zielona) + Sinalizador (Verde) + Фальшфейер (Зелёный) + Bengala (Verde) + Feux à main (Vert) + + + Yellow Hand Flare + Gelbe Leuchtkugel, wird wie eine Granate geworfen. + Světlice Žlutá + Jelzőrakéta (Sárga) + Bengala (Giallo) + Flara ręczna (żółta) + Sinalizador (Amarelo) + Фальшфейер (Жёлтые) + Bengala (Amarilla) + Feux à main (Jaune) + + + M127A1 (White) + M127A1 (Weiß) + M127A1 (Bílá) + M127A1 (Blanc) + M127A1 (Fehér) + M127A1 (Bianco) + M127A1 (biała) + M127A1 (Branco) + M127A1 (Белый) + M127A1 (Blanca) + + + M127A1 (Red) + M127A1 (Rot) + M127A1 (Červená) + M127A1 (Rouge) + M127A1 (Piros) + M127A1 (Rosso) + M127A1 (czerwona) + M127A1 (Vermelho) + M127A1 (Красный) + M127A1 (Roja) + + + M127A1 (Green) + M127A1 (Grün) + M127A1 (Zelená) + M127A1 (Vert) + M127A1 (Zöld) + M127A1 (Verde) + M127A1 (zielona) + M127A1 (Verde) + M127A1 (Зелёный) + M127A1 (Verde) + + + M127A1 (Yellow) + M127A1 (Gelb) + M127A1 (Žlutá) + M127A1 (Jaune) + M127A1 (Sárga) + M127A1 (Giallo) + M127A1 (żółta) + M127A1 (Amarelo) + M127A1 (Жёлтые) + M127A1 (Amarilla) + + + diff --git a/TO_MERGE/agm/Grenades/texHeaders.bin b/TO_MERGE/agm/Grenades/texHeaders.bin new file mode 100644 index 0000000000..718d6490fc Binary files /dev/null and b/TO_MERGE/agm/Grenades/texHeaders.bin differ diff --git a/TO_MERGE/agm/Headless/.DONTPACK b/TO_MERGE/agm/Headless/.DONTPACK new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/agm/Headless/config.cpp b/TO_MERGE/agm/Headless/config.cpp new file mode 100644 index 0000000000..f936da7485 --- /dev/null +++ b/TO_MERGE/agm/Headless/config.cpp @@ -0,0 +1,24 @@ +class CfgPatches { + class AGM_Headless { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Headless { + class AGM_Headless { + file = "\AGM_Headless\functions"; + class getData; + class logLongString; + class spawnGroups; + }; + }; +}; diff --git a/TO_MERGE/agm/Headless/functions/fn_getData.sqf b/TO_MERGE/agm/Headless/functions/fn_getData.sqf new file mode 100644 index 0000000000..94919d142c --- /dev/null +++ b/TO_MERGE/agm/Headless/functions/fn_getData.sqf @@ -0,0 +1,84 @@ +// by commy2 + +private ["_sides", "_allGroups", "_data", "_count"]; + +_sides = _this; + +// get groups +_allGroups = []; +{ + if (side _x in _sides) then { + _allGroups pushBack _x; + }; +} forEach allGroups; + +// get data +_data = []; +_count = count _allGroups; diag_log text "["; +{ + private ["_units", "_vehicles", "_positions", "_directions", "_vehiclePositions", "_vehicleDirections", "_vehicleIDs", "_index", "_waypoints"]; + + _side = ([civilian, west, east, resistance] find side _x) max 0; + + _units = []; + _vehicles = []; + _positions = []; + _directions = []; + _vehiclePositions = []; + _vehicleDirections = []; + _vehicleIDs = []; + { + _units pushBack typeOf _x; + if (_x != vehicle _x) then { + _index = _vehicles find vehicle _x; + if (_index == -1) then { + _index = _vehicles pushBack vehicle _x; + _vehiclePositions pushBack position vehicle _x; + _vehicleDirections pushBack direction vehicle _x; + }; + _vehicleIDs pushBack _index; + } else { + _vehicleIDs pushBack -1; + }; + + _positions pushBack position _x; + _directions pushBack direction _x; + } forEach units _x; + + _vehicles = [_vehicles, {typeOf _this}] call AGM_Core_fnc_map; + + _waypoints = []; + { + private "_waypointData"; + + _waypointData = [ + waypointName _x, + waypointType _x, + waypointDescription _x, + waypointPosition _x, + waypointCompletionRadius _x, + waypointSpeed _x, + waypointHousePosition _x, + waypointLoiterRadius _x, + waypointLoiterType _x, + waypointCombatMode _x, + /*waypointAttachedObject _x, + waypointAttachedVehicle _x,*/ + waypointShow _x, + waypointVisible _x, + waypointBehaviour _x, + waypointFormation _x, + waypointScript _x, + waypointStatements _x, + waypointTimeout _x + ]; + + _waypoints set [_forEachIndex, _waypointData]; + } forEach waypoints _x; + + _data pushBack [_side, _units, _positions, _directions, _vehicles, _vehicleIDs, _vehiclePositions, _vehicleDirections, _waypoints]; + + [str [_side, _units, _positions, _vehicles, _vehicleIDs, _vehiclePositions, _waypoints] + ([",", ""] select (count _data == _count))] call AGM_Headless_fnc_logLongString; +} forEach _allGroups; diag_log text "] call AGM_Headless_fnc_spawnGroups;"; + +_data diff --git a/TO_MERGE/agm/Headless/functions/fn_logLongString.sqf b/TO_MERGE/agm/Headless/functions/fn_logLongString.sqf new file mode 100644 index 0000000000..160fbfbc4a --- /dev/null +++ b/TO_MERGE/agm/Headless/functions/fn_logLongString.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private ["_array", "_string"]; + +_array = toArray (_this select 0); + +while {count _array > 1024} do { + _string = + _array; + + _string resize 1024; + diag_log text toString _string; + + _array deleteRange [0, 1023]; +}; +diag_log text toString _array; diff --git a/TO_MERGE/agm/Headless/functions/fn_spawnGroups.sqf b/TO_MERGE/agm/Headless/functions/fn_spawnGroups.sqf new file mode 100644 index 0000000000..9963545c2e --- /dev/null +++ b/TO_MERGE/agm/Headless/functions/fn_spawnGroups.sqf @@ -0,0 +1,65 @@ +// by commy2 + +{ + private ["_side", "_units", "_positions", "_directions", "_vehicles", "_vehicleIDs", "_vehiclePositions", "_vehicleDirections", "_waypoints", "_vehicle", "_group1", "_unit", "_index", "_waypoint", "_waypointData"]; + + _side = [civilian, west, east, resistance] select (_x select 0); + _units = _x select 1; + _positions = _x select 2; + _directions = _x select 3; + _vehicles = _x select 4; + _vehicleIDs = _x select 5; + _vehiclePositions = _x select 6; + _vehicleDirections = _x select 7; + _waypoints = _x select 8; + + { + _vehicle = createVehicle [_x, _vehiclePositions select _forEachIndex, [], 0, "FORM"]; + _vehicle setDir (_vehicleDirections select _forEachIndex); + _vehicles set [_forEachIndex, _vehicle]; + } forEach _vehicles; + + _group1 = createGroup _side; + + { + _unit = _group1 createUnit [_x, _positions select _forEachIndex, [], 0, "FORM"]; + _index = _vehicleIDs select _forEachIndex; + if (_index == -1) then { + _unit setDir (_directions select _forEachIndex); + } else { + _unit moveInAny (_vehicles select _index); + }; + } forEach _units; + + { + deleteWaypoint _x; + } forEach waypoints _group1; + + for "_index" from 0 to (count _waypoints - 1) do { + _waypointData = _waypoints select _index; + + _waypoint = _group1 addWaypoint [_waypointData select 3, _waypointData select 4]; + + _waypoint setWaypointName (_waypointData select 0); + _waypoint setWaypointType (_waypointData select 1); + _waypoint setWaypointDescription (_waypointData select 2); + _waypoint setWaypointPosition (_waypointData select 3); + _waypoint setWaypointCompletionRadius (_waypointData select 4); + _waypoint setWaypointSpeed (_waypointData select 5); + _waypoint setWaypointHousePosition (_waypointData select 6); + _waypoint setWaypointLoiterRadius (_waypointData select 7); + _waypoint setWaypointLoiterType (_waypointData select 8); + _waypoint setWaypointCombatMode (_waypointData select 9); + /*_waypoint waypointAttachObject (_waypointData select 10); + _waypoint waypointAttachVehicle (_waypointData select 11);*/ + _waypoint showWaypoint (_waypointData select 10); + _waypoint setWaypointVisible (_waypointData select 11); + _waypoint setWaypointBehaviour (_waypointData select 12); + _waypoint setWaypointFormation (_waypointData select 13); + _waypoint setWaypointScript (_waypointData select 14); + _waypoint setWaypointStatements (_waypointData select 15); + _waypoint setWaypointTimeout (_waypointData select 16); + + {vehicle _x doMove position vehicle _x} forEach units _group1; + }; +} forEach _this; diff --git a/TO_MERGE/agm/Hearing/UI/agm_earplugs_x_ca.paa b/TO_MERGE/agm/Hearing/UI/agm_earplugs_x_ca.paa new file mode 100644 index 0000000000..e2afad6eb9 Binary files /dev/null and b/TO_MERGE/agm/Hearing/UI/agm_earplugs_x_ca.paa differ diff --git a/TO_MERGE/agm/Hearing/UI/deafness_x_ca.paa b/TO_MERGE/agm/Hearing/UI/deafness_x_ca.paa new file mode 100644 index 0000000000..607f346f8e Binary files /dev/null and b/TO_MERGE/agm/Hearing/UI/deafness_x_ca.paa differ diff --git a/TO_MERGE/agm/Hearing/UI/earplug_co.paa b/TO_MERGE/agm/Hearing/UI/earplug_co.paa new file mode 100644 index 0000000000..94ba616adb Binary files /dev/null and b/TO_MERGE/agm/Hearing/UI/earplug_co.paa differ diff --git a/TO_MERGE/agm/Hearing/agm_earplugs.p3d b/TO_MERGE/agm/Hearing/agm_earplugs.p3d new file mode 100644 index 0000000000..3c8639c068 Binary files /dev/null and b/TO_MERGE/agm/Hearing/agm_earplugs.p3d differ diff --git a/TO_MERGE/agm/Hearing/clientInit.sqf b/TO_MERGE/agm/Hearing/clientInit.sqf new file mode 100644 index 0000000000..d1296f0aef --- /dev/null +++ b/TO_MERGE/agm/Hearing/clientInit.sqf @@ -0,0 +1,64 @@ +// by commy2 and CAA-Picard +#define STRENGHTODEAFNESS 3 +#define MAXDEAFNESS 1.1 + +AGM_CurrentDeafness = 0; +AGM_NewStrength = 0; + +// Spawn volume updating process +0 spawn { + while {true} do { + _player = AGM_player; + + // Check if new noises increase deafness + if (AGM_NewStrength * STRENGHTODEAFNESS > AGM_CurrentDeafness) then { + AGM_CurrentDeafness = AGM_NewStrength * STRENGHTODEAFNESS min MAXDEAFNESS; + + // icon is CUT + /*if (AGM_CurrentDeafness > 0.4) then { + if (AGM_CurrentDeafness > 0.8) then { + [parseText ""] call AGM_Core_fnc_displayTextStructured; + } else { + [parseText ""] call AGM_Core_fnc_displayTextStructured; + }; + };*/ + }; + AGM_NewStrength = 0; + + // Recover rate is slower if deafness is severe + _recoverRate = 0.01; + if (AGM_CurrentDeafness > 0.7) then { + _recoverRate = 0.005; + if (AGM_CurrentDeafness > 0.9) then { + _recoverRate = 0.002; + }; + }; + + // Deafness recovers with time + AGM_CurrentDeafness = AGM_CurrentDeafness - _recoverRate max 0; + + // needed until Bohemia fixes playSound to actually use the second argument + _volume = (1 - AGM_CurrentDeafness max 0)^2 max 0.1; + + // Earplugs reduce hearing 20% + if ([_player] call AGM_Hearing_fnc_hasEarPlugsIn) then { + _volume = _volume min 0.8; + }; + + // Reduce volume if player is unconscious + if (_player getVariable ["AGM_isUnconscious", false]) then { + _volume = _volume min 0.4; + }; + + if (!(missionNameSpace getVariable ["AGM_Hearing_disableVolumeUpdate", false])) then { + 0.1 fadeSound _volume; + 0.1 fadeSpeech _volume; + _player setVariable ["tf_globalVolume", _volume]; + _player setVariable ["acre_sys_core_globalVolume", _volume]; + }; + + //hintSilent format ["AGM_CurrentDeafness, _Volume = %1, %2", AGM_CurrentDeafness, _volume]; + + sleep 0.1; + }; +}; diff --git a/TO_MERGE/agm/Hearing/config.cpp b/TO_MERGE/agm/Hearing/config.cpp new file mode 100644 index 0000000000..bdc4199346 --- /dev/null +++ b/TO_MERGE/agm/Hearing/config.cpp @@ -0,0 +1,198 @@ +class CfgPatches { + class AGM_Hearing { + units[] = {}; + weapons[] = {"AGM_EarBuds"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "CAA-Picard", "HopeJ", "commy2"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Hearing { + class AGM_Hearing { + file = "AGM_Hearing\functions"; + class addEarPlugs; + class earRinging; + class explosionNear; + class firedNear; + class hasEarPlugsIn; + class putInEarPlugs; + class removeEarPlugs; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Hearing { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Hearing\clientInit.sqf'"; + }; +}; + +class Extended_Init_EventHandlers { + class CAManBase { + class AGM_Hearing_AddEarPlugs { + init = "if (local (_this select 0)) then {_this call AGM_Hearing_fnc_addEarPlugs};"; + }; + }; +}; + +class Extended_FiredNear_EventHandlers { + class CAManBase { + class AGM_Hearing_FiredNear { + clientFiredNear = "if (_this select 0 == AGM_player) then {_this call AGM_Hearing_fnc_firedNear};"; + }; + }; +}; + +class Extended_Explosion_EventHandlers { + class CAManBase { + class AGM_Hearing_ExplosionNear { + clientExplosion = "if (_this select 0 == AGM_player) then {_this call AGM_Hearing_fnc_explosionNear};"; + }; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + class AGM_SelfActions { + class AGM_Equipment { + class AGM_PutInEarplugs { + displayName = "$STR_AGM_Hearing_Earbuds_On"; + condition = "!([_player] call AGM_Hearing_fnc_hasEarPlugsIn) && {'AGM_EarBuds' in items _player}"; + statement = "[_player] call AGM_Hearing_fnc_putInEarPlugs"; + showDisabled = 0; + priority = 2.5; + icon = "AGM_Hearing\UI\agm_earplugs_x_ca.paa"; + hotkey = "E"; + enableInside = 1; + }; + class AGM_RemoveEarplugs { + displayName = "$STR_AGM_Hearing_Earbuds_Off"; + condition = "[_player] call AGM_Hearing_fnc_hasEarPlugsIn"; + statement = "[_player] call AGM_Hearing_fnc_removeEarPlugs"; + showDisabled = 0; + priority = 2.5; + icon = "AGM_Hearing\UI\agm_earplugs_x_ca.paa"; + hotkey = "E"; + enableInside = 1; + }; + }; + }; + }; + + class ReammoBox_F; + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class FIA_Box_Base_F; + + class Box_NATO_Support_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class B_supplyCrate_F: ReammoBox_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class Box_East_Support_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class O_supplyCrate_F: B_supplyCrate_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class Box_IND_Support_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class Box_FIA_Support_F: FIA_Box_Base_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class I_supplyCrate_F: B_supplyCrate_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class IG_supplyCrate_F: ReammoBox_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class C_supplyCrate_F: ReammoBox_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_EarBuds,12) + }; + }; +}; + +class CfgSounds { + class AGM_EarRinging_Weak { + sound[] = {"\AGM_Hearing\sounds\agm_earringing_weak.wav",8,1.7}; + titles[] = {}; + }; + class AGM_EarRinging_Medium { + sound[] = {"\AGM_Hearing\sounds\agm_earringing_medium.wav",8,1.7}; + titles[] = {}; + }; + class AGM_EarRinging_Heavy { + sound[] = {"\AGM_Hearing\sounds\agm_earringing_heavy.wav",8,1.7}; + titles[] = {}; + }; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_EarBuds: AGM_ItemCore { + displayName = "$STR_AGM_Hearing_Earbuds_Name"; + descriptionShort = "$STR_AGM_Hearing_Earbuds_Description"; + model = "\AGM_Hearing\agm_earplugs.p3d"; + picture = "\AGM_Hearing\UI\agm_earplugs_x_ca.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 1; + }; + }; +}; + +// Setting up old stuff for A3 +class CfgAmmo { + class BulletBase; + class B_127x108_Ball: BulletBase { + audibleFire = 15; + }; +}; diff --git a/TO_MERGE/agm/Hearing/functions/fn_addEarPlugs.sqf b/TO_MERGE/agm/Hearing/functions/fn_addEarPlugs.sqf new file mode 100644 index 0000000000..611c8c67df --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_addEarPlugs.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * + * Called on unit initialization. Adds earplugs if the unit is equipped with either a really loud primary weapon or a rocket launcher. + * + * Argument: + * 0: A Soldier (Object) + * + * Return value: + * Nothing + */ + +private ["_unit", "_launcher"]; + +_unit = _this select 0; + +// add earplugs if the soldier has a rocket launcher +_launcher = secondaryWeapon _unit; + +if (_launcher != "") exitWith { + _unit addItem "AGM_EarBuds"; +}; + +// otherwise add earplugs if the soldier has a big rifle +private ["_magazine", "_ammo"]; + +_magazine = primaryWeaponMagazine _unit select 0; + +if (isNil "_magazine") exitWith {}; + +_ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo"); + +if (getNumber (configFile >> "CfgAmmo" >> _ammo >> "audiblefire") > 8) then { + _unit addItem "AGM_EarBuds"; +}; diff --git a/TO_MERGE/agm/Hearing/functions/fn_earRinging.sqf b/TO_MERGE/agm/Hearing/functions/fn_earRinging.sqf new file mode 100644 index 0000000000..84807bdda7 --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_earRinging.sqf @@ -0,0 +1,49 @@ +/* + * Author: KoffeinFlummi, commy2 + * + * Creates ear ringing effect with set strength. + * + * Arguments: + * 0: strength of ear ringing (Number between 0 and 1) + * + * Return Value: + * none + */ + +private ["_unit", "_strength"]; + +_unit = _this select 0; +_strength = _this select 1; + +if (_unit getVariable ["AGM_hasEarPlugsin", false] || {_unit getVariable ["X39_MedSys_var_hasEarplugs", false]}) then { + _strength = _strength / 4; +}; + +AGM_NewStrength = AGM_NewStrength max _strength; + +if (missionNamespace getVariable ["AGM_isEarRingingPlaying", false]) exitWith {}; + +if (_strength > 0.75) exitWith { + playSound "AGM_EarRinging_Heavy"; + AGM_isEarRingingPlaying = true; + 0 spawn { + sleep 7; + AGM_isEarRingingPlaying = false; + }; +}; +if (_strength > 0.5) exitWith { + playSound "AGM_EarRinging_Medium"; + AGM_isEarRingingPlaying = true; + 0 spawn { + sleep 5; + AGM_isEarRingingPlaying = false; + }; +}; +if (_strength > 0.2) exitWith { + playSound "AGM_EarRinging_Weak"; + AGM_isEarRingingPlaying = true; + 0 spawn { + sleep 3; + AGM_isEarRingingPlaying = false; + }; +}; diff --git a/TO_MERGE/agm/Hearing/functions/fn_explosionNear.sqf b/TO_MERGE/agm/Hearing/functions/fn_explosionNear.sqf new file mode 100644 index 0000000000..4540a98bf9 --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_explosionNear.sqf @@ -0,0 +1,24 @@ +/* + * Author: KoffeinFlummi, commy2 + * + * Handles deafness due to explosions going off near the player. + * + * Arguments: + * -> Explosion Event Handler + * + * Return Value: + * none + */ + +private ["_unit", "_damage", "_strength"]; + +_unit = _this select 0; +_damage = _this select 1; + +_strength = (_damage * 2) min 1; +if (_strength < 0.01) exitWith {}; + +[_unit, _strength] spawn { + sleep 0.2; + _this call AGM_Hearing_fnc_earRinging; +}; diff --git a/TO_MERGE/agm/Hearing/functions/fn_firedNear.sqf b/TO_MERGE/agm/Hearing/functions/fn_firedNear.sqf new file mode 100644 index 0000000000..45fecbd43d --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_firedNear.sqf @@ -0,0 +1,51 @@ +/* + * Author: KoffeinFlummi, commy2 + * + * Handles deafness due to large-caliber weapons going off near the player. + * + * Arguments: + * -> FiredNear Event Handler + * + * Return Value: + * none + */ + +private ["_unit", "_firer", "_distance", "_weapon", "_muzzle", "_mode", "_ammo", "_silencer", "_audibleFireCoef", "_loudness", "_strength"]; + +_unit = _this select 0; +_firer = _this select 1; +_distance = (_this select 2) max 1; +_weapon = _this select 3; +_muzzle = _this select 4; +_mode = _this select 5; +_ammo = _this select 6; + +if (_weapon in ["Throw", "Put"]) exitWith {}; +if (_unit != vehicle _unit && {!([_unit] call AGM_Core_fnc_isTurnedOut)}) exitWith {}; + +_silencer = switch (_weapon) do { + case (primaryWeapon _unit) : {primaryWeaponItems _unit select 0}; + case (secondaryWeapon _unit) : {secondaryWeaponItems _unit select 0}; + case (handgunWeapon _unit) : {handgunItems _unit select 0}; + default {""}; +}; + +_audibleFireCoef = 1; +//_audibleFireTimeCoef = 1; +if (_silencer != "") then { + _audibleFireCoef = getNumber (configFile >> "CfgWeapons" >> _silencer >> "ItemInfo" >> "AmmoCoef" >> "audibleFire"); + //_audibleFireTimeCoef = getNumber (configFile >> "CfgWeapons" >> _silencer >> "ItemInfo" >> "AmmoCoef" >> "audibleFireTime"); +}; + +_audibleFire = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFire"); +//_audibleFireTime = getNumber (configFile >> "CfgAmmo" >> _ammo >> "audibleFireTime"); + +_loudness = _audibleFireCoef * _audibleFire / 64; +_strength = _loudness - (_loudness/50 * _distance); // linear drop off + +if (_strength < 0.01) exitWith {}; + +[_unit, _strength] spawn { + sleep 0.2; + _this call AGM_Hearing_fnc_earRinging; +}; diff --git a/TO_MERGE/agm/Hearing/functions/fn_hasEarPlugsIn.sqf b/TO_MERGE/agm/Hearing/functions/fn_hasEarPlugsIn.sqf new file mode 100644 index 0000000000..36eadae44d --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_hasEarPlugsIn.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * + * Check if the unit has earplugs put in. + * + * Argument: + * A soldier (Object) + * + * Return value: + * Boolean (Bool) + */ + +private "_unit"; + +_unit = _this select 0; + +_unit getVariable ["AGM_hasEarPlugsin", false] || {_unit getVariable ["X39_MedSys_var_hasEarplugs", false]} diff --git a/TO_MERGE/agm/Hearing/functions/fn_putInEarplugs.sqf b/TO_MERGE/agm/Hearing/functions/fn_putInEarplugs.sqf new file mode 100644 index 0000000000..df7aa7e02a --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_putInEarplugs.sqf @@ -0,0 +1,26 @@ +/* + * Author: Hope Johnson + * Edited by commy2 + * + * Puts in / takes out earplugs. + * + * Arguments: + * none + * + * Return Value: + * none + */ + +private "_player"; + +_player = _this select 0; + +// Buds in inventory, putting them in +_player removeItem "AGM_EarBuds"; + +_player setVariable ["AGM_hasEarPlugsIn", true, true]; + +[localize "STR_AGM_Hearing_Earbuds_Are_On"] call AGM_Core_fnc_displayTextStructured; + +/*// No Ear Buds in inventory, telling user +[localize "STR_AGM_Hearing_NoBuds"] call AGM_Core_fnc_displayTextStructured;*/ diff --git a/TO_MERGE/agm/Hearing/functions/fn_removeEarplugs.sqf b/TO_MERGE/agm/Hearing/functions/fn_removeEarplugs.sqf new file mode 100644 index 0000000000..37ea1acfd4 --- /dev/null +++ b/TO_MERGE/agm/Hearing/functions/fn_removeEarplugs.sqf @@ -0,0 +1,27 @@ +/* + * Author: Hope Johnson + * Edited by commy2 + * + * Puts in / takes out earplugs. + * + * Arguments: + * none + * + * Return Value: + * none + */ + +private "_player"; + +_player = _this select 0; + +if !(_player canAdd "AGM_EarBuds") exitWith { // inventory full + [localize "STR_AGM_Hearing_Inventory_Full"] call AGM_Core_fnc_displayTextStructured; +}; + +// Buds already in and removing them. +_player addItem "AGM_EarBuds"; + +_player setVariable ["AGM_hasEarPlugsIn", false, true]; + +[localize "STR_AGM_Hearing_Earbuds_Are_Off"] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Hearing/sounds/agm_earringing_heavy.wav b/TO_MERGE/agm/Hearing/sounds/agm_earringing_heavy.wav new file mode 100644 index 0000000000..7a40c9226f Binary files /dev/null and b/TO_MERGE/agm/Hearing/sounds/agm_earringing_heavy.wav differ diff --git a/TO_MERGE/agm/Hearing/sounds/agm_earringing_medium.wav b/TO_MERGE/agm/Hearing/sounds/agm_earringing_medium.wav new file mode 100644 index 0000000000..5dc9b4ac86 Binary files /dev/null and b/TO_MERGE/agm/Hearing/sounds/agm_earringing_medium.wav differ diff --git a/TO_MERGE/agm/Hearing/sounds/agm_earringing_weak.wav b/TO_MERGE/agm/Hearing/sounds/agm_earringing_weak.wav new file mode 100644 index 0000000000..84fb30025b Binary files /dev/null and b/TO_MERGE/agm/Hearing/sounds/agm_earringing_weak.wav differ diff --git a/TO_MERGE/agm/Hearing/stringtable.xml b/TO_MERGE/agm/Hearing/stringtable.xml new file mode 100644 index 0000000000..33668c2a19 --- /dev/null +++ b/TO_MERGE/agm/Hearing/stringtable.xml @@ -0,0 +1,102 @@ + + + + + + Ear Plugs + Ohrenstöpsel + Tapones para los oídos + Stopery do uszu + Špunty + Беруши + Bouchons Anti-Bruits + Füldugó + Protetor auricular + Tappi auricolari + + + Protective Ear Buds allow the wearer to be near loud weaponry without damage to his hearing. + Schützende Ohrenstöpsel, die es dem Träger ermöglichen, sich in der Nähe lauter Waffen aufzuhalten. + Los tapones para los oídos permiten al usuario operar armamento ruidoso sin sufrir pérdida de audición. + Stopery do uszu umożliwiają użytkownikowi przebywać w pobliżu głośnej broni bez poniesienia konsekwencji jaką jest utrata słuchu. + Ochranné špunty umožňují uživateli, aby neutrpěl zranění jeho sluchu v blízkosti hlasitých zbraní. + Беруши позволяют избежать потери слуха при близкой громкой стрельбе. + Bouchons Anti-Bruits pour la prévention des traumatismes sonores aigus. + Erősebb hanghatásoktól védő füldugó, megakadályozza a nagy hanggal járó fegyverzettől való halláskárosodást. + Protetor para ouvidos permitem que o usuário esteja próximo a ruídos sem danificar sua audição. + Proteggono l'apparato uditivo, permettendo a chi li indossa di resistere ai suoni particolarmente forti senza alcun danno. + + + Earplugs in + Ohrenstöpsel drinnen + Poner tapones + Załóż stopery + Dát špunty do uší + Беруши надеты + Bouchons mis + Füldugó berakva + Protetores colocados + Indossa i tappi auricolari + + + Earplugs out + Ohrenstöpsel raus + Quitar tapones + Zdejmij stopery + Vyndat špunty z uší + Беруши сняты + Bouchons enlevés + Füldugó kivéve + Protetores retirados + Levati i tappi auricolari + + + Earplugs in + Ohrenstöpsel drinnen + Tapones puestos + Stopery założone + Špunty v uších + Беруши надеты + Bouchons mis + Füldugó berakva + Protetores colocados + Indossa i tappi auricolari + + + Earplugs out + Ohrenstöpsel raus + Tapones quitados + Stopery zdjęte + Špunty venku z uší + Беруши сняты + Bouchons enlevés + Füldugó kivéve + Protetores retirados + Levati i tappi auricolari + + + You have no ear plugs + Keine Ohrenstöpsel im Inventar + No tienes tapones para los oídos + Nie masz stoperów + Nemáš žádné špunty + У вас нет беруш + Vous n'avez pas de Bouchons Anti-Bruits + Nincs füldugód + Você não possui protetores auriculares + Non hai i tappi auricolari + + + No inventory space + Kein Platz im Inventar + Sin espacio en el inventario + Brak miejsca w ekwipunku + Pas de place dans l'inventaire + Není místo v inventáři + Non hai abbastanza spazio + Não há espaço no inventário + Nincs több hely + Нет места в инвентаре + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Interaction/Menu_Config.hpp b/TO_MERGE/agm/Interaction/Menu_Config.hpp new file mode 100644 index 0000000000..cc66efa2e9 --- /dev/null +++ b/TO_MERGE/agm/Interaction/Menu_Config.hpp @@ -0,0 +1,632 @@ + +#define HSPACE 0.5-2.0/16/2 +#define VSPACE 0.5-0.3/9/2 + +class RscStructuredText; +class AGM_Interaction_Button_Base { + tooltip = ""; + //action = "AGM_Interaction_isMousePressed = true;(findDisplay 1713999) closeDisplay 1;_action = AGM_Interaction_Buttons select AGM_Interaction_SelectedButton;AGM_Interaction_SelectedButton = -1; if (call (_action select 2)) then {call (_action select 1)};"; + action = ""; + + idc = -1; + access = 0; + type = 1; + text = ""; + font = "PuristaMedium"; + sizeEx = "0.8 / 40 / (getResolution select 5)"; + shadow = 2; + + style = 2; + x = 0; + y = 0; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + + offsetX = 0.003; + offsetY = 0.003; + offsetPressedX = 0.002; + offsetPressedY = 0.002; + borderSize = 0; + + colorText[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,1}; + colorBackground[] = {0,0,0,0.8}; + colorBackgroundDisabled[] = {0,0,0,0.8}; + colorBackgroundActive[] = {1,1,1,0}; + colorFocused[] = {1,1,1,1}; + colorShadow[] = {0,0,0,0}; + colorBorder[] = {1,1,1,0.8}; + + 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}; +}; + +#define ICON_BORDER 0.05 + +// Old command rose +class AGM_Interaction_Dialog { + idd = 1713999; + enableSimulation = 1; + movingEnable = 0; + onLoad = "_dlgInteractionDialog = _this select 0; for '_a' from 10 to 19 do {(_dlgInteractionDialog displayCtrl _a) ctrlShow false}; uiNamespace setVariable ['AGM_Interaction_Dialog', _dlgInteractionDialog];"; + objects[] = {}; + class controls { + class Interaction_BackgroundMain: AGM_Interaction_Button_Base { + type = 0; + style = 2; + idc = 2; + colorBackground[] = {0,0,0,0.5}; + colorBackgroundDisabled[] = {0,0,0,0.5}; + x = "(0.5-1.8/16/2 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.55/9/2 + 0 * 0.04) * safezoneH + safezoneY"; + w = "1.8 / 16 * safezoneW"; + h = "0.55 / 9 * safezoneH"; + }; + + class Interaction_ButtonMain: AGM_Interaction_Button_Base { + action = "-1 call AGM_Interaction_fnc_onClick;"; + style = 2; + tooltip = ""; + text = "Interaction Menu"; + idc = 3; + sizeEx = "0.6 / 40 / (getResolution select 5)"; + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {1,1,1,0.2}; + colorFocused[] = {0,0,0,0}; + x = "(0.5-1.8/16/2 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.55/9/2 + 0 * 0.04) * safezoneH + safezoneY"; + w = "1.8 / 16 * safezoneW"; + h = "0.55 / 9 * safezoneH"; + }; + + class Interaction_Background0: AGM_Interaction_Button_Base { + type = 0; + style = 2; + idc = 40; + colorBackground[] = {0,0,0,0.5}; + colorBackgroundDisabled[] = {0,0,0,0.5}; + x = "(0.5-2.0/16/2 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 2.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background1: Interaction_Background0 { + idc = 41; + x = "(0.5-2.0/16/2 + 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background2: Interaction_Background0 { + idc = 42; + x = "(0.5-2.0/16/2 + 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background3: Interaction_Background0 { + idc = 43; + x = "(0.5-2.0/16/2 + 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background4: Interaction_Background0 { + idc = 44; + x = "(0.5-2.0/16/2 + 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background5: Interaction_Background0 { + idc = 45; + x = "(0.5-2.0/16/2 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 2.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background6: Interaction_Background0 { + idc = 46; + x = "(0.5-2.0/16/2 - 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background7: Interaction_Background0 { + idc = 47; + x = "(0.5-2.0/16/2 - 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background8: Interaction_Background0 { + idc = 48; + x = "(0.5-2.0/16/2 - 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Background9: Interaction_Background0 { + idc = 49; + x = "(0.5-2.0/16/2 - 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + + class Interaction_Icon0: AGM_Interaction_Button_Base { + tooltip = ""; + text = ""; + idc = 20; + type = 0; + style = 48; + colorBackground[] = {0,0,0,0}; + x = (0.5-(2.0-ICON_BORDER)/16/2 + 0 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 - 2.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon1: Interaction_Icon0 { + idc = 21; + x = (0.5-(2.0-ICON_BORDER)/16/2 + 1.0 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 - 1.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon2: Interaction_Icon0 { + idc = 22; + x = (0.5-(2.0-ICON_BORDER)/16/2 + 1.25 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 - 0.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon3: Interaction_Icon0 { + idc = 23; + x = (0.5-(2.0-ICON_BORDER)/16/2 + 1.25 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 + 0.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon4: Interaction_Icon0 { + idc = 24; + x = (0.5-(2.0-ICON_BORDER)/16/2 + 1.0 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 + 1.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon5 : Interaction_Icon0 { + idc = 25; + x = (0.5-(2.0-ICON_BORDER)/16/2 + 0 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 + 2.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon6: Interaction_Icon0 { + idc = 26; + x = (0.5-(2.0-ICON_BORDER)/16/2 - 1.0 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 + 1.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon7: Interaction_Icon0 { + idc = 27; + x = (0.5-(2.0-ICON_BORDER)/16/2 - 1.25 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 + 0.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon8: Interaction_Icon0 { + idc = 28; + x = (0.5-(2.0-ICON_BORDER)/16/2 - 1.25 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 - 0.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + class Interaction_Icon9: Interaction_Icon0 { + idc = 29; + x = (0.5-(2.0-ICON_BORDER)/16/2 - 1.0 * 0.1) * safezoneW + safezoneX; + y = (0.5-(0.3-ICON_BORDER)/9/2 - 1.5 * 0.04) * safezoneH + safezoneY; + w = (0.3-ICON_BORDER) / 16 * safezoneW; + h = (0.3-ICON_BORDER) / 9 * safezoneH; + }; + + class Interaction_Shortcut0: AGM_Interaction_Button_Base { + tooltip = ""; + text = ""; + idc = 30; + style = 2; + colorBackground[] = {0,0,0,0}; + x = "(0.5+2.0/16/2-0.3/16 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 2.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut1: Interaction_Shortcut0 { + idc = 31; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 + 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 1.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut2: Interaction_Shortcut0 { + idc = 32; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 + 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 0.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut3: Interaction_Shortcut0 { + idc = 33; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 + 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 0.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut4: Interaction_Shortcut0 { + idc = 34; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 + 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 1.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut5 : Interaction_Shortcut0 { + idc = 35; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 2.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut6: Interaction_Shortcut0 { + idc = 36; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 - 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 1.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut7: Interaction_Shortcut0 { + idc = 37; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 - 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 0.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut8: Interaction_Shortcut0 { + idc = 38; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 - 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 0.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Shortcut9: Interaction_Shortcut0 { + idc = 39; + type = 0; + x = "(0.5+2.0/16/2-0.3/16 - 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 1.5 * 0.04) * safezoneH + safezoneY"; + w = "0.3 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + + class Interaction_Button0: AGM_Interaction_Button_Base { + action = "0 call AGM_Interaction_fnc_onClick;"; + style = 2; + tooltip = ""; + text = ""; + idc = 10; + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {1,1,1,0.2}; + colorFocused[] = {0,0,0,0}; + x = "(0.5-2.0/16/2 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 2.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button1: Interaction_Button0 { + action = "1 call AGM_Interaction_fnc_onClick;"; + idc = 11; + x = "(0.5-2.0/16/2 + 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button2: Interaction_Button0 { + action = "2 call AGM_Interaction_fnc_onClick;"; + idc = 12; + x = "(0.5-2.0/16/2 + 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button3: Interaction_Button0 { + action = "3 call AGM_Interaction_fnc_onClick;"; + idc = 13; + x = "(0.5-2.0/16/2 + 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button4: Interaction_Button0 { + action = "4 call AGM_Interaction_fnc_onClick;"; + idc = 14; + x = "(0.5-2.0/16/2 + 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button5: Interaction_Button0 { + action = "5 call AGM_Interaction_fnc_onClick;"; + idc = 15; + x = "(0.5-2.0/16/2 + 0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 2.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button6: Interaction_Button0 { + action = "6 call AGM_Interaction_fnc_onClick;"; + idc = 16; + x = "(0.5-2.0/16/2 - 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button7: Interaction_Button0 { + action = "7 call AGM_Interaction_fnc_onClick;"; + idc = 17; + x = "(0.5-2.0/16/2 - 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 + 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button8: Interaction_Button0 { + action = "8 call AGM_Interaction_fnc_onClick;"; + idc = 18; + x = "(0.5-2.0/16/2 - 1.25 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 0.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + class Interaction_Button9: Interaction_Button0 { + action = "9 call AGM_Interaction_fnc_onClick;"; + idc = 19; + x = "(0.5-2.0/16/2 - 1.0 * 0.1) * safezoneW + safezoneX"; + y = "(0.5-0.3/9/2 - 1.5 * 0.04) * safezoneH + safezoneY"; + w = "2.0 / 16 * safezoneW"; + h = "0.3 / 9 * safezoneH"; + }; + }; +}; + +class RscListbox; +class IGUIBack; +class RscText; +#define X_OFFSET 0.2 + +class RscAGM_SelectAnItem { + idd = 8854; + movingEnable = 0; + class controls { + class back:IGUIBack { + x = X_OFFSET; + y = 0; + w = 0.6; + h = 0.71; + colorBackground[] = {0, 0, 0, 0.2}; + }; + class header: RscText{ + idc = 8870; + x = X_OFFSET + 0.005; + y = 0.005; + w = 0.59; + h = 0.05; + style = 0x02; + text = ""; + }; + class itemList:RscListBox { + onMouseButtonDblClick = "_this call AGM_Interaction_fnc_onSelectMenuDblClick"; + idc = 8866; + x = X_OFFSET + 0.005; + w = 0.59; + h = 0.54; + y = 0.06; + }; + + class cancelBtnBackground: AGM_Interaction_Button_Base { + type = 0; + style = 2; + idc = -1; + colorBackground[] = {0,0,0,0.5}; + colorBackgroundDisabled[] = {0,0,0,0.5}; + x = X_OFFSET + 0.005; + w = 0.15; + h = 0.1; + y = 0.605; + }; + class approveBtnBackground: AGM_Interaction_Button_Base { + type = 0; + style = 2; + idc = -1; + colorBackground[] = {0,0,0,0.5}; + colorBackgroundDisabled[] = {0,0,0,0.5}; + x = X_OFFSET + 0.445; + y = 0.605; + h = 0.1; + w = 0.15; + }; + + class cancelBtn: AGM_Interaction_Button_Base { + idc = 8855; + x = X_OFFSET + 0.005; + w = 0.15; + h = 0.1; + y = 0.605; + style = 2; + text = $STR_AGM_Interaction_Back; //$STR_AGM_Interaction_CancelSelection; + action = "call AGM_Interaction_fnc_hideMenu;"; //'Default' call AGM_Interaction_fnc_openMenu; 'Default' call AGM_Interaction_fnc_openMenuSelf; + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {1,1,1,0.2}; + colorFocused[] = {0,0,0,0}; + }; + class approveBtn: AGM_Interaction_Button_Base { + idc = 8860; + x = X_OFFSET + 0.445; + y = 0.605; + h = 0.1; + w = 0.15; + style = 2; + text = $STR_AGM_Interaction_MakeSelection; + action = "call AGM_Interaction_fnc_hideMenu;"; + colorBackground[] = {0,0,0,0}; + colorBackgroundDisabled[] = {0,0,0,0}; + colorBackgroundActive[] = {1,1,1,0.2}; + colorFocused[] = {0,0,0,0}; + }; + }; +}; + +#define GUI_GRID_W (0.025) +#define GUI_GRID_H (0.04) + +class RscPicture; +class RscInteractionIcon: RscPicture { + x = 19.25 * GUI_GRID_W; + y = 15.75 * GUI_GRID_H; + w = 2*GUI_GRID_H; + h = 2*GUI_GRID_H; +}; +class RscInteractionHelperIcon: RscInteractionIcon { + x = 20 * GUI_GRID_W; + y = 16 * GUI_GRID_H; + w = GUI_GRID_H; + h = GUI_GRID_H; +}; +class RscInteractionText: RscText{ + x = 21 * GUI_GRID_W; + y = 16 * GUI_GRID_H; + w = 8 * GUI_GRID_W; + h = 1.5 * GUI_GRID_H; +}; +class RscTitles { + class AGM_FlowMenu { + idd = 9920; + enableSimulation = 1; + movingEnable = 0; + fadeIn=0.5; + fadeOut=0.5; + duration = 10e10; + onLoad = "uiNamespace setVariable ['AGM_Flow_Display', _this select 0];"; + + class controls { + class RearIcon: RscInteractionIcon{ + idc = 999; + text = "AGM_interaction\UI\CenterIcon_ca.paa"; + x = 17.9 * GUI_GRID_W; + y = 10 * GUI_GRID_H; + w = 3.7 * GUI_GRID_H; + h = 5.75 * GUI_GRID_H; + }; + class TopIcon: RscInteractionIcon{ + idc = 1200; + h = 1 * GUI_GRID_H; + y = 9 * GUI_GRID_H; + }; + class FirstIcon: RscInteractionIcon{ + idc = 1201; + y = 10.25 * GUI_GRID_H; + h = 1.5 * GUI_GRID_H; + }; + class SelectedItemIcon: RscInteractionIcon{ + idc = 1202; + y = 12 * GUI_GRID_H; + }; + class ThirdIcon: RscInteractionIcon{ + idc = 1203; + y = 14.25 * GUI_GRID_H; + h = 1.5 * GUI_GRID_H; + }; + class BottomIcon: TopIcon{ + idc = 1204; + y = 16 * GUI_GRID_H; + }; + class ItemName: RscText{ + idc = 1000; + style = 0x01; + x = 5.25 * GUI_GRID_W; + y = 12.15 * GUI_GRID_H; + w = 13 * GUI_GRID_W; + h = 1.5 * GUI_GRID_H; + colorBackground[] = {0.3, 0.3, 0.3, 0.8}; + }; + class BackIcon: RscInteractionIcon{ + idc = 1210; + text = "AGM_interaction\UI\backArrow_ca.paa"; + x = 18.25 * GUI_GRID_W; + y = 12.69 * GUI_GRID_H; + w = 0.5 * GUI_GRID_W; + h = 0.5 * GUI_GRID_H; + }; + class ItemDetails: RscStructuredText{ + idc = 1100; + style = 0x0c; + x = 23.5 * GUI_GRID_W; + y = 11 * GUI_GRID_H; + w = 13 * GUI_GRID_W; + h = 3.9 * GUI_GRID_H; + colorBackground[] = {0, 0, 0, 0.4}; + }; + }; + }; + class AGM_InteractionHelper { + idd = 9930; + enableSimulation = 1; + movingEnable = 0; + fadeIn=0.5; + fadeOut=0.5; + duration = 10e10; + onLoad = "uiNamespace setVariable ['AGM_Helper_Display', _this select 0];"; + + class controls { + class SelectIcon: RscInteractionHelperIcon{ + idc = 1200; + text = "AGM_interaction\UI\mouse_left_ca.paa"; + y = 17.5 * GUI_GRID_H; + }; + class SelectText: RscInteractionText{ + idc = 1000; + y = 17 * GUI_GRID_H; + text = $STR_AGM_Interaction_MakeSelection; + }; + class GoBackIcon: RscInteractionHelperIcon{ + idc = 1201; + text = "AGM_interaction\UI\mouse_right_ca.paa"; + y = 19.5 * GUI_GRID_H; + }; + class GoBackText: RscInteractionText{ + idc = 1001; + y = 19 * GUI_GRID_H; + text = $STR_AGM_Interaction_Back; + }; + class ScrollIcon: RscInteractionHelperIcon{ + idc = 1202; + text = "AGM_interaction\UI\mouse_scroll_ca.paa"; + y = 18.5 * GUI_GRID_H; + }; + class ScrollText: RscInteractionText{ + idc = 1002; + y = 18 * GUI_GRID_H; + text = $STR_AGM_Interaction_ScrollHint; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Interaction/UI/CenterIcon_ca.paa b/TO_MERGE/agm/Interaction/UI/CenterIcon_ca.paa new file mode 100644 index 0000000000..86deb5df7c Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/CenterIcon_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/IconInteraction_ca.paa b/TO_MERGE/agm/Interaction/UI/IconInteraction_ca.paa new file mode 100644 index 0000000000..000c4bc9c6 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/IconInteraction_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/backArrow_ca.paa b/TO_MERGE/agm/Interaction/UI/backArrow_ca.paa new file mode 100644 index 0000000000..627cb64f17 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/backArrow_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/command_rose_ca.paa b/TO_MERGE/agm/Interaction/UI/command_rose_ca.paa new file mode 100644 index 0000000000..3dd8b58768 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/command_rose_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/dot_ca.paa b/TO_MERGE/agm/Interaction/UI/dot_ca.paa new file mode 100644 index 0000000000..7988dfe11d Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/dot_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/gestures_ca.paa b/TO_MERGE/agm/Interaction/UI/gestures_ca.paa new file mode 100644 index 0000000000..b237d73edf Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/gestures_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/mouse_left_ca.paa b/TO_MERGE/agm/Interaction/UI/mouse_left_ca.paa new file mode 100644 index 0000000000..1cbc49397e Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/mouse_left_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/mouse_right_ca.paa b/TO_MERGE/agm/Interaction/UI/mouse_right_ca.paa new file mode 100644 index 0000000000..3c2a352b22 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/mouse_right_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/mouse_scroll_ca.paa b/TO_MERGE/agm/Interaction/UI/mouse_scroll_ca.paa new file mode 100644 index 0000000000..662d11b0d8 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/mouse_scroll_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/team/team_blue_ca.paa b/TO_MERGE/agm/Interaction/UI/team/team_blue_ca.paa new file mode 100644 index 0000000000..ef64818d12 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/team/team_blue_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/team/team_green_ca.paa b/TO_MERGE/agm/Interaction/UI/team/team_green_ca.paa new file mode 100644 index 0000000000..7f8c2218c1 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/team/team_green_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/team/team_management_ca.paa b/TO_MERGE/agm/Interaction/UI/team/team_management_ca.paa new file mode 100644 index 0000000000..aa5f1c79b5 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/team/team_management_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/team/team_red_ca.paa b/TO_MERGE/agm/Interaction/UI/team/team_red_ca.paa new file mode 100644 index 0000000000..2cf3de18dd Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/team/team_red_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/team/team_white_ca.paa b/TO_MERGE/agm/Interaction/UI/team/team_white_ca.paa new file mode 100644 index 0000000000..cbb02bf7b4 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/team/team_white_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/UI/team/team_yellow_ca.paa b/TO_MERGE/agm/Interaction/UI/team/team_yellow_ca.paa new file mode 100644 index 0000000000..b69405c8e8 Binary files /dev/null and b/TO_MERGE/agm/Interaction/UI/team/team_yellow_ca.paa differ diff --git a/TO_MERGE/agm/Interaction/clientInit.sqf b/TO_MERGE/agm/Interaction/clientInit.sqf new file mode 100644 index 0000000000..02762d42b6 --- /dev/null +++ b/TO_MERGE/agm/Interaction/clientInit.sqf @@ -0,0 +1,12 @@ +// by commy2 and CAA-Picard + +if (!hasInterface) exitWith {}; + +AGM_Interaction_isOpeningDoor = false; +AGM_Dancing = false; + +// restore global fire teams for JIP +{ + _team = _x getVariable ["AGM_assignedFireTeam", ""]; + if (_team != "") then {_x assignTeam _team}; +} forEach allUnits; diff --git a/TO_MERGE/agm/Interaction/config.cpp b/TO_MERGE/agm/Interaction/config.cpp new file mode 100644 index 0000000000..961d644a0b --- /dev/null +++ b/TO_MERGE/agm/Interaction/config.cpp @@ -0,0 +1,664 @@ +class CfgPatches { + class AGM_Interaction { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi", "CAA-Picard", "bux578"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Interaction { + class AGM_Interaction { + file = "\AGM_interaction\functions"; + class addInteraction; + class addInteractionSelf; + class AddSelectableItem; + class addToTooltip; + class applyButtons; + class canInteractWith; + class canLockDoor; + class canTapShoulder; + class getActions2; + class GetActions; + class getDoor; + class getDoorAnimations; + class getDown; + class getSelectedButton; + class hideMenu; + class hideMouseHint; + class initialiseInteraction; + class isInRange; + class joinTeam; + class lockDoor; + class menuKeyInput; + class moduleInteraction; + class moveDown; + class onButtonDown; + class onButtonDownSelf; + class onButtonUp; + class onClick; + class onSelectMenuDblClick; + class openDoor; + class openMenu; + class openMenuSelectUI; + class openMenuSelf; + class openSelectMenu; + class openSubMenu; + class openSubMenuSelf; + class prepareSelectMenu; + class push; + class removeInteraction; + class removeInteractionSelf; + class removeTag; + class sendAway; + class showMenu; + class showMouseHint; + class sortOptionsByPriority; + class tapShoulder; + class updateTooltipPosition; + + // backwards compatibility, remove in some patches + class getCaptivityStatus; + class setCaptivityStatus; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Interaction { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Interaction\clientInit.sqf'"; + }; +}; + +class Extended_GetIn_EventHandlers { + class All { + class AGM_AutoCloseMenu { + clientGetIn = "if (_this select 2 == AGM_player && {!isNull (findDisplay 1713999)}) then {(findDisplay 1713999) closeDisplay 1}"; + }; + }; +}; + +class Extended_GetOut_EventHandlers { + class All { + class AGM_AutoCloseMenu { + clientGetOut = "if (_this select 2 == AGM_player && {!isNull (findDisplay 1713999)}) then {(findDisplay 1713999) closeDisplay 1}"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class openInteractionMenuNew { + displayName = "$STR_AGM_Interaction_InteractionMenu"; + condition = "true"; + statement = "call AGM_Interaction_fnc_onButtonDown"; + conditionUp = "!isNull (findDisplay 1713999) && {profileNamespace getVariable ['AGM_Interaction_AutoCloseMenu', false]}"; + statementUp = "if (AGM_Interaction_MenuType mod 2 == 0) then {call AGM_Interaction_fnc_onButtonUp};"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Medical_canTreat", "AGM_Interaction_isNotEscorting", "AGM_Interaction_isNotSwimming"}; + key = 219; + shift = 0; + control = 0; + alt = 0; + }; + class openInteractionMenuSelfNew { + displayName = "$STR_AGM_Interaction_InteractionMenuSelf"; + condition = "true"; + statement = "call AGM_Interaction_fnc_onButtonDownSelf"; + conditionUp = "!isNull (findDisplay 1713999) && {profileNamespace getVariable ['AGM_Interaction_AutoCloseMenu', false]}"; + statementUp = "if (AGM_Interaction_MenuType mod 2 == 1) then {call AGM_Interaction_fnc_onButtonUp};"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Medical_canTreat", "AGM_Interaction_isNotEscorting", "AGM_Interaction_isNotSwimming", "AGM_Core_notOnMap"}; + key = 219; + shift = 0; + control = 1; + alt = 0; + }; + class openDoor { + displayName = "$STR_AGM_Interaction_OpenDoor"; + condition = "!AGM_Interaction_isOpeningDoor && {[2] call AGM_Interaction_fnc_getDoor select 1 != ''}"; + statement = "call AGM_Interaction_fnc_openDoor"; + conditionUp = "AGM_Interaction_isOpeningDoor"; + statementUp = "AGM_Interaction_isOpeningDoor = false"; + key = 57; + shift = 0; + control = 1; + alt = 0; + }; + // disabled for now + /*class lockDoor { + displayName = "$STR_AGM_Interaction_LockDoor"; + condition = "[true] call AGM_Interaction_fnc_canLockDoor && {!AGM_Interaction_isOpeningDoor}"; + statement = "[true] call AGM_Interaction_fnc_lockDoor"; + key = 57; + shift = 0; + control = 0; + alt = 1; + }; + class unlockDoor { + displayName = "$STR_AGM_Interaction_UnlockDoor"; + condition = "[false] call AGM_Interaction_fnc_canLockDoor"; + statement = "[false] call AGM_Interaction_fnc_lockDoor"; + key = 57; + shift = 0; + control = 1; + alt = 1; + };*/ + class tapShoulder { + displayName = "$STR_AGM_Interaction_TapShoulder"; + condition = "[_player, cursorTarget] call AGM_Interaction_fnc_canTapShoulder"; + statement = "[_player, cursorTarget] call AGM_Interaction_fnc_tapShoulder"; + key = 20; + shift = 1; + control = 0; + alt = 0; + }; + class modifierKey { + displayName = "$STR_AGM_Interaction_ModifierKey"; + condition = ""; + statement = "AGM_Modifier = 1;"; + conditionUp = ""; + statementUp = "AGM_Modifier = 0;"; + exceptions[] = {"AGM_Drag_isNotDragging"}; + key = 29; + shift = 0; + control = 0; + alt = 0; + }; +}; + +class AGM_Core_Options { + class Interaction_FlowMenu { + displayName = "$STR_AGM_Interaction_FlowMenu"; + default = 0; + }; + class Interaction_AutoCloseMenu { + displayName = "$STR_AGM_Interaction_AutoCloseMenu"; + default = 0; + }; + class Interaction_AutoCenterCursor { + displayName = "$STR_AGM_Interaction_AutoCenterCursor"; + default = 1; + }; +}; + +class AGM_Parameters { + AGM_Modifier = 0; +}; +class AGM_Parameters_Boolean { + AGM_Interaction_EnableTeamManagement = 1; +}; + +class AGM_Core_canInteractConditions { + class AGM_Interaction_isNotEscorting { + condition = "!(_player getVariable ['AGM_isEscorting', false])"; + }; + class AGM_Interaction_isNotCaptive { + condition = "!(_player getVariable ['AGM_isCaptive', false])"; + }; + class AGM_Interaction_isNotSurrendering { + condition = "!(_player getVariable ['AGM_isSurrender', false])"; + }; + class AGM_Interaction_isNotSwimming { + condition = "!underwater _player"; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + + class Module_F; + class AGM_ModuleInteraction: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Interaction System"; + function = "AGM_Interaction_fnc_moduleInteraction"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Interaction\UI\IconInteraction_ca.paa"; + class Arguments { + class EnableTeamManagement { + displayName = "Enable Team Management"; + description = "Should players be allowed to use the Team Management Menu? Default: Yes"; + typeName = "BOOL"; + class values { + class Yes { default = 1; name = "Yes"; value = 1;}; + class No { name = "No"; value = 0; }; + }; + }; + }; + }; + + class Man; + class CAManBase: Man { + class AGM_Actions { + class AGM_TeamManagement { + displayName = "$STR_AGM_Interaction_TeamManagement"; + distance = 4; + condition = "alive _target && {!isPlayer _target} && {_target in units group _player} && {AGM_Interaction_EnableTeamManagement}"; + statement = ""; + showDisabled = 0; + priority = 3.2; + icon = "\AGM_Interaction\UI\team\team_management_ca.paa"; + subMenu[] = {"AGM_TeamManagement", 0}; + hotkey = "M"; + enableInside = 1; + + class AGM_JoinTeamRed { + displayName = "$STR_AGM_Interaction_JoinTeamRed"; + distance = 4; + condition = "alive _target && {!isPlayer _target} && {_target in units group _player}"; + statement = "[_target, 'RED'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + icon = "\AGM_Interaction\UI\team\team_red_ca.paa"; + priority = 2.4; + hotkey = "R"; + enableInside = 1; + }; + class AGM_JoinTeamGreen { + displayName = "$STR_AGM_Interaction_JoinTeamGreen"; + distance = 4; + condition = "alive _target && {!isPlayer _target} && {_target in units group _player}"; + statement = "[_target, 'GREEN'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + icon = "\AGM_Interaction\UI\team\team_green_ca.paa"; + priority = 2.3; + hotkey = "G"; + enableInside = 1; + }; + class AGM_JoinTeamBlue { + displayName = "$STR_AGM_Interaction_JoinTeamBlue"; + distance = 4; + condition = "alive _target && {!isPlayer _target} && {_target in units group _player}"; + statement = "[_target, 'BLUE'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + icon = "\AGM_Interaction\UI\team\team_blue_ca.paa"; + priority = 2.2; + hotkey = "B"; + enableInside = 1; + }; + class AGM_JoinTeamYellow { + displayName = "$STR_AGM_Interaction_JoinTeamYellow"; + distance = 4; + condition = "alive _target && {!isPlayer _target} && {_target in units group _player}"; + statement = "[_target, 'YELLOW'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + icon = "\AGM_Interaction\UI\team\team_yellow_ca.paa"; + priority = 2.1; + hotkey = "Y"; + enableInside = 1; + }; + + class AGM_LeaveTeam { + displayName = "$STR_AGM_Interaction_LeaveTeam"; + distance = 4; + condition = "alive _target && {!isPlayer _target} && {_target in units group _player} && {assignedTeam _player != 'MAIN'}"; + statement = "[_target, 'MAIN'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + icon = "\AGM_Interaction\UI\team\team_white_ca.paa"; + priority = 2.5; + hotkey = "N"; + enableInside = 1; + }; + }; + + class AGM_TapShoulder { + displayName = "$STR_AGM_Interaction_TapShoulder"; + distance = 4; + condition = "[_player, _target] call AGM_Interaction_fnc_canTapShoulder"; + statement = "[_player, _target] call AGM_Interaction_fnc_tapShoulder"; + showDisabled = 1; + priority = 2.8; + hotkey = "Q"; + enableInside = 1; + }; + class AGM_JoinGroup { + displayName = "$STR_AGM_Interaction_JoinGroup"; + distance = 4; + condition = "side group _player == side group _target && {group _player != group _target}"; + statement = "[_player] joinSilent group _target;"; + showDisabled = 0; + priority = 2.6; + icon = "\AGM_Interaction\UI\team\team_management_ca.paa"; + hotkey = "J"; + enableInside = 1; + }; + + class AGM_GetDown { + displayName = "$STR_AGM_Interaction_GetDown"; + distance = 4; + condition = "[_target] call AGM_Interaction_fnc_canInteractWith"; + statement = "[_target] call AGM_Interaction_fnc_getDown"; + showDisabled = 0; + priority = 2.2; + }; + class AGM_SendAway { + displayName = "$STR_AGM_Interaction_SendAway"; + distance = 4; + condition = "[_target] call AGM_Interaction_fnc_canInteractWith"; + statement = "[_target] call AGM_Interaction_fnc_sendAway"; + showDisabled = 0; + priority = 2.0; + }; + class AGM_Pardon { + displayName = "$STR_AGM_Interaction_Pardon"; + distance = 4; + condition = "rating _target < -2000 && {alive _target} && {side group _player == side group _target}"; + statement = "[_target, '{_this addRating -rating _this}', _target] call AGM_Core_fnc_execRemoteFnc"; + showDisabled = 0; + priority = 2.5; + enableInside = 1; + }; + }; + + class AGM_SelfActions { + class AGM_TeamManagement { + displayName = "$STR_AGM_Interaction_TeamManagement"; + condition = "AGM_Interaction_EnableTeamManagement"; + statement = ""; + showDisabled = 1; + priority = 3.2; + icon = "\AGM_Interaction\UI\team\team_management_ca.paa"; + subMenu[] = {"AGM_TeamManagement", 1}; + enableInside = 1; + hotkey = "M"; + + class AGM_JoinTeamRed { + displayName = "$STR_AGM_Interaction_JoinTeamRed"; + condition = "true"; + statement = "[_player, 'RED'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + priority = 2.4; + icon = "\AGM_Interaction\UI\team\team_red_ca.paa"; + enableInside = 1; + hotkey = "R"; + }; + class AGM_JoinTeamGreen { + displayName = "$STR_AGM_Interaction_JoinTeamGreen"; + condition = "true"; + statement = "[_player, 'GREEN'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + priority = 2.3; + icon = "\AGM_Interaction\UI\team\team_green_ca.paa"; + enableInside = 1; + hotkey = "G"; + }; + class AGM_JoinTeamBlue { + displayName = "$STR_AGM_Interaction_JoinTeamBlue"; + condition = "true"; + statement = "[_player, 'BLUE'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + priority = 2.2; + icon = "\AGM_Interaction\UI\team\team_blue_ca.paa"; + enableInside = 1; + hotkey = "B"; + }; + class AGM_JoinTeamYellow { + displayName = "$STR_AGM_Interaction_JoinTeamYellow"; + condition = "true"; + statement = "[_player, 'YELLOW'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + priority = 2.1; + icon = "\AGM_Interaction\UI\team\team_yellow_ca.paa"; + enableInside = 1; + hotkey = "Y"; + }; + + class AGM_LeaveTeam { + displayName = "$STR_AGM_Interaction_LeaveTeam"; + condition = "assignedTeam _player != 'MAIN'"; + statement = "[_player, 'MAIN'] call AGM_Interaction_fnc_joinTeam"; + showDisabled = 1; + priority = 2.5; + icon = "\AGM_Interaction\UI\team\team_white_ca.paa"; + enableInside = 1; + hotkey = "N"; + }; + + class AGM_BecomeLeader { + displayName = "$STR_AGM_Interaction_BecomeLeader"; + condition = "count (units group _player) > 1 && {leader group _player != _player}"; + statement = "_newGroup = createGroup side group _player; (units group _player) joinSilent _newGroup; _newGroup selectLeader _player;"; + showDisabled = 1; + priority = 1.0; + icon = "\AGM_Interaction\UI\team\team_white_ca.paa"; + enableInside = 1; + hotkey = "L"; + }; + class AGM_LeaveGroup { + displayName = "$STR_AGM_Interaction_LeaveGroup"; + condition = "count (units group _player) > 1"; + statement = "_oldGroup = units group _player; _newGroup = createGroup side _player; [_player] joinSilent _newGroup; {_player reveal _x} forEach _oldGroup;"; + showDisabled = 1; + priority = 1.2; + icon = "\AGM_Interaction\UI\team\team_management_ca.paa"; + enableInside = 1; + hotkey = "M"; + }; + }; + + /* DANCE ANIMATION DOESN'T WORK :( + class AGM_Dance { + displayName = "$STR_AGM_Interaction_Dance"; + condition = "isClass (configFile >> 'CfgPatches' >> 'AGM_Movement') and !AGM_Dancing"; + statement = "AGM_Dancing = true; [-2, {_this switchMove 'TestDance';}, player] call CBA_fnc_globalExecute;"; + showDisabled = 0; + priority = -1.2; + }; + class AGM_StopDancing { + displayName = "$STR_AGM_Interaction_StopDancing"; + condition = "AGM_Dancing"; + statement = "AGM_Dancing = false; [-2, {_this switchMove '';}, player] call CBA_fnc_globalExecute;"; + showDisabled = 0; + priority = -1.2; + }; + */ + + class AGM_Gestures { + displayName = "$STR_AGM_Interaction_Gestures"; + condition = "canStand _target"; + statement = ""; + showDisabled = 1; + priority = 3.5; + subMenu[] = {"AGM_Gestures", 1}; + icon = "AGM_Interaction\UI\gestures_ca.paa"; + hotkey = "G"; + + /*class AGM_Gesture_Advance { + displayName = "$STR_AGM_Interaction_Gestures_Attack"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureAttack';"; + showDisabled = 1; + priority = 2.0; + };*/ + class AGM_Gesture_Advance { + displayName = "$STR_AGM_Interaction_Gestures_Advance"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureAdvance';"; + showDisabled = 1; + priority = 1.9; + hotkey = "1"; + }; + class AGM_Gesture_Go { + displayName = "$STR_AGM_Interaction_Gestures_Go"; + condition = "canStand _target"; + statement = "_target playActionNow (['gestureGo', 'gestureGoB'] select (floor random 2));"; + showDisabled = 1; + priority = 1.8; + hotkey = "2"; + }; + class AGM_Gesture_Follow { + displayName = "$STR_AGM_Interaction_Gestures_Follow"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureFollow';"; + showDisabled = 1; + priority = 1.7; + hotkey = "3"; + }; + /*class AGM_Gesture_Point { + displayName = "$STR_AGM_Interaction_Gestures_Point"; + condition = "canStand _target"; + statement = "_target playActionNow 'gesturePoint';"; + showDisabled = 1; + priority = 1.6; + };*/ + class AGM_Gesture_Up { + displayName = "$STR_AGM_Interaction_Gestures_Up"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureUp';"; + showDisabled = 1; + priority = 1.5; + hotkey = "4"; + }; + class AGM_Gesture_Cover { + displayName = "$STR_AGM_Interaction_Gestures_Cover"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureCover';"; + showDisabled = 1; + priority = 1.4; + hotkey = "5"; + }; + class AGM_Gesture_CeaseFire { + displayName = "$STR_AGM_Interaction_Gestures_Cease_Fire"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureCeaseFire';"; + showDisabled = 1; + priority = 1.3; + hotkey = "6"; + }; + class AGM_Gesture_Freeze { + displayName = "$STR_AGM_Interaction_Gestures_Freeze"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureFreeze';"; + showDisabled = 1; + priority = 1.2; + hotkey = "7"; + }; + class AGM_Gesture_Yes { + displayName = "$STR_AGM_Interaction_Gestures_Yes"; + condition = "canStand _target"; + statement = "_target playActionNow (['gestureYes', 'gestureNod'] select (floor random 2));"; + showDisabled = 1; + priority = 1.1; + hotkey = "8"; + }; + class AGM_Gesture_No { + displayName = "$STR_AGM_Interaction_Gestures_No"; + condition = "canStand _target"; + statement = "_target playActionNow 'gestureNo';"; + showDisabled = 1; + priority = 1.0; + hotkey = "9"; + }; + class AGM_Gesture_Hi { + displayName = "$STR_AGM_Interaction_Gestures_Hi"; + condition = "canStand _target"; + statement = "_target playActionNow (['gestureHi', 'gestureHiB', 'gestureHiC'] select (floor random 3));"; + showDisabled = 1; + priority = 0.9; + hotkey = "0"; + }; + }; + + class AGM_Equipment { + displayName = "$STR_AGM_Interaction_Equipment"; + condition = "true"; + statement = ""; + showDisabled = 1; + priority = 4.5; + icon = ""; // @todo + subMenu[] = {"AGM_Equipment", 1}; + enableInside = 1; + hotkey = "E"; + + class AGM_Dummy { + displayName = ""; + condition = "false"; + statement = ""; + showDisabled = 1; + priority = -99; + icon = "AGM_Core\UI\blank_CO.paa"; + enableInside = 1; + }; + }; + }; + }; + + class LandVehicle; + class Car: LandVehicle { + class AGM_Actions {}; + class AGM_SelfActions {}; + }; + class Tank: LandVehicle { + class AGM_Actions {}; + class AGM_SelfActions {}; + }; + + class Air; + class Helicopter: Air { + class AGM_Actions {}; + class AGM_SelfActions {}; + }; + class Plane: Air { + class AGM_Actions {}; + class AGM_SelfActions {}; + }; + + class Ship; + class Ship_F: Ship { + class AGM_Actions { + class AGM_Push { + displayName = "$STR_AGM_Interaction_Push"; + distance = 4; + condition = "getMass _target < 1000 and alive _target"; + statement = "[_target, [2 * (vectorDir _player select 0), 2 * (vectorDir _player select 1), 0.5]] call AGM_Interaction_fnc_push;"; + showDisabled = 0; + priority = -1; + }; + }; + class AGM_SelfActions {}; + }; + + class StaticWeapon: LandVehicle { + class AGM_Actions {}; + class AGM_SelfActions {}; + }; + + class StaticMortar; + class Mortar_01_base_F: StaticMortar { + class AGM_Actions {}; + class AGM_SelfActions {}; + }; + + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_CableTie,24) + }; + }; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_CableTie: AGM_ItemCore { + displayName = "$STR_AGM_Interaction_CableTie_Name"; + descriptionShort = "$STR_AGM_Interaction_CableTie_Description"; + model = "\AGM_Interaction\agm_cabletie.p3d"; + picture = "\AGM_Interaction\UI\agm_cabletie_x_ca.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 1; + }; + }; +}; + +#include diff --git a/TO_MERGE/agm/Interaction/functions/fn_AddSelectableItem.sqf b/TO_MERGE/agm/Interaction/functions/fn_AddSelectableItem.sqf new file mode 100644 index 0000000000..f6fccae709 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_AddSelectableItem.sqf @@ -0,0 +1,40 @@ +/* + Name: AGM_Interaction_fnc_AddSelectableItem + + Author: Garth de Wet (LH) + + Description: + Adds an item to the select menu + + Parameters: + 0: ARRAY/NUMBER - List container + 1: String - Display Name + 2: String - Picture + 3: String/code - data + + Returns: + ARRAY/Number + + Example: +*/ +private ["_container", "_displayName", "_picture", "_data", "_index"]; + +_container = _this select 0; +_displayName = _this select 1; +_picture = _this select 2; +_data = _this select 3; + +if (_picture == "" || _picture == "PictureThing") then { + _picture = "AGM_Interaction\UI\dot_ca.paa"; +}; + +if ((profileNamespace getVariable ["AGM_Interaction_FlowMenu", false])) then { + //[_displayName, _statement, _condition, _priority, _subMenu, _icon, _tooltip, _conditionShow, _exceptions, _distance, _hotkey] + _container pushBack [_displayName, nil, {true},0,[], _picture, "", {true}, [], 4, "", _data]; +}else{ + _index = lbAdd [_container, _displayName]; + lbSetData [_container, _index, str _data]; + lbSetPicture [_container, _index, _picture]; +}; + +_container diff --git a/TO_MERGE/agm/Interaction/functions/fn_GetActions.sqf b/TO_MERGE/agm/Interaction/functions/fn_GetActions.sqf new file mode 100644 index 0000000000..6e7b067150 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_GetActions.sqf @@ -0,0 +1,154 @@ +/* + Name: AGM_Interaction_fnc_GetActions + + Author: + commy2 + Garth de Wet (LH) + + Description: + + Parameters: + 0: OBJECT - target + 1: ARRAY - Parents of the target object + 2: ARRAY - Actions + 3: ARRAY - Patches + 4: CONFIG - Parent config (ConfigFile >> "CfgVehicles"/MissionConfigFile >> "CfgVehicles") + 5: BOOL - Is mission config file? + 6: STRING - Classname ("AGM_Actions"/"AGM_SelfActions") + 7: STRING - Sub-class + + Returns: + Nothing + + Example: + [player, [configfile >> "CfgVehicles" >> typeOf player, true] call BIS_fnc_returnParents, [], [],configfile >> "CfgVehicles", false, "AGM_Actions"] call AGM_Interaction_fnc_GetActions; + + [player, [configfile >> "CfgVehicles" >> typeOf player, true] call BIS_fnc_returnParents, [], [],configfile >> "CfgVehicles", false, "AGM_SelfActions"] call AGM_Interaction_fnc_GetActions; +*/ +#define DEFAULT_ICON "\AGM_Interaction\UI\dot_ca.paa" +private ["_target", "_parents", "_actions", "_patches", "_baseConfig", "_actionType", "_i","_index", "_missionConfig", "_stdConfig"]; +_target = _this select 0; +_parents = _this select 1; +_actions = _this select 2; +_patches = _this select 3; +_baseConfig = _this select 4; +_missionConfig = _this select 5; +_actionType = _this select 6; +_subClass = _this select 7; + +_stdConfig = (configFile >> "CfgVehicles" >> typeOf _target >> _actionType); +if (_subClass != "") then { + _stdConfig = _stdConfig >> _subClass; +}; + +_count = count _parents; +for "_i" from 0 to (_count - 1) do { + _config = _baseConfig >> _parents select _i >> _actionType; + if (_subClass != "") then { + _config = _config >> _subClass; + }; + + _count = count _config; + if (_count > 0) then { + for "_index" from 0 to (_count - 1) do { + private ["_action", "_displayName", "_distance","_condition","_statement","_showDisabled", "_priority", "_tooltip", "_hotkey", + "_subMenu", "_conditionShow", "_exceptions", "_icon", "_actionToCache", "_cacheActions", "_cache", "_indexCache", "_configName"]; + _action = if (_missionConfig) then {_config select _index} else {_stdConfig >> configName (_config select _index)}; + _cache = missionNamespace getVariable ["AGM_Interaction_MenuCache", [[], [], []]]; + + if (count _action > 0) then { + _configName = configName _action; + + _cacheConfigs = _cache select 0; + _cacheActions = _cache select 1; + _cacheIndices = _cache select 2; + + _indexCache = _cacheConfigs find _action; + if (_indexCache == -1) then { + _displayName = getText (_action >> "displayName"); + _distance = getNumber (_action >> "distance"); + _priority = getNumber (_action >> "priority"); + _subMenu = getArray (_action >> "subMenu"); + _tooltip = getText (_action >> "tooltip"); + _hotkey = getText (_action >> "hotkey"); + _enableInside = getNumber (_action >> "enableInside"); + + // Condition + _condition = getText (_action >> "condition"); + if (_condition == "") then {_condition = "true"}; + + _condition = _condition + format [" && {%1 call AGM_Core_canInteract} && {[AGM_player, AGM_Interaction_Target] call AGM_Core_fnc_canInteractWith}", getArray (_action >> "exceptions")]; + if (_enableInside != 1) then {_condition = _condition + " && {_player == _vehicle}"}; + + _condition = compile _condition; + + // Condition to show the action + _conditionShow = getText (_action >> "conditionShow"); + _conditionShow = if (_conditionShow == "") then {{true}} else {compile _conditionShow}; + + _showDisabled = getNumber (_action >> "showDisabled") == 1; + if (isText (_action >> "conditionShow")) then { + _showDisabled = [_object, _player] call _conditionShow; + }; + + // Exceptions to the general conditions that have to be true + _exceptions = getArray (_action >> "exceptions"); + + // statement + _statement = getText (_action >> "statement"); + _statement = compile _statement; + + if (profileNamespace getVariable ["AGM_Interaction_FlowMenu", false]) then { + _statement = if (getText (_action >> "statement") == "" && {count _subMenu > 1}) then { + compile format ["call AGM_Interaction_fnc_hideMenu;if(%2 == 1)then{['%1'] call AGM_Interaction_fnc_openSubMenuSelf;}else{['%1'] call AGM_Interaction_fnc_openSubMenu;};", _subMenu select 0, _subMenu select 1]; + } else { + compile ("call AGM_Interaction_fnc_hideMenu;" + getText (_action >> "statement")); + }; + }; + + // icon + _icon = getText (_action >> "Icon"); + if (_icon == "") then { + _icon = DEFAULT_ICON; + }; + + _actionToCache = [_displayName, _statement, _condition, _priority, _subMenu, _icon, _tooltip, _conditionShow, _exceptions, _distance, _hotkey]; + + if (!(_configName in _patches) && {_showDisabled || {[_object, _player] call _condition}} && {_distance == 0 || {[_object, _distance] call AGM_Interaction_fnc_isInRange}}) then { + _actions pushBack _actionToCache; + _patches pushBack _configName; + }; + + _indexCache = _cacheActions find _actionToCache; + if (_indexCache == -1) then { + _indexCache = count _cacheActions; + _cacheActions pushBack _actionToCache; + }; + + _cacheConfigs pushBack _action; + _cacheIndices pushBack _indexCache; + + _cache = [_cacheConfigs, _cacheActions, _cacheIndices]; + ["InteractionMenu", _action, {format ["%1 loaded into cache", _this]}] call AGM_Debug_fnc_log; + } else { + ["InteractionMenu", _action, {format ["%1 loaded from cache", _this]}] call AGM_Debug_fnc_log; + + _cachedAction = _cacheActions select (_cacheIndices select _indexCache); + + _showDisabled = getNumber (_action >> "showDisabled") == 1; + if (isText (_action >> "conditionShow")) then { + _showDisabled = [_object, _player] call (_cachedAction select 7); + }; + + if (!(_configName in _patches) && {_showDisabled || {[_object, _player] call (_cachedAction select 2)}} && {[_object, (_cachedAction select 9)] call AGM_Interaction_fnc_isInRange || {(_cachedAction select 9) == 0}}) then { + _actions pushBack _cachedAction; + _patches pushBack _configName; + }; + }; + }; + + AGM_Interaction_MenuCache = _cache; + }; + }; +}; +[_actions, _patches] diff --git a/TO_MERGE/agm/Interaction/functions/fn_MoveDown.sqf b/TO_MERGE/agm/Interaction/functions/fn_MoveDown.sqf new file mode 100644 index 0000000000..7a5662ed9b --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_MoveDown.sqf @@ -0,0 +1,66 @@ +/* + Name: AGM_Interaction_fnc_MoveDown + + Author: Garth de Wet (LH) + + Description: + Depending on the passed value, either scrolls down through the list or up. + + Parameters: + NUMBER - Amount to increase current interaction target + + Returns: + Nothing + + Example: + 1 call AGM_Interaction_fnc_MoveDown; + -1 call AGM_Interaction_fnc_MoveDown; +*/ +#define CLAMP(x,low,high) (if(x > high)then{high}else{if(x < low)then{low}else{x}}) +if (isNil "AGM_Interaction_MainButton") exitWith{}; +if (isNil "AGM_Interaction_Buttons") exitWith{}; +_count = (count AGM_Interaction_Buttons)- 1; +AGM_Interaction_SelectedButton = CLAMP(AGM_Interaction_SelectedButton + _this, 0, _count); + +_target = AGM_Interaction_Target; +_player = AGM_player; +_vehicle = vehicle _player; + +disableSerialization; +_dlgInteractionDialog = uiNamespace getVariable "AGM_Flow_Display"; +_top = AGM_Interaction_SelectedButton - 2; +_i = 0; +while {_i <= 4} do { + _index =_i + _top; + _ctrl = _dlgInteractionDialog displayCtrl (1200 + _i); + if (_index >= 0 && {_index <= _count}) then { + _action = AGM_Interaction_Buttons select _index; + _ctrl ctrlShow true; + _ctrl ctrlSetText (_action select 5); + _color = [1,1,1,1]; + if !([_target, _player] call (_action select 2)) then { + _color = [0.3,0.3,0.3,0.8]; + }; + if (_i == 0 || _i == 4) then { + _color set [3, 0.5]; + }; + if (_i == 1 || _i == 3) then { + _color set [3, 0.75]; + }; + _ctrl ctrlSetTextColor _color; + }else{ + _ctrl ctrlShow false; + }; + _i = _i + 1; +}; + +_ctrl = _dlgInteractionDialog displayCtrl 1000; +_ctrl ctrlSetText ((AGM_Interaction_Buttons select AGM_Interaction_SelectedButton) select 0); +_ctrl = _dlgInteractionDialog displayCtrl 1100; +_current = (AGM_Interaction_Buttons select AGM_Interaction_SelectedButton); +_infoText = ""; +if !([_target, _player] call (_current select 2)) then { + _infoText = "Unavailable"; +}; +_ctrl ctrlSetText _infoText; +_ctrl ctrlShow (_infoText != ""); diff --git a/TO_MERGE/agm/Interaction/functions/fn_addInteraction.sqf b/TO_MERGE/agm/Interaction/functions/fn_addInteraction.sqf new file mode 100644 index 0000000000..72c3ccb182 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_addInteraction.sqf @@ -0,0 +1,55 @@ +/* + * Author: commy2 + * + * Add an AGM action to an object. Note: This function is global. + * + * Argument: + * 0: Object the action should be assigned to (Object) + * 1: Name of the action shown in the menu (String) + * 2: Distance the player can be away from the object (Number) + * 3: Condition (Code or String) + * 4: Statement (Code or String) + * 5: Show the action even if the conditon is not met (Bool or Number) + * 6: Priority (Number, optional default: 0) + * + * Return value: + * ID of the action (used to remove it later). + */ + +private ["_object", "_displayName", "_distance", "_condition", "_statement", "_showDisabled", "_priority", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_object = _this select 0; +_displayName = _this select 1; +_distance = _this select 2; +_condition = _this select 3; +_statement = _this select 4; +_showDisabled = _this select 5; +_priority = _this select 6; + +if (typeName _condition == "STRING") then { + _condition = compile _condition; +}; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +if (typeName _showDisabled == "SCALAR") then { + _showDisabled = _showDisabled > 0; +}; + +if (isNil "_priority") then { + _priority = 0; +}; + +_actionsVar = _object getVariable ["AGM_Interactions", [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_actionIDs pushBack _id; +_actions pushBack [_displayName, _distance, _condition, _statement, _showDisabled, _priority]; + +_object setVariable ["AGM_Interactions", [_id, _actionIDs, _actions], true]; +_id diff --git a/TO_MERGE/agm/Interaction/functions/fn_addInteractionSelf.sqf b/TO_MERGE/agm/Interaction/functions/fn_addInteractionSelf.sqf new file mode 100644 index 0000000000..bccaf40528 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_addInteractionSelf.sqf @@ -0,0 +1,55 @@ +/* + * Author: commy2 + * + * Add an AGM self action to the player. Execute this on the local machine of the player. + * + * Argument: + * 0: Name of the action shown in the menu (String) + * 1: Condition (Code or String) + * 2: Statement (Code or String) + * 3: Show the action even if the conditon is not met (Bool or Number) + * 4: Priority (Number, optional default: 0) + * + * Return value: + * ID of the action (used to remove it later). + */ + + + +private ["_displayName", "_condition", "_statement", "_showDisabled", "_priority", "_actionsVar", "_id", "_actionIDs", "_actions"]; + + +_displayName = _this select 0; + +_condition = _this select 1; +_statement = _this select 2; +_showDisabled = _this select 3; +_priority = _this select 4; + +if (typeName _condition == "STRING") then { + _condition = compile _condition; +}; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +if (typeName _showDisabled == "SCALAR") then { + _showDisabled = _showDisabled > 0; +}; + +if (isNil "_priority") then { + _priority = 0; +}; + +_actionsVar = AGM_player getVariable ["AGM_InteractionsSelf", [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_actionIDs pushBack _id; +_actions pushBack [_displayName, _condition, _statement, _showDisabled, _priority]; + +AGM_player setVariable ["AGM_InteractionsSelf", [_id, _actionIDs, _actions], false]; +_id diff --git a/TO_MERGE/agm/Interaction/functions/fn_addToTooltip.sqf b/TO_MERGE/agm/Interaction/functions/fn_addToTooltip.sqf new file mode 100644 index 0000000000..b54b7c5716 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_addToTooltip.sqf @@ -0,0 +1,3 @@ +// by commy2 + +AGM_Interaction_CurrentTooltip pushBack (_this select 0); diff --git a/TO_MERGE/agm/Interaction/functions/fn_applyButtons.sqf b/TO_MERGE/agm/Interaction/functions/fn_applyButtons.sqf new file mode 100644 index 0000000000..8bc732f946 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_applyButtons.sqf @@ -0,0 +1,51 @@ +// by commy2 + +private ["_object", "_actions", "_dlgInteractionDialog", "_ctrlInteractionDialog", "_index", "_ctrlInteractionDialogIcon"]; + +_object = AGM_Interaction_Target; +_actions = AGM_Interaction_Buttons; + + +disableSerialization; +_dlgInteractionDialog = uiNamespace getVariable "AGM_Interaction_Dialog"; + +/* +for "_a" from 0 to (_count - 1) do { + _action = AGM_Interaction_Buttons select _a; + + _ctrlInteractionDialog = _dlgInteractionDialog displayCtrl (10 + _a); + _ctrlInteractionDialog ctrlShow true; + _ctrlInteractionDialog ctrlSetText (_action select 0); + _ctrlInteractionDialog ctrlEnable (call (_action select 2)); +}; +*/ + +_ctrlInteractionDialog = _dlgInteractionDialog displayCtrl 3; + +AGM_Interaction_MainButton = "(findDisplay 1713999) closeDisplay 1;"; + +if (_object isKindOf "Man") then { + _ctrlInteractionDialog ctrlSetText (if (alive _object) then {name _object} else {_object getVariable ["AGM_Name", "Unknown"]}); +} else { + _ctrlInteractionDialog ctrlSetText (getText (configFile >> "CfgVehicles" >> typeOf _object >> "displayName")); +}; + +for "_index" from 0 to 9 do { + _ctrlInteractionDialog = _dlgInteractionDialog displayCtrl (10 + _index); + _ctrlInteractionDialog ctrlShow true; + + _ctrlInteractionDialogIcon = _dlgInteractionDialog displayCtrl (20 + _index); + + if (_index < _count) then { + _action = AGM_Interaction_Buttons select _index; + _ctrlInteractionDialog ctrlSetText (_action select 0); + _ctrlInteractionDialog ctrlEnable (call (_action select 2)); + + _ctrlInteractionDialogIcon ctrlSetText (_action select 5); + } else { + _ctrlInteractionDialog ctrlSetText ""; + _ctrlInteractionDialog ctrlEnable false; + + _ctrlInteractionDialogIcon ctrlSetText ""; + }; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_canInteractWith.sqf b/TO_MERGE/agm/Interaction/functions/fn_canInteractWith.sqf new file mode 100644 index 0000000000..8766ff096e --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_canInteractWith.sqf @@ -0,0 +1,12 @@ +// by commy2 + +private ["_unit", "_isCivilian"]; + +_unit = _this select 0; +_isCivilian = _this select 1; + +if (isNil "_isCivilian") then {_isCivilian = true}; + +alive _unit +&& [side _unit != side AGM_player, side group _unit == civilian] select _isCivilian +//&& {count (weapons _unit) == 0} diff --git a/TO_MERGE/agm/Interaction/functions/fn_canLockDoor.sqf b/TO_MERGE/agm/Interaction/functions/fn_canLockDoor.sqf new file mode 100644 index 0000000000..8591bc3c78 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_canLockDoor.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_mode", "_info", "_house", "_door", "_id"]; + +_mode = _this select 0; //lock: true, unlock: false + +_info = [2] call AGM_Interaction_fnc_getDoor; + +_house = _info select 0; +_door = _info select 1; +_id = _info select 2; + +!isNull _house +&& {_door == "door"} +&& {!_mode || {_house animationPhase format ["door_%1_rot", _id] <= 0}} +&& {(_house getVariable [format ["BIS_Disabled_Door_%1", _id], 0] != 1) isEqualTo _mode} diff --git a/TO_MERGE/agm/Interaction/functions/fn_canTapShoulder.sqf b/TO_MERGE/agm/Interaction/functions/fn_canTapShoulder.sqf new file mode 100644 index 0000000000..0966b53c37 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_canTapShoulder.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_unit", "_target"]; + +_unit = _this select 0; +_target = _this select 1; + +_target isKindOf "CAManBase" && +{alive _target} && +{_unit distance _target < 4} && +{!(_target getVariable ["AGM_isUnconscious", false])} diff --git a/TO_MERGE/agm/Interaction/functions/fn_getActions2.sqf b/TO_MERGE/agm/Interaction/functions/fn_getActions2.sqf new file mode 100644 index 0000000000..2ede8ea968 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_getActions2.sqf @@ -0,0 +1,120 @@ +// commy2 + +private ["_object", "_config", "_type", "_actions", "_configs"]; + +_object = _this select 0; +_config = _this select 1; // configFile, missionConfigFile +_type = _this select 2; // "AGM_CfgInteractions", "AGM_CfgInteractionsSelf" +_actions = _this select 3; // []; + +_configs = "_object isKindOf configName _x" configClasses (_config >> _type); + +// cache +private ["_cache", "_cacheConfigs", "_cacheActions", "_cacheIndices"]; + +_cache = uiNamespace getVariable ["AGM_Interaction_MenuCache", [[], [], []]]; +_cacheConfigs = _cache select 0; +_cacheActions = _cache select 1; +_cacheIndices = _cache select 2; + +// get interactions +{ + private "_configActions"; + + _configActions = "true" configClasses (_config >> _type >> configName _x); + { + private ["_action", "_configName", "_indexCache"]; + + _action = _x; + _configName = configName _action; + + _indexCache = _cacheConfigs find _action; + if (_indexCache == -1) then { + private ["_displayName", "_distance", "_priority", "_subMenu", "_tooltip", "_hotkey", "_enableInside", "_condition", "_conditionShow", "_showDisabled", "_exceptions", "_statement", "_icon"]; + + _displayName = getText (_action >> "displayName"); + _distance = getNumber (_action >> "distance"); + _priority = getNumber (_action >> "priority"); + _subMenu = getArray (_action >> "subMenu"); + _tooltip = getText (_action >> "tooltip"); + _hotkey = getText (_action >> "hotkey"); + _enableInside = getNumber (_action >> "enableInside"); + + // Condition + _condition = getText (_action >> "condition"); + if (_condition == "") then {_condition = "true"}; + + _condition = _condition + format [" && {%1 call AGM_Core_canInteract} && {[AGM_player, AGM_Interaction_Target] call AGM_Core_fnc_canInteractWith}", getArray (_action >> "exceptions")]; + if (_enableInside != 1) then {_condition = _condition + " && {_player == _vehicle}"}; + + _condition = compile _condition; + + // Condition to show the action + _conditionShow = getText (_action >> "conditionShow"); + _conditionShow = if (_conditionShow == "") then {{true}} else {compile _conditionShow}; + + _showDisabled = getNumber (_action >> "showDisabled") == 1; + if (isText (_action >> "conditionShow")) then { + _showDisabled = [_object, _player] call _conditionShow; + }; + + // Exceptions to the general conditions that have to be true + _exceptions = getArray (_action >> "exceptions"); + + // statement + _statement = getText (_action >> "statement"); + _statement = compile _statement; + + if (profileNamespace getVariable ["AGM_Interaction_FlowMenu", false]) then { + _statement = if (getText (_action >> "statement") == "" && {count _subMenu > 1}) then { + compile format ["call AGM_Interaction_fnc_hideMenu;if(%2 == 1)then{['%1'] call AGM_Interaction_fnc_openSubMenuSelf;}else{['%1'] call AGM_Interaction_fnc_openSubMenu;};", _subMenu select 0, _subMenu select 1]; + } else { + compile ("call AGM_Interaction_fnc_hideMenu;" + getText (_action >> "statement")); + }; + }; + + // icon + _icon = getText (_action >> "Icon"); + if (_icon == "") then { + _icon = DEFAULT_ICON; + }; + + private "_actionToCache"; + _actionToCache = [_displayName, _statement, _condition, _priority, _subMenu, _icon, _tooltip, _conditionShow, _exceptions, _distance, _hotkey]; + + if ((_showDisabled || {[_object, _player] call _condition}) && {_distance == 0 || {[_object, _distance] call AGM_Interaction_fnc_isInRange}}) then { + _actions pushBack _actionToCache; + }; + + _indexCache = _cacheActions find _actionToCache; + if (_indexCache == -1) then { + _indexCache = count _cacheActions; + _cacheActions pushBack _actionToCache; + }; + + _cacheConfigs pushBack _action; + _cacheIndices pushBack _indexCache; + + _cache = [_cacheConfigs, _cacheActions, _cacheIndices]; + ["InteractionMenu", _action, {format ["%1 loaded into cache", _this]}] call AGM_Debug_fnc_log; + } else { + ["InteractionMenu", _action, {format ["%1 loaded from cache", _this]}] call AGM_Debug_fnc_log; + + private ["_cachedAction", "_showDisabled"]; + _cachedAction = _cacheActions select (_cacheIndices select _indexCache); + + _showDisabled = getNumber (_action >> "showDisabled") == 1; + if (isText (_action >> "conditionShow")) then { + _showDisabled = [_object, _player] call (_cachedAction select 7); + }; + + if ((_showDisabled || {[_object, _player] call (_cachedAction select 2)}) && {[_object, (_cachedAction select 9)] call AGM_Interaction_fnc_isInRange || {(_cachedAction select 9) == 0}}) then { + _actions pushBack _cachedAction; + }; + }; + } forEach _configActions; //Actions of this CfgVehicles class +} forEach _configs; //CfgVehicles class + +uiNamespace setVariable ["AGM_Interaction_MenuCache", _cache]; + +_actions diff --git a/TO_MERGE/agm/Interaction/functions/fn_getCaptivityStatus.sqf b/TO_MERGE/agm/Interaction/functions/fn_getCaptivityStatus.sqf new file mode 100644 index 0000000000..43538e882b --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_getCaptivityStatus.sqf @@ -0,0 +1,3 @@ +// by commy2 + +_this call AGM_Core_fnc_getCaptivityStatus; diff --git a/TO_MERGE/agm/Interaction/functions/fn_getDoor.sqf b/TO_MERGE/agm/Interaction/functions/fn_getDoor.sqf new file mode 100644 index 0000000000..19e5277873 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_getDoor.sqf @@ -0,0 +1,31 @@ +// by commy2 + +private ["_distance", "_position0", "_position1", "_intersections", "_count", "_house", "_door", "_index", "_id"]; + +_distance = _this select 0; + +_position0 = positionCameraToWorld [0, 0, 0]; +_position1 = positionCameraToWorld [0, 0, _distance]; + +_intersections = lineIntersectsWith [ATLToASL _position0, ATLToASL _position1, objNull, objNull, true]; + +_count = count _intersections; +if (_count == 0) exitWith {[objNull, ""]}; + +_house = _intersections select (_count - 1); + +// shithouse is bugged +if (typeOf _house == "") exitWith {[objNull, ""]}; + +_intersections = [_house, "GEOM"] intersect [_position0, _position1]; + +_door = _intersections select 0 select 0; +if (isNil "_door") exitWith {[_house, ""]}; +[_house, _door] + +/* +_house = cursorTarget; +_actions = "true" configClasses (configFile >> "CfgVehicles" >> typeOf _house >> "UserActions"); +_actions = [_actions, {getText (_x >> "statement")}] call AGM_Core_fnc_map; +_actions +*/ diff --git a/TO_MERGE/agm/Interaction/functions/fn_getDoorAnimations.sqf b/TO_MERGE/agm/Interaction/functions/fn_getDoorAnimations.sqf new file mode 100644 index 0000000000..67e6788754 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_getDoorAnimations.sqf @@ -0,0 +1,106 @@ +// by commy2 + +private ["_house", "_door", "_animations", "_lockedVariable"]; + +_house = _this select 0; +_door = _this select 1; + +_index = [ + "door_1", + "door_2", + "door_3", + "door_4", + "door_5", + "door_6", + "door_7", + "door_8", + "door_9", + "door_10", + "door_11", + "door_12", + "door_13", + "Door_14", + "door_15", + "door_16", + "door_17", + "door_18", + "door_19", + "door_20", + "door_21", + "door_22", + + "hatch_1", + "hatch_2", + "hatch_3", + "hatch_4", + "hatch_5", + "hatch_6" +] find toLower _door; + +if (_index == -1) exitWith {[[],""]}; + +_animations = [ + ["Door_1_rot", "Door_Handle_1_rot_1", "Door_Handle_1_rot_2"], + ["Door_2_rot", "Door_Handle_2_rot_1", "Door_Handle_2_rot_2"], + ["Door_3_rot", "Door_Handle_3_rot_1", "Door_Handle_3_rot_2"], + ["Door_4_rot", "Door_Handle_4_rot_1", "Door_Handle_4_rot_2"], + ["Door_5_rot", "Door_Handle_5_rot_1", "Door_Handle_5_rot_2"], + ["Door_6_rot", "Door_Handle_6_rot_1", "Door_Handle_6_rot_2"], + ["Door_7_rot", "Door_Handle_7_rot_1", "Door_Handle_7_rot_2"], + ["Door_8_rot", "Door_Handle_8_rot_1", "Door_Handle_8_rot_2"], + ["Door_9_rot", "Door_Handle_9_rot_1", "Door_Handle_9_rot_2"], + ["Door_10_rot", "Door_Handle_10_rot_1", "Door_Handle_10_rot_2"], + ["Door_11_rot", "Door_Handle_11_rot_1", "Door_Handle_11_rot_2"], + ["Door_12_rot", "Door_Handle_12_rot_1", "Door_Handle_12_rot_2"], + ["Door_13_rot", "Door_Handle_13_rot_1", "Door_Handle_13_rot_2"], + ["Door_14_rot", "Door_Handle_14_rot_1", "Door_Handle_14_rot_2"], + ["Door_15_rot", "Door_Handle_15_rot_1", "Door_Handle_15_rot_2"], + ["Door_16_rot", "Door_Handle_16_rot_1", "Door_Handle_16_rot_2"], + ["Door_17_rot", "Door_Handle_17_rot_1", "Door_Handle_17_rot_2"], + ["Door_18_rot", "Door_Handle_18_rot_1", "Door_Handle_18_rot_2"], + ["Door_19_rot", "Door_Handle_19_rot_1", "Door_Handle_19_rot_2"], + ["Door_20_rot", "Door_Handle_20_rot_1", "Door_Handle_20_rot_2"], + ["Door_21_rot", "Door_Handle_21_rot_1", "Door_Handle_21_rot_2"], + ["Door_22_rot", "Door_Handle_22_rot_1", "Door_Handle_22_rot_2"], + + ["Hatch_1_rot"], + ["Hatch_2_rot"], + ["Hatch_3_rot"], + ["Hatch_4_rot"], + ["Hatch_5_rot"], + ["Hatch_6_rot"] +] select _index; + +_lockedVariable = [ + ["BIS_Disabled_Door_1", "Door_Handle_1_rot_1", "Door_Locked_1_rot"], + ["BIS_Disabled_Door_2", "Door_Handle_2_rot_1", "Door_Locked_2_rot"], + ["BIS_Disabled_Door_3", "Door_Handle_3_rot_1", "Door_Locked_3_rot"], + ["BIS_Disabled_Door_4", "Door_Handle_4_rot_1", "Door_Locked_4_rot"], + ["BIS_Disabled_Door_5", "Door_Handle_5_rot_1", "Door_Locked_5_rot"], + ["BIS_Disabled_Door_6", "Door_Handle_6_rot_1", "Door_Locked_6_rot"], + ["BIS_Disabled_Door_7", "Door_Handle_7_rot_1", "Door_Locked_7_rot"], + ["BIS_Disabled_Door_8", "Door_Handle_8_rot_1", "Door_Locked_8_rot"], + ["BIS_Disabled_Door_9", "Door_Handle_9_rot_1", "Door_Locked_9_rot"], + ["BIS_Disabled_Door_10", "Door_Handle_10_rot_1", "Door_Locked_10_rot"], + ["BIS_Disabled_Door_11", "Door_Handle_11_rot_1", "Door_Locked_11_rot"], + ["BIS_Disabled_Door_12", "Door_Handle_12_rot_1", "Door_Locked_12_rot"], + ["BIS_Disabled_Door_13", "Door_Handle_13_rot_1", "Door_Locked_13_rot"], + ["BIS_Disabled_Door_14", "Door_Handle_14_rot_1", "Door_Locked_14_rot"], + ["BIS_Disabled_Door_15", "Door_Handle_15_rot_1", "Door_Locked_15_rot"], + ["BIS_Disabled_Door_16", "Door_Handle_16_rot_1", "Door_Locked_16_rot"], + ["BIS_Disabled_Door_17", "Door_Handle_17_rot_1", "Door_Locked_17_rot"], + ["BIS_Disabled_Door_18", "Door_Handle_18_rot_1", "Door_Locked_18_rot"], + ["BIS_Disabled_Door_19", "Door_Handle_19_rot_1", "Door_Locked_19_rot"], + ["BIS_Disabled_Door_20", "Door_Handle_20_rot_1", "Door_Locked_20_rot"], + ["BIS_Disabled_Door_21", "Door_Handle_21_rot_1", "Door_Locked_21_rot"], + ["BIS_Disabled_Door_22", "Door_Handle_22_rot_1", "Door_Locked_22_rot"], + + ["", ""], + ["", ""], + ["", ""], + ["", ""], + ["", ""], + ["", ""] +] select _index; + +[_animations, _lockedVariable] diff --git a/TO_MERGE/agm/Interaction/functions/fn_getDown.sqf b/TO_MERGE/agm/Interaction/functions/fn_getDown.sqf new file mode 100644 index 0000000000..73bae1c883 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_getDown.sqf @@ -0,0 +1,33 @@ +/* + * Author: KoffeinFlummi + * + * Forces a civilian to the ground. (chance of failure). + * + * Arguments: + * 0: Unit to be sent away (Object) + * + * Return value: + * none + */ + +#define RADIUS 10 + +private ["_unit", "_chance", "_x"]; + +_unit = _this select 0; + +AGM_player playActionNow "GestureGo"; // put something else here. + +if (count (weapons AGM_player) > 0) then { + _chance = 0.8; +} else { + _chance = 0.5; +}; + +{ + if (count (weapons _unit) == 0 and random 1 < _chance) then { + [-2, { + _this setUnitPos "DOWN"; + }, _x] call CBA_fnc_globalExecute; + }; +} foreach (_unit nearEntities ["Civilian", RADIUS]); diff --git a/TO_MERGE/agm/Interaction/functions/fn_getSelectedButton.sqf b/TO_MERGE/agm/Interaction/functions/fn_getSelectedButton.sqf new file mode 100644 index 0000000000..3813811703 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_getSelectedButton.sqf @@ -0,0 +1,23 @@ +// by commy2 + +#define MIN_DISTANCE 0.0065 + +private ["_position", "_distance", "_angle"]; + +_position = uiNamespace getVariable ['AGM_Interaction_CursorPosition', [0.5, 0.5, 0]]; + +_position = [((_position select 1) - 0.5) / safezoneH, ((_position select 2) - 0.5) / safezoneW, 0]; + +_distance = [0, 0, 0] vectorDistanceSqr _position; + +// is in center +if (_distance < MIN_DISTANCE) exitWith {-1}; + +_angle = (_position select 0) atan2 (_position select 1); + +// rotate circle +_angle = 180 - _angle + 360 / 10 / 2; +if (_angle < 0) then {_angle = _angle + 360}; + +_angle = floor (_angle / 360 * 10); +if (_angle == 10) then {0} else {_angle} diff --git a/TO_MERGE/agm/Interaction/functions/fn_hideMenu.sqf b/TO_MERGE/agm/Interaction/functions/fn_hideMenu.sqf new file mode 100644 index 0000000000..24e867b5b5 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_hideMenu.sqf @@ -0,0 +1,22 @@ +/* + Name: AGM_Interaction_fnc_hideMenu + + Author: Garth de Wet (LH) + + Description: + Closes the Interaction menu + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Interaction_fnc_hideMenu; +*/ +closeDialog 0; +(findDisplay 1713999) closeDisplay 1; +(uiNameSpace getVariable "AGM_Flow_Display") closeDisplay 0; +AGM_Interaction_MainButton = nil; +call AGM_Interaction_fnc_hideMouseHint; \ No newline at end of file diff --git a/TO_MERGE/agm/Interaction/functions/fn_hideMouseHint.sqf b/TO_MERGE/agm/Interaction/functions/fn_hideMouseHint.sqf new file mode 100644 index 0000000000..f8f9b75b35 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_hideMouseHint.sqf @@ -0,0 +1,22 @@ +/* + Name: AGM_Interaction_fnc_hideMouseHint + + Author(s): + Garth de Wet (LH) + + Description: + Hides the interaction helper text with the mouse buttons at the bottom middle of the screen + + Parameters: + Nothing + + Returns: + Nothing + + Example: + call AGM_Interaction_fnc_hideMouseHint; +*/ +if (isNull (uiNamespace getVariable ["AGM_Helper_Display", objNull])) exitWith{}; + +("AGM_InteractionHelper" call BIS_fnc_rscLayer) cutText ["", "PLAIN"]; +showHUD true; \ No newline at end of file diff --git a/TO_MERGE/agm/Interaction/functions/fn_initialiseInteraction.sqf b/TO_MERGE/agm/Interaction/functions/fn_initialiseInteraction.sqf new file mode 100644 index 0000000000..556e3d0bd6 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_initialiseInteraction.sqf @@ -0,0 +1,167 @@ +/* + Name: AGM_Interaction_fnc_initialiseInteraction + + Author: + commy2 + Garth de Wet (LH) + + Description: + Initialises the interaction click handlers. + + Parameters: + 0 : CODE - code to call when right clicking/center button + 1 : BOOLEAN - Submenu + 2 : BOOLEAN - Flow Menu + 3 : BOOLEAN - Self interaction + 4 : OBJECT - Target + + Returns: + Nothing + + Example: + [{"Default" call AGM_Interaction_fnc_openMenu;}, true, (profileNamespace getVariable ["AGM_Interaction_FlowMenu", false]), AGM_Interaction_Target] call AGM_Interaction_fnc_initialiseInteraction; +*/ +private ["_subMenu", "_selfMenu", "_target"]; +AGM_Interaction_MainButton = _this select 0; +_subMenu = _this select 1; +_selfMenu = _this select 3; +_target = _this select 4; + +_player = AGM_player; +_vehicle = vehicle _player; +//_object = [AGM_Interaction_Target, _player] select (AGM_Interaction_MenuType % 2 == 1); + +if !([_target, 5] call AGM_Interaction_fnc_isInRange) exitWith {}; + +AGM_Interaction_Shortcuts = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1]; + +// Flow menu +if (_this select 2) then { + ("AGM_FlowMenu" call BIS_fnc_rscLayer) cutRsc ["AGM_FlowMenu", "PLAIN",0.5, false]; + AGM_Interaction_SelectedButton = 0; + (findDisplay 1713999) closeDisplay 1; + if (_player getVariable ["AGM_AcceptAction", -1] == -1) then { + [{if(isNil {AGM_Interaction_MainButton} || {!(profileNamespace getVariable ['AGM_Interaction_FlowMenu', false])})exitWith{false};(-(_this select 0) / 1.2) call AGM_Interaction_fnc_MoveDown;true}] call AGM_Core_fnc_addScrollWheelEventHandler; + + _player setVariable ["AGM_AcceptAction", [_player, "DefaultAction", {(!isNil {AGM_Interaction_MainButton}) && {(profileNamespace getVariable ['AGM_Interaction_FlowMenu', false])}}, {_action = AGM_Interaction_Buttons select AGM_Interaction_SelectedButton;_target = AGM_Interaction_Target;_player = AGM_player;_vehicle = vehicle _player;if ([_target, _player] call (_action select 2)) then {call AGM_Interaction_fnc_hideMenu;if(count _action == 12) then{(_action select 11) call (_action select 1);}else{[_target, _player] call (_action select 1);};};}] call AGM_core_fnc_addActionEventHandler]; + _player setVariable ["AGM_AcceptAction", [_player, "menuBack", {(!isNil {AGM_Interaction_MainButton}) && {(profileNamespace getVariable ['AGM_Interaction_FlowMenu', false])}}, {call AGM_Interaction_MainButton;}] call AGM_core_fnc_addActionEventHandler]; + }; + 0 call AGM_Interaction_fnc_moveDown; + [localize "STR_AGM_Interaction_MakeSelection", if (_subMenu)then{localize "STR_AGM_Interaction_Back"}else{""}, localize "STR_AGM_Interaction_ScrollHint"] call AGM_Interaction_fnc_showMouseHint; + ((uiNamespace getVariable "AGM_Flow_Display") displayCtrl (1210)) ctrlShow _subMenu; +}else{ // Rose + if (!isNull(uiNamespace getVariable "AGM_Flow_Display")) then { + (uiNameSpace getVariable "AGM_Flow_Display") closeDisplay 0; + call AGM_Interaction_fnc_hideMouseHint; + }; + if (!_subMenu || {isNull (findDisplay 1713999)}) then { + (findDisplay 1713999) closeDisplay 1; + + (findDisplay 46) createDisplay "AGM_Interaction_Dialog"; + // Add eventhandlers + (findDisplay 1713999) displayAddEventHandler ["KeyDown", "_this call AGM_Core_onKeyDown"]; + (findDisplay 1713999) displayAddEventHandler ["KeyUp", "_this call AGM_Core_onKeyUp"]; + + (findDisplay 1713999) displayAddEventHandler ["KeyDown", "_this call AGM_Interaction_fnc_menuKeyInput"]; + }; + disableSerialization; + _dlgInteractionDialog = uiNamespace getVariable "AGM_Interaction_Dialog"; + _ctrlInteractionDialog = _dlgInteractionDialog displayCtrl 3; + if (profileNamespace getVariable ["AGM_Interaction_AutoCenterCursor", true]) then {setMousePosition [0.5, 0.5]}; + if !(_subMenu) then { + _ctrlInteractionDialog ctrlSetText ([_target] call AGM_Core_fnc_getName); + } else { + _ctrlInteractionDialog ctrlSetText localize "STR_AGM_Interaction_Back"; + }; + + _buttons = AGM_Interaction_Buttons; + _count = count _buttons; + + for "_i" from 0 to 9 do { + _ctrlInteractionDialog = _dlgInteractionDialog displayCtrl (10 + _i); + _ctrlInteractionDialog ctrlShow true; + + _ctrlInteractionDialogIcon = _dlgInteractionDialog displayCtrl (20 + _i); + _ctrlInteractionDialogShortcut = _dlgInteractionDialog displayCtrl (30 + _i); + //_ctrlInteractionDialogBackground = _dlgInteractionDialog displayCtrl (40 + _i); + if (_i < _count) then { + _action = _buttons select _i; + _ctrlInteractionDialog ctrlSetText (_action select 0); + _ctrlInteractionDialog ctrlEnable ([_target, _player] call (_action select 2)); + _ctrlInteractionDialog ctrlSetTooltip (_action select 6); + + _ctrlInteractionDialogIcon ctrlSetText (_action select 5); + _ctrlInteractionDialogShortcut ctrlSetText (_action select 10); + //_ctrlInteractionDialogBackground ctrlShow true; + + AGM_Interaction_Shortcuts set [_i, [_action select 10] call AGM_Core_fnc_letterToCode]; + } else { + _ctrlInteractionDialog ctrlSetText ""; + _ctrlInteractionDialog ctrlEnable false; + _ctrlInteractionDialog ctrlSetTooltip ""; + + _ctrlInteractionDialogIcon ctrlSetText ""; + _ctrlInteractionDialogShortcut ctrlSetText ""; + //_ctrlInteractionDialogBackground ctrlShow false; + }; + }; + + // Update Buttons + terminate (missionNamespace getVariable ["AGM_Interaction_updateMenuHandle", scriptNull]); + + AGM_Interaction_updateMenuHandle = 0 spawn { + disableSerialization; + _dlgMenu = uiNamespace getVariable ["AGM_Interaction_Dialog", displayNull]; + _ctrlTooltip = _dlgMenu displayCtrl 40; + + _player = AGM_player; + _vehicle = vehicle _player; + _target = [AGM_Interaction_Target, _player] select (AGM_Interaction_MenuType % 2 == 1); + + waitUntil { + if !([_target, 5] call AGM_Interaction_fnc_isInRange) exitWith { + (findDisplay 1713999) closeDisplay 1 + }; + + AGM_Interaction_Tooltips = [[], [], [], [], [], [], [], [], [], []]; + { + _ctrlText = _dlgMenu displayCtrl (10 + _forEachIndex); + _ctrlIcon = _dlgMenu displayCtrl (20 + _forEachIndex); + + _condition = _x select 2; + _conditionShow = _x select 7; + _distance = _x select 9; + + AGM_Interaction_CurrentTooltip = []; + + _enable = (_distance == 0 || {[_target, _distance] call AGM_Interaction_fnc_isInRange}) && {[_target, _player] call _condition} && {[_target, _player] call _conditionShow}; + if (isNil "_enable") then {_enable = false}; + + AGM_Interaction_Tooltips set [_forEachIndex, AGM_Interaction_CurrentTooltip]; + + // apply conditional tooltips + /*if (_forEachIndex == call AGM_Interaction_fnc_getSelectedButton) then { + _tooltip = _x select 6; + + _showTooltip = _tooltip != ""; + + _tooltip = text _tooltip; + + { + _showTooltip = true; + _tooltip = composeText [_tooltip, lineBreak, _x]; + } forEach (AGM_Interaction_Tooltips select _forEachIndex); + + _ctrlTooltip ctrlSetStructuredText _tooltip; + _ctrlTooltip ctrlShow _showTooltip; + };*/ + + _ctrlText ctrlEnable _enable; + _ctrlIcon ctrlEnable _enable; + } forEach AGM_Interaction_Buttons; + + sleep 0.5; + isNull (findDisplay 1713999) + }; + }; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_isInRange.sqf b/TO_MERGE/agm/Interaction/functions/fn_isInRange.sqf new file mode 100644 index 0000000000..bb82f7af95 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_isInRange.sqf @@ -0,0 +1,49 @@ +/* + * Author: commy2 + * + * Check if the vehicle is in range of the player. + * + * Argument: + * 0: Vehicke (Object) + * 1: Distance in meters (Number) + * + * Return value: + * (Bool) + */ + +private ["_vehicle", "_distance", "_player"]; + +_vehicle = _this select 0; +_distance = _this select 1; + +_player = AGM_player; + +if (_vehicle isKindOf "Man") exitWith {_player distance _vehicle < _distance}; + +private ["_position0", "_position1"];//, "_direction"]; + +_position0 = getPosASL _player; +_position1 = getPosASL _vehicle; + +/* +_direction = _position1 vectorDiff _position0; +_direction = _direction vectorMultiply (_distance / (vectorMagnitude _direction)); + +_position0 = eyePos _player; +_position1 = _position0 vectorAdd _direction; + +_vehicle in lineIntersectsWith [_position0, _position1] || {_player distance _vehicle < _distance} +*/ + +_position0 = ATLToASL positionCameraToWorld [0, 0, 0]; +_position0 set [2, (_position0 select 2) - (getTerrainHeightASL _position0 min 0)]; + +_position1 = ATLToASL positionCameraToWorld [0, 0, _distance]; +_position1 set [2, (_position1 select 2) - (getTerrainHeightASL _position1 min 0)]; + +if (_vehicle in lineIntersectsWith [_position0, _position1] || {_player distance _vehicle < _distance}) then { + true +} else { + ["Not in Range"] call AGM_Interaction_fnc_addToTooltip; + false +} diff --git a/TO_MERGE/agm/Interaction/functions/fn_joinTeam.sqf b/TO_MERGE/agm/Interaction/functions/fn_joinTeam.sqf new file mode 100644 index 0000000000..c6db297c49 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_joinTeam.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_unit", "_team", "_message"]; + +_unit = _this select 0; +_team = _this select 1; + +_unit setVariable ["AGM_assignedFireTeam", _team, true]; +[_unit, format ["{_this assignTeam '%1'}", _team]] call AGM_Core_fnc_execRemoteFnc; + +if (_unit == AGM_player) then { + _message = if (_team == "MAIN") then { + localize "STR_AGM_Interaction_LeftTeam"; + } else { + _team = localize format ["STR_AGM_Interaction_Team%1", _team]; + format [localize "STR_AGM_Interaction_JoinedTeam", _team]; + }; + + [_message] call AGM_Core_fnc_displayTextStructured; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_lockDoor.sqf b/TO_MERGE/agm/Interaction/functions/fn_lockDoor.sqf new file mode 100644 index 0000000000..edc317bfac --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_lockDoor.sqf @@ -0,0 +1,27 @@ +// by commy2 + +private ["_mode", "_info", "_house", "_door", "_id", "_phase"]; + +_mode = _this select 0; //lock: true, unlock: false + +_info = [2] call AGM_Interaction_fnc_getDoor; + +_house = _info select 0; +_door = _info select 1; +_id = _info select 2; + +if (isNull _house) exitWith {}; + +/* +_phase = [1, 0] select _mode; + +_house animate [format ["%1_%2_rot", _door, _id], _phase]; +_house animate [format ["%1_Handle_%2_rot_1", _door, _id], _phase]; +_house animate [format ["%1_Handle_%2_rot_2", _door, _id], _phase]; +*/ + +_house setVariable [format ["BIS_Disabled_%1_%2", _door, _id], [0, 1] select _mode]; + +playSound "AGM_Sound_Click"; + +[localize (["STR_AGM_Interaction_UnlockedDoor", "STR_AGM_Interaction_LockedDoor"] select _mode)] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Interaction/functions/fn_menuKeyInput.sqf b/TO_MERGE/agm/Interaction/functions/fn_menuKeyInput.sqf new file mode 100644 index 0000000000..786add7670 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_menuKeyInput.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private "_key"; + +_key = _this select 1; + +if (_key in [28, 57, 156, 200, 208, 203, 205, 201, 209]) exitWith {true}; + +_index = AGM_Interaction_Shortcuts find _key; + +if (_index != -1 && {ctrlEnabled (findDisplay 1713999 displayCtrl (_index + 10))}) exitWith { + _index call AGM_Interaction_fnc_onClick; + true +}; + +false diff --git a/TO_MERGE/agm/Interaction/functions/fn_moduleInteraction.sqf b/TO_MERGE/agm/Interaction/functions/fn_moduleInteraction.sqf new file mode 100644 index 0000000000..60f15e1215 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_moduleInteraction.sqf @@ -0,0 +1,20 @@ +/* + * Author: bux578 + * + * Initializes the Interaction module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +_logic = _this select 0; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +[_logic, "AGM_Interaction_EnableTeamManagement", "EnableTeamManagement"] call AGM_Core_fnc_readBooleanParameterFromModule; + +diag_log text "[AGM]: Interaction Module Initialized."; diff --git a/TO_MERGE/agm/Interaction/functions/fn_onButtonDown.sqf b/TO_MERGE/agm/Interaction/functions/fn_onButtonDown.sqf new file mode 100644 index 0000000000..91a20d9fc7 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_onButtonDown.sqf @@ -0,0 +1,14 @@ +// by commy2 + +if (dialog) exitWith { + closeDialog 0; +}; + +if (isNull (findDisplay 1713999)) then { + if (AGM_player == vehicle AGM_player) then {"" call AGM_Interaction_fnc_openMenu} else {[AGM_player, vehicle AGM_player] call AGM_Interaction_fnc_openMenuSelectUI}; + setMousePosition [0.5, 0.5]; +} else { + (findDisplay 1713999) closeDisplay 1; +}; + +[_player, "interactionMenuOpened", [_player, AGM_Interaction_Target, 0]] call AGM_Core_fnc_callCustomEventHandlers; diff --git a/TO_MERGE/agm/Interaction/functions/fn_onButtonDownSelf.sqf b/TO_MERGE/agm/Interaction/functions/fn_onButtonDownSelf.sqf new file mode 100644 index 0000000000..90aa4b4aca --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_onButtonDownSelf.sqf @@ -0,0 +1,14 @@ +// by commy2 + +if (dialog) exitWith { + closeDialog 0; +}; + +if (isNull (findDisplay 1713999)) then { + "" call AGM_Interaction_fnc_openMenuSelf; + setMousePosition [0.5, 0.5]; +} else { + (findDisplay 1713999) closeDisplay 1; +}; + +[_player, "interactionMenuOpened", [_player, AGM_Interaction_Target, 1]] call AGM_Core_fnc_callCustomEventHandlers; diff --git a/TO_MERGE/agm/Interaction/functions/fn_onButtonUp.sqf b/TO_MERGE/agm/Interaction/functions/fn_onButtonUp.sqf new file mode 100644 index 0000000000..0466eee0dc --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_onButtonUp.sqf @@ -0,0 +1,44 @@ +// by commy2 + +private ["_player", "_vehicle", "_target", "_count", "_index", "_action", "_statement", "_condition", "_conditionShow", "_exceptions", "_distance"]; + +_player = AGM_player; +_vehicle = vehicle _player; +_target = [AGM_Interaction_Target, _player] select (AGM_Interaction_MenuType % 2 == 1); + +_count = count AGM_Interaction_Buttons; +_index = call AGM_Interaction_fnc_getSelectedButton; + +_action = if (_index != -1 && {_index < _count}) then { + AGM_Interaction_Buttons select _index +} else { + ["", {}, {false}, 0, [], "", "", {false}, [], 0] +}; + +(findDisplay 1713999) closeDisplay 1; +closeDialog 0; + + + + + + + + + + + + + + + + +_statement = _action select 1; +_condition = _action select 2; +_conditionShow = _action select 7; +_exceptions = _action select 8;// +_distance = _action select 9; + +if ((_distance == 0 || {[AGM_Interaction_Target, _distance] call AGM_Interaction_fnc_isInRange}) && {[_target, _player] call _condition} && {[_target, _player] call _conditionShow}) then { + [_target, _player] call _statement; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_onClick.sqf b/TO_MERGE/agm/Interaction/functions/fn_onClick.sqf new file mode 100644 index 0000000000..6fb9a353fc --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_onClick.sqf @@ -0,0 +1,44 @@ +// by commy2 + +private ["_player", "_vehicle", "_target", "_count", "_index", "_action", "_subMenu", "_statement", "_condition", "_conditionShow", "_exceptions", "_distance"]; + +_player = AGM_player; +_vehicle = vehicle _player; +_target = [AGM_Interaction_Target, _player] select (AGM_Interaction_MenuType % 2 == 1); + +_count = count AGM_Interaction_Buttons; +_index = _this; //call AGM_Interaction_fnc_getSelectedButton; + +_action = if (_index != -1 && {_index < _count}) then { + AGM_Interaction_Buttons select _index +} else { + ["", {}, {false}, 0, [], "", "", {false}, [], 0] +}; + +_subMenu = _action select 4; + +// back +if (_index == -1) exitWith { + call AGM_Interaction_MainButton; +}; + +if (count _subMenu < 2) then { + (findDisplay 1713999) closeDisplay 1; + closeDialog 0; + + _statement = _action select 1; + _condition = _action select 2; + _conditionShow = _action select 7; + _exceptions = _action select 8;// + _distance = _action select 9; + + if ((_distance == 0 || {[AGM_Interaction_Target, _distance] call AGM_Interaction_fnc_isInRange}) && {[_target, _player] call _condition} && {[_target, _player] call _conditionShow}) then { + [_target, _player] call _statement; + }; +} else { + if (_subMenu select 1 < 1) then { + [_subMenu select 0] call AGM_Interaction_fnc_openSubMenu; + } else { + [_subMenu select 0] call AGM_Interaction_fnc_openSubMenuSelf; + }; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_onSelectMenuDblClick.sqf b/TO_MERGE/agm/Interaction/functions/fn_onSelectMenuDblClick.sqf new file mode 100644 index 0000000000..db7f326bd2 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_onSelectMenuDblClick.sqf @@ -0,0 +1,3 @@ +// by CorruptedHeart, commy2 + +call compile (lbData [8866, lbCurSel 8866]) call AGM_Interaction_SelectAccept; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openDoor.sqf b/TO_MERGE/agm/Interaction/functions/fn_openDoor.sqf new file mode 100644 index 0000000000..98f21fe690 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openDoor.sqf @@ -0,0 +1,56 @@ +// by commy2 + +private ["_info", "_house", "_door", "_animations", "_lockedVariable"]; + +_info = [2] call AGM_Interaction_fnc_getDoor; + +_house = _info select 0; +_door = _info select 1; + +if (isNull _house) exitWith {}; + +_animations = [_house, _door] call AGM_Interaction_fnc_getDoorAnimations; + +_lockedVariable = _animations select 1; +_animations = _animations select 0; + +if (count _animations == 0) exitWith {}; + +if (_house animationPhase (_animations select 0) <= 0 && {_house getVariable [_lockedVariable select 0, 0] == 1}) exitWith { + _lockedVariable set [0, _house]; + _lockedVariable spawn compile preprocessFileLineNumbers "\A3\Structures_F\scripts\LockedDoor_open.sqf"; +}; + +AGM_Interaction_isOpeningDoor = true; +playSound "AGM_Sound_Click"; + +[_house, _animations] spawn { + _house = _this select 0; + _animations = _this select 1; + + _phase = _house animationPhase (_animations select 0); + _position = getPosASL AGM_player; + + _time = time + 0.2; + _usedMouseWheel = false; + waitUntil { + if (inputAction "PrevAction" > 0 || {inputAction "NextAction" > 0}) then { + _usedMouseWheel = true; + }; + + _phase = _phase + (inputAction "PrevAction" / 12) min 1; + _phase = _phase - (inputAction "NextAction" / 12) max 0; + + {_house animate [_x, _phase]} forEach _animations; + + !AGM_Interaction_isOpeningDoor || {getPosASL AGM_player distance _position > 1} + }; + + if (!_usedMouseWheel && {time < _time}) then { + _phase = [0, 1] select (_house animationPhase (_animations select 0) < 0.5); + + {_house animate [_x, _phase]} forEach _animations; + }; + + AGM_Interaction_isOpeningDoor = false; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openMenu.sqf b/TO_MERGE/agm/Interaction/functions/fn_openMenu.sqf new file mode 100644 index 0000000000..02fe1ba1ab --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openMenu.sqf @@ -0,0 +1,6 @@ +// by commy2 + +private "_target"; +_target = [cursorTarget, AGM_Interaction_Target] select (_this == "Default"); + +[0, _target, ""] call AGM_Interaction_fnc_showMenu; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openMenuSelectUI.sqf b/TO_MERGE/agm/Interaction/functions/fn_openMenuSelectUI.sqf new file mode 100644 index 0000000000..dbac9e2f75 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openMenuSelectUI.sqf @@ -0,0 +1,43 @@ +// by commy2 + +private ["_unit", "_vehicle", "_cargo"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +// allow interaction with all cargo slots and all ffv slots +_cargo = [_vehicle, ["cargo", "ffv"], true] call AGM_Core_fnc_getVehicleCrew; + +// you can only interact if you are in cargo or ffv yourself. exit otherwise +if !(_unit in _cargo) exitWith {}; + +AGM_InteractionMenu_Crew = _cargo; + +// prepare: add header and "OK" button to select menu +private "_actions"; +_actions = [localize "STR_AGM_Interaction_InteractionMenu", localize "STR_AGM_Interaction_Interact"] call AGM_Interaction_fnc_prepareSelectMenu; + +// prepare: add all cargo units as options to select menu +{ + if (_x != _unit) then { + _actions = [ + _actions, + [_x] call AGM_Core_fnc_getName, + "\AGM_Interaction\UI\dot_ca.paa", + _forEachIndex + ] call AGM_Interaction_fnc_AddSelectableItem; + }; +} forEach _cargo; + +// open select menu +[ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + [0, AGM_InteractionMenu_Crew select _this, ""] spawn AGM_Interaction_fnc_showMenu; + AGM_InteractionMenu_Crew = nil; + }, + { + call AGM_Interaction_fnc_hideMenu; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openMenuSelf.sqf b/TO_MERGE/agm/Interaction/functions/fn_openMenuSelf.sqf new file mode 100644 index 0000000000..e6056eb1ef --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openMenuSelf.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[1, AGM_player, ""] call AGM_Interaction_fnc_showMenu; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openSelectMenu.sqf b/TO_MERGE/agm/Interaction/functions/fn_openSelectMenu.sqf new file mode 100644 index 0000000000..069d1dbc8a --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openSelectMenu.sqf @@ -0,0 +1,43 @@ +/* + Name: AGM_Interaction_fnc_openSelectMenu + + Author: Garth de Wet (LH) + + Description: + Opens the select menu UI and sets up the UI + + Parameters: + 0: ARRAY - items + ARRAY + 0 = Text + 1 = statement to execute + 2 = condition before execute + 3 = showDisabled + 4 = priority + 5 = icon + 6 = extra variables. Passed to the code. + 1: Code - select action + 2: Code - Cancel Action + Returns: + Nothing + + Example: +*/ +if (!(profileNamespace getVariable ["AGM_Interaction_FlowMenu", false])) then { + AGM_Interaction_SelectAccept = _this select 1; + AGM_Interaction_SelectCancel = _this select 2; + buttonSetAction [8855, "call AGM_Interaction_SelectCancel;"]; // cancel + buttonSetAction [8860, "(call compile (lbData [8866, lbCurSel 8866])) call AGM_Interaction_SelectAccept;"]; // accept + lbSetCurSel [8866, 0]; +}else{ + _customActions = _this select 0; + _count = count _customActions; + if (_count == 0) exitWith {}; + _customActions call AGM_Interaction_fnc_sortOptionsByPriority; + for "_i" from 0 to _count -1 do { + _action = _customActions select _i; + _action set [1, (_this select 1)]; + }; + AGM_Interaction_Buttons = _customActions; + [(_this select 2), true, true, false, AGM_player] call AGM_Interaction_fnc_initialiseInteraction; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openSubMenu.sqf b/TO_MERGE/agm/Interaction/functions/fn_openSubMenu.sqf new file mode 100644 index 0000000000..7898d9e181 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openSubMenu.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[2, AGM_Interaction_Target, _this select 0] call AGM_Interaction_fnc_showMenu; diff --git a/TO_MERGE/agm/Interaction/functions/fn_openSubMenuSelf.sqf b/TO_MERGE/agm/Interaction/functions/fn_openSubMenuSelf.sqf new file mode 100644 index 0000000000..966684c84f --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_openSubMenuSelf.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[3, AGM_player, _this select 0] call AGM_Interaction_fnc_showMenu; diff --git a/TO_MERGE/agm/Interaction/functions/fn_prepareSelectMenu.sqf b/TO_MERGE/agm/Interaction/functions/fn_prepareSelectMenu.sqf new file mode 100644 index 0000000000..bb84eaca12 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_prepareSelectMenu.sqf @@ -0,0 +1,35 @@ +/* + Name: AGM_Interaction_fnc_prepareSelectMenu + + Author: Garth de Wet (LH) + + Description: + Prepares the select menu for use. + + Parameters: + 0: TEXT - Header text + 1: TEXT - Approve button text + + Returns: + ARRAY/NUMBER - container object for use with AddSelectableItem. + + Example: + ["Select Explosive", "Place"] call AGM_Interaction_fnc_prepareSelectMenu; +*/ +private ["_buttonAction", "_header", "_buttonText", "_cancelButton"]; +closeDialog 0; +if (!(profileNamespace getVariable ["AGM_Interaction_FlowMenu", false])) exitWith { + _header = _this select 0; + _buttonText = _this select 1; + if (isNil "_buttonText" or {_buttonText == ""}) then { + _buttonText = localize "STR_AGM_Interaction_MakeSelection"; + }; + createDialog "RscAGM_SelectAnItem"; + ctrlSetText [8860, _buttonText]; + ctrlSetText [8870, _header]; + + lbClear 8866; + + 8866 +}; +[] diff --git a/TO_MERGE/agm/Interaction/functions/fn_push.sqf b/TO_MERGE/agm/Interaction/functions/fn_push.sqf new file mode 100644 index 0000000000..d4ce290d1e --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_push.sqf @@ -0,0 +1,21 @@ +/* + * Author: KoffeinFlummi + * + * Pushes a boat away from the player. + * + * Arguments: + * 0: Boat (object) + * 1: Velocity (vectorlike array) + * + * Return Value: + * None + */ + +_boat = _this select 0; +_velocity = _this select 1; + +if !(local _boat) exitWith { + [_this, "AGM_Interaction_fnc_push", _boat] call AGM_Core_fnc_execRemoteFnc; +}; + +_boat setVelocity _velocity; diff --git a/TO_MERGE/agm/Interaction/functions/fn_removeInteraction.sqf b/TO_MERGE/agm/Interaction/functions/fn_removeInteraction.sqf new file mode 100644 index 0000000000..b633ce0bc8 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_removeInteraction.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * + * Remove an AGM action from an object. Note: This function is global. + * + * Argument: + * 0: Object (Object) + * 1: ID of the action (Number) + * + * Return value: + * None. + */ + +private ["_object", "_id", "_actionsVar", "_currentID", "_actionIDs", "_actions"]; + +_object = _this select 0; +_id = _this select 1; + +_actionsVar = _object getVariable ["AGM_Interactions", [-1, [], []]]; + +_currentID = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []]; +_actions = _actions - [[]]; + +_object setVariable ["AGM_Interactions", [_currentID, _actionIDs, _actions], true]; diff --git a/TO_MERGE/agm/Interaction/functions/fn_removeInteractionSelf.sqf b/TO_MERGE/agm/Interaction/functions/fn_removeInteractionSelf.sqf new file mode 100644 index 0000000000..140c6f0502 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_removeInteractionSelf.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * + * Remove an AGM self action from the player. + * + * Argument: + * 0: ID of the action (Number) + * + * Return value: + * None. + */ + + +private ["_id", "_actionsVar", "_currentID", "_actionIDs", "_actions"]; + + +_id = _this select 0; + +_actionsVar = AGM_player getVariable ["AGM_InteractionsSelf", [-1, [], []]]; + +_currentID = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []]; +_actions = _actions - [[]]; + +AGM_player setVariable ["AGM_InteractionsSelf", [_currentID, _actionIDs, _actions], false]; diff --git a/TO_MERGE/agm/Interaction/functions/fn_removeTag.sqf b/TO_MERGE/agm/Interaction/functions/fn_removeTag.sqf new file mode 100644 index 0000000000..9d37367f1c --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_removeTag.sqf @@ -0,0 +1,19 @@ +// by commy2 + +0 spawn { + waitUntil {player getVariable ["AGM_Name", ""] != ""}; + + _name = player getVariable ["AGM_Name", ""]; + _name = toArray _name; + + _index = _name find (toArray "]" select 0); + + if (_index != -1) then { + for "_index" from 0 to _index do { + _name set [_index, -1]; + }; + _name = _name - [-1]; + _name = toString _name; + player setVariable ["AGM_Name", _name, true]; + }; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_sendAway.sqf b/TO_MERGE/agm/Interaction/functions/fn_sendAway.sqf new file mode 100644 index 0000000000..a4434bbd12 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_sendAway.sqf @@ -0,0 +1,35 @@ +/* + * Author: KoffeinFlummi + * + * Sends a civilian crowd away (chance of failure). + * + * Arguments: + * 0: Unit to be sent away (Object) + * + * Return value: + * none +*/ + +#define DISTANCE 50 +#define RADIUS 10 + +private ["_unit", "_chance", "_x"]; + +_unit = _this select 0; + +AGM_player playActionNow "GestureGo"; + +if (count weapons AGM_player > 0) then { + _chance = 0.8; +} else { + _chance = 0.5; +}; + +{ + if (count (weapons _unit) == 0 and random 1 < _chance) then { + [-2, { + (_this select 0) setUnitPos "AUTO"; + (_this select 0) doMove [(getPos (_this select 0) select 0) + DISTANCE * (eyeDirection (_this select 1) select 0), (getPos (_this select 0) select 1) + DISTANCE * (eyeDirection (_this select 1) select 1), 0]; + }, [_x, AGM_player]] call CBA_fnc_globalExecute; + }; +} foreach (_unit nearEntities ["Civilian", RADIUS]); diff --git a/TO_MERGE/agm/Interaction/functions/fn_setCaptivityStatus.sqf b/TO_MERGE/agm/Interaction/functions/fn_setCaptivityStatus.sqf new file mode 100644 index 0000000000..1055780cac --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_setCaptivityStatus.sqf @@ -0,0 +1,3 @@ +// by commy2 + +_this call AGM_Core_fnc_setCaptivityStatus; diff --git a/TO_MERGE/agm/Interaction/functions/fn_showMenu.sqf b/TO_MERGE/agm/Interaction/functions/fn_showMenu.sqf new file mode 100644 index 0000000000..291ab27331 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_showMenu.sqf @@ -0,0 +1,118 @@ +/* + Name: AGM_Interaction_fnc_showMenu + + Author: + commy2 + Garth de Wet (LH) + aeroson + + Description: + + Parameters: + 0: NUMBER - Menu type (0 - interaction, 1 - self-interaction, 2 - sub-interaction, 3 - sub-self-interaction) + 1: OBJECT - Target object + 2: STRING - Sub-Menu ClassName + + Returns: + Nothing + + Example: + [0, AGM_Interaction_Target] call AGM_Interaction_fnc_showMenu; + [1, player] call AGM_Interaction_fnc_showMenu; + [2, AGM_Interaction_Target, "AGM_Explosives"] call AGM_Interaction_fnc_showMenu; + [3, player, "AGM_Explosives"] call AGM_Interaction_fnc_showMenu; +*/ +private ["_player", "_vehicle", "_mainButtonAction", "_object", "_index", "_actions", "_result", "_menuType"]; +#define DEFAULT_ICON "\AGM_Interaction\UI\dot_ca.paa" +#define DEFAULT_DISTANCE 4 // seems to be 4 +_player = AGM_player; +_vehicle = vehicle _player; + +AGM_Interaction_MenuType = _this select 0; // 0 Interaction, 1 Self Interaction + +_mainButtonAction = [ + {call AGM_Interaction_fnc_hideMenu}, + {call AGM_Interaction_fnc_hideMenu}, + {"Default" call AGM_Interaction_fnc_openMenu}, + {"Default" call AGM_Interaction_fnc_openMenuSelf} +] select AGM_Interaction_MenuType; + +_menuType = AGM_Interaction_MenuType % 2; +uiNamespace setVariable ["AGM_Interaction_CursorPosition", [controlNull, 0.5, 0.5, -1]]; + +AGM_Interaction_Target = _this select 1; +_object = AGM_Interaction_Target; + +if (_menuType == 0 && {(isNull (_object) || {!([_object, 4] call AGM_Interaction_fnc_isInRange)})}) exitWith {};//call ([AGM_Interaction_fnc_onButtonDown, AGM_Interaction_fnc_onButtonDownSelf] select _menuType)}; +if !([_player, _object] call AGM_Core_fnc_canInteractWith) exitWith {}; + +// add actions or self actions of AGM_Interaction_Target +_parents = [configFile >> "CfgVehicles" >> typeOf _object, true] call BIS_fnc_returnParents; +_result = [_object, _parents, [], [], missionConfigFile >> "CfgVehicles", true, ["AGM_Actions", "AGM_SelfActions"] select _menuType, _this select 2] call AGM_Interaction_fnc_GetActions; +_actions = ([_object, _parents, _result select 0, _result select 1,configFile >> "CfgVehicles", false, ["AGM_Actions", "AGM_SelfActions"] select _menuType, _this select 2] call AGM_Interaction_fnc_GetActions) select 0; + +// add self actions of vehicle _player +if (_menuType == 1 && {_player != _vehicle}) then { + _parents = [configFile >> "CfgVehicles" >> typeOf _vehicle, true] call BIS_fnc_returnParents; + _result = [_vehicle, _parents, [], [], missionConfigFile >> "CfgVehicles", true, ["AGM_Actions", "AGM_SelfActions"] select _menuType, _this select 2] call AGM_Interaction_fnc_GetActions; + _actions = _actions + (([_vehicle, _parents, _result select 0, _result select 1,configFile >> "CfgVehicles", false, ["AGM_Actions", "AGM_SelfActions"] select _menuType, _this select 2] call AGM_Interaction_fnc_GetActions) select 0); +}; + +// custom defined actions, stored in variable instead of cfg like above +if (AGM_Interaction_MenuType < 2) then { + + private ["_customActions", "_customAction", "_displayName", "_distance","_condition","_statement","_showDisabled", "_priority"]; + + // add interactions or self interactions of AGM_Interaction_Target + _customActions = (_object getVariable [["AGM_Interactions", "AGM_InteractionsSelf"] select _menuType, [-1, [], []]]) select 2; + + // add self interactions of vehicle _player + if (_menuType == 1 && {_player != _vehicle}) then { + _customActions = _customActions + ((_vehicle getVariable [["AGM_Interactions", "AGM_InteractionsSelf"] select _menuType, [-1, [], []]]) select 2); + }; + + if(_menuType==0) then { + + private ["_distance"]; + + for "_index" from 0 to (count _customActions - 1) do { + + _customAction = _customActions select _index; + _displayName = _customAction select 0; + _distance = _customAction select 1; + _condition = _customAction select 2; + _statement = _customAction select 3; + _showDisabled = _customAction select 4; + _priority = _customAction select 5; + + if ((_showDisabled || {[_object, _player] call _condition}) && {[_object, _distance] call AGM_Interaction_fnc_isInRange || {_distance == 0}}) then { + _actions pushBack [_displayName, _statement, _condition, _priority, [], DEFAULT_ICON, "", {true}, [], _distance, ""]; + }; + }; + + } else { // self interactions do not have distance + + for "_index" from 0 to (count _customActions - 1) do { + + _customAction = _customActions select _index; + _displayName = _customAction select 0; + _condition = _customAction select 1; + _statement = _customAction select 2; + _showDisabled = _customAction select 3; + _priority = _customAction select 4; + + if (_showDisabled || {[_object, _player] call _condition}) then { + _actions pushBack [_displayName, _statement, _condition, _priority, [], DEFAULT_ICON, "", {true}, [], DEFAULT_DISTANCE, ""]; + }; + }; + + }; + + +}; + +if (count _actions == 0) exitWith {};//call ([AGM_Interaction_fnc_onButtonDown, AGM_Interaction_fnc_onButtonDownSelf] select _menuType)}; + +_actions call AGM_Interaction_fnc_sortOptionsByPriority; +AGM_Interaction_Buttons = _actions; +[_mainButtonAction, (_this select 2) != "", (profileNamespace getVariable ["AGM_Interaction_FlowMenu", false]), _menuType == 1, _object] call AGM_Interaction_fnc_initialiseInteraction; diff --git a/TO_MERGE/agm/Interaction/functions/fn_showMouseHint.sqf b/TO_MERGE/agm/Interaction/functions/fn_showMouseHint.sqf new file mode 100644 index 0000000000..a856e9d9c6 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_showMouseHint.sqf @@ -0,0 +1,54 @@ +/* + Name: AGM_Interaction_fnc_showMouseHint + + Author(s): + Garth de Wet (LH) + + Description: + Shows the interaction helper text with the mouse buttons at the bottom middle of the screen + + Parameters: + 0: STRING - Left click text + 1: STRING - Right click text + 3: STRING - (Optional) Scroll text + + Returns: + Nothing + + Example: + ["Place Explosive", "Cancel"] call AGM_Interaction_fnc_showMouseHint; +*/ +#define GUI_GRID_W (0.025) +#define GUI_GRID_H (0.04) +private ["_leftClick", "_rightClick", "_scroll"]; +_leftClick = _this select 0; +_rightClick = _this select 1; +_scroll = ""; +if (count _this > 2) then { + _scroll = _this select 2; +}; + +("AGM_InteractionHelper" call BIS_fnc_rscLayer) cutRsc ["AGM_InteractionHelper", "PLAIN",0.5, false]; +disableSerialization; +_display = uiNamespace getVariable ["AGM_Helper_Display", objNull]; +if (isNull _display) exitWith{}; + +(_display displayCtrl 1000) ctrlSetText _leftClick; +(_display displayCtrl 1001) ctrlSetText _rightClick; + +(_display displayCtrl 1000) ctrlShow (_leftClick != ""); +(_display displayCtrl 1200) ctrlShow (_leftClick != ""); +(_display displayCtrl 1001) ctrlShow (_rightClick != ""); +(_display displayCtrl 1201) ctrlShow (_rightClick != ""); + +if (_scroll == "") exitWith { + (_display displayCtrl 1002) ctrlShow false; + (_display displayCtrl 1202) ctrlShow false; + + (_display displayCtrl 1001) ctrlSetPosition [21 * GUI_GRID_W, 18 * GUI_GRID_H, 8 * GUI_GRID_W, 1.5 * GUI_GRID_H]; + (_display displayCtrl 1201) ctrlSetPosition [20 * GUI_GRID_W, 18.5 * GUI_GRID_H, 1 * GUI_GRID_W, 1 * GUI_GRID_H]; + (_display displayCtrl 1001) ctrlCommit 0; + (_display displayCtrl 1201) ctrlCommit 0; +}; +(_display displayCtrl 1002) ctrlSetText _scroll; +showHUD false; \ No newline at end of file diff --git a/TO_MERGE/agm/Interaction/functions/fn_sortOptionsByPriority.sqf b/TO_MERGE/agm/Interaction/functions/fn_sortOptionsByPriority.sqf new file mode 100644 index 0000000000..dd94cadfe4 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_sortOptionsByPriority.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_actions", "_count", "_index", "_actionN", "_actionM"]; + +_actions = _this; +_count = count _actions; +_index = 0; + +while {_index < _count - 1} do { + _actionN = + _actions select _index; + _actionM = + _actions select (_index + 1); + + if (_actionN select 3 < _actionM select 3) then { + _actions set [_index, _actionM]; + _actions set [_index + 1, _actionN]; + _index = 0; + } else { + _index = _index + 1; + }; +}; diff --git a/TO_MERGE/agm/Interaction/functions/fn_tapShoulder.sqf b/TO_MERGE/agm/Interaction/functions/fn_tapShoulder.sqf new file mode 100644 index 0000000000..8d6340143f --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_tapShoulder.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_unit", "_message"]; + +_tapper = _this select 0; +_target = _this select 1; + +if (_target != AGM_player) exitWith { + addCamShake [4, 0.5, 5]; + if !(local _target) then { + [[_tapper, _target], "AGM_Interaction_fnc_tapShoulder", _target] call AGM_Core_fnc_execRemoteFnc; + }; +}; + +addCamShake [4, 0.5, 5]; + +//_message = format ["%1 tapped you on your shoulder.", [_unit] call AGM_Core_fnc_getName]; +_message = localize "STR_AGM_Interaction_YouWereTapped"; + +[_message] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Interaction/functions/fn_updateTooltipPosition.sqf b/TO_MERGE/agm/Interaction/functions/fn_updateTooltipPosition.sqf new file mode 100644 index 0000000000..3df14635e0 --- /dev/null +++ b/TO_MERGE/agm/Interaction/functions/fn_updateTooltipPosition.sqf @@ -0,0 +1,12 @@ +// by commy2 + +disableSerialization; +_ctrl = ctrlParent (_this select 0) displayCtrl 40; + +_ctrl ctrlSetPosition [ + (_this select 1) + 0.01 * safezoneW, + (_this select 2) + 0.01 * safezoneH, + 2.0 / 16 * safezoneW, + 0.3 / 9 * safezoneH +]; +_ctrl ctrlCommit 0; diff --git a/TO_MERGE/agm/Interaction/rsc/button1.paa b/TO_MERGE/agm/Interaction/rsc/button1.paa new file mode 100644 index 0000000000..51d3a373a1 Binary files /dev/null and b/TO_MERGE/agm/Interaction/rsc/button1.paa differ diff --git a/TO_MERGE/agm/Interaction/stringtable.xml b/TO_MERGE/agm/Interaction/stringtable.xml new file mode 100644 index 0000000000..47670ccf75 --- /dev/null +++ b/TO_MERGE/agm/Interaction/stringtable.xml @@ -0,0 +1,652 @@ + + + + + + Interaction Menu + Interaktionsmenü + Menú de interacción + Menu interakcji + Menu interakce + Menu d'interaction + Меню взаимодействия + Interakció + Menu de Interação + Menù Interattivo + + + Interaction Menu (Self) + Interaktionsmenü (Selbst) + Menú de interacción (Propia) + Menu interakcji (na siebie) + Menu interakce (vlastní) + Menu d'interaction (Perso) + Меню взаимодействия (с собой) + Interakció (saját) + Menu de Interação (Individual) + Menù Interattivo (Individuale) + + + Open / Close Door + Tür öffnen / schließen + Abrir / Cerrar puerta + Otwórz / Zamknij drzwi + Otevřít / Zavřít dveře + Ouvrir / Fermer Portes + Открыть / Закрыть двери + Ajtó nyitás / zárás + Abrir / Fechar Porta + Apri / Chiudi la porta + + + Lock Door + Tür sperren + Bloquear puerta + Verrouiller Porte + Blocca la porta + Заблокировать дверь + Trancar Porta + Ajtó bezárása + Zablokuj drzwi + Zamknout dveře + + + Unlock Door + Tür entsperren + Desbloquear puerta + Déverrouiller Porte + Sblocca la porta + Разблокировать дверь + Destrancar Porta + Zár kinyitása + Odblokuj drzwi + Odemknout dveře + + + Locked Door + Tür gesperrt + Puerta bloqueada + Porte Verrouillée + Porta bloccata + Дверь заблокирована + Porta Trancada + Zárt ajtó + Zablokowano drzwi + Zamčené dveře + + + Unlocked Door + Tür entsperrt + Puerta desbloqueada + Porte Déverrouillée + Porta sbloccata + Дверь разблокирована + Porta Destrancada + Nyitott ajtó + Odblokowano drzwi + Odemčené dveře + + + Join group + Gruppe beitreten + Unirse al grupo + Dołącz do grupy + Přidat se do skupiny + Rejoindre Groupe + Вступить в группу + Csatlakozás + Unir-se ao grupo + Unisciti alla squadra + + + Leave Group + Gruppe verlassen + Dejar grupo + Opuść grupę + Odejít ze skupiny + Quitter Groupe + Выйти из группы + Csoport elhagyása + Deixar grupo + Lascia la squadra + + + Become Leader + Grp.-führung übern. + Asumir el liderazgo + Przejmij dowodzenie + Stát se velitelem + Devenir Leader + Стать лидером + Vezetés átvétele + Tornar-se Líder + Prendi il comando + + + DANCE! + TANZEN! + BAILAR! + TAŃCZ! + TANČIT! + Danse! + ТАНЦЕВАТЬ! + TÁNC! + DANCE! + Balla! + + + Stop Dancing + Tanzen abbrechen + Dejar de bailar + Przestań tańczyć + Přestat tancovat + Arrêter de danser + Прекратить танцевать + Tánc abbahagyása + Parar de dançar + Smetti di ballare + + + << Back + << Zurück + << Atrás + << Wstecz + << Zpět + << Retour + << Назад + << Vissza + << Voltar + << Indietro + + + Gestures >> + Gesten >> + Gestos >> + Gesty >> + Gesta >> + Signaux >> + Жесты >> + Kézjelek >> + Gestos >> + Segnali gestuali >> + + + Attack + Angreifen + Atacar + Do ataku + Zaútočit + Attaquer + Атаковать + Támadás + Atacar + Attaccare + + + Advance + Vordringen + Avanzar + Naprzód + Postoupit + Avancer + Продвигаться + Előre + Avançar + Avanzare + + + Go + Los + Adelante + Szybko + Jít + Aller + Идти + Mozgás + Mover-se + Muoversi + + + Follow + Folgen + Seguirme + Za mną + Následovat + Suivre + Следовать + Utánam + Seguir + Seguire + + + Point + Zeigen + Señalar + Wskazać + Ukázat + Pointer + Точка + Mutat + Apontar + Puntare a + + + Up + Aufstehen + Arriba + Do góry + Vztyk + Debout + Вверх + Fel + Acima + Alzarsi + + + Cover + Deckung + Cubrirse + Do osłony + Krýt se + A couvert + Укрыться + Fedezékbe + Proteger-se + Copertura + + + Cease Fire + Feuer einstellen + Alto el fuego + Wstrzymać ogień + Zastavit palbu + Halte au feu + Прекратить огонь + Tüzet szüntess + Cessar Fogo + Cessare il Fuoco + + + Freeze + Keine Bewegung + Alto + Stać + Stát + Halte + Замереть + Állj + Alto + Fermi + + + Hi + Hallo + Hola + Witaj + Ahoj + Salut + Привет + Szeva + Olá + Ciao + + + Yes + Ja + Si + Tak + Ano + Oui + Да + Igen + Sim + Si + + + No + Nein + No + Nie + Ne + Non + Нет + Nem + Não + No + + + Put weapon on back + Waffe wegstecken + Arma a la espalda + Umieść broń na plecach + Dát zbraň na záda + Arme à la bretelle + Повесить оружие на спину + Fegyvert hátra + Colocar arma nas costas + Metti l'arma in spalla + + + Tap Shoulder + Auf Schulter klopfen + Tocar el hombro + Klepnij w ramię + Poklepat na rameno + Taper sur l'épaule + Похлопать по плечу + Vállveregetés + Tocar ombro + Dai un colpetto + + + You were tapped on the shoulder. + Dir wurde auf die Schulter geklopft + Te tocaron el hombro. + On te tape sur l'épaule. + Zostałeś klepnięty po ramieniu + Vállonveregettek + Někdo tě poklepal na rameno. + Вас похлопали по плечу + Você foi tocado no ombro. + Ti è stato dato un colpetto sulla spalla + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Annulla + Отменить + Cancelar + Mégse + + + Select + Wählen + Seleccionar + Wybierz + Sélectionner + Zvolit + Seleziona + Выбрать + Selecionar + Kiválaszt + + + Go Away! + Geh Weg! + Aléjate! + Odejdź! + Jděte pryč! + Allez-vous-en! + Уходите отсюда! + Tűnés! + Vá Embora! + Via di qui! + + + Get Down! + Auf Den Boden! + Al suelo! + Padnij! + K zemi! + A terre! + A földre! + Ложись! + Abaixe-se! + A Terra! + + + Team Management >> + Team Management >> + Gestión de equipo >> + Gestion d'équipe >> + Zarządzanie oddziałem >> + Správa týmu >> + Управление группой >> + Gerenciamento de Equipe >> + Organizzazione Squadra >> + Csapat kezelés >> + + + Red + Rot + Rojo + Rouge + Czerwony + Červený + Красный + Vermelha + Rosso + Piros + + + Green + Grün + Verde + Vert + Zielony + Zelený + Зеленый + Verde + Verde + Zöld + + + Blue + Blau + Azul + Bleu + Niebieski + Modrý + Синий + Azul + Blu + Kék + + + Yellow + Gelb + Amarillo + Jaune + Żółty + Žlutý + Желтый + Amarela + Giallo + Sárga + + + Join Team Red + Team Rot beitreten + Unirse al equipo rojo + Rejoindre Rouge + Dołącz do drużyny czerwonej + Připojit do Červeného Týmu + Присоединиться к красной группе + Unir-se à Equipe Vermelha + Entra nella Squadra Rossa + Csatlakozás a piros csapathoz + + + Join Team Green + Team Grün beitreten + Unirse al equipo verde + Rejoindre Verte + Dołącz do drużyny zielonej + Připojit do Zeleného Týmu + Присоединиться к зеленой группе + Unir-se à Equipe Verde + Entra nella Squadra Verde + Csatlakozás a zöld csapathoz + + + Join Team Blue + Team Blau beitreten + Unirse al equipo azul + Rejoindre Bleue + Dołącz do drużyny niebieskiej + Připojit do Modrého Týmu + Присоединиться к синей группе + Unir-se à Equipe Azul + Entra nella Squadra Blu + Csatlakozás a kék csapathoz + + + Join Team Yellow + Team Gelb beitreten + Unirse al equipo amarillo + Rejoindre Jaune + Dołącz do drużyny żółtej + Připojit do Žlutého Týmu + Присоединиться к желтой группе + Unir-se à Equipe Amarela + Entra nella Squadra Gialla + Csatlakozás a sárga csapathoz + + + You joined Team %1 + Du bist Team %1 beigetreten + Te has unido al equipo %1 + Tu as rejoint l'équipe %1 + Dołączyłeś do drużyny %1 + Připojil ses do Týmu %1 + Вы присоединились к группе %1 + Você uniu-se à Equipe %1 + Sei entrato nella Squadra %1 + Csatlakoztál a %1 csapathoz + + + Leave Team + Team verlassen + Dejar equipo + Quitter l'équipe + Opuść drużynę + Opustit tým + Покинуть группу + Deixar Equipe + Lascia la Squadra + Csapat elhagyása + + + You left the Team + Du hast das Team verlassen + Has dejado el equipo + Tu as quitté l'équipe + Opuściłeś drużynę + Opustil si tým + Вы покинули группу + Você deixou a Equipe + Hai lasciato la squadra + Elhagytad a csapatot + + + Pardon + Begnadigen + Perdonar + Przebacz + Pardon + Pardon + Извините + Perdão + Perdona + Megbocsátás + + + Flow Menu + Mausradmenü + Flow Menu + Menú desplegable + Menu Déroulant + Flow Menu + Выпадающее меню + Flow Menu + Menù a Scorrimento + Legördülő menü + + + Scroll + Scrollen + Przewiń + Défilement + Desplazar + Пролистать + Rolar + Scorri + Görgetés + Otáčení + + + Modifier Key + Modifikator + Modyfikator + Modifier la touche + Tecla modificadora + клавиша-модификатор + Tecla Modificadora + Modifica Tasto + Módosító billentyű + Modifikátor + + + Not in Range + Außer Reichweite + Hors de portée. + Fuera de rango + Слишком далеко + Fora do Alcançe + Hatótávolságon kívül + Poza zasięgiem + Mimo dosah + + + Close Menu on Key Release + Menü nach Loslassen schließen + Zamknij menu automatycznie + Fermer le menu en relâchant la touche + Cerrar menú al soltar la tecla + Menü bezárása a billentyű elengedésekor + Закрывать меню при отжатии клавиши + Menu interakce (Na držení) + + + Auto Center Cursor + Mauszeiger automatisch zentrieren + Auto-centrar cursor + Automatycznie centruj kursor + Vycentrování kurzoru + Egér auto-centrírozása + Автоцентрирование курсора + + + Equipment >> + Ausrüstung >> + Equipamiento >> + Équipment >> + Ekwipunek >> + Vybavení >> + Felszerelés >> + Снаряжение >> + + + Push + Schieben + Empujar + Pousser + Pchnij + Odstrčit + Tolás + Толкать + + + Interact + Interagiere + Interakce + Взаимодействовать + Interakcja + Interactuar + + + diff --git a/TO_MERGE/agm/Inventory/config.cpp b/TO_MERGE/agm/Inventory/config.cpp new file mode 100644 index 0000000000..e5da47a441 --- /dev/null +++ b/TO_MERGE/agm/Inventory/config.cpp @@ -0,0 +1,522 @@ +class CfgPatches{ + class AGM_Inventory { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.6; + requiredAddons[] = {"AGM_Core"}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"Pabst Mirror"}; + authorUrl = "https://github.com/PabstMirror/"; + }; +}; + + +class RscText; +class RscPicture; +class RscListBox; +class RscProgress; +class RscStructuredText; +class RscActiveText; +class RscCombo; +class RscControlsGroupNoScrollbars; + +/* +Adjust the scaling of the inventory screen +-changes it from scaling based on user's interface size to a static size +-text size and row height size are uneffected +-also tweaks the height of the two ProgressBars which looked odd scaled up so much +*/ + +class RscDisplayInventory { + class controls { + class CA_ContainerBackground: RscText { + //crate: GroundLoad adjust size + x = "1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "12 * (safeZoneH / 40)"; + // h = "23 * ((safeZoneH / 1.2) / 25)"; + h = "22.5 * ((safeZoneH / 1.2) / 25)"; + }; + class CA_PlayerBackground: RscText { + //center player's container: decrease height because of progressbar height decrease + x = "14.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "24.4 * (safeZoneH / 40)"; + // h = "22 * ((safeZoneH / 1.2) / 25)"; + h = "21.5 * ((safeZoneH / 1.2) / 25)"; + }; + class TitleBackground: RscText { + x = "14.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "24.4 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class PlayersName: RscText { + text = "Player name:"; + x = "15.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "19.8 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class RankBackground: RscText { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1.25 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "0.6 * (safeZoneH / 40)"; + h = "0.6 * ((safeZoneH / 1.2) / 25)"; + }; + class RankPicture: RscPicture { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1.25 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "0.6 * (safeZoneH / 40)"; + h = "0.6 * ((safeZoneH / 1.2) / 25)"; + }; + class ButtonBack: RscActiveText { + x = "38 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "1 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotPrimary: RscPicture { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11.9 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotPrimaryMuzzle: BackgroundSlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotPrimaryFlashlight: BackgroundSlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotPrimaryOptics: BackgroundSlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotPrimaryMagazine: BackgroundSlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotSecondary: BackgroundSlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "11.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11.9 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotSecondaryMuzzle: BackgroundSlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotSecondaryFlashlight: BackgroundSlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotSecondaryOptics: BackgroundSlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotSecondaryMagazine: BackgroundSlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHandgun: BackgroundSlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "17 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11.9 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHandgunMuzzle: BackgroundSlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHandgunFlashlight: BackgroundSlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHandgunOptics: BackgroundSlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHandgunMagazine: BackgroundSlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHeadgear: BackgroundSlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotGoggles: BackgroundSlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotHMD: BackgroundSlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotBinoculars: BackgroundSlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotMap: BackgroundSlotPrimary { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.12 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotGPS: BackgroundSlotPrimary { + x = "17.32 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.12 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotCompass: BackgroundSlotPrimary { + x = "21.76 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.12 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotRadio: BackgroundSlotPrimary { + x = "19.54 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.12 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class BackgroundSlotWatch: BackgroundSlotPrimary { + x = "23.98 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.12 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class ExternalContainerBackground: RscPicture { + x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "3.7 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11 * (safeZoneH / 40)"; + h = "18.4 * ((safeZoneH / 1.2) / 25)"; + // h = "15.4 * ((safeZoneH / 1.2) / 25)"; + }; + class PlayerContainerBackground: ExternalContainerBackground { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11 * (safeZoneH / 40)"; + h = "14 * ((safeZoneH / 1.2) / 25)"; + }; + class GroundTab: RscActiveText { + x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "5.5 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class SoldierTab: GroundTab { + x = "7 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "1.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "5.5 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class GroundContainer: RscListBox { + x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "3.7 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11 * (safeZoneH / 40)"; + h = "18.4 * ((safeZoneH / 1.2) / 25)"; + }; + // class SoldierContainer: GroundContainer {}; + class GroundFilter: RscCombo { + x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class GroundLoad: RscProgress { + //crate: GroundLoad adjust size + x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "22.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11 * (safeZoneH / 40)"; + // h = "1 * ((safeZoneH / 1.2) / 25)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotPrimary: GroundTab { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11.9 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotPrimaryMuzzle: SlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotPrimaryGrip: SlotPrimary { + w = 0; + h = 0; + x = "39 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + }; + class SlotPrimaryFlashlight: SlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotPrimaryOptics: SlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotPrimaryMagazine: SlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "9.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotSecondary: SlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "11.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11.9 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotSecondaryMuzzle: SlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotSecondaryGrip: SlotPrimary { + w = 0; + h = 0; + x = "39 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + }; + class SlotSecondaryFlashlight: SlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotSecondaryOptics: SlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotSecondaryMagazine: SlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "14.6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHandgun: SlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "17 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11.9 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHandgunMuzzle: SlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHandgunGrip: SlotPrimary { + w = 0; + h = 0; + x = "39 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + }; + class SlotHandgunFlashlight: SlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHandgunOptics: SlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHandgunMagazine: SlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHeadgear: SlotPrimary { + x = "26.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotGoggles: SlotPrimary { + x = "29.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotHMD: SlotPrimary { + x = "32.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotBinoculars: SlotPrimary { + x = "35.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2.9 * (safeZoneH / 40)"; + h = "2.9 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotMap: SlotPrimary { + x = "15.16 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotGPS: SlotPrimary { + x = "17.38 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotCompass: SlotPrimary { + x = "21.82 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotRadio: SlotPrimary { + x = "19.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class SlotWatch: SlotPrimary { + x = "24.04 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "20.1 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "2 * (safeZoneH / 40)"; + h = "2 * ((safeZoneH / 1.2) / 25)"; + }; + class UniformTab: GroundTab { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3.5 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class UniformSlot: SlotPrimary { + x = "15.35 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class UniformLoad: GroundLoad { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "5.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3.5 * (safeZoneH / 40)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + }; + class UniformContainer: GroundContainer { + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "6 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "11 * (safeZoneH / 40)"; + h = "14 * ((safeZoneH / 1.2) / 25)"; + }; + class VestTab: UniformTab { + x = "18.85 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3.5 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class VestSlot: SlotPrimary { + x = "19.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class VestLoad: GroundLoad { + x = "18.85 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "5.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3.5 * (safeZoneH / 40)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + }; + // class VestContainer: UniformContainer{}; + class BackpackTab: UniformTab { + x = "22.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3.5 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class BackpackSlot: SlotPrimary { + x = "22.85 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "2.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3 * (safeZoneH / 40)"; + h = "3 * ((safeZoneH / 1.2) / 25)"; + }; + class BackpackLoad: GroundLoad { + x = "22.6 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "5.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "3.5 * (safeZoneH / 40)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + }; + // class BackpackContainer: UniformContainer{}; + class TotalLoad: GroundLoad { + //center: progressbar height decrease + x = "15.1 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "22.5 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "23.4 * (safeZoneH / 40)"; + // h = "1 * ((safeZoneH / 1.2) / 25)"; + h = "0.5 * ((safeZoneH / 1.2) / 25)"; + }; + class ContainerMarker: GroundTab { + x = "0 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "24 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "1 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class GroundMarker: ContainerMarker { + x = "1.5 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "24 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "1 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + class SoldierMarker: ContainerMarker { + x = "3 * (safeZoneH / 40) + (safezoneX + (safezoneW - safeZoneH)/2)"; + y = "24 * ((safeZoneH / 1.2) / 25) + (safezoneY + (safezoneH - (safeZoneH / 1.2))/2)"; + w = "1 * (safeZoneH / 40)"; + h = "1 * ((safeZoneH / 1.2) / 25)"; + }; + }; +}; diff --git a/TO_MERGE/agm/Logistics/DiagnoseDialog.hpp b/TO_MERGE/agm/Logistics/DiagnoseDialog.hpp new file mode 100644 index 0000000000..891c4a83e6 --- /dev/null +++ b/TO_MERGE/agm/Logistics/DiagnoseDialog.hpp @@ -0,0 +1,104 @@ + +class AGM_Rsc_Control_Base; +class AGM_Rsc_Display_Base; + +class AGM_Repair_Diagnose_Dialog { + idd = -1; + movingEnable = 0; + onLoad = "uiNamespace setVariable ['AGM_dlgDiagnose', _this select 0];"; + objects[] = {}; + + class controlsBackground { + class Background { + idc = -1; + moving = 0; + font = "TahomaB"; + text = ""; + sizeEx = 0; + lineSpacing = 0; + access = 0; + type = 0; + style = 0; + size = 1; + colorBackground[] = {0, 0, 0, 0.25}; + colorText[] = {0, 0, 0, 0}; + x = 0;//"safezoneX"; + y = 0;//"safezoneY"; + w = 1;//"safezoneW"; + h = 1;//"safezoneH"; + }; + + /*class Progress_Bar { + idc = 1; + moving = 0; + text = ""; + font = "PuristaMedium"; + sizeEx = "1 / 40 / (getResolution select 5)"; + lineSpacing = 0; + access = 0; + type = 0; + style = 2; + size = 1; + colorBackground[] = {1, 0.647, 0, 0.5}; + colorText[] = {1,1,1,1}; + x = "safezoneX + 0.1 * safezoneW"; + y = "safezoneY + 0.2 * safezoneH"; + w = "0.0 * safezoneW"; + h = "0.01 * safezoneH"; + };*/ + + class LFWheel : Background{//AGM_Rsc_Control_Base { + idc = 10; + colorBackground[] = {1, 1, 1, 1}; + x = "5.5 / 16"; + y = "1 / 9"; + w = "0.5 / 16"; + h = "1.5 / 9"; + }; + class LF2Wheel : LFWheel { + idc = 11; + y = "3 / 9"; + }; + class LMWheel : LFWheel { + idc = 12; + y = "5 / 9"; + }; + class LBWheel : LFWheel { + idc = 13; + y = "7 / 9"; + }; + + class RFWheel : LFWheel { + idc = 14; + x = "10 / 16"; + }; + class RF2Wheel : RFWheel { + idc = 15; + y = "3 / 9"; + }; + class RMWheel : RFWheel { + idc = 16; + y = "5 / 9"; + }; + class RBWheel : RFWheel { + idc = 17; + y = "7 / 9"; + }; + + class Body : LFWheel { + idc = 20; + x = "7 / 16"; + y = "4 / 9"; + w = "2 / 16"; + h = "1.5 / 9"; + }; + class Engine : Body { + idc = 21; + y = "2 / 9"; + }; + class Fuel : Body { + idc = 22; + y = "6 / 9"; + }; + }; +}; diff --git a/TO_MERGE/agm/Logistics/FuelCapacities.hpp b/TO_MERGE/agm/Logistics/FuelCapacities.hpp new file mode 100644 index 0000000000..d9f539bfe9 --- /dev/null +++ b/TO_MERGE/agm/Logistics/FuelCapacities.hpp @@ -0,0 +1,35 @@ +#define AGM_FUELCAPACITY_KART 4 +#define AGM_FUELCAPACITY_QUAD 15 +#define AGM_FUELCAPACITY_OFFROARD 80 // http://www.nissan.de/content/dam/services/DE/brochure/NISSAN_Navara_Broschuere+Preisliste_DE.pdf +#define AGM_FUELCAPACITY_VAN 80 // @todo + +#define AGM_FUELCAPACITY_MATV 163 // fuel capacity of humvee (can't find informations for M-ATV) +#define AGM_FUELCAPACITY_PUNISHER 200 // This is guesswork and should be adjusted for all vehicles individually in the future @todo +#define AGM_FUELCAPACITY_FENNEK 230 // http://de.wikipedia.org/wiki/Sp%C3%A4hwagen_Fennek + +#define AGM_FUELCAPACITY_HEMTT 587 // http://en.wikipedia.org/wiki/Heavy_Expanded_Mobility_Tactical_Truck +#define AGM_FUELCAPACITY_KAMAZ 420 // @todo +#define AGM_FUELCAPACITY_TYPHOON 420 // @todo + +#define AGM_FUELCAPACITY_PATRIA 600 // @todo +#define AGM_FUELCAPACITY_ARMA 600 // @todo +#define AGM_FUELCAPACITY_PANDUR 228 // http://www.pandur.at/panzer2.htm + +#define AGM_FUELCAPACITY_NAMER 1400 // assumed to be the same as the merkava +#define AGM_FUELCAPACITY_BMP 800 // @todo +#define AGM_FUELCAPACITY_WARRIOR 770 // http://arcaneafvs.com/warrior.html (don't ask) + +#define AGM_FUELCAPACITY_MERKAVA 1400 // http://en.wikipedia.org/wiki/Merkava +#define AGM_FUELCAPACITY_T100 1600 // http://www.tanksim.com/topic3.htm +#define AGM_FUELCAPACITY_LEOPARD 1200 // http://en.wikipedia.org/wiki/Leopard_2 + +#define AGM_FUELCAPACITYCARGO_VAN 5000 // guesswork based on relative size compared to the othes +#define AGM_FUELCAPACITYCARGO_HEMTT 9464 // http://oshkoshdefense.com/variants/m978a4-fuel-servicing-truck-tanker/ +#define AGM_FUELCAPACITYCARGO_KAMAZ 7125 // guesswork based on relative size compared to HEMTT +#define AGM_FUELCAPACITYCARGO_TYPHOON 7125 // guesswork based on relative size compared to HEMTT +#define AGM_FUELCAPACITYCARGO_CRV 0 // this thing doesn't carry any fuel (I think) +#define AGM_FUELCAPACITYCARGO_SKYCRANE 3000 // no idea + +#define AGM_FUELCAPACITYCARGO_ISOCONT 24000 //http://www.seacoglobal.com/equipment/tank-container/standards/ (a bit less due the ingame varriant) +#define AGM_FUELCAPACITYCARGO_BARREL 200 //https://en.wikipedia.org/wiki/Drum_%28container%29 +#define AGM_FUELCAPACITYCARGO_4BARREL 800 //200*4 diff --git a/TO_MERGE/agm/Logistics/Macros.hpp b/TO_MERGE/agm/Logistics/Macros.hpp new file mode 100644 index 0000000000..b03ac8f4d3 --- /dev/null +++ b/TO_MERGE/agm/Logistics/Macros.hpp @@ -0,0 +1,279 @@ + +#define KEY_WHEEL_4X4 \ + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel"}; \ + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + +#define KEY_WHEEL_6X6_FRONT \ + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLBWheel", "HitRBWheel"}; \ + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLF2Wheel, STR_AGM_Repair_HitRF2Wheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + +#define KEY_WHEEL_6X6_REAR \ + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLMWheel", "HitRMWheel", "HitLBWheel", "HitRBWheel"}; \ + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLMWheel, STR_AGM_Repair_HitRMWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + +#define KEY_WHEEL_6X6_REAR_KAMAZ \ + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLMWheel", "HitRMWheel", "HitLF2Wheel", "HitRF2Wheel"}; \ + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLMWheel, STR_AGM_Repair_HitRMWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + +#define KEY_WHEEL_6X6_STOMPER \ + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLMWheel", "HitRMWheel"}; \ + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLMWheel, STR_AGM_Repair_HitRMWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + +#define KEY_WHEEL_8X8 \ + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLMWheel", "HitRMWheel", "HitLBWheel", "HitRBWheel"}; \ + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLF2Wheel, STR_AGM_Repair_HitRF2Wheel, STR_AGM_Repair_HitLMWheel, STR_AGM_Repair_HitRMWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + + +#define MACRO_LOADABLE \ + class AGM_loadItem { \ + displayName = "$STR_AGM_Logistics_LoadItem"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target] call AGM_Logistics_fnc_canLoadItem"; \ + statement = "[AGM_Interaction_Target, AGM_Logistics_targetVehicle] call AGM_Logistics_fnc_openLoadUI"; \ + showDisabled = 1; \ + priority = 1.6; \ + icon = "\A3\ui_f\data\igui\cfg\actions\gear_ca.paa"; \ + }; + +#define MACRO_NOT_LOADABLE \ + class AGM_loadItem { \ + condition = "false"; \ + }; + +#define MACRO_UNLOAD \ + class AGM_loadItemCarried { \ + displayName = "$STR_AGM_Logistics_LoadItem"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target] call AGM_Logistics_fnc_canLoadItemCarried"; \ + statement = "[player getVariable 'AGM_carriedItem', AGM_Interaction_Target] call AGM_Logistics_fnc_openLoadUI"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 1.6; \ + icon = "\A3\ui_f\data\igui\cfg\actions\gear_ca.paa"; \ + }; \ + class AGM_unloadBox { \ + displayName = "$STR_AGM_Logistics_Unload"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target] call AGM_Logistics_fnc_hasLoadedItems && {alive AGM_Interaction_Target}"; \ + statement = "[AGM_Interaction_Target] call AGM_Logistics_fnc_openUnloadUI"; \ + showDisabled = 1; \ + priority = 1.5; \ + icon = "\A3\ui_f\data\igui\cfg\actions\gear_ca.paa"; \ + }; + +#define MACRO_RELOAD_MAGS \ + class AGM_reloadMagazines { \ + displayName = "$STR_AGM_Logistics_ReloadMagazines"; \ + distance = 4; \ + condition = "count ([player, AGM_Interaction_Target] call AGM_Logistics_fnc_getLoadableMagazines) > 0"; \ + statement = "[AGM_Interaction_Target] call AGM_Logistics_fnc_openMagazineMenu"; \ + showDisabled = 1; \ + priority = 1.45; \ + icon = "\A3\ui_f\data\igui\cfg\actions\reammo_ca.paa"; \ + }; + +#define MACRO_DRAGABLE \ + class AGM_DragItem { \ + displayName = "$STR_AGM_Drag_StartDrag"; \ + distance = 4; \ + condition = "!(player call AGM_Drag_fnc_isDraggingObject)"; \ + conditionShow = "[AGM_Interaction_Target, player] call AGM_Drag_fnc_isDraggable"; \ + statement = "[AGM_Interaction_Target, player] call AGM_Drag_fnc_dragObject"; \ + showDisabled = 0; \ + priority = 3; \ + icon = "\A3\ui_f\data\igui\cfg\actions\gear_ca.paa"; \ + hotkey = "R"; \ + }; +// tooltip = "Drag this object."; \ + +#define MACRO_NOT_DRAGABLE \ + class AGM_DragItem { \ + condition = "false"; \ + }; +#define MACRO_GETIN_STATIC \ + class AGM_GetIn { \ + displayName = "$STR_AGM_StaticWeapons_GetIn"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target] call AGM_StaticWeapons_fnc_canGetIn"; \ + statement = "[AGM_Interaction_Target] call AGM_StaticWeapons_fnc_getIn"; \ + showDisabled = 0; \ + priority = 1; \ + }; \ + class AGM_RotateClockwise { \ + displayName = "$STR_AGM_StaticWeapons_RotateClockwise"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target, true] call AGM_StaticWeapons_fnc_canRotate"; \ + statement = "[AGM_Interaction_Target, true] call AGM_StaticWeapons_fnc_rotate"; \ + showDisabled = 1; \ + priority = 2.1; \ + icon = "AGM_Logistics\ui\rotate_cw_ca.paa"; \ + }; \ + class AGM_RotateCounterclockwise { \ + displayName = "$STR_AGM_StaticWeapons_RotateCounterclockwise"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target, false] call AGM_StaticWeapons_fnc_canRotate"; \ + statement = "[AGM_Interaction_Target, false] call AGM_StaticWeapons_fnc_rotate"; \ + showDisabled = 1; \ + priority = 2; \ + icon = "AGM_Logistics\ui\rotate_ccw_ca.paa"; \ + }; + +#define MACRO_NOT_GETINABLE_STATIC \ + class AGM_GetIn { \ + condition = "false"; \ + }; \ + class AGM_RotateClockwise { \ + condition = "false"; \ + }; \ + class AGM_RotateCounterclockwise { \ + condition = "false"; \ + }; \ + +#define MACRO_CUTWIRE \ + class AGM_Wirecutter_cut { \ + displayName = "$STR_AGM_CutFence"; \ + distance = 4; \ + condition = "'ToolKit' in items player && {alive AGM_Interaction_Target}"; \ + statement = "[5, AGM_Interaction_Target] call AGM_Wirecutter_fnc_cutDownFence"; \ + showDisabled = 1; \ + priority = 2.1; \ + icon = "AGM_Logistics\ui\wirecutter_ca.paa"; \ + }; + +#define MACRO_CUTWIRE_LONG \ + class AGM_Wirecutter_cut { \ + displayName = "$STR_AGM_CutFence"; \ + distance = 4; \ + condition = "'ToolKit' in items player && {alive AGM_Interaction_Target}"; \ + statement = "[5, AGM_Interaction_Target] call AGM_Wirecutter_fnc_cutDownFence"; \ + showDisabled = 1; \ + priority = 2.1; \ + icon = "AGM_Logistics\ui\wirecutter_ca.paa"; \ + }; + +#define MACRO_CARRYJERRYCAN \ + class AGM_CarryJerrycan { \ + displayName = "$STR_AGM_Drag_StartCarry"; \ + distance = 4; \ + condition = "[player, AGM_Interaction_Target] call AGM_Drag_fnc_isCarryable"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Drag_fnc_carryJerrycan"; \ + showDisabled = 1; \ + priority = 3; \ + icon = "\A3\ui_f\data\igui\cfg\actions\gear_ca.paa"; \ + }; \ + class AGM_DropJerrycan { \ + displayName = "$STR_AGM_Drag_EndCarry"; \ + distance = 4; \ + condition = "[player, AGM_Interaction_Target] call AGM_Drag_fnc_isCarryingObject"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Drag_fnc_dropJerrycan"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 3; \ + icon = "\A3\ui_f\data\igui\cfg\actions\gear_ca.paa"; \ + }; \ + class AGM_CheckFuelJerrycan { \ + displayName = "$STR_AGM_Resupply_CheckFuelJerryCan"; \ + distance = 4; \ + condition = "alive AGM_Interaction_Target"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_getFuelAmountJerrycan"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 3; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; + +#define MACRO_CHECKFUEL \ + class AGM_CheckFuelSelf { \ + displayName = "$STR_AGM_Resupply_CheckFuelJerryCan"; \ + condition = "(player getVariable ['AGM_carriedItem', objNull]) isKindOf 'AGM_JerryCan'"; \ + statement = "[player] call AGM_Resupply_fnc_getFuelAmountJerrycan"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 3; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; + +#define MACRO_REFUEL \ + class AGM_RefuelCargo { \ + displayName = "$STR_AGM_Resupply_RefuelVehicleCargo"; \ + distance = 4; \ + condition = "[AGM_Interaction_Target] call AGM_Resupply_fnc_canRefuelCargo"; \ + statement = "[AGM_Interaction_Target] call AGM_Resupply_fnc_refuelVehicleCargo"; \ + showDisabled = 0; \ + priority = 1.225; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; \ + class AGM_Refuel { \ + displayName = "$STR_AGM_Resupply_RefuelVehicle"; \ + distance = 4; \ + condition = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_canRefuel"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_refuelVehicle"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 1.245; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; \ + class AGM_DrainFuel { \ + displayName = "$STR_AGM_Resupply_DrainFuel"; \ + distance = 4; \ + condition = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_canDrainFuel"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_drainFuel"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 1.235; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; \ + class AGM_CheckFuel { \ + displayName = "$STR_AGM_Resupply_CheckFuel"; \ + distance = 4; \ + condition = "alive AGM_Interaction_Target && {speed AGM_Interaction_Target == 0}"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_getFuelAmount"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 1.295; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; + +#define MACRO_REFUELCARGO \ + class AGM_DrainFuelCargo { \ + displayName = "$STR_AGM_Resupply_DrainFuelCargo"; \ + distance = 4; \ + condition = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_canDrainFuelCargo"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_drainFuelCargo"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 1.22; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; \ + class AGM_CheckFuelCargo { \ + displayName = "$STR_AGM_Resupply_CheckFuelCargo"; \ + distance = 4; \ + condition = "alive AGM_Interaction_Target && {speed AGM_Interaction_Target == 0}"; \ + statement = "[player, AGM_Interaction_Target] call AGM_Resupply_fnc_getFuelAmountCargo"; \ + exceptions[] = {"AGM_Drag_isNotDragging"}; \ + showDisabled = 0; \ + priority = 1.24; \ + icon = "\A3\ui_f\data\igui\cfg\actions\refuel_ca.paa"; \ + }; + +#define MACRO_REFUEL_UAV \ + class AGM_RefuelUAV { \ + displayName = "$STR_AGM_UAVs_Recharge"; \ + distance = 4; \ + condition = "'AGM_UAVBattery' in items player && {fuel cursorTarget < 1}"; \ + statement = "[cursorTarget, player] call AGM_UAVs_fnc_refuel"; \ + showDisabled = 0; \ + priority = 1.245; \ + icon = "AGM_Logistics\ui\AGM_battery.paa"; \ + }; + +#define MACRO_PARADROP \ + class AGM_DropCargo { \ + displayName = "$STR_AGM_Paradrop_Unload"; \ + distance = 4; \ + condition = "getNumber(configFile >> 'CfgVehicles' >> typeOf vehicle player >> 'AGM_Paradrop') == 1 && {getPosATL vehicle player select 2 > 60} && {count (vehicle player getVariable ['AGM_Logistics_loadedItems', []]) > 0}"; \ + conditionShow = "getNumber(configFile >> 'CfgVehicles' >> typeOf vehicle player >> 'AGM_Paradrop') == 1"; \ + statement = "[vehicle player] call AGM_Paradrop_fnc_paradrop"; \ + priority = 1; \ + enableInside = 1; \ + }; diff --git a/TO_MERGE/agm/Logistics/agm_battery.p3d b/TO_MERGE/agm/Logistics/agm_battery.p3d new file mode 100644 index 0000000000..60bf0f28a6 Binary files /dev/null and b/TO_MERGE/agm/Logistics/agm_battery.p3d differ diff --git a/TO_MERGE/agm/Logistics/agm_track.p3d b/TO_MERGE/agm/Logistics/agm_track.p3d new file mode 100644 index 0000000000..a3026317f8 Binary files /dev/null and b/TO_MERGE/agm/Logistics/agm_track.p3d differ diff --git a/TO_MERGE/agm/Logistics/agm_wheel.p3d b/TO_MERGE/agm/Logistics/agm_wheel.p3d new file mode 100644 index 0000000000..4229f7391d Binary files /dev/null and b/TO_MERGE/agm/Logistics/agm_wheel.p3d differ diff --git a/TO_MERGE/agm/Logistics/config.cpp b/TO_MERGE/agm/Logistics/config.cpp new file mode 100644 index 0000000000..807d3a5438 --- /dev/null +++ b/TO_MERGE/agm/Logistics/config.cpp @@ -0,0 +1,1334 @@ +class CfgPatches { + class AGM_Logistics { + units[] = {"AGM_JerryCan", "AGM_SpareTrack", "AGM_SpareWheel", "AGM_SandbagBarrier_Crate", "AGM_RazorWire_Crate"}; + weapons[] = {"AGM_UAVBattery"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi", "Garth 'L-H' de Wet", "marc_book", "gpgpgpgp", "nic547"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +/* + Drag, Logistics: by Garth 'L-H' de Wet + UAVs, Repair: by marc_book + Wirecutter: by gpgpgpgp + StaticWeapons, Resupply: by commy2 + Something: by KoffeinFlummi +*/ + +class CfgFunctions { + class AGM_Logistics { + class AGM_Logistics { + file = "\AGM_Logistics\functions"; + class canLoadItem; + class canLoadItemCarried; + class canLoadMagazine; + class hasLoadedItems; + class initLoadedObject; + class getLoadableMagazines; + class getLoadPoints; + class getPosLoadable; + class getWeaponsOfMagazine; + class loadItem; + class loadItemAbort; + class loadItemCallback; + class loadMagazine; + class loadMagazineCallback; + class loadMagazineRemote; + class openLoadUI; + class openMagazineMenu; + class openUnloadUI; + class remainingSpace; + class unloadItem; + class unloadItemCallback; + class spawnObject; + }; + }; + class AGM_Drag { + class AGM_Drag { + file="\AGM_Logistics\functions\Drag"; + class initialise{postInit = 1;}; + class makeDraggable; + class makeUndraggable; + class dragObject; + class releaseObject; + class isDraggingObject; + class handleScrollWheel; + class isDraggable; + class GetWeight; + class isCarryable; + class isCarryingObject; + class carryJerrycan; + class dropJerrycan; + }; + }; + class AGM_Repair { + class AGM_Repair { + file = "\AGM_Logistics\functions\Repair"; + class canRemoveWheel; + class canRepair; + class canRepairTrack; + class canRepairWheel; + class checkVehicle; + class checkVehicleCallback; + class getHitPointName; + class getNearestRepairer; + class getNearestTrack; + class getNearestWheel; + class module; + class openSelectWheelUI; + class openSelectWheelUI_Salvage; + class removeWheel; + class removeWheelAbort; + class removeWheelCallback; + class repair; + class repairAbort; + class repairCallback; + class repairTrack; + class repairTrackAbort; + class repairTrackCallback; + class repairWheel; + class repairWheelAbort; + class repairWheelCallback; + class setDamage; + class setHitPointDamage; + }; + }; + class AGM_StaticWeapons { + class AGM_StaticWeapons { + file = "\AGM_Logistics\functions\StaticWeapons"; + class canGetIn; + class canRotate; + class getIn; + class rotate; + }; + }; + class AGM_UAVs { + class AGM_UAVs { + file = "\AGM_Logistics\functions\UAVs"; + class refuel; + class refuelCallback; + }; + }; + class AGM_Wirecutter { + class AGM_Wirecutter { + file = "\AGM_Logistics\functions\Wirecutter"; + class cutDownFence; + class cutDownFenceAbort; + class cutDownFenceCallback; + }; + }; + class AGM_Resupply { + class AGM_Resupply { + file = "\AGM_Logistics\functions\Resupply"; + class getFuelAmount; + class getFuelAmountCallback; + class getFuelAmountCargo; + class getFuelAmountCargoCallback; + class getFuelAmountJerrycan; + class getNearestRefueler; + class canDrainFuel; + class canDrainFuelCargo; + class canRefuel; + class canRefuelCargo; + class drainFuel; + class drainFuelCallback; + class drainFuelCargo; + class drainFuelCargoCallback; + class refuelVehicle; + class refuelVehicleCallback; + class refuelVehicleCargo; + class refuelVehicleCargoCallback; + }; + }; + class AGM_Paradrop { + class AGM_Paradrop { + file = "\AGM_Logistics\functions\Paradrop"; + class paradrop; + }; + }; + class AGM_Fortifications { + class AGM_Fortifications { + file = "\AGM_Logistics\functions\Fortifications"; + class initialise{postInit = 1;}; + class canSetupBarrier; + class setupApprove; + class setupBarrier; + class setupCancel; + class openSelectBarrierlUI; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Logistics { + serverInit = "call compile preprocessFileLineNumbers '\AGM_Logistics\serverInit.sqf'"; + }; +}; + +// Drop carried item if the unit enters a vehicle, dies or assembles or disassembels a weapon +class Extended_GetIn_EventHandlers { + class AllVehicles { + class AGM_DropItem { + clientGetIn = "if (player == _this select 2) then {(_this select 2) call AGM_Drag_fnc_releaseObject}"; + }; + }; +}; +class Extended_Killed_EventHandlers { + class CAManBase { + class AGM_DropItem { + clientKilled = "if (player == _this select 0) then {(_this select 0) call AGM_Drag_fnc_releaseObject}"; + }; + }; +}; +class Extended_WeaponAssembled_EventHandlers { + class CAManBase { + class AGM_DropItem { + clientWeaponAssembled = "if (player == _this select 0) then {(_this select 0) call AGM_Drag_fnc_releaseObject}"; + }; + }; +}; +class Extended_WeaponDisassembled_EventHandlers { + class CAManBase { + class AGM_DropItem { + clientWeaponDisassembled = "if (player == _this select 0) then {(_this select 0) call AGM_Drag_fnc_releaseObject}"; + }; + }; +}; + +class AGM_Core_canInteractConditions { + class AGM_Drag_isNotDragging { + condition = "!(_player getVariable ['AGM_isDragging', false])"; + }; +}; + +class CfgAddons { + class AGM_Repair_Items { + list[] = {"AGM_Repair_Track", "AGM_Repair_Wheel"}; + }; +}; + +class CfgSounds { + class AGM_Wirecutter_sound { + name = "AGM_wirecutter_sound"; + sound[] = {"AGM_Logistics\sound\wire_cut.ogg", "db-0", 1}; + titles[] = {}; + }; + class AGM_Wirecutter_sound_long { + name = "AGM_wirecutter_sound_long"; + sound[] = {"AGM_Logistics\sound\wire_cut_long.ogg", "db-0", 1}; + titles[] = {}; + }; +}; + +#include + +class CfgVehicleClasses { + class AGM_Repair_Items { + displayName = "AGM"; + }; +}; + +#include + +class CfgVehicles { + class Man; + class CAManBase: Man { + class AGM_SelfActions { + // Sometimes it is not possible to target an object that you are dragging + // particularly noticeable on Stratis on the dock wall. + // Adding a self option to release will fix this. + class AGM_ReleaseItemSelf { + displayName = "$STR_AGM_Drag_EndDrag"; + condition = "player call AGM_Drag_fnc_isDraggingObject"; + statement = "player call AGM_Drag_fnc_releaseObject"; + exceptions[] = {"AGM_Drag_isNotDragging"}; + showDisabled = 0; + priority = 2.1; + hotkey = "R"; + }; + MACRO_CHECKFUEL + }; + }; + + class LandVehicle; + class Car: LandVehicle { + AGM_Vehicle_Cargo = 4; + class AGM_Actions { + MACRO_UNLOAD + MACRO_REFUEL + }; + }; + class Tank: LandVehicle { + AGM_Vehicle_Cargo = 4; + class AGM_Actions { + MACRO_UNLOAD + MACRO_REFUEL + MACRO_RELOAD_MAGS + }; + }; + + // Repair wheeled vehicles + class Car_F: Car { + KEY_WHEEL_4X4 + class HitPoints; // @todo + AGM_fuelCapacity = 60; // in liter. + class AGM_Actions: AGM_Actions { + class AGM_Repair { + displayName = "$STR_AGM_Repair"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = ""; + showDisabled = 1; + priority = 1.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + subMenu[] = {"AGM_Repair", 0}; + + class AGM_Repair_checkVehicle { + displayName = "$STR_AGM_Repair_checkVehicle"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = "[AGM_Interaction_Target] call AGM_Repair_fnc_checkVehicle"; + showDisabled = 1; + priority = 1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Wheels { + displayName = "$STR_AGM_Repair_RepairWheel"; + distance = 4; + condition = "[AGM_Interaction_Target, ['HitLFWheel', 'HitLBWheel', 'HitLMWheel', 'HitLF2Wheel', 'HitRFWheel', 'HitRBWheel', 'HitRMWheel', 'HitRF2Wheel']] call AGM_Repair_fnc_canRepairWheel"; + statement = "[AGM_Interaction_Target, ['HitLFWheel', 'HitLBWheel', 'HitLMWheel', 'HitLF2Wheel', 'HitRFWheel', 'HitRBWheel', 'HitRMWheel', 'HitRF2Wheel']] call AGM_Repair_fnc_openSelectWheelUI"; + showDisabled = 1; + priority = 0.9; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Remove_Wheels { + displayName = "$STR_AGM_Repair_RemoveWheel"; + distance = 4; + condition = "[AGM_Interaction_Target, ['HitLFWheel', 'HitLBWheel', 'HitLMWheel', 'HitLF2Wheel', 'HitRFWheel', 'HitRBWheel', 'HitRMWheel', 'HitRF2Wheel']] call AGM_Repair_fnc_canRemoveWheel"; + statement = "[AGM_Interaction_Target, ['HitLFWheel', 'HitLBWheel', 'HitLMWheel', 'HitLF2Wheel', 'HitRFWheel', 'HitRBWheel', 'HitRMWheel', 'HitRF2Wheel']] call AGM_Repair_fnc_openSelectWheelUI_Salvage"; + showDisabled = 1; + priority = 0.8; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Body { + displayName = "$STR_AGM_Repair_HitBody"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitBody'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitBody'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Engine { + displayName = "$STR_AGM_Repair_HitEngine"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Fuel { + displayName = "$STR_AGM_Repair_HitFuel"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.3; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Gun { + displayName = "$STR_AGM_Repair_HitGun"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitGun'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitGun'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.2; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Turret { + displayName = "$STR_AGM_Repair_HitTurret"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitTurret'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitTurret'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + }; + }; + }; + class Kart_01_Base_F: Car_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_KART; + }; + class MRAP_01_base_F: Car_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_MATV; + }; + class MRAP_02_base_F: Car_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_PUNISHER; + }; + class MRAP_03_base_F: Car_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_FENNEK; + }; + class Quadbike_01_base_F: Car_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_QUAD; + }; + class Offroad_01_base_f: Car_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_OFFROARD; + }; + class UGV_01_base_F: Car_F { + KEY_WHEEL_6X6_STOMPER + }; + + class Truck_F: Car_F { + AGM_Vehicle_Cargo = 8; + KEY_WHEEL_6X6_REAR + class HitPoints: HitPoints { // @todo + class HitLFWheel; + class HitLBWheel; + class HitLMWheel; + class HitLF2Wheel; + class HitRFWheel; + class HitRBWheel; + class HitRMWheel; + class HitRF2Wheel; + }; + AGM_fuelCapacity = 240; // in liter. + class AGM_Actions; + }; + class Wheeled_APC_F: Car_F { + KEY_WHEEL_6X6_REAR + AGM_fuelCapacity = 600; // in liter. + }; + + // Repair tracked vehicles + class Tank_F: Tank { + AGM_fuelCapacity = 1500; // in liter. + class AGM_Actions: AGM_Actions { + class AGM_Repair { + displayName = "$STR_AGM_Repair"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = ""; + showDisabled = 1; + priority = 1.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + subMenu[] = {"AGM_Repair", 0}; + + class AGM_Repair_checkVehicle { + displayName = "$STR_AGM_Repair_checkVehicle"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = "[AGM_Interaction_Target] call AGM_Repair_fnc_checkVehicle"; + showDisabled = 1; + priority = 1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Hull { + displayName = "$STR_AGM_Repair_HitHull"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_LTrack { + displayName = "$STR_AGM_Repair_HitLTrack"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitLTrack'] call AGM_Repair_fnc_canRepairTrack"; + statement = "[AGM_Interaction_Target, 'HitLTrack'] call AGM_Repair_fnc_repairTrack"; + showDisabled = 0; + priority = 0.42; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_RTrack { + displayName = "$STR_AGM_Repair_HitRTrack"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitRTrack'] call AGM_Repair_fnc_canRepairTrack"; + statement = "[AGM_Interaction_Target, 'HitRTrack'] call AGM_Repair_fnc_repairTrack"; + showDisabled = 0; + priority = 0.41; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Engine { + displayName = "$STR_AGM_Repair_HitEngine"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + /*class AGM_Repair_Fuel { + displayName = "$STR_AGM_Repair_HitFuel"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.3; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + };*/ + class AGM_Repair_Gun { + displayName = "$STR_AGM_Repair_HitGun"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitGun'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitGun'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.2; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Turret { + displayName = "$STR_AGM_Repair_HitTurret"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitTurret'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitTurret'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + }; + }; + }; + class MBT_01_base_F: Tank_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_MERKAVA; + }; + class MBT_02_base_F: Tank_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_T100; + }; + class MBT_03_base_F: Tank_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_LEOPARD; + }; + + class Air; + // Repair helicopters + class Helicopter: Air { + AGM_Paradrop = 0; + AGM_fuelCapacity = 240; // in liter. + AGM_Vehicle_Cargo = 8; + class AGM_Actions { + MACRO_UNLOAD + MACRO_REFUEL + MACRO_RELOAD_MAGS + class AGM_Repair { + displayName = "$STR_AGM_Repair"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = ""; + showDisabled = 1; + priority = 1.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + subMenu[] = {"AGM_Repair", 0}; + + class AGM_Repair_checkVehicle { + displayName = "$STR_AGM_Repair_checkVehicle"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = "[AGM_Interaction_Target] call AGM_Repair_fnc_checkVehicle"; + showDisabled = 1; + priority = 1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Body { + displayName = "$STR_AGM_Repair_HitHull"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Engine { + displayName = "$STR_AGM_Repair_HitEngine"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Fuel { + displayName = "$STR_AGM_Repair_HitFuel"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.3; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Avionics { + displayName = "$STR_AGM_Repair_HitAvionics"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitAvionics'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitAvionics'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.2; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_HRotor { + displayName = "$STR_AGM_Repair_HitHRotor"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitHRotor'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitHRotor'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.15; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_VRotor { + displayName = "$STR_AGM_Repair_HitVRotor"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitVRotor'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitVRotor'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + }; + }; + class AGM_SelfActions { + MACRO_PARADROP + }; + }; + + class Heli_Transport_02_base_F; + class I_Heli_Transport_02_F : Heli_Transport_02_base_F { + AGM_Vehicle_Cargo = 20; + AGM_Paradrop = 1; + }; + + // Repair fixed wing aircraft + class Plane: Air { + AGM_Paradrop = 0; + AGM_fuelCapacity = 600; // in liter. + AGM_Vehicle_Cargo = 4; + class AGM_Actions { + MACRO_UNLOAD + MACRO_REFUEL + MACRO_RELOAD_MAGS + class AGM_Repair { + displayName = "$STR_AGM_Repair"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = ""; + showDisabled = 1; + priority = 1.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + subMenu[] = {"AGM_Repair", 0}; + + class AGM_Repair_checkVehicle { + displayName = "$STR_AGM_Repair_checkVehicle"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = "[AGM_Interaction_Target] call AGM_Repair_fnc_checkVehicle"; + showDisabled = 1; + priority = 1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Body { + displayName = "$STR_AGM_Repair_HitHull"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + /*class AGM_Repair_Engine { + displayName = "$STR_AGM_Repair_HitEngine"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Fuel { + displayName = "$STR_AGM_Repair_HitFuel"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.3; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Avionics { + displayName = "$STR_AGM_Repair_HitAvionics"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitAvionics'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitAvionics'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.2; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + };*/ + }; + }; + }; + + // boats + class Ship; + class Ship_F: Ship { + AGM_fuelCapacity = 40; // in liter. + AGM_Vehicle_Cargo = 4; + + class AGM_Actions { + MACRO_UNLOAD + MACRO_REFUEL + class AGM_Repair { + displayName = "$STR_AGM_Repair"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = ""; + showDisabled = 1; + priority = 1.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + subMenu[] = {"AGM_Repair", 0}; + + class AGM_Repair_checkVehicle { + displayName = "$STR_AGM_Repair_checkVehicle"; + distance = 4; + condition = "alive AGM_Interaction_Target"; + statement = "[AGM_Interaction_Target] call AGM_Repair_fnc_checkVehicle"; + showDisabled = 1; + priority = 1; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Body { + displayName = "$STR_AGM_Repair_HitHull"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitHull'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Engine { + displayName = "$STR_AGM_Repair_HitEngine"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitEngine'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.4; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + class AGM_Repair_Fuel { + displayName = "$STR_AGM_Repair_HitFuel"; + distance = 4; + condition = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_canRepair"; + statement = "[AGM_Interaction_Target, 'HitFuel'] call AGM_Repair_fnc_repair"; + showDisabled = 0; + priority = 0.3; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + }; + }; + }; + + // Static weapons + class StaticWeapon: LandVehicle { + AGM_Size = 2; // 1 = small, 2 = large + class AGM_Actions { + MACRO_DRAGABLE + MACRO_GETIN_STATIC + MACRO_LOADABLE + }; + }; + + //remove actions from Taru Pods + class Pod_Heli_Transport_04_base_F: StaticWeapon { + class AGM_Actions: AGM_Actions { + MACRO_NOT_DRAGABLE + MACRO_NOT_GETINABLE_STATIC + MACRO_NOT_LOADABLE + }; + }; + + class StaticMortar; + class Mortar_01_base_F: StaticMortar { + AGM_Size = 2; // 1 = small, 2 = large + class AGM_Actions { + MACRO_DRAGABLE + MACRO_GETIN_STATIC + MACRO_LOADABLE + }; + }; + + // Ammo boxes + class ThingX; + class ReammoBox_F: ThingX { + AGM_Size = 2; // 1 = small, 2 = large + AGM_CarryPosition[] = {0,1,1}; // offset from player to attach object. + class AGM_Actions { + MACRO_LOADABLE + }; + }; + + class Slingload_base_F: ReammoBox_F { + class AGM_Actions: AGM_Actions { + MACRO_NOT_LOADABLE + }; + }; + + class EAST_Box_Base: ReammoBox_F { + class AGM_Actions: AGM_Actions { + MACRO_DRAGABLE + }; + }; + class IND_Box_Base: ReammoBox_F { + class AGM_Actions: AGM_Actions { + MACRO_DRAGABLE + }; + }; + /*class FIA_Box_Base_F: ReammoBox_F { + class AGM_Actions: AGM_Actions { + MACRO_DRAGABLE + }; + };*/ + class NATO_Box_Base: ReammoBox_F { + class AGM_Actions: AGM_Actions { + MACRO_DRAGABLE + }; + }; + // Remove Larger crate dragging support. + // Would be better to allow some sort of joint push/drag functionality + // Requiring 2 units to access the larger crates and attaching them together (a crappy method of doing it) + // in order to move the bigger ones. Currently simply remove support. + // I believe these crates are currently broken (hitbox doesn't work or something) in 1.22 (2014-07-04) + class Box_East_AmmoVeh_F: EAST_Box_Base { + //transportAmmo = 30000; + class AGM_Actions: AGM_Actions { + MACRO_NOT_DRAGABLE + }; + }; + class Box_NATO_AmmoVeh_F: NATO_Box_Base { + //transportAmmo = 30000; + class AGM_Actions: AGM_Actions { + MACRO_NOT_DRAGABLE + }; + }; + class Box_IND_AmmoVeh_F: IND_Box_Base { + //transportAmmo = 30000; + class AGM_Actions: AGM_Actions { + MACRO_NOT_DRAGABLE + }; + }; + + class Helicopter_Base_F; + class UAV_01_base_F: Helicopter_Base_F { + class AGM_Actions { + MACRO_DRAGABLE + MACRO_REFUEL_UAV + }; + }; + + // New Items + class Land_CanisterFuel_F; + class AGM_JerryCan: Land_CanisterFuel_F { + author = "$STR_AGM_Core_AGMTeam"; + AGM_Size = 1; // 1 = small, 2 = large + class AGM_Actions { + MACRO_LOADABLE + MACRO_CARRYJERRYCAN + }; + icon = "iconObject_circle"; + displayName = "$STR_AGM_Repair_JerryCan"; + mapSize = 0.7; + accuracy = 0.2; + vehicleClass = "AGM_Repair_Items"; + destrType = "DesturctNo"; + }; + + class AGM_SpareTrack: ThingX { + author = "Hawkins"; + AGM_Size = 1; // 1 = small, 2 = large + AGM_CarryPosition[] = {0,1,1}; // offset from player to attach object. + scope = 2; + model = "\AGM_Logistics\agm_track.p3d"; + icon = "iconObject_circle"; + displayName = "$STR_AGM_Repair_SpareTrack"; + mapSize = 0.7; + accuracy = 0.2; + vehicleClass = "AGM_Repair_Items"; + destrType = "DesturctNo"; + + class AGM_Actions { + MACRO_DRAGABLE + MACRO_LOADABLE + }; + }; + + class AGM_SpareWheel: ThingX { + author = "Hawkins"; + AGM_Size = 1; // 1 = small, 2 = large + AGM_CarryPosition[] = {0,1,1}; // offset from player to attach object. + scope = 2; + model = "\AGM_Logistics\agm_wheel.p3d"; + icon = "iconObject_circle"; + displayName = "$STR_AGM_Repair_SpareWheel"; + mapSize = 0.7; + accuracy = 0.2; + vehicleClass = "AGM_Repair_Items"; + destrType = "DesturctNo"; + picture = "\AGM_Logistics\ui\tire_ca.paa"; + + class AGM_Actions { + MACRO_DRAGABLE + MACRO_LOADABLE + }; + }; + + class Land_WoodenBox_F; + class AGM_SandbagBarrier_Crate: Land_WoodenBox_F { + author = "$STR_AGM_Core_AGMTeam"; + AGM_Size = 1; // 1 = small, 2 = large + AGM_CarryPosition[] = {0,1,1}; // offset from player to attach object. + icon = "iconObject_circle"; + displayName = "$STR_AGM_Fortifications_SandbagBarrierCrate"; + mapSize = 0.7; + accuracy = 0.2; + vehicleClass = "AGM_Repair_Items"; + destrType = "DesturctNo"; + class AGM_Actions { + MACRO_DRAGABLE + MACRO_LOADABLE + class AGM_PlaceFortification { + displayName = "Place Fortification"; + distance = 4; + condition = "[player, AGM_Interaction_Target, ['Land_BagFence_Long_F', 'Land_BagFence_Round_F']] call AGM_Fortifications_fnc_canSetupBarrier"; + statement = "[player, AGM_Interaction_Target, ['Land_BagFence_Long_F', 'Land_BagFence_Round_F']] call AGM_Fortifications_fnc_openSelectBarrierlUI"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + }; + }; + class AGM_RazorWire_Crate: AGM_SandbagBarrier_Crate { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "$STR_AGM_Fortifications_RazorWireCrate"; + class AGM_Actions: AGM_Actions { + class AGM_PlaceFortification { + displayName = "Place Fortification"; + distance = 4; + condition = "[player, AGM_Interaction_Target, 'Land_Razorwire_F'] call AGM_Fortifications_fnc_canSetupBarrier"; + statement = "[player, AGM_Interaction_Target, 'Land_Razorwire_F'] call AGM_Fortifications_fnc_setupBarrier"; + showDisabled = 0; + priority = 0.5; + icon = "\A3\ui_f\data\igui\cfg\actions\repair_ca.paa"; + }; + }; + }; + + // Misc box content + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + class _xx_AGM_UAVBattery { + count = 6; + name = "AGM_UAVBattery"; + }; + }; + }; + + // wire cutter + class Wall_F; + class Land_Net_Fence_4m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_Net_Fence_8m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE_LONG + }; + }; + class Land_Net_FenceD_8m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_New_WiredFence_5m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_New_WiredFence_10m_Dam_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_New_WiredFence_10m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE_LONG + }; + }; + class Land_Pipe_fence_4m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_Pipe_fence_4mNoLC_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_SportGround_fence_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_Wired_Fence_4m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_Wired_Fence_4mD_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + class Land_Wired_Fence_8m_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE_LONG + }; + }; + class Land_Wired_Fence_8mD_F: Wall_F { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + + class NonStrategic; + class Land_Razorwire_F: NonStrategic { + class AGM_Actions { + MACRO_CUTWIRE + }; + }; + + // disable default arma refueling and repair + class House_Small_F; + class Land_FuelStation_Feed_F: House_Small_F { + class AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = 50000; + transportFuel = 0; + }; + class Land_fs_feed_F: House_Small_F { + class AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = 50000; + transportFuel = 0; + }; + + // APC + class APC_Wheeled_01_base_F: Wheeled_APC_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_PATRIA; + + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLMWheel", "HitRMWheel", "HitLBWheel", "HitRBWheel"}; + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLF2Wheel, STR_AGM_Repair_HitRF2Wheel, STR_AGM_Repair_HitLMWheel, STR_AGM_Repair_HitRMWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + }; + class APC_Wheeled_02_base_F: Wheeled_APC_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_ARMA; + }; + class APC_Wheeled_03_base_F: Wheeled_APC_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_PANDUR; + + AGM_Wheels[] = {"HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLMWheel", "HitRMWheel", "HitLBWheel", "HitRBWheel"}; + AGM_WheelsLocalized[] = {STR_AGM_Repair_HitLFWheel, STR_AGM_Repair_HitRFWheel, STR_AGM_Repair_HitLF2Wheel, STR_AGM_Repair_HitRF2Wheel, STR_AGM_Repair_HitLMWheel, STR_AGM_Repair_HitRMWheel, STR_AGM_Repair_HitLBWheel, STR_AGM_Repair_HitRBWheel}; + }; + class APC_Tracked_01_base_F: Tank_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_NAMER; + }; + class B_APC_Tracked_01_base_F: APC_Tracked_01_base_F { + class AGM_Actions; + }; + class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_canRepair = 1; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_CRV; + transportRepair = 0; + transportFuel = 0; + }; + class APC_Tracked_02_base_F: Tank_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_BMP; + }; + class APC_tracked_03_base_F: Tank_F { + AGM_fuelCapacity = AGM_FUELCAPACITY_WARRIOR; + }; + + // Trucks BLU + class Truck_01_base_F: Truck_F { + KEY_WHEEL_8X8 + AGM_fuelCapacity = AGM_FUELCAPACITY_HEMTT; + class AGM_Actions; + }; + class B_Truck_01_transport_F: Truck_01_base_F { + /*class AGM_Load { @todo + class MidLoad { + displayName = "Middle of truck"; + loadSize = 2; // Size of object, 1 = small, 2 = large + LoadPosition[]={0.05,-4,-0.6}; // Offset when attaching. + memoryPoint = "exhaustEnd"; // the memory position on the vehicle to use for the attaching and offset. + }; + UnLoadPosition[]={0,-6,-1.0}; // Position objects will be unloaded to. modelToWorld offset. + };*/ + }; + class B_Truck_01_mover_F: B_Truck_01_transport_F {}; + class B_Truck_01_Repair_F: B_Truck_01_mover_F { + AGM_canRepair = 1; + transportRepair = 0; + }; + class B_Truck_01_fuel_F: B_Truck_01_mover_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_HEMTT; + transportFuel = 0; + }; + /*class B_Truck_01_ammo_F: B_Truck_01_mover_F { + transportAmmo = 30000; + };*/ + + // Trucks INDEP + class Truck_02_base_F: Truck_F { + KEY_WHEEL_6X6_REAR_KAMAZ + AGM_fuelCapacity = AGM_FUELCAPACITY_KAMAZ; + class AGM_Actions: AGM_Actions {}; + }; + class O_Truck_02_box_F: Truck_02_base_F { // this is the repair variant because fuck naming conventions + AGM_canRepair = 1; + transportRepair = 0; + }; + class O_Truck_02_medical_F: O_Truck_02_box_F { // medic inherits from repairer + AGM_canRepair = 0; + }; + class O_Truck_02_fuel_F: Truck_02_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_KAMAZ; + transportFuel = 0; + }; + /*class O_Truck_02_ammo_F: Truck_02_base_F { + transportAmmo = 30000; + };*/ + class I_Truck_02_box_F: Truck_02_base_F { // this is the repair variant because fuck naming conventions + AGM_canRepair = 1; + transportRepair = 0; + }; + class I_Truck_02_medical_F: I_Truck_02_box_F { // medic inherits from repairer + AGM_canRepair = 0; + }; + class I_Truck_02_fuel_F: Truck_02_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_KAMAZ; + transportFuel = 0; + }; + /*class I_Truck_02_ammo_F: Truck_02_base_F { + transportAmmo = 30000; + };*/ + + // Trucks RED + class Truck_03_base_F: Truck_F { + KEY_WHEEL_6X6_FRONT + AGM_fuelCapacity = AGM_FUELCAPACITY_TYPHOON; + // @todo delete extra hit points + /*class HitPoints: HitPoints { + class HitLFWheel: HitLFWheel {}; + class HitLF2Wheel: HitLF2Wheel {}; + delete HitLMWheel; + class HitLBWheel: HitLBWheel {}; + class HitRFWheel: HitRFWheel {}; + class HitRF2Wheel: HitRF2Wheel {}; + delete HitRMWheel; + class HitRBWheel: HitRBWheel {}; + };*/ + class AGM_Actions: AGM_Actions {}; + }; + class O_Truck_03_repair_F: Truck_03_base_F { + AGM_canRepair = 1; + transportRepair = 0; + }; + class O_Truck_03_fuel_F: Truck_03_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_TYPHOON; + transportFuel = 0; + }; + /*class O_Truck_03_ammo_F: Truck_03_base_F { + transportAmmo = 30000; + };*/ + + // Trucks CIV + class Van_01_base_F: Truck_F { + KEY_WHEEL_4X4 + AGM_fuelCapacity = AGM_FUELCAPACITY_VAN; + class AGM_Actions: AGM_Actions {}; + }; + class I_G_Van_01_fuel_F: Van_01_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_VAN; + transportFuel = 0; + }; + class C_Van_01_fuel_F: Van_01_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_VAN; + transportFuel = 0; + }; + + // heli addon + class Helicopter_Base_H; + class Heli_Transport_04_base_F: Helicopter_Base_H { + class AGM_Actions; + }; + class O_Heli_Transport_04_fuel_F: Heli_Transport_04_base_F { + class AGM_Actions: AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_SKYCRANE; + transportFuel = 0; + }; + class O_Heli_Transport_04_repair_F: Heli_Transport_04_base_F { + AGM_canRepair = 1; + transportRepair = 0; + }; + // Fuel tanks + class CargoNet_01_base_F; + class CargoNet_01_barrels_F:CargoNet_01_base_F { + class AGM_Actions{ + MACRO_REFUELCARGO + MACRO_LOADABLE + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_4BARREL; + }; + class Items_Base_F; + class Land_MetalBarrel_F:Items_Base_F { + class AGM_Actions { + MACRO_REFUELCARGO + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_BARREL; + }; + class Slingload_01_Base_F; + class B_Slingload_01_Fuel_F:Slingload_01_Base_F { + class AGM_Actions { + MACRO_REFUELCARGO + MACRO_LOADABLE + }; + AGM_fuelCapacityCargo = AGM_FUELCAPACITYCARGO_ISOCONT; + transportFuel = 0; + }; + //Hawkeye104 AGM Repair Module + class Module_F; + class AGM_ModuleRepair: Module_F { + author = "Hawkeye104"; + category = "AGM"; + displayName = "Repair System"; + function = "AGM_Repair_fnc_module"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Logistics\UI\Icon_Module_Repair_ca.paa"; + class Arguments { + //Time to repair heavy damage e.g. engine, fuel line, body + class TimeRepair { + displayName = "Heavy Repair Time"; + description = "Time to repair engine/turret/body/fuel components (in seconds). Default: 10"; + typeName = "NUMBER"; + defaultValue = 10; + }; + //Time to replace a wheel + class TimeWheelRepair { + displayName = "Wheel Replace Time"; + description = "Time to replace a wheel (in seconds). Default: 10"; + typeName = "NUMBER"; + defaultValue = 10; + }; + //Time to replace a track + class TimeTrackRepair { + displayName = "Track Replace Time"; + description = "Time to replace a track (in seconds). Default: 10"; + typeName = "NUMBER"; + defaultValue = 10; + }; + //Maximum damage that can be repaired + //See Logistics\functions\Repair\fn_repairCallback.sqf + class MaxDamageRepair { + displayName = "Maximum Repaired Damage"; + description = "Limits the amount of damage that can be repaired. 0 = Repair all damage, 1 = Cannot repair any damage. Decimal Value. Default: 0"; + typeName = "NUMBER"; + defaultValue = 0; + }; + }; + }; +}; + +// Handle vehicle magazines +class CfgMagazines { + class CA_LauncherMagazine; + class Titan_AA: CA_LauncherMagazine { + AGM_LoadTime = 10; + AGM_MagazineReloadType = 1; + }; + + class Titan_AP: Titan_AA { + }; + + class Titan_AT: Titan_AA { + }; +}; + +class CfgWeapons { + class MissileLauncher; + class missiles_titan: MissileLauncher { + AGM_Magazines[] = {"Titan_AA"}; + }; + + class ItemCore; + class InventoryItem_Base_F; + class ToolKitItem; + + // disable default arma repair + class ToolKit: ItemCore { + type = 4; + detectRange = -1; + simulation = "ItemMineDetector"; + class ItemInfo: ToolKitItem { + mass = 80; + type = 201; + }; + }; + + class AGM_ItemCore; + class AGM_UAVBattery: AGM_ItemCore { + scope = 2; + displayName = "$STR_AGM_UAVs_Battery_Name"; + descriptionShort = "$STR_AGM_UAVs_Battery_Description"; + model = "\AGM_Logistics\agm_battery.p3d"; + picture = "\AGM_Logistics\ui\AGM_battery.paa"; + class ItemInfo: InventoryItem_Base_F { + mass = 20; + }; + }; +}; + +class AGM_Parameters_Numeric { + AGM_Repair_TimeRepair = 10; + AGM_Repair_TimeWheelRepair = 10; + AGM_Repair_TimeTrackRepair = 10; + AGM_Repair_MaxDamageRepair = 0; +}; + +#include diff --git a/TO_MERGE/agm/Logistics/data/battery.rvmat b/TO_MERGE/agm/Logistics/data/battery.rvmat new file mode 100644 index 0000000000..88e2fd06f2 --- /dev/null +++ b/TO_MERGE/agm/Logistics/data/battery.rvmat @@ -0,0 +1,79 @@ +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.01,0.01,0.01,1}; //amount of glossiness - the higher the number, the higher the glossiness +specularPower=500; //area of glossiness - the higher the number, the smaller the area +PixelShaderID="Super"; +VertexShaderID="Super"; + +class Stage1 { + texture="AGM_Logistics\data\battery_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 { + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,mc)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 { + texture="AGM_Logistics\data\default_as.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,1}; + }; +}; +class Stage5 { + texture="AGM_Logistics\data\battery_smdi.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 { + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage7 { + texture="a3\data_f\env_land_ca.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/TO_MERGE/agm/Logistics/data/battery_co.paa b/TO_MERGE/agm/Logistics/data/battery_co.paa new file mode 100644 index 0000000000..14abfa75b0 Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/battery_co.paa differ diff --git a/TO_MERGE/agm/Logistics/data/battery_nohq.paa b/TO_MERGE/agm/Logistics/data/battery_nohq.paa new file mode 100644 index 0000000000..11b7e6e14d Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/battery_nohq.paa differ diff --git a/TO_MERGE/agm/Logistics/data/battery_smdi.paa b/TO_MERGE/agm/Logistics/data/battery_smdi.paa new file mode 100644 index 0000000000..85ea45371f Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/battery_smdi.paa differ diff --git a/TO_MERGE/agm/Logistics/data/default_as.paa b/TO_MERGE/agm/Logistics/data/default_as.paa new file mode 100644 index 0000000000..b7efce459b Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/default_as.paa differ diff --git a/TO_MERGE/agm/Logistics/data/default_nohq.paa b/TO_MERGE/agm/Logistics/data/default_nohq.paa new file mode 100644 index 0000000000..fc53cf83b2 Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/default_nohq.paa differ diff --git a/TO_MERGE/agm/Logistics/data/default_smdi.paa b/TO_MERGE/agm/Logistics/data/default_smdi.paa new file mode 100644 index 0000000000..22e365f422 Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/default_smdi.paa differ diff --git a/TO_MERGE/agm/Logistics/data/track.rvmat b/TO_MERGE/agm/Logistics/data/track.rvmat new file mode 100644 index 0000000000..38528b54fe --- /dev/null +++ b/TO_MERGE/agm/Logistics/data/track.rvmat @@ -0,0 +1,79 @@ +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.01,0.01,0.01,1}; //amount of glossiness - the higher the number, the higher the glossiness +specularPower=500; //area of glossiness - the higher the number, the smaller the area +PixelShaderID="Super"; +VertexShaderID="Super"; + +class Stage1 { + texture="AGM_Logistics\data\default_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 { + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,mc)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 { + texture="AGM_Logistics\data\default_as.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,1}; + }; +}; +class Stage5 { + texture="AGM_Logistics\data\default_smdi.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 { + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage7 { + texture="a3\data_f\env_land_ca.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/TO_MERGE/agm/Logistics/data/track_co.paa b/TO_MERGE/agm/Logistics/data/track_co.paa new file mode 100644 index 0000000000..7a00514e0b Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/track_co.paa differ diff --git a/TO_MERGE/agm/Logistics/data/wheel.rvmat b/TO_MERGE/agm/Logistics/data/wheel.rvmat new file mode 100644 index 0000000000..ab09ea65ae --- /dev/null +++ b/TO_MERGE/agm/Logistics/data/wheel.rvmat @@ -0,0 +1,79 @@ +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.01,0.01,0.01,1}; //amount of glossiness - the higher the number, the higher the glossiness +specularPower=500; //area of glossiness - the higher the number, the smaller the area +PixelShaderID="Super"; +VertexShaderID="Super"; + +class Stage1 { + texture="AGM_Logistics\data\wheel_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 { + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,mc)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 { + texture="AGM_Logistics\data\default_as.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,1}; + }; +}; +class Stage5 { + texture="AGM_Logistics\data\default_smdi.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 { + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage7 { + texture="a3\data_f\env_land_ca.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/TO_MERGE/agm/Logistics/data/wheel_co.paa b/TO_MERGE/agm/Logistics/data/wheel_co.paa new file mode 100644 index 0000000000..aec7556509 Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/wheel_co.paa differ diff --git a/TO_MERGE/agm/Logistics/data/wheel_nohq.paa b/TO_MERGE/agm/Logistics/data/wheel_nohq.paa new file mode 100644 index 0000000000..4a8efb5720 Binary files /dev/null and b/TO_MERGE/agm/Logistics/data/wheel_nohq.paa differ diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_GetWeight.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_GetWeight.sqf new file mode 100644 index 0000000000..0bb036e592 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_GetWeight.sqf @@ -0,0 +1,48 @@ +/* + Name: AGM_Drag_fnc_GetWeight + + Author(s): + L-H + + Description: + Returns the weight of a crate. + + Parameters: + OBJECT - Crate to get weight of + + Returns: + NUMBER - Weight + + Example: + _weight = Crate1 call AGM_Drag_fnc_GetWeight; +*/ +private ["_totalWeight", "_fnc","_fnc_Extra"]; +_totalWeight = 0; +_fnc_Extra = { + private ["_weight", "_items"]; + _items = _this select 0; + _weight = 0; + { + _weight = _weight + (getNumber (ConfigFile >> (_this select 1) >> _x >> (_this select 2) >> "mass") * ((_items select 1) select _foreachIndex)); + } foreach (_items select 0); + + _weight +}; +_fnc = { + private ["_weight", "_items"]; + _items = _this select 0; + _weight = 0; + { + _weight = _weight + (getNumber (ConfigFile >> (_this select 1) >> _x >> "mass") * ((_items select 1) select _foreachIndex)); + } foreach (_items select 0); + + _weight +}; +_totalWeight = ([getMagazineCargo _this, "CfgMagazines"] call _fnc); +_totalWeight = _totalWeight + ([getItemCargo _this, "CfgWeapons", "ItemInfo"] call _fnc_Extra); +_totalWeight = _totalWeight + ([getWeaponCargo _this, "CfgWeapons", "WeaponSlotsInfo"] call _fnc_Extra); +_totalWeight = _totalWeight + ([getBackpackCargo _this, "CfgVehicles"] call _fnc); + +_totalWeight = _totalWeight * 0.5; // Mass in Arma isn't an exact amount but rather a volume/weight value. This attempts to work around that by making it a usable value. (sort of). + +_totalWeight diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_HandleScrollWheel.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_HandleScrollWheel.sqf new file mode 100644 index 0000000000..0f46dda453 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_HandleScrollWheel.sqf @@ -0,0 +1,45 @@ +/* + Name: AGM_Drag_fnc_HandleScrollWheel + + Author(s): + L-H + + Description: + Handles raising and lowering the dragged weapon to be able to place it on top of objects. + + Parameters: + Number: Scroll amount + + Returns: + Boolean: Handled or not. + + Example: + 1.2 call AGM_Drag_fnc_HandleScrollWheel; +*/ +#define CLAMP(x,low,high) (if(x > high)then{high}else{if(x < low)then{low}else{x}}) + +private ["_handled", "_z", "_draggedObject"]; +_handled = false; +if (player call AGM_Drag_fnc_isDraggingObject) then { + if (AGM_Modifier > 0) then { + _z = (_this * 0.15); + AGM_Drag_CurrentHeightChange = CLAMP(AGM_Drag_CurrentHeightChange + _z,0,1.755); + if (AGM_Drag_CurrentHeightChange <= 1.75 AND {AGM_Drag_CurrentHeightChange >= 0}) then { + _handled = true; + _draggedObject = player getVariable ["AGM_carriedItem", objNull]; + if (isNull _draggedObject) exitWith {}; + + private ["_pos", "_max"]; + _pos = getPosATL _draggedObject; + _max = (player ModelToWorld [0,0,1.5]) select 2; + _z = (_pos select 2) + _z; + _pos set [2, CLAMP(_z,0,_max)]; + + detach _draggedObject; + _draggedObject setPosATL _pos; + _draggedObject attachTo [player]; + }; + }; +}; + +_handled diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_MakeDraggable.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_MakeDraggable.sqf new file mode 100644 index 0000000000..58950525ff --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_MakeDraggable.sqf @@ -0,0 +1,51 @@ +/* + Name: AGM_Drag_fnc_makeDraggable + + Author(s): + L-H + + Description: + Initialises an object for drag usage. + Ensure it is only run on one client or the server. + + Parameters: + 0: OBJECT - Object (static weapon, crate, etc.) + 1: BOOLEAN - Weight accounting if a crate (Default: true) + + Returns: + Nothing + + Example: + // simply make an object draggable + StaticWeapon2 call AGM_Drag_fnc_makeDraggable; + // make a weapon crate draggable while ignoring its weight + [WeaponCrate,false] call AGM_Drag_fnc_makeDraggable; + + // Ensuring only the server initialises the object in the init for the object + if (isServer) then { + this call AGM_Drag_fnc_makeDraggable; + }; +*/ +private ["_nilTest", "_weightAccount", "_object", "_id"]; +if ((typeName _this) == "ARRAY") then { + _object = (_this select 0); + if (count _this > 1) then { + _weightAccount = (_this select 1); + }; +} else { + _object = _this; + _weightAccount = true; +}; +_nilTest = _object getVariable "AGM_dragActionID"; +if ((isNil "_nilTest") OR {_id == -1}) then { + _object setVariable ["AGM_isUsedBy", objNull, true]; + _object setVariable ["AGM_useWeight", _weightAccount, true]; + _object setVariable ["AGM_disableDrag", false, true]; + _id = [_object, localize "STR_AGM_Drag_StartDrag", 4, {!(player call AGM_Drag_fnc_isDraggingObject) AND {[AGM_Interaction_Target, player] call AGM_Drag_fnc_isDraggable}}, {[AGM_Interaction_Target, player] call AGM_Drag_fnc_dragObject;}, true, 2.2] call AGM_Interaction_fnc_addInteraction; + _object setVariable ["AGM_dragActionID", _id, true]; + _id = _object getVariable ["AGM_releaseActionID", -1]; + if (_id == -1) then { + _id = [_object, localize "STR_AGM_Drag_EndDrag", 4, {(player call AGM_Drag_fnc_isDraggingObject)}, {player call AGM_Drag_fnc_releaseObject;}, false, 2.1] call AGM_Interaction_fnc_addInteraction; + _object setVariable ["AGM_releaseActionID", _id, true]; + }; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_MakeUndraggable.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_MakeUndraggable.sqf new file mode 100644 index 0000000000..fdfc06f562 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_MakeUndraggable.sqf @@ -0,0 +1,38 @@ +/* + Name: AGM_Drag_fnc_makeUndraggable + + Author(s): + L-H + + Description: + Makes an object undraggable. Also reverses the effects of a AGM_Drag_fnc_makeDraggable call. + + Parameters: + 0: OBJECT - Object (static weapon, crate, etc.) + + Returns: + Nothing + + Example: + // Remove drag functionality from an object + [StaticWeapon2] call AGM_Drag_fnc_makeUndraggable; +*/ +private ["_object", "_id"]; +_object = (_this select 0); + +if (_object getVariable ["AGM_inUse", false]) then { + private "_parentObject"; + _parentObject = attachedTo _object; + if (!isNull _parentObject AND {_parentObject call AGM_Drag_fnc_isDraggingObject}) then { + _parentObject call AGM_Drag_fnc_releaseObject; + } else { + _object setVariable ["AGM_isUsedBy", objNull, true]; + }; +}; +_object setVariable ["AGM_disableDrag", true, true]; + +_id = _object getVariable "AGM_dragActionID"; +if (!(isNil "_id") OR {_id != -1}) then { + _object setVariable ["AGM_dragActionID", -1, true]; + [_object, _id] call AGM_Interaction_fnc_removeInteraction; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_carryJerrycan.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_carryJerrycan.sqf new file mode 100644 index 0000000000..cb26cc5d8f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_carryJerrycan.sqf @@ -0,0 +1,49 @@ +// by commy2 + +#define ANIM_CARRY "AmovPercMstpSnonWnonDnon" +#define ATTACH_POINT [0.01, 0, -0.19] + +_this spawn { + _unit = _this select 0; + _target = _this select 1; + + _unit setVariable ["AGM_isDragging", true]; + _unit setVariable ["AGM_carriedItem", _target, true]; + _target setVariable ["AGM_isUsedBy", _unit, true]; + + [_unit, _target, true] call AGM_Core_fnc_claim; + + if (currentWeapon _unit != "" && {currentWeapon _unit == primaryWeapon _unit} && {weaponLowered _unit} && {stance _unit == "STAND"}) then { + [_unit, "amovpercmstpsraswrfldnon"] call AGM_Core_fnc_doAnimation; + }; + _unit action ["SwitchWeapon", _unit, _unit, 99]; + + [_unit, ANIM_CARRY] call AGM_Core_fnc_doAnimation; + waitUntil {animationState _unit == ANIM_CARRY}; + + // exit here if the player releases the jerry can before the animation is finished + if !(_unit getVariable ["AGM_isDragging", false]) exitWith {}; + + _target attachTo [_unit, ATTACH_POINT, "RightHand"]; + [_target, "{_this setDir 273}", _target] call AGM_Core_fnc_execRemoteFnc; // the setPos getPos trick doesn't work for attached objects + + [_unit, "AGM_Logistics", true] call AGM_Core_fnc_setForceWalkStatus; + + _actionID = _unit getVariable ["AGM_Drag_ReleaseActionID", -1]; + + if (_actionID != -1) then { + _unit removeAction _actionID; + }; + _actionID = _unit addAction [format ["%1", localize "STR_AGM_Drag_EndDrag"], "player call AGM_Drag_fnc_releaseObject;", nil, 20, false, true, "","player call AGM_Drag_fnc_isDraggingObject"]; + + _unit setVariable ["AGM_Drag_ReleaseActionID", _actionID]; + + waitUntil { + if (stance _unit != "STAND" || {currentWeapon _unit != ""}) exitWith { + [_unit, _target] call AGM_Drag_fnc_dropJerrycan; + }; + + !(_unit getVariable ["AGM_isDragging", false]) + }; + _unit removeAction (_unit getVariable ["AGM_Drag_ReleaseActionID", -1]); +}; diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_dragObject.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_dragObject.sqf new file mode 100644 index 0000000000..30333372b1 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_dragObject.sqf @@ -0,0 +1,71 @@ +/* + Name: AGM_Drag_fnc_dragObject + + Author(s): + L-H + + Description: + Prepares the passed unit to drag the passed weapon. + + Parameters: + 0: OBJECT - Dragged weapon + 1: OBJECT - Unit dragging + + Returns: + Nothing + + Example: + [StaticWeapon3, player] call AGM_Drag_fnc_dragObject; +*/ + +#define ANIM_CARRY ["amovpercmstpslowwrfldnon_acinpknlmwlkslowwrfldb_2", "amovpercmstpsraswpstdnon_acinpknlmwlksnonwpstdb_2", "amovpercmstpsnonwnondnon_acinpknlmwlksnonwnondb_2", "acinpknlmstpsraswrfldnon", "acinpknlmstpsnonwpstdnon", "acinpknlmstpsnonwnondnon"]; + +_this spawn { + _draggedObject = _this select 0; + _unit = _this select 1; + if (_draggedObject getVariable ["AGM_disableDrag", false]) exitWith {}; + _ableToDrag = true; + + if ((typeOf _draggedObject) isKindOf "StaticWeapon") then { + _gunner = gunner _draggedObject; + if (!isNull _gunner && {alive _gunner}) then { + _gunner setPosASL getPosASL _gunner; + }; + } else { // Crate handling + if (_draggedObject getVariable ["AGM_useWeight", true]) then { + _ableToDrag = ((_draggedObject call AGM_Drag_fnc_GetWeight) <= AGM_Drag_MaxWeight); + }; + }; + if (!_ableToDrag) exitWith { [localize "STR_AGM_Drag_UnableToDrag"] call AGM_Core_fnc_displayTextStructured;}; + if (primaryWeapon _unit == "") then { + _unit addWeapon "AGM_FakePrimaryWeapon"; + }; + _unit selectWeapon (primaryWeapon _unit); + + [_unit, _draggedObject, true] call AGM_Core_fnc_claim; + + _unit setVariable ["AGM_isDragging", true]; + _unit setVariable ["AGM_carriedItem", _draggedObject, true]; + + _unit playActionNow "grabDrag"; + waitUntil {animationState _unit in ANIM_CARRY}; + + // exit here if the player releases the jerry can before the animation is finished + if !(_unit getVariable ["AGM_isDragging", false]) exitWith { + _unit playAction "released"; + }; + + _attachPoint = [0,1.2, ((_draggedObject modelToWorld [0,0,0]) select 2) - ((_unit modelToWorld [0,0,0]) select 2)]; + _draggedObject attachTo [_unit, _attachPoint]; + + _actionID = _unit getVariable ["AGM_Drag_ReleaseActionID", -1]; + + if (_actionID != -1) then { + _unit removeAction _actionID; + }; + _actionID = _unit addAction [format ["%1", localize "STR_AGM_Drag_EndDrag"], "player call AGM_Drag_fnc_releaseObject;", nil, 20, false, true, "","player call AGM_Drag_fnc_isDraggingObject"]; + + _unit setVariable ["AGM_Drag_ReleaseActionID", _actionID]; + + AGM_Drag_CurrentHeightChange = 0; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_dropJerrycan.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_dropJerrycan.sqf new file mode 100644 index 0000000000..249c6948fe --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_dropJerrycan.sqf @@ -0,0 +1,19 @@ +// by commy2 + +_unit = _this select 0; +_target =_this select 1; + +_unit setVariable ["AGM_isDragging", false]; +_unit setVariable ["AGM_carriedItem", objNull, true]; +_target setVariable ["AGM_isUsedBy", objNull, true]; + +[objNull, _target, true] call AGM_Core_fnc_claim; + +_unit allowDamage false; +detach _target; +[_unit, "AGM_Logistics", false] call AGM_Core_fnc_setForceWalkStatus; +_unit allowDamage true; + +_unit removeAction (_unit getVariable ["AGM_Drag_ReleaseActionID", -1]); + +[_target, "{_this setVectorUp (surfaceNormal getPosASL _this)}", _target] call AGM_Core_fnc_execRemoteFnc; diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_initialise.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_initialise.sqf new file mode 100644 index 0000000000..690ca2bb09 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_initialise.sqf @@ -0,0 +1,25 @@ +/* + Name: AGM_Drag_fnc_Initialise + + Author(s): + L-H + + Description: + Adds an EventHandler to check if a weapon has been assembled. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + // Called by ArmA via Function Library + call AGM_Drag_fnc_Initialise; +*/ +AGM_Drag_CurrentHeightChange = 0; +[{(_this select 0) call AGM_Drag_fnc_HandleScrollWheel;}] call AGM_Core_fnc_addScrollWheelEventHandler; + +if (isNil "AGM_Drag_MaxWeight") then { + AGM_Drag_MaxWeight = 800; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_isCarryable.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_isCarryable.sqf new file mode 100644 index 0000000000..9fd5fda8bd --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_isCarryable.sqf @@ -0,0 +1,10 @@ +// by commy2 + +private ["_unit", "_target"]; + +_unit = _this select 0; +_target = _this select 1; + +_unit == vehicle _unit && +{alive _target} && +{!(_target getVariable ["AGM_disableDrag", false])} diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_isCarryingObject.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_isCarryingObject.sqf new file mode 100644 index 0000000000..9f0bd91083 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_isCarryingObject.sqf @@ -0,0 +1,7 @@ +// by commy2 + +private "_unit"; + +_unit = _this select 0; + +!isNull (_unit getVariable ["AGM_carriedItem", objNull]); diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_isDraggable.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_isDraggable.sqf new file mode 100644 index 0000000000..b4b78ffcad --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_isDraggable.sqf @@ -0,0 +1,36 @@ +/* + Name: AGM_Drag_fnc_isDraggable + + Author(s): + L-H + + Description: + Checks if an object can be dragged + + Parameters: + OBJECT - Drag-able object + + Returns: + BOOLEAN + + Example: + [StaticWeapon, player] call AGM_Drag_fnc_isDraggable; +*/ +private ["_result", "_targetObject","_unit"]; +_result = true; +_targetObject = _this select 0; +_unit = _this select 1; + +if (_unit != (vehicle _unit)) exitWith {false}; +if (_targetObject getVariable ["AGM_disableDrag", false]) exitWith {false}; +//if (_targetObject getVariable ["AGM_inUse", false]) exitWith {false}; + +if ((typeOf _targetObject) isKindOf "StaticWeapon") then { + _result = isNull(gunner _targetObject); + if !(_result) then { + _result = !alive (gunner _targetObject); + }; +}; +if !(_result) exitWith {_result}; +_result = !(_unit call AGM_Drag_fnc_isDraggingObject) AND ((_unit distance _targetObject) < 3); +_result && {!([_targetObject] call AGM_Core_fnc_owned)} diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_isDraggingObject.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_isDraggingObject.sqf new file mode 100644 index 0000000000..ea7081099e --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_isDraggingObject.sqf @@ -0,0 +1,23 @@ +/* + Name: AGM_Drag_fnc_isDraggingObject + + Author(s): + L-H + + Description: + Checks whether there is an attached dragged object to the passed unit. + + Parameters: + OBJECT: Unit + + Returns: + BOOLEAN: true if a dragged object is attached. + + Example: + _draggingObject = player call AGM_Drag_fnc_isDraggingObject; +*/ +private "_draggedObject"; +_draggedObject = _this getVariable ["AGM_carriedItem", objNull]; +if (isNull _draggedObject) exitWith {false}; + +true diff --git a/TO_MERGE/agm/Logistics/functions/Drag/fn_releaseObject.sqf b/TO_MERGE/agm/Logistics/functions/Drag/fn_releaseObject.sqf new file mode 100644 index 0000000000..04fba820a1 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Drag/fn_releaseObject.sqf @@ -0,0 +1,42 @@ +/* + Name: AGM_Drag_fnc_releaseObject + + Author(s): + L-H + + Description: + Releases dragged weapon from passed unit. + + Parameters: + OBJECT - Unit + + Returns: + Nothing + + Example: + player call AGM_Drag_fnc_releaseObject; +*/ +private ["_draggedObject", "_position"]; +_this removeWeapon "AGM_FakePrimaryWeapon"; +_draggedObject = _this getVariable ["AGM_carriedItem", objNull]; +if (_this == (vehicle _this)) then { // if the unit is the vehicle of the passed unit (avoids bugs with players entering vehicles while dragging + _this playAction "released"; +}; +if (isNull _draggedObject) exitWith {}; // If there is no dragged object exit now. + +[objNull, _draggedObject, true] call AGM_Core_fnc_claim; + +_this setVariable ["AGM_isDragging", false]; +_this setVariable ["AGM_carriedItem", objNull, true]; + +detach _draggedObject; +[_this, "AGM_Logistics", false] call AGM_Core_fnc_setForceWalkStatus; +_this removeAction (_this getVariable ["AGM_Drag_ReleaseActionID", -1]); +_draggedObject setDamage (damage _draggedObject); + +_position = getPosATL _draggedObject; +if (_position select 2 < 0) then { + _position set [2, 0]; + _draggedObject setPosATL _position; +}; +[_draggedObject, "{_this setVectorUp (surfaceNormal getPosASL _this)}", _draggedObject] call AGM_Core_fnc_execRemoteFnc; diff --git a/TO_MERGE/agm/Logistics/functions/Fortifications/fn_canSetupBarrier.sqf b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_canSetupBarrier.sqf new file mode 100644 index 0000000000..e0bbc3902c --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_canSetupBarrier.sqf @@ -0,0 +1,8 @@ +// by commy2 + +private "_crate"; + +_crate = _this select 1; + +isNull (missionNamespace getVariable ["AGM_Fortifications_Setup", objNull]) +&& {!([_crate] call AGM_Core_fnc_owned)} diff --git a/TO_MERGE/agm/Logistics/functions/Fortifications/fn_initialise.sqf b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_initialise.sqf new file mode 100644 index 0000000000..0c67a97af5 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_initialise.sqf @@ -0,0 +1,25 @@ +/* + Name: AGM_Fortifications_fnc_Initialise + + Author(s): + L-H, commy2 + + Description: + Adds an EventHandler to check if a weapon has been assembled. + + Parameters: + Nothing + + Returns: + Nothing + + Example: + // Called by ArmA via Function Library + call AGM_Fortifications_fnc_Initialise; +*/ + +[{ + if (!isNull (missionNamespace getVariable ["AGM_Fortifications_Setup", objNull])) then { + AGM_Fortifications_TweakedAngle = AGM_Fortifications_TweakedAngle + (_this select 0) min 240 max 120; + }; +}] call AGM_Core_fnc_addScrollWheelEventHandler; diff --git a/TO_MERGE/agm/Logistics/functions/Fortifications/fn_openSelectBarrierlUI.sqf b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_openSelectBarrierlUI.sqf new file mode 100644 index 0000000000..213bff0948 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_openSelectBarrierlUI.sqf @@ -0,0 +1,39 @@ +// by commy2 + +private ["_unit", "_crate", "_types", "_count", "_actions", "_name", "_picture", "_type"]; + +_unit = _this select 0; +_crate = _this select 1; +_types = _this select 2; + +_count = count _types; + +_actions = ["Select Fortification Menu", "Select"] call AGM_Interaction_fnc_prepareSelectMenu; +for "_index" from 0 to (_count - 1) do { + _type = _types select _index; + + _name = getText (configFile >> "CfgVehicles" >> _type >> "displayName"); + _picture = "AGM_Interaction\UI\dot_ca.paa"; + + _actions = [ + _actions, + _name, + _picture, + _type + ] call AGM_Interaction_fnc_AddSelectableItem; +}; + +[ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + _vehicle = AGM_Interaction_Target; + if ([player, _vehicle, _this] call AGM_Fortifications_fnc_canSetupBarrier) then { + [player, _vehicle, _this] call AGM_Fortifications_fnc_setupBarrier; + }; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenu}; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupApprove.sqf b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupApprove.sqf new file mode 100644 index 0000000000..68dbeaa66a --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupApprove.sqf @@ -0,0 +1,63 @@ +// by Garth de Wet (LH), edited by commy2 + +if (AGM_Fortifications_pfeh_running) then { + ["AGM_Fortifications_Placement", "OnEachFrame"] call BIS_fnc_removeStackedEventHandler; + AGM_Fortifications_pfeh_running = false; +}; + +private "_setup"; + +_setup = AGM_Fortifications_Setup; + +AGM_Fortifications_Setup = objNull; +[AGM_Fortifications_placer, "AGM_Logistics", false] call AGM_Core_fnc_setForceWalkStatus; +AGM_Fortifications_placer = objNull; + +[player, "DefaultAction", player getVariable ["AGM_Fortifications_Place", -1]] call AGM_Core_fnc_removeActionEventHandler; +[player, "MenuBack", player getVariable ["AGM_Fortifications_Cancel", -1]] call AGM_Core_fnc_removeActionEventHandler; + +call AGM_Interaction_fnc_hideMouseHint; +_setup spawn { + _pos = getPosASL _this; + _dir = getDir _this; + + //_dir = if (_dir > 180) then {_dir - 180} else {180 + _dir}; // ? + + player setVariable ["AGM_PlantingExplosive", true]; + + player playActionNow "MedicOther"; + + sleep 5; + + deleteVehicle AGM_Fortifications_crate; + + // create global object + _type = typeOf _this; + _setup = _type createVehicle [0, 0, -10000]; + deleteVehicle _this; + _setup setDir _dir; + _setup setPosASL _pos; + + player setVariable ["AGM_PlantingExplosive", false]; + + _this enableSimulationGlobal true; + _this allowDamage true; + //_this setDamage 0; + + /*[_setup] spawn { + sleep 10; + + _setup = _this select 0; + + if (!isNull _setup) then { + _mag = _setup getVariable ["AGM_Class", ""]; + _dir = _setup getVariable ["AGM_Dir", 0]; + + sleep getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "AGM_DelayTime"); + [player, GetPosATL _setup, _dir, _mag, _setup getVariable "AGM_Trigger", [_setup getVariable "AGM_Timer"], true] call AGM_Explosives_fnc_PlaceExplosive; + deleteVehicle _setup; + player RemoveMagazine _mag; + }; + };*/ + +}; diff --git a/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupBarrier.sqf b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupBarrier.sqf new file mode 100644 index 0000000000..170a172025 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupBarrier.sqf @@ -0,0 +1,45 @@ +// by Garth de Wet (LH), edited by commy2 + +_this spawn { + _unit = _this select 0; + _crate = _this select 1; + _type = _this select 2; + + AGM_Fortifications_placer = _unit; + AGM_Fortifications_crate = _crate; + + [_unit, _crate] call AGM_Core_fnc_claim; + + AGM_Fortifications_Setup = _type createVehicleLocal [0, 0, -10000]; + AGM_Fortifications_Setup allowDamage false; + AGM_Fortifications_Setup enableSimulationGlobal false; + AGM_Fortifications_Setup attachTo [_unit, _unit worldToModel ((ASLtoATL eyePos player) vectorAdd (positionCameraToWorld [0, 0, 4] vectorDiff positionCameraToWorld [0, 0, 0]))]; + detach AGM_Fortifications_Setup; + + [_unit, "AGM_Logistics", true] call AGM_Core_fnc_setForceWalkStatus; + AGM_Fortifications_TweakedAngle = 180; + + ["AGM_Fortifications_Placement", "OnEachFrame", { + if (AGM_Fortifications_placer != player) exitWith { + call AGM_Fortifications_fnc_setupCancel; + }; + AGM_Fortifications_pfeh_running = true; + + _pos = (ASLtoATL eyePos player) vectorAdd (positionCameraToWorld [0, 0, 4] vectorDiff positionCameraToWorld [0, 0, 0]); + _pos set [2, 0]; + + if (getPosATL player distance _pos < 2 || {!alive player} || {player getVariable ["AGM_isUnconscious", false]} || {player != vehicle player}) exitWith { + call AGM_Fortifications_fnc_setupCancel; + }; + + AGM_Fortifications_Setup setPosATL _pos; + + if (AGM_Modifier == 0) then { + AGM_Fortifications_Setup setDir (AGM_Fortifications_TweakedAngle + getDir player); + }; + }] call BIS_fnc_addStackedEventHandler; + + [localize "STR_AGM_Fortifications_PlaceAction", localize "STR_AGM_Fortifications_CancelAction", localize "STR_AGM_Fortifications_ScrollAction"] call AGM_Interaction_fnc_showMouseHint; + _unit setVariable ["AGM_Fortifications_Place", [_unit, "DefaultAction", {AGM_Fortifications_pfeh_running && {!isNull AGM_Fortifications_Setup}}, {call AGM_Fortifications_fnc_setupApprove}] call AGM_Core_fnc_AddActionEventHandler]; + _unit setVariable ["AGM_Fortifications_Cancel", [_unit, "MenuBack", {AGM_Fortifications_pfeh_running && {!isNull AGM_Fortifications_Setup}}, {call AGM_Fortifications_fnc_setupCancel}] call AGM_Core_fnc_AddActionEventHandler]; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupCancel.sqf b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupCancel.sqf new file mode 100644 index 0000000000..eccd30fabc --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Fortifications/fn_setupCancel.sqf @@ -0,0 +1,25 @@ +// by Garth de Wet (LH), edited by commy2 + +if (AGM_Fortifications_pfeh_running) then { + ["AGM_Fortifications_Placement", "OnEachFrame"] call BIS_fnc_removeStackedEventHandler; + AGM_Fortifications_pfeh_running = false; +}; + +if (!isNull (AGM_Fortifications_Setup)) then { + deleteVehicle AGM_Fortifications_Setup; +}; + +[objNull, AGM_Fortifications_crate] call AGM_Core_fnc_claim; + +AGM_Fortifications_Setup = objNull; + +if (isNil {AGM_Fortifications_placer}) then { + AGM_Fortifications_placer = objNull; +}; + +[AGM_Fortifications_placer, "AGM_Logistics", false] call AGM_Core_fnc_setForceWalkStatus; +AGM_Fortifications_placer = objNull; +call AGM_Interaction_fnc_hideMouseHint; + +[player, "DefaultAction", player getVariable ["AGM_Fortifications_Place", -1]] call AGM_Core_fnc_removeActionEventHandler; +[player, "MenuBack", player getVariable ["AGM_Fortifications_Cancel", -1]] call AGM_Core_fnc_removeActionEventHandler; diff --git a/TO_MERGE/agm/Logistics/functions/ParaDrop/fn_paraDrop.sqf b/TO_MERGE/agm/Logistics/functions/ParaDrop/fn_paraDrop.sqf new file mode 100644 index 0000000000..a00a025619 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/ParaDrop/fn_paraDrop.sqf @@ -0,0 +1,42 @@ +//marc_book, commy2, CAA-Picard + +private ["_vehicle", "_fnc_smoke", "_fnc_light", "_items", "_count", "_item", "_position", "_parachute", "_smoke", "_light"]; + +_this spawn { + _vehicle = _this select 0; + + _fnc_smoke = { + _smoke = "SmokeshellYellow" createVehicle (_position); + _smoke attachTo [_item, [0, 0, 0]]; + }; + + _fnc_light = { + _light = "Chemlight_yellow" createVehicle (_position); + _light attachTo [_item, [0, 0, 0]]; + }; + + _items = _vehicle getVariable ["AGM_Logistics_loadedItems", []]; + _count = count _items; + _item = _items select (_count - 1); + _items = _items - [_item]; + + _vehicle setVariable ["AGM_Logistics_loadedItems", _items, true]; + _position = ((vectorDir _vehicle) vectorMultiply -15) vectorAdd getPosASL _vehicle; + + detach _item; + _item setPosASL _position; + + sleep 0.7; + + _parachute = createVehicle ["B_Parachute_02_F", position _item, [], 0, "CAN_COLLIDE"]; + _parachute attachTo [_item, [0, 0, 0]]; + + detach _parachute; + _item attachTo [_parachute, [0, 0, -1]]; + + _light = [] call _fnc_light; + + waitUntil {sleep 0.1; position _item select 2 < 1}; + detach _item; + _smoke = [] call _fnc_smoke; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Logistics/functions/Repair/Macros.hqf b/TO_MERGE/agm/Logistics/functions/Repair/Macros.hqf new file mode 100644 index 0000000000..6e35586a56 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/Macros.hqf @@ -0,0 +1,17 @@ + +#define ALL_HITPOINTS [ \ + "HitBody", "HitHull", "HitEngine", "HitFuel", \ + "HitTurret", "HitGun", \ + "HitLTrack", "HitRTrack", \ + "HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLMWheel", "HitRMWheel", "HitLBWheel", "HitRBWheel", \ + "HitAvionics", "HitHRotor", "HitVRotor" \ +] + +#define ALL_HITPOINTS_GLASS [ \ + "HitBody", "HitHull", "HitEngine", "HitFuel", \ + "HitTurret", "HitGun", \ + "HitLTrack", "HitRTrack", \ + "HitLFWheel", "HitRFWheel", "HitLF2Wheel", "HitRF2Wheel", "HitLMWheel", "HitRMWheel", "HitLBWheel", "HitRBWheel", \ + "HitAvionics", "HitHRotor", "HitVRotor", \ + "HitRGlass", "HitLGlass", "HitGlass1", "HitGlass2", "HitGlass3", "HitGlass4", "HitGlass5", "HitGlass6" \ +] diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_canRemoveWheel.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRemoveWheel.sqf new file mode 100644 index 0000000000..222b24a944 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRemoveWheel.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_vehicle", "_wheels"]; + +_vehicle = _this select 0; +//_wheels = _this select 1; + +_wheels = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Wheels"); + +_wheels = [_wheels, {_vehicle getHitPointDamage _this < 1}] call AGM_Core_fnc_filter; + +count _wheels > 0 +&& {alive _vehicle} +&& {speed _vehicle == 0} diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepair.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepair.sqf new file mode 100644 index 0000000000..445102dce3 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepair.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_vehicle", "_part"]; + +_vehicle = _this select 0; +_part = _this select 1; + +("ToolKit" in items player || {!isNull ([_vehicle] call AGM_Repair_fnc_getNearestRepairer)}) +&& {alive _vehicle} +&& {speed _vehicle == 0} +&& {floor (3 * (_vehicle getHitPointDamage _part)) > 0} diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepairTrack.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepairTrack.sqf new file mode 100644 index 0000000000..40dd7935db --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepairTrack.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_vehicle", "_part", "_spareTrack"]; + +_vehicle = _this select 0; +_part = _this select 1; + +_spareTrack = [player] call AGM_Repair_fnc_getNearestTrack; + +("ToolKit" in items player || {!isNull ([_vehicle] call AGM_Repair_fnc_getNearestRepairer)}) +&& {alive _vehicle} +&& {speed _vehicle == 0} +&& {!isNull _spareTrack} +&& {floor (3 * (_vehicle getHitPointDamage _part)) > 0} diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepairWheel.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepairWheel.sqf new file mode 100644 index 0000000000..e47fe932de --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_canRepairWheel.sqf @@ -0,0 +1,17 @@ +// by commy2 + +private ["_vehicle", "_wheels", "_spareWheel"]; + +_vehicle = _this select 0; +//_wheels = _this select 1; + +_wheels = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Wheels"); + +_wheels = [_wheels, {_vehicle getHitPointDamage _this == 1}] call AGM_Core_fnc_filter; + +_spareWheel = [player] call AGM_Repair_fnc_getNearestWheel; + +count _wheels > 0 +&& {alive _vehicle} +&& {speed _vehicle == 0} +&& {!isNull _spareWheel} diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_checkVehicle.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_checkVehicle.sqf new file mode 100644 index 0000000000..e1133620f0 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_checkVehicle.sqf @@ -0,0 +1,10 @@ +// commy2 + +private "_vehicle"; + +_vehicle = _this select 0; + +player playActionNow "Gear"; + +[8, [_vehicle], "AGM_Repair_fnc_checkVehicleCallback", localize "STR_AGM_Repair_CheckingVehicle"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_checkVehicleCallback.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_checkVehicleCallback.sqf new file mode 100644 index 0000000000..8867290512 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_checkVehicleCallback.sqf @@ -0,0 +1,32 @@ +/* + * Author: marc_book, commy2 + */ + +#include + +private ["_vehicle", "_displayName", "_string", "_height", "_damage", "_name"]; + +_vehicle = _this select 0; + +_displayName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + +_string = format ["%1

", format [localize "STR_AGM_Repair_VehicleName", _displayName]]; +_height = 1; + +{ + _damage = floor (3 * (_vehicle getHitPointDamage _x)); + + if (!isNil "_damage" && {_damage > 0}) then { + _name = [_x] call AGM_Repair_fnc_getHitPointName; + _string = _string + format [localize (["STR_AGM_Repair_HitPointDamaged", "STR_AGM_Repair_HitPointDamagedHeavy", "STR_AGM_Repair_HitPointDestroyed"] select (_damage - 1)), _name] + "
"; + _height = _height + 0.25; + }; +} forEach ALL_HITPOINTS; + +if (_height == 1) then { + _string = _string + localize "STR_AGM_Repair_Nothing"; + _height = 1.25; +}; + +_string = _string + "
"; +[composeText [lineBreak, parseText _string], _height] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_getHitPointName.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_getHitPointName.sqf new file mode 100644 index 0000000000..49dddb63cc --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_getHitPointName.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private ["_hitPoint", "_string"]; + +_hitPoint = _this select 0; + +_string = format ["STR_AGM_Repair_%1", _hitPoint]; + +if (isLocalized _string) then {localize _string} else {_hitPoint} diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestRepairer.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestRepairer.sqf new file mode 100644 index 0000000000..d79eadfa95 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestRepairer.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_unit", "_nearObjects"]; + +_unit = _this select 0; + +_nearObjects = nearestObjects [_unit, ["Car", "Tank", "ReammoBox_F"], 10]; +{ + if !(getNumber (configFile >> "CfgVehicles" >> typeOf _x >> "AGM_canRepair") > 0) then { + _nearObjects set [_forEachIndex, objNull]; + }; +} forEach _nearObjects; +_nearObjects = _nearObjects - [objNull]; + +if (count _nearObjects == 0) exitWith {objNull}; +_nearObjects select 0 diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestTrack.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestTrack.sqf new file mode 100644 index 0000000000..c0fdf87eb8 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestTrack.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_unit", "_nearObjects"]; + +_unit = _this select 0; + +_nearObjects = nearestObjects [_unit, ["AGM_SpareTrack"], 5]; +{ + if !([_unit, _x] call AGM_Core_fnc_canInteractWith) then { + _nearObjects set [_forEachIndex, objNull]; + }; +} forEach _nearObjects; +_nearObjects = _nearObjects - [objNull]; + +if (count _nearObjects == 0) exitWith {objNull}; +_nearObjects select 0 diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestWheel.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestWheel.sqf new file mode 100644 index 0000000000..3c724de321 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_getNearestWheel.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_unit", "_nearObjects"]; + +_unit = _this select 0; + +_nearObjects = nearestObjects [_unit, ["AGM_SpareWheel"], 5]; +{ + if !([_unit, _x] call AGM_Core_fnc_canInteractWith) then { + _nearObjects set [_forEachIndex, objNull]; + }; +} forEach _nearObjects; +_nearObjects = _nearObjects - [objNull]; + +if (count _nearObjects == 0) exitWith {objNull}; +_nearObjects select 0 diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_module.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_module.sqf new file mode 100644 index 0000000000..2cfaed0cd1 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_module.sqf @@ -0,0 +1,30 @@ +/* + * Author: KoffeinFlummi + * Edited from Medical Module + * Editor: Hawkeye104 + * + * Initializes the repair module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ +if !(isServer) exitWith {}; + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +AGM_Repair_Module = true; + +[_logic, "AGM_Repair_TimeRepair", "TimeRepair" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Repair_TimeWheelRepair", "TimeWheelRepair" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Repair_TimeTrackRepair", "TimeTrackRepair" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Repair_MaxDamageRepair", "MaxDamageRepair" ] call AGM_Core_fnc_readNumericParameterFromModule; + + +diag_log text "[AGM]: Repair Module Initialized."; \ No newline at end of file diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_openSelectWheelUI.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_openSelectWheelUI.sqf new file mode 100644 index 0000000000..213a965e11 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_openSelectWheelUI.sqf @@ -0,0 +1,41 @@ +// by commy2 + +private ["_vehicle", "_wheels", "_listIDC", "_count", "_index", "_wheel", "_name", "_picture", "_lbIndex"]; + +_vehicle = _this select 0; +//_wheels = _this select 1; + +_wheels = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Wheels"); + +_wheels = [_wheels, {AGM_Interaction_Target getHitPointDamage _this > 0}] call AGM_Core_fnc_filter; +_count = count _wheels; + +_actions = [localize "STR_AGM_Repair_SelectWheelMenu", localize "STR_AGM_Repair_SelectWheel"] call AGM_Interaction_fnc_prepareSelectMenu; +for "_index" from 0 to (_count - 1) do { + _wheel = _wheels select _index; + //_name = [_wheel] call AGM_Repair_fnc_getHitPointName; + _name = localize (getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_WheelsLocalized") select (getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Wheels") find _wheel)); + _picture = "AGM_Interaction\UI\dot_ca.paa"; + + if (_vehicle getHitPointDamage _wheel == 1) then { + _actions = [ + _actions, + _name, + _picture, + _wheel + ] call AGM_Interaction_fnc_AddSelectableItem; + }; +}; + +[ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + _vehicle = AGM_Interaction_Target; + [_vehicle, _this] call AGM_Repair_fnc_repairWheel; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenu}; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_openSelectWheelUI_Salvage.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_openSelectWheelUI_Salvage.sqf new file mode 100644 index 0000000000..2d28b1506f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_openSelectWheelUI_Salvage.sqf @@ -0,0 +1,41 @@ +// by commy2 + +private ["_vehicle", "_wheels", "_listIDC", "_count", "_index", "_wheel", "_name", "_picture", "_lbIndex"]; + +_vehicle = _this select 0; +//_wheels = _this select 1; + +_wheels = getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Wheels"); + +_wheels = [_wheels, {AGM_Interaction_Target getHitPointDamage _this < 1}] call AGM_Core_fnc_filter; +_count = count _wheels; + +_actions = [localize "STR_AGM_Repair_SelectWheelMenu_Salvage", localize "STR_AGM_Repair_SelectWheel_Salvage"] call AGM_Interaction_fnc_prepareSelectMenu; +for "_index" from 0 to (_count - 1) do { + _wheel = _wheels select _index; + //_name = [_wheel] call AGM_Repair_fnc_getHitPointName; + _name = localize (getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_WheelsLocalized") select (getArray (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Wheels") find _wheel)); + _picture = "AGM_Interaction\UI\dot_ca.paa"; + + if (_vehicle getHitPointDamage _wheel < 1) then { + _actions = [ + _actions, + _name, + _picture, + _wheel + ] call AGM_Interaction_fnc_AddSelectableItem; + }; +}; + +[ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + _vehicle = AGM_Interaction_Target; + [_vehicle, _this] call AGM_Repair_fnc_removeWheel; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenu}; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheel.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheel.sqf new file mode 100644 index 0000000000..051367d693 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheel.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_vehicle", "_part", "_isEngineer", "_time", "_name", "_string"]; + +_vehicle = _this select 0; +_part = _this select 1; + +_isEngineer = [player] call AGM_Core_fnc_isEngineer; + +_time = 10; +_time = _time + 10 * (_vehicle getHitPointDamage _part); +if !(_isEngineer) then {_time = _time + 10}; + +[player, "AinvPknlMstpSnonWnonDr_medic5", 0] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_RemovingWheel", _name]; + +[_time, [_vehicle, _part], "AGM_Repair_fnc_removeWheelCallback", _string, "AGM_Repair_fnc_removeWheelAbort"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheelAbort.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheelAbort.sqf new file mode 100644 index 0000000000..a6f20b7d0f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheelAbort.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheelCallback.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheelCallback.sqf new file mode 100644 index 0000000000..b2193a6104 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_removeWheelCallback.sqf @@ -0,0 +1,23 @@ +// by commy2 + +private ["_vehicle", "_part", "_damage", "_wheel", "_name", "_string"]; + +_vehicle = _this select 0; +_part = _this select 1; + +_damage = _vehicle getHitPointDamage _part; + +// can't remove destroyed or already removed wheel +if (_damage == 1) exitWith {}; + +[_vehicle, _part, 1, true] call AGM_Repair_fnc_setHitPointDamage; + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; + +_wheel = ['AGM_SpareWheel', getPosASL player] call AGM_Logistics_fnc_spawnObject; +_wheel setdamage _damage; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_RemovedWheel", _name]; + +[_string] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repair.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repair.sqf new file mode 100644 index 0000000000..1946b7566f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repair.sqf @@ -0,0 +1,27 @@ +// by commy2 +// Edited by Hawkeye104 for compatibility with Repair Module + +private ["_vehicle", "_part", "_isEngineer", "_time", "_name", "_string", "_repairer"]; + +_vehicle = _this select 0; +_part = _this select 1; + +_isEngineer = [player] call AGM_Core_fnc_isEngineer; + +//New time calculation from repair module +_time = AGM_Repair_TimeRepair; +_time = _time + AGM_Repair_TimeRepair * (_vehicle getHitPointDamage _part); +if !(_isEngineer) then {_time = _time + 0.5 * AGM_Repair_TimeRepair}; + +[player, "AinvPknlMstpSnonWnonDr_medic5", 0] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_Repairing", _name]; + +[_time, [_vehicle, _part], "AGM_Repair_fnc_repairCallback", _string, "AGM_Repair_fnc_repairAbort"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; + +_repairer = [_vehicle] call AGM_Repair_fnc_getNearestRepairer; +if (!("ToolKit" in items player) && {!isNull _repairer}) then { + [_repairer] call AGM_Core_fnc_closeDialogIfTargetMoves; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairAbort.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairAbort.sqf new file mode 100644 index 0000000000..a6f20b7d0f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairAbort.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairCallback.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairCallback.sqf new file mode 100644 index 0000000000..085d9b23bd --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairCallback.sqf @@ -0,0 +1,17 @@ +// by commy2 +// Edited by Hawkeye104 for compatibility with repair module + +private ["_vehicle", "_part", "_name", "_string"]; + +_vehicle = _this select 0; +_part = _this select 1; + +// Repair module parameter function call +[_vehicle, _part, AGM_Repair_MaxDamageRepair] call AGM_Repair_fnc_setHitPointDamage; + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_Repaired", _name]; + +[_string] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrack.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrack.sqf new file mode 100644 index 0000000000..abbb23fc1d --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrack.sqf @@ -0,0 +1,33 @@ +// by commy2 +// Edited by Hawkeye104 for compatibility with Repair Module + +private ["_vehicle", "_part", "_isEngineer", "_time", "_name", "_string", "_spareTrack", "_repairer"]; + +_vehicle = _this select 0; +_part = _this select 1; + +_isEngineer = [player] call AGM_Core_fnc_isEngineer; + +//New time calculation from repair module +_time = AGM_Repair_TimeTrackRepair; +_time = _time + AGM_Repair_TimeTrackRepair * (_vehicle getHitPointDamage _part); +if !(_isEngineer) then {_time = _time + 0.5 * AGM_Repair_TimeTrackRepair}; + +[player, "AinvPknlMstpSnonWnonDr_medic5", 0] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_Repairing", _name]; + +_spareTrack = [player] call AGM_Repair_fnc_getNearestTrack; +if (isNull _spareTrack) exitWith {}; + +[player, _spareTrack] call AGM_Core_fnc_claim; + +[_time, [_vehicle, _part, _spareTrack], "AGM_Repair_fnc_repairTrackCallback", _string, "AGM_Repair_fnc_repairTrackAbort"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; +[_spareTrack] call AGM_Core_fnc_closeDialogIfTargetMoves; + +_repairer = [_vehicle] call AGM_Repair_fnc_getNearestRepairer; +if (!("ToolKit" in items player) && {!isNull _repairer}) then { + [_repairer] call AGM_Core_fnc_closeDialogIfTargetMoves; +}; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrackAbort.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrackAbort.sqf new file mode 100644 index 0000000000..ed0b5f4b9d --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrackAbort.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private "_spareTrack"; + +_spareTrack = _this select 2; + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; + +[objNull, _spareTrack] call AGM_Core_fnc_claim; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrackCallback.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrackCallback.sqf new file mode 100644 index 0000000000..02d77840ee --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairTrackCallback.sqf @@ -0,0 +1,20 @@ +// by commy2 + +#define POST_REPAIR_DAMAGE 0 + +private ["_vehicle", "_part", "_spareTrack", "_name", "_string"]; + +_vehicle = _this select 0; +_part = _this select 1; +_spareTrack = _this select 2; + +deleteVehicle _spareTrack; + +[_vehicle, _part, POST_REPAIR_DAMAGE] call AGM_Repair_fnc_setHitPointDamage; + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_Repaired", _name]; + +[_string] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheel.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheel.sqf new file mode 100644 index 0000000000..9f3d13aca5 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheel.sqf @@ -0,0 +1,28 @@ +// by commy2 +// Edited by Hawkeye104 for compatibility with Repair Module + +private ["_vehicle", "_part", "_isEngineer", "_time", "_name", "_string", "_spareWheel"]; + +_vehicle = _this select 0; +_part = _this select 1; + +_isEngineer = [player] call AGM_Core_fnc_isEngineer; + +//New time calculation from repair module +_time = AGM_Repair_TimeWheelRepair; +_time = _time + AGM_Repair_TimeWheelRepair * (_vehicle getHitPointDamage _part); +if !(_isEngineer) then {_time = _time + 0.5 * AGM_Repair_TimeWheelRepair}; + +[player, "AinvPknlMstpSnonWnonDr_medic5", 0] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_Repairing", _name]; + +_spareWheel = [player] call AGM_Repair_fnc_getNearestWheel; +if (isNull _spareWheel) exitWith {}; + +[player, _spareWheel] call AGM_Core_fnc_claim; + +[_time, [_vehicle, _part, _spareWheel], "AGM_Repair_fnc_repairWheelCallback", _string, "AGM_Repair_fnc_repairWheelAbort"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; +[_spareWheel] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheelAbort.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheelAbort.sqf new file mode 100644 index 0000000000..4455c2b8d7 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheelAbort.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private "_spareWheel"; + +_spareWheel = _this select 2; + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; + +[objNull, _spareWheel] call AGM_Core_fnc_claim; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheelCallback.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheelCallback.sqf new file mode 100644 index 0000000000..760f6f6844 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_repairWheelCallback.sqf @@ -0,0 +1,21 @@ +// by commy2 + +#define POST_REPAIR_DAMAGE 0 + +private ["_vehicle", "_part", "_spareWheel", "_damage", "_name", "_string"]; + +_vehicle = _this select 0; +_part = _this select 1; +_spareWheel = _this select 2; + +_damage = damage _spareWheel; +deleteVehicle _spareWheel; + +[_vehicle, _part, _damage] call AGM_Repair_fnc_setHitPointDamage; + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; + +_name = [_part] call AGM_Repair_fnc_getHitPointName; +_string = format [localize "STR_AGM_Repair_Repaired", _name]; + +[_string] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_setDamage.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_setDamage.sqf new file mode 100644 index 0000000000..5373ba1d55 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_setDamage.sqf @@ -0,0 +1,34 @@ +/* + * Author: commy2, KoffeinFlummi + * + * Sets the structural damage of a vehicle without altering the hitPoints. + * THIS NEEDS TO BE CALLED FROM THE PC WHERE THE VEHICLE IS LOCAL. + * + * Arguments: + * 0: Vehicle + * 1: Damage + * + * Return Value: + * None + */ + +#include + +private ["_vehicle", "_damage", "_hitPoints", "_damageHitPoint"]; + +_vehicle = _this select 0; +_damage = _this select 1; + +_hitPoints = []; +{ + _damageHitPoint = _vehicle getHitPointDamage _x; + if (isNil "_damageHitPoint") then {_damageHitPoint = 0}; + + _hitPoints set [_forEachIndex, _damageHitPoint]; +} forEach ALL_HITPOINTS; + +_vehicle setDamage _damage; + +{ + _vehicle setHitPointDamage [_x, _hitPoints select _forEachIndex]; +} forEach ALL_HITPOINTS; diff --git a/TO_MERGE/agm/Logistics/functions/Repair/fn_setHitPointDamage.sqf b/TO_MERGE/agm/Logistics/functions/Repair/fn_setHitPointDamage.sqf new file mode 100644 index 0000000000..c15678e798 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Repair/fn_setHitPointDamage.sqf @@ -0,0 +1,70 @@ +/* + * Author: commy2, KoffeinFlummi + * + * My very own setHitPointDamage since BIS's one is buggy when affecting a remote unit. + * It also doesn't change the overall damage. This does. + * + * Arguments: + * 0: vehicle + * 1: selection + * 2: damage + * 4: disable overall damage adjustment (optional) + * + * Return Value: + * - + */ + +#include + +private ["_vehicle", "_selection", "_damage", "_hitPoints", "_damageHitPoint", "_damageOld", "_damageSumOld", "_damageSumNew", "_damageNew"]; + +_vehicle = _this select 0; +_selection = _this select 1; +_damage = _this select 2; + +// Unit isn't local, give function to machine where it is. +if !(local _vehicle) exitWith { + [_this, "AGM_Repair_fnc_setHitPointDamage", _vehicle] call AGM_Core_fnc_execRemoteFnc; +}; + +// Check if overall damage adjustment is disabled +if (count _this > 3 && {_this select 3}) exitWith { + _vehicle setHitPointDamage [_selection, _damage]; +}; + +if !(_selection in ALL_HITPOINTS) exitWith { + _vehicle setHitPointDamage [_selection, _damage]; +}; + +_hitPoints = []; +{ + _damageHitPoint = _vehicle getHitPointDamage _x; + if (isNil "_damageHitPoint") then {_damageHitPoint = 0}; + + _hitPoints set [_forEachIndex, _damageHitPoint]; +} forEach ALL_HITPOINTS; + +_damageOld = damage _vehicle; +_damageSumOld = 0; +{ + _damageSumOld = _damageSumOld + _x; +} forEach _hitPoints; +_damageSumOld = _damageSumOld max 0.001; + +_hitPoints set [ALL_HITPOINTS find _selection, _damage]; + +_damageSumNew = 0; +{ + _damageSumNew = _damageSumNew + _x; +} forEach _hitPoints; + +_damageNew = _damageSumNew / count ALL_HITPOINTS; +if (_damageOld > 0) then { + _damageNew = _damageOld * (_damageSumNew / _damageSumOld); +}; + +_vehicle setDamage _damageNew; + +{ + _vehicle setHitPointDamage [_x, _hitPoints select _forEachIndex]; +} forEach ALL_HITPOINTS; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_canDrainFuel.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canDrainFuel.sqf new file mode 100644 index 0000000000..6350ec7632 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canDrainFuel.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private ["_unit", "_target", "_item", "_fuel"]; + +_unit = _this select 0; +_target = _this select 1; + +_item = _unit getVariable ["AGM_carriedItem", objNull]; +_fuel = _item getVariable ["AGM_amountFuel", 20]; + +_item isKindOf "AGM_JerryCan" +&& {alive _target} +&& {speed _target == 0} +&& {fuel _target > 0} +&& {_fuel < 20} diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_canDrainFuelCargo.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canDrainFuelCargo.sqf new file mode 100644 index 0000000000..796b0956c2 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canDrainFuelCargo.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_unit", "_target", "_item", "_fuel", "_fuelCargo"]; + +_unit = _this select 0; +_target = _this select 1; + +_item = _unit getVariable ["AGM_carriedItem", objNull]; +_fuel = _item getVariable ["AGM_amountFuel", 20]; +_fuelCargo = _target getVariable ["AGM_amountFuel", 9999]; + +_item isKindOf "AGM_JerryCan" +&& {alive _target} +&& {speed _target == 0} +&& {_fuelCargo > 0} +&& {_fuel < 20} diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_canRefuel.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canRefuel.sqf new file mode 100644 index 0000000000..960a63effd --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canRefuel.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private ["_unit", "_target", "_item", "_fuel"]; + +_unit = _this select 0; +_target = _this select 1; + +_item = _unit getVariable ["AGM_carriedItem", objNull]; +_fuel = _item getVariable ["AGM_amountFuel", 20]; + +_item isKindOf "AGM_JerryCan" +&& {alive _target} +&& {speed _target == 0} +&& {fuel _target < 1} +&& {_fuel > 0} diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_canRefuelCargo.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canRefuelCargo.sqf new file mode 100644 index 0000000000..e2a4f5a927 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_canRefuelCargo.sqf @@ -0,0 +1,17 @@ +// by commy2 + +private ["_target", "_vehicle", "_fuel"]; + +_target = _this select 0; + +_vehicle = [player] call AGM_Resupply_fnc_getNearestRefueler; + +_fuel = _vehicle getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacityCargo")]; + +!isNull _vehicle +&& {alive _target} +&& {alive _vehicle} +&& {speed _target == 0} +&& {speed _vehicle == 0} +&& {fuel _target < 1} +&& {_fuel > 0} diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuel.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuel.sqf new file mode 100644 index 0000000000..07923de64f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuel.sqf @@ -0,0 +1,22 @@ +// by commy2 + +#define TIME_PER_LITER 2 + +private ["_unit", "_vehicle", "_item", "_fuel", "_capacity", "_fuelVehicle", "_time"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_item = _unit getVariable "AGM_carriedItem"; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuelVehicle = fuel _vehicle * _capacity; + +_time = TIME_PER_LITER * (_fuelVehicle min 20) max 2; + +[_time, [_unit, _vehicle], "AGM_Resupply_fnc_drainFuelCallback", localize "STR_AGM_Resupply_DrainingFuel"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCallback.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCallback.sqf new file mode 100644 index 0000000000..329dc26bf8 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCallback.sqf @@ -0,0 +1,31 @@ +// by commy2 + +private ["_unit", "_vehicle", "_item", "_fuel", "_capacity", "_fuelVehicle", "_displayName", "_text"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_item = _unit getVariable "AGM_carriedItem"; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuelVehicle = fuel _vehicle * _capacity; + +if (_fuel + _fuelVehicle < 20) then { + _fuel = _fuel + _fuelVehicle; + _fuelVehicle = 0; +} else { + _fuelVehicle = _fuelVehicle + _fuel - 20; + _fuel = 20; +}; + +[[_vehicle, _fuelVehicle / _capacity], "{(_this select 0) setFuel (_this select 1)}", _vehicle] call AGM_Core_fnc_execRemoteFnc; +_item setVariable ["AGM_amountFuel", _fuel, true]; + +_displayName = getText (configfile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + +_text = format [localize "STR_AGM_Resupply_DrainedFuel", _displayName]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCargo.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCargo.sqf new file mode 100644 index 0000000000..c55e6ecdbe --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCargo.sqf @@ -0,0 +1,19 @@ +// by commy2 + +#define TIME_PER_LITER 2 + +private ["_unit", "_vehicle", "_item", "_fuel", "_fuelCargo", "_time"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_item = _unit getVariable "AGM_carriedItem"; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; +_fuelCargo = _vehicle getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacityCargo")]; + +_time = TIME_PER_LITER * (_fuelCargo min 20) max 2; + +[_time, [_unit, _vehicle], "AGM_Resupply_fnc_drainFuelCargoCallback", localize "STR_AGM_Resupply_DrainingFuelCargo"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCargoCallback.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCargoCallback.sqf new file mode 100644 index 0000000000..0f1348f496 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_drainFuelCargoCallback.sqf @@ -0,0 +1,28 @@ +// by commy2 + +private ["_unit", "_vehicle", "_item", "_fuel", "_fuelCargo", "_displayName", "_text"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_item = _unit getVariable "AGM_carriedItem"; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; +_fuelCargo = _vehicle getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacityCargo")]; + +if (_fuel + _fuelCargo < 20) then { + _fuel = _fuel + _fuelCargo; + _fuelCargo = 0; +} else { + _fuelCargo = _fuelCargo + _fuel - 20; + _fuel = 20; +}; + +_item setVariable ["AGM_amountFuel", _fuel, true]; +_vehicle setVariable ["AGM_amountFuelCargo", _fuelCargo, true]; + +_displayName = getText (configfile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + +_text = format [localize "STR_AGM_Resupply_DrainedFuelCargo", _displayName]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmount.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmount.sqf new file mode 100644 index 0000000000..c2fa0b7339 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmount.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_unit", "_vehicle"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +player playActionNow "Gear"; + +[2, [_vehicle], "AGM_Resupply_fnc_getFuelAmountCallback", localize "STR_AGM_Resupply_CheckingFuel"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCallback.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCallback.sqf new file mode 100644 index 0000000000..efc37dd246 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCallback.sqf @@ -0,0 +1,13 @@ +// by commy2 + +private ["_vehicle", "_capacity", "_fuel", "_text"]; + +_vehicle = _this select 0; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuel = fuel _vehicle * _capacity; +_fuel = (round (10 * _fuel)) / 10; + +_text = format [localize "STR_AGM_Resupply_CheckedFuelVehicle", _fuel]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCargo.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCargo.sqf new file mode 100644 index 0000000000..1afd698f35 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCargo.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_unit", "_vehicle"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +player playActionNow "Gear"; + +[2, [_vehicle], "AGM_Resupply_fnc_getFuelAmountCargoCallback", localize "STR_AGM_Resupply_CheckingFuelCargo"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCargoCallback.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCargoCallback.sqf new file mode 100644 index 0000000000..d87a31594c --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountCargoCallback.sqf @@ -0,0 +1,10 @@ +// by commy2 + +private ["_vehicle", "_fuel", "_text"]; + +_vehicle = _this select 0; + +_fuel = _vehicle getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacityCargo")]; + +_text = format [localize "STR_AGM_Resupply_CheckedFuelVehicleCargo", _fuel]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountJerrycan.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountJerrycan.sqf new file mode 100644 index 0000000000..e5b9ddfff8 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getFuelAmountJerrycan.sqf @@ -0,0 +1,19 @@ +// by commy2 + +private ["_unit", "_item", "_fuel", "_text"]; + +_unit = _this select 0; +_item = _this select 1; + +if (isNil "_item") then { + _item = _unit getVariable "AGM_carriedItem"; +}; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; +_fuel = (round (10 * _fuel)) / 10; + +_unit playActionNow "Gear"; + +_text = format [localize "STR_AGM_Resupply_CheckedFuel", _fuel]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_getNearestRefueler.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getNearestRefueler.sqf new file mode 100644 index 0000000000..07ec0d2439 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_getNearestRefueler.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_unit", "_nearObjects"]; + +_unit = _this select 0; + +_nearObjects = nearestObjects [_unit, ["house", "AllVehicles"], 10]; +{ + if (_x getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _x >> "AGM_fuelCapacityCargo")] <= 0) then { + _nearObjects set [_forEachIndex, objNull]; + }; +} forEach _nearObjects; +_nearObjects = _nearObjects - [objNull]; + +if (count _nearObjects == 0) exitWith {objNull}; +_nearObjects select 0 diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicle.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicle.sqf new file mode 100644 index 0000000000..58c1626a14 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicle.sqf @@ -0,0 +1,22 @@ +// by commy2 + +#define TIME_PER_LITER 2 + +private ["_unit", "_vehicle", "_item", "_fuel", "_capacity", "_fuelVehicle", "_time"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_item = _unit getVariable "AGM_carriedItem"; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuelVehicle = fuel _vehicle * _capacity; + +_time = TIME_PER_LITER * (_capacity - _fuelVehicle min _fuel) max 2; + +[_time, [_unit, _vehicle], "AGM_Resupply_fnc_refuelVehicleCallback", localize "STR_AGM_Resupply_RefuelingVehicle"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCallback.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCallback.sqf new file mode 100644 index 0000000000..39dd002f99 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCallback.sqf @@ -0,0 +1,31 @@ +// by commy2 + +private ["_unit", "_vehicle", "_item", "_fuel", "_capacity", "_fuelVehicle", "_displayName", "_text"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +_item = _unit getVariable "AGM_carriedItem"; +if (isNil "_item") exitWith {}; + +_fuel = _item getVariable ["AGM_amountFuel", 20]; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuelVehicle = fuel _vehicle * _capacity; + +if (_fuel + _fuelVehicle < _capacity) then { + _fuelVehicle = _fuelVehicle + _fuel; + _fuel = 0; +} else { + _fuel = _fuel + _fuelVehicle - _capacity; + _fuelVehicle = _capacity; +}; + +[[_vehicle, _fuelVehicle / _capacity], "{(_this select 0) setFuel (_this select 1)}", _vehicle] call AGM_Core_fnc_execRemoteFnc; +_item setVariable ["AGM_amountFuel", _fuel, true]; + +_displayName = getText (configfile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + +_text = format [localize "STR_AGM_Resupply_RefueledVehicle", _displayName]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCargo.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCargo.sqf new file mode 100644 index 0000000000..20653372b9 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCargo.sqf @@ -0,0 +1,22 @@ +// by commy2 + +#define TIME_PER_LITER 0.1 + +private ["_vehicle", "_source", "_fuelCargo", "_fuel", "_capacity", "_time"]; + +_vehicle = _this select 0; + +_source = [player] call AGM_Resupply_fnc_getNearestRefueler; +if (isNull _source) exitWith {}; + +_fuelCargo = _source getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _source >> "AGM_fuelCapacityCargo")]; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuel = fuel _vehicle * _capacity; + +_time = TIME_PER_LITER * (_capacity - _fuel min _fuelCargo) max 2; + +[_time, [_vehicle, _source], "AGM_Resupply_fnc_refuelVehicleCargoCallback", localize "STR_AGM_Resupply_RefuelingVehicle"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; +[_source] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCargoCallback.sqf b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCargoCallback.sqf new file mode 100644 index 0000000000..4546035b97 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Resupply/fn_refuelVehicleCargoCallback.sqf @@ -0,0 +1,28 @@ +// by commy2 + +private ["_vehicle", "_target", "_fuel", "_capacity", "_fuelVehicle", "_displayName", "_text"]; + +_vehicle = _this select 0; +_source = _this select 1; + +_fuel = _source getVariable ["AGM_amountFuelCargo", getNumber (configFile >> "CfgVehicles" >> typeOf _source >> "AGM_fuelCapacityCargo")]; + +_capacity = getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_fuelCapacity"); + +_fuelVehicle = fuel _vehicle * _capacity; + +if (_fuel + _fuelVehicle < _capacity) then { + _fuelVehicle = _fuelVehicle + _fuel; + _fuel = 0; +} else { + _fuel = _fuel + _fuelVehicle - _capacity; + _fuelVehicle = _capacity; +}; + +[[_vehicle, _fuelVehicle / _capacity], "{(_this select 0) setFuel (_this select 1)}", _vehicle] call AGM_Core_fnc_execRemoteFnc; +_source setVariable ["AGM_amountFuelCargo", _fuel, true]; + +_displayName = getText (configfile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + +_text = format [localize "STR_AGM_Resupply_RefueledVehicle", _displayName]; +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_canGetIn.sqf b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_canGetIn.sqf new file mode 100644 index 0000000000..384dd69bee --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_canGetIn.sqf @@ -0,0 +1,22 @@ +// by commy2 + +private ["_vehicle", "_config", "_turret", "_configTurret", "_memoryPointGunner", "_distance"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> typeOf _vehicle; + +_turret = [typeOf _vehicle] call AGM_Core_fnc_getTurretGunner; +_configTurret = [_config, _turret] call AGM_Core_fnc_getTurretConfigPath; + +if (_turret isEqualTo []) exitWith {false}; + +_memoryPointGunner = getText (_configTurret >> "memoryPointsGetInGunner"); + +_distance = getNumber (_config >> "getInRadius"); + +isNull (gunner _vehicle) && +{alive _vehicle} && +{!(_vehicle lockedTurret _turret)} && +{getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "isUav") != 1} && +{player distance (_vehicle modeltoworld (_vehicle selectionPosition _memoryPointGunner)) < _distance || {vehicle player == _vehicle}} diff --git a/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_canRotate.sqf b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_canRotate.sqf new file mode 100644 index 0000000000..89fc30e1af --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_canRotate.sqf @@ -0,0 +1,8 @@ +// by commy2 + +private "_vehicle"; + +_vehicle = _this select 0; + +isNull (gunner _vehicle) && +{alive _vehicle} diff --git a/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_getIn.sqf b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_getIn.sqf new file mode 100644 index 0000000000..1728b6d5f6 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_getIn.sqf @@ -0,0 +1,8 @@ +// by commy2 + +_vehicle = _this select 0; + +player action [ + ["GetInGunner", "MoveToGunner"] select (vehicle player == _vehicle), + _vehicle +]; diff --git a/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_rotate.sqf b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_rotate.sqf new file mode 100644 index 0000000000..51aa796a89 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/StaticWeapons/fn_rotate.sqf @@ -0,0 +1,15 @@ +// by commy2 + +player playActionNow "PutDown"; + +_this spawn { + _vehicle = _this select 0; + _isClockwise = _this select 1; + + sleep 1; + + _vehicle setDir getDir _vehicle + ([-22.5, 22.5] select _isClockwise); + _vehicle setPosASL getPosASL _vehicle; + + [_vehicle, "{_this setVectorUp (surfaceNormal getPosASL _this)}", _vehicle] call AGM_Core_fnc_execRemoteFnc; +}; diff --git a/TO_MERGE/agm/Logistics/functions/UAVs/fn_refuel.sqf b/TO_MERGE/agm/Logistics/functions/UAVs/fn_refuel.sqf new file mode 100644 index 0000000000..7ed4fc10ed --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/UAVs/fn_refuel.sqf @@ -0,0 +1,11 @@ +_target = _this select 0; +_caller = _this select 1; + +[player, "AinvPknlMstpSnonWnonDr_medic5", 0] call AGM_Core_fnc_doAnimation; + +AGM_UAVs_refuelAbort = { + [player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; +}; + +[10,[_target,_caller], "AGM_UAVs_fnc_refuelCallback", localize "STR_AGM_UAVs_Battery_Recharge", "AGM_UAVs_refuelAbort"] call AGM_Core_fnc_progressBar; +[_target] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/UAVs/fn_refuelCallback.sqf b/TO_MERGE/agm/Logistics/functions/UAVs/fn_refuelCallback.sqf new file mode 100644 index 0000000000..8154e567ab --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/UAVs/fn_refuelCallback.sqf @@ -0,0 +1,7 @@ +_target = _this select 0; +_caller = _this select 1; + +if !("AGM_UAVBattery" in items _caller) exitWith {}; + +_target setFuel 1; +_caller removeItem "AGM_UAVBattery"; diff --git a/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFence.sqf b/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFence.sqf new file mode 100644 index 0000000000..2a805576be --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFence.sqf @@ -0,0 +1,26 @@ +// by gpgpgpgp, edited by commy2 + +private ["_fence", "_t"]; + +_t = _this select 0; +_fence = _this select 1; + +if (cadetMode) then { + { + [player, "{_this groupChat localize 'STR_AGM_CuttingFenceChat'}", _x] call AGM_Core_fnc_execRemoteFnc; + } forEach units group player; +}; + +if !([player] call AGM_Core_fnc_isEngineer) then { + _t = _t + 5; +}; + +[player, "AinvPknlMstpSnonWnonDr_medic5", 0] call AGM_Core_fnc_doAnimation; + +if (_t > 4.5) then { + playSound "AGM_wirecutter_sound_long"; +} else { + playSound "AGM_wirecutter_sound"; +}; + +[_t, [_fence], "AGM_Wirecutter_fnc_cutDownFenceCallback", localize "STR_AGM_CuttingFence", "AGM_Wirecutter_fnc_cutDownFenceAbort"] call AGM_Core_fnc_progressBar; diff --git a/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFenceAbort.sqf b/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFenceAbort.sqf new file mode 100644 index 0000000000..a6f20b7d0f --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFenceAbort.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; diff --git a/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFenceCallback.sqf b/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFenceCallback.sqf new file mode 100644 index 0000000000..603429ba95 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/Wirecutter/fn_cutDownFenceCallback.sqf @@ -0,0 +1,7 @@ +_fence = _this select 0; + +if (alive player) then { + _fence setdamage 1; + [localize "STR_AGM_FenceCut"] call AGM_Core_fnc_displayTextStructured; + [player, "AmovPknlMstpSrasWrflDnon", 1] call AGM_Core_fnc_doAnimation; +}; diff --git a/TO_MERGE/agm/Logistics/functions/fn_canLoadItem.sqf b/TO_MERGE/agm/Logistics/functions/fn_canLoadItem.sqf new file mode 100644 index 0000000000..b73d89679d --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_canLoadItem.sqf @@ -0,0 +1,61 @@ +/* + Name: AGM_Logistics_fnc_getLoadPoints + + Author: + commy2 + Garth de Wet (LH) + + Description: + + + Parameters: + 0: OBJECT - item to attempt to load + + Returns: + BOOLEAN + + Example: + _attachPoints = _truck call AGM_Logistics_fnc_getLoadPoints; +*/ +#define TRUNK_SELECTION "doplnovani" +#define MAX_DISTANCE 8 + +_nearestVehicles = [ + getPos player nearestObject "Car", + getPos player nearestObject "Tank", + getPos player nearestObject "Helicopter", + getPos player nearestObject "Plane", + getPos player nearestObject "Ship" +]; + +_distances = []; +{ + if (typeName _x == "OBJECT") then { + _distances pushBack (player distance _x); + }; +} forEach _nearestVehicles; + +_distance = MAX_DISTANCE; +{ + _distance = _distance min _x; +} forEach _distances; + +if (_distance == MAX_DISTANCE) exitWith {false}; +_result = false; + +AGM_Logistics_targetVehicle = _nearestVehicles select (_distances find _distance); +_size = getNumber(ConfigFile >> "CfgVehicles" >> Typeof(_this select 0) >> "AGM_Size"); +if (isClass (configFile >> "CfgVehicles" >> typeOf(AGM_Logistics_targetVehicle) >> "AGM_Load")) then { + _attachPoints = AGM_Logistics_targetVehicle call AGM_Logistics_fnc_getLoadPoints; + { + if ([_x select 1, _x select 3] call AGM_Logistics_fnc_remainingSpace >= _size) exitWith { + _result = true; + }; + } forEach _attachPoints; +} else { + _loadedItems = AGM_Logistics_targetVehicle getVariable ["AGM_Logistics_loadedItems", []]; + if ([getNumber (configFile >> "CfgVehicles" >> typeOf AGM_Logistics_targetVehicle >> "AGM_Vehicle_Cargo"), _loadedItems] call AGM_Logistics_fnc_remainingSpace >= _size) then { + _result = true; + }; +}; +_result && {_this select 0 != missionNamespace getVariable ["AGM_Fortifications_crate", objNull]} diff --git a/TO_MERGE/agm/Logistics/functions/fn_canLoadItemCarried.sqf b/TO_MERGE/agm/Logistics/functions/fn_canLoadItemCarried.sqf new file mode 100644 index 0000000000..d3af0163c5 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_canLoadItemCarried.sqf @@ -0,0 +1,25 @@ +// Original: Garth de Wet (LH), edited by commy2 + +private ["_vehicle", "_item", "_result", "_size", "_attachPoints", "_loadedItems"]; + +_vehicle = _this select 0; + +_item = player getVariable ["AGM_carriedItem", objNull]; +if (isNull _item) exitWith {false}; + +_result = false; +_size = getNumber(ConfigFile >> "CfgVehicles" >> Typeof(_item) >> "AGM_Size"); +if (isClass (configFile >> "CfgVehicles" >> typeOf(_vehicle) >> "AGM_Load")) then { + _attachPoints = _vehicle call AGM_Logistics_fnc_getLoadPoints; + { + if ([_x select 1, _x select 3] call AGM_Logistics_fnc_remainingSpace >= _size) exitWith { + _result = true; + }; + } count _attachPoints; +} else { + _loadedItems = _vehicle getVariable ["AGM_Logistics_loadedItems", []]; + if ([getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Vehicle_Cargo"), _loadedItems] call AGM_Logistics_fnc_remainingSpace >= _size) then { + _result = true; + }; +}; +_result diff --git a/TO_MERGE/agm/Logistics/functions/fn_canLoadMagazine.sqf b/TO_MERGE/agm/Logistics/functions/fn_canLoadMagazine.sqf new file mode 100644 index 0000000000..658c3b63c1 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_canLoadMagazine.sqf @@ -0,0 +1,34 @@ +/* + Name: AGM_Logistics_fnc_canLoadMagazine + + Author: + commy2 + Garth de Wet (LH) + + Description: + Checks whether the passed magazine can be loaded into the vehicle + + Parameters: + 0: OBJECT - vehicle to load + 1: STRING - name of magazine to load + + Returns: + BOOLEAN + + Example: + _canLoad = [AGM_Interaction_Target, "Titan_AA"] call AGM_Logistics_fnc_canLoadMagazine; +*/ +private ["_vehicle", "_magazine", "_weapon"]; +_vehicle = _this select 0; +_magazine = _this select 1; +_weapon = (_this call AGM_Logistics_fnc_getWeaponsOfMagazine) select 0; +_result = false; + +if (getNumber (configFile >> "CfgMagazines" >> _magazine >> "AGM_MagazineReloadType") == 1) then { + // The magazine is wrong, it needs to be the currently loaded magazine not the magazine to load. + _result = (_vehicle ammo _weapon) < getNumber (configFile >> "CfgMagazines" >> _magazine >> "count"); +} else { + _result = true; +}; + +_result diff --git a/TO_MERGE/agm/Logistics/functions/fn_getLoadPoints.sqf b/TO_MERGE/agm/Logistics/functions/fn_getLoadPoints.sqf new file mode 100644 index 0000000000..cec09883b1 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_getLoadPoints.sqf @@ -0,0 +1,40 @@ +/* + Name: AGM_Logistics_fnc_getLoadPoints + + Author: Garth de Wet (LH) + + Description: + + + Parameters: + OBJECT - vehicle + + Returns: + ARRAY: + ARRAY: + 0: STRING - memory point + 1: NUMBER - load size + 2: ARRAY - load position + 0: NUMBER - X + 1: NUMBER - Y + 2: NUMBER - z + 3: ARRAY (OBJECTS) - Currently loaded items in load point + 4: STRING - Class name + + Example: + _attachPoints = _truck call AGM_Logistics_fnc_getLoadPoints; +*/ +private ["_result", "_config", "_count", "_class"]; +_result = []; + +_config = configFile >> "CfgVehicles" >> typeOf(_this) >> "AGM_Load"; +_count = count _config; + +for "_index" from 0 to (_count - 1) do { + _class = _config select _index; + if (isClass (_class)) then { + _result pushBack [getText (_class >> "memoryPoint"), getNumber (_class >> "loadSize"), GetArray(_class >> "loadPosition"), _this getVariable [format["AGM_Load_%1", configName _class], []], configName _class]; + }; +}; + +_result diff --git a/TO_MERGE/agm/Logistics/functions/fn_getLoadableMagazines.sqf b/TO_MERGE/agm/Logistics/functions/fn_getLoadableMagazines.sqf new file mode 100644 index 0000000000..75c093f01e --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_getLoadableMagazines.sqf @@ -0,0 +1,39 @@ +/* + Name: AGM_Logistics_fnc_getLoadableMagazines + + Author: + commy2 + Garth de Wet (LH) + + Description: + Gets all magazines loadable from the unit into the target vehicle + + Parameters: + 0: OBJECT - unit to check magazines of + 1: OBJECT - vehicle to check weapons and magazine types. + + Returns: + ARRAY - Loadable magazines of the unit for the vehicle. + + Example: + _mags = [player, AGM_Interaction_Target] call AGM_Logistics_fnc_getLoadableMagazines; +*/ +private ["_vehicle", "_weapons", "_magazines"]; +_unit = _this select 0; +_vehicle = _this select 1; + +_weapons = weapons _vehicle; + +_magazines = []; +{ + _magazines = _magazines + getArray (configfile >> "CfgWeapons" >> _x >> "AGM_Magazines"); +} forEach _weapons; + +_unitMagazines = magazines _unit; //(magazines _unit + magazineCargo _vehicle)) +{ + if (!(_x in _unitMagazines) || {!([_vehicle, _x] call AGM_Logistics_fnc_canLoadMagazine)}) then { + _magazines = _magazines - [_x]; + }; +} forEach _magazines; + +_magazines diff --git a/TO_MERGE/agm/Logistics/functions/fn_getPosLoadable.sqf b/TO_MERGE/agm/Logistics/functions/fn_getPosLoadable.sqf new file mode 100644 index 0000000000..9f313fa4a5 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_getPosLoadable.sqf @@ -0,0 +1,22 @@ +/* + * Author: PabstMirror + * + * Returns the position of the object, OR he position of the transport in case the object is loaded into cargo. + * + * Argument: + * 0: Any object (Object) + * + * Return value: + * Position of the object or transport (Position 3D). + */ + +private "_theCrate"; + +_theCrate = _this select 0; +{ + if (_theCrate in (_x getVariable ["AGM_Logistics_loadedItems", []])) exitWith { + _theCrate = _x; + }; +} forEach vehicles; + +getPos _theCrate diff --git a/TO_MERGE/agm/Logistics/functions/fn_getWeaponsOfMagazine.sqf b/TO_MERGE/agm/Logistics/functions/fn_getWeaponsOfMagazine.sqf new file mode 100644 index 0000000000..2d03f46652 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_getWeaponsOfMagazine.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_vehicle", "_magazine", "_weapons", "_weaponMagazines", "_magazineWeapons"]; + +_vehicle = _this select 0; +_magazine = _this select 1; + +if (isNil "_magazine") exitWith {[]}; + +_weapons = weapons _vehicle; +_weaponMagazines = []; +{ + _weaponMagazines set [_forEachIndex, getArray (configFile >> "CfgWeapons" >> _x >> "AGM_Magazines")] +} forEach _weapons; + +_magazineWeapons = []; +{ + if (_magazine in _x) then {_magazineWeapons pushBack (_weapons select _forEachIndex);}; +} forEach _weaponMagazines; +_magazineWeapons diff --git a/TO_MERGE/agm/Logistics/functions/fn_hasLoadedItems.sqf b/TO_MERGE/agm/Logistics/functions/fn_hasLoadedItems.sqf new file mode 100644 index 0000000000..73a2ca41b8 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_hasLoadedItems.sqf @@ -0,0 +1,55 @@ +/* + Name: AGM_Logistics_fnc_hasLoadedItems + + Author: + Garth de Wet (LH) + + Description: + + + Parameters: + 0: OBJECT - vehicle to check for loaded items + + Returns: + BOOLEAN + + Example: + _vehicleLoaded = [_truck] call AGM_Logistics_fnc_hasLoadedItems; +*/ + +private ["_result", "_vehicle"]; + +_result = false; +_vehicle = _this select 0; + +// add default items +_items = _vehicle getVariable "AGM_Logistics_loadedItems"; +if (isNil "_items") then { + switch (true) do { + /* + "B_Truck_01_transport_F" + "O_Truck_02_transport_F" + "I_Truck_02_transport_F" + "O_Truck_03_transport_F" + */ + case (_vehicle isKindOf "Car_F") : { + [_vehicle] call compile preprocessFileLineNumbers "\AGM_Logistics\scripts\itemsCar.sqf"; + }; + case (_vehicle isKindOf "Tank_F") : { + [_vehicle] call compile preprocessFileLineNumbers "\AGM_Logistics\scripts\itemsTank.sqf"; + }; + }; +}; + +if (isClass (configFile >> "CfgVehicles" >> typeOf(_vehicle) >> "AGM_Load")) then { + _attachPoints = (_vehicle) call AGM_Logistics_fnc_getLoadPoints; + { + if (count (_x select 3) > 0) exitWith { + _result = true; + }; + } count _attachPoints; +} else { + _result = (count (_vehicle getVariable ["AGM_Logistics_loadedItems", []])) > 0; +}; + +_result diff --git a/TO_MERGE/agm/Logistics/functions/fn_initLoadedObject.sqf b/TO_MERGE/agm/Logistics/functions/fn_initLoadedObject.sqf new file mode 100644 index 0000000000..0db052c525 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_initLoadedObject.sqf @@ -0,0 +1,13 @@ +// by commy2 + +private ["_vehicle", "_item", "_loadedItems"]; + +_vehicle = _this select 0; +_item = _this select 1; + +_loadedItems = _vehicle getVariable ["AGM_Logistics_loadedItems", []]; +_loadedItems pushBack _item; + +_item attachTo [AGM_Logistics_loadedItemsDummy, [0, 0, 0], ""]; + +_vehicle setVariable ["AGM_Logistics_loadedItems", _loadedItems, true]; diff --git a/TO_MERGE/agm/Logistics/functions/fn_loadItem.sqf b/TO_MERGE/agm/Logistics/functions/fn_loadItem.sqf new file mode 100644 index 0000000000..f4fec4da5a --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_loadItem.sqf @@ -0,0 +1,40 @@ +/* + Name: AGM_Logistics_fnc_loadItem + + Author: + commy2 + Garth de Wet (LH) + + Description: + + + Parameters: + 0: OBJECT - Item to load + 1: OBJECT - Vehicle to load into + 2: STRING - Load point class + + Returns: + NOTHING + + Example: + [AGM_Interaction_Target, AGM_Logistics_targetVehicle, "MidLoad"] call AGM_Logistics_fnc_loadItem; +*/ +_item = _this select 0; +_vehicle = _this select 1; + +_item setVariable ["AGM_isUsedBy", player, true]; + +_size = getNumber(ConfigFile >> "CfgVehicles" >> Typeof(_item) >> "AGM_Size"); +if (isClass (configFile >> "CfgVehicles" >> typeOf(_vehicle) >> "AGM_Load")) exitWith { + _attachPoints = _vehicle call AGM_Logistics_fnc_getLoadPoints; + { + if ((_x select 4) == (_this select 2)) exitWith { + if ([_x select 1, _x select 3] call AGM_Logistics_fnc_remainingSpace >= _size) then { + [5 * _size, [_item, _vehicle, _x select 4, false], "AGM_Logistics_fnc_loadItemCallback", localize "STR_AGM_Logistics_LoadingItem", "AGM_Logistics_fnc_loadItemAbort"] call AGM_Core_fnc_progressBar; + }; + }; + } count _attachPoints; +}; +// Fallback to magic menu +[5 * _size, [_item, _vehicle, "", true], "AGM_Logistics_fnc_loadItemCallback", localize "STR_AGM_Logistics_LoadingItem", "AGM_Logistics_fnc_loadItemAbort"] call AGM_Core_fnc_progressBar; +[_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Logistics/functions/fn_loadItemAbort.sqf b/TO_MERGE/agm/Logistics/functions/fn_loadItemAbort.sqf new file mode 100644 index 0000000000..e6dc3cc09e --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_loadItemAbort.sqf @@ -0,0 +1,7 @@ +// by commy2 + +_item = _this select 0; + +if (_item != player getVariable ["AGM_carriedItem", objNull]) then { + _item setVariable ["AGM_isUsedBy", objNull, true]; +}; diff --git a/TO_MERGE/agm/Logistics/functions/fn_loadItemCallback.sqf b/TO_MERGE/agm/Logistics/functions/fn_loadItemCallback.sqf new file mode 100644 index 0000000000..2958065eef --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_loadItemCallback.sqf @@ -0,0 +1,66 @@ +// by commy2 + +_item = _this select 0; +_vehicle = _this select 1; +_className = _this select 2; +_magicMenu = _this select 3; +_attachPoint = ""; +_attachPos = [0,0,0]; +_loaded = false; +_dummy = objNull; + +if (_item == player getVariable ["AGM_carriedItem", objNull]) then { + player call AGM_Drag_fnc_releaseObject; +}; + +// add default items +_items = _vehicle getVariable "AGM_Logistics_loadedItems"; +if (isNil "_items") then { + switch (true) do { + case (_vehicle isKindOf "Car_F") : { + [_vehicle] call compile preprocessFileLineNumbers "\AGM_Logistics\scripts\itemsCar.sqf"; + }; + case (_vehicle isKindOf "Tank_F") : { + [_vehicle] call compile preprocessFileLineNumbers "\AGM_Logistics\scripts\itemsTank.sqf"; + }; + }; +}; + +_size = getNumber(ConfigFile >> "CfgVehicles" >> Typeof(_item) >> "AGM_Size"); +if (!_magicMenu) then { + _attachPoints = _vehicle call AGM_Logistics_fnc_getLoadPoints; + { + if ((_x select 4) == _className) exitWith { + if ([_x select 1, _x select 3] call AGM_Logistics_fnc_remainingSpace >= _size) then { + _loadedItems = _x select 3; + _loadedItems pushBack _item; + _vehicle setVariable [format ["AGM_Load_%1", _className], _loadedItems, true]; + _loaded = true; + _attachPoint = _x select 0; + _attachPos = _x select 1; + }; + }; + } count _attachPoints; +} else { + _loadedItems = _vehicle getVariable ["AGM_Logistics_loadedItems", []]; + if ([getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "AGM_Vehicle_Cargo"), _loadedItems] call AGM_Logistics_fnc_remainingSpace >= _size) then { + _loadedItems pushBack _item; + _vehicle setVariable ["AGM_Logistics_loadedItems", _loadedItems, true]; + _loaded = true; + _dummy = AGM_Logistics_loadedItemsDummy; + }; +}; + +if (_Loaded) then { + //0 spawn AGM_Logistics_dropItem; + _item attachTo [_dummy, _attachPos, _attachPoint]; + _item enableSimulationGlobal false; + _item hideObjectGlobal true; + + _itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName"); + _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + + [format [localize "STR_AGM_Logistics_LoadedItem", _itemName, _vehicleName]] call AGM_Core_fnc_displayTextStructured; +}; + +_item setVariable ["AGM_isUsedBy", objNull, true]; diff --git a/TO_MERGE/agm/Logistics/functions/fn_loadMagazine.sqf b/TO_MERGE/agm/Logistics/functions/fn_loadMagazine.sqf new file mode 100644 index 0000000000..b024c24be1 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_loadMagazine.sqf @@ -0,0 +1,33 @@ +/* + Name: AGM_Logistics_fnc_loadMagazine + + Author: + commy2 + Garth de Wet (LH) + + Description: + Loads the passed magazine into the vehicle from the passed unit + + Parameters: + 0: OBJECT - unit to perform loading + 1: OBJECT - vehicle to load + 2: STRING - name of magazine to load + + Returns: + Nothing + + Example: + [player,AGM_Interaction_Target, "Titan_AA"] call AGM_Logistics_fnc_loadMagazine; +*/ +private ["_unit", "_vehicle", "_magazine"]; +_unit = _this select 0; +_vehicle = _this select 1; +_magazine = _this select 2; + +_weapon = ([_vehicle, _magazine] call AGM_Logistics_fnc_getWeaponsOfMagazine) select 0; +if (_unit == player) then { + [10, [_unit, _vehicle, _magazine, _weapon], "AGM_Logistics_fnc_loadMagazineCallback", "Loading Magazine ..."] call AGM_Core_fnc_progressBar; +} else { + sleep 10; + [_unit, _vehicle, _magazine, _weapon] call AGM_Logistics_fnc_loadMagazineCallback; +}; diff --git a/TO_MERGE/agm/Logistics/functions/fn_loadMagazineCallback.sqf b/TO_MERGE/agm/Logistics/functions/fn_loadMagazineCallback.sqf new file mode 100644 index 0000000000..d21dc12af0 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_loadMagazineCallback.sqf @@ -0,0 +1,38 @@ +/* + Name: AGM_Logistics_fnc_loadMagazineCallback + + Author: + commy2 + Garth de Wet (LH) + + Description: + + Parameters: + 0: OBJECT - unit to perform loading + 1: OBJECT - vehicle to load + 2: STRING - name of magazine to load + 3: STRING - Weapon + + Returns: + Nothing + + Example: + [player,AGM_Interaction_Target, "Titan_AA", "missiles_titan"] call AGM_Logistics_fnc_loadMagazineCallback; +*/ +private ["_unit", "_vehicle", "_magazine"]; +_unit = _this select 0; +_vehicle = _this select 1; +_magazine = _this select 2; +_weapon = _this select 3; + +if !([_vehicle, _magazine] call AGM_Logistics_fnc_canLoadMagazine) exitWith {}; + +if (_magazine in magazines _unit) then { + _unit removeMagazineGlobal _magazine; + + _itemName = getText (configFile >> "CfgMagazines" >> _magazine >> "displayName"); + _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); + [format ["%1 loaded into %2", _itemName, _vehicleName], true] call AGM_Core_fnc_displayText; + + [[_vehicle, _magazine, _weapon], "AGM_Logistics_fnc_loadMagazineRemote", _vehicle] call AGM_Core_fnc_execRemoteFnc; +}; diff --git a/TO_MERGE/agm/Logistics/functions/fn_loadMagazineRemote.sqf b/TO_MERGE/agm/Logistics/functions/fn_loadMagazineRemote.sqf new file mode 100644 index 0000000000..f1e954a08e --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_loadMagazineRemote.sqf @@ -0,0 +1,29 @@ +/* + Name: AGM_Logistics_fnc_loadMagazineRemote + + Author: + Garth de Wet (LH) + + Description: + Loads the magazine into the vehicle. Is executed on the owner of the vehicle. (setAmmo requirement) + + Parameters: + 0: OBJECT - vehicle to load + 1: STRING - name of magazine to load + + Returns: + Nothing + + Example: + [AGM_Interaction_Target, "Titan_AA"] call AGM_Logistics_fnc_loadMagazineRemote; +*/ +private ["_vehicle", "_magazine", "_weapon"]; +_vehicle = _this select 0; +_magazine = _this select 1; +_weapon = _this select 2; + +if (getNumber (configFile >> "CfgMagazines" >> _magazine >> "AGM_MagazineReloadType") == 1) then { + _vehicle setAmmo [_weapon, (_vehicle ammo _weapon) + 1]; +} else { + _vehicle addMagazineGlobal _magazine; +}; diff --git a/TO_MERGE/agm/Logistics/functions/fn_openLoadUI.sqf b/TO_MERGE/agm/Logistics/functions/fn_openLoadUI.sqf new file mode 100644 index 0000000000..864f844cfa --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_openLoadUI.sqf @@ -0,0 +1,54 @@ +/* + Name: AGM_Logistics_fnc_openLoadUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for load position selection + + Parameters: + + + Returns: + Nothing + + Example: + [AGM_Interaction_Target, AGM_Logistics_targetVehicle] call AGM_Logistics_fnc_openLoadUI; +*/ +private ["_vehicle","_result", "_item", "_index"]; +_item = _this select 0; +_vehicle = _this select 1; + +AGM_Interaction_Target = _item; +AGM_Logistics_targetVehicle = _vehicle; + +if (isClass (configFile >> "CfgVehicles" >> typeOf(_vehicle) >> "AGM_Load")) exitWith { + _size = getNumber(ConfigFile >> "CfgVehicles" >> Typeof(_item) >> "AGM_Size"); + _attachPoints = _vehicle call AGM_Logistics_fnc_getLoadPoints; + + _actions = [localize "STR_AGM_Logistics_LoadMenu", localize "STR_AGM_Logistics_LoadItem"] call AGM_Interaction_fnc_prepareSelectMenu; + { + if ([_x select 1, _x select 3] call AGM_Logistics_fnc_remainingSpace >= _size) then { + _actions = [ + _actions, + getText (ConfigFile >> "CfgVehicles" >> typeOf(_vehicle) >> "AGM_Load" >> _x select 4 >> "DisplayName"), + getText (ConfigFile >> "CfgVehicles" >> typeOf(_vehicle) >> "picture"), + _x select 4 + ] call AGM_Interaction_fnc_AddSelectableItem; + }; + } count _attachPoints; + + [ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + [AGM_Interaction_Target, AGM_Logistics_targetVehicle, _this] call AGM_Logistics_fnc_loadItem; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenu}; + } + ] call AGM_Interaction_fnc_openSelectMenu; +}; +call AGM_Interaction_fnc_hideMenu; +[AGM_Interaction_Target, AGM_Logistics_targetVehicle, ""] call AGM_Logistics_fnc_loadItem; diff --git a/TO_MERGE/agm/Logistics/functions/fn_openMagazineMenu.sqf b/TO_MERGE/agm/Logistics/functions/fn_openMagazineMenu.sqf new file mode 100644 index 0000000000..ee8670b42d --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_openMagazineMenu.sqf @@ -0,0 +1,44 @@ +/* + Name: AGM_Logistics_fnc_openMagazineMenu + + Author: Garth de Wet (LH) + + Description: + Opens the UI for selecting magazines to load into vehicle. + + Parameters: + 0: OBJECT - vehicle + + Returns: + Nothing + + Example: + [AGM_Interaction_Target] call AGM_Logistics_fnc_openMagazineMenu; +*/ +private ["_vehicle","_magazines"]; +AGM_Logistics_targetVehicle = _this select 0; +_magazines = [player, AGM_Logistics_targetVehicle] call AGM_Logistics_fnc_getLoadableMagazines; + +_listed = []; +_actions = [localize "STR_AGM_Logistics_MagazineMenu", localize "STR_AGM_Logistics_LoadItem"] call AGM_Interaction_fnc_prepareSelectMenu; +{ + if (!(_x in _listed) && {[AGM_Logistics_targetVehicle, _x] call AGM_Logistics_fnc_canLoadMagazine}) then { + _class = ConfigFile >> "CfgMagazines" >> _x; + _actions = [ + _actions, + getText (_class >> "DisplayName"), + getText (_class >> "picture"), + _x + ] call AGM_Interaction_fnc_AddSelectableItem; + _listed pushBack _x; + }; +} count _magazines; + +[ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + [player, AGM_Logistics_targetVehicle, _this] call AGM_Logistics_fnc_loadMagazine; + }, + {if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenu};} +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Logistics/functions/fn_openUnloadUI.sqf b/TO_MERGE/agm/Logistics/functions/fn_openUnloadUI.sqf new file mode 100644 index 0000000000..470e5fe5ac --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_openUnloadUI.sqf @@ -0,0 +1,58 @@ +/* + Name: AGM_Logistics_fnc_openUnloadUI + + Author: Garth de Wet (LH) + + Description: + Opens the UI for unload position selection + + Parameters: + 0: OBJECT - vehicle to open unload UI on + + Returns: + Nothing + + Example: + [AGM_Logistics_targetVehicle] call AGM_Logistics_fnc_openUnloadUI; +*/ +private ["_vehicle", "_index", "_listIDC"]; +_vehicle = _this select 0; + +AGM_Logistics_targetVehicle = _vehicle; +_actions = [localize "STR_AGM_Logistics_UnloadMenu", localize "STR_AGM_Logistics_UnloadItem"] call AGM_Interaction_fnc_prepareSelectMenu; +if (isClass (configFile >> "CfgVehicles" >> typeOf(_vehicle) >> "AGM_Load")) then { + _attachPoints = _vehicle call AGM_Logistics_fnc_getLoadPoints; + { + _class = _x select 4; + { + _actions = [ + _actions, + getText (ConfigFile >> "CfgVehicles" >> typeOf(_x) >> "displayName"), + getText (ConfigFile >> "CfgVehicles" >> typeOf(_x) >> "picture"), + ["AGM_Load_" + _class, _foreachIndex] + ] call AGM_Interaction_fnc_AddSelectableItem; + } foreach (_x select 3); + } count _attachPoints; +}; + +_attachPoints = _vehicle getVariable ["AGM_Logistics_loadedItems", []]; +{ + _actions = [ + _actions, + getText (ConfigFile >> "CfgVehicles" >> typeOf(_x) >> "displayName"), + getText (ConfigFile >> "CfgVehicles" >> typeOf(_x) >> "picture"), + ["AGM_Logistics_loadedItems", _foreachIndex] + ] call AGM_Interaction_fnc_AddSelectableItem; +} foreach _attachPoints; + +[ + _actions, + { + call AGM_Interaction_fnc_hideMenu; + [AGM_Logistics_targetVehicle, _this] spawn AGM_Logistics_fnc_unloadItem; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenu}; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/Logistics/functions/fn_remainingSpace.sqf b/TO_MERGE/agm/Logistics/functions/fn_remainingSpace.sqf new file mode 100644 index 0000000000..25cf8c3c92 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_remainingSpace.sqf @@ -0,0 +1,39 @@ +/* + Name: AGM_Logistics_fnc_remainingSpace + + Author: Garth de Wet (LH) + + Description: + + + Parameters: + 0: NUMBER - Load Size of vehicle + 1: ARRAY - Objects stored in vehicle + + Returns: + ARRAY: + ARRAY: + 0: STRING - memory point + 1: NUMBER - load size + 2: ARRAY - load position + 0: NUMBER - X + 1: NUMBER - Y + 2: NUMBER - z + 3: ARRAY (OBJECTS) - Currently loaded items in load point + + Example: + _freeSpace = [3, (_truck call AGM_Logistics_fnc_getLoadPoints) select 3] call AGM_Logistics_fnc_remainingSpace; +*/ +private ["_size", "_objects", "_usedSize", "_objSize"]; +_size = _this select 0; +_objects = _this select 1; +_usedSize = 0; +{ + _objSize = 1; + if (isNumber (ConfigFile >> "CfgVehicles" >> typeof(_x) >> "AGM_Size")) then { + _objSize = getNumber(ConfigFile >> "CfgVehicles" >> typeof(_x) >> "AGM_Size"); + }; + _usedSize = _usedSize + _objSize; +} count _objects; + +(_size - _usedSize) diff --git a/TO_MERGE/agm/Logistics/functions/fn_spawnObject.sqf b/TO_MERGE/agm/Logistics/functions/fn_spawnObject.sqf new file mode 100644 index 0000000000..96ad3e377b --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_spawnObject.sqf @@ -0,0 +1,17 @@ +// by commy2 + +private ["_item", "_position", "_damage"]; + +_item = _this select 0; +_position = _this select 1; +_damage = _this select 2; + +if (isNil "_damage") then {_damage = 0}; + +_position = _position findEmptyPosition [0, 4, _item]; +if (count _position == 0) then {_position = _this select 1}; +_position set [2, 0]; + +_item = createVehicle [_item, _position, [], 0, "NONE"]; +_item setDamage _damage; +_item diff --git a/TO_MERGE/agm/Logistics/functions/fn_unloadItem.sqf b/TO_MERGE/agm/Logistics/functions/fn_unloadItem.sqf new file mode 100644 index 0000000000..c9fdf4ef81 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_unloadItem.sqf @@ -0,0 +1,34 @@ +/* + Name: AGM_Logistics_fnc_loadItem + + Author: + commy2 + Garth de Wet (LH) + + Description: + + + Parameters: + 0: OBJECT - Item to load + 1: OBJECT - Vehicle to load into + 2: ARRAY + 0: String of variable name + 1: index within variable + + Returns: + NOTHING + + Example: + [AGM_Interaction_Target, AGM_Logistics_targetVehicle, ["AGM_Load_MidLoad", 1]] spawn AGM_Logistics_fnc_loadItem; +*/ +_vehicle = _this select 0; +_variableName = (_this select 1) select 0; +_varIndex = (_this select 1) select 1; +_item = (_vehicle getVariable _variableName) select _varIndex; + +_size = getNumber(ConfigFile >> "CfgVehicles" >> Typeof(_item) >> "AGM_Size"); + +if (!isNull(_item)) then { + [_size * 5, [_vehicle, _item, _variableName], "AGM_Logistics_fnc_unloadItemCallback", localize "STR_AGM_Logistics_UnloadingItem"] call AGM_Core_fnc_progressBar; + [_vehicle] call AGM_Core_fnc_closeDialogIfTargetMoves; +}; diff --git a/TO_MERGE/agm/Logistics/functions/fn_unloadItemCallback.sqf b/TO_MERGE/agm/Logistics/functions/fn_unloadItemCallback.sqf new file mode 100644 index 0000000000..b873dff2e3 --- /dev/null +++ b/TO_MERGE/agm/Logistics/functions/fn_unloadItemCallback.sqf @@ -0,0 +1,32 @@ +// by commy2 +_vehicle = _this select 0; +_item = _this select 1; +_itemHolder = _this select 2; + +_loadedItems = _vehicle getVariable [_itemHolder, []]; + +// exit here if the item was unloaded by someone else +if !(_item in _loadedItems) exitWith {}; + +_loadedItems = _loadedItems - [_item]; +_vehicle setVariable [_itemHolder, _loadedItems, true]; + +player allowDamage false; +detach _item; +_item enableSimulationGlobal true; +_item hideObjectGlobal false; +[_item, "{{_x reveal _this} forEach allUnits}", 2] call AGM_Core_fnc_execRemoteFnc; + +_position = getPos player findEmptyPosition [0, 4, typeOf _item]; +if (count _position == 0) then {_position = getPosASL player}; +_position set [2, (getPosASL player) select 2]; + +_item setPosASL _position; +[_item, "{_this setVectorUp (surfaceNormal getPosASL _this)}", _item] call AGM_Core_fnc_execRemoteFnc; + +player reveal _item; +player allowDamage true; + +_itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName"); +_vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName"); +[format [localize "STR_AGM_Logistics_UnloadedItem", _itemName, _vehicleName]] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Logistics/scripts/itemsCar.sqf b/TO_MERGE/agm/Logistics/scripts/itemsCar.sqf new file mode 100644 index 0000000000..ffc89e115a --- /dev/null +++ b/TO_MERGE/agm/Logistics/scripts/itemsCar.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_vehicle", "_item"]; + +_vehicle = _this select 0; + +_item = ['AGM_JerryCan', [-1000, -1000, 100]] call AGM_Logistics_fnc_spawnObject; +[_vehicle, _item] call AGM_Logistics_fnc_initLoadedObject; + +// Do not add spare wheels to light vehicles like quad bikes and karts. +if (getMass _vehicle >= 1000) then { + _item = ['AGM_SpareWheel', [-1000, -1000, 100]] call AGM_Logistics_fnc_spawnObject; + [_vehicle, _item] call AGM_Logistics_fnc_initLoadedObject; +}; diff --git a/TO_MERGE/agm/Logistics/scripts/itemsTank.sqf b/TO_MERGE/agm/Logistics/scripts/itemsTank.sqf new file mode 100644 index 0000000000..83c6bacd32 --- /dev/null +++ b/TO_MERGE/agm/Logistics/scripts/itemsTank.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_vehicle", "_item"]; + +_vehicle = _this select 0; + +_item = ['AGM_SpareTrack', [-1000, -1000, 100]] call AGM_Logistics_fnc_spawnObject; +[_vehicle, _item] call AGM_Logistics_fnc_initLoadedObject; + +_item = ['AGM_SpareTrack', [-1000, -1000, 100]] call AGM_Logistics_fnc_spawnObject; +[_vehicle, _item] call AGM_Logistics_fnc_initLoadedObject; diff --git a/TO_MERGE/agm/Logistics/serverInit.sqf b/TO_MERGE/agm/Logistics/serverInit.sqf new file mode 100644 index 0000000000..6e617fab36 --- /dev/null +++ b/TO_MERGE/agm/Logistics/serverInit.sqf @@ -0,0 +1,5 @@ +// by commy2 + +AGM_Logistics_loadedItemsDummy = "Sign_Sphere10cm_F" createVehicle [-1000, -1000, 0]; +//AGM_Logistics_loadedItemsDummy setPosASL [-1000, -1000, 10]; +publicVariable "AGM_Logistics_loadedItemsDummy"; diff --git a/TO_MERGE/agm/Logistics/sound/wire_cut.ogg b/TO_MERGE/agm/Logistics/sound/wire_cut.ogg new file mode 100644 index 0000000000..246b15432c Binary files /dev/null and b/TO_MERGE/agm/Logistics/sound/wire_cut.ogg differ diff --git a/TO_MERGE/agm/Logistics/sound/wire_cut_long.ogg b/TO_MERGE/agm/Logistics/sound/wire_cut_long.ogg new file mode 100644 index 0000000000..36d25c9c73 Binary files /dev/null and b/TO_MERGE/agm/Logistics/sound/wire_cut_long.ogg differ diff --git a/TO_MERGE/agm/Logistics/stringtable.xml b/TO_MERGE/agm/Logistics/stringtable.xml new file mode 100644 index 0000000000..43d50f22df --- /dev/null +++ b/TO_MERGE/agm/Logistics/stringtable.xml @@ -0,0 +1,1306 @@ + + + + + + Load Menu + Menú de carga + Menu de chargement + Menu ładunku + Lademenü + Náklad vozidla + Menu de Carregamento + Menù di Caricamento + Berakodás menü + Меню загрузки + + + Load Item + Cargar objeto + Charger Objet + Załaduj obiekt + Gegenstand laden + Naložit Předmět + Carregar Item + Carica Oggetto + Tárgy berakodása + Загрузить прдмет + + + Loading ... + Cargando ... + Chargement... + Verladen ... + Ładowanie ... + Nakládání ... + Carregando ... + Caricamento ... + Berakodás ... + Загружаем ... + + + Unloading ... + Lade ab ... + Descargando ... + Déchargement ... + Rozładunku ... + Vykládání ... + Descarregando ... + Scaricamento ... + Kirakodás ... + Разгружаем ... + + + %1 loaded into %2 + %1 cargado en %2 + %1 chargé dans %2 + %1 in %2 verladen + %1 załadowano do %2 + %1 naloženo do %2 + %1 carregado em %2 + %1 caricato su %2 + %1 berakodva ide: %2 + %1 загружен в %2 + + + Unloaded %1 from %2 + %1 von %2 abgeladen + Descargado/a %1 de %2 + Déchargé %1 de %2 + Rozładowany %1 do %2 + Nezatížený %1 do %2 + %1 descarregado de %2 + Hai scaricato %1 da %2 + 1% kirakodva ebből: %2 + %1 разгружен из %2 + + + Unload Menu + Menú de descarga + Menu de déchargement + Menu rozładunku + Ablademenü + Vykládací menu + Menu de Descarregamento + Menù di Scaricamento + Kirakodás menü + Меню разгрузки + + + Unload Item + Descargar objecto + Décharger Objet + Wyładuj obiekt + Gegenstand abladen + Vyložit Předmět + Descarregar Item + Scarica Oggetto + Tárgy kirakodása + Разгрузить предмет + + + Magazines + Cargadores + Chargeurs + Magazynki + Magazine + Zásobníky + Carregadores + Caricatori + Fegyvertár menü + Магазины + + + Unload + Abladen + Descargar + Décharger + Wyładuj + Vyložit + Descarregar + Scarica + Tárkioldás + Разгрузить + + + Magazines + Magazine + Cargadores + Chargeurs + Magazynki + Zásobníky + Carregadores + Caricatori + Tárak + Магазины + + + + + Drag + Тащить + Arrastrar + Ciągnij + Táhnout + Tracter + Ziehen + Arrastar + Trascina + Húzás + + + Release + Отпустить + Soltar + Puść + Položit + Lâcher + Loslassen + Largar + Lascia + Elengedés + + + Unable to drag item due to weight + Слишком тяжелый предмет + No se puede arrastrar el objeto debido a su peso + Nie można ciągnąć tego przedmiotu z powodu jego wagi + Předmět je příliž těžký! + Trop lourd pour être tracté + Dieser Gegenstand kann nicht gezogen werden, da er zu schwer ist. + Não é possível carregar o item devido a seu peso + Non è possibile trascinare l'oggetto a causa del suo peso + Túl nehéz ahhoz, hogy elhúzd + + + Carry + Tragen + Portar + Nieś + Porter + Nést + Carregar + Trascina + Felvesz + Нести + + + Release + Отпустить + Soltar + Puść + Položit + Lâcher + Loslassen + Largar + Lascia + Lerak + + + + + Get in + Einsteigen + Entrar en + Servir + Wejdź + Nastoupit + Entrar + Sali + Beszállás + Зайти + + + Rotate weapon (CW) + Waffe drehen (rechts) + Girar arma (SH) + Orienter l'arme (SH) + Obróć broń (w prawo) + Otočit zbraň (vpravo) + Rotacionar arma (horário) + Ruota l'arma (senso orario) + Elfordítás jobbra + Повернуть оружие (вправо) + + + Rotate weapon (CCW) + Waffe drehen (links) + Girar arma (SAH) + Orienter l'arme (SAH) + Obróć broń (w lewo) + Otočit zbraň (vlevo) + Rotacionar arma (anti-horário) + Ruota l'arma (senso antiorario) + Elfordítás balra + Повернуть оружие (влево) + + + + + Jerry Can + Kanister + Bidón + Jerrican + Kanister + Kanystr + Bidão + Tanica + Benzineskanna + Канистра + + + Spare Track + Ersatzkette + Cadena de repuesto + Chenille de réserve + Zapasowa gąsienica + Náhradní pásy + Lagarta Reserva + Cingolo di scorta + Pót lánctalp + Запасная гусеница + + + Spare Wheel + Ersatzreifen + Rueda de repuesto + Roue de secours + Zapasowe koło + Náhradní Kolo + Roda Reserva + Ruota di scorta + Pótkerék + Запасное колесо + + + Vehicle: %1 + Fahrzeug: %1 + Vehículo: %1 + Véhicule: %1 + Pojazd: %1 + Vozidlo: %1 + Veículo: %1 + Veicolo: %1 + Jármű: %1 + Машина: %1 + + + Vehicle is undamaged + Fahrzeug ist unbeschädigt + Vehículo sin daños + Le véhicule n'est pas endommagé + Pojazd jest nienaruszony + Vozidlo není poškozené + Veículo não está danificado + Il veicolo non è danneggiato + A jármű nem sérült + Машина исправна + + + %1 is damaged + %1 ist beschädigt + %1 dañado + %1 est endommagé(e) + %1 jest uszkodzony + %1 je poškozený + %1 está danificado + %1 è danneggiato + A(z) %1 sérült + %1 поврежден + + + %1 is heavily damaged + %1 ist schwer beschädigt + %1 dañado severamente + %1 est gravement endommagé(e) + %1 jest mocno uszkodzony + %1 je velice poškozené + %1 está fortemente danificado + %1 è gravemente danneggiato + A(z) %1 súlyosan sérült + %1 сильно поврежден + + + %1 is destroyed + %1 ist zerstört + %1 destruido + %1 est détruit(e) + %1 jest zniszczony + %1 je zničené + %1 está destruído + %1 è distrutto + A(z) %1 megsemmisült + %1 уничтожен + + + Repair >> + Reparieren >> + Reparación >> + Réparer >> + Napraw >> + Opravit >> + Reparar >> + Ripara >> + Szerelés >> + Ремонт >> + + + Tracks + Ketten + Cadenas + Chenilles + Gąsienice + Pásy + Lagartas + Cingoli + Lánctalpak + Гусеницы + + + Wheels + Reifen + Ruedas + Roues + Koła + Kola + Rodas + Ruote + Kerekek + Колёса + + + Body + Karosserie + Carrocería + Blindage + Karoseria + Karoserie + Carroceria + Carrozzeria + Test + Кузов + + + Hull + Wanne + Casco + Caisse + Kadłub + Trup + Chassi + Scafo + Test + Корпус + + + Engine + Motor + Motor + Moteur + Silnik + Motor + Motor + Motore + Motor + Двигатель + + + Fuel Tank + Tank + Depósito + Réservoir + Zbiornik paliwa + Palivová nádrž + Tanque de Combustível + Serbatoio + Üzemanyagtank + Топливный бак + + + Main Turret + Turm + Torreta príncipal + Tourelle + Wieżyczka + Hlavní Věž + Torre principal + Torretta principale + Lövegtorony + Башню + + + Gun + Kanone + Cañón + Canon + Działo + Kanón + Canhão + Cannone + Ágyú + Пушку + + + Left Track + Linke Kette + Cadena izquierda + Chenille gauche + Lewa gąsienica + Levý Pás + Lagarta Esquerda + Cingolo sinistro + Bal lánctalp + Левую гусеницу + + + Right Track + Rechte Kette + Cadena derecha + Chenille droite + Prawa gąsienica + Pravý Pás + Lagarta Direita + Cingolo destro + Jobb lánctalp + Правую гусеницу + + + Left Front Wheel + Linkes Vorderrad + Rueda frontal izquierda + Roue avant-gauche + Przednie lewe koło + Levé přední Kolo + Roda Dianteira Esquerda + Ruota frontale sinistra + Bal első kerék + Левое переднее колесо + + + Right Front Wheel + Rechtes Vorderrad + Rueda frontal derecha + Roue avant-droite + Przednie prawe koło + Pravé přední Kolo + Roda Dianteira Direita + Ruota frontale destra + Jobb első kerék + Правое переднее колесо + + + Second Left Front Wheel + Zweites linkes Vorderrad + Segunda rueda frontal izquierda + Deuxième roue avant-gauche + Drugie przednie lewe koło + Druhé Levé přední Kolo + Segunda Roda Dianteira Esquerda + Seconda ruota frontale sinistra + Második bal első kerék + Второе переднее левое колесо + + + Second Right Front Wheel + Zweites rechtes Vorderrad + Segunda rueda frontal derecha + Deuxième roue avant-droite + Drugie przednie prawe koło + Druhé Pravé přední Kolo + Segunda Roda Dianteira Direita + Seconda ruota frontale destra + Második jobb hátsó kerék + Второе правое переднее колесо + + + Left Middle Wheel + Linkes mittleres Rad + Rueda central izquierda + Roue centre-gauche + Środkowe lewe koło + Levé prostřední Kolo + Roda Intermediária Esquerda + Ruota centrale sinistra + Bal középső kerék + Левое среднее колесо + + + Right Middle Wheel + Rechtes mittleres Rad + Rueda central derecha + Roue centre-droite + Środkowe prawe koło + Pravé prostřední Kolo + Roda Intermediária Direita + Ruota centrale destra + Jobb középső kerék + Правое среднее колесо + + + Left Rear Wheel + Linkes Hinterrad + Rueda trasera izquierda + Roue arrière-gauche + Tylnie lewe koło + Levé zadní Kolo + Roda Traseira Esquerda + Ruota posteriore sinistra + Bal hátsó kerék + Левое заднее колесо + + + Right Rear Wheel + Rechtes Hinterrad + Rueda trasera derecha + Roue arrière-droite + Tylnie prawe koło + Pravé zadní Kolo + Roda Traseira Direita + Ruota posteriore destra + Jobb hátsó kerék + Правое заднее колесо + + + Avionics + Avionik + Aviónica + Avionique + Awionika + Elektronika + Aviônica + Avionica + Avionika + Авионику + + + Main Rotor + Hauptrotor + Rotor principal + Rotor principal + Główny rotor + Hlavní Rotor + Rotor Principal + Rotore principale + Főrotor + Несущий винт + + + Tail Rotor + Heckrotor + Rotor de cola + Rotor anticouple + Tylni rotor + Zadní Rotor + Rotor de Cauda + Rotore di coda + Farokrotor + Рулевой винт + + + Glass (right) + Scheibe (rechts) + Ventana (derecha) + Vitre (droite) + Szyba (prawa) + Sklo (pravé) + Vidro (à direita) + Vetro destro + Jobb szélvédő + Стекло (справа) + + + Glass (left) + Scheibe (links) + Ventana (izquierda) + Vitre (gauche) + Szyba (lewa) + Sklo (pravé) + Vidro (à esquerda) + Vetro sinistro + Bal szélvédő + Стекло (слава) + + + Glass 1 + Scheibe 1 + Ventana 1 + Vitre 1 + Szyba 1 + Sklo 1 + Vidro 1 + Vetro 1 + Üveg 1 + Стекло 1 + + + Glass 2 + Scheibe 2 + Ventana 2 + Vitre 2 + Szyba 2 + Sklo 2 + Vidro 2 + Vetro 2 + Üveg 2 + Стекло 2 + + + Glass 3 + Scheibe 3 + Ventana 3 + Vitre 3 + Szyba 3 + Sklo 3 + Vidro 3 + Vetro 3 + Üveg 3 + Стекло 3 + + + Glass 4 + Scheibe 4 + Ventana 4 + Vitre 4 + Szyba 4 + Sklo 4 + Vidro 4 + Vetro 4 + Üveg 4 + Стекло 4 + + + Glass 5 + Scheibe 5 + Ventana 5 + Vitre 5 + Szyba 5 + Sklo 5 + Vidro 5 + Vetro 5 + Üveg 5 + Стекло 5 + + + Glass 6 + Scheibe 6 + Ventana 6 + Vitre 6 + Szyba 6 + Sklo 6 + Vidro 6 + Vetro 6 + Üveg 6 + Стекло 6 + + + There's no track! + Es ist keine Kette in der Nähe! + No hay cadena! + Pas de chenille! + Nie ma gąsienicy! + Chybí pás! + Não há lagarta! + Nessun cingolo disponibile! + Nincs lánctalp! + Нет гусеницы! + + + There's no wheel! + Es ist kein Reifen in der Nähe! + No hay rueda! + Pas de roue! + Nie ma koła! + Chybí kolo! + Não há roda! + Nessuna ruota disponibile! + Nincsen kerék! + Нет колеса! + + + Select Wheel Menu + Reifenwahlmenü + Seleccionar menú de rueda + Sélectionner Menu Roues + Wybierz menu kół + Zvolit kolo + Menu de Seleção de Roda + Seleziona il menù della ruota + Kerék menü kiválasztása + Меню выбора колес + + + Change Wheel + Reifen wechseln + Cambiar rueda + Changer Roue + Wymień koło + Vyměňit kolo + Trocar Roda + Sostituisci la ruota + Kerék cseréje + Поменять колесо + + + Select Wheel Menu + Reifenwahlmenü + Seleccionar menú de rueda + Sélectionner Menu Roues + Wybierz menu kół + Náklad vozidla + Menu de Seleção de Roda + Seleziona il menù della ruota + Kerék menü kiválasztása + Меню выбора колеса + + + Remove Wheel + Reifen entf. + Quitar rueda + Démonter Roue + Zdejmij koło + Odstranit Kolo + Remover Roda + Rimuovi la ruota + Kerék leszerelése + Снять колесо + + + Repairing %1 ... + Reparieren %1 ... + Reparando %1 ... + Réparation %1 ... + Naprawianie %1... + Opravuji %1 ... + Reparando %1 ... + Sto riparando %1 ... + %1 javítása + Ремонтируем %1 ... + + + Repaired %1 + %1 repariert + Reparado %1 + %1 réparé(e) + Naprawiono %1 + Opraveno - %1 + Reparado %1 + %1 Riparata/o + %1 megjavítva + %1 отремонтирован + + + Repair Wheel + Reifen aufziehen + Reparar rueda + Répare Roue + Napraw koło + Opravit Kolo + Reparar Roda + Ripara la ruota + Kerék javítása + Отремонтировать колесо + + + Remove Wheel + Reifen entfernen + Quitar rueda + Démonte Roue + Zdejmij koło + Odstranit Kolo + Remover Roda + Rimuovi la ruota + Kerék leszerelése + Снять колесо + + + Removing %1 ... + Entferne %1 ... + Zdejmowanie %1 ... + Quitando %1 ... + Démonte %1 ... + Odstraňuji %1 ... + Removendo %1 ... + Sto rimuovendo %1 ... + %1 leszerelése ... + Снимаем %1 ... + + + %1 removed + %1 entfernt + %1 quitado + %1 démontée + %1 zdjęte + %1 odstraněno + %1 removido(a) + %1 Rimossa/o + %1 leszerelve + % снято + + + Check Vehicle + Fahrzeug überprüfen + Comprobar vehículo + Vérifier Véhicule + Sprawdź pojazd + Zkontrolovat Vozidlo + Checar Veículo + Controlla il veicolo + Jármű átvizsgálása + Проверить машину + + + Checking Vehicle ... + Fahrzeug überprüfen ... + Comprobando vehículo + Vérification ... + Sprawdzanie pojazdu... + Kontroluji Vozidlo ... + Checando Veículo ... + Sto controllando ... + Jármű átvizsgálása ... + Проверяем машину ... + + + + + Drone is full + Drohne ist voll + El VANT está lleno + L'UAV est chargé + Dron jest naładowany + A drón fel van töltve + Dron je nabitý + O VANT está cheio + Il drone è pieno + БПЛА заполнен + + + You need a UAV Battery + Du brauchst eine UAV-Batterie + Necesitas una batería para VANT + Pas de batterie UAV + Potrzebujesz baterii UAV + Szükséged van egy UAV akkumulátorra + Potřebuješ UAV-Baterii + Você precisa de uma Bateria para VANT + Hai bisogno di una Batteria UAV + Требуется аккумулятор БПЛА + + + Recharge + Aufladen + Recargar + Recharger + Naładuj + Feltöltés + Dobít + Recarregar + Ricarica + Подзарядить + + + UAV Battery + UAV-Batterie + Batería para VANT + Batterie UAV + Bateria UAV + UAV akkumulátor + UAV-Baterie + Bateria para VANT + Batteria UAV + Аккумулятор БПЛА + + + Used to refuel Carried UAV's + Verwendet zum Aufladen von tragbaren UAV's + Usada para reabastecer el VANT + Utilisée pour recharger l'UAV + Używana do naładowania UAV + Hordozható UAV-ok működéséhez való akkumulátor + Používané k dobíjení UAV + Usada para reabastecer VANT + Usata per ricaricare la Batteria dell'UAV + Используется для подзарядки БПЛА + + + Recharging ... + Aufladen ... + Recargando ... + Rechargement ... + Ładowanie ... + Akku feltöltése ... + Dobíjení ... + Recarregando ... + In ricarica ... + Подзаряжаем ... + + + + + Cut Fence + Zaun schneiden + Cortar alambrado + Przetnij płot + Přestřihnout plot + Cisailler Clôture + Cortar Cerca + Taglia + Drótkerítés átvágása + Вырезать забор + + + Cutting Fences / Wires ... + Zaun / Draht schneiden ... + Cortando alambrado / cables ... + Przecinanie płotu / drutów ... + Přestřihnout plot / dráty ... + Cisaille l'obstacle ... + Cortando Cerca / Arame ... + Sto tagliando ... + Drótok elvágása ... + Вырезаем забор / провода ... + + + Cutting Fences! + Schneide Zaun! + Cortando alambrado! + Przecinanie płotu! + Stříhání plotu! + Cisaillage! + Cortando Cerca! + La sto tagliando! + Átvágom a drótkerítést! + Вырезаем забор! + + + Fence cut + Zaun geschnitten + Alambrado cortado + Płot przecięty + Plot přestřižen + Clôture cisaillée + Cerca cortada + Fatto! + Drótkerítés átvágva + Забор вырезан + + + + + Check Fuel + Treibstoff prüfen + Sprawdź poziom paliwa + Comprobar combustible + Jauger Réservoir + Zkontrolovat Palivo + Conferir Combustível + Controlla il carburante + Üzemagyag státusz + Проверить топливо + + + Check Fuel (Cargo) + Treibstoffvorrat prüfen + Sprawdź poziom paliwa (ładunek) + Comprobar combustible (en carga) + Jauger Citerne + Zkontrolovat Palivo (náklad) + Conferir Combustível (carregado) + Controlla il serbatoio + Üzemanyagtartály állapota + Проверить топливо в грузове + + + Check Jerrycan + Kanister prüfen + Sprawdź kanister + Comprobar bidón + Jauger Jerrican + Zkontrolovat Kanystr + Conferir Bidão + Controlla la tanica + Üzemanyagkanna állapota + Проверить канистру + + + Checking Fuel ... + Prüfe Treibstoff ... + Comprobando combustible ... + Jaugeage ... + Sprawdzanie poziomu paliwa ... + Kontroluji Palivo ... + Conferindo Combustível ... + Sto controllando il livello di carburante ... + Üzemanyagszint ellenőrzése ... + Проверяем топливо ... + + + Checking Fuel (Cargo) ... + Prüfe Treibstoffvorrat ... + Comprobando combustible en la carga... + Jaugeage ... + Sprawdzanie poziomu paliwa (ładunek) ... + Kontroluji Palivo (náklad) ... + Conferindo Combustível (carregado) ... + Sto controllando il carburante nel serbatoio ... + Üzemanyagtartály ellenőrzése ... + Проверяем топливо в грузове ... + + + Jerrycan has %1 litre(s) left + Kanister hat %1 Liter übrig + El bidón tiene %1 litro(s) + %1 litre(s) de carburant dans le jerrican + W kanistrze zostało %1 litr(ów) + Kanystru zbývá %1 litr(ů) + O bidão tem %1 litro(s) remanescente(s) + La tanica ha %1 litro/i rimanente/i + A kannában %1 liter maradt + В канистре %1 литра(ов) + + + Vehicle has %1 litre(s) left + Fahrzeug hat %1 Liter übrig + El vehículo tiene %1 litro(s) + %1 litre(s) dans le réservoir + W pojeździe zostało %1 litr(ów) + Vozidlu zbývá %1 litr(ů) + O veículo tem %1 litro(s) remanescente(s) + Il veicolo ha %1 litro/i rimanente/i + A járműben %1 liter maradt + В машине %1 литра(ов) + + + Vehicle has %1 litre(s) left in Cargo + Fahrzeug hat %1 Liter übrig im Vorrat + El vehículo tiene %1 litro(s) en la carga + %1 litre(s) dans la citerne + W ładunku pojazdu zostało %1 litr(ów) + Vozidlu zbývá %1 litr(ů) v nákladu + O veículo tem %1 litro(s) carregados remanescentes + Il veicolo ha %1 litro/i rimanente/i nel serbatoio + A tartályban %1 liter maradt + В канистре %1 литра(ов) в грузове + + + Refuel Vehicle + Fahrzeug betanken + Reabastecer vehículo + Ravitailler Réservoir + Zatankuj pojazd + Natankovat Vozidlo + Reabastecer Veículo + Fai rifornimento + Jármű megtankolása + Заправить машину + + + Refuel Vehicle + Fahrzeug betanken + Reabastecer vehículo + Ravitailler Citerne + Zatankuj pojazd + Natankovat Vozidlo + Reabastecer Veículo + Fai rifornimento + Tartály megtankolása + Заправить машину + + + Drain Fuel + Benzin ablassen + Drenar combustible + Vidanger Réservoir + Spuść paliwo + Vypustit Palivo + Drenar Combustível + Drena il carburante + Üzemanyagtank leszívása + Слить топливо + + + Drain Fuel Cargo + Benzinvorrat ablassen + Drenar combustible en la carga + Vidanger Citerne + Spuść paliwo z ładunku + Vypustit Palivo Nákladu + Drenar Combustível Carregado + Drena il carburante dal serbatoio + Üzemanyagtartály leszívása + Слить топливо из грузова + + + Refueling ... + Betanke ... + Reabasteciendo ... + Ravitaillement ... + Tankowanie ... + Tankování ... + Reabastecendo ... + Rifornendo ... + Tankolás ... + Заправляем ... + + + Draining Fuel ... + Benzin ablassen ... + Drenando combustible ... + Vidange ... + Spuszczanie paliwa ... + Vypouštění paliva ... + Drenando Combustível ... + Drenando ... + Leszívás ... + Сливаем топливо ... + + + Draining Fuel Cargo ... + Benzinvorrat ablassen ... + Drenando combustible de la carga + Vidange ... + Spuszczanie paliwa z ładunku ... + Vypouštění paliva nákladu ... + Drenando Combustível Carregado ... + Drenando dal serbatoio ... + Tartály leszívása ... + Сливаем топливо из грузова ... + + + Refueled %1 + %1 betankt + Reabastecido %1 + %1 ravitaillé + Zatankowano %1 + Natankováno - %1 + Reabastecido %1 + Rifornito %1 + %1 megtankolva + %1 заправлен + + + Drained Fuel + Benzin abgelassen + Combustible drenado + Réservoir vidangé + Spuszczono paliwo + Vypuštěné Palivo + Combustível Drenado + Carburante drenato + Leszívott üzemanyag + Топливо слито + + + Drained Fuel Cargo + Benzinvorrat abgelassen + Combustible en la carga drenado + Citerne vidangée + Spuszczono paliwo z ładunku + Vypuštěné Palivo Nákladu + Combustível Carregado Drenado + Carburante drenato dal serbatoio + Tartályból leszívott üzemanyag + Топливо из грузова слито + + + + + Airdrop Box + Box abwerfen + Lanzar caja con paracaídas + Aérolargage + Zrzut ładunku na spadochronie + Schodnit letecky bednu + Lançar Caixa com Paraquedas + Scatola paracadutabile + Légi utánpótlás láda + Сбросить груз + + + + + Sandbag Barrier Crate + Sandsack-Kiste + Caja sacos de arena + Skrzynia z workami z piaskiem + Sac de Sable (Caisse) + Pytlová bariéra (v krabici) + Caixa de Saco de Areia + Cassa di sacchi di sabbia + Homokzsák láda + Блок из мешков с песком + + + Razor Wire Crate + Stacheldraht-Kiste + Caja de alambre de púas + Skrzynia z drutem kolczastym + Concertina (Caisse) + Ostnatý drát (v krabici) + Caixa de Arame Farpado + Cassa di filo spinato + Szögesdrót láda + Блок колючей проволоки + + + Sandbag Barrier + Sandsackbarriere + Barrera de sacos de arena + Worki z piaskiem + Sacs de sable + Pytlová bariéra + Saco de Areia + Barriera di sacchi di sabbia + Homokzsák + Барьер из мешков с песком + + + Razor Wire + Stacheldraht + Alambre de púas + Drut kolczasty + Concertina + Ostnatý drát + Arame Farpado + Filo spinato + Szögesdrót + Колючая проволока + + + Place + Platzieren + Colocar + Umieść + Placer + Položit + Colocar + Posiziona + Elhelyez + Установить + + + Cancel + Abbrechen + Cancelar + Anuluj + Annuler + Zrušit + Cancelar + Annulla + Mégse + Отменить + + + Rotate + Drehen + Girar + Obróć + Tourner + Otočit + Rotacionar + Ruota + Forgatás + Повернуть + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Logistics/ui/AGM_battery.paa b/TO_MERGE/agm/Logistics/ui/AGM_battery.paa new file mode 100644 index 0000000000..5e6c0e1bf7 Binary files /dev/null and b/TO_MERGE/agm/Logistics/ui/AGM_battery.paa differ diff --git a/TO_MERGE/agm/Logistics/ui/Icon_Module_Repair_ca.paa b/TO_MERGE/agm/Logistics/ui/Icon_Module_Repair_ca.paa new file mode 100644 index 0000000000..5e3b00564c Binary files /dev/null and b/TO_MERGE/agm/Logistics/ui/Icon_Module_Repair_ca.paa differ diff --git a/TO_MERGE/agm/Logistics/ui/rotate_ccw_ca.paa b/TO_MERGE/agm/Logistics/ui/rotate_ccw_ca.paa new file mode 100644 index 0000000000..d1274fc391 Binary files /dev/null and b/TO_MERGE/agm/Logistics/ui/rotate_ccw_ca.paa differ diff --git a/TO_MERGE/agm/Logistics/ui/rotate_cw_ca.paa b/TO_MERGE/agm/Logistics/ui/rotate_cw_ca.paa new file mode 100644 index 0000000000..f5f4b70e8c Binary files /dev/null and b/TO_MERGE/agm/Logistics/ui/rotate_cw_ca.paa differ diff --git a/TO_MERGE/agm/Logistics/ui/tire_ca.paa b/TO_MERGE/agm/Logistics/ui/tire_ca.paa new file mode 100644 index 0000000000..1d3b0e8375 Binary files /dev/null and b/TO_MERGE/agm/Logistics/ui/tire_ca.paa differ diff --git a/TO_MERGE/agm/Logistics/ui/wirecutter_ca.paa b/TO_MERGE/agm/Logistics/ui/wirecutter_ca.paa new file mode 100644 index 0000000000..8cd2165385 Binary files /dev/null and b/TO_MERGE/agm/Logistics/ui/wirecutter_ca.paa differ diff --git a/TO_MERGE/agm/MagazineRepack/UI/repack_ca.paa b/TO_MERGE/agm/MagazineRepack/UI/repack_ca.paa new file mode 100644 index 0000000000..45f7dadcea Binary files /dev/null and b/TO_MERGE/agm/MagazineRepack/UI/repack_ca.paa differ diff --git a/TO_MERGE/agm/MagazineRepack/config.cpp b/TO_MERGE/agm/MagazineRepack/config.cpp new file mode 100644 index 0000000000..25e98d625d --- /dev/null +++ b/TO_MERGE/agm/MagazineRepack/config.cpp @@ -0,0 +1,48 @@ +class CfgPatches { + class AGM_MagazineRepack { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "CAA-Picard"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_MagazineRepack { + class AGM_MagazineRepack { + file = "\AGM_MagazineRepack\functions"; + class magazineRepack; + class magazineRepackCallback; + class openSelectMagazineUI; + }; + }; +}; + +class CfgVehicles { + class Man; + + class CAManBase: Man { + class AGM_SelfActions { + class AGM_RepackMagazines { + displayName = "$STR_AGM_MagazineRepack_RepackMagazines"; + condition = "true"; + statement = "call AGM_MagazineRepack_fnc_magazineRepack"; + showDisabled = 0; + priority = -2; + icon = "AGM_MagazineRepack\UI\repack_ca.paa"; + hotkey = "R"; + enableInside = 1; + }; + }; + }; +}; + +class AGM_Parameters_Numeric { + AGM_MagazineRepack_TimePerAmmo = 1.5; + AGM_MagazineRepack_TimePerMagazine = 2.0; +}; diff --git a/TO_MERGE/agm/MagazineRepack/functions/fn_magazineRepack.sqf b/TO_MERGE/agm/MagazineRepack/functions/fn_magazineRepack.sqf new file mode 100644 index 0000000000..94f448d1da --- /dev/null +++ b/TO_MERGE/agm/MagazineRepack/functions/fn_magazineRepack.sqf @@ -0,0 +1,74 @@ +// by commy2, esteldunedain + +private ["_magazines", "_ammos", "_repackTime", "_magazine", "_ammo", "_count", "_index", "_i", "_j", "_ammoToTransfer", "_ammoAvailable", "_ammoNeeded"]; + +_magazines = []; +_ammos = []; +_repackTime = []; + +// get all mags and ammo count +{ + _magazine = _x select 0; + _ammo = _x select 1; + + _count = getNumber (configfile >> "CfgMagazines" >> _magazine >> "count"); + + if (_ammo != _count && {_count > 1}) then { // additional checks here + if !(_magazine in _magazines) then { + _index = count _magazines; + _magazines set [_index, _magazine]; + _ammos set [_index, [_ammo]]; + } else { + _index = _magazines find _magazine; + _ammos set [_index, (_ammos select _index) + [_ammo]]; + }; + }; +} forEach magazinesAmmoFull AGM_player; + +// Remove invalid magazines +{ + if (count _x < 2) then { + _magazines set [_forEachIndex, -1]; + _ammos set [_forEachIndex, [-1]]; + }; +} forEach _ammos; +_magazines = _magazines - [-1]; +_ammos = _ammos - [[-1]]; + +{ + // Calculate actual ammo to transfer during repack + _count = getNumber (configfile >> "CfgMagazines" >> (_magazines select _forEachIndex) >> "count"); + + // Sort Ascending + _list = _x call BIS_fnc_sortNum; + + ["MagazineRepack", _list] call AGM_Debug_fnc_log; + + _i = 0; + _j = count _x - 1; + _ammoToTransfer = 0; + _ammoAvailable = 0; + while {_i < _j} do { + _ammoNeeded = _count - (_list select _j); + _exit = false; + while {_i < _j && {!_exit}} do { + _ammoAvailable = _list select _i; + if (_ammoAvailable >= _ammoNeeded) then { + _list set [_i, _ammoAvailable - _ammoNeeded]; + _ammoToTransfer = _ammoToTransfer + _ammoNeeded; + _exit = true; + } else { + _ammoNeeded = _ammoNeeded - _ammoAvailable; + _ammoToTransfer = _ammoToTransfer + _ammoAvailable; + _i = _i + 1; + }; + }; + _j = _j - 1; + }; + + _repackTime set [_forEachIndex, _ammoToTransfer * AGM_MagazineRepack_TimePerAmmo + (count _x) * AGM_MagazineRepack_TimePerMagazine]; +} forEach _ammos; + +["MagazineRepack", [_magazines, _repackTime]] call AGM_Debug_fnc_log; + +[_magazines, _repackTime] call AGM_MagazineRepack_fnc_openSelectMagazineUI; diff --git a/TO_MERGE/agm/MagazineRepack/functions/fn_magazineRepackCallback.sqf b/TO_MERGE/agm/MagazineRepack/functions/fn_magazineRepackCallback.sqf new file mode 100644 index 0000000000..89358b28ec --- /dev/null +++ b/TO_MERGE/agm/MagazineRepack/functions/fn_magazineRepackCallback.sqf @@ -0,0 +1,104 @@ +// by commy2 + +private ["_magazine", "_ammo", "_ammoCount", "_fullMagazinesCount", "_restAmmo", "_isLoaded", "_weapon", "_reloadAction", "_text", "_picture"]; + +_magazine = _this select 0; + +// exit if the last magazine of this type was taken out of the backpack +if !(_magazine in magazines player) exitWith {}; + +// get current ammo count +_ammo = 0; +{ + if (_x select 0 == _magazine) then { + _ammo = _ammo + (_x select 1); + }; +} forEach magazinesAmmoFull player; + +// how many rounds fit in one mag +_ammoCount = getNumber (configFile >> "CfgMagazines" >> _magazine >> "count"); + +// calculate new vaules +_fullMagazinesCount = floor (_ammo / _ammoCount); +_restAmmo = _ammo - _fullMagazinesCount * _ammoCount; + +// remove old magazines +player removeMagazines _magazine; + +_isLoaded = false; +// reload rifle +if (_magazine in primaryWeaponMagazine player) then { + _weapon = primaryWeapon player; + + if (_fullMagazinesCount > 0) then { + player setAmmo [_weapon, _ammoCount]; + _fullMagazinesCount = _fullMagazinesCount - 1; + } else { + player setAmmo [_weapon, _restAmmo]; + _restAmmo = 0; + }; + + if (_weapon == currentWeapon player) then { + _reloadAction = getText (configFile >> "CfgWeapons" >> _weapon >> "reloadAction"); + player playActionNow _reloadAction; + }; + + _isLoaded = true; +}; + +// reload pistol +if (_magazine in handgunMagazine player) then { + _weapon = handgunWeapon player; + + if (_fullMagazinesCount > 0) then { + player setAmmo [_weapon, _ammoCount]; + _fullMagazinesCount = _fullMagazinesCount - 1; + } else { + player setAmmo [_weapon, _restAmmo]; + _restAmmo = 0; + }; + + if (_weapon == currentWeapon player) then { + _reloadAction = getText (configFile >> "CfgWeapons" >> _weapon >> "reloadAction"); + player playActionNow _reloadAction; + }; + + _isLoaded = true; +}; + +// reload rocket launcher (just in case ...) +if (_magazine in secondaryWeaponMagazine player) then { + _weapon = secondaryWeapon player; + + if (_fullMagazinesCount > 0) then { + player setAmmo [_weapon, _ammoCount]; + _fullMagazinesCount = _fullMagazinesCount - 1; + } else { + player setAmmo [_weapon, _restAmmo]; + _restAmmo = 0; + }; + + if (_weapon == currentWeapon player) then { + _reloadAction = getText (configFile >> "CfgWeapons" >> _weapon >> "reloadAction"); + player playActionNow _reloadAction; + }; + + _isLoaded = true; +}; + +// add new magazines +for "_a" from 1 to _fullMagazinesCount do { + player addMagazine _magazine; +}; + +if (_restAmmo > 0) then { + player addMagazine [_magazine, _restAmmo]; +}; + +// display text if successful +_text = format [localize "STR_AGM_MagazineRepack_RepackedMagazinesDetail", [_fullMagazinesCount, _fullMagazinesCount + 1] select _isLoaded, _restAmmo]; +_picture = getText (configFile >> "CfgMagazines" >> _magazine >> "picture"); + +_text = parseText format ["
%2
%3", _picture, localize "STR_AGM_MagazineRepack_RepackedMagazines", _text]; + +[_text] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/MagazineRepack/functions/fn_openSelectMagazineUI.sqf b/TO_MERGE/agm/MagazineRepack/functions/fn_openSelectMagazineUI.sqf new file mode 100644 index 0000000000..c86f6f1f22 --- /dev/null +++ b/TO_MERGE/agm/MagazineRepack/functions/fn_openSelectMagazineUI.sqf @@ -0,0 +1,38 @@ +// by commy2 + +private ["_magazines", "_repackTime", "_listIDC", "_count", "_index", "_magazine", "_time", "_displayName", "_picture"]; + +_magazines = _this select 0; +_repackTime = _this select 1; + +_count = count _magazines; + +_actions = [localize "STR_AGM_MagazineRepack_SelectMagazineMenu", localize "STR_AGM_MagazineRepack_SelectMagazine"] call AGM_Interaction_fnc_prepareSelectMenu; +for "_index" from 0 to (_count - 1) do { + _magazine = _magazines select _index; + _time = _repackTime select _index; + _displayName = getText (configFile >> "CfgMagazines" >> _magazine >> "displayName"); + _picture = getText (configFile >> "CfgMagazines" >> _magazine >> "picture"); + _actions = [ + _actions, + _displayName, + _picture, + [_magazine, _time] + ] call AGM_Interaction_fnc_AddSelectableItem; +}; + +[ + _actions, + { + _data = _this; + call AGM_Interaction_fnc_hideMenu; + if (isNil "_data") exitWith {}; + _data set [1, [_data select 1] call AGM_Core_fnc_toNumber]; + [_data select 1, _data, "AGM_MagazineRepack_fnc_magazineRepackCallback", localize "STR_AGM_MagazineRepack_RepackingMagazine"] call AGM_Core_fnc_progressBar; + [player] call AGM_core_fnc_goKneeling; + }, + { + call AGM_Interaction_fnc_hideMenu; + if !(profileNamespace getVariable ["AGM_Interaction_AutoCloseMenu", false]) then {"Default" call AGM_Interaction_fnc_openMenuSelf}; + } +] call AGM_Interaction_fnc_openSelectMenu; diff --git a/TO_MERGE/agm/MagazineRepack/stringtable.xml b/TO_MERGE/agm/MagazineRepack/stringtable.xml new file mode 100644 index 0000000000..5fec9cf2a8 --- /dev/null +++ b/TO_MERGE/agm/MagazineRepack/stringtable.xml @@ -0,0 +1,78 @@ + + + + + + Repack Magazines + Magazine umpacken + Reorganizar cargadores + Réorganiser chargeurs + Przepakuj magazynki + Přepáskovat Zásobníky + Ricarica Caricatori + Reorganizar Carregadores + Újratárazás + Перепаковать магазины + + + Select Magazine Menu + Magazinauswahlmenü + Menú de selección de cargador + Sélectionner menu des chargeurs + Menu wyboru magazynków + Zvolit Menu Zásobníků + Seleziona Menù di Ricarica + Menu de Seleção de Carregador + Fegyvertár menü kiválasztás + Меню выбора магазинов + + + Select Mag + Magazin auswählen + Seleccionar cargador + Sélectionner chargeur + Wybierz magazynek + Zvolit Zásobník + Seleziona Caricatore + Selecionar Carregador + Tár kiválasztása + Выбрать магазин + + + Repacking Magazines ... + Magazine umpacken ... + Reorganizando cargadores ... + Réorganisation des chargeurs ... + Przepakowywanie magazynków ... + Páskuji Zásobníky ... + Sto ricaricando le munizioni ... + Reorganizando Carregadores ... + Újratárazás ... + Перепаковка магазинов ... + + + Repacked Magazines + Magazine umgepackt + Cargadores reorganizados + Chargeurs réorganisés + Magazynki przepakowane + Přepáskované Zásobníky + Caricatore ricaricato + Carregadores Reorganizados + Újratárazott tárak + Магазины перепакованы + + + %1 full mag(s) and %2 extra round(s) + %1 volle(s) Magazin(e) und %2 übrig gebliebene Patrone(n) + %1 cargador(es) completo(s) y %2 bala(s) extra(s) + %1 chargeur(s) plein(s) et %2 cartouche(s) en rab + %1 pełnych magazynków i %2 dodatkowych naboi + %1 plný zásobník(y) a %2 munice navíc + %1 caricatore/i pieno e %2 munizioni extra + %1 carregador(es) cheio(s) e %2 disparo(s) a mais + %1 tejles tár és %2 extra lőszer. + %1 полных магазина(ов) и %2 патрона(ов) + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Map/MapControls.hpp b/TO_MERGE/agm/Map/MapControls.hpp new file mode 100644 index 0000000000..69e41098c8 --- /dev/null +++ b/TO_MERGE/agm/Map/MapControls.hpp @@ -0,0 +1,87 @@ + class controls { + class ButtonPlayer: RscActiveText { + text = ""; + w = 0; + h = 0; + sizeEx = 0; + onButtonClick = ""; + }; + class CA_PlayerName: RscText { + x = "2 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class ProfilePicture: RscPicture { + x = "13.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class ProfileBackground: RscText { + x = "13.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class Separator1: RscPicture { + x = "14.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class ColorBlack: RscButton { + idc = 36732; + x = "0 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "0.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.00 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0.2,0.2,0.2,1}; + colorBackgroundActive[] = {0,0,0,1}; + colorFocused[] = {0,0,0,1}; + onButtonClick = "missionNamespace setVariable [""AGM_Map_drawColor"", ""ColorBlack""]"; + }; + class ColorRed: RscButton { + idc = 36733; + x = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "0.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.00 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0.8,0.2,0.2,1}; + colorBackgroundActive[] = {1,0,0,1}; + colorFocused[] = {1,0,0,1}; + onButtonClick = "missionNamespace setVariable [""AGM_Map_drawColor"", ""ColorRed""]"; + }; + class ColorGreen: RscButton { + idc = 36734; + x = "0.6 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "0.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.00 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0.2,0.8,0.2,1}; + colorBackgroundActive[] = {0,1,0,1}; + colorFocused[] = {0,1,0,1}; + onButtonClick = "missionNamespace setVariable [""AGM_Map_drawColor"", ""ColorGreen""]"; + }; + class ColorBlue: RscButton { + idc = 36735; + x = "0.9 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "0.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.00 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0.2,0.2,0.8,1}; + colorBackgroundActive[] = {0,0,1,1}; + colorFocused[] = {0,0,1,1}; + onButtonClick = "missionNamespace setVariable [""AGM_Map_drawColor"", ""ColorBlue""]"; + }; + class ColorYellow: RscButton { + idc = 36736; + x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "0.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.00 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0.8,0.8,0.2,1}; + colorBackgroundActive[] = {1,1,0,1}; + colorFocused[] = {1,1,0,1}; + onButtonClick = "missionNamespace setVariable [""AGM_Map_drawColor"", ""ColorYellow""]"; + }; + class ColorWhite: RscButton { + idc = 36737; + x = "1.5 * (((safezoneW / safezoneH) min 1.2) / 40)"; + y = "0.25 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "0.3 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1.00 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + colorBackground[] = {0.8,0.8,0.8,1}; + colorBackgroundActive[] = {1,1,1,1}; + colorFocused[] = {1,1,1,1}; + onButtonClick = "missionNamespace setVariable [""AGM_Map_drawColor"", ""ColorWhite""]"; + }; + }; diff --git a/TO_MERGE/agm/Map/MapGpsUI.hpp b/TO_MERGE/agm/Map/MapGpsUI.hpp new file mode 100644 index 0000000000..9bbc4f0d5a --- /dev/null +++ b/TO_MERGE/agm/Map/MapGpsUI.hpp @@ -0,0 +1,80 @@ +#define GUI_GRID_X (0) +#define GUI_GRID_Y (0) +#define GUI_GRID_W (0.025) +#define GUI_GRID_H (0.04) + +#define ST_LEFT 0x00 +#define ST_RIGHT 0x01 +#define ST_CENTER 0x02 + +#define W_gps 0.4025 +#define H_gps 0.25 +#define X_gps safeZoneX + safeZoneW - 1.1 * W_gps +#define Y_gps safeZoneY + safeZoneH - 1.2 * H_gps + +class RscTitles { + class RscAGM_MapGps { + idd = 9855; + movingEnable = 1; + duration = 3600; + fadein = 0; + fadeout = 0; + onLoad = "uiNamespace setVariable ['AGM_Map_mapGpsDisplay', _this select 0];"; + //onUnLoad = "_this call onRscLoad"; + class controls { + class back:RscPicture { + x = X_gps; + y = Y_gps; + w = W_gps; + h = H_gps; + text = "\AGM_Map\UI\mapGps.paa"; + colorBackground[] = {1, 1, 1, 1}; + }; + class heading: RscText{ + idc = 913590; + x = X_gps + W_gps * 0.25; + y = Y_gps + H_gps * 0.12; + w = W_gps * 0.2; + h = H_gps * 0.16; + style = ST_LEFT; + text = "225"; + colorBackground[] = {0,0,0,0}; + colorText[] = {0.247,0.251,0.157,1}; + shadowColo[] = {0,0,0,0}; + font = "EtelkaNarrowMediumPro"; + shadow = 0; + sizeEx = 0.042; + }; + class altitude: RscText{ + idc = 913591; + x = X_gps + W_gps * 0.55; + y = Y_gps + H_gps * 0.12; + w = W_gps * 0.2; + h = H_gps * 0.16; + style = ST_RIGHT; + text = "55 m"; + colorBackground[] = {0,0,0,0}; + colorText[] = {0.247,0.251,0.157,1}; + shadowColo[] = {0,0,0,0}; + font = "EtelkaNarrowMediumPro"; + shadow = 0; + sizeEx = 0.042; + }; + class coordinates: RscText{ + idc = 913592; + x = X_gps + W_gps * 0.2; + y = Y_gps + H_gps * 0.33; + w = W_gps * 0.6; + h = H_gps * 0.35; + style = ST_CENTER; + text = "012.3 115.1"; + colorBackground[] = {0,0,0,0}; + colorText[] = {0.247,0.251,0.157,1}; + shadowColo[] = {0,0,0,0}; + font = "EtelkaNarrowMediumPro"; + shadow = 0; + sizeEx = 0.1; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Map/UI/IconBFTracking_ca.paa b/TO_MERGE/agm/Map/UI/IconBFTracking_ca.paa new file mode 100644 index 0000000000..128f08f6f0 Binary files /dev/null and b/TO_MERGE/agm/Map/UI/IconBFTracking_ca.paa differ diff --git a/TO_MERGE/agm/Map/UI/mapGps.paa b/TO_MERGE/agm/Map/UI/mapGps.paa new file mode 100644 index 0000000000..f4ed1dfc54 Binary files /dev/null and b/TO_MERGE/agm/Map/UI/mapGps.paa differ diff --git a/TO_MERGE/agm/Map/UI/maptool_item.paa b/TO_MERGE/agm/Map/UI/maptool_item.paa new file mode 100644 index 0000000000..aafee52fff Binary files /dev/null and b/TO_MERGE/agm/Map/UI/maptool_item.paa differ diff --git a/TO_MERGE/agm/Map/clientInit.sqf b/TO_MERGE/agm/Map/clientInit.sqf new file mode 100644 index 0000000000..66a5d7a110 --- /dev/null +++ b/TO_MERGE/agm/Map/clientInit.sqf @@ -0,0 +1,154 @@ +// by CAA-Picard + +if (!hasInterface) exitWith{}; + +[] spawn { + while {true} do { + sleep 5; + _markers = []; + + while {AGM_Map_BFT_Enabled and {(!isNil "AGM_player") and {alive AGM_player}}} do { + + _groups = []; + _playerSide = call AGM_Core_fnc_playerSide; + + if (AGM_Map_BFT_HideAiGroups) then { + _groups = [allGroups, {side _this == _playerSide}] call AGM_Core_fnc_filter; + } else { + _groups = [allGroups, { + _anyPlayers = { + [_x] call AGM_Core_fnc_isPlayer + } count units _this; + (side _this == _playerSide) && _anyPlayers > 0 + }] call AGM_Core_fnc_filter; + }; + + { + deleteMarkerLocal _x; + } forEach _markers; + _markers = []; + + for "_i" from 0 to (count _groups - 1) do { + _group1 = _groups select _i; + + _markerType = [_group1] call AGM_Core_fnc_getMarkerType; + + _colour = format ["Color%1", side _group1]; + + _marker = createMarkerLocal [format ["AGM_BFT_%1", _i], [(getPos leader _group1) select 0, (getPos leader _group1) select 1]]; + _marker setMarkerTypeLocal _markerType; + _marker setMarkerColorLocal _colour; + _marker setMarkerTextLocal (groupID _group1); + + _markers pushBack _marker; + }; + + sleep AGM_Map_BFT_Interval; + }; + + // Delete markers as soon as the player dies + { + deleteMarkerLocal _x; + } forEach _markers; + }; +}; + +[] spawn { + // Init variables + AGM_Map_mapToolsShown = 0; + AGM_Map_pos = [0,0]; + AGM_Map_angle = 0; + AGM_Map_dragging = false; + AGM_Map_rotating = false; + AGM_Map_mapGpsShow = true; + AGM_Map_drawing = false; + AGM_Map_tempLineMarker = []; + AGM_Map_lineMarkers = []; + + AGM_Map_drawColor = "ColorBlack"; + AGM_Map_drawingControls = [36732, 36733, 36734, 36735, 36736, 36737]; + + AGM_Map_fnc_installEvents = { + _d = _this; + diag_log format ["Installing EH in display %1", _d]; + ((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["MouseMoving", {_this call AGM_Map_fnc_handleMouseMove;}]; + ((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["MouseButtonDown", {[1, _this] call AGM_Map_fnc_handleMouseButton;}]; + ((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["MouseButtonUp", {[0, _this] call AGM_Map_fnc_handleMouseButton}]; + ((finddisplay _d) displayctrl 51) ctrlAddEventHandler ["Draw", {[] call AGM_Map_fnc_updateMapToolMarkers;}]; + (finddisplay _d) displayAddEventHandler ["KeyDown", {_this call AGM_Map_fnc_handleKeyDown;}]; + }; + + // Wait until the briefing map is detected + // display = 37 for SP + // display = 52 for host server on MP; + // display = 53 for MP clients) + waitUntil {(!isNull findDisplay 37) || (!isNull findDisplay 52) || (!isNull findDisplay 53) || (!isNull findDisplay 12)}; + + if (isNull findDisplay 12) then { + // Install event handlers on the map control of the briefing screen (control = 51) + AGM_Map_syncMarkers = true; + if (!isNull findDisplay 52) then { + 52 call AGM_Map_fnc_installEvents; + } else { + if (!isNull findDisplay 53) then { + 53 call AGM_Map_fnc_installEvents; + } else { + 37 call AGM_Map_fnc_installEvents; + }; + }; + } else { + // Briefing screen was skipped; the player is JIP, create the markers defined during the briefing + AGM_Map_syncMarkers = false; + { + _x call AGM_Map_fnc_addLineMarker; + } forEach AGM_Map_serverLineMarkers; + }; + + // Wait until the main map display is detected (display = 12) + waitUntil { !isNull findDisplay 12 }; + // Install event handlers on the map control and display (control = 51) + AGM_Map_syncMarkers = false; + 12 call AGM_Map_fnc_installEvents; + + // Update the size and rotation of map tools + [] call AGM_Map_fnc_updateMapToolMarkers; + + while {true} do { + waitUntil {visibleMap}; + + // Show and update map tools if required + [] call AGM_Map_fnc_updateMapToolMarkers; + // Show GPS if required + [AGM_Map_mapGpsShow] call AGM_Map_fnc_openMapGps; + + // Update visibility of maptools and gps, handling inventory changes + [] spawn { + while {visibleMap} do { + // Show/Hide draw buttons + if ("AGM_MapTools" in items player) then { + { ((finddisplay 12) displayctrl _x) ctrlShow true; } forEach AGM_Map_drawingControls; + } else { + { ((finddisplay 12) displayctrl _x) ctrlShow false; } forEach AGM_Map_drawingControls; + if (AGM_Map_drawing) then { + call AGM_Map_fnc_cancelDrawing; + }; + }; + sleep 1; + }; + }; + + waitUntil {!visibleMap}; + + // Hide GPS + [false] call AGM_Map_fnc_openMapGps; + // Hide Map tools + deleteMarkerLocal "AGM_MapToolFixed"; + deleteMarkerLocal "AGM_MapToolRotatingNormal"; + deleteMarkerLocal "AGM_MapToolRotatingSmall"; + AGM_Map_mapToolFixed = nil; + AGM_Map_mapToolRotatingNormal = nil; + AGM_Map_mapToolRotatingSmall = nil; + // Cancel drawing + call AGM_Map_fnc_cancelDrawing; + }; +}; diff --git a/TO_MERGE/agm/Map/config.cpp b/TO_MERGE/agm/Map/config.cpp new file mode 100644 index 0000000000..b136849ea3 --- /dev/null +++ b/TO_MERGE/agm/Map/config.cpp @@ -0,0 +1,423 @@ +class CfgPatches { + class AGM_Map { + units[] = {}; + weapons[] = {"AGM_MapTools"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi","CAA-Picard"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Map { + class AGM_Map { + file = "AGM_Map\functions"; + class addLineMarker; + class blueForceTracking; + class calculateMapScale; + class cancelDrawing; + class canDraw; + class canUseMapTools; + class canUseMapGPS; + class copyMapMarkers; + class handleKeyDown; + class handleMouseButton; + class handleMouseMove; + class handleMouseZChanged; + class isInsideMapTool; + class openMapGps; + class removeLineMarker; + class sendMapMarkers; + class updateMapToolMarkers; + class updateLineMarker; + }; + }; +}; + +class Extended_PreInit_EventHandlers { + class AGM_Map { + serverInit = "call compile preprocessFileLineNumbers '\AGM_Map\serverInit.sqf'"; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Map { + clientInit = "call compile preprocessFileLineNumbers 'AGM_Map\clientInit.sqf'"; + }; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_MapTools: AGM_ItemCore { + displayName = "$STR_AGM_MapTools_Name"; + descriptionShort = "$STR_AGM_MapTools_Description"; + model = "\A3\weapons_F\ammo\mag_univ.p3d"; + picture = "\AGM_Map\UI\maptool_item.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 1; + }; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + + class Man; + class CAManBase: Man { + class AGM_SelfActions { + + class AGM_MapTools { + displayName = "$STR_AGM_Map_MapTools_Menu"; + condition = "(call AGM_Map_fnc_canUseMapTools) || (call AGM_Map_fnc_canUseMapGPS)"; + statement = ""; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 0; + priority = 100; + subMenu[] = {"AGM_MapTools", 1}; + enableInside = 1; + + class AGM_MapToolsHide { + displayName = "$STR_AGM_Map_MapToolsHide"; + condition = "(call AGM_Map_fnc_canUseMapTools) && {AGM_Map_mapToolsShown > 0}"; + statement = "AGM_Map_mapToolsShown = 0; [] call AGM_Map_fnc_updateMapToolMarkers"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 1; + priority = 5; + enableInside = 1; + }; + class AGM_MapToolsShowNormal { + displayName = "$STR_AGM_Map_MapToolsShowNormal"; + condition = "(call AGM_Map_fnc_canUseMapTools) && {AGM_Map_mapToolsShown != 1}"; + statement = "AGM_Map_mapToolsShown = 1; [] call AGM_Map_fnc_updateMapToolMarkers"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 1; + priority = 4; + enableInside = 1; + }; + class AGM_MapToolsShowSmall { + displayName = "$STR_AGM_Map_MapToolsShowSmall"; + condition = "(call AGM_Map_fnc_canUseMapTools) && {AGM_Map_mapToolsShown != 2}"; + statement = "AGM_Map_mapToolsShown = 2; [] call AGM_Map_fnc_updateMapToolMarkers"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 1; + priority = 3; + enableInside = 1; + }; + class AGM_MapToolsAlignNorth { + displayName = "$STR_AGM_Map_MapToolsAlignNorth"; + condition = "(call AGM_Map_fnc_canUseMapTools) && {AGM_Map_mapToolsShown != 0}"; + statement = "AGM_Map_angle = 0; [] call AGM_Map_fnc_updateMapToolMarkers"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 1; + priority = 2; + enableInside = 1; + }; + class AGM_MapToolsAlignCompass { + displayName = "$STR_AGM_Map_MapToolsAlignCompass"; + condition = "(call AGM_Map_fnc_canUseMapTools) && {AGM_Map_mapToolsShown != 0} && {(""ItemCompass"" in assignedItems player) || {""ItemGPS"" in assignedItems player}}"; + statement = "AGM_Map_angle = getDir player; [] call AGM_Map_fnc_updateMapToolMarkers"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 1; + priority = 1; + enableInside = 1; + }; + class AGM_MapGpsShow { + displayName = "$STR_AGM_Map_MapGpsShow"; + condition = "(call AGM_Map_fnc_canUseMapGPS) && {!AGM_Map_mapGpsShow}"; + statement = "AGM_Map_mapGpsShow = true; [AGM_Map_mapGpsShow] call AGM_Map_fnc_openMapGps"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 0; + priority = 0; + enableInside = 1; + }; + class AGM_MapGpsHide { + displayName = "$STR_AGM_Map_MapGpsHide"; + condition = "(call AGM_Map_fnc_canUseMapGPS) && AGM_Map_mapGpsShow"; + statement = "AGM_Map_mapGpsShow = false; [AGM_Map_mapGpsShow] call AGM_Map_fnc_openMapGps"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Core_notOnMap"}; + showDisabled = 0; + priority = 0; + enableInside = 1; + }; + }; + }; + + class AGM_Actions { + class AGM_CopyMap { + displayName = "$STR_AGM_Map_CopyMap"; + condition = "isPlayer AGM_Interaction_Target && {""ItemMap"" in assignedItems player} && {""AGM_MapTools"" in items player} && {""ItemMap"" in assignedItems AGM_Interaction_Target}"; + statement = "[player, ""AGM_Map_fnc_sendMapMarkers"", AGM_Interaction_Target] call AGM_Core_fnc_execRemoteFnc"; + showDisabled = 0; + priority = -1; + }; + }; + }; + + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class FIA_Box_Base_F; + + class Box_NATO_Support_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_MapTools,12) + }; + }; + + class Box_East_Support_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_MapTools,12) + }; + }; + + class Box_IND_Support_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_MapTools,12) + }; + }; + + class Box_FIA_Support_F: FIA_Box_Base_F { + class TransportItems { + MACRO_ADDITEM(AGM_MapTools,12) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_MapTools,12) + }; + }; + + class Module_F; + class AGM_ModuleBlueForceTracking: Module_F { + author = "AGM Team"; + category = "AGM"; + displayName = "Blue Force Tracking"; + function = "AGM_Map_fnc_blueForceTracking"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Map\UI\IconBFTracking_ca.paa"; + class Arguments { + class Interval { + displayName = "Interval"; + description = "How often the markers should be refreshed (in seconds)"; + defaultValue = 1; + }; + class HideAiGroups { + displayName = "Hide AI groups?"; + description = "Hide markers for 'AI only' groups?"; + typeName = "BOOL"; + class values { + class Yes { name = "Yes"; value = 1; }; + class No { name = "No"; value = 0; default = 1; }; + }; + }; + }; + }; +}; + +class RscControlsGroup; +class RscActiveText; +class RscPicture; +class RscText; +class RscObject; +class RscButton; +class RscButtonMenuOK; +class RscButtonMenuCancel; +class RscButtonMenu; +class RscEdit; + +class RscMapControl { + sizeExGrid = 0.032; +}; + +// REGULAR MAP +class RscDisplayMainMap { + // get rid of the "center to player position" - button (as it works even on elite) + class controls { + class TopRight: RscControlsGroup { + #include "MapControls.hpp" + }; + }; + // scale up the compass + class objects { + class Compass: RscObject { + scale = 0.7; + zoomDuration = 0; + }; + }; +}; + +// DIARY +class RscDisplayDiary { + // get rid of the "center to player position" - button (as it works even on elite) + class controls { + class TopRight: RscControlsGroup { + class controls { + class ButtonPlayer: RscActiveText { + text = ""; + w = 0; + h = 0; + sizeEx = 0; + onButtonClick = ""; + }; + class CA_PlayerName: RscText { + x = "2 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class ProfilePicture: RscPicture { + x = "13.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class ProfileBackground: RscText { + x = "13.3 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + class Separator1: RscPicture { + x = "14.5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + }; + }; + }; + }; + // scale up the compass + class objects { + class Compass: RscObject { + scale = 0.7; + zoomDuration = 0; + }; + }; +}; + +// BRIEFING SCREEN +class RscDisplayGetReady: RscDisplayMainMap { + // get rid of the "center to player position" - button (as it works even on elite) + class controls { + class TopRight: RscControlsGroup { + #include "MapControls.hpp" + }; + }; + // scale up the compass + class objects { + class Compass: RscObject { + scale = 0.7; + zoomDuration = 0; + }; + }; +}; +class RscDisplayClientGetReady: RscDisplayGetReady { + // get rid of the "center to player position" - button (as it works even on elite) + class controls { + class TopRight: RscControlsGroup { + #include "MapControls.hpp" + }; + }; + // scale up the compass + class objects { + class Compass: RscObject { + scale = 0.7; + zoomDuration = 0; + }; + }; +}; +class RscDisplayServerGetReady: RscDisplayGetReady { + // get rid of the "center to player position" - button (as it works even on elite) + class controls { + class TopRight: RscControlsGroup { + #include "MapControls.hpp" + }; + }; + // scale up the compass + class objects { + class Compass: RscObject { + scale = 0.7; + zoomDuration = 0; + }; + }; +}; + +// MARKERS +class CfgMarkers { + class Flag; + + // Reenable NATO symbols ... + class b_unknown: Flag {scope = 2;}; + + // ... and disable all the useless ones + // If you think that some of these are needed, create an issue; But until + // there's a better way to place markers, there should be only the most + // important markers here. + // Keep in mind that all of these can still be placed in the editor. + class b_hq: b_unknown {scope = 1;}; + class b_installation: b_unknown {scope = 1;}; + class b_maint: b_unknown {scope = 1;}; + class b_med: b_unknown {scope = 1;}; + class b_service: b_unknown {scope = 1;}; + class b_support: b_unknown {scope = 1;}; + + class n_unknown: b_unknown {}; + class n_hq: n_unknown {scope = 1;}; + class n_installation: n_unknown {scope = 1;}; + class u_installation: n_unknown {scope = 1;}; // i have no idea... + class n_maint: n_unknown {scope = 1;}; + class n_med: n_unknown {scope = 1;}; + class n_service: n_unknown {scope = 1;}; + class n_support: n_unknown {scope = 1;}; + + class o_unknown: b_unknown {}; + class o_hq: o_unknown {scope = 1;}; + class o_installation: o_unknown {scope = 1;}; + class o_maint: o_unknown {scope = 1;}; + class o_med: o_unknown {scope = 1;}; + class o_service: o_unknown {scope = 1;}; + class o_support: o_unknown {scope = 1;}; + + // disable all civy markers (harbor etc.) + class c_unknown: b_unknown {scope = 1;}; + + // disable quantity indicators (fire team/squad/platoon ...) + class group_0: b_unknown {scope = 1;}; + + + class AGM_MapToolFixed { + name = "MapToolFixed"; + icon = "\AGM_Map\data\mapToolFixed.paa"; + scope = 0; + color[] = {1,1,1,1}; + size = 32; + }; + + class AGM_MapToolRotatingNormal { + name = "MapToolRotating"; + icon = "\AGM_Map\data\mapToolRotatingNormal.paa"; + scope = 0; + color[] = {1,1,1,1}; + size = 32; + }; + + class AGM_MapToolRotatingSmall { + name = "MapToolRotating"; + icon = "\AGM_Map\data\mapToolRotatingSmall.paa"; + scope = 0; + color[] = {1,1,1,1}; + size = 32; + }; +}; + +class AGM_Parameters_Numeric { + AGM_Map_BFT_Interval = 1; +}; +class AGM_Parameters_Boolean { + AGM_Map_EveryoneCanDrawOnBriefing = 1; + AGM_Map_BFT_Enabled = 0; + AGM_Map_BFT_HideAiGroups = 0; +}; + +#include "MapGpsUI.hpp" diff --git a/TO_MERGE/agm/Map/data/mapToolFixed.paa b/TO_MERGE/agm/Map/data/mapToolFixed.paa new file mode 100644 index 0000000000..8f2c0febfd Binary files /dev/null and b/TO_MERGE/agm/Map/data/mapToolFixed.paa differ diff --git a/TO_MERGE/agm/Map/data/mapToolRotatingNormal.paa b/TO_MERGE/agm/Map/data/mapToolRotatingNormal.paa new file mode 100644 index 0000000000..2ab9db6174 Binary files /dev/null and b/TO_MERGE/agm/Map/data/mapToolRotatingNormal.paa differ diff --git a/TO_MERGE/agm/Map/data/mapToolRotatingSmall.paa b/TO_MERGE/agm/Map/data/mapToolRotatingSmall.paa new file mode 100644 index 0000000000..509d237646 Binary files /dev/null and b/TO_MERGE/agm/Map/data/mapToolRotatingSmall.paa differ diff --git a/TO_MERGE/agm/Map/functions/fn_addLineMarker.sqf b/TO_MERGE/agm/Map/functions/fn_addLineMarker.sqf new file mode 100644 index 0000000000..7d2d5edea2 --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_addLineMarker.sqf @@ -0,0 +1,40 @@ +/* + * Author: CAA-Picard + * + * Add the line marker + * + * Argument: + * 0: Marker Name (string) + * 1: Marker start pos (array) + * 2: Marker end pos (array) + * 3: Color index (Number) + * + * Return value: + * Return + */ + + _name = _this select 0; + _startPos = _this select 1; + _difPos = (_this select 2) vectorDiff _startPos ; + _color = _this select 3; + +_marker = createMarkerLocal [_name, _startPos]; +_name setMarkerShapeLocal "RECTANGLE"; +_name setMarkerAlphaLocal 1; +_name setMarkerColorLocal _color; +_name setMarkerPosLocal (_startPos vectorAdd (_difPos vectorMultiply 0.5)); +_mag = vectorMagnitude _difPos; +if (_mag > 0) then { + _name setMarkerSizeLocal [5, _mag / 2]; + _name setMarkerDirLocal (180 + (_difPos select 0) atan2 (_difPos select 1) mod 360); +} else { + _name setMarkerSizeLocal [5, 5]; + _name setMarkerDirLocal 0; +}; + +AGM_Map_lineMarkers pushBack (+_this); + +if (isServer && AGM_Map_syncMarkers) then { + AGM_Map_serverLineMarkers pushBack (+_this); + publicVariable "AGM_Map_serverLineMarkers"; +}; diff --git a/TO_MERGE/agm/Map/functions/fn_blueForceTracking.sqf b/TO_MERGE/agm/Map/functions/fn_blueForceTracking.sqf new file mode 100644 index 0000000000..efef0ac96c --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_blueForceTracking.sqf @@ -0,0 +1,29 @@ +/* + * Author: KoffeinFlummi + * + * Initializes the blue force tracking module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +if !(hasInterface) exitWith {}; + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +_logic spawn { + waitUntil {alive player}; + + AGM_Map_BFT_Enabled = true; + [_this, "AGM_Map_BFT_Interval", "Interval"] call AGM_Core_fnc_readNumericParameterFromModule; + [_this, "AGM_Map_BFT_HideAiGroups", "HideAiGroups"] call AGM_Core_fnc_readBooleanParameterFromModule; + + diag_log text "[AGM]: Blue Force Tracking Module initialized."; +}; diff --git a/TO_MERGE/agm/Map/functions/fn_calculateMapScale.sqf b/TO_MERGE/agm/Map/functions/fn_calculateMapScale.sqf new file mode 100644 index 0000000000..baf7f5884b --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_calculateMapScale.sqf @@ -0,0 +1,16 @@ +/* + * Author: CAA-Picard + * + * Returns the equivalent of 100m in screen coordinates + * + * Argument: + * None + * + * Return value: + * Return + */ + +_pos = ((finddisplay 12) displayctrl 51) ctrlMapScreenToWorld [0.5, 0.5]; +_screenOffset = ((finddisplay 12) displayctrl 51) posWorldToScreen [(_pos select 0) + 100, (_pos select 1)]; + +(_screenOffset select 0) - 0.5 diff --git a/TO_MERGE/agm/Map/functions/fn_canDraw.sqf b/TO_MERGE/agm/Map/functions/fn_canDraw.sqf new file mode 100644 index 0000000000..088252a7e1 --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_canDraw.sqf @@ -0,0 +1,4 @@ +// by CAA-Picard + +(missionNameSpace getVariable ["AGM_Map_syncMarkers", true] && {AGM_Map_EveryoneCanDrawOnBriefing}) || +{(!isNull player) && {"AGM_MapTools" in items player}} diff --git a/TO_MERGE/agm/Map/functions/fn_canUseMapGPS.sqf b/TO_MERGE/agm/Map/functions/fn_canUseMapGPS.sqf new file mode 100644 index 0000000000..344ab3b8c7 --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_canUseMapGPS.sqf @@ -0,0 +1,5 @@ +// by CAA-Picard + +visibleMap && +{alive player} && +{"ItemGPS" in assignedItems player} diff --git a/TO_MERGE/agm/Map/functions/fn_canUseMapTools.sqf b/TO_MERGE/agm/Map/functions/fn_canUseMapTools.sqf new file mode 100644 index 0000000000..5a5562261b --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_canUseMapTools.sqf @@ -0,0 +1,8 @@ +// by CAA-Picard + +visibleMap && +{alive player} && +{"ItemMap" in assignedItems player} && +{"AGM_MapTools" in items player} && +{!AGM_Map_dragging} && +{!AGM_Map_rotating} diff --git a/TO_MERGE/agm/Map/functions/fn_cancelDrawing.sqf b/TO_MERGE/agm/Map/functions/fn_cancelDrawing.sqf new file mode 100644 index 0000000000..053dfd9f51 --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_cancelDrawing.sqf @@ -0,0 +1,17 @@ +/* + * Author: CAA-Picard + * + * Cancel the drawing of the current line marker + * + * Argument: + * None + * + * Return value: + * Nothing + */ + +AGM_Map_drawing = false; +if (count AGM_Map_tempLineMarker > 0) then { + deleteMarkerLocal (AGM_Map_tempLineMarker select 0); +}; +AGM_Map_tempLineMarker = []; diff --git a/TO_MERGE/agm/Map/functions/fn_copyMapMarkers.sqf b/TO_MERGE/agm/Map/functions/fn_copyMapMarkers.sqf new file mode 100644 index 0000000000..d3b62fa9cb --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_copyMapMarkers.sqf @@ -0,0 +1,21 @@ +/* + * Author: CAA-Picard + * + * Copy markers to mapd + * + * Argument: + * 0: Array of markers to copy (Array) + * + * Return value: + * Return + */ + +_lineMarkers = _this; + +{ + _marker = _x; + + if (({(_x select 0) == (_marker select 0)} count AGM_Map_lineMarkers) == 0) then { + _marker call AGM_Map_fnc_addLineMarker; + }; +} forEach _lineMarkers; diff --git a/TO_MERGE/agm/Map/functions/fn_handleKeyDown.sqf b/TO_MERGE/agm/Map/functions/fn_handleKeyDown.sqf new file mode 100644 index 0000000000..aa831bbbbf --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_handleKeyDown.sqf @@ -0,0 +1,73 @@ +/* + * Author: CAA-Picard + * + * Handle key down on map. + * + * Argument: + * 0: Display (display) + * 1: Key code (number) + * 2: Shift Key (boolean) + * 3: Ctrl Key (boolean) + * 4: Alt Key (boolean) + * + * Return value: + * Boolean, true if event was handled + */ + +private ["_dir", "_params", "_control", "_button", "_screenPos", "_shiftKey", "_ctrlKey", "_handled", "_pos"]; + +_display = _this select 0; +_code = _this select 1; +_shiftKey = _this select 2; +_ctrlKey = _this select 3; +_altKey = _this select 4; +_handled = false; + +#define DIK_ESCAPE 0x01 +#define DIK_DELETE 0xD3 + +// If pressed Esc while drawing +if (_code == DIK_ESCAPE) exitWith { + if (AGM_Map_drawing) then { + call AGM_Map_fnc_cancelDrawing; + _handled = true; + }; +}; + +if (_code == DIK_DELETE) exitWith { + if (AGM_Map_drawing) then { + call AGM_Map_fnc_cancelDrawing; + _handled = true; + } else { + + // Check if a line marker needs to be deleted + { + _relPos = AGM_Map_mousePos vectorDiff (_x select 1); + _diffVector = (_x select 2) vectorDiff (_x select 1); + _magDiffVector = vectorMagnitude _diffVector; + if (_magDiffVector == 0) then { + _diffVector = [10,0,0]; + _magDiffVector = vectorMagnitude _diffVector; + }; + _diffVector = _diffVector vectorMultiply (1/_magDiffVector); + + // Projection of the relative position over the longitudinal axis + _lambdaLong = _diffVector vectorDotProduct _relPos; + // Projection of the relative position over the trasversal axis + _lambdaTrasAbs = vectorMagnitude (_relPos vectorDiff (_diffVector vectorMultiply _lambdaLong)); + if (_lambdaLong >= 0 && _lambdaLong <= _magDiffVector && _lambdaTrasAbs <= 5) exitWith { + // Delete the line marker + if (AGM_Map_syncMarkers) then { + [[_x select 0], "AGM_Map_fnc_removeLineMarker", 2] call AGM_Core_fnc_execRemoteFnc; + } else { + deleteMarkerLocal (_x select 0); + AGM_Map_lineMarkers = AGM_Map_lineMarkers - [_x]; + }; + _handled = true; + + }; + } forEach AGM_Map_lineMarkers; + }; +}; + +_handled diff --git a/TO_MERGE/agm/Map/functions/fn_handleMouseButton.sqf b/TO_MERGE/agm/Map/functions/fn_handleMouseButton.sqf new file mode 100644 index 0000000000..05e957f6ba --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_handleMouseButton.sqf @@ -0,0 +1,98 @@ +/* + * Author: CAA-Picard + * + * Handle mouse buttons. + * + * Argument: + * 0: 1 if mouse down down, 0 if mouse button up (Number) + * 1: Parameters of the mouse button event + * + * Return value: + * Boolean, true if event was handled + */ + +private ["_dir", "_params", "_control", "_button", "_screenPos", "_shiftKey", "_ctrlKey", "_handled", "_pos"]; + +_dir = _this select 0; +_params = _this select 1; +_control = _params select 0; +_button = _params select 1; +_screenPos = [_params select 2, _params select 3]; +_shiftKey = _params select 4; +_ctrlKey = _params select 5; +_altKey = _params select 6; +_handled = false; + +// If it's not a left button event, exit +if (_button != 0) exitWith {}; + +// If releasing +if (_dir != 1 && (AGM_Map_dragging or AGM_Map_rotating)) exitWith { + AGM_Map_dragging = false; + AGM_Map_rotating = false; + _handled = true; + _handled +}; + +// If clicking +if (_dir == 1) exitWith { + + if !(call AGM_Map_fnc_canDraw) exitWith {_handled = false;}; + + // Transform mouse screen position to coordinates + _pos = _control ctrlMapScreenToWorld _screenPos; + _pos set [count _pos, 0]; + + if (AGM_Map_drawing) exitWith { + // Already drawing -> Add tempLineMarker to permanent list + if (AGM_Map_syncMarkers) then { + deleteMarkerLocal (AGM_Map_tempLineMarker select 0); + [AGM_Map_tempLineMarker, "AGM_Map_fnc_addLineMarker", 2] call AGM_Core_fnc_execRemoteFnc; + // Log who drew on the briefing screen + (text format ["[AGM] Server: Player %1 drew on the briefing screen", name player]) call AGM_Core_fnc_serverLog; + } else { + AGM_Map_tempLineMarker call AGM_Map_fnc_updateLineMarker; + AGM_Map_lineMarkers pushBack (+AGM_Map_tempLineMarker); + }; + AGM_Map_tempLineMarker = []; + AGM_Map_drawing = false; + _handled = true; + }; + + if (_altKey) exitWith { + // Start drawing + AGM_Map_drawing = true; + // Create tempLineMarker + _gui = format ["%1%2%3%4", random (100), random (100), random (100), random (100)]; + AGM_Map_tempLineMarker = [_gui, + _pos, + _pos, AGM_Map_drawColor]; + _marker = createMarkerLocal [_gui, [0,0]]; + AGM_Map_tempLineMarker call AGM_Map_fnc_updateLineMarker; + _handled = true; + }; + + AGM_Map_dragging = false; + AGM_Map_rotating = false; + + // If no map tool marker then exit + if (isNil "AGM_Map_mapToolFixed") exitWith {_handled = false;}; + + // Check if clicking the maptool + if (_pos call AGM_Map_fnc_isInsideMapTool) exitWith { + // Store data for dragging + AGM_Map_startPos = + AGM_Map_pos; + AGM_Map_startDragPos = + _pos; + if (_ctrlKey) then { + // Store data for rotating + AGM_Map_startAngle = + AGM_Map_angle; + AGM_Map_startDragAngle = (180 + ((AGM_Map_startDragPos select 0) - (AGM_Map_startPos select 0)) atan2 ((AGM_Map_startDragPos select 1) - (AGM_Map_startPos select 1)) mod 360); + // Start rotating + AGM_Map_rotating = true; + } else { + // Start dragging + AGM_Map_dragging = true; + }; + _handled = true; + }; +}; + +_handled diff --git a/TO_MERGE/agm/Map/functions/fn_handleMouseMove.sqf b/TO_MERGE/agm/Map/functions/fn_handleMouseMove.sqf new file mode 100644 index 0000000000..7fcb7c8046 --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_handleMouseMove.sqf @@ -0,0 +1,61 @@ +/* + * Author: CAA-Picard + * + * Handle mouse movement over the map tool. + * + * Argument: + * 0: Map Control + * 1: Mouse position on screen coordinates + * + * Return value: + * Boolean, true if event was handled + */ + +private ["_control", "_pos"]; + +_control = _this select 0; +_pos = [_this select 1, _this select 2]; +AGM_Map_mousePos = _control ctrlMapScreenToWorld _pos; +AGM_Map_mousePos set [count AGM_Map_mousePos, 0]; + +// If cannot draw then exit +if !(call AGM_Map_fnc_canDraw) exitWith { + // If was drawing, cancel + if (AGM_Map_drawing) then { + call AGM_Map_fnc_cancelDrawing; + }; + false +}; + +// Handle drawing +if (AGM_Map_drawing) exitWith { + AGM_Map_tempLineMarker set [2, AGM_Map_mousePos]; + AGM_Map_tempLineMarker call AGM_Map_fnc_updateLineMarker; + false +}; + +// Handle Map tools +if (isNil "AGM_Map_mapToolFixed") exitWith {false}; + +// Translation +if (AGM_Map_dragging) exitWith { + AGM_Map_pos set [0, (AGM_Map_startPos select 0) + (AGM_Map_mousePos select 0) - (AGM_Map_startDragPos select 0)]; + AGM_Map_pos set [1, (AGM_Map_startPos select 1) + (AGM_Map_mousePos select 1) - (AGM_Map_startDragPos select 1)]; + + // Update the size and rotation of the maptool + [] call AGM_Map_fnc_updateMapToolMarkers; + true +}; + +// Rotation +if (AGM_Map_rotating) exitWith { + // Get new angle + _angle = (180 + ((AGM_Map_mousePos select 0) - (AGM_Map_startPos select 0)) atan2 ((AGM_Map_mousePos select 1) - (AGM_Map_startPos select 1)) mod 360); + AGM_Map_angle = AGM_Map_startAngle + _angle - AGM_Map_startDragAngle; + + // Update the size and rotation of the maptool + [] call AGM_Map_fnc_updateMapToolMarkers; + true +}; + +false diff --git a/TO_MERGE/agm/Map/functions/fn_handleMouseZChanged.sqf b/TO_MERGE/agm/Map/functions/fn_handleMouseZChanged.sqf new file mode 100644 index 0000000000..2eadfe124b --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_handleMouseZChanged.sqf @@ -0,0 +1,36 @@ +/* + * Author: CAA-Picard + * + * Handle mouse wheel. + * + * Argument: + * 0: Control + * 1: Scroll Amount + * + * Return value: + * Boolean, true if event was handled + */ + +private ["_dir", "_params", "_control", "_button", "_screenPos", "_shiftKey", "_ctrlKey", "_handled", "_pos"]; + +_control = _this select 0; +_dir = _this select 1; +diag_log "Scroll"; +diag_log _this; +_handled = false; + +// If drawing, change line color +if (count AGM_Map_tempLineMarker > 0) then { + AGM_Map_drawColor = if (_dir > 0) then {AGM_Map_drawColor + 1} else {AGM_Map_drawColor - 1}; + if (AGM_Map_drawColor >= count AGM_Map_drawColors) then { + AGM_Map_drawColor = AGM_Map_drawColor - count AGM_Map_drawColors; + }; + if (AGM_Map_drawColor < 0) then { + AGM_Map_drawColor = AGM_Map_drawColor + count AGM_Map_drawColors; + }; + AGM_Map_tempLineMarker set [3, AGM_Map_drawColor]; + AGM_Map_tempLineMarker call AGM_Map_fnc_updateLineMarker; + + _handled = true; +}; +_handled diff --git a/TO_MERGE/agm/Map/functions/fn_isInsideMapTool.sqf b/TO_MERGE/agm/Map/functions/fn_isInsideMapTool.sqf new file mode 100644 index 0000000000..2015eb2f5b --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_isInsideMapTool.sqf @@ -0,0 +1,35 @@ +/* + * Author: CAA-Picard + * + * Return true if the position is inside the map marker (to allow dragging). + * + * Argument: + * 0: x Position (in meters) + * 1: y Position (in meters) + * + * Return value: + * Boolean + */ + +#define TEXTURE_WIDTH_IN_M 6205 +#define DIST_BOTTOM_TO_CENTER_PERC -0.33 +#define DIST_TOP_TO_CENTER_PERC 0.65 +#define DIST_LEFT_TO_CENTER_PERC 0.30 + +if (AGM_Map_mapToolsShown == 0) exitWith {false}; +_textureWidth = [TEXTURE_WIDTH_IN_M, TEXTURE_WIDTH_IN_M / 2] select (AGM_Map_mapToolsShown - 1); + +_pos = [_this select 0, _this select 1, 0]; +_relPos = _pos vectorDiff [AGM_Map_pos select 0, AGM_Map_pos select 1, 0]; +_dirVector = [sin(AGM_Map_angle), cos(AGM_Map_angle), 0]; + +// Projection of the relative position over the longitudinal axis of the map tool +_lambdaLong = _dirVector vectorDotProduct _relPos; +if (_lambdaLong < DIST_BOTTOM_TO_CENTER_PERC * _textureWidth) exitWith {false}; + +// Projection of the relative position over the trasversal axis of the map tool +_lambdaTrasAbs = vectorMagnitude (_relPos vectorDiff (_dirVector vectorMultiply _lambdaLong)); +if (_lambdaLong > DIST_TOP_TO_CENTER_PERC * _textureWidth) exitWith {false}; +if (_lambdaTrasAbs > DIST_LEFT_TO_CENTER_PERC * _textureWidth) exitWith {false}; + +true diff --git a/TO_MERGE/agm/Map/functions/fn_openMapGps.sqf b/TO_MERGE/agm/Map/functions/fn_openMapGps.sqf new file mode 100644 index 0000000000..fa3459198f --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_openMapGps.sqf @@ -0,0 +1,42 @@ +/* + * Author: CAA-Picard + * + * Opens or closes the gps on the map screen, showing coordinates + * + * Argument: + * 0: Open GPS? (Boolean) + * + * Return value: + * Nothing + */ + + +_open = _this select 0; +_isOpen = !(isNull (uiNamespace getVariable ['AGM_Map_mapGpsDisplay', displayNull])); + +if (_open && {"ItemGPS" in assignedItems player} && {!_isOpen}) then { + ("AGM_mapGpsLayer" call BIS_fnc_rscLayer) cutRsc ["RscAGM_MapGps","PLAIN"]; + + // Spawn a thread to update gps display + [] spawn { + disableSerialization; + while {!(isNull (uiNamespace getVariable ['AGM_Map_mapGpsDisplay', displayNull]))} do { + if !("ItemGPS" in assignedItems player) exitWith {}; + + _mapGpsDisplay = uiNamespace getVariable ['AGM_Map_mapGpsDisplay', displayNull]; + _ctrl = _mapGpsDisplay displayCtrl 913590; + _ctrl ctrlSetText str(round(getDir player)); + _ctrl = _mapGpsDisplay displayCtrl 913591; + _ctrl ctrlSetText str(round((getPosASL player) select 2)); + _ctrl = _mapGpsDisplay displayCtrl 913592; + _ctrl ctrlSetText mapGridPosition player; + + sleep 0.5; + }; + ("AGM_mapGpsLayer" call BIS_fnc_rscLayer) cutText ["","PLAIN"]; + }; + +} else { + ("AGM_mapGpsLayer" call BIS_fnc_rscLayer) cutText ["","PLAIN"]; +}; + diff --git a/TO_MERGE/agm/Map/functions/fn_removeLineMarker.sqf b/TO_MERGE/agm/Map/functions/fn_removeLineMarker.sqf new file mode 100644 index 0000000000..5985e6a53e --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_removeLineMarker.sqf @@ -0,0 +1,29 @@ +/* + * Author: CAA-Picard + * + * Remove the line marker + * + * Argument: + * 0: Marker Name (string) + * + * Return value: + * Return + */ + + _name = _this select 0; + + deleteMarkerLocal _name; +{ + if ((_x select 0) == _name) exitWith { + AGM_Map_lineMarkers = AGM_Map_lineMarkers - [_x]; + }; +} forEach AGM_Map_lineMarkers; + +if (isServer && AGM_Map_syncMarkers) then { + { + if ((_x select 0) == _name) exitWith { + AGM_Map_serverLineMarkers = AGM_Map_serverLineMarkers - [_x]; + publicVariable "AGM_Map_serverLineMarkers"; + }; + } forEach AGM_Map_serverLineMarkers; +}; diff --git a/TO_MERGE/agm/Map/functions/fn_sendMapMarkers.sqf b/TO_MERGE/agm/Map/functions/fn_sendMapMarkers.sqf new file mode 100644 index 0000000000..4bc3f9a97a --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_sendMapMarkers.sqf @@ -0,0 +1,13 @@ +/* + * Author: CAA-Picard + * + * Send Map markers to other player + * + * Argument: + * 0: Target player (Unit) + * + * Return value: + * Return + */ + +[AGM_Map_lineMarkers, "AGM_Map_fnc_copyMapMarkers", _this] call AGM_Core_fnc_execRemoteFnc; diff --git a/TO_MERGE/agm/Map/functions/fn_updateLineMarker.sqf b/TO_MERGE/agm/Map/functions/fn_updateLineMarker.sqf new file mode 100644 index 0000000000..45d3797b2f --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_updateLineMarker.sqf @@ -0,0 +1,32 @@ +/* + * Author: CAA-Picard + * + * Updates the line marker position and scale + * + * Argument: + * 0: Marker Name (string) + * 1: Marker start pos (array) + * 2: Marker end pos (array) + * 3: Color index (Number) + * + * Return value: + * Return + */ + + _name = _this select 0; + _startPos = _this select 1; + _difPos = (_this select 2) vectorDiff _startPos ; + _color = _this select 3; + +_name setMarkerShapeLocal "RECTANGLE"; +_name setMarkerAlphaLocal 1; +_name setMarkerColorLocal AGM_Map_drawColor; +_name setMarkerPosLocal (_startPos vectorAdd (_difPos vectorMultiply 0.5)); +_mag = vectorMagnitude _difPos; +if (_mag > 0) then { + _name setMarkerSizeLocal [5, _mag / 2]; + _name setMarkerDirLocal (180 + (_difPos select 0) atan2 (_difPos select 1) mod 360); +} else { + _name setMarkerSizeLocal [5, 5]; + _name setMarkerDirLocal 0; +}; diff --git a/TO_MERGE/agm/Map/functions/fn_updateMapToolMarkers.sqf b/TO_MERGE/agm/Map/functions/fn_updateMapToolMarkers.sqf new file mode 100644 index 0000000000..25f9cf0691 --- /dev/null +++ b/TO_MERGE/agm/Map/functions/fn_updateMapToolMarkers.sqf @@ -0,0 +1,71 @@ +/* + * Author: CAA-Picard + * + * Update the map tool markers, position, size, rotation and visibility. + * + * Argument: + * None + * + * Return value: + * Nothing + */ + +#define TEXTURE_WIDTH_IN_M 6205 +#define CENTER_OFFSET_Y_PERC 0.1606 +#define CONSTANT_SCALE 0.2 + +// If markers exist and they should'nt, delete them +if (!("AGM_MapTools" in items player) || {AGM_Map_mapToolsShown == 0}) then { + // If markers exist, delete them + if (!isNil "AGM_Map_mapToolFixed") then { + deleteMarkerLocal "AGM_MapToolFixed"; + AGM_Map_mapToolFixed = nil; + }; +}; +if (!("AGM_MapTools" in items player) || {AGM_Map_mapToolsShown != 1}) then { + if (!isNil "AGM_Map_mapToolRotatingNormal") then { + deleteMarkerLocal "AGM_MapToolRotatingNormal"; + AGM_Map_mapToolRotatingNormal = nil; + }; +}; +if (!("AGM_MapTools" in items player) || {AGM_Map_mapToolsShown != 2}) then { + if (!isNil "AGM_Map_mapToolRotatingSmall") then { + deleteMarkerLocal "AGM_MapToolRotatingSmall"; + AGM_Map_mapToolRotatingSmall = nil; + }; +}; + +if (!("AGM_MapTools" in items player)|| {AGM_Map_mapToolsShown == 0}) exitWith {}; + +// If markers don't exist and should, create them +if (isNil "AGM_Map_mapToolFixed") then { + AGM_Map_mapToolFixed = createMarkerLocal ["AGM_MapToolFixed", AGM_Map_pos]; + "AGM_MapToolFixed" setMarkerType "AGM_MapToolFixed"; +}; +if ((isNil "AGM_Map_mapToolRotatingNormal") && {AGM_Map_mapToolsShown == 1}) then { + AGM_Map_mapToolRotatingNormal = createMarkerLocal ["AGM_MapToolRotatingNormal", AGM_Map_pos]; + "AGM_MapToolRotatingNormal" setMarkerType "AGM_MapToolRotatingNormal"; +}; +if ((isNil "AGM_Map_mapToolRotatingSmall") && {AGM_Map_mapToolsShown == 2}) then { + AGM_Map_mapToolRotatingSmall = createMarkerLocal ["AGM_MapToolRotatingSmall", AGM_Map_pos]; + "AGM_MapToolRotatingSmall" setMarkerType "AGM_MapToolRotatingSmall"; +}; + +_rotatingMarker = ["AGM_MapToolRotatingNormal", "AGM_MapToolRotatingSmall"] select (AGM_Map_mapToolsShown - 1); +_textureWidth = [TEXTURE_WIDTH_IN_M, TEXTURE_WIDTH_IN_M / 2] select (AGM_Map_mapToolsShown - 1); + +// Update scale of both parts +_scale = _textureWidth * CONSTANT_SCALE * (call AGM_Map_fnc_calculateMapScale); +"AGM_MapToolFixed" setMarkerSizeLocal [_scale,_scale]; +_rotatingMarker setMarkerSizeLocal [_scale,_scale]; + +// Position of the fixed part +_xPos = AGM_Map_pos select 0; +_yPos = (AGM_Map_pos select 1) + _textureWidth * CENTER_OFFSET_Y_PERC; +"AGM_MapToolFixed" setMarkerPosLocal [_xPos,_yPos]; + +// Position and rotation of the rotating part +_xPos = (AGM_Map_pos select 0) + sin(AGM_Map_angle) * _textureWidth * CENTER_OFFSET_Y_PERC; +_yPos = (AGM_Map_pos select 1) + cos(AGM_Map_angle) * _textureWidth * CENTER_OFFSET_Y_PERC; +_rotatingMarker setMarkerPosLocal [_xPos,_yPos]; +_rotatingMarker setMarkerDirLocal AGM_Map_angle; diff --git a/TO_MERGE/agm/Map/serverInit.sqf b/TO_MERGE/agm/Map/serverInit.sqf new file mode 100644 index 0000000000..842e311dc9 --- /dev/null +++ b/TO_MERGE/agm/Map/serverInit.sqf @@ -0,0 +1,4 @@ +// by CAA-Picard + +AGM_Map_serverLineMarkers = []; +publicVariable "AGM_Map_serverLineMarkers"; diff --git a/TO_MERGE/agm/Map/stringtable.xml b/TO_MERGE/agm/Map/stringtable.xml new file mode 100644 index 0000000000..c70a07c64e --- /dev/null +++ b/TO_MERGE/agm/Map/stringtable.xml @@ -0,0 +1,148 @@ + + + + + + Map Tools + Herramientas de mapa + Outils de navigation + Narzędzia nawigacyjne + Kartenwerkzeug + Pomůcky k Mapě + Strumenti Cartografici + Ferramentas de Mapa + Térképészeti eszközök + Инструменты карты + + + The Map Tools allow you to measure distances and angles on the map. + Las herramientas de mapa permiten medir distancias y ángulos en el mapa. + Les outils de navigation permettent de mesurer des distances et des angles sur la carte. + Narzędzia nawigacyjne pozwalają na mierzenie odległości i kątów na mapie. + Das Kartenwerkzeug erlaubt es dir, Distanzen und Winkel zu messen. + Pomůcky k mapě slouží k měření vzdáleností a úhlů na mapě. + Gli Strumenti Cartografici ti consentono di misurare distanze ed angoli sulla mappa. + As Ferramentas de Mapa permitem que você meça distâncias e ângulos no mapa. + A térképészeti eszközökkel távolságokat és szögeket tud mérni a térképen. + Картографические инструменты позволяют измерять расстояния и углы на карте. + + + Map Tools >> + Herramientas de mapa >> + Outils de navigation >> + Narzędzia nawigacyjne >> + Kartenwerkzeug >> + Pomůcky k Mapě >> + Strumenti Cartografici >> + Ferramentas de Mapa >> + Térképészeti eszközök >> + Инструменты карты >> + + + Hide Map Tool + Verstecke Kartenwerkzeug + Ocultar herr. de mapa + Ranger les outils + Nascondi Strumenti Cartografici + Ocultar Ferramenta de Mapa + Térképészeti eszközök elrejtése + Ukryj narzędzia nawigacyjne + Schovat pomůcku k mapě + Скрыть инструменты + + + Show Normal Map Tool + Zeige Kartenwerkzeug (normal) + Mostrar herr. de mapa normal + Montrer outils normaux + Visualizza Strumenti Cartografici standard + Mostrar Ferramenta de Mapa Padrão + Térképészeti eszköz megjelenítése (normál méret) + Pokaż normalne narzędzia nawigacyjne + Zobrazit normální pomůcku k mapě + Показать инструменты (средн. размер) + + + Show Small Map Tool + Zeige Kartenwerkzeug (klein) + Mostrar herr. de mapa pequeñas + Montrer petits outils + Visualizza Strumenti Cartografici piccoli + Mostrar Ferramenta de Mapa Pequena + Térképészeti eszköz megjelenítése (kicsinyített) + Pokaż pomniejszone narzędzia nawigacyjne + Zobrazit malou pomůcku k mapě + Показать инструменты (малый размер) + + + Align Map Tool to North + Kartenwerkzeug nach Norden ausrichten + Alinear herr. de mapa al norte + Aligner au nord + Allinea gli Strumenti Cartografici con il Nord + Alinhar Ferramenta de Mapa com o Norte + Térképészeti eszköz Északhoz állítása + Wyrównaj linijkę do północy + Srovnat pomůcku k mapě na sever + Выровнять инструменты на север + + + Align Map Tool to Compass + Kartenwerkzeug am Kompass ausrichten + Alinear herr. de mapa a la brújula + Aligner sur la boussole + Allinea gli Strumenti Cartografici con la bussola + Alinhar Ferramenta de Mapa com a Bússola + Térképészeti eszköz iránytűhöz állítása + Wyrównaj linijkę do kompasu + Srovnat pomůcku k mapě ke kompasu + Выровнять инструменты по компасу + + + Show GPS on Map + Zeige GPS auf der Karte + Mostrar el GPS sobre el mapa + Ranger le GPS + Visualizza il GPS sulla mappa + Mostrar GPS no Mapa + GPS megjelnítése a térképen + Pokaż GPS na mapie + Zobrazit GPS na mapě + Показать GPS на карте + + + Hide GPS on Map + Verstecke GPS auf der Karte + Ocultar el GPS del mapa + Montrer le GPS + Nascondi il GPS sulla mappa + Ocultar GPS no Mapa + GPS elrejtése térképről + Ukryj GPS na mapie + Schovat GPS na mapě + Скрыть GPS на карте + + + Copy Map + Karte kopieren + Copiar mapa + Скопировать карту + Kopiuj oznaczenia mapy + Copier la carte + Zkopírovat mapu + Copiare Carta + Térkép másolása + Copiar Mapa + + + Direction: %1° + Drehung: %1° + Direction: %1° + Směr: %1° + Kierunek: %1° + Dirección: %1° + Irány: %1 + Направление:%1 + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Markers/InsertMarker.hpp b/TO_MERGE/agm/Markers/InsertMarker.hpp new file mode 100644 index 0000000000..07366a1f4b --- /dev/null +++ b/TO_MERGE/agm/Markers/InsertMarker.hpp @@ -0,0 +1,136 @@ + +class RscDisplayInsertMarker { + onLoad = "_this call compile preprocessFileLineNumbers 'AGM_Markers\scripts\initInsertMarker.sqf'"; + onUnload = "_this call compile preprocessFileLineNumbers 'AGM_Markers\scripts\placeMarker.sqf'"; + idd = 54; + movingEnable = 1; + class controlsBackground { + class RscText_1000: RscText { + idc = 1000; + /*x = "0 * GUI_GRID_INSERTMARKER_W + GUI_GRID_INSERTMARKER_X"; + y = "0 * GUI_GRID_INSERTMARKER_H + GUI_GRID_INSERTMARKER_Y"; + w = "8 * GUI_GRID_INSERTMARKER_W"; + h = "2.5 * GUI_GRID_INSERTMARKER_H"; + colorBackground[] = {0,0,0,0.5};*/ + }; + class Description: RscStructuredText { + colorBackground[] = {0,0,0,0.7}; + idc = 1100; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "9.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + }; + class controls { + //delete ButtonOK; + class ButtonMenuOK: RscButtonMenuOK { + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "15.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "8.9 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + // size = "0.85 * ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + // sizeEx = "0.85 * ( ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + text = ""; + }; + class ButtonMenuCancel: RscButtonMenuCancel { + x = "23 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "15.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "1.1 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + + text = "X"; + colorBackground[] = {0.75,0,0,0.5}; + colorBackgroundFocused[] = {0.75,0,0,0.5}; + colorBackground2[] = {1,0,0,0.5}; + }; + /*class ButtonMenuInfo: RscButtonMenu { + idc = 2400; + text = "$STR_A3_RscDisplayInsertMarker_ButtonMenuInfo"; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "13.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + };*/ + delete ButtonMenuInfo; + class Title: RscText { + moving = 1; + colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"}; + idc = 1001; + text = "$STR_A3_RscDisplayInsertMarker_Title"; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "8.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + delete Description; + /*class Info: RscStructuredText { + colorBackground[] = {0,0,0,0.7}; + idc = 1101; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "11.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + };*/ + delete Info; + class Picture: RscPicture { + idc = 102; + x = 0.259984; + y = 0.4; + w = 0.05; + h = 0.0666667; + }; + class Text: RscEdit { + idc = 101; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "10.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + /*class SizeX: RscEdit { + idc = 1200; + text = "10"; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "12.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + class SizeY: RscEdit { + idc = 1201; + text = "10"; + x = "19 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "12.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "5 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + };*/ + class MarkerShape: RscCombo { + idc = 1210; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "11.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + class MarkerColor: RscCombo { + idc = 1211; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "12.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + class MarkerAngle: RscXSliderH { + idc = 1220; + text = "10"; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "13.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + class MarkerAngleText: RscText { + idc = 1221; + x = "14 * ( ((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "14.5 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + safezoneH - ( ((safezoneW / safezoneH) min 1.2) / 1.2))"; + w = "10 * ( ((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ( ( ((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + }; + }; +}; diff --git a/TO_MERGE/agm/Markers/clientInit.sqf b/TO_MERGE/agm/Markers/clientInit.sqf new file mode 100644 index 0000000000..e5dc72e804 --- /dev/null +++ b/TO_MERGE/agm/Markers/clientInit.sqf @@ -0,0 +1,7 @@ +// by commy2 + +// request marker data for JIP +if (isMultiplayer && {!isServer}) then { + _logic = createGroup sideLogic createUnit ["Logic", [0,0,0], [], 0, "NONE"]; + [_logic, "AGM_Markers_fnc_sendMarkersJIP", 1] call AGM_Core_fnc_execRemoteFnc; +}; diff --git a/TO_MERGE/agm/Markers/config.cpp b/TO_MERGE/agm/Markers/config.cpp new file mode 100644 index 0000000000..3811f1f685 --- /dev/null +++ b/TO_MERGE/agm/Markers/config.cpp @@ -0,0 +1,47 @@ +class CfgPatches { + class AGM_Markers { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Markers { + class AGM_Markers { + file = "AGM_Markers\functions"; + class onLBSelChangedColor; + class onLBSelChangedShape; + class onSliderPosChangedAngle; + class sendMarkersJIP; + class setMarker; + class setMarkerJIP; + class setMarkerNetwork; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Markers { + clientInit = "call compile preprocessFileLineNumbers 'AGM_Markers\clientInit.sqf'"; + }; +}; + +class RscPicture; +class RscText; +class RscStructuredText; +class RscButtonMenuOK; +class RscButtonMenuCancel; +class RscButtonMenu; +class RscEdit; +class RscCombo; +class RscSlider; +class RscXSliderH; + +#include diff --git a/TO_MERGE/agm/Markers/functions/fn_onLBSelChangedColor.sqf b/TO_MERGE/agm/Markers/functions/fn_onLBSelChangedColor.sqf new file mode 100644 index 0000000000..28c788e260 --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_onLBSelChangedColor.sqf @@ -0,0 +1,22 @@ +// by commy2 + +private ["_ctrl", "_data", "_config", "_color"]; + +_ctrl = _this select 0; +_data = _ctrl lbValue (_this select 1); + +uiNamespace setVariable ["AGM_Markers_curSelMarkerColor", _this select 1]; + +_config = (configfile >> "CfgMarkerColors") select _data; + +_color = getArray (_config >> "color"); + +{ + if (typeName _x != "SCALAR") then { + _color set [_forEachIndex, call compile _x]; + }; +} forEach _color; + +((ctrlParent _ctrl) displayCtrl 102) ctrlSetTextColor _color; + +uiNamespace setVariable ["AGM_Markers_currentMarkerColor", _data]; diff --git a/TO_MERGE/agm/Markers/functions/fn_onLBSelChangedShape.sqf b/TO_MERGE/agm/Markers/functions/fn_onLBSelChangedShape.sqf new file mode 100644 index 0000000000..c47cff385b --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_onLBSelChangedShape.sqf @@ -0,0 +1,16 @@ +// by commy2 + +private ["_ctrl", "_data", "_config", "_icon"]; + +_ctrl = _this select 0; +_data = _ctrl lbValue (_this select 1); + +uiNamespace setVariable ["AGM_Markers_curSelMarkerShape", _this select 1]; + +_config = (configfile >> "CfgMarkers") select _data; + +_icon = getText (_config >> "icon"); + +((ctrlParent _ctrl) displayCtrl 102) ctrlSetText _icon; + +uiNamespace setVariable ["AGM_Markers_currentMarkerShape", _data]; diff --git a/TO_MERGE/agm/Markers/functions/fn_onSliderPosChangedAngle.sqf b/TO_MERGE/agm/Markers/functions/fn_onSliderPosChangedAngle.sqf new file mode 100644 index 0000000000..4dabc45b35 --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_onSliderPosChangedAngle.sqf @@ -0,0 +1,17 @@ +// by commy2 + +private ["_ctrl", "_data", "_direction"]; + +_ctrl = _this select 0; +_data = _this select 1; + +uiNamespace setVariable ["AGM_Markers_curSelMarkerAngle", _data]; + +_direction = round _data; +if (_direction < 0) then { + _direction = _direction + 360; +}; + +((ctrlParent _ctrl) displayCtrl 1221) ctrlSetText format [localize "STR_AGM_Markers_MarkerDirection", _direction]; + +uiNamespace setVariable ["AGM_Markers_currentMarkerAngle", _data]; diff --git a/TO_MERGE/agm/Markers/functions/fn_sendMarkersJIP.sqf b/TO_MERGE/agm/Markers/functions/fn_sendMarkersJIP.sqf new file mode 100644 index 0000000000..dd95a68d50 --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_sendMarkersJIP.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private "_logic"; + +_logic = _this; + +[ + [ + missionNamespace getVariable ["AGM_allMapMarkers", []], + missionNamespace getVariable ["AGM_allMapMarkersProperties", []], + _logic + ], + "AGM_Markers_fnc_setMarkerJIP", + _logic +] call AGM_Core_fnc_execRemoteFnc; diff --git a/TO_MERGE/agm/Markers/functions/fn_setMarker.sqf b/TO_MERGE/agm/Markers/functions/fn_setMarker.sqf new file mode 100644 index 0000000000..63df5bfe11 --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_setMarker.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private ["_marker", "_data", "_config"]; + +_marker = _this select 0; +_data = _this select 1; + +_config = (configfile >> "CfgMarkers") select (_data select 0); +[[_marker, configName _config], "{if ((_this select 0) in allMapMarkers) then {(_this select 0) setMarkerTypeLocal (_this select 1)};}", 2] call AGM_Core_fnc_execRemoteFnc; + +_config = (configfile >> "CfgMarkerColors") select (_data select 1); +[[_marker, configName _config], "{if ((_this select 0) in allMapMarkers) then {(_this select 0) setMarkerColorLocal (_this select 1)};}", 2] call AGM_Core_fnc_execRemoteFnc; + +[[_marker, _data select 2], "{if ((_this select 0) in allMapMarkers) then {(_this select 0) setMarkerPosLocal (_this select 1)};}", 2] call AGM_Core_fnc_execRemoteFnc; +[[_marker, _data select 3], "{if ((_this select 0) in allMapMarkers) then {(_this select 0) setMarkerDirLocal (_this select 1)};}", 2] call AGM_Core_fnc_execRemoteFnc; diff --git a/TO_MERGE/agm/Markers/functions/fn_setMarkerJIP.sqf b/TO_MERGE/agm/Markers/functions/fn_setMarkerJIP.sqf new file mode 100644 index 0000000000..9ede4d492e --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_setMarkerJIP.sqf @@ -0,0 +1,26 @@ +// by commy2 + +private ["_allMapMarkers", "_allMapMarkersProperties", "_index", "_data", "_config"]; + +_allMapMarkers = _this select 0; +_allMapMarkersProperties = _this select 1; +_logic = _this select 2; + +{ + _index = _allMapMarkers find _x; + + if (_index != -1) then { + _data = _allMapMarkersProperties select _index; + + _config = (configfile >> "CfgMarkers") select (_data select 0); + _x setMarkerTypeLocal configName _config; + + _config = (configfile >> "CfgMarkerColors") select (_data select 1); + _x setMarkerColorLocal configName _config; + + _x setMarkerPosLocal (_data select 2); + _x setMarkerDirLocal (_data select 3); + }; +} forEach allMapMarkers; + +deleteVehicle _logic; diff --git a/TO_MERGE/agm/Markers/functions/fn_setMarkerNetwork.sqf b/TO_MERGE/agm/Markers/functions/fn_setMarkerNetwork.sqf new file mode 100644 index 0000000000..e655c7171f --- /dev/null +++ b/TO_MERGE/agm/Markers/functions/fn_setMarkerNetwork.sqf @@ -0,0 +1,36 @@ +// by commy2 + +private ["_marker", "_data", "_config"]; + +_marker = _this select 0; +_data = _this select 1; + +_config = (configfile >> "CfgMarkers") select (_data select 0); +_marker setMarkerTypeLocal configName _config; + +_config = (configfile >> "CfgMarkerColors") select (_data select 1); +_marker setMarkerColorLocal configName _config; + +_marker setMarkerPosLocal (_data select 2); +_marker setMarkerDirLocal (_data select 3); + +// save properties on server machine for JIP, marker editing ready +if (isMultiplayer && {isServer}) then { + private ["_allMapMarkers", "_allMapMarkersProperties", "_index"]; + + _allMapMarkers = missionNamespace getVariable ["AGM_allMapMarkers", []]; + _allMapMarkersProperties = missionNamespace getVariable ["AGM_allMapMarkersProperties", []]; + + _index = _allMapMarkers find _marker; + + if (_index == -1) then { + _allMapMarkers pushBack _marker; + _allMapMarkersProperties pushBack _data; + } else { + _allMapMarkers set [_index, _marker]; + _allMapMarkersProperties set [_index, _data]; + }; + + AGM_allMapMarkers = _allMapMarkers; + AGM_allMapMarkersProperties = _allMapMarkersProperties; +}; diff --git a/TO_MERGE/agm/Markers/scripts/initInsertMarker.sqf b/TO_MERGE/agm/Markers/scripts/initInsertMarker.sqf new file mode 100644 index 0000000000..37a5544bca --- /dev/null +++ b/TO_MERGE/agm/Markers/scripts/initInsertMarker.sqf @@ -0,0 +1,265 @@ +// stuff taken from bohemia, edited by commy2 + +#define BORDER 0.005 + +with uinamespace do { + _this spawn { + disableserialization; + _display = _this select 0; + + //Prevent Captive Players from placing markers + if (AGM_player getVariable ["AGM_isCaptive", false]) exitWith { + _display closeDisplay 2; //emulate "Cancel" button + }; + + // display vanilla key input + _display displayAddEventHandler ["KeyDown", {(_this select 1) in [200, 208]}]; + + _text = _display displayctrl 101; + _picture = _display displayctrl 102; + _buttonOK = _display displayctrl 1; + _buttonCancel = _display displayctrl 2; + _description = _display displayctrl 1100; + _title = _display displayctrl 1001; + _sizeX = _display displayctrl 1200; + _sizeY = _display displayctrl 1201; + _shape = _display displayctrl 1210; + _color = _display displayctrl 1211; + _angle = _display displayctrl 1220; + _angleText = _display displayctrl 1221; + + ctrlSetFocus _text; + + //Change ok button's text based on current channel + [_buttonOK] spawn { + disableserialization; + private ["_buttonOK", "_channel", "_textColor"]; + _buttonOK = _this select 0; + + waitUntil { + if (isNull _buttonOK) exitWith {true}; + _textColor = [1,1,1,1]; + switch (call AGM_Core_fnc_currentChannel) do { + case ("global"): { + _channel = localize "str_channel_global"; + _textColor = [(216/255),(216/255),(216/255),1]; + }; + case ("side"): { + _channel = localize "str_channel_side"; + _textColor = [(70/255),(211/255),(252/255),1]; + }; + case ("group"): { + _channel = localize "str_channel_group"; + _textColor = [(181/255),(248/255),(98/255),1]; + }; + case ("vehicle"): { + _channel = localize "str_channel_vehicle"; + _textColor = [(255/255),(208/255),(0/255),1]; + }; + case ("direct"): { + _channel = localize "str_channel_direct"; + _textColor = [(255/255),(255/255),(255/255),1]; + }; + case ("command"): { + _channel = localize "str_channel_command"; + _textColor = [(255/255),(255/255),(70/255),1]; + }; + }; + //If localization not found, then don't touch anything (default is RscButtonMenuOK's localized text) + if (_channel != "") then { + _buttonOK ctrlSetTextColor _textColor; + _buttonOK ctrlSetText format [localize "STR_AGM_Markers_PlaceIn", _channel]; + }; + false + }; + }; + + //--- Background + _pos = ctrlposition _text; + _posX = (_pos select 0) + 0.01; + _posY = _pos select 1; + _posW = _pos select 2; + _posH = _pos select 3; + _posY = _posY min ((safeZoneH + safeZoneY) - (6 * _posH + 8 * BORDER)); //prevent buttons being placed below bottom edge of screen + _pos set [0,_posX]; + _pos set [1,_posY]; + _text ctrlsetposition _pos; + _text ctrlcommit 0; + + //--- Title + _pos set [1,_posY - 2*_posH - BORDER]; + _pos set [3,_posH]; + _title ctrlsetposition _pos; + _title ctrlcommit 0; + + //--- Description + _pos set [1,_posY - 1*_posH]; + _pos set [3,6*_posH + 6 * BORDER]; + _description ctrlsetposition _pos; + _description ctrlsetstructuredtext parsetext format ["%1","Description:"]; //--- ToDo: Localze + _description ctrlcommit 0; + + _activeColor = (["IGUI","WARNING_RGB"] call bis_fnc_displaycolorget) call bis_fnc_colorRGBtoHTML; + + //--- Shape + _pos set [1,_posY + 1 * _posH + 2 * BORDER]; + _pos set [2,_posW]; + _pos set [3,_posH]; + _shape ctrlsetposition _pos; + _shape ctrlcommit 0; + + //--- Color + _pos set [1,_posY + 2 * _posH + 3 * BORDER]; + _pos set [2,_posW]; + _color ctrlsetposition _pos; + _color ctrlcommit 0; + + //--- Angle + _pos set [1,_posY + 3 * _posH + 4 * BORDER]; + _pos set [2,_posW]; + _angle ctrlsetposition _pos; + _angle ctrlcommit 0; + + //--- Angle Text + _pos set [1,_posY + 4 * _posH + 5 * BORDER]; + _pos set [2,_posW]; + _angleText ctrlsetposition _pos; + _angleText ctrlcommit 0; + + //--- ButtonOK + _pos set [1,_posY + 5 * _posH + 7 * BORDER]; + _pos set [2,_posW * (8.9/10) - BORDER]; + _buttonOk ctrlsetposition _pos; + _buttonOk ctrlcommit 0; + + //--- ButtonCancel + _pos set [0,_posX + _posW * (8.9 / 10)]; + _pos set [2,_posW * (1.1 / 10)]; + _buttonCancel ctrlsetposition _pos; + _buttonCancel ctrlcommit 0; + + //--- PositionX + /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; + _sizeX ctrlsetposition _pos; + _sizeX ctrlcommit 0;*/ + + //--- PositionY + /*_pos set [1,_posY + 2 * _posH + 3 * BORDER]; + _sizeY ctrlsetposition _pos; + _sizeY ctrlcommit 0;*/ + + + // init marker shape lb + _config = configfile >> "CfgMarkers"; + _index = 0; + + if (isNil "AGM_Markers_MarkersCache") then { + AGM_Markers_MarkersCache = []; + + for "_a" from 0 to (count _config - 1) do { + _marker = _config select _a; + + _scope = getNumber (_marker >> "scope"); + _name = getText (_marker >> "name"); + _icon = getText (_marker >> "icon"); + + if (_scope == 2) then { + _shape lbAdd _name; + _shape lbSetValue [_index, _a]; + _shape lbSetPicture [_index, _icon]; + + AGM_Markers_MarkersCache pushBack [_name, _a, _icon]; + + _index = _index + 1; + }; + }; + } else { + { + _shape lbAdd (_x select 0); + _shape lbSetValue [_forEachIndex, _x select 1]; + _shape lbSetPicture [_forEachIndex, _x select 2]; + } forEach AGM_Markers_MarkersCache; + }; + + _shape ctrlAddEventHandler ["LBSelChanged", {_this call AGM_Markers_fnc_onLBSelChangedShape}]; + + _curSelShape = uiNamespace getVariable ["AGM_Markers_curSelMarkerShape", 0]; + _shape lbSetCurSel _curSelShape; + _data = _shape lbValue _curSelShape; + _config = (configfile >> "CfgMarkers") select _data; + _icon = getText (_config >> "icon"); + _picture ctrlSetText _icon; + + + // init marker color lb + _config = configfile >> "CfgMarkerColors"; + _index = 0; + + if (isNil "AGM_Markers_MarkerColorsCache") then { + AGM_Markers_MarkerColorsCache = []; + + for "_a" from 0 to (count _config - 1) do { + _marker = _config select _a; + + _scope = getNumber (_marker >> "scope"); + _name = getText (_marker >> "name"); + + if (_scope == 2) then { + _color lbAdd _name; + _color lbSetValue [_index, _a]; + + _rgba = getArray (_marker >> "color"); + + { + if (typeName _x != "SCALAR") then { + _rgba set [_forEachIndex, call compile _x]; + }; + } forEach _rgba; + + _icon = format ["#(argb,8,8,3)color(%1,%2,%3,%4)", _rgba select 0, _rgba select 1, _rgba select 2, _rgba select 3]; + + _color lbSetPicture [_index, _icon]; + + AGM_Markers_MarkerColorsCache pushBack [_name, _a, _icon]; + + _index = _index + 1; + }; + }; + } else { + { + _color lbAdd (_x select 0); + _color lbSetValue [_forEachIndex, _x select 1]; + _color lbSetPicture [_forEachIndex, _x select 2]; + } forEach AGM_Markers_MarkerColorsCache; + }; + + _color ctrlAddEventHandler ["LBSelChanged", {_this call AGM_Markers_fnc_onLBSelChangedColor}]; + + _curSelColor = uiNamespace getVariable ["AGM_Markers_curSelMarkerColor", 0]; + _color lbSetCurSel _curSelColor; + _data = _color lbValue _curSelColor; + _config = (configfile >> "CfgMarkerColors") select _data; + _rgba = getArray (_config >> "color"); + { + if (typeName _x != "SCALAR") then { + _rgba set [_forEachIndex, call compile _x]; + }; + } forEach _rgba; + _picture ctrlSetTextColor _rgba; + + + // init marker angle slider + _angle sliderSetRange [-180, 180]; + _angle ctrlAddEventHandler ["SliderPosChanged", {_this call AGM_Markers_fnc_onSliderPosChangedAngle}]; + + _curSelAngle = uiNamespace getVariable ["AGM_Markers_curSelMarkerAngle", 0]; + _angle sliderSetPosition _curSelAngle; + + _curSelAngle = round _curSelAngle; + if (_curSelAngle < 0) then { + _curSelAngle = _curSelAngle + 360; + }; + + _angleText ctrlSetText format [localize "STR_AGM_Markers_MarkerDirection", _curSelAngle]; + }; +}; diff --git a/TO_MERGE/agm/Markers/scripts/placeMarker.sqf b/TO_MERGE/agm/Markers/scripts/placeMarker.sqf new file mode 100644 index 0000000000..248190435a --- /dev/null +++ b/TO_MERGE/agm/Markers/scripts/placeMarker.sqf @@ -0,0 +1,51 @@ +// by commy2 + +if (_this select 1 == 1) then { + disableserialization; + _display = _this select 0; + + _pos = ctrlPosition (_display displayCtrl 102); + _pos = [ + (_pos select 0) + (_pos select 2) / 2, + (_pos select 1) + (_pos select 3) / 2 + ]; + + switch (true) do { + case (!isNull findDisplay 12) : { + _pos = (findDisplay 12 displayCtrl 51) ctrlMapScreenToWorld _pos; + }; + case (!isNull findDisplay 37) : { + _pos = (findDisplay 37 displayCtrl 51) ctrlMapScreenToWorld _pos; + }; + case (!isNull findDisplay 52) : { + _pos = (findDisplay 52 displayCtrl 51) ctrlMapScreenToWorld _pos; + }; + case (!isNull findDisplay 53) : { + _pos = (findDisplay 53 displayCtrl 51) ctrlMapScreenToWorld _pos; + }; + }; + + _pos spawn { + /*[ + allMapMarkers select (count allMapMarkers - 1), + [ + uiNamespace getVariable ['AGM_Markers_currentMarkerShape', 0], + uiNamespace getVariable ['AGM_Markers_currentMarkerColor', 0], + _this, + uiNamespace getVariable ['AGM_Markers_currentMarkerAngle', 0] + ] + ] call AGM_Markers_fnc_setMarker;*/ + + [ + [ + allMapMarkers select (count allMapMarkers - 1), + [ + uiNamespace getVariable ['AGM_Markers_currentMarkerShape', 0], + uiNamespace getVariable ['AGM_Markers_currentMarkerColor', 0], + _this, + uiNamespace getVariable ['AGM_Markers_currentMarkerAngle', 0] + ] + ], "AGM_Markers_fnc_setMarkerNetwork", 2 + ] call AGM_Core_fnc_execRemoteFnc; + }; +}; diff --git a/TO_MERGE/agm/Markers/stringtable.xml b/TO_MERGE/agm/Markers/stringtable.xml new file mode 100644 index 0000000000..e324341854 --- /dev/null +++ b/TO_MERGE/agm/Markers/stringtable.xml @@ -0,0 +1,23 @@ + + + + + + Direction: %1° + Drehung: %1° + Direction: %1° + Směr: %1° + Kierunek: %1° + Dirección: %1° + Направление: %1 + + + Place in: %1 + Platz in: %1 + Colocar en: %1 + Umieść na: %1 + Umístit do: %1 + Место в: %1 + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Medical/HintConfig.hpp b/TO_MERGE/agm/Medical/HintConfig.hpp new file mode 100644 index 0000000000..3d43b03450 --- /dev/null +++ b/TO_MERGE/agm/Medical/HintConfig.hpp @@ -0,0 +1,30 @@ +// by commy2 + +class RscStructuredText; + +class RscTitles { + class AGM_Medical_RscHint { + idd = -1; + onLoad = "uiNamespace setVariable ['AGM_ctrlHint', (_this select 0) displayCtrl 1];"; + movingEnable = false; + duration = 10; + fadeIn = 0.2; + fadeOut = 0.2; + name = "AGM_Medical_RscHint"; + + class controls { + class HintBox: RscStructuredText { + idc = 1; + text = ""; + size = "1 / 40 / (getResolution select 5)"; + sizeEx = 1; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0, 0, 0, 0.5}; + x = safeZoneW + safeZoneX - 0.2 * safezoneW; + y = safeZoneY + 0.2 * safezoneH; + w = 0.2 * safeZoneW; + h = 0.35 * SafeZoneH; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Medical/UI/IconMedical_ca.paa b/TO_MERGE/agm/Medical/UI/IconMedical_ca.paa new file mode 100644 index 0000000000..796a768917 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/IconMedical_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/Medical_Icon_ca.paa b/TO_MERGE/agm/Medical/UI/Medical_Icon_ca.paa new file mode 100644 index 0000000000..61933fafda Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/Medical_Icon_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/agm_bandage_ca.paa b/TO_MERGE/agm/Medical/UI/agm_bandage_ca.paa new file mode 100644 index 0000000000..6309599b74 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/agm_bandage_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/agm_bloodbag_ca.paa b/TO_MERGE/agm/Medical/UI/agm_bloodbag_ca.paa new file mode 100644 index 0000000000..14c3be9ce2 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/agm_bloodbag_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/agm_epipen_ca.paa b/TO_MERGE/agm/Medical/UI/agm_epipen_ca.paa new file mode 100644 index 0000000000..4c6c5dae15 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/agm_epipen_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/agm_morphine_ca.paa b/TO_MERGE/agm/Medical/UI/agm_morphine_ca.paa new file mode 100644 index 0000000000..3e34003c64 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/agm_morphine_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/diagnose_ca.paa b/TO_MERGE/agm/Medical/UI/diagnose_ca.paa new file mode 100644 index 0000000000..f4a15e18b5 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/diagnose_ca.paa differ diff --git a/TO_MERGE/agm/Medical/UI/parts/arm_left.paa b/TO_MERGE/agm/Medical/UI/parts/arm_left.paa new file mode 100644 index 0000000000..2ded9898c2 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/parts/arm_left.paa differ diff --git a/TO_MERGE/agm/Medical/UI/parts/arm_right.paa b/TO_MERGE/agm/Medical/UI/parts/arm_right.paa new file mode 100644 index 0000000000..9fa68090f7 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/parts/arm_right.paa differ diff --git a/TO_MERGE/agm/Medical/UI/parts/body.paa b/TO_MERGE/agm/Medical/UI/parts/body.paa new file mode 100644 index 0000000000..6a7f5d4e2f Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/parts/body.paa differ diff --git a/TO_MERGE/agm/Medical/UI/parts/head.paa b/TO_MERGE/agm/Medical/UI/parts/head.paa new file mode 100644 index 0000000000..98c2aa29a2 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/parts/head.paa differ diff --git a/TO_MERGE/agm/Medical/UI/parts/leg_left.paa b/TO_MERGE/agm/Medical/UI/parts/leg_left.paa new file mode 100644 index 0000000000..eca0781fb4 Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/parts/leg_left.paa differ diff --git a/TO_MERGE/agm/Medical/UI/parts/leg_right.paa b/TO_MERGE/agm/Medical/UI/parts/leg_right.paa new file mode 100644 index 0000000000..6112a5588d Binary files /dev/null and b/TO_MERGE/agm/Medical/UI/parts/leg_right.paa differ diff --git a/TO_MERGE/agm/Medical/agm_epipen.p3d b/TO_MERGE/agm/Medical/agm_epipen.p3d new file mode 100644 index 0000000000..6078cc92c1 Binary files /dev/null and b/TO_MERGE/agm/Medical/agm_epipen.p3d differ diff --git a/TO_MERGE/agm/Medical/agm_morphine.p3d b/TO_MERGE/agm/Medical/agm_morphine.p3d new file mode 100644 index 0000000000..38148476bd Binary files /dev/null and b/TO_MERGE/agm/Medical/agm_morphine.p3d differ diff --git a/TO_MERGE/agm/Medical/clientInit.sqf b/TO_MERGE/agm/Medical/clientInit.sqf new file mode 100644 index 0000000000..e50d2567d8 --- /dev/null +++ b/TO_MERGE/agm/Medical/clientInit.sqf @@ -0,0 +1,148 @@ +// by CAA-Picard + +private ["_currentBlood", "_time", "_blind", "_timeBlood", "_strength", "_currentBlood"]; + +if (!hasInterface) exitWith {}; + +AGM_Unconscious_CC = ppEffectCreate ["ColorCorrections", 4206]; +AGM_Unconscious_CC ppEffectForceInNVG True; +AGM_Unconscious_CC ppEffectAdjust [1,1,0, [0,0,0,1], [0,0,0,0], [1,1,1,1], [0.4,0.4,0,0,0,0.1,0.3]]; +AGM_Unconscious_CC ppEffectCommit 0; +AGM_Unconscious_RB = ppEffectCreate ["RadialBlur", 4207]; +AGM_Unconscious_RB ppEffectForceInNVG True; +AGM_Unconscious_RB ppEffectAdjust [0.01, 0.01, 0, 0]; +AGM_Unconscious_RB ppEffectCommit 0; +AGM_Blinding_CC = ppEffectCreate ["ColorCorrections", 4211]; +AGM_Blinding_CC ppEffectForceInNVG True; +AGM_Blinding_CC ppEffectAdjust [1,1,0, [1,1,1,0], [0,0,0,1], [0,0,0,0]]; +AGM_Blinding_CC ppEffectCommit 0; + +AGM_BloodLevel_CC = ppEffectCreate ["ColorCorrections", 4208]; +AGM_BloodLevel_CC ppEffectForceInNVG True; +AGM_BloodLevel_CC ppEffectAdjust [1,1,0, [0,0,0,0], [1,1,1,1], [0.2,0.2,0.2,0]]; +AGM_BloodLevel_CC ppEffectCommit 0; + +AGM_Pain_CA = ppEffectCreate ["chromAberration", 4209]; +AGM_Pain_CA ppEffectForceInNVG True; +AGM_Pain_CA ppEffectAdjust [0, 0, False]; +AGM_Pain_CA ppEffectCommit 0; +AGM_Pain_CC = ppEffectCreate ["ColorCorrections", 4210]; +AGM_Pain_CC ppEffectForceInNVG True; +AGM_Pain_CC ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [1.3,1.3,0,0,0,0.2,2]]; +AGM_Pain_CC ppEffectCommit 0; + +// Spawn a thread to handle graphical effects for player, regardless of which unit he's controlling +0 spawn { + _time = time; + _timeBlood = 0; + _blind = False; + while {True} do { + // Detect if curator interface is open and then disable effects + if (!isNull(findDisplay 312)) then { + AGM_BloodLevel_CC ppEffectEnable False; + AGM_Unconscious_CC ppEffectEnable False; + AGM_Unconscious_RB ppEffectEnable False; + AGM_Blinding_CC ppEffectEnable False; + AGM_Pain_CC ppEffectEnable False; + AGM_Pain_CA ppEffectEnable False; + waitUntil {isNull(findDisplay 312)}; + }; + + // Detect if player is not alive and then disable effects and enable input + if (!(alive AGM_player)) then { + AGM_BloodLevel_CC ppEffectEnable False; + AGM_Unconscious_CC ppEffectEnable False; + AGM_Unconscious_RB ppEffectEnable False; + AGM_Blinding_CC ppEffectEnable False; + AGM_Pain_CC ppEffectEnable False; + AGM_Pain_CA ppEffectEnable False; + if !(isNull (uiNamespace getVariable ["AGM_Core_dlgDisableMouse", displayNull])) then { + [False] call AGM_Core_fnc_disableUserInput; + }; + waitUntil {alive AGM_player}; + }; + + // Unconciousness Effect + if (AGM_player getVariable ["AGM_isUnconscious", False]) then { + AGM_Unconscious_CC ppEffectEnable True; + AGM_Unconscious_RB ppEffectEnable True; + _blind = True; + if (isNull (uiNamespace getVariable ["AGM_Core_dlgDisableMouse", displayNull])) then { + [True, True] call AGM_Core_fnc_disableUserInput; + }; + } else { + AGM_Unconscious_CC ppEffectEnable False; + AGM_Unconscious_RB ppEffectEnable False; + if !(isNull (uiNamespace getVariable ["AGM_Core_dlgDisableMouse", displayNull])) then { + [False] call AGM_Core_fnc_disableUserInput; + }; + if (_blind) then { + // blinding strength depedent on light level + _strength = 0.78 * (call AGM_Core_fnc_ambientBrightness); + AGM_Blinding_CC ppEffectEnable True; + AGM_Blinding_CC ppEffectAdjust [1,1,_strength, [1,1,1,0], [0,0,0,1], [0,0,0,0]]; + AGM_Blinding_CC ppEffectCommit 0.01; + waitUntil {ppEffectCommitted AGM_Blinding_CC}; + AGM_Blinding_CC ppEffectAdjust [1,1,0, [1,1,1,0], [0,0,0,1], [0,0,0,0]]; + AGM_Blinding_CC ppEffectCommit (_strength * 2); + (_strength * 2) spawn { + sleep _this; + AGM_Blinding_CC ppEffectEnable False; + }; + _blind = False; + }; + }; + + // Pain Effect + _strength = AGM_player getVariable ["AGM_Pain", 0]; + _strength = _strength * (AGM_player getVariable ["AGM_Medical_CoefPain", AGM_Medical_CoefPain]); + if (profileNamespace getVariable ["AGM_alternativePainEffect", False]) then { + AGM_Pain_CA ppEffectEnable False; + if ((AGM_player getVariable ["AGM_Pain", 0]) > 0 && {alive AGM_player}) then { + AGM_Pain_CC ppEffectEnable True; + AGM_Pain_CC ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [(1 - _strength * 0.17) max 0,(1 - _strength * 0.17) max 0,0,0,0,0.2,2]]; + AGM_Pain_CC ppEffectCommit 1; + sleep (1.5 - (AGM_player getVariable ["AGM_Pain", 0])); + AGM_Pain_CC ppEffectAdjust [1,1,0, [1,1,1,1], [0,0,0,0], [1,1,1,1], [(1 - _strength * 1.7) max 0,(1 - _strength * 1.7) max 0,0,0,0,0.2,2]]; + AGM_Pain_CC ppEffectCommit 1; + sleep 0.15; + } else { + AGM_Pain_CC ppEffectEnable False; + sleep 1; + }; + } else { + AGM_Pain_CC ppEffectEnable False; + if ((AGM_player getVariable ["AGM_Pain", 0]) > 0.05 && {alive AGM_player}) then { + AGM_Pain_CA ppEffectEnable True; + AGM_Pain_CA ppEffectAdjust [0.035 * _strength, 0.035 * _strength, False]; + AGM_Pain_CA ppEffectCommit 1; + sleep (1.5 - (AGM_player getVariable ["AGM_Pain", 0])); + AGM_Pain_CA ppEffectAdjust [0.35 * _strength, 0.35 * _strength, False]; + AGM_Pain_CA ppEffectCommit 1; + sleep 0.15; + } else { + AGM_Pain_CA ppEffectEnable False; + sleep 0.75; + }; + }; + + // Bleeding Effect + if (damage AGM_player > 0.1 and _timeBlood + 6 < time) then { + _timeBlood = time; + [(damage AGM_player) * 500] call BIS_fnc_bloodEffect; + }; + + // Blood Level Effect + _currentBlood = AGM_player getVariable ["AGM_Blood", 1]; + if (_currentBlood > 0.99) then { + AGM_BloodLevel_CC ppEffectEnable False; + } else { + AGM_BloodLevel_CC ppEffectEnable True; + AGM_BloodLevel_CC ppEffectAdjust [1, 1, 0, [0.0, 0.0, 0.0, 0.0], [1, 1, 1,_currentBlood], [0.2, 0.2, 0.2, 0]]; + AGM_BloodLevel_CC ppEffectCommit 0; + }; + + _time = time; + _damage = damage AGM_player; + }; +}; diff --git a/TO_MERGE/agm/Medical/config.cpp b/TO_MERGE/agm/Medical/config.cpp new file mode 100644 index 0000000000..46fb98b361 --- /dev/null +++ b/TO_MERGE/agm/Medical/config.cpp @@ -0,0 +1,1070 @@ +// PATCH CONFIG +class CfgPatches { + class AGM_Medical { + units[] = {"AGM_Box_Medical"}; + weapons[] = {"AGM_Bandage", "AGM_Morphine", "AGM_Epipen", "AGM_Bloodbag"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Medical { + class AGM_Medical { + file = "AGM_Medical\functions"; + class aiCanTreat; + class aiInitTask; + class aiTreat; + class checkDamage; + class diagnose; + class displayText; + class handleDamage; + class init; + class isDiagnosed; + class isInMedicalVehicle; + class itemCheck; + class knockOut; + class loadIntoVehicle; + class module; + class overdose; + class release; + class scream; + class setDamage; + class setHitPointDamage; + class takeItem; + class transport; + class treat; + class treatmentCallback; + class unloadPatients; + class wakeUp; + }; + }; +}; + +class Extended_Init_EventHandlers { + class CAManBase { + class AGM_Medical { + init = "(_this select 0) addEventHandler ['HandleDamage', {_this call AGM_Medical_fnc_handleDamage}]; _this call AGM_Medical_fnc_init"; + }; + }; +}; +class Extended_Respawn_EventHandlers { + class CAManBase { + class AGM_Medical { + respawn = "_this call AGM_Medical_fnc_init"; + }; + }; +}; +class Extended_Hit_EventHandlers { + class CAManBase { + class AGM_Medical { + hit = "if (alive (_this select 0) and !((_this select 0) getVariable ['AGM_isUnconscious', False]) and !([(_this select 0)] call AGM_Core_fnc_isPlayer)) then {[(_this select 0)] call AGM_Medical_fnc_scream;};"; + }; + }; +}; +class Extended_Take_EventHandlers { + class CAManBase { + class AGM_Medical { + take = "[(_this select 0)] call AGM_Medical_fnc_itemCheck;"; + }; + }; +}; +class Extended_GetOut_EventHandlers { + class All { + class AGM_Medical_LeaveVehicle { + getOut = "if (local (_this select 2) && {(_this select 2) getVariable ['AGM_isUnconscious', false]}) then {[_this select 2, 'unconscious', 2, true] call AGM_Core_fnc_doAnimation;}"; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Medical { + init = "call compile preprocessFileLineNumbers '\AGM_Medical\init.sqf'"; + clientInit = "call compile preprocessFileLineNumbers '\AGM_Medical\clientInit.sqf'"; + }; +}; + +class AGM_Core_canInteractConditions { + class AGM_Medical_canTreat { + condition = "_player getVariable ['AGM_canTreat', true]"; + }; + class AGM_Medical_isConscious { + condition = "!(_player getVariable ['AGM_isUnconscious', false])"; + }; + class AGM_Medical_isNotOverdosing { + condition = "!(_player getVariable ['AGM_isOverdosing', false])"; + }; +}; + +class AGM_Core_Options { + class keepMedicalMenuOpen { + displayName = "$STR_AGM_Medical_KeepMenuOpen"; + default = 0; + }; + class alternativePainEffect { + displayName = "$STR_AGM_Medical_AlternativePainEffect"; + default = 0; + }; +}; + +class CfgVehicles { + #define ARM_LEG_ARMOR_DEFAULT 2 + #define ARM_LEG_ARMOR_BETTER 3 + #define ARM_LEG_ARMOR_CSAT 4 + + class Man; + class CAManBase: Man { + class HitPoints { + class HitHead; + class HitBody; + // "DEACTIVE" DEFAULT HITPOINTS + class HitHands { + armor = 999; //armor = 2; + explosionShielding = 0; //explosionShielding = 1; + material = -1; + minimalHit = 0; + name = ""; + passThrough = 1; + radius = 0; //radius = 0.06; + visual = "injury_hands"; + }; + class HitLegs { + armor = 999; //armor = 2; + explosionShielding = 0; //explosionShielding = 1; + material = -1; + minimalHit = 0; + name = ""; + passThrough = 1; + radius = 0; //radius = 0.08; + visual = "injury_legs"; + }; + + class HitLeftArm { + armor = ARM_LEG_ARMOR_DEFAULT; //2; + explosionShielding = 1; + material = -1; + minimalHit = 0; + name = "hand_l"; + passThrough = 1; + radius = 0.06; + visual = "injury_hands"; + }; + class HitRightArm: HitLeftArm { + name = "hand_r"; + }; + class HitLeftLeg { + armor = ARM_LEG_ARMOR_DEFAULT; //2; + explosionShielding = 1; + material = -1; + minimalHit = 0; + name = "leg_l"; + passThrough = 1; + radius = 0.08; + visual = "injury_legs"; + }; + class HitRightLeg: HitLeftLeg { + name = "leg_r"; + }; + }; + + class AGM_Actions { + class AGM_Medical { + displayName = "$STR_AGM_Medical_Treat"; + distance = 4; + condition = "_target getVariable ['AGM_isTreatable', true]"; + statement = ""; + showDisabled = 1; + enableInside = 1; + icon = "AGM_Medical\UI\Medical_Icon_ca.paa"; + priority = 6; + subMenu[] = {"AGM_Medical", 0}; + hotkey = "T"; + + class AGM_Diagnose { + displayName = "$STR_AGM_Medical_Diagnose"; + condition = "_target getVariable ['AGM_isTreatable', true]"; + statement = "[_player, _target, 'diagnose'] call AGM_Medical_fnc_treat;"; + icon = "AGM_Medical\UI\diagnose_ca.paa"; + showDisabled = 1; + enableInside = 1; + priority = 1; + }; + class AGM_Morphine { + displayName = "$STR_AGM_Medical_Inject_Morphine"; + condition = "([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and alive _target and 'AGM_Morphine' in itemsWithMagazines _player"; + statement = "[_player, _target, 'morphine'] call AGM_Medical_fnc_treat;"; + showDisabled = 1; + enableInside = 1; + icon = "AGM_Medical\UI\agm_morphine_ca.paa"; + priority = 0.9; + }; + class AGM_Epipen { + displayName = "$STR_AGM_Medical_Inject_Epinephrine"; + condition = "([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and alive _target and 'AGM_Epipen' in itemsWithMagazines _player and _target getVariable ['AGM_isUnconscious', False]"; + statement = "[_player, _target, 'epipen'] call AGM_Medical_fnc_treat;"; + showDisabled = 1; + enableInside = 1; + priority = 0.8; + icon = "AGM_Medical\UI\agm_epipen_ca.paa"; + }; + class AGM_BloodBag { + displayName = "$STR_AGM_Medical_Transfuse_Blood"; + condition = "([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and alive _target and 'AGM_Bloodbag' in itemsWithMagazines _player"; + statement = "[_player, _target, 'bloodbag'] call AGM_Medical_fnc_treat;"; + showDisabled = 1; + enableInside = 1; + priority = 0.7; + icon = "AGM_Medical\UI\agm_bloodbag_ca.paa"; + }; + class AGM_Bandage { + displayName = "$STR_AGM_Medical_Bandage"; + condition = "AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'All'] call AGM_Medical_fnc_treat;"; + priority = 0.6; + conditionShow = "AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\body.paa"; + }; + class AGM_Bandage_Head { + displayName = "$STR_AGM_Medical_Bandage_HitHead"; + condition = "!AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'HitHead'] call AGM_Medical_fnc_treat;"; + priority = 0.6; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\head.paa"; + }; + class AGM_Bandage_Body { + displayName = "$STR_AGM_Medical_Bandage_HitBody"; + condition = "!AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'HitBody'] call AGM_Medical_fnc_treat;"; + priority = 0.5; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\body.paa"; + }; + class AGM_Bandage_LeftArm { + displayName = "$STR_AGM_Medical_Bandage_HitLeftArm"; + condition = "!AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'HitLeftArm'] call AGM_Medical_fnc_treat;"; + priority = 0.4; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\arm_left.paa"; + }; + class AGM_Bandage_RightArm { + displayName = "$STR_AGM_Medical_Bandage_HitRightArm"; + condition = "!AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'HitRightArm'] call AGM_Medical_fnc_treat;"; + priority = 0.3; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\arm_right.paa"; + }; + class AGM_Bandage_LeftLeg { + displayName = "$STR_AGM_Medical_Bandage_HitLeftLeg"; + condition = "!AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'HitLeftLeg'] call AGM_Medical_fnc_treat;"; + priority = 0.2; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\leg_left.paa"; + }; + class AGM_Bandage_RightLeg { + displayName = "$STR_AGM_Medical_Bandage_HitRightLeg"; + condition = "!AGM_Medical_SingleBandage and ([_target] call AGM_Medical_fnc_isDiagnosed) and (_target getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player and alive _target"; + statement = "[_player, _target, 'bandage', 'HitRightLeg'] call AGM_Medical_fnc_treat;"; + priority = 0.15; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\leg_right.paa"; + }; + }; + + class AGM_Medical_Drag { + displayName = "$STR_AGM_Medical_Drag"; + distance = 4; + condition = "vehicle _player == _player and vehicle _target == _target and alive _target and _target getVariable ['AGM_isTreatable', true] and _target getVariable ['AGM_isUnconscious', False] and isNull (_player getVariable ['AGM_Transporting', objNull])"; + statement = "[_player, _target, 'drag'] call AGM_Medical_fnc_transport;"; + priority = 2.1; + icon = "AGM_Medical\UI\Medical_Icon_ca.paa"; + hotkey = "R"; + }; + class AGM_Medical_Carry { + displayName = "$STR_AGM_Medical_Carry"; + distance = 4; + condition = "vehicle _player == _player and vehicle _target == _target and alive _target and _target getVariable ['AGM_isTreatable', true] and _target getVariable ['AGM_isUnconscious', False] and isNull (_player getVariable ['AGM_Transporting', objNull])"; + statement = "[_player, _target, 'carry'] call AGM_Medical_fnc_transport;"; + priority = 2.0; + icon = "AGM_Medical\UI\Medical_Icon_ca.paa"; + hotkey = "C"; + }; + }; + + class AGM_SelfActions { + class AGM_Medical { + displayName = "$STR_AGM_Medical_Treat_Self"; + condition = "_player getVariable ['AGM_isTreatable', true]"; + statement = ""; + showDisabled = 1; + enableInside = 1; + priority = 6; + icon = "AGM_Medical\UI\Medical_Icon_ca.paa"; + subMenu[] = {"AGM_Medical", 1}; + hotkey = "T"; + + class AGM_Diagnose { + displayName = "$STR_AGM_Medical_Diagnose"; + condition = "_player getVariable ['AGM_isTreatable', true]"; + statement = "[_player, _player, 'diagnose'] call AGM_Medical_fnc_treat;"; + priority = 1; + showDisabled = 1; + enableInside = 1; + icon = "AGM_Medical\UI\diagnose_ca.paa"; + }; + class AGM_Morphine { + displayName = "$STR_AGM_Medical_Inject_Morphine"; + condition = "(_player getVariable ['AGM_isTreatable', true]) and 'AGM_Morphine' in itemsWithMagazines _player"; + statement = "[_player, _player, 'morphine'] call AGM_Medical_fnc_treat;"; + priority = 0.9; + showDisabled = 1; + enableInside = 1; + icon = "AGM_Medical\UI\agm_morphine_ca.paa"; + }; + + class AGM_Bandage { + displayName = "$STR_AGM_Medical_Bandage"; + condition = "AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'All'] call AGM_Medical_fnc_treat;"; + priority = 0.6; + conditionShow = "AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\body.paa"; + }; + class AGM_Bandage_Head { + displayName = "$STR_AGM_Medical_Bandage_HitHead"; + condition = "!AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'HitHead'] call AGM_Medical_fnc_treat;"; + priority = 0.6; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\head.paa"; + }; + class AGM_Bandage_Body { + displayName = "$STR_AGM_Medical_Bandage_HitBody"; + condition = "!AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'HitBody'] call AGM_Medical_fnc_treat;"; + priority = 0.5; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\body.paa"; + }; + class AGM_Bandage_LeftArm { + displayName = "$STR_AGM_Medical_Bandage_HitLeftArm"; + condition = "!AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'HitLeftArm'] call AGM_Medical_fnc_treat;"; + priority = 0.4; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\arm_left.paa"; + }; + class AGM_Bandage_RightArm { + displayName = "$STR_AGM_Medical_Bandage_HitRightArm"; + condition = "!AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'HitRightArm'] call AGM_Medical_fnc_treat;"; + priority = 0.3; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\arm_right.paa"; + }; + class AGM_Bandage_LeftLeg { + displayName = "$STR_AGM_Medical_Bandage_HitLeftLeg"; + condition = "!AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'HitLeftLeg'] call AGM_Medical_fnc_treat;"; + priority = 0.2; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\leg_left.paa"; + }; + class AGM_Bandage_RightLeg { + displayName = "$STR_AGM_Medical_Bandage_HitRightLeg"; + condition = "!AGM_Medical_SingleBandage and (_player getVariable ['AGM_isTreatable', true]) and 'AGM_Bandage' in itemsWithMagazines _player"; + statement = "[_player, _player, 'bandage', 'HitRightLeg'] call AGM_Medical_fnc_treat;"; + priority = 0.15; + conditionShow = "!AGM_Medical_SingleBandage"; + enableInside = 1; + icon = "AGM_Medical\UI\parts\leg_right.paa"; + }; + }; + + class AGM_Release { + displayName = "$STR_AGM_Medical_Release"; + distance = 4; + condition = "vehicle _player == _player and ((_player getVariable ['AGM_Transporting', objNull]) isKindOf 'Man')"; + statement = "[_player, (_player getVariable ['AGM_Transporting', objNull])] call AGM_Medical_fnc_release;"; + exceptions[] = {"AGM_Medical_canTreat"}; + icon = "AGM_Medical\UI\Medical_Icon_ca.paa"; + hotkey = "R"; + }; + }; + }; + + class SoldierWB: CAManBase {}; + class SoldierEB: CAManBase {}; + class SoldierGB: CAManBase {}; + + class B_Soldier_base_F: SoldierWB {}; + + class B_Soldier_04_f: B_Soldier_base_F { + class HitPoints: HitPoints { + class HitHead: HitHead {}; + class HitBody: HitBody {}; + class HitHands: HitHands {}; + class HitLegs: HitLegs {}; + + class HitLeftArm: HitLeftArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightArm: HitRightArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitLeftLeg: HitLeftLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightLeg: HitRightLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + }; + }; + + class B_Soldier_05_f: B_Soldier_base_F { + class HitPoints: HitPoints { + class HitHead: HitHead {}; + class HitBody: HitBody {}; + class HitHands: HitHands {}; + class HitLegs: HitLegs {}; + + class HitLeftArm: HitLeftArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightArm: HitRightArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitLeftLeg: HitLeftLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightLeg: HitRightLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + }; + }; + + class I_Soldier_base_F: SoldierGB {}; + + class I_Soldier_03_F: I_Soldier_base_F { + class HitPoints: HitPoints { + class HitHead: HitHead {}; + class HitBody: HitBody {}; + class HitHands: HitHands {}; + class HitLegs: HitLegs {}; + + class HitLeftArm: HitLeftArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightArm: HitRightArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitLeftLeg: HitLeftLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightLeg: HitRightLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + }; + }; + + class I_Soldier_04_F: I_Soldier_base_F { + class HitPoints: HitPoints { + class HitHead: HitHead {}; + class HitBody: HitBody {}; + class HitHands: HitHands {}; + class HitLegs: HitLegs {}; + + class HitLeftArm: HitLeftArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightArm: HitRightArm { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitLeftLeg: HitLeftLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + + class HitRightLeg: HitRightLeg { + armor = ARM_LEG_ARMOR_BETTER; + }; + }; + }; + + class O_Soldier_base_F: SoldierEB { + class HitPoints: HitPoints { + class HitHead: HitHead {}; + class HitBody: HitBody {}; + class HitHands: HitHands {}; + class HitLegs: HitLegs {}; + + class HitLeftArm: HitLeftArm { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + + class HitRightArm: HitRightArm { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + + class HitLeftLeg: HitLeftLeg { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + + class HitRightLeg: HitRightLeg { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + }; + }; + + class O_Soldier_02_F: O_Soldier_base_F { + class HitPoints: HitPoints { + class HitHead: HitHead {}; + class HitBody: HitBody {}; + class HitHands: HitHands {}; + class HitLegs: HitLegs {}; + + class HitLeftArm: HitLeftArm { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + + class HitRightArm: HitRightArm { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + + class HitLeftLeg: HitLeftLeg { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + + class HitRightLeg: HitRightLeg { + armor = ARM_LEG_ARMOR_CSAT; + passThrough = 0.85; + }; + }; + }; + + class LandVehicle; + class Car: LandVehicle { + class AGM_Actions { + class AGM_Unload { + displayName = "$STR_AGM_Medical_Unload"; + distance = 4; + condition = "return = false; {if (_x getVariable ['AGM_isUnconscious', False]) exitWith {return = true;};} foreach (crew _target); return and vehicle _player == _player and !(_target isKindOf 'Man')"; + statement = "[_player, _target] call AGM_Medical_fnc_unloadPatients;"; + }; + class AGM_Load { + displayName = "$STR_AGM_Medical_Load"; + distance = 4; + condition = "!(_target isKindOf 'Man') and vehicle _player == _player and (_player getVariable ['AGM_Transporting', objNull]) isKindOf 'Man' and _target emptyPositions 'cargo' > 0"; + statement = "[_player, _target] call AGM_Medical_fnc_loadIntoVehicle;"; + exceptions[] = {"AGM_Medical_canTreat"}; + }; + }; + }; + class Tank: LandVehicle { + class AGM_Actions { + class AGM_Unload { + displayName = "$STR_AGM_Medical_Unload"; + distance = 4; + condition = "return = false; {if (_x getVariable ['AGM_isUnconscious', False]) exitWith {return = true;};} foreach (crew _target); return and vehicle _player == _player and !(_target isKindOf 'Man')"; + statement = "[_player, _target] call AGM_Medical_fnc_unloadPatients;"; + }; + class AGM_Load { + displayName = "$STR_AGM_Medical_Load"; + distance = 4; + condition = "!(_target isKindOf 'Man') and vehicle _player == _player and (_player getVariable ['AGM_Transporting', objNull]) isKindOf 'Man' and _target emptyPositions 'cargo' > 0"; + statement = "[_player, _target] call AGM_Medical_fnc_loadIntoVehicle;"; + exceptions[] = {"AGM_Medical_canTreat"}; + }; + }; + }; + class Air; + class Helicopter: Air { + class AGM_Actions { + class AGM_Unload { + displayName = "$STR_AGM_Medical_Unload"; + distance = 4; + condition = "return = false; {if (_x getVariable ['AGM_isUnconscious', False]) exitWith {return = true;};} foreach (crew _target); return and vehicle _player == _player and !(_target isKindOf 'Man')"; + statement = "[_player, _target] call AGM_Medical_fnc_unloadPatients;"; + }; + class AGM_Load { + displayName = "$STR_AGM_Medical_Load"; + distance = 4; + condition = "!(_target isKindOf 'Man') and vehicle _player == _player and (_player getVariable ['AGM_Transporting', objNull]) isKindOf 'Man' and _target emptyPositions 'cargo' > 0"; + statement = "[_player, _target] call AGM_Medical_fnc_loadIntoVehicle;"; + exceptions[] = {"AGM_Medical_canTreat"}; + }; + }; + }; + class Ship; + class Ship_F: Ship { + class AGM_Actions { + class AGM_Unload { + displayName = "$STR_AGM_Medical_Unload"; + distance = 4; + condition = "return = false; {if (_x getVariable ['AGM_isUnconscious', False]) exitWith {return = true;};} foreach (crew _target); return and vehicle _player == _player and !(_target isKindOf 'Man')"; + statement = "[_player, _target] call AGM_Medical_fnc_unloadPatients;"; + }; + class AGM_Load { + displayName = "$STR_AGM_Medical_Load"; + distance = 4; + condition = "!(_target isKindOf 'Man') and vehicle _player == _player and (_player getVariable ['AGM_Transporting', objNull]) isKindOf 'Man' and _target emptyPositions 'cargo' > 0"; + statement = "[_player, _target] call AGM_Medical_fnc_loadIntoVehicle;"; + exceptions[] = {"AGM_Medical_canTreat"}; + }; + }; + }; + + class Box_NATO_Support_F; + class AGM_Box_Medical: Box_NATO_Support_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "$STR_AGM_Medical_MedicalSupplies"; + transportmaxmagazines = 128; + transportmaxbackpacks = 0; + maximumload = 2000; + + class TransportMagazines {}; + class TransportWeapons {}; + class TransportItems { + class _xx_AGM_Bandage { + count = 64; + name = "AGM_Bandage"; + }; + /*class _xx_AGM_Bandage2 { + count = 4; + name = "AGM_Bandage"; + };*/ + class _xx_AGM_Morphine { + count = 24; + name = "AGM_Morphine"; + }; + class _xx_AGM_Epipen { + count = 24; + name = "AGM_Epipen"; + }; + class _xx_AGM_Bloodbag { + count = 16; + name = "AGM_Bloodbag"; + }; + }; + }; + + class Module_F; + class AGM_ModuleMedical: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Medical System"; + function = "AGM_Medical_fnc_module"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Medical\UI\IconMedical_ca.paa"; + class Arguments { + class CoefDamage { + displayName = "Damage Coef."; + description = "Multiplier for the amount of damage received. Default: 1 (obviously)"; + typeName = "NUMBER"; + defaultValue = 1; + }; + class CoefBleeding { + displayName = "Bleeding Speed Coef."; + description = "Multiplier for the rate of bleeding. Default: 1 (obviously)"; + typeName = "NUMBER"; + defaultValue = 1; + }; + class CoefPain { + displayName = "Pain Effect Coef."; + description = "Multiplier for the intensity of the pain PP effect. Default: 1 (obviously)"; + typeName = "NUMBER"; + defaultValue = 1; + }; + class CoefNonMedic { + displayName = "Non-Medic Time Coef."; + description = "Multiplier for the treatment time of an untrained person compared to that of a trained medic. Default: 2"; + typeName = "NUMBER"; + defaultValue = 2; + }; + class MaxUnconsciousnessTime { + displayName = "Max Unconsc. Time"; + description = "Maximum time (in seconds) for a unit to be unconscious before dying. -1 disables this."; + typeName = "NUMBER"; + defaultValue = -1; + }; + class AllowNonmedics { + displayName = "Allow non-medics?"; + description = "Allow non-medics to use epipens and bloodbags? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class RequireDiagnosis { + displayName = "Require diagnosis?"; + description = "Require an unconscious patient to be diagnosed before allowing treatment? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class PreventInstaDeath { + displayName = "Prevent instant death?"; + description = "Prevent instant death and always put players in unconscious state instead? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class PreventDeathWhileUnconscious { + displayName = "Prevent death while unconscious?"; + description = "Make unconscious units invulnerable? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class SingleBandage { + displayName = "Single Bandage"; + description = "Use one bandage to heal the entire body? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class AllowChatWhileUnconscious { + displayName = "Unconscious can chat?"; + description = "Allow all players to use chat while unconcious? Admin can always use the chat regardless. Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class EnableOverdosing { + displayName = "Enable Overdosing?"; + description = "Enable morphine overdoses? Default: Yes"; + typeName = "BOOL"; + class values { + class Yes { + default = 1; + name = "Yes"; + value = 1; + }; + class No { + name = "No"; + value = 0; + }; + }; + }; + class RequireMEDEVAC { + displayName = "Require MEDEVAC?"; + description = "Only allow Epipens within synchronized triggers? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class AutomaticWakeup { + displayName = "Automatic Wakeup?"; + description = "Allow units to wake up by themselves? Default: Yes"; + typeName = "BOOL"; + class values { + class Yes { + default = 1; + name = "Yes"; + value = 1; + }; + class No { + name = "No"; + value = 0; + }; + }; + }; + class DisableScreams { + displayName = "Disable Screams?"; + description = "Disable screaming on hit? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + }; + }; +}; + +class CfgWeapons { + class ItemCore; + class InventoryItem_Base_F; + class InventoryFirstAidKitItem_Base_F; + class MedikitItem; + + // ITEMS + class FirstAidKit: ItemCore { + type = 0; + class ItemInfo: InventoryFirstAidKitItem_Base_F { + mass = 4; + type = 201; + }; + }; + class Medikit: ItemCore { + type = 0; + class ItemInfo: MedikitItem { + mass = 60; + type = 201; + }; + }; + + class AGM_ItemCore; + class AGM_Bandage: AGM_ItemCore { + displayname = "$STR_AGM_Medical_Bandage_Name"; + descriptionshort = "$STR_AGM_Medical_Bandage_Description"; + model = "\A3\Structures_F_EPA\Items\Medical\Bandage_F.p3d"; + picture = "\AGM_Medical\UI\AGM_bandage_ca.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 2; + }; + }; + class AGM_Morphine: AGM_Bandage { + displayName = "$STR_AGM_Medical_Morphine_Name"; + descriptionShort = "$STR_AGM_Medical_Morphine_Description"; + model = "\AGM_Medical\agm_morphine.p3d"; + picture = "\AGM_Medical\UI\AGM_morphine_ca.paa"; + }; + class AGM_Epipen: AGM_Bandage { + displayName = "$STR_AGM_Medical_Epinephrine_Name"; + descriptionShort = "$STR_AGM_Medical_Epinephrine_Description"; + model = "\AGM_Medical\agm_epipen.p3d"; + picture = "\AGM_Medical\UI\AGM_epipen_ca.paa"; + }; + class AGM_Bloodbag: AGM_Bandage { + displayName = "$STR_AGM_Medical_Bloodbag_Name"; + descriptionShort = "$STR_AGM_Medical_Bloodbag_Description"; + model = "\A3\Structures_F_EPA\Items\Medical\BloodBag_F.p3d"; + picture = "\AGM_Medical\UI\AGM_bloodbag_ca.paa"; + class ItemInfo: ItemInfo { + mass = 10; + }; + }; +}; + +class CfgActions { + class None; + class HealSoldier: None { + hideOnUse = 1; + priority = 10; + shortcut = ""; + show = 0; + showWindow = 0; + text = "Treat %1"; + textDefault = ""; + textSimple = ""; + }; + class HealSoldierAuto: None { + hideOnUse = 1; + priority = 0; + shortcut = ""; + show = 0; + showWindow = 0; + text = "Heal soldier"; + textDefault = ""; + textSimple = ""; + }; + class HealSoldierSelf: None { + hideOnUse = 1; + priority = 10; + shortcut = ""; + show = 0; + showWindow = 0; + text = "Treat yourself"; + textDefault = ""; + textSimple = ""; + }; +}; + +// ANIMATIONS +class CfgMovesBasic { + class Default; + class Actions { + class NoActions; + class PistolStandActions: NoActions { + grabDrag = "AmovPercMstpSlowWrflDnon_AcinPknlMwlkSlowWrflDb_2"; + }; + class LauncherKneelActions: NoActions { + grabDrag = "AmovPercMstpSlowWrflDnon_AcinPknlMwlkSlowWrflDb_2"; + }; + class CivilStandActions: NoActions { + grabDrag = "AmovPercMstpSlowWrflDnon_AcinPknlMwlkSlowWrflDb_2"; + }; + }; +}; + +class CfgMovesMaleSdr: CfgMovesBasic { + class HealBase; + class States { + class AmovPercMstpSnonWnonDnon_AcinPknlMwlkSnonWnonDb_1; + class AcinPknlMstpSnonWnonDnon: AmovPercMstpSnonWnonDnon_AcinPknlMwlkSnonWnonDb_1 { + enableDirectControl = 1; + }; + class AcinPknlMwlkSnonWnonDb: AmovPercMstpSnonWnonDnon_AcinPknlMwlkSnonWnonDb_1 { + enableDirectControl = 1; + }; + + class Unconscious: Default { + ConnectTo[] = {}; + head = "headNo"; + forceAim = 1; + static = 1; + }; + + class AinvPknlMstpSnonWnonDnon_medic0: HealBase { + variantsPlayer[] = {}; + }; + }; +}; + +// BLOOD MIST EFFECTS +class CfgCloudlets { + class Blood; + class AGM_BloodMist: Blood { + particleShape = "\A3\data_f\ParticleEffects\Universal\Universal_02"; + particleFSNtieth = 8; + particleFSIndex = 4; + lifeTime = 1.8; + size[] = {"((hit + 5) max 30) / 40", "((hit + 5) max 30) / 80", "((hit + 5) max 30) / 150"}; + color[] = {{1,0.1,0.1,0.10}, {1,0.1,0.1,0.05}, {1,0.1,0.1,0.025}}; + randomDirectionPeriod = 0.5; + randomDirectionIntensity = 0.5; + }; +}; + +class ImpactEffectsBlood { + class AGM_BloodMist { + intensity = 1; + interval = 1; + lifeTime = 1; + position[] = {0,0,0}; + simulation = "particles"; + type = "AGM_BloodMist"; + }; +}; + +class AGM_Parameters_Numeric { + AGM_Medical_CoefDamage = 1.0; + AGM_Medical_CoefBleeding = 1.0; + AGM_Medical_CoefPain = 1.0; + AGM_Medical_CoefNonMedic = 2.0; + AGM_Medical_MaxUnconsciousnessTime = -1; +}; +class AGM_Parameters_Boolean { + // Boolean Parameters (0/1) + AGM_Medical_AllowNonMedics = 0; + AGM_Medical_RequireDiagnosis = 0; + AGM_Medical_PreventInstaDeath = 0; + AGM_Medical_PreventDeathWhileUnconscious = 0; + AGM_Medical_SingleBandage = 0; + AGM_Medical_AllowChatWhileUnconscious = 0; + AGM_Medical_EnableOverdosing = 1; + AGM_Medical_RequireMEDEVAC = 0; + AGM_Medical_AutomaticWakeup = 1; + AGM_Medical_DisableScreams = 0; +}; +#include diff --git a/TO_MERGE/agm/Medical/data/agm_epipen_co.paa b/TO_MERGE/agm/Medical/data/agm_epipen_co.paa new file mode 100644 index 0000000000..0c05242cc5 Binary files /dev/null and b/TO_MERGE/agm/Medical/data/agm_epipen_co.paa differ diff --git a/TO_MERGE/agm/Medical/data/agm_morphine_co.paa b/TO_MERGE/agm/Medical/data/agm_morphine_co.paa new file mode 100644 index 0000000000..c0227500cb Binary files /dev/null and b/TO_MERGE/agm/Medical/data/agm_morphine_co.paa differ diff --git a/TO_MERGE/agm/Medical/functions/fn_aiCanTreat.sqf b/TO_MERGE/agm/Medical/functions/fn_aiCanTreat.sqf new file mode 100644 index 0000000000..4ac0f8139f --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_aiCanTreat.sqf @@ -0,0 +1,33 @@ +// by commy2 + +private ["_medic", "_patient", "_task"]; + +_medic = _this select 0; +_patient = _this select 1; +_task = _this select 2; + +if ([_medic] call AGM_Core_fnc_isPlayer || {!alive _medic} || {!alive _patient} || {_medic getVariable ["AGM_isUnconscious", false]} || {_medic getVariable ["AGM_isCaptive", false]}) exitWith {false}; + +private "_result"; +_result = false; +switch (_task) do { + case ("bandage"): { + _result = damage _patient > 0 + && {"AGM_Bandage" in items _medic} + }; + case ("morphine"): { + _result = _patient getVariable ["AGM_Pain", 0] > 0 + && {"AGM_Morphine" in items _medic} + }; + case ("epipen"): { + _result = _patient getVariable ["AGM_isUnconscious", false] + && {"AGM_Epipen" in items _medic} + && {[_medic] call AGM_Core_fnc_isMedic || {_patient getVariable ["AGM_Medical_AllowNonMedics", AGM_Medical_AllowNonMedics]}} + && {!(_medic getVariable ["AGM_Medical_RequireMEDEVAC", AGM_Medical_RequireMEDEVAC])} + }; + case ("bloodbag"): { + _result = _patient getVariable ["AGM_Blood", 1] < 1 + && {[_medic] call AGM_Core_fnc_isMedic || {_patient getVariable ["AGM_Medical_AllowNonMedics", AGM_Medical_AllowNonMedics]}} + }; +}; +_result diff --git a/TO_MERGE/agm/Medical/functions/fn_aiInitTask.sqf b/TO_MERGE/agm/Medical/functions/fn_aiInitTask.sqf new file mode 100644 index 0000000000..d237dba624 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_aiInitTask.sqf @@ -0,0 +1,17 @@ +// by commy2 + +private ["_unit", "_need"]; +_unit = _this select 0; +_need = _this select 1; + +// can treat self? +if ([_unit, _unit, _need] call AGM_Medical_fnc_aiCanTreat) then {//systemChat format ["%1 : %2", [_unit, _unit, _need] call AGM_Medical_fnc_aiTreat, [_unit, _unit, _need]]; + [_unit, _unit, _need] call AGM_Medical_fnc_aiTreat; +} else { + // if not, then find group member that can treat instead + { + if ([_x, _unit, _need] call AGM_Medical_fnc_aiCanTreat) exitWith {//systemChat format ["%1 : %2", [_unit, _unit, _need] call AGM_Medical_fnc_aiTreat, [_unit, _unit, _need]]; + [_x, _unit, _need] call AGM_Medical_fnc_aiTreat; + }; + } forEach units group _unit; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_aiTreat.sqf b/TO_MERGE/agm/Medical/functions/fn_aiTreat.sqf new file mode 100644 index 0000000000..91265bd835 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_aiTreat.sqf @@ -0,0 +1,122 @@ +// by commy2 + +private ["_medic", "_patient", "_task"]; + +_medic = _this select 0; +_patient = _this select 1; +_task = _this select 2; + +// exit if the unit already has a task +if (!scriptDone (_medic getVariable ["AGM_Medical_AITask", scriptNull])) exitWith {};//systemChat str _this;// + +// exit if the medic can't do te treatment +if !(_this call AGM_Medical_fnc_aiCanTreat) exitWith { + // continue walking freely + _medic doMove getPosASL _medic +}; + +// do treatment +private "_scriptHandle"; +_scriptHandle = _this spawn { + _medic = _this select 0; + _patient = _this select 1; + _task = _this select 2; + + // wait until ready again + waitUntil { + // exit if dead + if (!alive _medic || {!alive _patient} || {_medic getVariable ["AGM_isUnconscious", false]}) exitWith {true}; + + sleep 0.15; + _medic getVariable ["AGM_canTreat", true] + }; + + // wait until medic next to patient + if (_medic distanceSqr _patient > 4) then { + _doMoveLoop = _this spawn { + while {true} do { + (_this select 0) doMove getPosASL (_this select 1); + sleep 30; + }; + }; + + waitUntil { + // exit if dead + if (!alive _medic || {!alive _patient} || {_medic getVariable ["AGM_isUnconscious", false]}) exitWith {true}; + + sleep 0.15; + getPosASL _medic distanceSqr getPosASL _patient < 5 + }; + + terminate _doMoveLoop; + }; + + // exit if the medic can't do te treatment + if !(_this call AGM_Medical_fnc_aiCanTreat) exitWith { + // continue walking freely + _medic doMove getPosASL _medic + }; + + // halt + doStop _medic; + + // treat everything + _items = items _medic; + + switch (_task) do { + case ("bandage"): { + if (damage _patient > 0 && {"AGM_Bandage" in _items}) then { + [_medic, _patient, "bandage", "All"] call AGM_Medical_fnc_treat; + }; + }; + + case ("morphine"): { + if (_patient getVariable ["AGM_Pain", 0] > 0 && {"AGM_Morphine" in _items}) then { + [_medic, _patient, "morphine"] call AGM_Medical_fnc_treat; + }; + }; + + case ("epipen"): { + if (_patient getVariable ["AGM_isUnconscious", false] && {"AGM_Epipen" in _items}) then { + [_medic, _patient, "epipen"] call AGM_Medical_fnc_treat; + }; + }; + + case ("bloodbag"): { + if (_patient getVariable ["AGM_Blood", 1] < 1 && {"AGM_Bloodbag" in _items}) then { + [_medic, _patient, "bloodbag"] call AGM_Medical_fnc_treat; + }; + }; + }; + + // wait until ready again + waitUntil { + // exit if dead + if (!alive _medic || {!alive _patient} || {_medic getVariable ["AGM_isUnconscious", false]}) exitWith {true}; + + sleep 0.15; + _medic getVariable ["AGM_canTreat", true] + }; + + // check for next task on this patient + if (damage _patient > 0) exitWith { + [_medic, _patient, "bandage"] spawn AGM_Medical_fnc_aiTreat; + }; + + if (_patient getVariable ["AGM_Pain", 0] > 0) exitWith { + [_medic, _patient, "morphine"] spawn AGM_Medical_fnc_aiTreat; + }; + + if (_patient getVariable ["AGM_isUnconscious", false]) exitWith { + [_medic, _patient, "epipen"] spawn AGM_Medical_fnc_aiTreat; + }; + + if (_patient getVariable ["AGM_Blood", 1] < 1) exitWith { + [_medic, _patient, "bloodbag"] spawn AGM_Medical_fnc_aiTreat; + }; + + // otherwise continue walking freely + _medic doMove getPosASL _medic; +}; + +_medic setVariable ["AGM_Medical_AITask", _scriptHandle]; diff --git a/TO_MERGE/agm/Medical/functions/fn_checkDamage.sqf b/TO_MERGE/agm/Medical/functions/fn_checkDamage.sqf new file mode 100644 index 0000000000..67495c25de --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_checkDamage.sqf @@ -0,0 +1,55 @@ +/* + * Author: KoffeinFlummi + * + * Checks the unit for leg and arm damage, and removes orphan structural damage. + * + * Arguments: + + 0: Unit + * 1: Leg Damage + * 2: Arm Damage + * 3: Remove orphan damage? (Bool; optional, default No) + * + * Return Value: + * None + */ + +#define LEGDAMAGETRESHOLD1 1 +#define LEGDAMAGETRESHOLD2 1.7 +#define ARMDAMAGETRESHOLD1 1 +#define ARMDAMAGETRESHOLD2 1.7 + +private ["_unit", "_legdamage", "_armdamage", "_damagesum"]; + +_unit = _this select 0; +_legdamage = _this select 1; +_armdamage = _this select 2; + +// Leg Damage +// lightly wounded, only limit walking speed (forceWalk is for suckers) +if (_legdamage >= LEGDAMAGETRESHOLD1) then { + if (_unit getHitPointDamage "HitLegs" != 1) then {_unit setHitPointDamage ["HitLegs", 1]}; +} else { + if (_unit getHitPointDamage "HitLegs" != 0) then {_unit setHitPointDamage ["HitLegs", 0]}; +}; +// @ŧodo: force prone for completely fucked up legs. + +// Arm Damage +// fx only +if (_armdamage >= ARMDAMAGETRESHOLD1) then { + if (_unit getHitPointDamage "HitHands" != 1) then {_unit setHitPointDamage ["HitHands", 1]}; +} else { + if (_unit getHitPointDamage "HitHands" != 0) then {_unit setHitPointDamage ["HitHands", 0]}; +}; + +// remove leftover structural damage if unit is already fully healed +if (count _this > 3 and _this select 3) then { + _damagesum = (_unit getHitPointDamage "HitHead") + + (_unit getHitPointDamage "HitBody") + + (_unit getHitPointDamage "HitLeftArm") + + (_unit getHitPointDamage "HitRightArm") + + (_unit getHitPointDamage "HitLeftLeg") + + (_unit getHitPointDamage "HitRightLeg"); + if (_damagesum <= 0.06) then { + _unit setDamage 0; + }; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_diagnose.sqf b/TO_MERGE/agm/Medical/functions/fn_diagnose.sqf new file mode 100644 index 0000000000..7113c1a598 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_diagnose.sqf @@ -0,0 +1,121 @@ +/* + * Author: KoffeinFlummi + * + * Shows the player information about his patient. + * + * Arguments: + * 0: Unit to be diagnosed + * + * Return Value: + * None + */ + +private ["_unit", "_damages", "_bystanders", "_lightinjuries", "_heavyinjuries", "_blood", "_painkiller", "_pain"]; + +_unit = _this select 0; + +_damages = [ + ["HitHead", floor ((_unit getHitPointDamage "HitHead") * 100) / 100], + ["HitBody", floor ((_unit getHitPointDamage "HitBody") * 100) / 100], + ["HitLeftArm", floor ((_unit getHitPointDamage "HitLeftArm") * 100) / 100], + ["HitRightArm", floor ((_unit getHitPointDamage "HitRightArm") * 100) / 100], + ["HitLeftLeg", floor ((_unit getHitPointDamage "HitLeftLeg") * 100) / 100], + ["HitRightLeg", floor ((_unit getHitPointDamage "HitRightLeg") * 100) / 100] +]; + +_unit setVariable ["AGM_isDiagnosed", True, False]; + +// Tell bystanders what's up if necessary +if (AGM_Medical_RequireDiagnosis) then { + _bystanders = nearestObjects [AGM_player, ["CAManBase"], 10]; + [-1, { + if (AGM_player in (_this select 1)) then { + (_this select 0) setVariable ["AGM_isDiagnosed", true, false]; + }; + }, [_unit, _bystanders]] call CBA_fnc_globalExecute; +}; + +_string = format ["%1: %2", localize "STR_AGM_Medical_Patient", [_unit] call AGM_Core_fnc_getName]; + +if (damage _unit >= 1) exitWith { + _string = _string + "

" + localize "STR_AGM_Medical_PatientIsDead" + "
"; + [composeText [lineBreak, parseText _string]] call AGM_Medical_fnc_displayText; +}; + +// Consciousness +if (_unit getVariable ["AGM_isUnconscious", False]) then { + _string = _string + "

" + localize "STR_AGM_Medical_PatientIsUnconscious" + ""; +} else { + _string = _string + "

" + localize "STR_AGM_Medical_PatientIsAwake"; +}; + +// Injuries +_lightinjuries = ""; +_heavyinjuries = ""; +if (AGM_Medical_SingleBandage) then { + _string = _string + (switch True do { + case (damage _unit >= 0.5): {"

" + localize "STR_AGM_Medical_PatientHeavilyInjured" + ""}; + case (damage _unit < 0.5): {"

" + localize "STR_AGM_Medical_PatientLightlyInjured" + ""}; + default {"

" + localize "STR_AGM_Medical_PatientNotInjured"}; + }); +} else { + _heavyinjuries = ""; + { + if ((_x select 1) >= 0.5) then { + if (_heavyinjuries != "") then { _heavyinjuries = _heavyinjuries + ", "; }; + _heavyinjuries = _heavyinjuries + localize (format ["STR_AGM_Medical_%1", (_x select 0)]); + }; + } forEach _damages; + if (_heavyinjuries != "") then { + _string = _string + "

" + (localize "STR_AGM_Medical_PatientHeavyInjuries") + "
" + _heavyinjuries; + }; + + _lightinjuries = ""; + { + if ((_x select 1) < 0.5 and (_x select 1) > 0.01) then { + if (_lightinjuries != "") then { _lightinjuries = _lightinjuries + ", "; }; + _lightinjuries = _lightinjuries + localize (format ["STR_AGM_Medical_%1", (_x select 0)]); + }; + } forEach _damages; + if (_lightinjuries != "") then { + _string = _string + "

" + (localize "STR_AGM_Medical_PatientLightInjuries") + "
" + _lightinjuries; + }; + + if (_lightinjuries == "" and _heavyinjuries == "") then { + _string = _string + "

" + localize "STR_AGM_Medical_PatientNotInjured"; + }; +}; + +// Bleeding +if ((AGM_Medical_SingleBandage and damage _unit > 0) or (_heavyinjuries != "" or _lightinjuries != "")) then { + _string = _string + "

" + localize "STR_AGM_Medical_PatientBleeding" + " "; +} else { + _string = _string + "

" + localize "STR_AGM_Medical_PatientNotBleeding" + " "; +}; + +// Blood +_blood = _unit getVariable ["AGM_Blood", 1]; +_string = _string + (switch True do { + case (_blood < 0.4): {"" + localize "STR_AGM_Medical_PatientLostBlood" + ""}; + case (_blood < 1): {"" + localize "STR_AGM_Medical_PatientLostSomeBlood" + ""}; + default {localize "STR_AGM_Medical_PatientLostNoBlood"}; +}); + +// Painkillers +_painkiller = _unit getVariable ["AGM_Painkiller", 1]; +_string = _string + (switch True do { + case (_painkiller < 0.4): {"

" + localize "STR_AGM_Medical_PatientPainkillers" + " "}; + case (_painkiller < 0.9): {"

" + localize "STR_AGM_Medical_PatientSomePainkillers" + " "}; + default {"

" + localize "STR_AGM_Medical_PatientNoPainkillers" + " "}; +}); + +// Pain +_pain = _unit getVariable ["AGM_Pain", 0]; +_string = _string + (switch True do { + case (_pain > 0.4): {"" + localize "STR_AGM_Medical_PatientHeavyPain" + ""}; + case (_pain > 0.1): {"" + localize "STR_AGM_Medical_PatientLightPain" + ""}; + default {localize "STR_AGM_Medical_PatientNoPain"}; +}); + +_string = _string + ""; +[composeText [lineBreak, parseText _string]] call AGM_Medical_fnc_displayText; diff --git a/TO_MERGE/agm/Medical/functions/fn_displayText.sqf b/TO_MERGE/agm/Medical/functions/fn_displayText.sqf new file mode 100644 index 0000000000..3fbaf4ee3e --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_displayText.sqf @@ -0,0 +1,21 @@ +/* + * Author: commy2 + * + * Display a structured text. Used for medical diagnose. + * + * Argument: + * 0: Diagnosis (Text) + * + * Return value: + * Nothing + */ + +private ["_text", "_ctrlHint"]; + +_text = _this select 0; + +("AGM_RscHint" call BIS_fnc_rscLayer) cutRsc ["AGM_Medical_RscHint", "PLAIN", 0, true]; + +disableSerialization; +_ctrlHint = uiNamespace getVariable "AGM_ctrlHint"; +_ctrlHint ctrlSetStructuredText _text; diff --git a/TO_MERGE/agm/Medical/functions/fn_handleDamage.sqf b/TO_MERGE/agm/Medical/functions/fn_handleDamage.sqf new file mode 100644 index 0000000000..52f96f8d94 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_handleDamage.sqf @@ -0,0 +1,286 @@ +/* + * Author: KoffeinFlummi + * + * Called when some dude gets shot. Or stabbed. Or blown up. Or pushed off a cliff. Or hit by a car. Or burnt. Or poisoned. Or gassed. Or cut. You get the idea. + * + * Arguments: + * 0: Unit that got hit (Object) + * 1: Name of the selection that was hit (String); "" for structural damage + * 2: Amount of damage inflicted (Number) + * 3: Shooter (Object); Null for explosion damage, falling, fire etc. + * 4: Projectile (Object or String) + * + * Return value: + * Damage value to be inflicted (optional) + */ + +#define UNCONSCIOUSNESSTRESHOLD 0.6 + +#define PAINKILLERTRESHOLD 0.1 +#define PAINLOSS 0.0001 + +#define BLOODTRESHOLD1 0.35 +#define BLOODTRESHOLD2 0 +#define BLOODLOSSRATE 0.04 + +#define ARMOURCOEF 2 + +private ["_unit", "_selectionName", "_damage", "_source", "_source", "_projectile", "_hitSelections", "_hitPoints", "_newDamage", "_found", "_cache_projectiles", "_cache_hitpoints", "_cache_damages"]; + +_unit = _this select 0; +_selectionName = _this select 1; +_damage = _this select 2; +_source = _this select 3; +_projectile = _this select 4; + +if (!local _unit) exitWith {nil}; //if not local, then return value shouldn't have any effect + +if (typeName _projectile == "OBJECT") then { + _projectile = typeOf _projectile; +}; + +// Prevent unnecessary processing +if (damage _unit >= 1) exitWith {}; + +_unit setVariable ["AGM_isDiagnosed", False, True]; + +// @todo: figure out if this still applies. + +// For some reason, everything is backwards in MP, +// so we need to untangle some things. +// -- seems fixed as of v1.36 +/*if (isMultiplayer) then { + _selectionName = switch (_selectionName) do { + case "hand_r" : {"leg_l"}; + case "leg_r" : {"hand_l"}; + case "legs" : {"hand_r"}; + default {_selectionName}; + }; +};*/ + +// This seems to only show up in MP too, but since it doesn't +// collide with anything, I'll check it in SP as well. +if (_selectionName == "r_femur_hit") then { + _selectionName = "leg_r"; +}; + +_hitSelections = ["head", "body", "hand_l", "hand_r", "leg_l", "leg_r"]; +_hitPoints = ["HitHead", "HitBody", "HitLeftArm", "HitRightArm", "HitLeftLeg", "HitRightLeg"]; + +// If the damage is being weird, we just tell it to fuck off. +// (Returning 0 seems to cause issues though, so return 0.01) +if !(_selectionName in (_hitSelections + [""])) exitWith {0.01}; + +// Calculate change in damage. +_newDamage = _damage - (damage _unit); +if (_selectionName in _hitSelections) then { + _newDamage = _damage - (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))); +}; + +// Finished with the current frame, reset variables +// Note: sometimes handleDamage spans over 2 or even 3 frames. +if (diag_frameno > (_unit getVariable ["AGM_Medical_FrameNo", -3]) + 2) then { + _unit setVariable ["AGM_Medical_FrameNo", diag_frameno]; + _unit setVariable ["AGM_Medical_isFalling", False]; + _unit setVariable ["AGM_Medical_Projectiles", []]; + _unit setVariable ["AGM_Medical_HitPoints", []]; + _unit setVariable ["AGM_Medical_Damages", []]; + _unit setVariable ["AGM_Medical_PreventDeath", False]; + if (([_unit] call AGM_Core_fnc_isPlayer) or _unit getVariable ["AGM_allowUnconscious", False]) then { + if (!(_unit getVariable ["AGM_isUnconscious", False]) and + {_unit getVariable ["AGM_Medical_PreventInstaDeath", AGM_Medical_PreventInstaDeath]}) then { + _unit setVariable ["AGM_Medical_PreventDeath", True]; + }; + if ((_unit getVariable ["AGM_isUnconscious", False]) and + {_unit getVariable ["AGM_Medical_PreventDeathWhileUnconscious", AGM_Medical_PreventDeathWhileUnconscious]}) then { + _unit setVariable ["AGM_Medical_PreventDeath", True]; + }; + }; +}; + +_damage = _damage - _newDamage; + +if !(_unit getVariable ["AGM_allowDamage", True]) exitWith {_damage max 0.01}; + +_newDamage = _newDamage * (_unit getVariable ["AGM_Medical_CoefDamage", AGM_Medical_CoefDamage]); + +// Exclude falling damage to everything other than legs; reduce structural damage. +if (((velocity _unit) select 2 < -5) and (vehicle _unit == _unit)) then { + _unit setVariable ["AGM_Medical_isFalling", True]; +}; +if (_unit getVariable "AGM_Medical_isFalling" and !(_selectionName in ["", "leg_l", "leg_r"])) exitWith { + (_unit getHitPointDamage (_hitPoints select (_hitSelections find _selectionName))) max 0.01; +}; +if (_unit getVariable "AGM_Medical_isFalling") then { + _newDamage = _newDamage * 0.7; +}; + +// Increase damage for kinetic penetrators for people inside vehicles +// to simulate hot spikey things flying around (generally unpleasant). +// (only if AGM_Armour is used) +if (isClass (configFile >> "CfgPatches" >> "AGM_Armour") and _projectile != "" and vehicle _unit != _unit) then { + _hit = getNumber (configFile >> "CfgAmmo" >> _projectile >> "hit"); + if (_hit >= 100) then { + _hit = linearConversion [100, 1000, _hit, 0, ARMOURCOEF, True]; + _newDamage = _newDamage * (1 + _hit); + }; +}; + +// Make sure there's only one damaged selection per projectile per frame. +_cache_projectiles = _unit getVariable "AGM_Medical_Projectiles"; +_cache_hitpoints = _unit getVariable "AGM_Medical_HitPoints"; +_cache_damages = _unit getVariable "AGM_Medical_Damages"; +if (_selectionName != "" and !(_unit getVariable "AGM_Medical_isFalling")) then { + if (_projectile in _cache_projectiles) then { + _index = _cache_projectiles find _projectile; + _otherDamage = (_cache_damages select _index); + if (_otherDamage > _newDamage) then { + _newDamage = 0; + } else { + _hitPoint = _cache_hitpoints select _index; + _restore = ((_unit getHitPointDamage _hitPoint) - _otherDamage) max 0; + _unit setHitPointDamage [_hitPoint, _restore]; + // Make entry unfindable + _cache_projectiles set [_index, objNull]; + _cache_projectiles pushBack _projectile; + _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); + _cache_damages pushBack _newDamage; + }; + } else { + _cache_projectiles pushBack _projectile; + _cache_hitpoints pushBack (_hitPoints select (_hitSelections find _selectionName)); + _cache_damages pushBack _newDamage; + }; +}; +_unit setVariable ["AGM_Medical_Projectiles", _cache_projectiles]; +_unit setVariable ["AGM_Medical_HitPoints", _cache_hitpoints]; +_unit setVariable ["AGM_Medical_Damages", _cache_damages]; + +// we want to move damage to another selection; have to do it ourselves. +// this is only the case for limbs, so this will not impact the killed EH. +if (_selectionName != (_this select 1)) then { + _unit setHitPointDamage [_hitPoints select (_hitSelections find _selectionName), _damage + _newDamage]; + _newDamage = 0; +}; + +_damage = _damage + _newDamage; + +// Assign orphan structural damage to torso; +// using spawn with custom damage handling here, but since I just +// move damage, this shouldn't be any issue for the Killed EH +_unit spawn { + sleep 0.001; + + _damagesum = (_this getHitPointDamage "HitHead") + + (_this getHitPointDamage "HitBody") + + (_this getHitPointDamage "HitLeftArm") + + (_this getHitPointDamage "HitRightArm") + + (_this getHitPointDamage "HitLeftLeg") + + (_this getHitPointDamage "HitRightLeg"); + if (_damagesum <= 0.06 and (damage _this) > 0.01) then { + _damage = damage _this; + _this setDamage 0; + _this setHitPointDamage ["HitBody", (_damage min 0.89)]; // just to be sure. + }; +}; + +// Leg & Arm Damage +_legdamage = (_unit getHitPointDamage "HitLeftLeg") + (_unit getHitPointDamage "HitRightLeg"); +if (_selectionName == "leg_l") then { + _legdamage = _damage + (_unit getHitPointDamage "HitRightLeg"); +}; +if (_selectionName == "leg_r") then { + _legdamage = (_unit getHitPointDamage "HitLeftLeg") + _damage; +}; + +_armdamage = (_unit getHitPointDamage "HitLeftArm") + (_unit getHitPointDamage "HitRightArm"); +if (_selectionName == "hand_l") then { + _armdamage = _damage + (_unit getHitPointDamage "HitRightArm"); +}; +if (_selectionName == "hand_r") then { + _armdamage = (_unit getHitPointDamage "HitLeftArm") + _damage; +}; + +[_unit, _legdamage, _armdamage] call AGM_Medical_fnc_checkDamage; + +// Unconsciousness +if (_selectionName == "" and + _damage >= UNCONSCIOUSNESSTRESHOLD and + _damage < 1 and + !(_unit getVariable ["AGM_isUnconscious", False] + )) then { + // random chance to kill AI instead of knocking them out, otherwise + // there'd be shittons of unconscious people after every firefight, + // causing executions. And nobody likes executions. + if (_unit getVariable ["AGM_allowUnconscious", ([_unit] call AGM_Core_fnc_isPlayer) or random 1 > 0.5]) then { + [_unit] call AGM_Medical_fnc_knockOut; + } else { + _damage = 1; + }; +}; + +// Bleeding +if (_selectionName == "" and damage _unit == 0) then { + _unit spawn { + while {damage _this > 0 and damage _this < 1} do { + if !([_this] call AGM_Medical_fnc_isInMedicalVehicle) then { + _blood = _this getVariable ["AGM_Blood", 1]; + _blood = _blood - BLOODLOSSRATE * (_this getVariable ["AGM_Medical_CoefBleeding", AGM_Medical_CoefBleeding]) * (damage _this); + _this setVariable ["AGM_Blood", _blood max 0, true]; + if (_blood <= BLOODTRESHOLD1 and !(_this getVariable ["AGM_isUnconscious", False])) then { + [_this] call AGM_Medical_fnc_knockOut; + }; + if (_blood <= BLOODTRESHOLD2 and {!AGM_Medical_PreventDeathWhileUnconscious}) then { + //_this setDamage 1; + _this setHitPointDamage ["HitHead", 1]; // fx: don't get the uniform bloody if there are no wounds + }; + }; + sleep 10; + }; + }; +}; + +// Pain Reduction +if (_unit getVariable ["AGM_Pain", 0] == 0) then { + _unit spawn { + while {_this getVariable ["AGM_Pain", 0] > 0} do { + sleep 1; + _pain = ((_this getVariable ["AGM_Pain", 0]) - 0.001) max 0; + _this setVariable ["AGM_Pain", _pain, True]; + }; + }; +}; +// Set Pain +_potentialPain = _damage * (_unit getVariable ["AGM_Painkiller", 1]); +if ((_selectionName == "") and (_potentialPain > _unit getVariable ["AGM_Pain", 0])) then { + _unit setVariable ["AGM_Pain", (_damage * (_unit getVariable ["AGM_Painkiller", 1])) min 1, True]; +}; + +// again, using spawn, but there shouldn't be any death, so the killed EH should be fine. +if ((_unit getVariable "AGM_Medical_PreventDeath") and {vehicle _unit != _unit} and {damage (vehicle _unit) >= 1}) then { + _unit setPosATL [ + (getPos _unit select 0) + (random 3) - 1.5, + (getPos _unit select 1) + (random 3) - 1.5, + 0 + ]; + if !(_unit getVariable ["AGM_isUnconscious", False]) then { + [_unit] call AGM_Medical_fnc_knockOut; + }; + _unit setVariable ["AGM_allowDamage", False]; + _unit spawn { + sleep 1; + _this setVariable ["AGM_allowDamage", True]; + }; +}; + +if ((_unit getVariable "AGM_Medical_PreventDeath")) then { + if ((_damage > 0.89) && (_selectionName in ["", "head", "body"])) then { //only change damage on hits that would be lethal + _damage = 0.89; + [_unit, "preventedDeath", [_unit]] call AGM_Core_fnc_callCustomEventHandlersGlobal; + if (!(_unit getVariable ["AGM_isUnconscious", False])) then { + [_unit] call AGM_Medical_fnc_knockOut; //knockOut when taking damage that should be lethal + }; + }; +}; + +_damage diff --git a/TO_MERGE/agm/Medical/functions/fn_init.sqf b/TO_MERGE/agm/Medical/functions/fn_init.sqf new file mode 100644 index 0000000000..a8b3e9c5c1 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_init.sqf @@ -0,0 +1,45 @@ +/* +Author: KoffeinFlummi + +Do I really need to explain what this does?! +*/ + +_unit = _this select 0; + +if !(local _unit) exitWith {}; + +_unit setVariable ["tf_globalVolume", 1]; +_unit setVariable ["tf_voiceVolume", 1, True]; +_unit setVariable ["tf_unable_to_use_radio", False, True]; + +_unit setVariable ["acre_sys_core_isDisabled", False, True]; +_unit setVariable ["acre_sys_core_globalVolume", 1]; + +if ("AGM_Unconscious" in ([_unit] call AGM_Core_fnc_getCaptivityStatus)) then { + [_unit, "AGM_Unconscious", false] call AGM_Core_fnc_setCaptivityStatus; +}; + +_unit setVariable ["AGM_isDiagnosed", False, True]; // Is the unit diagnosed? +_unit setVariable ["AGM_canTreat", True, False]; // Can unit treat others? +_unit setVariable ["AGM_isTreatable", True, True]; // Can unit be treated/diagnosed? + +_unit setVariable ["AGM_Blood", 1, True]; // Amount of blood in the body. +_unit setVariable ["AGM_isBleeding", False, True]; // Is the unit losing blood? (Rate is determined by damage.) +_unit setVariable ["AGM_Painkiller", 1, True]; // How much painkillers the guy is on. (smaller = more) +_unit setVariable ["AGM_Pain", 0, True]; // Amount of pain the unit is in. + +_unit setVariable ["AGM_isUnconscious", False, True]; // figure it out +_unit setVariable ["AGM_Unconscious", False, True]; // deprecated since v0.95 +_unit setVariable ["AGM_isOverdosing", False]; +_unit setVariable ["AGM_Transporting", objNull]; + +if !(_unit getVariable ["AGM_NoRadio_isMuted", false]) then { + [_unit] call AGM_Core_fnc_unmuteUnit; +}; + +_unit spawn { + while {alive _this} do { + [_this] call AGM_Medical_fnc_itemCheck; + sleep 1; + }; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_isDiagnosed.sqf b/TO_MERGE/agm/Medical/functions/fn_isDiagnosed.sqf new file mode 100644 index 0000000000..c40b449e42 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_isDiagnosed.sqf @@ -0,0 +1,20 @@ +/* + * Author: KoffeinFlummi + * + * Checks if a unit is diagnosed and if that's even necessary. + * + * Arguments: + * 0: Unit to be treated. + * + * Return Value: + * Is unit diagnosed? (Bool) + */ + +private ["_unit"]; + +_unit = _this select 0; + +if !(AGM_player getVariable ["AGM_Medical_RequireDiagnosis", AGM_Medical_RequireDiagnosis]) exitWith {true}; +if !(_unit getVariable ["AGM_isUnconscious", False]) exitWith {true}; + +(_unit getVariable ["AGM_isDiagnosed", True]) diff --git a/TO_MERGE/agm/Medical/functions/fn_isInMedicalVehicle.sqf b/TO_MERGE/agm/Medical/functions/fn_isInMedicalVehicle.sqf new file mode 100644 index 0000000000..f13cbf6b0e --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_isInMedicalVehicle.sqf @@ -0,0 +1,21 @@ +/* + * Author: KoffeinFlummi + * + * Checks if a unit is in a medical vehicle. + * + * Arguments: + * 0: unit to be checked (object) + * + * Return Value: + * Bool: is unit in medical vehicle? + */ + +private ["_unit", "_vehicle"]; + +_unit = _this select 0; +_vehicle = vehicle _unit; + +if (_unit == _vehicle) exitWith {false}; +if (_unit in [driver _vehicle, gunner _vehicle, commander _vehicle]) exitWith {false}; + +_vehicle getVariable ["AGM_isMedic", getNumber (configFile >> "CfgVehicles" >> typeOf _vehicle >> "attendant") == 1] diff --git a/TO_MERGE/agm/Medical/functions/fn_itemCheck.sqf b/TO_MERGE/agm/Medical/functions/fn_itemCheck.sqf new file mode 100644 index 0000000000..f9efc6826b --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_itemCheck.sqf @@ -0,0 +1,29 @@ +/* + * Author: KoffeinFlummi + * + * Checks the inventory of the unit and replaces items if necessary. + * + * Arguments: + * 0: Unit + * + * Return Value: + * None + */ + +_unit = _this select 0; + +while {count (itemsWithMagazines _unit) > count (itemsWithMagazines _unit - ["FirstAidKit"])} do { + _unit removeItem "FirstAidKit"; + _unit addItem "AGM_Bandage"; + _unit addItem "AGM_Bandage"; + _unit addItem "AGM_Morphine"; +}; +while {count (itemsWithMagazines _unit) > count (itemsWithMagazines _unit - ["Medikit"])} do { + _unit removeItem "Medikit"; + _unit addItemToBackpack "AGM_Epipen"; + _unit addItemToBackpack "AGM_Epipen"; + _unit addItemToBackpack "AGM_Epipen"; + _unit addItemToBackpack "AGM_Epipen"; + _unit addItemToBackpack "AGM_Bloodbag"; + _unit addItemToBackpack "AGM_Bloodbag"; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_knockOut.sqf b/TO_MERGE/agm/Medical/functions/fn_knockOut.sqf new file mode 100644 index 0000000000..2842c17cdb --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_knockOut.sqf @@ -0,0 +1,130 @@ +/* + * By: KoffeinFlummi + * + * Knocks the given player out. + * + * Arguments: + * 0: Unit to be knocked out + * 1: Duration of knockout (optional) + * (if not set or set to -1, value depending on damage is chosen) + * + * Return Values: + * None + */ + +private ["_unit", "_duration", "_deadman", "_newGroup", "_wakeUpTimer", "_unconsciousnessTimer"]; + +_unit = _this select 0; +_duration = -1; +if (count _this > 1) then { + _duration = _this select 1; +}; + +//if (_unit getVariable ["AGM_isCaptive", False]) exitWith {_unit setDamage 1}; +if (_unit getVariable ["AGM_isUnconscious", False]) exitWith {}; + +// If an AI unit shoots a player, hand it off to him to calculate things. +// Puts less strain on the server. +if (!(local _unit) and ([_unit] call AGM_Core_fnc_isPlayer)) exitWith { + [_this, "AGM_Medical_fnc_knockOut", _unit] call AGM_Core_fnc_execRemoteFnc; +}; + +if (!([_unit] call AGM_Core_fnc_isPlayer) && {vehicle _unit != _unit}) exitWith {}; + +_unit setVariable ["AGM_Unconscious", True, True]; // deprecated since 0.95 +_unit setVariable ["AGM_isUnconscious", True, True]; +_unit setVariable ["AGM_canTreat", False, True]; + +_unit setVariable ["tf_globalVolume", 0.4]; +_unit setVariable ["tf_voiceVolume", 0, True]; +_unit setVariable ["tf_unable_to_use_radio", True, True]; + +_unit setVariable ["acre_sys_core_isDisabled", True, True]; +_unit setVariable ["acre_sys_core_globalVolume", 0.4]; + +if (_unit == AGM_player) then { + if (visibleMap) then {openMap false}; + closeDialog 0; + call AGM_Interaction_fnc_hideMenu; + + [True, True] call AGM_Core_fnc_disableUserInput; +}; + +[_unit, "AGM_Unconscious", True] call AGM_Core_fnc_setCaptivityStatus; + +_unit disableAI "MOVE"; +//_unit disableAI "ANIM"; +_unit disableAI "TARGET"; +_unit disableAI "AUTOTARGET"; +_unit disableAI "FSM"; +_unit disableConversation true; + +if !(_unit getVariable ["AGM_NoRadio_isMuted", false]) then { + [_unit] call AGM_Core_fnc_muteUnit; +}; + +// play appropriate anim +private "_fnc_playAnim"; +_fnc_playAnim = { + if (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _this >> "AGM_isLadder") == 1) then { + _this action ["LadderOff", nearestObject [position _this, "House"]]; + }; + + waitUntil {isTouchingGround _this}; + waitUntil {!([_this] call AGM_Core_fnc_inTransitionAnim) or !(alive _this)}; + if !(alive _this and _this getVariable "AGM_isUnconscious") exitWith {}; + [_this, "Unconscious", 1, True] call AGM_Core_fnc_doAnimation; + sleep 2; + if (animationState _this != "Unconscious" and _this getVariable ["AGM_isUnconscious", False]) then { + [_this, "Unconscious", 2, True] call AGM_Core_fnc_doAnimation; + }; +}; + +if (vehicle _unit != _unit) then { + _unit setVariable ["AGM_OriginalAnim", animationState _unit, True]; + [ + _unit, + ((configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit >> "interpolateTo") call BIS_fnc_getCfgData) select 0, + 1, + True + ] call AGM_Core_fnc_doAnimation; + + // handle parachute + if (vehicle _unit isKindOf "ParachuteBase") then { + _unit spawn _fnc_playAnim; + }; +} else { + _unit spawn _fnc_playAnim; +}; + +// wake up unit after certain amount of time +if (_duration != -1 or _unit getVariable ["AGM_Medical_AutomaticWakeup", AGM_Medical_AutomaticWakeup]) then { + _wakeUpTimer = [_unit, _duration] spawn { + _unit = _this select 0; + _duration = _this select 1; + if (_duration != -1) then { + sleep _duration; + } else { + sleep (60 * (1 + (random 8)) * ((damage _unit) max 0.5)); + }; + if (!isNull _unit && {alive _unit}) then { + [_unit] call AGM_Medical_fnc_wakeUp; + }; + }; +}; +_unit setVariable ["AGM_WakeUpTimer", _wakeUpTimer]; + +// kill unit if the max uncon. time module option is used +_unconsciousnessTimer = [_unit] spawn { + _unit = _this select 0; + if (AGM_Medical_MaxUnconsciousnessTime >= 0) then { + sleep AGM_Medical_MaxUnconsciousnessTime; + if !(scriptDone (_unit getVariable "AGM_WakeUpTimer")) then { + terminate (_unit getVariable "AGM_WakeUpTimer"); + }; + _unit setDamage 1; + }; +}; +_unit setVariable ["AGM_UnconsciousnessTimer", _unconsciousnessTimer]; + +[_unit, "knockedOut", [_unit]] call AGM_Core_fnc_callCustomEventHandlersGlobal; diff --git a/TO_MERGE/agm/Medical/functions/fn_loadIntoVehicle.sqf b/TO_MERGE/agm/Medical/functions/fn_loadIntoVehicle.sqf new file mode 100644 index 0000000000..88474850ba --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_loadIntoVehicle.sqf @@ -0,0 +1,48 @@ +/* + * Author: KoffeinFlummi + * + * Loads the carried/dragged unit into a vehicle for transport. + * + * Arguments: + * 0: The unit that does the loading + * 1: The vehicle + * + * Return Value: + * - + */ + +private ["_unit", "_target", "_vehicle"]; + +_unit = _this select 0; +_vehicle = _this select 1; +_target = _unit getVariable ["AGM_Transporting", objNull]; + +if (count _this < 3 and {!(local _target)}) exitWith { + [_this + [_target], "AGM_Medical_fnc_loadIntoVehicle", _target] call AGM_Core_fnc_execRemoteFnc; +}; + +if (count _this > 2) then { + _target = _this select 2; +}; + +_unit setVariable ["AGM_Transporting", objNull, True]; + +detach _target; +_target moveInCargo _vehicle; +_target assignAsCargo _vehicle; + +[_unit, "", 2, True] call AGM_Core_fnc_doAnimation; +_target spawn { + sleep 0.5; + _this setVariable ["AGM_OriginalAnim", animationState _this, True]; + [ + _this, + ((configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _this >> "interpolateTo") call BIS_fnc_getCfgData) select 0, + 2, + True + ] call AGM_Core_fnc_doAnimation; +}; + +_unit removeWeapon "AGM_FakePrimaryWeapon"; +_unit setVariable ["AGM_canTreat", True, True]; +_target setVariable ["AGM_isTreatable", True, True]; diff --git a/TO_MERGE/agm/Medical/functions/fn_module.sqf b/TO_MERGE/agm/Medical/functions/fn_module.sqf new file mode 100644 index 0000000000..740e78c655 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_module.sqf @@ -0,0 +1,47 @@ +/* + * Author: KoffeinFlummi + * + * Initializes the medical module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +private ["_logic", "_units", "_activated"]; + +if !(isServer) exitWith {}; + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +AGM_Medical_Module = True; + +AGM_Medical_MEDEVACTriggers = [synchronizedObjects _logic, {triggerType _this != ""}] call AGM_Core_fnc_filter; +publicVariable "AGM_Medical_MEDEVACTriggers"; +AGM_Medical_MEDEVACVehicles = _units; +publicVariable "AGM_Medical_MEDEVACVehicles"; + +[_logic, "AGM_Medical_CoefDamage", "CoefDamage" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Medical_CoefBleeding", "CoefBleeding" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Medical_CoefPain", "CoefPain" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Medical_CoefNonMedic", "CoefNonMedic" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_Medical_MaxUnconsciousnessTime", "MaxUnconsciousnessTime" ] call AGM_Core_fnc_readNumericParameterFromModule; + +[_logic, "AGM_Medical_AllowNonMedics", "AllowNonMedics" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_RequireDiagnosis", "RequireDiagnosis" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_PreventInstaDeath", "PreventInstaDeath" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_PreventDeathWhileUnconscious", "PreventDeathWhileUnconscious"] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_SingleBandage", "SingleBandage" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_AllowChatWhileUnconscious", "AllowChatWhileUnconscious" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_EnableOverdosing", "EnableOverdosing" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_RequireMEDEVAC", "RequireMEDEVAC" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_AutomaticWakeup", "AutomaticWakeup" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Medical_DisableScreams", "DisableScreams" ] call AGM_Core_fnc_readBooleanParameterFromModule; + +diag_log text "[AGM]: Medical Module Initialized."; diff --git a/TO_MERGE/agm/Medical/functions/fn_overdose.sqf b/TO_MERGE/agm/Medical/functions/fn_overdose.sqf new file mode 100644 index 0000000000..0ac18af6bc --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_overdose.sqf @@ -0,0 +1,34 @@ +/* + * Author: KoffeinFlummi + * + * Kills the given unit with a morphine overdose. + * + * Arguments: + * 0: Unit + * + * Return Value: + * None + */ + +_unit = _this select 0; + +if (!AGM_Medical_EnableOverdosing) exitWith {}; + +if !(local _unit) exitWith { + [_this, "AGM_Medical_fnc_overdose", _unit] call AGM_Core_fnc_execRemoteFnc; +}; + +if !(_unit getVariable ["AGM_isUnconscious", False]) then { + [_unit, 99999] call AGM_Medical_fnc_knockOut; +} else { + if !(scriptDone (_unit getVariable "AGM_WakeUpTimer")) then { + terminate (_unit getVariable "AGM_WakeUpTimer"); + }; +}; + +_unit playAction "GestureSpasm4"; + +_unit spawn { + sleep 20; + [_this, "HitHead", 1, True] call AGM_Medical_fnc_setHitPointDamage; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_release.sqf b/TO_MERGE/agm/Medical/functions/fn_release.sqf new file mode 100644 index 0000000000..739e2bdc3e --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_release.sqf @@ -0,0 +1,41 @@ +/* + * Author: KoffeinFlummi + * + * Releases the given unit. + * + * Argument: + * 0: Unit to be released (Object) + * + * Return value: + * none + */ + +#define ANIM_DRAG ["amovpercmstpslowwrfldnon_acinpknlmwlkslowwrfldb_2", "amovpercmstpsraswpstdnon_acinpknlmwlksnonwpstdb_2", "amovpercmstpsnonwnondnon_acinpknlmwlksnonwnondb_2", "acinpknlmstpsraswrfldnon", "acinpknlmstpsnonwpstdnon", "acinpknlmstpsnonwnondnon"] + +private ["_unit", "_target"]; + +_unit = _this select 0; +_target = _this select 1; + +_unit removeWeapon "AGM_FakePrimaryWeapon"; +_unit setVariable ["AGM_Transporting", objNull, True]; +_unit setVariable ["AGM_canTreat", true, false]; +_target setVariable ["AGM_isTreatable", True, True]; + +detach _target; + +_unit removeAction (_unit getVariable "AGM_Medical_ReleaseID"); + +// animation was already handled by fnc_loadIntoVehicle +if (vehicle _target != _target) exitWith {}; + +if (vehicle _unit == _unit) then { + if (animationState _unit in ANIM_DRAG) then { + _unit playAction "released"; + } else { + [_unit, "", 2, True] call AGM_Core_fnc_doAnimation; + }; +}; +if (_target getVariable ["AGM_isUnconscious", False]) then { + [_target, "Unconscious", 2, True] call AGM_Core_fnc_doAnimation; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_scream.sqf b/TO_MERGE/agm/Medical/functions/fn_scream.sqf new file mode 100644 index 0000000000..7f20f1f05b --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_scream.sqf @@ -0,0 +1,79 @@ +/* + * Author: KoffeinFlummi + * + * AAAAAAAAAAAAAAAAAARRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRGH + * + * Arguments: + * 0: Unit to scream + * + * Return Value: + * loud noises + */ + +private ["_unit", "_screams", "_position"]; + +if (AGM_Medical_DisableScreams) exitWith {}; + +_unit = _this select 0; + +_screams = [ + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_01.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_02.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_03.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_04.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_05.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_06.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_07.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_08.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_09.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_10.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_11.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_12.wss", + "A3\sounds_f\characters\human-sfx\Person0\P0_hit_13.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_01.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_02.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_03.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_04.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_05.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_06.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_07.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_08.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_09.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_10.wss", + "A3\sounds_f\characters\human-sfx\Person1\P1_hit_11.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_01.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_02.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_03.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_04.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_05.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_06.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_07.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_08.wss", + "A3\sounds_f\characters\human-sfx\Person2\P2_hit_09.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_01.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_02.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_03.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_04.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_05.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_06.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_07.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_08.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_09.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_10.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_11.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_12.wss", + "A3\sounds_f\characters\human-sfx\Person3\P3_hit_13.wss" +]; + +_position = _unit modelToWorld (_unit selectionPosition "Head"); +_position set [2, (_position select 2) + ((getPosASLW _unit select 2) - (getPosATL _unit select 2) max 0)]; + +playSound3D [ + _screams select (floor random (count _screams)), + objNull, + False, + _position, + 2, + 1, + 300 +]; diff --git a/TO_MERGE/agm/Medical/functions/fn_setDamage.sqf b/TO_MERGE/agm/Medical/functions/fn_setDamage.sqf new file mode 100644 index 0000000000..2f3c8825ed --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_setDamage.sqf @@ -0,0 +1,40 @@ +/* + * Author: KoffeinFlummi + * + * Sets the structural damage of a unit without altering the hitPoints. + * THIS NEEDS TO BE CALLED FROM THE PC WHERE THE UNIT IS LOCAL. + * + * Arguments: + * 0: Unit + * 1: Damage + * + * Return Value: + * None + */ + +private ["_unit", "_damage", "_hitPoints"]; + +_unit = _this select 0; +_damage = _this select 1; + +if !(local _unit) exitWith { + [_this, "AGM_Medical_fnc_setDamage", _unit] call AGM_Core_fnc_execRemoteFnc; +}; + +_hitPoints = [ + (_unit getHitPointDamage "HitHead"), + (_unit getHitPointDamage "HitBody"), + (_unit getHitPointDamage "HitLeftArm"), + (_unit getHitPointDamage "HitRightArm"), + (_unit getHitPointDamage "HitLeftLeg"), + (_unit getHitPointDamage "HitRightLeg") +]; + +_unit setDamage _damage; + +_unit setHitPointDamage ["HitHead", (_hitPoints select 0)]; +_unit setHitPointDamage ["HitBody", (_hitPoints select 1)]; +_unit setHitPointDamage ["HitLeftArm", (_hitPoints select 2)]; +_unit setHitPointDamage ["HitRightArm", (_hitPoints select 3)]; +_unit setHitPointDamage ["HitLeftLeg", (_hitPoints select 4)]; +_unit setHitPointDamage ["HitRightLeg", (_hitPoints select 5)]; diff --git a/TO_MERGE/agm/Medical/functions/fn_setHitPointDamage.sqf b/TO_MERGE/agm/Medical/functions/fn_setHitPointDamage.sqf new file mode 100644 index 0000000000..e70ce8cf87 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_setHitPointDamage.sqf @@ -0,0 +1,93 @@ +/* + * Author: KoffeinFlummi + * + * My very own setHitPointDamage since BIS's one is buggy when affecting a remote unit. + * It also doesn't change the overall damage. This does. + * + * Arguments: + * 0: unit + * 1: selection + * 2: damage + * 3: disable overall damage adjustment (optional) + * + * Return Value: + * - + */ + +private ["_unit", "_selection", "_damage", "_selections", "_damages", "_damageOld", "_damageSumOld", "_damageNew", "_damageSumNew", "_damageFinal"]; + +_unit = _this select 0; +_selection = _this select 1; +_damage = _this select 2; + +// Unit isn't local, give function to machine where it is. +if !(local _unit) exitWith { + [_this, "AGM_Medical_fnc_setHitPointDamage", _unit] call AGM_Core_fnc_execRemoteFnc; +}; + +// Check if overall damage adjustment is disabled +if (count _this > 3 && {_this select 3}) exitWith { + _unit setHitPointDamage [_selection, _damage]; +}; + +_selections = [ + "HitHead", + "HitBody", + "HitLeftArm", + "HitRightArm", + "HitLeftLeg", + "HitRightLeg" +]; + +if !(_selection in _selections) exitWith { + _unit setHitPointDamage [_selection, _damage]; +}; + +AGM_Medical_Unit = _unit; +_damages = [_selections, {AGM_Medical_Unit getHitPointDamage _this}] call AGM_Core_fnc_map; + +_damageOld = damage _unit; +_damageSumOld = 0; +{ + _damageSumOld = _damageSumOld + _x; +} forEach _damages; +_damageSumOld = _damageSumOld max 0.001; + +_damages set [_selections find _selection, _damage]; + +_damageSumNew = 0; +{ + _damageSumNew = _damageSumNew + _x; +} forEach _damages; + +_damageNew = _damageSumNew / 6; +if (_damageOld > 0) then { + _damageNew = _damageOld * (_damageSumNew / _damageSumOld); +}; + +if (_unit getVariable ["AGM_isUnconscious", False]) then { + if (_damageNew > 0.9 and {AGM_Medical_PreventDeathWhileUnconscious}) then { + _damageNew = 0.89; + }; +} else { + if (_damageNew > 0.9 and {AGM_Medical_PreventInstaDeath}) then { + _damageNew = 0.89; + }; +}; + +_unit setDamage _damageNew; + +{ + _damageFinal = (_damages select _forEachIndex); + if (_unit getVariable ["AGM_isUnconscious", False]) then { + if (_damageFinal > 0.9 and {AGM_Medical_PreventDeathWhileUnconscious}) then { + _damageFinal = 0.89; + }; + } else { + if (_damageFinal > 0.9 and {AGM_Medical_PreventInstaDeath}) then { + _damageFinal = 0.89; + }; + }; + + _unit setHitPointDamage [_x, _damageFinal]; +} forEach _selections; diff --git a/TO_MERGE/agm/Medical/functions/fn_takeItem.sqf b/TO_MERGE/agm/Medical/functions/fn_takeItem.sqf new file mode 100644 index 0000000000..5ae3a9a1ca --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_takeItem.sqf @@ -0,0 +1,48 @@ +/* + * Author: KoffeinFlummi + * + * Takes an item, preferrably from the cursorTarget first. + * + * Arguments: + * 0: The unit that does the treating. + * 1: The unit being treated. + * 2: The desired item (classname). + * + * Return Value: + * True if item was successfully take, false otherwise. + */ + +private ["_unit", "_target", "_item", "_config", "_displayName"]; + +_unit = _this select 0; +_target = _this select 1; +_item = _this select 2; +_config = configFile >> "CfgWeapons" >> _item >> "displayName"; +_displayName = getText _config; + +if ((_target == _unit) and (_item in items _unit)) exitWith { + _unit removeItem _item; + True +}; + +if (_item in (items _target)) exitWith { + if ([_target] call AGM_Core_fnc_isPlayer) then { + systemChat format [localize "STR_AGM_Medical_TakingItemPatient", _displayName]; + }; + _target removeItem _item; + if (!(local _target) and isPlayer _target) then { + [[_unit, _item, _config, _target], "{systemChat format [localize 'STR_AGM_Medical_TakingYourItem', [_this select 0] call AGM_Core_fnc_getName, getText (_this select 2)];}", _target] call AGM_Core_fnc_execRemoteFnc; + }; + True +}; + +if (_item in (items _unit)) exitWith { + _unit removeItem _item; + if ([_unit] call AGM_Core_fnc_isPlayer) then { + systemChat format [localize "STR_AGM_Medical_TakingItemSelf", _displayName]; + }; + True +}; + +[localize "STR_AGM_Medical_NoItem"] call AGM_Core_fnc_displayTextStructured; +False diff --git a/TO_MERGE/agm/Medical/functions/fn_transport.sqf b/TO_MERGE/agm/Medical/functions/fn_transport.sqf new file mode 100644 index 0000000000..92d9581666 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_transport.sqf @@ -0,0 +1,92 @@ +/* + * Author: KoffeinFlummi + * + * Start dragging the given unit. + * + * Argument: + * 0: Unit to do the dragging (Object) + * 1: Unit to be dragged (Object) + * 2: Type of transportation + * - "drag" + * - "carry" + * + * Return value: + * none + */ + +#define ANIM_DRAG ["amovpercmstpslowwrfldnon_acinpknlmwlkslowwrfldb_2", "amovpercmstpsraswpstdnon_acinpknlmwlksnonwpstdb_2", "amovpercmstpsnonwnondnon_acinpknlmwlksnonwnondb_2", "acinpknlmstpsraswrfldnon", "acinpknlmstpsnonwpstdnon", "acinpknlmstpsnonwnondnon"] + +_this spawn { + _unit = _this select 0; + _target = _this select 1; + _type = _this select 2; + + _target setVariable ["AGM_isTreatable", False, True]; + _unit setVariable ["AGM_canTreat", False, False]; + + // Everything but the rifle animation is fucked + if (primaryWeapon _unit == "") then { + _unit addWeapon "AGM_FakePrimaryWeapon"; + }; + _unit selectWeapon (primaryWeapon _unit); + + if (_type == "drag") then { + _target setDir (getDir _unit + 180) % 360; + _target setPos ((getPos _unit) vectorAdd ((vectorDir _unit) vectorMultiply 1.5)); + + _unit playActionNow "grabDrag"; + [_target, "{_this playActionNow 'grabDragged'}", _target] call AGM_Core_fnc_execRemoteFnc; + waitUntil {animationState _unit in ANIM_DRAG}; + } else { + _target setDir (getDir _unit + 180) % 360; + _target setPos ((getPos _unit) vectorAdd (vectorDir _unit)); + [_unit, "AcinPknlMstpSnonWnonDnon_AcinPercMrunSnonWnonDnon", 2, True] call AGM_Core_fnc_doAnimation; + [_target, "AinjPfalMstpSnonWrflDnon_carried_Up", 2, True] call AGM_Core_fnc_doAnimation; + sleep 15; + + /*_unit playActionNow "grabCarry"; + [_target, "{_this playActionNow 'grabCarried'}", _target] call AGM_Core_fnc_execRemoteFnc; + waitUntil {animationState _unit in ANIM_CARRY};*/ + }; + + _unit setVariable ["AGM_Transporting", _target, False]; + _releaseID = _unit addAction [format ["%1", localize "STR_AGM_Medical_Release"], "[(_this select 1), ((_this select 1) getVariable ['AGM_Transporting', objNull])] call AGM_Medical_fnc_release;", nil, 20, false, true, "", "!isNull (_this getVariable ['AGM_Transporting', objNull])"]; + _unit setVariable ["AGM_Medical_ReleaseID", _releaseID]; + + // unit woke up while picking him up, abandon ship + if !(_target getVariable ["AGM_isUnconscious", False] || {isNull (_unit getVariable ["AGM_Transporting", objNull])}) exitWith { + detach _target; + _target setVariable ["AGM_isTreatable", True, True]; + _unit setVariable ["AGM_canTreat", True, False]; + _unit removeWeapon "AGM_FakePrimaryWeapon"; + [_unit, "", 2, True] call AGM_Core_fnc_doAnimation; + _unit removeAction (_unit getVariable "AGM_Medical_ReleaseID"); + _unit setVariable ["AGM_Transporting", objNull, False]; + }; + + if (_type == "drag") then { + _target attachTo [_unit, [0, 1.1, 0.092]]; + [_target, "{_this setDir 180;}", _target] call AGM_Core_fnc_execRemoteFnc; + [_target, "AinjPpneMrunSnonWnonDb_still", 2, True] call AGM_Core_fnc_doAnimation; + } else { + _target attachTo [_unit, [0.4, -0.1, -1.25], "LeftShoulder"]; + [_target, "{_this setDir 195;}", _target] call AGM_Core_fnc_execRemoteFnc; + [_unit, "AcinPercMstpSnonWnonDnon", 2, True] call AGM_Core_fnc_doAnimation; + [_target, "AinjPfalMstpSnonWnonDf_carried_dead", 2, True] call AGM_Core_fnc_doAnimation; + }; + + // catch weird stuff happening + // (player getting in vehicle, either person dying etc.) + waitUntil {sleep 0.5; + vehicle _unit != _unit or + isNull (_unit getVariable ["AGM_Transporting", objNull]) or + !(alive _unit) or + !(alive _target) or + (_unit getVariable ["AGM_isUnconscious", False]) or + !(_target getVariable ["AGM_isUnconscious", False]) + }; + // release was properly done, do nothing + if (isNull (_unit getVariable ["AGM_Transporting", objNull])) exitWith {}; + // weird shit happened, properly release unit + [_unit, _unit getVariable ["AGM_Transporting", objNull]] call AGM_Medical_fnc_release; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_treat.sqf b/TO_MERGE/agm/Medical/functions/fn_treat.sqf new file mode 100644 index 0000000000..3e0bacb40b --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_treat.sqf @@ -0,0 +1,178 @@ +/* + * By: KoffeinFlummi + * + * Starts the treatment of the unit. + * + * Arguments: + * 0: Unit that does the treating (Object) + * 1: Unit that is beeing treated (Object) + * 2: Type of treatment: + * - "diagnose" + * - "bandage" + * - "morphine" + * - "epipen" + * - "bloodbag" + * 3+: Additional parameters + * + * Return value: + * none + */ + +private ["_unit", "_target", "_type", "_inTrigger", "_item", "_animation", "_time", "_string"]; + +_unit = _this select 0; +_target = _this select 1; +_type = _this select 2; + +// check if unit is medic and if that's even necessary +if (_type in ["epipen", "bloodbag"] and + !(([_unit] call AGM_Core_fnc_isMedic) or + (_unit getVariable ["AGM_Medical_AllowNonMedics", AGM_Medical_AllowNonMedics]))) exitWith { + if ([_unit] call AGM_Core_fnc_isPlayer) then { + [localize "STR_AGM_Medical_NotTrained"] call AGM_Core_fnc_displayTextStructured; + }; +}; + +// check MEDEVAC conditions +_inTrigger = False; +{ + if (_inTrigger) exitWith {}; + _inTrigger = [_x, _target] call BIS_fnc_inTrigger; +} forEach (missionNamespace getVariable ["AGM_Medical_MEDEVACTriggers", []]); +{ + if (_inTrigger) exitWith {}; + _inTrigger = _target distance _x < 10; +} forEach (missionNamespace getVariable ["AGM_Medical_MEDEVACVehicles", []]); + +if (_type == "epipen" and (_unit getVariable ["AGM_Medical_RequireMEDEVAC", AGM_Medical_RequireMEDEVAC]) and !_inTrigger) exitWith { + if ([_unit] call AGM_Core_fnc_isPlayer) then { + [localize "STR_AGM_Medical_NotInMEDEVAC"] call AGM_Core_fnc_displayTextStructured; + }; +}; + +// morphine warning +if (_type == "morphine" and + _target != _unit and + [_target] call AGM_Core_fnc_isPlayer) then { + [[_unit] call AGM_Core_fnc_getName, "{systemChat format ['%1 %2', _this, localize 'STR_AGM_Medical_GivingYouMorphine'];}", _target] call AGM_Core_fnc_execRemoteFnc; +}; + +// remove item if necessary +_item = switch (_type) do { + case "bandage" : {"AGM_Bandage"}; + case "morphine" : {"AGM_Morphine"}; + case "epipen" : {"AGM_Epipen"}; + case "bloodbag" : {"AGM_Bloodbag"}; + default {""}; +}; +if (_item != "" and {!([_unit, _target, _item] call AGM_Medical_fnc_takeItem)}) exitWith {}; + +// code to be executed if action is aborted +AGM_Medical_treatmentAbort = { + _unit = _this select 0; + + if (vehicle _unit == _unit) then { + [_unit, "", 1] call AGM_Core_fnc_doAnimation; + }; + _unit setVariable ["AGM_canTreat", True, False]; +}; + +_unit setVariable ["AGM_canTreat", False, False]; + +// self-diagnosis is instant +if ( + (_target == _unit) and + (_type == "diagnose") + ) exitWith { + _this spawn AGM_Medical_fnc_treatmentCallback; +}; + +// play appropriate animation +_animation = switch (_type) do { + case "diagnose" : {"AinvPknlMstpSnonWnonDnon_medic3"}; + case "bandage" : {"AinvPknlMstpSnonWnonDnon_medic4"}; + case "morphine" : {"AinvPknlMstpSnonWnonDnon_medic1"}; + case "epipen" : {"AinvPknlMstpSnonWnonDnon_medic1"}; + case "bloodbag" : {"AinvPknlMstpSnonWnonDnon_medic1"}; + default {""}; +}; +if (stance _unit == "PRONE") then { + _animation = switch (currentWeapon _unit) do { + case (""): {"AinvPpneMstpSlayWnonDnon_medic"}; + case (primaryWeapon _unit): {"AinvPpneMstpSlayWrflDnon_medic"}; + case (handgunWeapon _unit): {"AinvPpneMstpSlayWpstDnon_medic"}; + default {"AinvPpneMstpSlayWnonDnon_medic"}; + }; +}; +if (_unit == _target) then { + _animation = switch (currentWeapon _unit) do { + case (""): { + ["AinvPknlMstpSlayWnonDnon_medic", "AinvPpneMstpSlayWnonDnon_medic"] select (stance _unit == "PRONE") + }; + case (primaryWeapon _unit): { + ["AinvPknlMstpSlayWrflDnon_medic", "AinvPpneMstpSlayWrflDnon_medic"] select (stance _unit == "PRONE") + }; + case (handgunWeapon _unit): { + ["AinvPknlMstpSlayWpstDnon_medic", "AinvPpneMstpSlayWpstDnon_medic"] select (stance _unit == "PRONE") + }; + default { + ["AinvPknlMstpSlayWnonDnon_medic", "AinvPpneMstpSlayWnonDnon_medic"] select (stance _unit == "PRONE") + }; + }; +}; + +if (vehicle _unit == _unit) then { + [_unit, _animation, 1] call AGM_Core_fnc_doAnimation; +}; + +// get time required for action to be completed +_time = switch (_type) do { + case "diagnose" : {5}; + case "bandage" : {8}; + case "morphine" : {5}; + case "epipen" : {5}; + case "bloodbag" : {20}; + default {10}; +}; +if !([_unit] call AGM_Core_fnc_isMedic) then { + _time = _time * (_unit getVariable ["AGM_Medical_CoefNonMedic", AGM_Medical_CoefNonMedic]); +}; +// increase treatment time when treating while prone or in (non-medical) vehicle +// (it's hard to bandage yourself in a tank you know) +if (stance _unit == "PRONE" or (vehicle _unit != _unit and !([vehicle _unit] call AGM_Core_fnc_isMedic))) then { + _time = _time * 1.2; +}; + +// select appropriate label for progress bar +_string = switch (_type) do { + case "diagnose" : {localize "STR_AGM_Medical_Diagnosing"}; + case "bandage" : { + _selection = _this select 3; + if (_selection == "All") then { + localize "STR_AGM_Medical_Bandaging" + } else { + localize format ["STR_AGM_Medical_Bandaging_%1", _selection] + }; + }; + case "morphine" : {localize "STR_AGM_Medical_Injecting_Morphine"}; + case "epipen" : {localize "STR_AGM_Medical_Injecting_Epinephrine"}; + case "bloodbag" : {localize "STR_AGM_Medical_Transfusing_Blood"}; + default {"Tell Flummi he's a dumbass ..."}; +}; + +// ai treat +if !([_unit] call AGM_Core_fnc_isPlayer) exitWith { + [_this, _time] spawn { + sleep ((_this select 1) * 0.6); + (_this select 0) call AGM_Medical_fnc_treatmentCallback; + }; +}; + +[ + _time, + _this, + "AGM_Medical_fnc_treatmentCallback", + _string, + "AGM_Medical_treatmentAbort" +] call AGM_Core_fnc_progressBar; +[_target, True] call AGM_Core_fnc_closeDialogIfTargetMoves; diff --git a/TO_MERGE/agm/Medical/functions/fn_treatmentCallback.sqf b/TO_MERGE/agm/Medical/functions/fn_treatmentCallback.sqf new file mode 100644 index 0000000000..fe51730b03 --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_treatmentCallback.sqf @@ -0,0 +1,110 @@ +/* + * Author: KoffeinFlummi + * + * Code to be executed upon the successfull treatment. + * + * Arguments: + * 0: Unit that does the treatment (Object) + * 1: Unit to be treated (Object) + * 2: Type of treatment: + * - "diagnose" + * - "bandage" + * - "morphine" + * - "epipen" + * - "bloodbag" + * 3+: additional parameters + * + * Return Value: + * None + */ + +#define BANDAGEHEAL 0.8 +#define MORPHINEHEAL 0.4 +#define BLOODBAGHEAL 0.7 + +private ["_unit", "_target", "_type"]; + +_unit = _this select 0; +_target = _this select 1; +_type = _this select 2; + +if ((_target != _unit or _type != "diagnose") and (vehicle _unit == _unit)) then { + [_unit, "", 1] call AGM_Core_fnc_doAnimation; +}; +_unit setVariable ["AGM_canTreat", True, False]; + +switch (_type) do { + case "diagnose" : { + // this is way too messy to all do here. + [_target] call AGM_Medical_fnc_diagnose; + }; + + case "bandage" : { + private ["_selection", "_damage"]; + + _selection = _this select 3; + if (_selection == "All") then { + _target setDamage ((damage _target - BANDAGEHEAL) max 0); + } else { + _damage = ((_target getHitPointDamage _selection) - BANDAGEHEAL) max 0; + [_target, _selection, _damage] call AGM_Medical_fnc_setHitPointDamage; + + [ + _target, + (_target getHitPointDamage "HitLeftLeg") + (_target getHitPointDamage "HitRightLeg"), + (_target getHitPointDamage "HitLeftArm") + (_target getHitPointDamage "HitRightArm"), + True + ] call AGM_Medical_fnc_checkDamage; + }; + }; + + case "morphine" : { + private ["_painkillerOld", "_painkiller"]; + + _painkillerOld = _target getVariable ["AGM_Painkiller", 1]; + + // reduce pain, pain sensitivity + _painkiller = (_painkillerOld - MORPHINEHEAL) max 0; + _pain = ((_target getVariable ["AGM_Pain", 0]) - MORPHINEHEAL) max 0; + _target setVariable ["AGM_Painkiller", _painkiller, True]; + _target setVariable ["AGM_Pain", _pain, True]; + + // overdose if necessary (unit was already full of painkillers) + if (_painkillerOld < 0.05 and _target getVariable ["AGM_Medical_EnableOverdosing", AGM_Medical_EnableOverdosing]) then { + [_target] call AGM_Medical_fnc_overdose; + }; + + // Painkiller Reduction + if (_painkillerOld == 1) then { + _target spawn { + while {_this getVariable ["AGM_Painkiller", 1] < 1} do { + sleep 1; + _painkiller = ((_this getVariable ["AGM_Painkiller", 1]) + 0.0015) min 1; + _this setVariable ["AGM_Painkiller", _painkiller, True]; + }; + }; + }; + }; + + case "epipen" : { + [_target] call AGM_Medical_fnc_wakeUp; // short and sweet + }; + + case "bloodbag" : { + private ["_blood"]; + + _blood = ((_target getVariable ["AGM_Blood", 1]) + BLOODBAGHEAL) min 1; + _target setVariable ["AGM_Blood", _blood, True]; + }; + + default {}; +}; + +// reopen menu if desired +if (profileNamespace getVariable ["AGM_keepMedicalMenuOpen", False] and _unit == AGM_player) then { + if (_target == _unit) then { + [3, _target, "AGM_Medical"] call AGM_Interaction_fnc_showMenu; + } else { + [2, _target, "AGM_Medical"] call AGM_Interaction_fnc_showMenu; + }; +}; diff --git a/TO_MERGE/agm/Medical/functions/fn_unloadPatients.sqf b/TO_MERGE/agm/Medical/functions/fn_unloadPatients.sqf new file mode 100644 index 0000000000..2ea395391f --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_unloadPatients.sqf @@ -0,0 +1,36 @@ +/* + * Author: KoffeinFlummi + * + * Unloads the wounded units from the vehicle. + * + * Arguments: + * 0: The unit that does the unloading + * 1: The vehicle + * + * Return Value: + * - + */ + + private ["_unit", "_vehicle", "_pos"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +if (count _this > 2) exitWith { + _target = _this select 2; + _pos = [ + (getPos _unit select 0) + (random 2) - 1, + (getPos _unit select 1) + (random 2) - 1, + 0 + ]; + moveOut _target; + unassignVehicle _target; + _target setPosATL _pos; +}; + +{ + if (_x getVariable ["AGM_isUnconscious", False]) then { + [_this + [_x], "AGM_Medical_fnc_unloadPatients", _x] call AGM_Core_fnc_execRemoteFnc; + _x setVariable ["AGM_OriginalAnim", "AmovPpneMstpSnonWnonDnon", True]; + }; +} forEach crew _vehicle; diff --git a/TO_MERGE/agm/Medical/functions/fn_wakeUp.sqf b/TO_MERGE/agm/Medical/functions/fn_wakeUp.sqf new file mode 100644 index 0000000000..36f91758bd --- /dev/null +++ b/TO_MERGE/agm/Medical/functions/fn_wakeUp.sqf @@ -0,0 +1,64 @@ +/* + * By: KoffeinFlummi + * + * Wakes an unconscious player up. + * + * Arguments: + * 0: Unconscious unit (Object) + * + * Return Values: + * None + */ + +private ["_unit", "_position"]; + +_unit = _this select 0; + +// Hand it off to local unit +if !(local _unit) exitWith { + [_this, "AGM_Medical_fnc_wakeUp", _unit] call AGM_Core_fnc_execRemoteFnc; +}; + +_unit enableAI "MOVE"; +//_unit enableAI "ANIM"; +_unit enableAI "TARGET"; +_unit enableAI "AUTOTARGET"; +_unit enableAI "FSM"; +_unit disableConversation false; + +if !(_unit getVariable ["AGM_NoRadio_isMuted", false]) then { + [_unit] call AGM_Core_fnc_unmuteUnit; +}; + +_unit setVariable ["AGM_Unconscious", False, True]; // deprecated since 0.95 +_unit setVariable ["AGM_isUnconscious", False, True]; +_unit setVariable ["AGM_canTreat", True, True]; + +_unit setVariable ["tf_globalVolume", 1]; +_unit setVariable ["tf_voiceVolume", 1, True]; +_unit setVariable ["tf_unable_to_use_radio", False, True]; + +_unit setVariable ["acre_sys_core_isDisabled", False, True]; +_unit setVariable ["acre_sys_core_globalVolume", 1]; + +if (_unit == AGM_player) then { + [False] call AGM_Core_fnc_disableUserInput; +}; + +[_unit, "AGM_Unconscious", False] call AGM_Core_fnc_setCaptivityStatus; + +// handle parachute +if (vehicle _unit == _unit) then { + _unit setVariable ["AGM_OriginalAnim", "", True]; +}; + +[_unit, _unit getVariable "AGM_OriginalAnim", 2, True] call AGM_Core_fnc_doAnimation; + +[_unit, "wokeUp", [_unit]] call AGM_Core_fnc_callCustomEventHandlersGlobal; + +if !(scriptDone (_unit getVariable "AGM_UnconsciousnessTimer")) then { + terminate (_unit getVariable "AGM_UnconsciousnessTimer"); +}; +if !(scriptDone (_unit getVariable "AGM_WakeUpTimer")) then { + terminate (_unit getVariable "AGM_WakeUpTimer"); +}; diff --git a/TO_MERGE/agm/Medical/init.sqf b/TO_MERGE/agm/Medical/init.sqf new file mode 100644 index 0000000000..8f239ca06e --- /dev/null +++ b/TO_MERGE/agm/Medical/init.sqf @@ -0,0 +1,31 @@ +// by commy2, handle AI + +0 spawn { + while {true} do { + sleep 10; + + _allGroups = [allGroups, {local _this}] call AGM_Core_fnc_filter; + + { + { + call { + if (damage _x > 0) exitWith { + [_x, "bandage"] call AGM_Medical_fnc_aiInitTask; + }; + + if (_x getVariable ["AGM_isUnconscious", false]) exitWith { + [_x, "epipen"] call AGM_Medical_fnc_aiInitTask; + }; + + if (_x getVariable ["AGM_Blood", 1] < 1) exitWith { + [_x, "bloodbag"] call AGM_Medical_fnc_aiInitTask; + }; + + if (_x getVariable ["AGM_Pain", 0] > 0) exitWith { + [_x, "morphine"] call AGM_Medical_fnc_aiInitTask; + }; + }; + } forEach units _x + } forEach _allGroups; + }; +}; diff --git a/TO_MERGE/agm/Medical/stringtable.xml b/TO_MERGE/agm/Medical/stringtable.xml new file mode 100644 index 0000000000..55ca19978a --- /dev/null +++ b/TO_MERGE/agm/Medical/stringtable.xml @@ -0,0 +1,877 @@ + + + + + + Treat >> + Behandeln >> + Tratar >> + Opatrz >> + Vyšetřit >> + Лечение >> + Soigner >> + Ellátás >> + Tratar >> + Cura >> + + + Self-treatment >> + Selbst behandeln >> + Tratarse >> + Opatrz siebie >> + Vyšetřit sebe >> + Самолечение >> + Se soigner >> + Önellátás >> + Tratar-se >> + Curati >> + + + Diagnose + Diagnose + Diagnosticar + Diagnozuj + Diagnostikovat + Диагностика + Diagnostiquer + Diagnózis + Diagnosticar + Fai una diagnosi + + + Inject Morphine + Morphin injizieren + Inyectar Morfina + Wstrzyknij morfinę + Aplikovat Morfin + Ввести морфин + Morphine + Morfium + Injetar Morfina + Inietta Morfina + + + Inject Epinephrine + Epinephrine injizieren + Inyectar Epinefrina + Wtrzyknij adrenalinę + Aplikovat Adrenalin + Ввести андреналил + Adrénaline + Adrenalin + Injetar Epinefrina + Inietta Epinefrina + + + Transfuse Blood + Bluttransfusion + Transfundir sangre + Przetocz krew + Transfúze krve + Перелить кровь + Transfusion + Infúzió + Transfundir Sangue + Effettua Trasfusione + + + Bandage + Verbinden + Venda + Bandaż + Obvázat + Pansement + Benda + Kötözése + Atadura + Перевязать + + + Bandage Head + Kopf verbinden + Vendar la cabeza + Bandażuj głowę + Obvázat hlavu + Перевязать голову + Pansement Tête + Fej kötözése + Atar Cabeça + Benda la testa + + + Bandage Torso + Torso verbinden + Vendar el torso + Bandażuj tors + Obvázat hruď + Перевязать торс + Pansement Torse + Felsőtest kötözése + Atar Tronco + Benda il torso + + + Bandage Left Arm + Arm links verbinden + Vendar el brazo izquierdo + Bandażuj lewe ramię + Obvázat levou ruku + Перевязать левую руку + Pansement Bras Gauche + Bal kar kötözése + Atar Braço Esquerdo + Benda il braccio sinistro + + + Bandage Right Arm + Arm rechts verbinden + Vendar el brazo derecho + Bandażuj prawe ramię + Obvázat pravou ruku + Перевязать правую руку + Pansement Bras Droit + Jobb kar kötözése + Atar Braço Direito + Benda il braccio destro + + + Bandage Left Leg + Bein links verbinden + Vendar la pierna izquierda + Bandażuj lewą nogę + Obvázat levou nohu + Перевязать левую ногу + Pansement Jambe Gauche + Bal láb kötözése + Atar Perna Esquerda + Benda la gamba sinistra + + + Bandage Right Leg + Bein rechts verbinden + Vendar la pierna derecha + Bandażuj prawą nogę + Obvázat pravou nohu + Перевязать правую ногу + Pansement Jambe Droite + Jobb láb kötözése + Atar Perna Direita + Benda la gamba destra + + + Drag + Ziehen + Arrastrar + Ciągnij + Táhnout + Тащить + Tracter + Húzás + Arrastar + Trascina + + + Carry + Tragen + Cargar + Nieś + Nést + Нести + Porter + Cipelés + Carregar + Trasporta + + + Release + Loslassen + Soltar + Połóż + Položit + Отпустить + Déposer + Elenged + Largar + Lascia + + + Load Patient Into + Patient Einladen + Cargar el paciente en + Załaduj pacjenta + Naložit pacianta do + Погрузить пациента в + Embarquer le Patient + Sebesült berakása + Carregar Paciente Em + Carica paziente nel + + + Unload Patient + Patient Ausladen + Descargar el paciente + Wyładuj pacjenta + Vyložit pacienta + Выгрузить пациента + Débarquer le Patient + Sebesült kihúzása + Descarregar Paciente + Scarica il paziente + + + Diagnosing ... + Diagnostizieren ... + Diagnosticando ... + Diagnozowanie ... + Diagnostikuji ... + Диагоностика.... + Diagnostic ... + Ellenőrzés... + Diagnosticando ... + Eseguo la diagnosi ... + + + Injecting Morphine ... + Morphin injizieren ... + Inyectando Morfina ... + Wstrzykiwanie morfiny ... + Aplikuju Morfin ... + Введение морфина... + Injection de Morphine... + Morfium beadása... + Injetando Morfina ... + Inietto la morfina ... + + + Injecting Epinephrine ... + Epinephrine injizieren ... + Inyectando Epinefrina ... + Wstrzykiwanie adrenaliny ... + Aplikuju Adrenalin ... + Введение андреналина + Injection d'Adrénaline ... + Adrenalin beadása... + Injetando Epinefrina ... + Inietto l'epinefrina ... + + + Transfusing Blood ... + Bluttransfusion ... + Realizando transfusión ... + Przetaczanie krwi ... + Probíhá transfúze krve ... + Переливание крови... + Transfusion Sanguine ... + Infúzió... + Transfundindo Sangue ... + Effettuo la trasfusione ... + + + Bandaging ... + Verbinden ... + Vendando ... + Bandażowanie ... + Obvazuji ... + Pansement ... + Sto applicando la benda ... + Bekötözés... + Atando ... + Перевязывание.... + + + Bandaging Head ... + Kopf verbinden ... + Vendando la cabeza ... + Bandażowanie głowy ... + Obvazuji hlavu ... + Перевязывание головы.... + Pansement à la Tête ... + Fej bekötözése... + Atando Cabeça ... + Sto applicando la benda sulla testa ... + + + Bandaging Torso ... + Torso verbinden ... + Vendando el torso ... + Bandażowanie torsu ... + Obvazuji hruď ... + Перевязывание торса... + Pansement au Torse ... + Felsőtest bekötözése ... + Atando Tronco ... + Sto applicando la benda sul torso + + + Bandaging Left Arm ... + Linken Arm verbinden ... + Vendando el brazo izquierdo ... + Bandażowanie lewego ramienia ... + Obvazuji levou ruku ... + Перевязывание тела... + Pansement au Bras Gauche ... + Bal kar bekötözése... + Atando Braço Esquerdo ... + Sto applicando la benda sul braccio sinistro + + + Bandaging Right Arm ... + Rechten Arm verbinden ... + Vendando el brazo derecho ... + Bandażowanie prawego ramienia ... + Obvazuji pravou ruku ... + Перевязывание правой руки... + Pansement au Bras Droit ... + Jobb kar bekötözése... + Atando Braço Direito ... + Sto applicando la benda sul braccio destro + + + Bandaging Left Leg ... + Linkes Bein verbinden ... + Vendando la pierna izquierda ... + Bandażowanie lewej nogi ... + Obvazuji levou nohu ... + Перевязывание левой ноги... + Pansement à la Jambe Gauche ... + Bal láb bekötözése... + Atando Perna Esquerda ... + Sto applicando la benda sulla gamba sinistra + + + Bandaging Right Leg ... + Rechtes Bein verbinden ... + Vendando la pierna derecha ... + Bandażowanie prawej nogi ... + Obvazuji pravou nohu ... + Перевязывание правой ноги... + Pansement à la Jambe Droite ... + Jobb láb bekötözése... + Atando Perna Direita + Sto applicando la benda sulla gamba destra + + + [AGM] Medical Supplies + [AGM] Sanitätsmaterial + [AGM] Suministros médicos + [AGM] Medykamenty + [AGM] Zdravotnické zásoby + [AGM] Медикаменты + [AGM] Matériel Médical + [AGM] Elsősegély felszerelés + [AGM] Suprimentos Médicos + Cassa Medica [AGM] + + + Bandage + Bandage + Venda + Bandaż + Obvaz + Бинт + Pansement + Kötszer + Atadura + Bendaggio + + + Used to stop bleeding. + Verwendet zum Stoppen von Blutungen + Usada para detener el sangrado + Używany do zatamowania krwawienia. + Používané k zastavení krvácení. + Используется для остановки кровотечения. + Utilisé pour arrêter les hémorragies. + Vérzés elállításához. + Usado para parar sangramentos. + Usato per fermare l'emorragie + + + Morphine Autoinjector + Morphin-Autoinjektor + Autoinyector de Morfina + Strzykawka z morfiną + Morfin + Морфин + Syrette de Morphine + Morfium + Autoinjetor de Morfina + Autoiniettore di morfina + + + Heavy Painkiller + Starkes Schmerzmittel + Sedante fuerte + Mocny środek przeciwbólowy + Sedativa + Сильное обезболивающее. + Utilisé pour atténuer la douleur. + Erős fájdalomcsillapító + Forte Analgésico + Antidolorifico molto forte + + + Epinephrine Autoinjector + Epinephrin-Autoinjektor + Autoinyector de Epinefrina + Strzykawka z adrenaliną + Adrenalin + Андреналин + Syrette d'Adrénaline + Adrenalin + Autoinjetor de Epinefrina + Autoiniettore di epinefrina + + + Used to wake up unconscious units. + Benutzt zum Aufwecken bewusstloser Patienten. + Usado para despertar a pacientes inconscientes + Używana w celu ocucenia nieprzytomnego pacjenta + Používaný k probuzení člověka z bezvědomí + Используется для возвращения в сознание. + Utilisé pour réveiller un patient inconscient. + Ájultak felkeltéséhez. + Usado para despertar indivíduos inconscientes. + Usato per risvegliare le unità svenute. + + + Blood Bag + Blutkonserve + Bolsa de sangre + Worek z krwią + Krevní vak + Пакет с кровью + Poche de sang + Infúzió + Bolsa de Sangue + Sacca di sangue + + + Used to compensate for heavy blood loss. + Benutzt, um starken Blutverlust zu kompensieren. + Usada para compensar pérdidas de sangre severas. + Stosowany w celu skompensowania dużej utraty krwi. + Používá se pro kompenzaci při těžké ztrátě krve. + Используется при высокой потере крови. + Utilisé pour combler une perte de sang importante. + Nagyobb vérveszteség esetén + Usado para compensar grandes perdas de sangue. + Usata per compensare grandi perdite di sangue. + + + Head + Kopf + Cabeza + Głowa + Hlava + Голова + Tête + Fej + Cabeça + Testa + + + Torso + Torso + Torso + Tors + Hruď + Торс + Torse + Felsőtest + Tronco + Torso + + + Left Arm + Linker Arm + Brazo izquierdo + Lewe ramię + Levá ruka + Левая рука + Bras Gauche + Bal kar + Braço Esquerdo + Braccio sinistro + + + Right Arm + Rechter Arm + Brazo derecho + Prawe ramię + Pravá ruka + Правая рука + Bras Droit + Jobb kar + Braço Direito + Braccio destro + + + Left Leg + Linkes Bein + Pierna izquierda + Lewa noga + Levá noha + Левая нога + Jambe Gauche + Bal láb + Perna Esquerda + Gamba sinistra + + + Right Leg + Rechtes Bein + Pierna derecha + Prawa noga + Pravá noha + Правая нога + Jambe Droite + Jobb láb + Perna Direita + Gamba destra + + + Patient + Patient + Paciente + Pacjent + Pacient + Пациент + Patient + Páciens + Paciente + Paziente + + + + The patient is dead. + Der Patient ist tot. + El paciente está muerto. + Pacjent jest martwy. + Je mrtvý. + Пациент мертв. + Le patient est décédé. + Meghalt. + O paciente está morto. + Il paziente è morto. + + + The patient is unconscious. + Der Patient ist bewusstlos. + El paciente está inconsciente. + Pacjent jest nieprzytomny. + Pacient je v bezvědomí. + Пациент без сознания. + Le patient est inconscient. + Elájult. + O paciente está inconsciente. + Il paziente è svenuto. + + + The patient is awake. + Der Patient ist wach. + El paciente está despierto. + Pacjent jest przytomny. + Pacient je při vědomí. + Пациент в сознании. + Le patient est conscient. + Ébren van. + O paciente está acordado. + Il paziente è sveglio. + + + The patient is heavily injured. + Der Patient ist schwer verletzt. + El paciente está severament herido. + Pacjent jest ciężko ranny. + Pacient je těžce zraněn + Le patient est gravement blessé. + Il paziente è gravemente ferito. + Súlyosan sérült. + O paciente está gravemente ferido. + Пациен тяжело. + + + The patient is lightly injured. + Der Patient ist leicht verletzt. + El paciente está levemente herido. + Pacjent jest lekko ranny. + Pacient je lehce zraněn + Le patient est légèrement blessé. + Il paziente è leggermente ferito. + Könnyen sérült. + O paciente está levemente ferido. + Пациенто легко. + + + The patient has heavy injuries in: + Der Patient hat schwere Verletzungen in: + El paciente tiene heridas severas en: + Pacjent ma ciężkie obrażenia na: + Pacient má těžká zranění na místech: + Пациен тяжело ранен в: + Le patient est gravement blessé: + Súlyosan sérült a: + O paciente tem graves ferimentos em: + Il paziente ha gravi lesioni in : + + + The patient has light injuries in: + Der Patient hat leichte Verletzungen in: + El paciente tiene heridas leves en: + Pacjent ma lekkie obrażenia na: + Pacient má lehká zranění na místech: + Пациенто легко ранен в: + Le patient est légèrement blessé: + Könnyen sérült a: + O paciente tem leves ferimentos em: + Il paziente ha lesioni lievi in : + + + The patient is not injured. + Der Patient ist unverletzt. + El paciente no está herido. + Pacjent nie ma żadnych obrażeń. + Pacient neni zraněný. + Пациент не ранен. + Le patient n'est pas blessé. + Nem sérült. + O paciente não está ferido. + Il paziente non è ferito. + + + The patient is bleeding; + Der Patient blutet; + El paciente está sangrando. + Pacjent krwawi; + Pacient krvácí; + Пациент истекает кровью: + Le patient saigne + Vérzik; + O paciente está sangrando; + Il paziente sta sanguinando; + + + The patient is not bleeding; + Der Patient blutet nicht; + El paciente no está sangrando. + Pacjent nie krwawi; + Pacient nekrvácí; + Пациент не имеет кровотечений. + Le patient ne saigne pas + Nem vérzik; + O paciente não está sangrando; + Il paziente non sta sanguinando; + + + The patient has already lost a lot of blood. + Der Patient hat bereits große Mengen Blut verloren. + El paciente ha perdido mucha sangre. + Pacjent stracił już dużą ilość krwi. + Pacient stratil dost krve. + Высокая кровопотеря + et a perdu beaucoup de sang. + Már sok vért vesztett. + O paciente já perdeu bastante sangue. + Il paziente ha perso molto sangue. + + + The patient has already lost some blood. + Der Patient hat bereits etwas Blut verloren. + El paciente ha perdido algo de sangre. + PAcjent stracił już trochę krwi. + Pacient stratil málo krve. + Умеренная кровопотеря. + et a perdu un peu de sang. + Már vesztett vért. + O paciente já perdeu algum sangue. + Il paziente ha perso poco sangue. + + + The patient hasn't lost any blood. + Der Patient hat noch kein Blut verloren. + El paciente no ha perdido sangre. + Pacjent nie stracił krwi. + Pacient nestratil žádnou krev. + Кровяное давление в норме. + et n'a pas perdu de sang. + Nem vesztett vért. + O paciente não perdeu sangue. + Il paziente non ha perso sangue. + + + The patient is on heavy painkillers + Der Patient steht unter starkem Schmerzmitteleinfluss + El paciente está fuertemente sedado. + Pacjent jest pod wpływem działania dużej ilości morfiny + Pacient je na těžkých sedativech + У пациента высокая доза морфина в крови. + Le patient est lourdement sédaté, + Erős fájdalomcsillapítót kapott. + O paciente está sob efeito de fortes analgésicos + Il paziente è sotto effetto di forti antidolorifici + + + The patient is on some morphine + Der Patient steht unter schwachem Schmerzmitteleinfluss + El paciente está levemente sedado con morfina. + Pacjent jest pod wpływem działania morfiny + Pacient má v sobě morfium + Пациенту введен морфин. + Le patient est sédaté, + Kapot morfiumot. + O paciente está sob efeito de morfina + Il paziente è un po' fatto di morfina + + + The patient isn't on painkillers + Der Patient steht nicht unter dem Einfluss von Schmerzmitteln + El paciente no está sedado. + Pacjent nie przyjmował środków przeciwbólowych + Pacient není na sedativech + Обезболивающие не вводились. + Le patient n'est pas sédaté, + Nem kapott fájdalomcsillapítót. + O paciente não está sob efeito de analgésicos + Il paziente non è sotto effetto di antidolorifici + + + and in heavy pain. + und hat starke Schmerzen. + y con dolor severo. + i odczuwa silny ból. + a v těžkých bolestech. + и испытывает сильную боль. + et souffre beaucoup. + és súlyos fájdalmai vannak. + e com fortes dores. + e lamenta molto dolore. + + + and in light pain. + und hat leichte Schmerzen. + y con dolor leve. + i odczuwa lekki ból. + a v lehkých bolestech. + и испытывает легкую боль. + et souffre légèrement. + és enyhe fájdalmai vannak. + e com leves dores. + e lamenta poco dolore. + + + and not in pain. + und hat keine Schmerzen. + y sin dolor. + i nie odczuwa żadnego bólu. + a nemá bolesti. + не испытывает боли. + et ne souffre pas. + és nincsenek fájdalmai. + e sem dores. + e non lamenta dolore. + + + You are not trained to do that. + Dazu bist du nicht ausgebildet. + No estás entrenado para hacer eso. + Nie zostałeś przeszkolony aby to zrobić. + Na to nemáš dostatečné schopnosti. + Вы не умеете это делать. + Tu n'es pas formé pour ça. + Erre nem vagy kiképezve. + Você não está qualificado para fazer isto. + Non sei preparato per farlo. + + + is giving you morphine. + gibt dir Morphium. + está inyectandote morfina. + t'injecte de la morphine. + podaje Tobie morfinę. + morfiumot ad neked. + ti dává morfin. + está lhe dando morfina. + ti sta iniettando la morfina. + даёт вам морфин. + + + Reopen medical menu after treatment + Sanitätsmenü nach Behandlung öffnen + Reabrir el menú médico después de tratar + Orvosi menü újranyitása ellátás után + Po ošetření znovu otevřít zdravotnické menu + Otwórz ponownie menu medyczne po zakończeniu akcji leczenia + Réouvrir le menu médical après les soins + Reabrir menu médico após tratamento + Riapri il menù medico dopo il trattamento + По завершению лечения, снова открыть меню.. + + + You don't have the required item anymore. + Du hast das benötigte Material nicht mehr. + No tienes mas del objeto requerido. + Nie posiadasz już wymaganego przedmiotu + Tu n'as plus le matériel nécessaire. + Už nemáš potřebný předmět. + Non hai più l'oggetto richiesto + Você não possui mais o item médico requerido. + Nem rendelkezel a szükséges eszközzel. + У вас больше нет требующихся предметов. + + + Taking the patient's %1 ... + %1 des Patienten wird benutzt ... + Cogiendo al paciente %1... + Pobrano od pacjenta: %1 ... + Prendre %1 ... du patient + Beru pacientův %1 ... + Sto prendendo un %1 dal paziente ... + Pegando %1 do paciente ... + Elveszed a páciens ... + Используем %1 пациента ... + + + %1 is using your %2 ... + %1 benutzt dein(e) %2 ... + %1 está usando tu %2... + %1 pobrał od Ciebie %2 ... + %1 utilise ton %2 ... + %1 používá tvůj %2 ... + %1 sta usando il tuo %1 ... + %1 está usando seu %2 ... + %1 használja a %2 ... + %1 использует ваш %2 ... + + + Patient has no %1, using yours ... + %1 beim Patienten nicht vorhanden, eigenes Material wird genutzt ... + El paciente no tiene %1, usando el tuyo... + %1 nie znajduje się w ekwipunku pacjenta, używanie własnych zasobów ... + Le patient n'a pas de %1, tu utilises ton matériel ... + Pacient nemá žádný %1, používám vlastní ... + Il paziente non ha nessun %1, userai il tuo ... + O paciente não possui %1, usando o seu ... + A páciensnek nincs %1, a sajátodat használod ... + % 1 отсутствует в инвентаре пациента, используем собственный ... + + + Alternative Pain Effect + Alternativer Schmerzeffekt + Efecto de dolor alternativo + Alternativ fájdalomeffektus + Alternatywny efekt bólu + Alternativní efekt bolesti + Альтернативный эффект боли + + + This is not possible here. + Das ist hier nicht möglich. + Esto no es posible aquí. + Ezt nem lehet itten. + Nie możesz tego zrobić tutaj. + Zde to není možné. + Вы не можете сделать это здесь. + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Movement/UI/IconFatigue_ca.paa b/TO_MERGE/agm/Movement/UI/IconFatigue_ca.paa new file mode 100644 index 0000000000..c1cf3fb92f Binary files /dev/null and b/TO_MERGE/agm/Movement/UI/IconFatigue_ca.paa differ diff --git a/TO_MERGE/agm/Movement/clientInit.sqf b/TO_MERGE/agm/Movement/clientInit.sqf new file mode 100644 index 0000000000..e7d39b60f9 --- /dev/null +++ b/TO_MERGE/agm/Movement/clientInit.sqf @@ -0,0 +1,4 @@ +// by commy2 + +//0 spawn compile preprocessFileLineNumbers "\AGM_Movement\fatigue.sqf"; +0 spawn compile preprocessFileLineNumbers "\AGM_Movement\showWeight.sqf"; diff --git a/TO_MERGE/agm/Movement/config.cpp b/TO_MERGE/agm/Movement/config.cpp new file mode 100644 index 0000000000..689d482a2e --- /dev/null +++ b/TO_MERGE/agm/Movement/config.cpp @@ -0,0 +1,223 @@ +// PATCH CONFIG +class CfgPatches { + class AGM_Movement { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.10; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi", "Tachii"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Movement { + class AGM_Movement { + file = "AGM_Movement\functions"; + class blinking; + class canClimb; + class climb; + class fatigueModule; + class heartbeat; + class getWeight; + class handleClimb; + class recoil; + class stumble; + class vision; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Movement { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Movement\clientInit.sqf'"; + }; +}; + +class AGM_Core_Default_Keys { + class climb { + displayName = "$STR_AGM_Movement_Climb"; + condition = "_player == _vehicle"; + statement = "[_player] call AGM_Movement_fnc_climb"; + key = 47; + shift = 0; + control = 1; + alt = 0; + }; +}; + +/*class CfgInventoryGlobalVariable { + maxSoldierLoad = 1200; +};*/ + +class CfgFatigue { + MinValue1 = 0.2; + MinValue2 = 0.8; + NormalRunSpeed = 7.2; + TiredRunSpeedLimit = 0.8; + FrequencyMin = 0.2; + FrequencyMax = 1.0; + TotalLoadCoef = 1.1; + MaxDuty = 10; +}; + +class CfgSounds { + class AGM_Heartbeat { + name = "AGM_Heartbeat"; + sound[] = {"AGM_Movement\sounds\heartbeat.ogg",1,1}; + titles[] = {}; + }; +}; + +class AGM_Core_Options { + class useImperial { + displayName = "$STR_AGM_Movement_UseImperial"; + default = 0; + }; +}; + +// leaving this for compatibility +class CfgVehicles { + class Module_F; + class AGM_ModuleFatigue: Module_F { + author = "AGM Team"; + category = "AGM"; + displayName = "Fatigue System"; + function = "AGM_Movement_fnc_fatigueModule"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Movement\UI\IconFatigue_ca.paa"; + class Arguments { + class CoefFatigue { + displayName = "Getting Tired Coef."; + description = "Multiplier for the rate of getting tired. Default: 1"; + defaultValue = 1; + }; + class CoefRecover { + displayName = "Recover Coef."; + description = "Multiplier for the time to rest after getting tired. Default: 1"; + defaultValue = 1; + }; + }; + }; +}; + +class CfgMovesBasic { + class ManActions { + AGM_Climb = "AGM_Climb"; + }; + + class Actions { + class RifleStandActionsNoAdjust; + class RifleLowStandActionsNoAdjust; + + // WEAPON RAISED - RUNNING + class RifleStandActionsRunF: RifleStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + class RifleStandActionsRunFL: RifleStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + class RifleStandActionsRunFR: RifleStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + // WEAPON RAISED - SPRINTING + class RifleStandEvasiveActionsF: RifleStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + class RifleStandEvasiveActionsFL: RifleStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + class RifleStandEvasiveActionsFR: RifleStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + // WEAPON LOWERED - RUNNING + class RifleLowStandActionsRunF: RifleLowStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + class RifleLowStandActionsRunFL: RifleLowStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + class RifleLowStandActionsRunFR: RifleLowStandActionsNoAdjust { + getOver = "AovrPercMrunSrasWrflDf"; + }; + }; +}; + +class CfgMovesMaleSdr: CfgMovesBasic { + class StandBase; + class States { + // better slow walk with lowered rifle animation + class AmovPercMstpSrasWrflDnon; + class AmovPercMrunSrasWrflDf: AmovPercMstpSrasWrflDnon { + InterpolateTo[] = {"AovrPercMrunSrasWrflDf",0.22,"AmovPercMrunSlowWrflDf",0.025,"AmovPercMwlkSrasWrflDf",0.025,"AmovPknlMrunSrasWrflDf",0.03,"AmovPercMrunSlowWrflDf_AmovPpneMstpSrasWrflDnon",0.02,"AmovPercMevaSrasWrflDf",0.025,"Unconscious",0.01,"AmovPercMtacSrasWrflDf",0.02,"AmovPercMrunSrasWrflDfl",0.02,"AmovPercMrunSrasWrflDfl_ldst",0.02,"AmovPercMrunSrasWrflDfr",0.02,"AmovPercMrunSrasWrflDfr_ldst",0.02,"AmovPercMstpSrasWrflDnon",0.02,"AmovPercMrunSrasWrflDl",0.02,"AmovPercMrunSrasWrflDbl",0.02,"AmovPercMrunSrasWrflDb",0.02,"AmovPercMrunSrasWrflDbr",0.02,"AmovPercMrunSrasWrflDr",0.02,"AmovPknlMstpSlowWrflDnon_relax",0.1,"AmovPercMrunSrasWrflDf_ldst",0.02,"AmovPercMrunSrasWrflDf",0.02}; + }; + + class AmovPercMstpSlowWrflDnon; + class AmovPercMwlkSlowWrflDf: AmovPercMstpSlowWrflDnon { + speed = 0.3; //0.206897; + file = "\A3\anims_f\Data\Anim\Sdr\Mov\Erc\Wlk\Low\Rfl\AmovPercMwlkSlowWrflDf_ver2"; + leftHandIKCurve[] = {1}; + }; + class AmovPercMwlkSlowWrflDfl: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + class AmovPercMwlkSlowWrflDfr: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + class AmovPercMwlkSlowWrflDb: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + class AmovPercMwlkSlowWrflDbl: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + class AmovPercMwlkSlowWrflDbr: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + class AmovPercMwlkSlowWrflDl: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + class AmovPercMwlkSlowWrflDr: AmovPercMwlkSlowWrflDf { + leftHandIKCurve[] = {}; + }; + + // enable optics in prone left and right stance + class AidlPpneMstpSrasWrflDnon_G0S; + class AadjPpneMstpSrasWrflDleft: AidlPpneMstpSrasWrflDnon_G0S { + enableOptics = 1; + }; + class AadjPpneMstpSrasWrflDright: AidlPpneMstpSrasWrflDnon_G0S { + enableOptics = 1; + }; + class AadjPpneMstpSrasWrflDup; + class AadjPpneMstpSrasWrflDdown: AadjPpneMstpSrasWrflDup { + enableOptics = 1; + }; + + class AidlPpneMstpSrasWpstDnon_G0S; + class AadjPpneMstpSrasWpstDleft: AidlPpneMstpSrasWpstDnon_G0S { + enableOptics = 2; + }; + class AadjPpneMstpSrasWpstDright: AidlPpneMstpSrasWpstDnon_G0S { + enableOptics = 2; + }; + class AadjPpneMstpSrasWpstDup; + class AadjPpneMstpSrasWpstDdown: AadjPpneMstpSrasWpstDup { + enableOptics = 2; + }; + + // climb animation + class AmovPercMstpSnonWnonDnon: StandBase { + ConnectTo[] += {"AGM_Climb",0.02}; + }; + + class AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium; + class AGM_Climb: AmovPercMstpSnonWnonDnon_AcrgPknlMstpSnonWnonDnon_getInMedium { + canReload = 0; + forceAim = 1; + }; + }; +}; diff --git a/TO_MERGE/agm/Movement/fatigue.sqf b/TO_MERGE/agm/Movement/fatigue.sqf new file mode 100644 index 0000000000..fc248a17ed --- /dev/null +++ b/TO_MERGE/agm/Movement/fatigue.sqf @@ -0,0 +1,55 @@ +// by commy2 + +#define THRESHOLD_1 0.8 +#define THRESHOLD_2 0.9 +#define THRESHOLD_3 0.99 + +// init onEachFrame EH +AGM_UpdatePlayerFatigue_EHID = ["AGM_UpdatePlayerFatigue", "onEachFrame", { + _player = AGM_player; + + // calc new fatigue + _fatigue = getFatigue _player; + _fatigueOld = _player getVariable ["AGM_Fatigue", getFatigue _player]; + + if (_fatigue > _fatigueOld) then { + _fatigue = _fatigueOld + (missionNamespace getVariable ["AGM_Fatigue_CoefFatigue", 1]) * (_fatigue - _fatigueOld) max 0 min 1; + } else { + _fatigue = _fatigueOld - (missionNamespace getVariable ["AGM_Fatigue_CoefRecover", 1]) * (_fatigueOld - _fatigue) max 0 min 1; + }; + + _player setFatigue _fatigue; + _player setVariable ["AGM_Fatigue", _fatigue]; + + ["Fatigue", _player, {getFatigue _this}] call AGM_Debug_fnc_log; +}] call BIS_fnc_addStackedEventHandler; + +// init script ehids +_handleRecoil = scriptNull; +_handleBlinking = scriptNull; +_handleHeartbeat = scriptNull; +_handleStumble = scriptNull; + +// apply fatigue effects +while {true} do { + _fatigue = getFatigue AGM_player; + + if (_fatigue > THRESHOLD_1) then { + if (scriptDone _handleHeartbeat) then { + _handleHeartbeat = call AGM_Movement_fnc_heartbeat; + }; + if (_fatigue > THRESHOLD_2) then { + if (scriptDone _handleBlinking) then { + _handleBlinking = call AGM_Movement_fnc_blinking; + }; + + if (_fatigue > THRESHOLD_3) then { + if (scriptDone _handleStumble) then { + _handleStumble = call AGM_Movement_fnc_stumble; + }; + }; + }; + }; + + sleep 0.5; +}; diff --git a/TO_MERGE/agm/Movement/functions/fn_blinking.sqf b/TO_MERGE/agm/Movement/functions/fn_blinking.sqf new file mode 100644 index 0000000000..6d28e87e66 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_blinking.sqf @@ -0,0 +1,23 @@ +// by commy2 + +private "_script_handle"; + +_script_handle = _this spawn { + if (!isTouchingGround player) exitWith {}; + + _ppEffect = ppEffectCreate ["ColorCorrections", 1240]; + _ppEffect ppEffectEnable true; + _ppEffect ppEffectForceInNVG true; + _ppEffect ppEffectAdjust [0, -1, 0, [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]; + _ppEffect ppEffectCommit 0.2; + sleep 0.2; + + _ppEffect ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [1, 1, 1, 1], [0.5, 0.5, 0.5, 0.5]]; + _ppEffect ppEffectCommit 0.2; + sleep 0.2; + + _ppEffect ppEffectEnable false; + ppEffectDestroy _ppEffect; + sleep 2 + random 2; +}; +_script_handle diff --git a/TO_MERGE/agm/Movement/functions/fn_canClimb.sqf b/TO_MERGE/agm/Movement/functions/fn_canClimb.sqf new file mode 100644 index 0000000000..271a26e221 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_canClimb.sqf @@ -0,0 +1,24 @@ +// by commy2 + +private ["_unit", "_pos", "_dir"]; + +_unit = _this select 0; + +_pos = getPosASL _unit; +_dir = getDir _unit; +_dir = [sin _dir, cos _dir, 0]; + +private ["_checkPos0beg", "_checkPos0end", "_checkPos1beg", "_checkPos1end"]; + +_checkPos0beg = _pos vectorAdd [0, 0, 1.0]; +_checkPos0end = _checkPos0beg vectorAdd (_dir vectorMultiply 1.3); + +_checkPos1beg = _pos vectorAdd [0, 0, 1.5]; +_checkPos1end = _checkPos1beg vectorAdd _dir; + +/* +drawLine3D [ASLToATL _checkPos0beg, ASLToATL _checkPos0end, [1,0,0,1]]; +drawLine3D [ASLToATL _checkPos1beg, ASLToATL _checkPos1end, [1,0,0,1]]; +*/ + +lineIntersects [_checkPos0beg, _checkPos0end] && {!(lineIntersects [_checkPos1beg, _checkPos1end])} diff --git a/TO_MERGE/agm/Movement/functions/fn_climb.sqf b/TO_MERGE/agm/Movement/functions/fn_climb.sqf new file mode 100644 index 0000000000..05f7e61606 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_climb.sqf @@ -0,0 +1,21 @@ +// by commy2 + +private "_unit"; + +_unit = _this select 0; + +if !([_unit] call AGM_Movement_fnc_canClimb) exitWith { + [localize "STR_AGM_Movement_CanNotClimb"] call AGM_Core_fnc_displayTextStructured; +}; + +if !(_unit getVariable ["AGM_isClimbInit", false]) then { + _unit addEventHandler ["AnimDone", { + if (local (_this select 0) && {_this select 1 == "AGM_Climb"}) then {_this call AGM_Movement_fnc_handleClimb}; + }]; + + _unit setVariable ["AGM_isClimbInit", true]; +}; + +[_unit] call AGM_Core_fnc_fixLoweredRifleAnimation; +[_unit, "AmovPercMstpSnonWnonDnon", 2] call AGM_Core_fnc_doAnimation; +[_unit, "AGM_Climb", 0] call AGM_Core_fnc_doAnimation; diff --git a/TO_MERGE/agm/Movement/functions/fn_fatigueModule.sqf b/TO_MERGE/agm/Movement/functions/fn_fatigueModule.sqf new file mode 100644 index 0000000000..9e9ab34759 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_fatigueModule.sqf @@ -0,0 +1,14 @@ +// by commy2 + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +AGM_Fatigue_Module = true; + +AGM_Fatigue_CoefFatigue = parseNumber (_logic getVariable "CoefFatigue"); +AGM_Fatigue_CoefRecover = parseNumber (_logic getVariable "CoefRecover"); + +diag_log text "[AGM]: Fatigue Module Initialized."; diff --git a/TO_MERGE/agm/Movement/functions/fn_getWeight.sqf b/TO_MERGE/agm/Movement/functions/fn_getWeight.sqf new file mode 100644 index 0000000000..db9b286422 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_getWeight.sqf @@ -0,0 +1,17 @@ +// by commy2 + +#define FACTOR_POUND_TO_KILOGRAMM 1/2.2046 + +private ["_unit", "_weight"]; + +_unit = _this select 0; + +_weight = loadAbs _unit * 0.1; + +if (profileNamespace getVariable ["AGM_useImperial", false]) then { + _weight = format ["%1lb", (round (_weight * 100)) / 100]; +} else { + _weight = format ["%1kg", (round (_weight * FACTOR_POUND_TO_KILOGRAMM * 100)) / 100]; +}; + +_weight diff --git a/TO_MERGE/agm/Movement/functions/fn_handleClimb.sqf b/TO_MERGE/agm/Movement/functions/fn_handleClimb.sqf new file mode 100644 index 0000000000..3501fbee99 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_handleClimb.sqf @@ -0,0 +1,13 @@ +// by commy2 + +private ["_unit", "_anim", "_pos"]; + +_unit = _this select 0; +_anim = _this select 1; + +_pos = _unit modelToWorld (_unit selectionPosition "camera"); +[_unit, "AmovPknlMstpSnonWnonDnon", 2] call AGM_Core_fnc_doAnimation; + +_pos = _pos vectorDiff (_unit selectionPosition "camera"); + +_unit setPos _pos; diff --git a/TO_MERGE/agm/Movement/functions/fn_heartbeat.sqf b/TO_MERGE/agm/Movement/functions/fn_heartbeat.sqf new file mode 100644 index 0000000000..260d814def --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_heartbeat.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private "_script_handle"; + +_script_handle = _this spawn { + playSound "AGM_Heartbeat"; + sleep 8; +}; +_script_handle diff --git a/TO_MERGE/agm/Movement/functions/fn_recoil.sqf b/TO_MERGE/agm/Movement/functions/fn_recoil.sqf new file mode 100644 index 0000000000..342453cf6d --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_recoil.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private "_script_handle"; + +_script_handle = _this spawn { + _recoilFactor = _this select 0; + _recoverThreshold = _this select 1; + + player setUnitRecoilCoefficient (_recoilFactor * unitRecoilCoefficient player); + + waitUntil {getFatigue player < _recoverThreshold}; + + player setUnitRecoilCoefficient (_recoilFactor / unitRecoilCoefficient player); +}; +_script_handle diff --git a/TO_MERGE/agm/Movement/functions/fn_stumble.sqf b/TO_MERGE/agm/Movement/functions/fn_stumble.sqf new file mode 100644 index 0000000000..7ca8a28bbf --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_stumble.sqf @@ -0,0 +1,16 @@ +// by commy2 + +_this spawn { + if (isTouchingGround player) then { + _animation = switch (currentWeapon player) do { + case "" : {"AmovPpneMstpSnonWnonDnon"}; + case (primaryWeapon player) : {"AmovPpneMstpSrasWrflDnon"}; + case (secondaryWeapon player) : {"AmovPpneMstpSrasWrflDnon"}; + case (handgunWeapon player) : {"AmovPpneMstpSrasWpstDnon"}; + case (binocular player) : {"AmovPpneMstpSrasWbinDnon"}; + default {"AmovPpneMstpSnonWnonDnon"}; + }; + [player, _animation] call AGM_Core_fnc_doAnimation; + }; + sleep 6; +} diff --git a/TO_MERGE/agm/Movement/functions/fn_vision.sqf b/TO_MERGE/agm/Movement/functions/fn_vision.sqf new file mode 100644 index 0000000000..79a88df785 --- /dev/null +++ b/TO_MERGE/agm/Movement/functions/fn_vision.sqf @@ -0,0 +1,18 @@ +// by commy2 + +private "_script_handle"; + +_script_handle = _this spawn { + _ppEffect = ppEffectCreate ["radialBlur", 1241]; + + _ppEffect ppEffectEnable true; + _ppEffect ppEffectForceInNVG true; + _ppEffect ppEffectAdjust [0.01, 0.01, 0.1, 0.1]; + _ppEffect ppEffectCommit 0; + + sleep 0.5; + + _ppEffect ppEffectEnable false; + ppEffectDestroy _ppEffect; +}; +_script_handle diff --git a/TO_MERGE/agm/Movement/showWeight.sqf b/TO_MERGE/agm/Movement/showWeight.sqf new file mode 100644 index 0000000000..2fcdff7b05 --- /dev/null +++ b/TO_MERGE/agm/Movement/showWeight.sqf @@ -0,0 +1,10 @@ +//by commy2 + +while {true} do { + waitUntil {!isNull (findDisplay 602)}; + waitUntil { + _player = AGM_player; + findDisplay 602 displayCtrl 111 ctrlSetText format ["%1 - %2 %3", [_player] call AGM_Core_fnc_getName, localize "STR_AGM_Movement_Weight", [_player] call AGM_Movement_fnc_getWeight]; + isNull (findDisplay 602) + }; +}; diff --git a/TO_MERGE/agm/Movement/sounds/Heartbeat.ogg b/TO_MERGE/agm/Movement/sounds/Heartbeat.ogg new file mode 100644 index 0000000000..2e370a566e Binary files /dev/null and b/TO_MERGE/agm/Movement/sounds/Heartbeat.ogg differ diff --git a/TO_MERGE/agm/Movement/stringtable.xml b/TO_MERGE/agm/Movement/stringtable.xml new file mode 100644 index 0000000000..505a013950 --- /dev/null +++ b/TO_MERGE/agm/Movement/stringtable.xml @@ -0,0 +1,46 @@ + + + + + + Show weight in lb + Zeige Gewicht in Pfund + Mostrar peso en libras + Afficher le poids en lb + Pokaż ciężar w funtach + Zobrazit váhu v lb + Mostra peso in libbre + Mostrar peso em libras + Súly megjelenítése fontban. + Показать вес в фунтах + + + Weight: + Gewicht: + Peso: + Poids: + Waga: + Váha: + Peso: + Peso: + Súly: + Вес: + + + Climb + Klettern + Wspinaczka + Trepar + Vylézt + Подняться + + + Can't climb here + Kann hier nicht klettern + Nie możesz wspiąć się tutaj + No se puede trepar aquí + Zde není možné vylézt + Не можете подняться здесь + + + \ No newline at end of file diff --git a/TO_MERGE/agm/NameTags/RscTitles.hpp b/TO_MERGE/agm/NameTags/RscTitles.hpp new file mode 100644 index 0000000000..32ea8d5c3d --- /dev/null +++ b/TO_MERGE/agm/NameTags/RscTitles.hpp @@ -0,0 +1,41 @@ +#define AGM_CrewInfo_TextIDC 11123 + +#define CT_STRUCTURED_TEXT 13 +#define ST_LEFT 0 + +class RscTitles { + titles[]={"AGM_CrewInfo_dialog"}; + class AGM_CrewInfo_dialog { + idd = -1; + movingEnable = 1; + duration = 1; + fadein = 0; + fadeout = 999999; + name = "AGM_CrewInfo_dialog"; + controlsBackground[] = {"AGM_CrewInfo_text"}; + onLoad = "uiNamespace setVariable ['AGM_CrewInfo_dialog', _this select 0]"; + onUnload = "uiNamespace setVariable ['AGM_CrewInfo_dialog', objNull]"; + + class AGM_CrewInfo_text { + idc = AGM_CrewInfo_TextIDC; + type = CT_STRUCTURED_TEXT; + style = ST_LEFT; + x = SafeZonex + SafezoneW - 0.31; + y = SafeZoneY + SafeZoneH*0.4; + w = 0.3; + h = 0.6; + size = 0.018; + colorBackground[] = { 0, 0, 0, 0 }; + colortext[] = { + "(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])" + }; + text=""; + class Attributes { + align = right; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/NameTags/UI/IconNameTags_ca.paa b/TO_MERGE/agm/NameTags/UI/IconNameTags_ca.paa new file mode 100644 index 0000000000..a6c50e22b9 Binary files /dev/null and b/TO_MERGE/agm/NameTags/UI/IconNameTags_ca.paa differ diff --git a/TO_MERGE/agm/NameTags/UI/icon_position_ffv.paa b/TO_MERGE/agm/NameTags/UI/icon_position_ffv.paa new file mode 100644 index 0000000000..e05174c8f5 Binary files /dev/null and b/TO_MERGE/agm/NameTags/UI/icon_position_ffv.paa differ diff --git a/TO_MERGE/agm/NameTags/clientInit.sqf b/TO_MERGE/agm/NameTags/clientInit.sqf new file mode 100644 index 0000000000..aa325bbd7e --- /dev/null +++ b/TO_MERGE/agm/NameTags/clientInit.sqf @@ -0,0 +1,60 @@ +// by commy2 and CAA-Picard + +if (!hasInterface) exitWith {}; + +AGM_NameTags_ShowNamesTime = -10; + +addMissionEventHandler ["Draw3D", { + if !(profileNamespace getVariable ["AGM_showPlayerNames", true]) exitWith {}; + + _player = AGM_player; + if (profileNamespace getVariable ["AGM_showPlayerNamesOnlyOnCursor", true]) then { + _target = cursorTarget; + _target = if (_target in allUnitsUAV) then {objNull} else {effectiveCommander _target}; + + if (!isNull _target && {side group _target == playerSide} && {_target != _player} && {isPlayer _target || {AGM_NameTags_ShowNamesForAI}} && {!(_target getVariable ["AGM_hideName", false])}) then { + _distance = _player distance _target; + _alpha = ((1 - 0.2 * (_distance - AGM_NameTags_PlayerNamesViewDistance)) min 1) * AGM_NameTags_PlayerNamesMaxAlpha; + if (profileNamespace getVariable ["AGM_showPlayerNamesOnlyOnKeyPress", false]) then { + _alpha = _alpha min (1 - (time - AGM_NameTags_ShowNamesTime - 1)); + }; + [_player, _target, _alpha, _distance * 0.026] call AGM_NameTags_fnc_drawNameTagIcon; + }; + } else { + _pos = positionCameraToWorld [0, 0, 0]; + _targets = _pos nearObjects ["Man", AGM_NameTags_PlayerNamesViewDistance + 5]; + + if (!surfaceIsWater _pos) then { + _pos = ATLtoASL _pos; + }; + _pos2 = positionCameraToWorld [0, 0, 1]; + if (!surfaceIsWater _pos2) then { + _pos2 = ATLtoASL _pos2; + }; + _vecy = _pos2 vectorDiff _pos; + + { + _target = if (_x in allUnitsUAV) then {objNull} else {effectiveCommander _x}; + + if (!isNull _target && {side group _target == playerSide} && {_target != _player} && {isPlayer _target || {AGM_NameTags_ShowNamesForAI}} && {!(_target getVariable ["AGM_hideName", false])}) then { + _relPos = (visiblePositionASL _target) vectorDiff _pos; + _distance = vectorMagnitude _relPos; + _projDist = _relPos vectorDistance (_vecy vectorMultiply (_relPos vectorDotProduct _vecy)); + + _alpha = ((1 - 0.2 * (_distance - AGM_NameTags_PlayerNamesViewDistance)) min (1 - 0.15 * (_projDist * 5 - _distance - 3)) min 1) * AGM_NameTags_PlayerNamesMaxAlpha; + + if (profileNamespace getVariable ["AGM_showPlayerNamesOnlyOnKeyPress", false]) then { + _alpha = _alpha min (1 - (time - AGM_NameTags_ShowNamesTime - 1)); + }; + + // Check if there is line of sight + if (_alpha > 0) then { + if (lineIntersects [_pos, (visiblePositionASL _target) vectorAdd [0,0,1], vehicle _player, _target]) then { + _alpha = 0; + }; + }; + [_player, _target, _alpha, _distance * 0.026] call AGM_NameTags_fnc_drawNameTagIcon; + }; + } forEach _targets; + }; +}]; diff --git a/TO_MERGE/agm/NameTags/config.cpp b/TO_MERGE/agm/NameTags/config.cpp new file mode 100644 index 0000000000..aa0be72b5e --- /dev/null +++ b/TO_MERGE/agm/NameTags/config.cpp @@ -0,0 +1,143 @@ +class CfgPatches { + class AGM_NameTags { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "CAA-Picard"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_NameTags { + class AGM_NameTags { + file = "\AGM_NameTags\functions"; + class drawNameTagIcon; + class moduleNameTags; + }; + }; + class AGM_CrewInfo { + class AGM_CrewInfo { + file = "AGM_NameTags\functions\CrewInfo"; + class canShow; + class doShow; + class getVehicleData; + class onMouseZChanged; + class setText; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_NameTags { + clientInit = "call compile preprocessFileLineNumbers '\AGM_NameTags\clientInit.sqf'"; + }; +}; + +class AGM_Core_Default_Keys { + class showNames { + displayName = "$STR_AGM_NameTags_ShowNames"; + condition = "true"; + statement = "AGM_NameTags_ShowNamesTime = time; if (call AGM_CrewInfo_fnc_canShow) then {call AGM_CrewInfo_fnc_doShow;};"; + key = 29; + shift = 0; + control = 0; + alt = 0; + allowHolding = 1; + }; +}; + +class AGM_Core_Options { + class showPlayerNames { + displayName = "$STR_AGM_NameTags_ShowPlayerNames"; + default = 1; + }; + class showPlayerNamesOnlyOnCursor { + displayName = "$STR_AGM_NameTags_ShowPlayerNamesOnlyOnCursor"; + default = 1; + }; + class showPlayerNamesOnlyOnKeyPress { + displayName = "$STR_AGM_NameTags_ShowPlayerNamesOnlyOnKeyPress"; + default = 0; + }; + class showPlayerRanks { + displayName = "$STR_AGM_NameTags_ShowPlayerRanks"; + default = 1; + }; + class showVehicleCrewInfo { + displayName = "$STR_AGM_CrewInfo_ShowVehicleCrewInfo"; + default = 1; + }; +}; + +class AGM_Parameters_Numeric { + AGM_NameTags_PlayerNamesViewDistance = 5; + AGM_NameTags_PlayerNamesMaxAlpha = 0.8; + AGM_NameTags_CrewInfoVisibility = 0; +}; +class AGM_Parameters_Boolean { + AGM_NameTags_ShowNamesForAI = 0; +}; + +class CfgVehicles { + class Module_F; + class AGM_ModuleNameTags: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Name Tags"; + function = "AGM_NameTags_fnc_moduleNameTags"; + scope = 2; + isGlobal = 1; + icon = "\AGM_NameTags\UI\IconNameTags_ca.paa"; + class Arguments { + class PlayerNamesViewDistance { + displayName = "Player Names View Dist."; + description = "Distance in meters at which player names are shown. Default: 5"; + typeName = "NUMBER"; + defaultValue = 5; + }; + class ShowNamesForAI { + displayName = "Show name tags for AI?"; + description = "Show the name and rank tags for friendly AI units? Default: No"; + typeName = "BOOL"; + class values { + class Yes { + name = "Yes"; + value = 1; + }; + class No { + default = 1; + name = "No"; + value = 0; + }; + }; + }; + class Visibility { + displayName = "Visibility of crew info"; + description = "Forces visibility of vehicle crew info, or by default allows players to choose it on their own. Default: Do Not Force"; + typeName = "INT"; + class values { + class DoNotForce { + default = 1; + name = "Do Not Force"; + value = 0; + }; + class ForceShow { + name = "Force Show"; + value = 1; + }; + class ForceHide { + name = "Force Hide"; + value = -1; + }; + }; + }; + }; + }; +}; + +#include diff --git a/TO_MERGE/agm/NameTags/functions/CrewInfo/common.sqf b/TO_MERGE/agm/NameTags/functions/CrewInfo/common.sqf new file mode 100644 index 0000000000..aa80cdfa8d --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/CrewInfo/common.sqf @@ -0,0 +1,24 @@ +/* + Author: aeroson + + Description: + Images, index in images and order of roles. + Defined number also implies order, lower number shows more on top of the list. +*/ + +#define PILOT 0 +#define DRIVER 1 +#define COPILOT PILOT +#define COMMANDER 2 +#define GUNNER 3 +#define FFV 4 +#define CARGO 5 + +#define ROLE_IMAGES [ \ + "a3\ui_f\data\IGUI\Cfg\Actions\getinpilot_ca.paa", \ + "a3\ui_f\data\IGUI\Cfg\Actions\getindriver_ca.paa", \ + "a3\ui_f\data\IGUI\Cfg\Actions\getincommander_ca.paa", \ + "a3\ui_f\data\IGUI\Cfg\Actions\getingunner_ca.paa", \ + "AGM_NameTags\UI\icon_position_ffv.paa", \ + "a3\ui_f\data\IGUI\Cfg\Actions\getincargo_ca.paa" \ +] diff --git a/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_canShow.sqf b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_canShow.sqf new file mode 100644 index 0000000000..8e3dadedec --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_canShow.sqf @@ -0,0 +1,26 @@ +/* + Author: aeroson + + Description: + Might be called several times a second + + Parameters: + None + + Returns: + true if CrewInfo can be shown, false otherwise +*/ + +private["_player"]; + + +_player = AGM_player; + +// AGM_NameTags_ShowVehicleCrewInfo: -1 force NO, 0 doesnt care, 1 force YES + +vehicle _player != _player && +{ + (AGM_NameTags_CrewInfoVisibility == 1) || + (AGM_NameTags_CrewInfoVisibility != -1 && profileNamespace getVariable ["AGM_showVehicleCrewInfo", false]) +} && +{!(vehicle _player isKindOf "ParachuteBase")}; diff --git a/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_doShow.sqf b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_doShow.sqf new file mode 100644 index 0000000000..869cdb6fb7 --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_doShow.sqf @@ -0,0 +1,92 @@ +/* + Author: aeroson + + Description: + Shows the actual text and sets text the crew info + + Parameters: + None + + Returns: + Nothing +*/ + +#include "common.sqf" + +private["_roleImages", "_player", "_vehicle", "_type", "_config", "_text", "_data", "_isAir", "_turretUnits", "_turretRoles", "_index", "_roleType", "_unit", "_toShow"]; + + +_player = AGM_player; +_vehicle = vehicle _player; +_type = typeOf _vehicle; +_config = configFile >> "CfgVehicles" >> _type; +_text = format[" %2
", getText(_config>>"picture"), getText (_config >> "DisplayName")]; + + + +_data = [_type] call AGM_CrewInfo_fnc_getVehicleData; + +_isAir = _data select 0; +_data = _data select 1; + +_turretUnits = [_data, { _vehicle turretUnit (_x select 0) } ] call AGM_Core_fnc_map; +_turretRoles = [_data, { _x select 1 } ] call AGM_Core_fnc_map; + + +_roleType = CARGO; +_toShow = []; +{ + switch (_x) do { + case commander _vehicle: { + _roleType = COMMANDER; + }; + case gunner _vehicle: { + _roleType = GUNNER; + }; + case driver _vehicle: { + _roleType = if(_isAir) then { PILOT } else { DRIVER }; + }; + default { + _index = _turretUnits find _x; + if(_index !=-1 ) then { + _roleType = _turretRoles select _index; + } else { + _roleType = CARGO; + }; + }; + }; + _toShow pushBack [_x, _roleType]; +} forEach crew _vehicle; + + +_toShow = [ + _toShow, + [], + { + _x select 1 + }, + "ASCEND", + { + _unit = _x select 0; + alive _unit + } +] call BIS_fnc_sortBy; + + +_roleImages = ROLE_IMAGES; +{ + _unit = _x select 0; + _roleType = _x select 1; + _text = _text + format["%1
", [_unit] call AGM_Core_fnc_getName, _roleImages select _roleType]; +} forEach _toShow; + + +("AGM_CrewInfo_CrewInfo" call BIS_fnc_rscLayer) cutRsc ["AGM_CrewInfo_dialog", "PLAIN", 1, false]; + +terminate (missionNamespace getVariable ["AGM_CrewInfo_hideCrewInfoHandle", scriptNull]); +AGM_CrewInfo_hideCrewInfoHandle = 0 spawn { + sleep 2; + ("AGM_CrewInfo_CrewInfo" call BIS_fnc_rscLayer) cutFadeOut 2; +}; + +[_text] call AGM_CrewInfo_fnc_setText; diff --git a/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_getVehicleData.sqf b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_getVehicleData.sqf new file mode 100644 index 0000000000..d58c0ec458 --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_getVehicleData.sqf @@ -0,0 +1,123 @@ +/* + Author: aeroson + + Description: + Gathers and caches data needed by AGM_CrewInfo_fnc_doShow + What really does make difference for the engine is simulation of CfgAmmo + Priority of roles is: driver/pilot, gunner, copilot, commander, ffv, cargo + + Parameters: + None + + Returns: + [ + Is vehicle inherited from Air ? + Array categorizing each vehicle's turret + ] +*/ + +#include "common.sqf" + + + +private ["_type", "_varName", "_data"]; + +_type = _this select 0; + +_varName = format ["AGM_CrewInfo_Cache_%1", _type]; +_data = + (uiNamespace getVariable _varName); + +if (!isNil "_data") exitWith { + _data +}; + +_data = []; + + + +private ["_isAir", "_config", "_fnc_addTurret", "_fnc_addTurretUnit"]; + +_isAir = _type isKindOf "Air"; + +_fnc_addTurretUnit = { + + private ["_config", "_path", "_role", "_simulationEmpty", "_simulationLaserDesignate", "_simulationOther", "_magazine", "_ammo", "_simulation"]; + + _config = _this select 0; + _path = _this select 1; + _role = CARGO; + + _simulationEmpty = 0; + _simulationLaserDesignate = 0; + _simulationOther = 0; + { + { + _magazine = configFile >> "CfgMagazines" >> _x; + _ammo = configfile >> "CfgAmmo" >> getText (_magazine >> "ammo"); + _simulation = getText (_ammo >> "simulation"); + + if(_simulation=="") then { + _simulationEmpty = _simulationEmpty + 1; + } else { + if(_simulation=="laserDesignate") then { + _simulationLaserDesignate = _simulationLaserDesignate + 1; + } else { + _simulationOther = _simulationOther + 1; + }; + }; + + } forEach getArray (configfile >> "CfgWeapons" >> _x >> "magazines"); + } forEach getArray (_config >> "weapons"); + + if(_simulationOther>0) then { + _role = GUNNER; + }; + if (_role == CARGO && {getNumber (_config >> "isCopilot") == 1}) then { + _role = COPILOT; + }; + if (_role == CARGO && {_simulationLaserDesignate>0 || getNumber (_config >> "primaryObserver") == 1}) then { + _role = COMMANDER; + }; + if (_role == CARGO && {getNumber (_config >> "isPersonTurret") == 1}) then { + _role = FFV; + }; + + _data pushBack [_path, _role]; + +}; + + +_fnc_addTurret = { + + private ["_config", "_path", "_count", "_offset", "_index", "_turretPath", "_turretConfig"]; + + _config = _this select 0; + _path = _this select 1; + + _config = _config >> "Turrets"; + _count = count _config; + + _offset = 0; + + for "_index" from 0 to (_count - 1) do { + _turretPath = _path + [_index - _offset]; + _turretConfig = _config select _index; + if (isClass _turretConfig) then { + [_turretConfig, _turretPath] call _fnc_addTurretUnit; + [_turretConfig, _turretPath] call _fnc_addTurret; + } else { + _offset = _offset + 1; + }; + + }; + +}; + + +_config = configFile >> "CfgVehicles" >> _type; +[_config, []] call _fnc_addTurret; + +_data = [_isAir, _data]; +uiNamespace setVariable [_varName, _data]; + +_data diff --git a/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_onMouseZChanged.sqf b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_onMouseZChanged.sqf new file mode 100644 index 0000000000..92cb5255c3 --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_onMouseZChanged.sqf @@ -0,0 +1,16 @@ +/* + Author: aeroson + + Description: + Callback for mouse wheel change + + Parameters: + None + + Returns: + Nothing +*/ + +if(call AGM_CrewInfo_fnc_canShow) then { + call AGM_CrewInfo_fnc_doShow; +}; diff --git a/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_setText.sqf b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_setText.sqf new file mode 100644 index 0000000000..7c31b910c8 --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/CrewInfo/fn_setText.sqf @@ -0,0 +1,23 @@ +/* + Author: aeroson + + Description: + Sets the text on the dialog + + Parameters: + None + + Returns: + Nothing +*/ + +#define AGM_CrewInfo_TextIDC 11123 + +private["_text", "_ctrl"]; + +disableSerialization; + +_text = _this select 0; +_ctrl = (uiNamespace getVariable "AGM_CrewInfo_dialog") displayCtrl AGM_CrewInfo_TextIDC; +_ctrl ctrlSetStructuredText parseText _text; +_ctrl ctrlCommit 0; diff --git a/TO_MERGE/agm/NameTags/functions/fn_drawNameTagIcon.sqf b/TO_MERGE/agm/NameTags/functions/fn_drawNameTagIcon.sqf new file mode 100644 index 0000000000..fd9f66f635 --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/fn_drawNameTagIcon.sqf @@ -0,0 +1,61 @@ +/* + * Author: commy2, CAA-Picard + * + * Draw the nametag and rank icon. + * + * Argument: + * 0: Unit (Array) + * 1: alpha (Number) + * 2: Height offset (Number) + * + * Return value: + * None. + */ + +#define TEXTURES_RANKS [ \ + "", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\private_gs.paa", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\corporal_gs.paa", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\sergeant_gs.paa", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\lieutenant_gs.paa", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\captain_gs.paa", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\major_gs.paa", \ + "\A3\Ui_f\data\GUI\Cfg\Ranks\colonel_gs.paa" \ +] + +private ["_player", "_target", "_alpha", "_heightOffset", "_height", "_position", "_color", "_name", "_rank", "_size"]; + +_player = _this select 0; +_target = _this select 1; +_alpha = _this select 2; +_heightOffset = _this select 3; + +_height = [2, 1.5, 1, 1.5, 1] select (["STAND", "CROUCH", "PRONE", "UNDEFINED", ""] find stance _target); + +_position = visiblePositionASL _target; +// Convert position to ASLW (expected by drawIcon3D) and add height offsets +_position set [2, ((_target modelToWorld [0,0,0]) select 2) + _height + _heightOffset]; + +_color = if !(group _target == group _player) then { + [0.77, 0.51, 0.08, _alpha] +} else { + [[1, 1, 1, _alpha], [1, 0, 0, _alpha], [0, 1, 0, _alpha], [0, 0, 1, _alpha], [1, 1, 0, _alpha]] select (["MAIN", "RED", "GREEN", "BLUE", "YELLOW"] find (if (_target == _player) then {0} else {assignedTeam _target})) max 0 +}; + +_name = [_target, true] call AGM_Core_fnc_getName; + +_rank = TEXTURES_RANKS select ((["PRIVATE", "CORPORAL", "SERGEANT", "LIEUTENANT", "CAPTAIN", "MAJOR", "COLONEL"] find rank _target) + 1); +_size = [0, 1] select (profileNamespace getVariable ["AGM_showPlayerRanks", true]); + +drawIcon3D [ + _rank, + _color, + _position, + _size, + _size, + 0, + _name, + 2, + 0.033, + "PuristaMedium" +]; diff --git a/TO_MERGE/agm/NameTags/functions/fn_moduleNameTags.sqf b/TO_MERGE/agm/NameTags/functions/fn_moduleNameTags.sqf new file mode 100644 index 0000000000..33b3941dc6 --- /dev/null +++ b/TO_MERGE/agm/NameTags/functions/fn_moduleNameTags.sqf @@ -0,0 +1,27 @@ +/* + * Author: CAA-Picard + * + * Initializes the name tags module. + * + * Arguments: + * Whatever the module provides. + * + * Return Value: + * None + */ + +if !(isServer) exitWith {}; + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +AGM_NameTags_Module = true; + +[_logic, "AGM_NameTags_PlayerNamesViewDistance", "PlayerNamesViewDistance" ] call AGM_Core_fnc_readNumericParameterFromModule; +[_logic, "AGM_NameTags_ShowNamesForAI", "ShowNamesForAI" ] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_NameTags_CrewInfoVisibility", "Visibility" ] call AGM_Core_fnc_readNumericParameterFromModule; + +diag_log text "[AGM]: NameTags Module Initialized."; diff --git a/TO_MERGE/agm/NameTags/stringtable.xml b/TO_MERGE/agm/NameTags/stringtable.xml new file mode 100644 index 0000000000..a558b8986f --- /dev/null +++ b/TO_MERGE/agm/NameTags/stringtable.xml @@ -0,0 +1,72 @@ + + + + + + Show Names + Namen anzeigen + Mostrar nombres + Afficher noms + Zobrazit jména + Pokaż nazwy + Nevek mutatása + Показать имена + + + Show player names + Spielernamen anzeigen + Mostrar nombres de jugadores + Pokaż nazwy graczy + Afficher nom des joueurs + Játékosnevek mutatása + Zobrazit jména hráčů + Mostrar nomes de jogadores + Mostra i nomi dei giocatori + Показать имена игроков + + + Show player name only on cursor (requires player names) + Pokaż nazwę gracza tylko pod kursorem + Mostrar nombres solo en el cursor (requiere Mostrar nombres de jugadores) + Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen) + Noms uniquement sous le curseur (si noms affichés) + Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů) + Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati) + Mostrar nome de jogador somente no cursor (requer nome de jogadores) + Játékosok nevének mutatása (névcímke szükséges) + Показать имена игроков только под курсором (требует имен игроков) + + + Show player name only on keypress (requires player names) + Spielernamen nur auf Tastendruck anzeigen (benötigt Spielernamen) + Mostrar nombres solo al pulsar (requiere Mostrar nombres de jugadores) + Noms uniquement sur pression de la touche (si noms affichés) + Zobrazit jména hráčů jen na klávesu (vyžaduje jména hráčů) + Pokaż nazwę gracza tylko po przytrzymaniu klawisza + Játékosnevek mutatása gombnyomásra(névcíme szükséges) + Показать имена игроков только по нажатию клавиши (требует имен игроков) + + + Show player ranks (requires player names) + Spielerränge anzeigen (benötig Spielernamen) + Pokaż rangi graczy (wymaga nazw graczy) + Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores) + Grade des joueurs (si noms affichés) + Zobrazit hodnosti hráčů (vyžaduje jména hráčů) + Mostra i gradi (richiede i nomi dei giocatori abilitati) + Mostrar patente de jogadores (requer nome de jogadores) + Játékosok rendfokozatának mutatása (névcímke szükséges) + Показать звания игроков (требует имен игроков) + + + + + Show vehicle crew info + Zeige Fahrzeugbesatzung + Mostrar tripulantes + Pokaż informacje o załodze pojazdu + Zobrazit info o posádce vozidla + Показать экипаж + + + \ No newline at end of file diff --git a/TO_MERGE/agm/NightVision/agm_nvg_wide_optics.p3d b/TO_MERGE/agm/NightVision/agm_nvg_wide_optics.p3d new file mode 100644 index 0000000000..481ae8d234 Binary files /dev/null and b/TO_MERGE/agm/NightVision/agm_nvg_wide_optics.p3d differ diff --git a/TO_MERGE/agm/NightVision/clientInit.sqf b/TO_MERGE/agm/NightVision/clientInit.sqf new file mode 100644 index 0000000000..8bb4ecdb01 --- /dev/null +++ b/TO_MERGE/agm/NightVision/clientInit.sqf @@ -0,0 +1,30 @@ +// by commy2 + +if (!hasInterface) exitWith {}; + +AGM_NightVision_ppEffectBlur = ppEffectCreate ["dynamicBlur", 1234]; +AGM_NightVision_ppEffectBlur ppEffectForceInNVG true; +AGM_NightVision_ppEffectBlur ppEffectAdjust [0]; +AGM_NightVision_ppEffectBlur ppEffectCommit 0; + +AGM_NightVision_ppEffectRadialBlur = ppEffectCreate ["radialBlur", 1238]; +AGM_NightVision_ppEffectRadialBlur ppEffectForceInNVG true; +AGM_NightVision_ppEffectRadialBlur ppEffectAdjust [0, 0, 0, 0]; +AGM_NightVision_ppEffectRadialBlur ppEffectCommit 0; + +AGM_NightVision_ppEffect = ppEffectCreate ["FilmGrain", 1235]; +AGM_NightVision_ppEffect ppEffectAdjust [0.25, 2.5, 2.5, 2.5*0.3, 2.5*0.3, false]; +AGM_NightVision_ppEffect ppEffectCommit 0; + +AGM_NightVision_ppEffectNVGBrightness = ppEffectCreate ["ColorCorrections", 1236]; +AGM_NightVision_ppEffectNVGBrightness ppEffectForceInNVG true; +AGM_NightVision_ppEffectNVGBrightness ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; +AGM_NightVision_ppEffectNVGBrightness ppEffectCommit 0; + +AGM_NightVision_ppEffectMuzzleFlash = ppEffectCreate ["ColorCorrections", 1237]; +AGM_NightVision_ppEffectMuzzleFlash ppEffectEnable true; +AGM_NightVision_ppEffectMuzzleFlash ppEffectForceInNVG true; +AGM_NightVision_ppEffectMuzzleFlash ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; +AGM_NightVision_ppEffectMuzzleFlash ppEffectCommit 0; + +0 spawn compile preprocessFileLineNumbers "\AGM_NightVision\nightVision.sqf"; diff --git a/TO_MERGE/agm/NightVision/config.cpp b/TO_MERGE/agm/NightVision/config.cpp new file mode 100644 index 0000000000..630b82241a --- /dev/null +++ b/TO_MERGE/agm/NightVision/config.cpp @@ -0,0 +1,142 @@ +class CfgPatches { + class AGM_NightVision { + units[] = {}; + weapons[] = {"AGM_NVG_Gen1", "AGM_NVG_Gen2", /*"AGM_NVG_Gen3",*/ "AGM_NVG_Gen4", "AGM_NVG_Wide"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_NightVision { + class AGM_NightVision { + file = "\AGM_nightvision\functions"; + class blending; + class decreaseNVGBrightness; + class increaseNVGBrightness; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_NightVision { + clientInit = "call compile preprocessFileLineNumbers '\AGM_NightVision\clientInit.sqf'"; + }; +}; + +class Extended_FiredBIS_EventHandlers { + class AllVehicles { + class AGM_NightVision_Blending { + clientFiredBIS = "if (_this select 0 == vehicle AGM_player && {currentVisionMode (_this select 0) == 1}) then {_this call AGM_NightVision_fnc_blending};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class increaseNVGBrightness { + displayName = "$STR_AGM_NightVision_IncreaseNVGBrightness"; + condition = "currentVisionMode _player == 1"; + statement = "[_player, _vehicle] call AGM_NightVision_fnc_increaseNVGBrightness"; + key = 201; + shift = 0; + control = 0; + alt = 1; + allowHolding = 1; + }; + class decreaseNVGBrightness { + displayName = "$STR_AGM_NightVision_DecreaseNVGBrightness"; + condition = "currentVisionMode _player == 1"; + statement = "[_player, _vehicle] call AGM_NightVision_fnc_decreaseNVGBrightness"; + key = 209; + shift = 0; + control = 0; + alt = 1; + allowHolding = 1; + }; +}; + +class CfgVehicles { + class All { + AGM_NightVision_grain = 0.75; + AGM_NightVision_blur = 0.055; + }; + + #define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ + }; + + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_NVG_Gen1,6) + MACRO_ADDITEM(AGM_NVG_Gen2,6) + //MACRO_ADDITEM(AGM_NVG_Gen3,6) + MACRO_ADDITEM(AGM_NVG_Gen4,6) + MACRO_ADDITEM(AGM_NVG_Wide,6) + }; + }; +}; + +class CfgWeapons { + class Binocular; + class NVGoggles: Binocular { + displayName = "$STR_AGM_NightVision_NVG_Gen3_brown"; + AGM_NightVision_grain = 0.75; + AGM_NightVision_blur = 0.055; + AGM_NightVision_radBlur = 0.001; + }; + class NVGoggles_OPFOR: NVGoggles { + displayName = "$STR_AGM_NightVision_NVG_Gen3_black"; + }; + class NVGoggles_INDEP: NVGoggles { + displayName = "$STR_AGM_NightVision_NVG_Gen3_green"; + }; + + class AGM_NVG_Gen1: NVGoggles_OPFOR { + author = "$STR_AGM_Core_AGMTeam"; + modelOptics = "\A3\weapons_f\reticle\optics_night"; + displayName = "$STR_AGM_NightVision_NVG_Gen1"; + AGM_NightVision_grain = 2.25; + AGM_NightVision_blur = 0.22; + AGM_NightVision_radBlur = 0.004; + }; + class AGM_NVG_Gen2: NVGoggles_INDEP { + author = "$STR_AGM_Core_AGMTeam"; + modelOptics = "\A3\weapons_f\reticle\optics_night"; + displayName = "$STR_AGM_NightVision_NVG_Gen2"; + AGM_NightVision_grain = 1.5; + AGM_NightVision_blur = 0.11; + AGM_NightVision_radBlur = 0.002; + }; + /*class AGM_NVG_Gen3: NVGoggles { + author = "$STR_AGM_Core_AGMTeam"; + modelOptics = "\A3\weapons_f\reticle\optics_night"; + displayName = "$STR_AGM_NightVision_NVG_Gen3"; + AGM_NightVision_grain = 0.75; + AGM_NightVision_blur = 0.055; + AGM_NightVision_radBlur = 0.001; + };*/ + class AGM_NVG_Gen4: NVGoggles { + author = "$STR_AGM_Core_AGMTeam"; + modelOptics = "\A3\weapons_f\reticle\optics_night"; + displayName = "$STR_AGM_NightVision_NVG_Gen4"; + AGM_NightVision_grain = 0.0; + AGM_NightVision_blur = 0.0; + AGM_NightVision_radBlur = 0.0; + }; + class AGM_NVG_Wide: NVGoggles { + author = "$STR_AGM_Core_AGMTeam"; + // modelOptics = "\AGM_NightVision\weapons\agm_nvg_wide"; + modelOptics = "\agm_nightvision\agm_nvg_wide_optics.p3d"; + displayName = "$STR_AGM_NightVision_NVG_FullScreen"; + AGM_NightVision_grain = 0.75; + AGM_NightVision_blur = 0.055; + AGM_NightVision_radBlur = 0.001; + }; +}; diff --git a/TO_MERGE/agm/NightVision/functions/fn_blending.sqf b/TO_MERGE/agm/NightVision/functions/fn_blending.sqf new file mode 100644 index 0000000000..ea52978afa --- /dev/null +++ b/TO_MERGE/agm/NightVision/functions/fn_blending.sqf @@ -0,0 +1,67 @@ +// by commy2 + +private ["_vehicle", "_weapon", "_ammo", "_magazine", "_player"]; + +_vehicle = _this select 0; +_weapon = _this select 1; +_ammo = _this select 4; +_magazine = _this select 5; + +_player = AGM_player; + +if (_player != _vehicle && {!(_weapon in (_vehicle weaponsTurret ([_player] call AGM_Core_fnc_getTurretIndex)))}) exitWith {}; + +private ["_silencer", "_visibleFireCoef", "_visibleFireTimeCoef", "_visibleFire", "_visibleFireTime", "_nvgBrightnessCoef", "_fnc_isTracer", "_darkness"]; + +_silencer = switch (_weapon) do { + case (primaryWeapon _player) : {primaryWeaponItems _player select 0}; + case (secondaryWeapon _player) : {secondaryWeaponItems _player select 0}; + case (handgunWeapon _player) : {handgunItems _player select 0}; + default {""}; +}; + +_visibleFireCoef = 1; +_visibleFireTimeCoef = 1; +if (_silencer != "") then { + _visibleFireCoef = getNumber (configFile >> "CfgWeapons" >> _silencer >> "ItemInfo" >> "AmmoCoef" >> "visibleFire"); + _visibleFireTimeCoef = getNumber (configFile >> "CfgWeapons" >> _silencer >> "ItemInfo" >> "AmmoCoef" >> "visibleFireTime"); +}; + +_visibleFire = getNumber (configFile >> "CfgAmmo" >> _ammo >> "visibleFire"); +_visibleFireTime = getNumber (configFile >> "CfgAmmo" >> _ammo >> "visibleFireTime"); + +_nvgBrightnessCoef = 1 + (_player getVariable ["AGM_NVGBrightness", 0]) / 4; + +_fnc_isTracer = { + private ["_indexShot", "_lastRoundsTracer", "_tracersEvery"]; + + if (getNumber (configFile >> "CfgAmmo" >> _ammo >> "nvgOnly") > 0) exitWith {false}; + + _indexShot = (_player ammo _weapon) + 1; + + _lastRoundsTracer = getNumber (configFile >> "CfgMagazines" >> _magazine >> "lastRoundsTracer"); + if (_indexShot <= _lastRoundsTracer) exitWith {true}; + + _tracersEvery = getNumber (configFile >> "CfgMagazines" >> _magazine >> "tracersEvery"); + if (_tracersEvery == 0) exitWith {false}; + + (_indexShot - _lastRoundsTracer) % _tracersEvery == 0 +}; + +if (call _fnc_isTracer) then { + _visibleFire = _visibleFire + 2; + _visibleFireTime = _visibleFireTime + 2; +}; + +_darkness = 1 - (call AGM_Core_fnc_ambientBrightness); + +_visibleFire = _darkness * _visibleFireCoef * _visibleFire * _nvgBrightnessCoef / 10 min 1; +_visibleFireTime = _darkness * _visibleFireTimeCoef * _visibleFireTime * _nvgBrightnessCoef / 10 min 0.5; + +["NightVision", [_visibleFire, _visibleFireTime], {format ["visibleFire: %1 - visibleFireTime: %2", _this select 0, _this select 1]}] call AGM_Debug_fnc_log; + +AGM_NightVision_ppEffectMuzzleFlash ppEffectAdjust [1, 1, _visibleFire, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; +AGM_NightVision_ppEffectMuzzleFlash ppEffectCommit 0; + +AGM_NightVision_ppEffectMuzzleFlash ppEffectAdjust [1, 1, 0, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; +AGM_NightVision_ppEffectMuzzleFlash ppEffectCommit _visibleFireTime; diff --git a/TO_MERGE/agm/NightVision/functions/fn_decreaseNVGBrightness.sqf b/TO_MERGE/agm/NightVision/functions/fn_decreaseNVGBrightness.sqf new file mode 100644 index 0000000000..17c9db1072 --- /dev/null +++ b/TO_MERGE/agm/NightVision/functions/fn_decreaseNVGBrightness.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_player", "_vehicle", "_brightness"]; + +_player = _this select 0; +_vehicle = _this select 1; + +_brightness = _player getVariable ["AGM_NVGBrightness", 0]; + +if (_brightness > -1) then { + _brightness = round (10 * _brightness - 1) / 10; + + _player setVariable ["AGM_NVGBrightness", _brightness, false]; + + AGM_NightVision_ppEffectNVGBrightness ppEffectAdjust [1, 1, _brightness / 4, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; + AGM_NightVision_ppEffectNVGBrightness ppEffectCommit 0; + + [format [localize "STR_AGM_NightVision_NVGBrightness", format ["%1%", _brightness * 100]]] call AGM_Core_fnc_displayTextStructured; + playSound "AGM_Sound_Click"; +}; diff --git a/TO_MERGE/agm/NightVision/functions/fn_increaseNVGBrightness.sqf b/TO_MERGE/agm/NightVision/functions/fn_increaseNVGBrightness.sqf new file mode 100644 index 0000000000..112665fb59 --- /dev/null +++ b/TO_MERGE/agm/NightVision/functions/fn_increaseNVGBrightness.sqf @@ -0,0 +1,20 @@ +// by commy2 + +private ["_player", "_vehicle", "_brightness"]; + +_player = _this select 0; +_vehicle = _this select 1; + +_brightness = _player getVariable ["AGM_NVGBrightness", 0]; + +if (_brightness < 1) then { + _brightness = round (10 * _brightness + 1) / 10; + + _player setVariable ["AGM_NVGBrightness", _brightness, false]; + + AGM_NightVision_ppEffectNVGBrightness ppEffectAdjust [1, 1, _brightness / 4, [0, 0, 0, 0], [0, 0, 0, 1], [0, 0, 0, 1]]; + AGM_NightVision_ppEffectNVGBrightness ppEffectCommit 0; + + [format [localize "STR_AGM_NightVision_NVGBrightness", format ["%1%", _brightness * 100]]] call AGM_Core_fnc_displayTextStructured; + playSound "AGM_Sound_Click"; +}; diff --git a/TO_MERGE/agm/NightVision/nightVision.sqf b/TO_MERGE/agm/NightVision/nightVision.sqf new file mode 100644 index 0000000000..9008708f19 --- /dev/null +++ b/TO_MERGE/agm/NightVision/nightVision.sqf @@ -0,0 +1,100 @@ +//by commy2 + +private ["_currentVehicle", "_currentTurret", "_currentHMD", "_grainSetting", "_blurSetting"]; + +_currentView = ""; +_currentVehicle = objNull; +_currentTurret = [-1]; +_currentHMD = ""; + +while {true} do { + AGM_NightVision_ppEffect ppEffectEnable false; + AGM_NightVision_ppEffectBlur ppEffectEnable false; + AGM_NightVision_ppEffectRadialBlur ppEffectEnable false; + AGM_NightVision_ppEffectNVGBrightness ppEffectEnable false; + + waitUntil {currentVisionMode AGM_player == 1}; + + AGM_NightVision_ppEffect ppEffectEnable true; + AGM_NightVision_ppEffectBlur ppEffectEnable true; + AGM_NightVision_ppEffectRadialBlur ppEffectEnable true; + AGM_NightVision_ppEffectNVGBrightness ppEffectEnable true; + + waitUntil { + // any updates? + if (hmd AGM_player != _currentHMD || {cameraView != _currentView} || {vehicle AGM_player != _currentVehicle} || {!(_currentTurret isEqualTo []) && {AGM_player != _currentVehicle turretUnit _currentTurret}}) then { + _currentHMD = hmd AGM_player; + _currentView = cameraView; + _currentVehicle = vehicle AGM_player; + _currentTurret = [AGM_player] call AGM_Core_fnc_getTurretIndex; + + private ["_config", "_fnc_isUsingHMD"]; + _config = configFile >> "CfgVehicles" >> typeOf _currentVehicle; + + _fnc_isUsingHMD = { + if (_currentView != "GUNNER") exitWith {true}; // asume hmd usage outside of gunner view + + if (AGM_player == driver _currentVehicle) exitWith { + !("NVG" in getArray (_config >> "ViewOptics" >> "visionMode")); + }; + + private "_turretConfig"; + _turretConfig = [_config, _currentTurret] call AGM_Core_fnc_getTurretConfigPath; + _turretConfig = _turretConfig >> "OpticsIn"; + + private "_result"; + _result = true; + for "_index" from 0 to (count _turretConfig - 1) do { + if ("NVG" in getArray (_turretConfig select _index >> "visionMode")) exitWith {_result = false}; + true + }; + + _result + }; + + // on foot or in vehicle using hmd + if (_currentVehicle == AGM_player || _fnc_isUsingHMD) then { + _grainSetting = getNumber (configFile >> "CfgWeapons" >> _currentHMD >> "AGM_NightVision_grain"); + _blurSetting = getNumber (configFile >> "CfgWeapons" >> _currentHMD >> "AGM_NightVision_blur"); + _radBlurSetting = getNumber (configFile >> "CfgWeapons" >> _currentHMD >> "AGM_NightVision_radBlur"); + + AGM_NightVision_ppEffect ppEffectAdjust [0.25, 2.5, 2.5, _grainSetting, _grainSetting, false]; + AGM_NightVision_ppEffect ppEffectCommit 0; + AGM_NightVision_ppEffectBlur ppEffectAdjust [_blurSetting]; + AGM_NightVision_ppEffectBlur ppEffectCommit 0; + AGM_NightVision_ppEffectRadialBlur ppEffectAdjust [_radBlurSetting, _radBlurSetting, 0.2, 0.2]; + AGM_NightVision_ppEffectRadialBlur ppEffectCommit 0; + + // in vehicle and not using hmd + } else { + _grainSetting = _currentVehicle getVariable ["AGM_NightVision_grain", getNumber (_config >> "AGM_NightVision_grain")]; + _blurSetting = _currentVehicle getVariable ["AGM_NightVision_blur", getNumber (_config >> "AGM_NightVision_blur")]; + _radBlurSetting = _currentVehicle getVariable ["AGM_NightVision_radBlur", getNumber (_config >> "AGM_NightVision_radBlur")]; + + AGM_NightVision_ppEffect ppEffectAdjust [0.25, 2.5, 2.5, _grainSetting, _grainSetting, false]; + AGM_NightVision_ppEffect ppEffectCommit 0; + AGM_NightVision_ppEffectBlur ppEffectAdjust [_blurSetting]; + AGM_NightVision_ppEffectBlur ppEffectCommit 0; + AGM_NightVision_ppEffectRadialBlur ppEffectAdjust [_radBlurSetting, _radBlurSetting, 0.2, 0.2]; + AGM_NightVision_ppEffectRadialBlur ppEffectCommit 0; + }; + }; + + // Detect if curator interface is open and disable effects + if (!isNull findDisplay 312) then { + AGM_NightVision_ppEffect ppEffectEnable false; + AGM_NightVision_ppEffectBlur ppEffectEnable false; + AGM_NightVision_ppEffectRadialBlur ppEffectEnable false; + AGM_NightVision_ppEffectNVGBrightness ppEffectEnable false; + + waitUntil {isNull findDisplay 312}; + + AGM_NightVision_ppEffect ppEffectEnable true; + AGM_NightVision_ppEffectBlur ppEffectEnable true; + AGM_NightVision_ppEffectRadialBlur ppEffectEnable true; + AGM_NightVision_ppEffectNVGBrightness ppEffectEnable true; + }; + + currentVisionMode AGM_player != 1 + }; +}; diff --git a/TO_MERGE/agm/NightVision/stringtable.xml b/TO_MERGE/agm/NightVision/stringtable.xml new file mode 100644 index 0000000000..7c9a7bf4f3 --- /dev/null +++ b/TO_MERGE/agm/NightVision/stringtable.xml @@ -0,0 +1,127 @@ + + + + + + NV Goggles (Gen1) + Noktovizor (Gen1) + JVN (Gen1) + NS-Brille (Gen1) + Occhiali notturni (Gen1) + Gogle noktowizyjne (Gen1) + Óculos de visão noturna (Gen1) + ПНВ (Gen1) + Sistema de visión nocturna (Gen1) + + + NV Goggles (Gen2) + Noktovizor (Gen2) + JVN (Gen2) + NS-Brille (Gen2) + Occhiali notturni (Gen2) + Gogle noktowizyjne (Gen2) + Óculos de visão noturna (Gen2) + ПНВ (Gen2) + Sistema de visión nocturna (Gen2) + + + NV Goggles (Gen3) + Noktovizor (Gen3) + JVN (Gen3) + NS-Brille (Gen3) + Occhiali notturni (Gen3) + Gogle noktowizyjne (Gen3) + Óculos de visão noturna (Gen3) + ПНВ (Gen3) + Sistema de visión nocturna (Gen3) + + + NV Goggles (Gen3, Brown) + Noktovizor (Gen3, hnědý) + JVN (Gen3, marron) + NS-Brille (Gen3, Braun) + Occhiali notturni (Gen3, marroni) + Gogle noktowizyjne (Gen3, brązowe) + Óculos de visão noturna (Gen3, marrons) + ПНВ (Gen3, коричневый) + Sistema de visión nocturna (Gen3, marrón) + + + NV Goggles (Gen3, Green) + Noktovizor (Gen3, zelený) + JVN (Gen3, vertes) + NS-Brille (Gen3, Grün) + Occhiali notturni (Gen3, verdi) + Gogle noktowizyjne (Gen3, zielone) + Óculos de visão noturna (Gen3, verdes) + ПНВ (Gen3, зеленый) + Sistema de visión nocturna (Gen3, verde) + + + NV Goggles (Gen3, Black) + Noktovizor (Gen3, černý) + JVN (Gen3, noires) + NS-Brille (Gen3, Schwarz) + Occhiali notturni (Gen3, neri) + Gogle noktowizyjne (Gen3, czarne) + Óculos de visão noturna (Gen3, pretos) + ПНВ (Gen3, черный) + Sistema de visión nocturna (Gen3, negro) + + + NV Goggles (Gen4) + Noktovizor (Gen4) + JVN (Gen4) + NS-Brille (Gen4) + Occhiali notturni (Gen4) + Gogle noktowizyjne (Gen4) + Óculos de visão noturna (Gen4) + ПНВ (Gen4) + Sistema de visión nocturna (Gen4) + + + NV Goggles (Wide) + NS-Brille (Weitwinkel) + Sistema de visión nocturna (Panorámicas) + Gogle noktowizyjne (panoramiczne) + Noktovizor (Široký) + ПНВ (Широкий) + + + Brightness: %1 + Helligkeit: %1 + Brillo: %1 + Czułość: %1 + Zvýšení: %1 + Luminosité : %1 + Контраст: + Fényerő: %1 + Luminosidade: %1 + Luminosità: %1 + + + Increase NVG Brightness + Nachtsichtgerätshelligkeit erhöhen + Aumentar el brillo de las NVG + Zwiększ czułość noktowizji + Zvýšení jasu noktovizoru + Augmenter la luminosité des JVN + Увеличить яркость ПНВ + Fényerő növelése + Aumentar Luminosidade do EVN + Aumenta la luminosità dell'NVG + + + Decrease NVG Brightness + Nachtsichtgerätshelligkeit verringern + Disminuir el brillo de las NVG + Zmniejsz czułość noktowizji + Snížení jasu noktovizoru + Baisser la luminosité des JVN + Уменьшить яркость ПНВ + Fényerő csökkentése + Diminuir Luminosidade do EVN + Riduci la luminosità dell'NVG + + + diff --git a/TO_MERGE/agm/NoRadio/clientInit.sqf b/TO_MERGE/agm/NoRadio/clientInit.sqf new file mode 100644 index 0000000000..8e9e2d7001 --- /dev/null +++ b/TO_MERGE/agm/NoRadio/clientInit.sqf @@ -0,0 +1,18 @@ +// by commy2 + +0 spawn { + waitUntil {!isNull AGM_player}; + + [AGM_player] call AGM_Core_fnc_muteUnit; + AGM_player setVariable ["AGM_NoRadio_isMuted", true, true]; +}; + +[missionNamespace, "playerChanged", { + [_this select 0] call AGM_Core_fnc_muteUnit; + (_this select 0) setVariable ["AGM_NoRadio_isMuted", true, true]; + + if (!((_this select 1) getVariable ["AGM_isUnconscious", false]) && {alive (_this select 1)}) then { + [_this select 1] call AGM_Core_fnc_unmuteUnit; + }; + (_this select 1) setVariable ["AGM_NoRadio_isMuted", false, true]; +}] call AGM_Core_fnc_addCustomEventHandler; diff --git a/TO_MERGE/agm/NoRadio/config.cpp b/TO_MERGE/agm/NoRadio/config.cpp new file mode 100644 index 0000000000..cc10d76e34 --- /dev/null +++ b/TO_MERGE/agm/NoRadio/config.cpp @@ -0,0 +1,20 @@ +class CfgPatches { + class AGM_NoRadio { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_NoRadio { + clientInit = "call compile preprocessFileLineNumbers '\AGM_NoRadio\clientInit.sqf'"; + serverInit = "call compile preprocessFileLineNumbers '\AGM_NoRadio\serverInit.sqf'"; + }; +}; diff --git a/TO_MERGE/agm/NoRadio/serverInit.sqf b/TO_MERGE/agm/NoRadio/serverInit.sqf new file mode 100644 index 0000000000..bab527319c --- /dev/null +++ b/TO_MERGE/agm/NoRadio/serverInit.sqf @@ -0,0 +1,8 @@ +// by commy2 + +addMissionEventHandler ["HandleDisconnect", { + if !((_this select 0) getVariable ["AGM_isUnconscious", false]) then { + _this call AGM_Core_fnc_unmuteUnit; + }; + (_this select 0) setVariable ["AGM_NoRadio_isMuted", false, true]; +}]; diff --git a/TO_MERGE/agm/Overheating/UI/spare_barrel_ca.paa b/TO_MERGE/agm/Overheating/UI/spare_barrel_ca.paa new file mode 100644 index 0000000000..ba3ea298b2 Binary files /dev/null and b/TO_MERGE/agm/Overheating/UI/spare_barrel_ca.paa differ diff --git a/TO_MERGE/agm/Overheating/UI/temp_ca.paa b/TO_MERGE/agm/Overheating/UI/temp_ca.paa new file mode 100644 index 0000000000..3bbc441e26 Binary files /dev/null and b/TO_MERGE/agm/Overheating/UI/temp_ca.paa differ diff --git a/TO_MERGE/agm/Overheating/config.cpp b/TO_MERGE/agm/Overheating/config.cpp new file mode 100644 index 0000000000..2c3c0f35c7 --- /dev/null +++ b/TO_MERGE/agm/Overheating/config.cpp @@ -0,0 +1,369 @@ +class CfgPatches { + class AGM_Overheating { + units[] = {}; + weapons[] = {"AGM_SpareBarrel"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi", "CAA-Picard"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Overheating { + class AGM_Overheating { + file = "\AGM_Overheating\functions"; + class checkTemperature; + class clearJam; + class cooldown; + class jamWeapon; + class overheat; + class swapBarrel; + class swapBarrelCallback; + }; + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + class AGM_Overheating_Overheat { + clientFiredBIS = "if (_this select 0 == AGM_player) then {_this call AGM_Overheating_fnc_overheat};"; + }; + }; +}; + +class Extended_Take_EventHandlers { + class CAManBase { + class AGM_Overheating_UnjamReload { + clientTake = "if (_this select 0 == AGM_player && {(_this select 1) in [uniformContainer (_this select 0), vestContainer (_this select 0), backpackContainer (_this select 0)]} && {_this select 2 == currentMagazine (_this select 0)}) then {_vehicle = vehicle (_this select 0); [_vehicle, currentWeapon _vehicle, true] call AGM_Overheating_fnc_clearJam};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class clearJam { + displayName = "$STR_AGM_Overheating_UnjamWeapon"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon && {currentWeapon _player in (_player getVariable ['AGM_Overheating_jammedWeapons', []])}"; + statement = "[_player, currentMuzzle _player, false] call AGM_Overheating_fnc_clearJam;"; + key = 19; + shift = 1; + control = 0; + alt = 0; + }; +}; + +class CfgSounds { + class AGM_BarrelSwap { + sound[] = {"\AGM_Overheating\sounds\barrelswap.ogg",5,1,200}; + titles[] = {}; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +class CfgVehicles { + class Man; + + class CAManBase: Man { + class AGM_SelfActions { + class AGM_Equipment { + class AGM_SwapBarrel { + displayName = "$STR_AGM_Overheating_SwapBarrel"; + condition = "'AGM_SpareBarrel' in items _player && {getNumber (configFile >> 'CfgWeapons' >> currentWeapon _player >> 'AGM_Overheating_allowSwapBarrel') == 1}"; + statement = "[_player, currentWeapon _player] call AGM_Overheating_fnc_swapBarrel;"; + showDisabled = 0; + priority = 3; + icon = "AGM_Overheating\UI\spare_barrel_ca.paa"; + hotkey = "B"; + }; + }; + class AGM_CheckTemperature { + displayName = "$STR_AGM_Overheating_CheckTemperatureShort"; + condition = "currentWeapon _player in [primaryWeapon _player, secondaryWeapon _player, handgunWeapon _player]"; + statement = "[_player, currentWeapon _player] call AGM_Overheating_fnc_CheckTemperature;"; + showDisabled = 0; + priority = 3.1; + icon = "AGM_Overheating\UI\temp_ca.paa"; + hotkey = "P"; + }; + }; + }; + + class ReammoBox_F; + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + class FIA_Box_Base_F; + + class Box_NATO_Support_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class B_supplyCrate_F: ReammoBox_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class Box_East_Support_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class O_supplyCrate_F: B_supplyCrate_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class Box_IND_Support_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class Box_FIA_Support_F: FIA_Box_Base_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class I_supplyCrate_F: B_supplyCrate_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class IG_supplyCrate_F: ReammoBox_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class C_supplyCrate_F: ReammoBox_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,2) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_SpareBarrel,6) + }; + }; + + // Add AGM_SpareBarrel to every machine gunner. + #define MACRO_ADDSPAREBARREL \ + items[] = {"FirstAidKit", "AGM_SpareBarrel"}; \ + respawnitems[] = {"FirstAidKit", "AGM_SpareBarrel"}; + + // NATO + class B_Soldier_02_f; class B_soldier_AR_F:B_Soldier_02_f {MACRO_ADDSPAREBARREL}; + class B_Soldier_support_base_F; class B_soldier_AAR_F:B_Soldier_support_base_F {MACRO_ADDSPAREBARREL}; + class B_Soldier_base_F; class B_CTRG_soldier_AR_A_F:B_Soldier_base_F {MACRO_ADDSPAREBARREL}; + + // Guerrilla + class I_G_Soldier_base_F; class I_G_Soldier_AR_F:I_G_Soldier_base_F {MACRO_ADDSPAREBARREL}; + class B_G_Soldier_AR_F:I_G_Soldier_AR_F {MACRO_ADDSPAREBARREL}; + class O_G_Soldier_AR_F:I_G_Soldier_AR_F {MACRO_ADDSPAREBARREL}; + + // Iran + class O_Soldier_base_F; class O_Soldier_AR_F:O_Soldier_base_F {MACRO_ADDSPAREBARREL}; + class O_Soldier_support_base_F; class O_Soldier_AAR_F:O_Soldier_support_base_F {MACRO_ADDSPAREBARREL}; + class O_Soldier_Urban_base; class O_soldierU_AR_F:O_Soldier_Urban_base {MACRO_ADDSPAREBARREL}; + class O_soldierU_AAR_F:O_Soldier_Urban_base {MACRO_ADDSPAREBARREL}; + + // Czech + class I_Soldier_02_F; class I_Soldier_AR_F:I_Soldier_02_F {MACRO_ADDSPAREBARREL}; + class I_Soldier_support_base_F; class I_Soldier_AAR_F:I_Soldier_support_base_F {MACRO_ADDSPAREBARREL}; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_SpareBarrel: AGM_ItemCore { + displayname = "$STR_AGM_Overheating_SpareBarrelName"; + descriptionshort = "$STR_AGM_Overheating_SpareBarrelDescription"; + //model = ""; + picture = "\AGM_Overheating\UI\spare_barrel_ca.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 50; + }; + }; + + class Rifle; + class Rifle_Base_F : Rifle { + // Dispersion, SlowdownFactor and JamChance arrays have 4 values for different temperatures, which are interpolated between. + // These values correspond to temperatures Converted to real life values: 0: 0°C, 1: 333°C, 2: 666°C, 3: 1000°C. + + // Dispersion in radians. First value is for temp. 0, second for temp. 1 and so on. Values inbetween get interpolated. Negative values get ignored and can be used to move the starting point to hotter temperatures. + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + // How much the projectile gets slowed down before leaving the barrel. 0.9 means the bullet will lose 10% velocity. Values inbetween get interpolated. Numbers greater 1 increase the velocity, smaller 1 decrease it. + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + // Chance to jam the weapon. 0.0003 means 3 malfunctions on 10,000 rounds fired at this temperature. Values inbetween get interpolated. Negative values get ignored and can be used to move the starting point to hotter temperatures. + // When no reliable data exists for temperature vs. jam chance except MRBS, the following uniform criteria was adopted: [0, 1/MRBS, 5/MRBS, 25/MRBS]. + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class Rifle_Long_Base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class arifle_MX_Base_F : Rifle_Base_F { + AGM_clearJamAction = "GestureReloadMX"; // Custom jam clearing action. Default uses reload animation. + AGM_checkTemperatureAction = "Gear"; // Custom check temperature action. Default uses gear animation. + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class arifle_MX_SW_F : arifle_MX_Base_F { + AGM_clearJamAction = ""; // Custom jam clearing action. Use empty string to undefine. + AGM_Overheating_allowSwapBarrel = 1; // 1 to enable barrel swap. 0 to disable. Meant for machine guns where you can easily swap the barrel without dismantling the whole weapon. + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class arifle_Katiba_Base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class mk20_base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class Tavor_base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class SDAR_base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class EBR_base_F : Rifle_Long_Base_F { + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class DMR_01_base_F : Rifle_Long_Base_F { + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class GM6_base_F : Rifle_Long_Base_F { + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class LRR_base_F : Rifle_Long_Base_F { + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class LMG_Mk200_F : Rifle_Long_Base_F { + AGM_Overheating_allowSwapBarrel = 1; + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class LMG_Zafir_F : Rifle_Long_Base_F { + AGM_Overheating_allowSwapBarrel = 1; + AGM_Overheating_Dispersion[] = {0, -0.001, 0.001, 0.003}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class SMG_01_Base : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class SMG_02_base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; + + class pdw2000_base_F : Rifle_Base_F { + AGM_Overheating_Dispersion[] = {0, 0.001, 0.002, 0.004}; + AGM_Overheating_SlowdownFactor[] = {1, 1, 1, 0.9}; + AGM_Overheating_JamChance[] = {0, 0.0003, 0.0015, 0.0075}; + }; +}; + +class CfgAmmo { + class BulletCore; + class BulletBase : BulletCore { + AGM_BulletMass = 0; // Bullet mass in grams + }; + + // Rifle and MG rounds + class B_556x45_Ball : BulletBase { + AGM_BulletMass = 4.1; // 5.56x45 NATO + }; + + class B_65x39_Caseless : BulletBase { + AGM_BulletMass = 8; // 6.5mm Grendel + }; + + class B_762x51_Ball : BulletBase { + AGM_BulletMass = 10; // 7.62x51 NATO + }; + class AGM_B_762x51_M118LR : B_762x51_Ball { + AGM_BulletMass = 11; // 7.62x51 NATO M118 + }; + + class B_127x99_Ball : BulletBase { + AGM_BulletMass = 42; // 12.7×99mm NATO (.50 BMG) + }; + + class B_127x108_Ball : BulletBase { + AGM_BulletMass = 48.3; // 12.7x108 + }; + + class B_408_Ball : BulletBase { + AGM_BulletMass = 27; // .408 Cheyenne Tactical + }; + + // Pistol Rounds + class B_9x21_Ball : BulletBase { + AGM_BulletMass = 7.45; // 9×21mm IMI + }; + class B_9x19_Ball : B_9x21_Ball { + AGM_BulletMass = 7.45; // 9×19mm Parabellum + }; + class B_127x33_Ball : BulletBase { + AGM_BulletMass = 21; // .50 AE + }; + class B_45ACP_Ball : BulletBase { + AGM_BulletMass = 12; // .45 ACP + }; +}; diff --git a/TO_MERGE/agm/Overheating/functions/fn_checkTemperature.sqf b/TO_MERGE/agm/Overheating/functions/fn_checkTemperature.sqf new file mode 100644 index 0000000000..8b93be59ce --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_checkTemperature.sqf @@ -0,0 +1,63 @@ +// by commy2 and CAA-Picard + +_this spawn { + _player = _this select 0; + _weapon = _this select 1; + + // Calculate cool down of weapon since last shot + _string = format ["AGM_Overheating_%1", _weapon]; + _overheat = _player getVariable [_string, [0, 0]]; + _temperature = _overheat select 0; + _time = _overheat select 1; + + // Get physical parameters + _barrelMass = 0.50 * (getNumber (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "mass") / 22.0) max 1.0; + + // Calculate cooling + _temperature = [_temperature, _barrelMass, time - _time] call AGM_Overheating_fnc_cooldown; + + ["Overheating", _temperature, {format ["Temperature: %1 °C", _this]}] call AGM_Debug_fnc_log; + + // Store new temperature + _time = time; + _player setVariable [_string, [_temperature, _time], false]; + _scaledTemperature = (_temperature / 1000) min 1; + + // Play animation and report temperature + _action = getText (configFile >> "CfgWeapons" >> _weapon >> "AGM_checkTemperatureAction"); + + if (_action == "") then { + _action = "Gear"; + }; + + _player playActionNow _action; + + sleep 1; + + _color = [ + 2 * _scaledTemperature min 1, + 2 * (1 - _scaledTemperature) min 1, + 00 + ]; + + _count = 2 + round (10 * _scaledTemperature); + _string = ""; + for "_a" from 1 to _count do { + _string = _string + "|"; + }; + _text = [_string, _color] call AGM_Core_fnc_stringToColoredText; + + _string = ""; + for "_a" from (_count + 1) to 12 do { + _string = _string + "|"; + }; + + _text = composeText [ + _text, + [_string, [0.5, 0.5, 0.5]] call AGM_Core_fnc_stringToColoredText + ]; + + _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); + + [_text, _picture] call AGM_Core_fnc_displayTextPicture; +}; diff --git a/TO_MERGE/agm/Overheating/functions/fn_clearJam.sqf b/TO_MERGE/agm/Overheating/functions/fn_clearJam.sqf new file mode 100644 index 0000000000..2815836583 --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_clearJam.sqf @@ -0,0 +1,39 @@ +// by commy2 + +private ["_unit", "_weapon", "_skipAnim", "_jammedWeapons"]; + +_unit = _this select 0; +_weapon = _this select 1; +_skipAnim = _this select 2; + +_jammedWeapons = _unit getVariable ["AGM_Overheating_jammedWeapons", []]; + +if (_weapon in _jammedWeapons) then { + _jammedWeapons = _jammedWeapons - [_weapon]; + + _unit setVariable ["AGM_Overheating_jammedWeapons", _jammedWeapons]; + + if (count _jammedWeapons == 0) then { + private "_id"; + + _id = _unit getVariable ["AGM_JammingActionID", -1]; + //_unit removeAction _id; + //[_unit, "DefaultAction", _id] call AGM_Core_fnc_removeActionMenuEventHandler; + [_unit, "DefaultAction", _id] call AGM_Core_fnc_removeActionEventHandler; + _unit setVariable ["AGM_JammingActionID", -1]; + }; + + if !(_skipAnim) then { + private "_clearJamAction"; + + _clearJamAction = getText (configFile >> "CfgWeapons" >> _weapon >> "AGM_clearJamAction"); + + if (_clearJamAction == "") then { + _clearJamAction = getText (configFile >> "CfgWeapons" >> _weapon >> "reloadAction"); + }; + + _unit playActionNow _clearJamAction; + }; + + [localize "STR_AGM_Overheating_WeaponUnjammed"] call AGM_Core_fnc_displayTextStructured; +}; diff --git a/TO_MERGE/agm/Overheating/functions/fn_cooldown.sqf b/TO_MERGE/agm/Overheating/functions/fn_cooldown.sqf new file mode 100644 index 0000000000..7f556a21b0 --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_cooldown.sqf @@ -0,0 +1,49 @@ +/* + * Author: CAA-Picard + * + * Calculate cooling down of the weapon. + * + * Argument: + * 0: Last temperature (number) + * 1: Barrel mass (number) + * 2: Time (number) + * + * Return value: + * New temperature (number) + */ + +private ["_temperature", "_barrelMass", "_totalTime", "_barrelSurface", "_time", "_deltaTime"]; + +_temperature = _this select 0; +_barrelMass = _this select 1; +_totalTime = _this select 2; + +// If a long time passed since the last shot, there's no need to calculate anything; the weapon should be cool +if (_totalTime > 1800) exitWith {0}; + +_barrelSurface = _barrelMass / 7850 / 0.003; + +_time = 0; +while {true} do { + _deltaTime = (_totalTime - _time) min 20; + + _temperature = _temperature - ( + // Convective cooling + 25 * _barrelSurface * _temperature + // Radiative cooling + + 0.4 * 5.67e-8 * _barrelSurface * + ( (_temperature + 273.15)*(_temperature + 273.15) + * (_temperature + 273.15)*(_temperature + 273.15) + - 273.15 * 273.15 * 273.15 *273.15 ) + ) * _deltaTime / (_barrelMass * 466); + + if (_temperature < 1) exitWith {0}; + + if (isNil "_temperature") exitWith { + diag_log text format ["[AGM] ERROR: _totalTime = %1; _time = %2; _deltaTime = %3;", _totalTime, _time, _deltaTime]; + 0 + }; + + _time = _time + _deltaTime; + if (_time >= _totalTime) exitWith { _temperature max 0 }; +}; diff --git a/TO_MERGE/agm/Overheating/functions/fn_jamWeapon.sqf b/TO_MERGE/agm/Overheating/functions/fn_jamWeapon.sqf new file mode 100644 index 0000000000..bbdf3f86ef --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_jamWeapon.sqf @@ -0,0 +1,68 @@ +// based on KK_fnc_playerWeaponMulfunction from KillzoneKid + +private ["_unit", "_weapon", "_jammedWeapons"]; + +_unit = _this select 0; +_weapon = _this select 1; + +// don't jam a weapon with no rounds left +if (_unit ammo _weapon == 0) exitWith {}; + +_jammedWeapons = _unit getVariable ["AGM_Overheating_jammedWeapons", []]; +_jammedWeapons pushBack _weapon; + +_unit setVariable ["AGM_Overheating_jammedWeapons", _jammedWeapons]; + +// this is to re-activate the 'DefaultAction', so you can jam a weapon while full auto shooting +[_unit, _weapon] spawn { + _unit = _this select 0; + _weapon = _this select 1; + + _ammo = _unit ammo _weapon; + + _frame = diag_frameno; + + if (_ammo > 0) then { + _unit setAmmo [_weapon, 0]; + + waitUntil {_frame < diag_frameno}; + + _unit setAmmo [_weapon, _ammo]; + //[localize "STR_AGM_Overheating_WeaponJammed"] call AGM_Core_fnc_displayTextStructured; + }; +}; + +// only display the hint once, after you try to shoot an already jammed weapon +AGM_Overheating_knowAboutJam = false; + +if (_unit getVariable ["AGM_JammingActionID", -1] == -1) then { + private ["_condition", "_statement", "_condition2", "_statement2", "_id"]; + + _condition = { + [_this select 1] call AGM_Core_fnc_canUseWeapon + && {currentMuzzle (_this select 1) in ((_this select 1) getVariable ["AGM_Overheating_jammedWeapons", []])} + && {!(currentMuzzle (_this select 1) in ((_this select 1) getVariable ["AGM_SafeMode_safedWeapons", []]))} + }; + + _statement = { + playSound3D ["a3\sounds_f\weapons\Other\dry9.wss", _this select 0]; + + if (!(missionNamespace getVariable ["AGM_Overheating_knowAboutJam", false]) && {(_this select 1) ammo currentWeapon (_this select 1) > 0}) then { + [localize "STR_AGM_Overheating_WeaponJammed"] call AGM_Core_fnc_displayTextStructured; + AGM_Overheating_knowAboutJam = true; + }; + }; + + _condition2 = { + currentWeapon (_this select 1) in ((_this select 1) getVariable ["AGM_Overheating_jammedWeapons", []]) + }; + + _statement2 = { + [_this select 1, currentWeapon (_this select 1), false] call AGM_Overheating_fnc_clearJam; + }; + + //_id = [_unit, format ["%1", localize "STR_AGM_Overheating_UnjamWeapon"], "DefaultAction", _condition, _statement, _condition2, _statement2, 10] call AGM_Core_fnc_addActionMenuEventHandler; + _id = [_unit, "DefaultAction", _condition, _statement] call AGM_Core_fnc_addActionEventHandler; + + _unit setVariable ["AGM_JammingActionID", _id]; +}; diff --git a/TO_MERGE/agm/Overheating/functions/fn_overheat.sqf b/TO_MERGE/agm/Overheating/functions/fn_overheat.sqf new file mode 100644 index 0000000000..5b4912e471 --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_overheat.sqf @@ -0,0 +1,154 @@ +// by commy2 and CAA-Picard + +private ["_unit", "_weapon", "_ammo", "_projectile", "_velocity", "_variableName", "_overheat", "_temperature", "_time", "_energyIncrement", "_barrelMass", "_scaledTemperature"]; + +_unit = _this select 0; +_weapon = _this select 1; +_ammo = _this select 4; +_projectile = _this select 6; +_velocity = velocity _projectile; + +// each weapon has it's own variable. Can't store the temperature in the weapon since they are not objects unfortunately. +_variableName = format ["AGM_Overheating_%1", _weapon]; + +// get old values +_overheat = _unit getVariable [_variableName, [0, 0]]; +_temperature = _overheat select 0; +_time = _overheat select 1; + +// Get physical parameters +_bulletMass = getNumber (configFile >> "CfgAmmo" >> _ammo >> "AGM_BulletMass"); +if (_bulletMass == 0) then { + // If the bullet mass is not configured, estimate it + _bulletMass = 3.4334 + 0.5171 * (getNumber (configFile >> "CfgAmmo" >> _ammo >> "hit") + getNumber (configFile >> "CfgAmmo" >> _ammo >> "caliber")); +}; +_energyIncrement = 0.75 * 0.0005 * _bulletMass * (vectorMagnitudeSqr _velocity); +_barrelMass = 0.50 * (getNumber (configFile >> "CfgWeapons" >> _weapon >> "WeaponSlotsInfo" >> "mass") / 22.0) max 1.0; + +// Calculate cooling +_temperature = [_temperature, _barrelMass, time - _time] call AGM_Overheating_fnc_cooldown; +// Calculate heating +_temperature = _temperature + _energyIncrement / (_barrelMass * 466); // Steel Heat Capacity = 466 J/(Kg.K) + +// set updated values +_time = time; +_unit setVariable [_variableName, [_temperature, _time], false]; +_scaledTemperature = (_temperature / 1000) min 1 max 0; + +// Smoke SFX, beginning at TEMP 0.15 +private "_intensity"; + +_intensity = (_scaledTemperature - 0.2) * 1.25; +if (_intensity > 0) then { + private ["_position", "_direction"]; + + _position = position _projectile; + _direction = (_unit weaponDirection _weapon) vectorMultiply 0.25; + + drop [ + "\A3\data_f\ParticleEffects\Universal\Refract", + "", + "Billboard", + 1.1, + 2, + _position, + _direction, + 1, + 1.2, + 1.0, + 0.1, + [0.1,0.15], + [[0.06,0.06,0.06,0.32*_scaledTemperature], [0.3,0.3,0.3,0.28*_scaledTemperature], [0.3,0.3,0.3,0.25*_scaledTemperature], [0.3,0.3,0.3,0.22*_scaledTemperature], [0.3,0.3,0.3,0.1*_scaledTemperature]], + [1,0], + 0.1, + 0.05, + "", + "", + "" + ]; + + _intensity = (_scaledTemperature - 0.5) * 2; + if (_intensity > 0) then { + drop [ + ["\A3\data_f\ParticleEffects\Universal\Universal", 16, 12, 1, 16], + "", + "Billboard", + 1, + 1.2, + _position, + [0,0,0.25], + 0, + 1.275, + 1, + 0.025, + [0.28,0.33,0.37], + [[0.6,0.6,0.6,0.3*_intensity]], + [0.2], + 1, + 0.04, + "", + "", + "" + ]; + }; +}; + + +// dispersion and bullet slow down +private ["_dispersion", "_slowdownFactor", "_count"]; + +_dispersion = getArray (configFile >> "CfgWeapons" >> _weapon >> "AGM_Overheating_Dispersion"); + +_count = count _dispersion; +if (_count > 0) then { + _dispersion = ([_dispersion, (_count - 1) * _scaledTemperature] call AGM_Core_fnc_interpolateFromArray) max 0; +} else { + _dispersion = 0; +}; + +_slowdownFactor = getArray (configFile >> "CfgWeapons" >> _weapon >> "AGM_Overheating_slowdownFactor"); + +_count = count _slowdownFactor; +if (_count > 0) then { + _slowdownFactor = ([_slowdownFactor, (_count - 1) * _scaledTemperature] call AGM_Core_fnc_interpolateFromArray) max 0; +} else { + _slowdownFactor = 1; +}; + +[_projectile, _dispersion - 2 * random _dispersion, _dispersion - 2 * random _dispersion, (_slowdownFactor - 1) * vectorMagnitude _velocity] call AGM_Core_fnc_changeProjectileDirection; + + +// jamming +private "_jamChance"; + +_jamChance = getArray (configFile >> "CfgWeapons" >> _weapon >> "AGM_Overheating_jamChance"); + +_count = count _jamChance; +if (_count == 0) then { + _jamChance = [0]; + _count = 1; +}; + +_jamChance = [_jamChance, (_count - 1) * _scaledTemperature] call AGM_Core_fnc_interpolateFromArray; + +// increase jam chance on dusty grounds if prone +if (stance _unit == "PRONE") then { + private "_surface"; + _surface = toArray (surfaceType getPosASL _unit); + _surface deleteAt 0; + + _surface = configFile >> "CfgSurfaces" >> toString _surface; + if (isClass _surface) then { + _jamChance = _jamChance + (getNumber (_surface >> "dust")) * _jamChance; + }; +}; + +if ("Jam" in (missionNamespace getvariable ["AGM_Debug", []])) then { + _jamChance = 0.5; +}; + +["Overheating", [_temperature, _jamChance], {format ["Temperature: %1 - JamChance: %2", _this select 0, _this select 1]}] call AGM_Debug_fnc_log; + +if (random 1 < _jamChance) then { + [_unit, _weapon] call AGM_Overheating_fnc_jamWeapon; +}; diff --git a/TO_MERGE/agm/Overheating/functions/fn_swapBarrel.sqf b/TO_MERGE/agm/Overheating/functions/fn_swapBarrel.sqf new file mode 100644 index 0000000000..fa6c0f64f2 --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_swapBarrel.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private ["_player", "_weapon"]; + +_player = _this select 0; +_weapon = _this select 1; + +if (stance _player != "PRONE") then { + [_player, "amovpknlmstpsraswrfldnon", 1] call AGM_Core_fnc_doAnimation; +}; +_player playActionNow "GestureDismountMuzzle"; +_player playAction "GestureMountMuzzle"; +playSound "AGM_BarrelSwap"; + +[10, [_player, _weapon], "AGM_Overheating_fnc_swapBarrelCallback", localize "STR_AGM_Overheating_SwappingBarrel"] call AGM_Core_fnc_progressBar; diff --git a/TO_MERGE/agm/Overheating/functions/fn_swapBarrelCallback.sqf b/TO_MERGE/agm/Overheating/functions/fn_swapBarrelCallback.sqf new file mode 100644 index 0000000000..d6fdf6ddc6 --- /dev/null +++ b/TO_MERGE/agm/Overheating/functions/fn_swapBarrelCallback.sqf @@ -0,0 +1,13 @@ +// by commy2 + +private ["_player", "_weapon"]; + +_player = _this select 0; +_weapon = _this select 1; + +// don't consume the barrel, but rotate through them. +//player removeItem "AGM_SpareBarrel"; + +[localize "STR_AGM_Overheating_SwappedBarrel", "\AGM_Overheating\UI\spare_barrel_ca.paa"] call AGM_Core_fnc_displayTextPicture; + +_player setVariable [format ["AGM_Overheating_%1", _weapon], [0, 0], false]; diff --git a/TO_MERGE/agm/Overheating/sounds/barrelswap.ogg b/TO_MERGE/agm/Overheating/sounds/barrelswap.ogg new file mode 100644 index 0000000000..1086d9504c Binary files /dev/null and b/TO_MERGE/agm/Overheating/sounds/barrelswap.ogg differ diff --git a/TO_MERGE/agm/Overheating/stringtable.xml b/TO_MERGE/agm/Overheating/stringtable.xml new file mode 100644 index 0000000000..8f68ebaf01 --- /dev/null +++ b/TO_MERGE/agm/Overheating/stringtable.xml @@ -0,0 +1,150 @@ + + + + + + Spare barrel + Ersatzlauf + Cañón de repuesto + Zapasowa lufa + Náhradní hlaveň + Deuxième canon + Запасной ствол + Tartalék cső + Cano Reserva + Canna di ricambio + + + Use to swap barrel. + Benutzen, um Lauf zu wechseln. + Permite intercambiar el cañón + Umożliwia wymianę lufy + Používané k výměně hlavně + Utilisé pour changer de canon. + Используется для смены ствола. + Cső kicseréléséhez. + Use para trocar o cano/estriamento. + Usata per cambiare la canna. + + + Weapon jammed! + Ladehemmung! + Arma encasquillada! + Broń się zacięła! + Zbraň se zasekla! + Arme enrayée + Оружие заклинило! + Elakadt a fegyver! + Arma travada! + Arma inceppata! + + + Clear jam + Ladehemmung beheben + Desencasquillar el arma + Usuń zacięcie + Uvolnit zbraň + Désenrayer l'arme + Исправить клин оружия. + Hárítsd el az akadályt! + Destravar arma + Ripulisci l'arma + + + Jam cleared + Ladehemmung behoben + Arma desencasquillada + Zacięcie usunięte + Zbraň uvolněna + Arme désenrayée + Оружие исправлено + Akadály elhárítva! + Arma destravada + Arma pronta al fuoco + + + Swap barrel + Lauf wechseln + Cambiar el cañón + Wymień lufę + Vyměnit hlaveň + Changer de canon + Сменить ствол + Cserélj csövet! + Substituir cano + Sostiuisci la canna + + + Swapping barrel... + Lauf wird gewechselt... + Cambiando el cañón... + Wymienianie lufy... + Vyměňuji hlaveň ... + Changement du canon... + Смена ствола... + Cső cserélése... + Substituindo cano... + Sto sostituendo la canna ... + + + Swapped barrel + Lauf gewechselt + Cañón cambiado + Lufa wymieniona + Hlaveň vyměněna + Canon changé + Ствол сменен + Cső kicserélve! + Cano substituído + Canna sostituita + + + Check weapons temperature + Temperatur der Waffe prüfen + Verificar temperatura del arma + Sprawdź temperaturę broni + Vérifier la température de l'arme + Hőmérséklet ellenőrzése + Zjistit teplotu zbraně + Conferir temperatura da arma + Controlla la temperatura della canna + Проверить температуру оружия + + + Check temperature + Temperatur prüfen + Verificar temperatura + Sprawdź temperaturę + Vérifier la température + Hőmérséklet ellenőrzése + Zjistit teplotu + Conferir temperatura + Controlla la temperatura + Проверить температуру + + + Checking temperature ... + Prüfe Temperatur ... + Verificando temperatura ... + Sprawdzanie temperatury ... + Vérification de la température ... + Hőmérséklet ellenőrzése... + Zjišťuju teplotu ... + Conferindo temperatura ... + Sto controllando la temperatura ... + Проверка температуры ... + + + Temperature + Temperatur + Temperatura + Temperatura + Température + Hőmérséklet + Teplota + Temperatura + Temperatura + Температура + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Parachute/Gurtgeschirr.p3d b/TO_MERGE/agm/Parachute/Gurtgeschirr.p3d new file mode 100644 index 0000000000..91456b87a8 Binary files /dev/null and b/TO_MERGE/agm/Parachute/Gurtgeschirr.p3d differ diff --git a/TO_MERGE/agm/Parachute/RscTitles.hpp b/TO_MERGE/agm/Parachute/RscTitles.hpp new file mode 100644 index 0000000000..ae90e0f472 --- /dev/null +++ b/TO_MERGE/agm/Parachute/RscTitles.hpp @@ -0,0 +1,51 @@ +class RscText; +class RscPicture; +class RscTitles { + class AGM_Altimeter { + idd = 9935; + enableSimulation = 1; + movingEnable = 0; + fadeIn=0; + fadeOut=1; + duration = 10e10; + onLoad = "uiNamespace setVariable ['AGM_Altimeter', _this select 0];"; + class controls { + class AltimeterImage: RscPicture { + idc = 1200; + text = "AGM_Parachute\UI\watch_altimeter.paa"; + x = 0.118437 * safezoneW + safezoneX; + y = 0.621 * safezoneH + safezoneY; + w = 0.20625 * safezoneW; + h = 0.341 * safezoneH; + }; + class HeightText: RscText { + idc = 1100; + text = "----"; + x = 0.200937 * safezoneW + safezoneX; + y = 0.764 * safezoneH + safezoneY; + w = 0.04125 * safezoneW; + h = 0.033 * safezoneH; + colorBackground[] = {0,0,0,0}; + colorText[] = {0,0,0,1}; + }; + class DecendRate: RscText { + idc = 1000; + text = "--"; + x = 0.21125 * safezoneW + safezoneX; + y = 0.742 * safezoneH + safezoneY; + w = 0.020625 * safezoneW; + h = 0.022 * safezoneH; + colorText[] = {0,0,0,1}; + }; + class TimeText: RscText { + idc = 1001; + text = "00:00"; + x = 0.206094 * safezoneW + safezoneX; + y = 0.819 * safezoneH + safezoneY; + w = 0.0309375 * safezoneW; + h = 0.022 * safezoneH; + colorText[] = {0,0,0,1}; + }; + }; + }; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Parachute/T10Schirm.p3d b/TO_MERGE/agm/Parachute/T10Schirm.p3d new file mode 100644 index 0000000000..18ab0548f6 Binary files /dev/null and b/TO_MERGE/agm/Parachute/T10Schirm.p3d differ diff --git a/TO_MERGE/agm/Parachute/UI/watch_altimeter.paa b/TO_MERGE/agm/Parachute/UI/watch_altimeter.paa new file mode 100644 index 0000000000..53a643d92a Binary files /dev/null and b/TO_MERGE/agm/Parachute/UI/watch_altimeter.paa differ diff --git a/TO_MERGE/agm/Parachute/clientInit.sqf b/TO_MERGE/agm/Parachute/clientInit.sqf new file mode 100644 index 0000000000..8c2c4274b5 --- /dev/null +++ b/TO_MERGE/agm/Parachute/clientInit.sqf @@ -0,0 +1,33 @@ +/* + Name: AGM_Parachute_fnc_init + + Author: Garth de Wet (LH) + + Description: + Auto called by Arma. + Initialises the parachute system. + + Parameters: + + Returns: + Nothing + + Example: + call AGM_Parachute_fnc_init; +*/ +[] spawn { + AGM_Parachuting_PFH = false; + while {true} do { + sleep 1; + // I believe this doesn't work for Zeus. + // vehicle _player + if (!AGM_Parachuting_PFH && {(vehicle AGM_player) isKindOf "ParachuteBase"}) then { + AGM_Parachuting_PFH = true; + ["AGM_ParachuteFix", "OnEachFrame", {call AGM_Parachute_fnc_onEachFrame;}] call BIS_fnc_addStackedEventHandler; + }; + }; +}; + +// don't show speed and height when in expert mode +["Parachute", {if (!cadetMode) then {_dlg = _this select 0; {(_dlg displayCtrl _x) ctrlShow false} forEach [121, 122, 1004, 1005, 1006, 1014];};}] call AGM_Core_fnc_addInfoDisplayEventHandler; +["Soldier", {if (!cadetMode) then {_dlg = _this select 0; {_ctrl = (_dlg displayCtrl _x); _ctrl ctrlSetPosition [0,0,0,0]; _ctrl ctrlCommit 0;} forEach [380, 382]};}] call AGM_Core_fnc_addInfoDisplayEventHandler; diff --git a/TO_MERGE/agm/Parachute/config.cpp b/TO_MERGE/agm/Parachute/config.cpp new file mode 100644 index 0000000000..78a3f42f75 --- /dev/null +++ b/TO_MERGE/agm/Parachute/config.cpp @@ -0,0 +1,90 @@ +class CfgPatches { + class AGM_Parachute { + units[] = {"AGM_NonSteerableParachute"}; + weapons[] = {"AGM_Altimeter"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"Garth 'LH' de Wet"}; + }; +}; + +class CfgFunctions { + class AGM_Parachute { + class AGM_Parachute { + file = "\AGM_Parachute\functions"; + class onEachFrame; + class doLanding; + class hideAltimeter; + class showAltimeter; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Parachute { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Parachute\clientInit.sqf';"; + }; +}; + +class AGM_Core_Default_Keys { + class showAltimeterNew { + displayName = "$STR_AGM_Parachute_showAltimeter"; + condition = "'AGM_Altimeter' in assignedItems _player"; + statement = "if (isNull (missionNamespace getVariable ['AGM_Parachute_AltimeterFnc', scriptNull])) then {[_player] call AGM_Parachute_fnc_showAltimeter} else {call AGM_Parachute_fnc_hideAltimeter}"; + exceptions[] = {"AGM_Drag_isNotDragging", "AGM_Medical_canTreat", "AGM_Interaction_isNotEscorting"}; + key = 24; + shift = 0; + control = 0; + alt = 0; + }; +}; + +#include "RscTitles.hpp" + +class CfgWeapons { + class ItemWatch; + class AGM_Altimeter:ItemWatch { + author = "$STR_AGM_Core_AGMTeam"; + descriptionShort = "$STR_AGM_Parachute_AltimeterDescription"; + displayName = "$STR_AGM_Parachute_AltimeterDisplayName"; + picture = "\AGM_Parachute\UI\watch_altimeter.paa"; + }; +}; + +class CfgVehicles { + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + class _xx_AGM_Altimeter { + name = "AGM_Altimeter"; + count = 6; + }; + }; + class TransportBackpacks { + class _xx_AGM_NonSteerableParachute { + backpack = "AGM_NonSteerableParachute"; + count = 4; + }; + }; + }; + + class B_Parachute; + class AGM_NonSteerableParachute: B_Parachute { + author = "$STR_AGM_Core_AGMTeam"; + scope = 2; + displayName = "$STR_AGM_Parachute_NonSteerableParachute"; + //picture = "\A3\Characters_F\data\ui\icon_b_parachute_ca.paa"; // @todo + //model = "\A3\Weapons_F\Ammoboxes\Bags\Backpack_Parachute"; // @todo + backpackSimulation = "ParachuteNonSteerable"; //ParachuteSteerable + ParachuteClass = "NonSteerable_Parachute_F"; + maximumLoad = 0; + mass = 100; + }; + + class B_Soldier_05_f; class B_Pilot_F: B_Soldier_05_f {backpack = "AGM_NonSteerableParachute";}; + class I_Soldier_04_F; class I_pilot_F: I_Soldier_04_F {backpack = "AGM_NonSteerableParachute";}; + class O_helipilot_F; class O_Pilot_F: O_helipilot_F {backpack = "AGM_NonSteerableParachute";}; +}; diff --git a/TO_MERGE/agm/Parachute/functions/fn_doLanding.sqf b/TO_MERGE/agm/Parachute/functions/fn_doLanding.sqf new file mode 100644 index 0000000000..a4d4cf9f81 --- /dev/null +++ b/TO_MERGE/agm/Parachute/functions/fn_doLanding.sqf @@ -0,0 +1,25 @@ +/* + Name: AGM_Parachute_fnc_doLanding + + Author: Garth de Wet (LH) + + Description: + Performs the landing animation fix + + Parameters: + 0: OBJECT - unit + + Returns: + Nothing + + Example: + [player] call AGM_Parachute_fnc_doLanding; +*/ +_unit = _this select 0; +["AGM_ParachuteFix", "OnEachFrame"] call BIS_fnc_removeStackedEventHandler; +AGM_Parachuting_PFH = false; +[_unit, "AmovPercMevaSrasWrflDf_AmovPknlMstpSrasWrflDnon", 2] call AGM_Core_fnc_doAnimation; +[_unit] spawn { + sleep 1; + (_this select 0) playActionNow "Crouch"; +}; \ No newline at end of file diff --git a/TO_MERGE/agm/Parachute/functions/fn_hideAltimeter.sqf b/TO_MERGE/agm/Parachute/functions/fn_hideAltimeter.sqf new file mode 100644 index 0000000000..4144789613 --- /dev/null +++ b/TO_MERGE/agm/Parachute/functions/fn_hideAltimeter.sqf @@ -0,0 +1,18 @@ +/* + Name: AGM_Parachute_fnc_hideAltimeter + + Author: Garth de Wet (LH) + + Description: + Removes the altimeter from the screen. + + Parameters: + + Returns: + Nothing + + Example: + call AGM_Parachute_fnc_hideAltimeter +*/ +terminate AGM_Parachute_AltimeterFnc; +(["AGM_Altimeter"] call BIS_fnc_rscLayer) cutText ["","PLAIN",0,true]; diff --git a/TO_MERGE/agm/Parachute/functions/fn_onEachFrame.sqf b/TO_MERGE/agm/Parachute/functions/fn_onEachFrame.sqf new file mode 100644 index 0000000000..367396d8ac --- /dev/null +++ b/TO_MERGE/agm/Parachute/functions/fn_onEachFrame.sqf @@ -0,0 +1,31 @@ +/* + Name: AGM_Parachute_fnc_onEachFrame + + Author: Garth de Wet (LH) + + Description: + Checks if a unit can defuse an explosive + + Parameters: + 0: OBJECT - unit + + Returns: + Nothing + + Example: + call AGM_Parachute_fnc_onEachFrame; +*/ +private "_player"; +_player = AGM_player; +if (isNull _player) exitWith {["AGM_ParachuteFix", "OnEachFrame"] call BIS_fnc_removeStackedEventHandler;AGM_Parachuting_PFH = false;}; +if !((vehicle _player) isKindOf "ParachuteBase") exitWith {}; +if (isTouchingGround _player) exitWith {}; + +private ["_pos", "_intersects"]; +_pos = getPosASL (Vehicle _player); + +if ((lineIntersects [_pos, _pos vectorAdd [0,0,-0.5], vehicle _player, _player]) || {((ASLtoATL _pos) select 2) < 0.75}) then { +// I believe this will not work for Zeus units. + deleteVehicle (vehicle _player); + [_player] call AGM_Parachute_fnc_doLanding; +}; diff --git a/TO_MERGE/agm/Parachute/functions/fn_showAltimeter.sqf b/TO_MERGE/agm/Parachute/functions/fn_showAltimeter.sqf new file mode 100644 index 0000000000..c7547335c0 --- /dev/null +++ b/TO_MERGE/agm/Parachute/functions/fn_showAltimeter.sqf @@ -0,0 +1,52 @@ +/* + Name: AGM_Parachute_fnc_showAltimeter + + Author: Garth de Wet (LH) + + Description: + Displays the altimeter on screen. + + Parameters: + 0: OBJECT - unit to track for the altimeter + + Returns: + Nothing + + Example: + [player] call AGM_Parachute_fnc_showAltimeter +*/ +private ["_unit"]; +_unit = _this select 0; +(["AGM_Altimeter"] call BIS_fnc_rscLayer) cutRsc ["AGM_Altimeter", "PLAIN",0,true]; +if (isNull (uiNamespace getVariable ["AGM_Altimeter", displayNull])) exitWith {}; + +AGM_Parachute_AltimeterFnc = [uiNamespace getVariable ["AGM_Altimeter", displayNull], _unit] spawn { + private ["_height", "_hour", "_minute", "_descentRate"]; + _unit = _this select 1; + _height = floor ((getPosASL _unit) select 2); + _oldHeight = _height; + _descentRate = 0; + _hour = floor daytime; + _minute = floor ((daytime - _hour) * 60); + disableSerialization; + private ["_HeightText", "_DecendRate", "_TimeText", "_prevTime", "_curTime"]; + _HeightText = (_this select 0) displayCtrl 1100; + _DecendRate = (_this select 0) displayCtrl 1000; + _TimeText = (_this select 0) displayCtrl 1001; + _curTime = time; + _prevTime = _curTime; + while {true} do { + _TimeText ctrlSetText (format ["%1:%2",[_hour, 2] call AGM_Core_fnc_numberToDigitsString,[_minute, 2] call AGM_Core_fnc_numberToDigitsString]); + _HeightText ctrlSetText (format ["%1", floor(_height)]); + _DecendRate ctrlSetText (format ["%1", _descentRate max 0]); + sleep 0.2; + _height = (getPosASL _unit) select 2; + _curTime = time; + _descentRate = floor ((_oldHeight - _height) / (_curTime - _prevTime)); + _oldHeight = _height; + _prevTime = _curTime; + + // close altimeter, @todo _unit can change due to team switch, zeus! + if !("AGM_Altimeter" in assignedItems _unit) exitWith {call AGM_Parachute_fnc_hideAltimeter}; + }; +}; diff --git a/TO_MERGE/agm/Parachute/stringtable.xml b/TO_MERGE/agm/Parachute/stringtable.xml new file mode 100644 index 0000000000..f1542b1db8 --- /dev/null +++ b/TO_MERGE/agm/Parachute/stringtable.xml @@ -0,0 +1,46 @@ + + + + + + Altimeter + Altimètre + Höhenmesser + Výškoměr + Wysokościomierz + Altímetro + Magasságmérő + Высотомер + + + Altimeter Watch + Montre altimètre + Höhenmesser + Hodinky s výškoměrem + Zegarek z wysokościomierzem + Reloj altímetro + Magasságmérő + Часы с высотомером + + + Used to show height, descent rate and the time. + Affiche la hauteur, le taux de descente et l'heure. + Zeigt Höhe, Fallgeschwindigkeit und Uhrzeit. + Používané k zjištění výšky, rychlosti sestupu a času. + Używany przez spadochroniarzy, pokazuje wysokość, prędkość opadania oraz czas. + Utilizado para mostrar altura, tasa de descenso y hora. + Mutatja a magasságot, zuhanás sebességét és az időt. + Используется для определения высоты, скорости снижения и времени. + + + Non-Steerable Parachute + Ungelenkter Fallschirm + Paracaídas no dirigible + Parachute non manœuvrable + Niesterowalny spadochron + Neříditelný padák + Irányithatatlan ejtőernyő + Неуправляемый парашют + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Ragdolls/config.cpp b/TO_MERGE/agm/Ragdolls/config.cpp new file mode 100644 index 0000000000..8e71dfef61 --- /dev/null +++ b/TO_MERGE/agm/Ragdolls/config.cpp @@ -0,0 +1,801 @@ +class CfgPatches { + class AGM_Ragdolls { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "Opticalsnare"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +/* + * BASED ON OPTICALSNARE'S WORK + * He gave permission to use his code here: + * http://forums.bistudio.com/showthread.php?171771-Flying-bodies-Physics-Mod&p=2603042#post2603042 + */ + +class PhysXParams { + epeImpulseDamageCoef = 1320.0; + impulseForceRagdollCoef = 200; + impulseTorqueRagdollCoef = 100; + maxRagdollImpulseForceMagnitude = 500; + maxRagdollImpulseTorqueMagnitude = 150; + ragdollHitDmgLimit = "0.01f"; + ragdollHitForceCoef = "20f"; + ragdollHitTime = "0.05f"; + ragdollOnCollideForceCoef = "20.0f"; + ragdollOnCollideMassLimit = "0.0f"; + ragdollOnCollideMaxForce = "25.0f"; + ragdollOnCollideMaxOffset = "2.0f"; + ragdollOnCollideMaxOffsetSpeed = "50.0f"; + ragdollOnCollideSpeedLimit = "2500.0f"; + ragdollOnCollideVehicleImpulseCoef = "0.5f"; + ragdollUnconsciousSleepCoef = "0f"; + ragdollUnderwaterBuoyancyCoef = 9.7; + ragdollUnderwaterResistanceCoef = 0.005; + ragdollVehicleCollision = 1; +}; + +class RagDollDefaultLimit { + value = 0; + restitution = 0.9; + hardness = 0.5; +}; + +class RagDollDefaultSpring { + enabled = 0; + value = 0.5; + damper = 1; + targetValue = 0; +}; + +class RagDollSphericalJoint { + class TwistLimitLow : RagDollDefaultLimit {}; + + class TwistLimitHigh : RagDollDefaultLimit {}; + + class SwingLimit : RagDollDefaultLimit {}; + + class TwistSpring : RagDollDefaultSpring { + enabled = 1; + }; + + class SwingSpring : RagDollDefaultSpring { + enabled = 1; + damper = 2; + }; + + class JointSpring : RagDollDefaultSpring { + enabled = 0; + }; + type = "spherical"; + enableCollision = 0; + projectionDistance = 0.05; + projectionMode = "point"; +}; + +class RagDollRevoluteJoint { + class LimitLow : RagDollDefaultLimit {}; + + class LimitHigh : RagDollDefaultLimit {}; + + class Spring : RagDollDefaultSpring { + enabled = 0; + }; + type = "revolute"; + enableCollision = 0; + projectionDistance = 0.05; + projectionMode = "point"; +}; + +class RagDollD6Joint_PX3 { + type = "D6"; + enableCollision = 0; + projectionDistance = 0.05; + projectionMode = "point"; + swingLimitY = "0.0f"; + swingLimitZ = "0.0f"; + swingSpring = "0.0f"; + swingDamping = "0.0f"; + swingRestitution = "0.6f"; + swingContactDistance = "0.05f"; + twistLimitLower = "0.0f"; + twistLimitUpper = "0.0f"; + twistSpring = "0.0f"; + twistDamping = "0.0f"; + twistRestitution = "0.6f"; + twistContactDistance = "0.05f"; + driveSpring = "20.0f"; + driveDamping = "20.0f"; + driveMaxForce = "1000000.0f"; + driveUseAcceleration = 1; + driveLinearVelocity[] = {0, 0, 0}; + driveAngularVelocity[] = {0, 0, 0}; +}; + +class CfgRagDollSkeletons { + class BaseRagdoll { + primaryWeaponBone = ""; + secondaryWeaponBone = ""; + networkBonePrimary = ""; + networkBoneSecondary = ""; + weaponSleepLinearVelocity = 20; + weaponSleepAngularVelocity = 20; + weaponDropMinTime = 1.0; + weaponDropMaxTime = 100.0; + weaponDistanceLimit = "10f"; + weaponDistanceLimitTime = "5.0f"; + sleepLinearVelocity = 0.05; + sleepAngularVelocity = 0.05; + simulateMinTime = 30; + simulateMaxTime = 100.0; + simulateDistanceLimit = "0.05f"; + simulateDistanceLimitTime = "5.0f"; + recoveryBlendTime = "0.5f"; + recoveryCosLimit = "0.3f"; + recoveryDistLimit = "0.7f"; + animBlendTime = "0.0f"; + }; + + class Soldier : BaseRagdoll { + primaryWeaponBone = "weapon"; + secondaryWeaponBone = "launcher"; + networkBonePrimary = "chest"; + networkBoneSecondary = "pelvis"; + draggingMask = "dragging"; + hitMask = "hit"; + hitMaskUnderwater = "hitUnderwater"; + + class WeaponLinkBones { + class LinkBone1 { + bone = "leftHand"; + canBeDropped = 1; + prefference = "1.0f"; + }; + + class LinkBone2 { + bone = "rightHand"; + canBeDropped = 1; + prefference = "2.0f"; + }; + + class LinkBone3 { + bone = "chest"; + canBeDropped = 1; + prefference = "1.0f"; + }; + }; + + class Masks { + class DraggingMask { + name = "dragging"; + mask[] = {{"pelvis", 0, 1}, {"chest", 0, 1}, {"head", "0.6f", 0}, {"leftArm", 1, 0}, {"leftForeArm", 1, 0}, {"leftHand", 1, 0}, {"rightArm", 1, 0}, {"rightForeArm", 1, 0}, {"rightHand", 1, 0}, {"leftUpLeg", 1, 0}, {"leftLeg", 1, 0}, {"leftFoot", 1, 0}, {"rightUpLeg", 1, 0}, {"rightLeg", 1, 0}, {"rightFoot", 1, 0}, {"weapon", 0, 1}, {"launcher", 0, 1}}; + }; + + class HitMask { + name = "hit"; + mask[] = {{"pelvis", 1, 0}, {"chest", 1, 0}, {"head", 1, 0}, {"leftArm", 1, 0}, {"leftForeArm", 1, 0}, {"leftHand", 1, 0}, {"rightArm", 1, 0}, {"rightForeArm", 1, 0}, {"rightHand", 1, 0}, {"leftUpLeg", 1, 0}, {"leftLeg", 1, 0}, {"leftFoot", 1, 1}, {"rightUpLeg", 1, 0}, {"rightLeg", 1, 0}, {"rightFoot", 1, 1}, {"weapon", 1, 0}, {"launcher", 1, 0}}; + }; + + class HitMaskUnderwater { + name = "hitUnderwater"; + mask[] = {{"pelvis", 1, 1}, {"chest", 1, 1}, {"head", 1, 0}, {"leftArm", 1, 0}, {"leftForeArm", 1, 0}, {"leftHand", 1, 0}, {"rightArm", 1, 0}, {"rightForeArm", 1, 0}, {"rightHand", 1, 0}, {"leftUpLeg", 1, 0}, {"leftLeg", 1, 0}, {"leftFoot", 1, 0}, {"rightUpLeg", 1, 0}, {"rightLeg", 1, 0}, {"rightFoot", 1, 0}, {"weapon", 1, 0}, {"launcher", 1, 0}}; + }; + }; + + class BaseRagdollBone { + material = "Ragdoll"; + childrenUseStartTrans = 1; + }; + + class Bones { + class Pelvis : BaseRagdollBone { + name = "pelvis"; + type = "capsule"; + startBone = "pelvis"; + endBone = "spine2"; + mass = 15; + radius = 0.12; + networkType = "root"; + }; + + class Chest : BaseRagdollBone { + name = "chest"; + type = "capsule"; + startBone = "spine1"; + endBone = "neck"; + radius = 0.16; + mass = 15; + }; + + class Head : BaseRagdollBone { + name = "head"; + type = "sphere"; + startBone = "head"; + mass = 8; + radius = 0.16; + }; + + class LeftArm : BaseRagdollBone { + name = "leftArm"; + type = "capsule"; + startBone = "leftArm"; + endBone = "leftForeArm"; + mass = 8; + }; + + class LeftForeArm : BaseRagdollBone { + name = "leftForeArm"; + type = "capsule"; + startBone = "leftForeArm"; + endBone = "leftHand"; + mass = 6; + }; + + class LeftHand : BaseRagdollBone { + name = "leftHand"; + type = "sphere"; + startBone = "leftHand"; + mass = 6; + radius = 0.08; + childrenUseStartTrans = 0; + networkType = "leftHand"; + }; + + class RightArm : BaseRagdollBone { + name = "rightArm"; + type = "capsule"; + startBone = "rightArm"; + endBone = "rightForeArm"; + mass = 8; + }; + + class RightForeArm : BaseRagdollBone { + name = "rightForeArm"; + type = "capsule"; + startBone = "rightForeArm"; + endBone = "rightHand"; + mass = 6; + }; + + class RightHand : BaseRagdollBone { + name = "rightHand"; + type = "sphere"; + startBone = "rightHand"; + mass = 6; + radius = 0.08; + childrenUseStartTrans = 0; + networkType = "rightHand"; + }; + + class LeftUpLeg : BaseRagdollBone { + name = "leftUpLeg"; + type = "capsule"; + startBone = "leftUpLeg"; + endBone = "leftLeg"; + mass = 15; + }; + + class LeftLeg : BaseRagdollBone { + name = "leftLeg"; + type = "capsule"; + startBone = "leftLeg"; + endBone = "leftFoot"; + mass = 10; + }; + + class LeftFoot : BaseRagdollBone { + name = "leftFoot"; + type = "box"; + startBone = "leftFoot"; + size[] = {0.15, 0.035, 0.07}; + mass = 8; + networkType = "leftFoot"; + }; + + class RightUpLeg : BaseRagdollBone { + name = "rightUpLeg"; + type = "capsule"; + startBone = "rightUpLeg"; + endBone = "rightLeg"; + mass = 15; + }; + + class RightLeg : BaseRagdollBone { + name = "rightLeg"; + type = "capsule"; + startBone = "rightLeg"; + endBone = "rightFoot"; + mass = 10; + }; + + class RightFoot : BaseRagdollBone { + name = "rightFoot"; + type = "box"; + startBone = "rightFoot"; + size[] = {0.15, 0.035, 0.07}; + mass = 8; + networkType = "rightFoot"; + }; + + class Weapon : BaseRagdollBone { + name = "weapon"; + type = "weapon"; + startBone = "weapon"; + endPosRelToStart[] = {0.0, 1.0, 0.0}; + mass = 3; + }; + + class Launcher : BaseRagdollBone { + name = "launcher"; + type = "weapon"; + startBone = "launcher"; + endPosRelToStart[] = {1.0, 0.0, 0.0}; + mass = 3; + }; + }; + + class JointsPX2 { + class Pelvis_Chest_PX2 : RagDollSphericalJoint { + name = "pelvis_chest"; + bone1 = "pelvis"; + bone2 = "chest"; + axis[] = {0, 1, 0.3}; + + class SwingLimit : SwingLimit { + value = 25; + }; + + class TwistLimitLow : TwistLimitLow { + value = -15; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 25; + }; + }; + + class Chest_Head_PX2 : RagDollSphericalJoint { + name = "chest_head"; + bone1 = "chest"; + bone2 = "head"; + + class SwingLimit : SwingLimit { + value = 20; + }; + + class TwistLimitLow : TwistLimitLow { + value = -15; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 15; + }; + }; + + class Chest_LeftArm_PX2 : RagDollSphericalJoint { + name = "chest_leftArm"; + bone1 = "chest"; + bone2 = "leftArm"; + axis[] = {-1, 0.0, 0.5}; + enableCollision = 1; + + class SwingLimit : SwingLimit { + value = 60; + }; + + class TwistLimitLow : TwistLimitLow { + value = -20; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 20; + }; + }; + + class LeftArm_LeftForeArm_PX2 : RagDollRevoluteJoint { + name = "leftArm_leftForeArm"; + bone1 = "leftArm"; + bone2 = "leftForeArm"; + axis[] = {1, -1, 0.2}; + + class LimitLow : LimitLow { + value = -2; + }; + + class LimitHigh : LimitHigh { + value = 60; + }; + }; + + class LeftForeArm_LeftHand_PX2 : RagDollSphericalJoint { + name = "leftForeArm_leftHand"; + bone1 = "leftForeArm"; + bone2 = "leftHand"; + + class SwingLimit : SwingLimit { + value = 20; + }; + + class TwistLimitLow : TwistLimitLow { + value = -5; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 5; + }; + }; + + class Chest_RightArm_PX2 : RagDollSphericalJoint { + name = "chest_rightArm"; + bone1 = "chest"; + bone2 = "rightArm"; + axis[] = {1, 0.0, 0.5}; + enableCollision = 1; + + class SwingLimit : SwingLimit { + value = 60; + }; + + class TwistLimitLow : TwistLimitLow { + value = -20; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 20; + }; + }; + + class RightArm_RightForeArm_PX2 : RagDollRevoluteJoint { + name = "rightArm_rightForeArm"; + bone1 = "rightArm"; + bone2 = "rightForeArm"; + axis[] = {1, 1, -0.2}; + + class LimitLow : LimitLow { + value = -2; + }; + + class LimitHigh : LimitHigh { + value = 60; + }; + }; + + class RightForeArm_RightHand_PX2 : RagDollSphericalJoint { + name = "rightForeArm_rightHand"; + bone1 = "rightForeArm"; + bone2 = "rightHand"; + + class SwingLimit : SwingLimit { + value = 20; + }; + + class TwistLimitLow : TwistLimitLow { + value = -5; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 5; + }; + }; + + class Pelvis_LeftUpLeg_PX2 : RagDollSphericalJoint { + name = "pelvis_leftUpLeg"; + bone1 = "pelvis"; + bone2 = "leftUpLeg"; + axis[] = {-1.5, -1.1, 2}; + enableCollision = 1; + + class SwingLimit : SwingLimit { + value = 45; + }; + + class TwistLimitLow : TwistLimitLow { + value = -10; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 20; + }; + }; + + class LeftUpLeg_LeftLeg_PX2 : RagDollRevoluteJoint { + name = "leftUpLeg_leftLeg"; + bone1 = "leftUpLeg"; + bone2 = "leftLeg"; + axis[] = {-1, 0, 0}; + + class LimitLow : LimitLow { + value = -5; + }; + + class LimitHigh : LimitHigh { + value = 110; + }; + }; + + class LeftLeg_LeftFoot_PX2 : RagDollRevoluteJoint { + name = "leftLeg_leftFoot"; + bone1 = "leftLeg"; + bone2 = "leftFoot"; + axis[] = {-1, 0, 0}; + + class LimitLow : LimitLow { + value = -15; + }; + + class LimitHigh : LimitHigh { + value = 45; + }; + }; + + class Pelvis_RightUpLeg_PX2 : RagDollSphericalJoint { + name = "pelvis_rightUpLeg"; + bone1 = "pelvis"; + bone2 = "rightUpLeg"; + axis[] = {1.5, -1.1, 2}; + enableCollision = 1; + + class SwingLimit : SwingLimit { + value = 45; + }; + + class TwistLimitLow : TwistLimitLow { + value = -10; + }; + + class TwistLimitHigh : TwistLimitHigh { + value = 20; + }; + }; + + class RightUpLeg_RightLeg_PX2 : RagDollRevoluteJoint { + name = "rightUpLeg_rightLeg"; + bone1 = "rightUpLeg"; + bone2 = "rightLeg"; + axis[] = {-1, 0, 0}; + + class LimitLow : LimitLow { + value = -5; + }; + + class LimitHigh : LimitHigh { + value = 110; + }; + }; + + class RightLeg_RightFoot_PX2 : RagDollRevoluteJoint { + name = "rightLeg_rightFoot"; + bone1 = "rightLeg"; + bone2 = "rightFoot"; + axis[] = {-1, 0, 0}; + + class LimitLow : LimitLow { + value = -15; + }; + + class LimitHigh : LimitHigh { + value = 45; + }; + }; + }; + + class JointsPX3 { + class Pelvis_Chest_PX3 : RagDollD6Joint_PX3 { + name = "pelvis_chest"; + bone1 = "pelvis"; + bone2 = "chest"; + axis[] = {0, 1, 0.3}; + enableCollision = 0; + swingLimitY = 30; + swingLimitZ = 30; + twistLimitLower = -25; + twistLimitUpper = 25; + driveSpring = 30; + driveDamping = 30; + driveSpringWater = 5; + driveDampingWater = 5; + }; + + class Chest_Head_PX3 : RagDollD6Joint_PX3 { + name = "chest_head"; + bone1 = "chest"; + bone2 = "head"; + swingLimitY = 45; + swingLimitZ = 45; + twistLimitLower = -40; + twistLimitUpper = 40; + driveSpring = 15.0; + driveDamping = 30; + driveSpringWater = 1.5; + driveDampingWater = 3.0; + twistSpring = 15.0; + twistDamping = 30.0; + }; + + class Chest_LeftArm_PX3 : RagDollD6Joint_PX3 { + name = "chest_leftArm"; + bone1 = "chest"; + bone2 = "leftArm"; + enableCollision = 1; + swingLimitY = 85; + swingLimitZ = 85; + twistLimitLower = -60; + twistLimitUpper = 60; + driveSpring = 30; + driveDamping = 30; + driveSpringWater = 3; + driveDampingWater = 3; + }; + + class LeftArm_LeftForeArm_PX3 : RagDollD6Joint_PX3 { + name = "leftArm_leftForeArm"; + bone1 = "leftArm"; + bone2 = "leftForeArm"; + axis[] = {-1, 1, -0.2}; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -5; + twistLimitUpper = 150; + driveSpring = 10; + driveDamping = 10; + driveSpringWater = 1; + driveDampingWater = 1; + }; + + class LeftForeArm_LeftHand_PX3 : RagDollD6Joint_PX3 { + name = "leftForeArm_leftHand"; + bone1 = "leftForeArm"; + bone2 = "leftHand"; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -20; + twistLimitUpper = 20; + driveSpring = 10; + driveDamping = 10; + driveSpringWater = 1; + driveDampingWater = 1; + }; + + class Chest_RightArm_PX3 : RagDollD6Joint_PX3 { + name = "chest_rightArm"; + bone1 = "chest"; + bone2 = "rightArm"; + enableCollision = 1; + swingLimitY = 85; + swingLimitZ = 85; + twistLimitLower = -60; + twistLimitUpper = 60; + driveSpring = 30; + driveDamping = 30; + driveSpringWater = 3; + driveDampingWater = 3; + }; + + class RightArm_RightForeArm_PX3 : RagDollD6Joint_PX3 { + name = "rightArm_rightForeArm"; + bone1 = "rightArm"; + bone2 = "rightForeArm"; + axis[] = {-1, -1, 0.2}; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -5; + twistLimitUpper = 150; + driveSpring = 10; + driveDamping = 10; + driveSpringWater = 1; + driveDampingWater = 1; + }; + + class RightForeArm_RightHand_PX3 : RagDollD6Joint_PX3 { + name = "rightForeArm_rightHand"; + bone1 = "rightForeArm"; + bone2 = "rightHand"; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -20; + twistLimitUpper = 20; + driveSpring = 10; + driveDamping = 10; + driveSpringWater = 1; + driveDampingWater = 1; + }; + + class Pelvis_LeftUpLeg_PX3 : RagDollD6Joint_PX3 { + name = "pelvis_leftUpLeg"; + bone1 = "pelvis"; + bone2 = "leftUpLeg"; + enableCollision = 1; + swingLimitY = 35; + swingLimitZ = 35; + twistLimitLower = -10; + twistLimitUpper = 60; + driveSpring = 30; + driveDamping = 30; + driveSpringWater = 3; + driveDampingWater = 3; + twistDamping = 30.0; + }; + + class LeftUpLeg_LeftLeg_PX3 : RagDollD6Joint_PX3 { + name = "leftUpLeg_leftLeg"; + bone1 = "leftUpLeg"; + bone2 = "leftLeg"; + axis[] = {1, 0, 0}; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -5; + twistLimitUpper = 120; + driveSpring = 20; + driveDamping = 20; + driveSpringWater = 2; + driveDampingWater = 2; + }; + + class LeftLeg_LeftFoot_PX3 : RagDollD6Joint_PX3 { + name = "leftLeg_leftFoot"; + bone1 = "leftLeg"; + bone2 = "leftFoot"; + axis[] = {1, 0, 0}; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -15; + twistLimitUpper = 45; + driveSpring = 20; + driveDamping = 20; + driveSpringWater = 2; + driveDampingWater = 2; + }; + + class Pelvis_RightUpLeg_PX3 : RagDollD6Joint_PX3 { + name = "pelvis_rightUpLeg"; + bone1 = "pelvis"; + bone2 = "rightUpLeg"; + enableCollision = 1; + swingLimitY = 35; + swingLimitZ = 35; + twistLimitLower = -10; + twistLimitUpper = 60; + driveSpring = 30; + driveDamping = 30; + driveSpringWater = 3; + driveDampingWater = 3; + twistDamping = 30.0; + }; + + class RightUpLeg_RightLeg_PX3 : RagDollD6Joint_PX3 { + name = "rightUpLeg_rightLeg"; + bone1 = "rightUpLeg"; + bone2 = "rightLeg"; + axis[] = {1, 0, 0}; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -5; + twistLimitUpper = 120; + driveSpring = 20; + driveDamping = 20; + driveSpringWater = 2; + driveDampingWater = 2; + }; + + class RightLeg_RightFoot_PX3 : RagDollD6Joint_PX3 { + name = "rightLeg_rightFoot"; + bone1 = "rightLeg"; + bone2 = "rightFoot"; + axis[] = {1, 0, 0}; + swingLimitY = 10; + swingLimitZ = 10; + twistLimitLower = -15; + twistLimitUpper = 45; + driveSpring = 20; + driveDamping = 20; + driveSpringWater = 2; + driveDampingWater = 2; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/RealisticNames/config.cpp b/TO_MERGE/agm/RealisticNames/config.cpp new file mode 100644 index 0000000000..366cd139df --- /dev/null +++ b/TO_MERGE/agm/RealisticNames/config.cpp @@ -0,0 +1,1273 @@ +class CfgPatches { + class AGM_RealisticNames { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "TaoSensai"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +// VEHICLES + +class CfgVehicles { + // Global Inheritance + class StaticMGWeapon; + class GMG_TriPod; + class AT_01_base_F; + class AA_01_base_F; + class UAV_02_base_F; + class UAV_02_CAS_base_F: UAV_02_base_F {}; + + // BLUFOR Inheritance + class MRAP_01_base_F; + class MRAP_01_gmg_base_F: MRAP_01_base_F {}; + class MRAP_01_hmg_base_F: MRAP_01_gmg_base_F {}; + class MBT_01_base_F; + class B_MBT_01_base_F: MBT_01_base_F {}; + class MBT_01_arty_base_F: MBT_01_base_F {}; + class B_MBT_01_arty_base_F: MBT_01_arty_base_F {}; + class MBT_01_mlrs_base_F: MBT_01_base_F {}; + class B_MBT_01_mlrs_base_F: MBT_01_mlrs_base_F {}; + class B_APC_Wheeled_01_base_F; + class B_APC_Tracked_01_base_F; + class Truck_01_base_F; + class Heli_Attack_01_base_F; + class Heli_Light_01_base_F; + class Heli_Light_01_armed_base_F; + class B_Heli_Transport_03_base_F; + class B_Heli_Transport_03_unarmed_base_F: B_Heli_Transport_03_base_F {}; + class Plane_CAS_01_base_F; + + // INDEP Inheritance + class MRAP_03_base_F; + class MRAP_03_hmg_base_F: MRAP_03_base_F {}; + class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F {}; + class I_MBT_03_base_F; + class I_APC_Wheeled_03_base_F; + class I_APC_tracked_03_base_F; + class Truck_02_base_F; + class I_Heli_light_03_base_F; + class I_Heli_light_03_unarmed_base_F; + class Heli_Transport_02_base_F; + class Plane_Fighter_03_base_F; + + // OPFOR Inheritance + class MRAP_02_base_F; + class MRAP_02_hmg_base_F: MRAP_02_base_F {}; + class MRAP_02_gmg_base_F: MRAP_02_hmg_base_F {}; + class MBT_02_base_F; + class O_MBT_02_base_F: MBT_02_base_F {}; + class MBT_02_arty_base_F: MBT_02_base_F {}; + class O_MBT_02_arty_base_F: MBT_02_arty_base_F {}; + class O_APC_Wheeled_02_base_F; + class O_APC_Tracked_02_base_F; + class Truck_03_base_F; + class Heli_Light_02_base_F; + class Plane_CAS_02_base_F; + + //////////////////////////////////// + + // Global + class HMG_01_base_F: StaticMGWeapon { + displayName = "$STR_AGM_RealisticNames_HMG_01_Name"; + }; + class HMG_01_A_base_F: HMG_01_base_F { + displayName = "$STR_AGM_RealisticNames_HMG_01_A_Name"; + }; + class HMG_01_high_base_F: HMG_01_base_F { + displayName = "$STR_AGM_RealisticNames_HMG_01_high_Name"; + }; + class GMG_01_base_F: GMG_TriPod { + displayName = "$STR_AGM_RealisticNames_GMG_01_Name"; + }; + class GMG_01_A_base_F: GMG_01_base_F { + displayName = "$STR_AGM_RealisticNames_GMG_01_A_Name"; + }; + class GMG_01_high_base_F: GMG_01_base_F { + displayName = "$STR_AGM_RealisticNames_GMG_01_high_Name"; + }; + + // BLUFOR + class B_MRAP_01_F: MRAP_01_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_01_Name"; + }; + class B_MRAP_01_hmg_F: MRAP_01_hmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_01_hmg_Name"; + }; + class B_MRAP_01_gmg_F: MRAP_01_gmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_01_gmg_Name"; + }; + + class B_MBT_01_cannon_F: B_MBT_01_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_01_cannon_Name"; + }; + class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { + displayName = "$STR_AGM_RealisticNames_MBT_01_TUSK_Name"; + }; + class B_MBT_01_arty_F: B_MBT_01_arty_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_01_arty_Name"; + }; + class B_MBT_01_mlrs_F: B_MBT_01_mlrs_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_01_mlrs_Name"; // Fictional name, (probably wrong) hebrew translation of storm. + }; + class B_APC_Tracked_01_rcws_F: B_APC_Tracked_01_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_rcws_Name"; + }; + class B_APC_Tracked_01_AA_F: B_APC_Tracked_01_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_AA_Name"; // Fictional name, (probably wrong) hebrew translation of cheetah. + }; + class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Wheeled_cannon_Name"; + }; + class B_APC_Tracked_01_CRV_F: B_APC_Tracked_01_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_01_CRV_Name"; + }; + + class B_Truck_01_transport_F: Truck_01_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_transport_Name"; + }; + class B_Truck_01_covered_F: B_Truck_01_transport_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_covered_Name"; + }; + class B_Truck_01_mover_F: B_Truck_01_transport_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_mover_Name"; + }; + class B_Truck_01_box_F: B_Truck_01_mover_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_box_Name"; + }; + class B_Truck_01_medical_F: B_Truck_01_transport_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_medical_Name"; + }; + class B_Truck_01_ammo_F: B_Truck_01_mover_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_ammo_Name"; + }; + class B_Truck_01_fuel_F: B_Truck_01_mover_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_fuel_Name"; + }; + class B_Truck_01_Repair_F: B_Truck_01_mover_F { + displayName = "$STR_AGM_RealisticNames_Truck_01_Repair_Name"; + }; + + class B_Heli_Attack_01_F: Heli_Attack_01_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Attack_01_Name"; + }; + class B_Heli_Light_01_F: Heli_Light_01_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_01_Name"; + }; + class B_Heli_Light_01_armed_F: Heli_Light_01_armed_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_01_armed_Name"; + }; + class B_Heli_Transport_03_F: B_Heli_Transport_03_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_Name"; + }; + class B_Heli_Transport_03_unarmed_F: B_Heli_Transport_03_unarmed_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Transport_03_unarmed_Name"; + }; + class B_Plane_CAS_01_F: Plane_CAS_01_base_F { + displayName = "$STR_AGM_RealisticNames_Plane_CAS_01_Name"; + }; + + class B_UAV_02_F: UAV_02_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + }; + class B_UAV_02_CAS_F: UAV_02_CAS_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + }; + + class B_static_AT_F: AT_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + }; + class B_static_AA_F: AA_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + }; + + + // INDEP + class I_MRAP_03_F: MRAP_03_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_03_Name"; + }; + class I_MRAP_03_hmg_F: MRAP_03_hmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_03_hmg_Name"; + }; + class I_MRAP_03_gmg_F: MRAP_03_gmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_03_gmg_Name"; + }; + + class I_MBT_03_cannon_F: I_MBT_03_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_03_cannon_Name"; + }; + class I_APC_tracked_03_cannon_F: I_APC_tracked_03_base_F { + displayName = "$STR_AGM_RealisticNames_APC_tracked_03_cannon_Name"; + }; + class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Wheeled_03_cannon_Name"; + }; + + class I_Truck_02_transport_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_transport_Name"; + }; + class I_Truck_02_covered_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_covered_Name"; + }; + class I_Truck_02_ammo_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_ammo_Name"; + }; + class I_Truck_02_fuel_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_fuel_Name"; + }; + class I_Truck_02_box_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_box_Name"; + }; + class I_Truck_02_medical_F: I_Truck_02_box_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; + }; + + class I_Heli_light_03_F: I_Heli_light_03_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_light_03_Name"; + }; + class I_Heli_light_03_unarmed_F: I_Heli_light_03_unarmed_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_light_03_unarmed_Name"; + }; + class I_Heli_Transport_02_F: Heli_Transport_02_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Transport_02_Name"; + }; + class I_Plane_Fighter_03_CAS_F: Plane_Fighter_03_base_F { + displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_CAS_Name"; + }; + class I_Plane_Fighter_03_AA_F: I_Plane_Fighter_03_CAS_F { + displayName = "$STR_AGM_RealisticNames_Plane_Fighter_03_AA_Name"; + }; + + class I_UAV_02_F: UAV_02_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + }; + class I_UAV_02_CAS_F: UAV_02_CAS_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + }; + + class I_static_AT_F: AT_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + }; + class I_static_AA_F: AA_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + }; + + + // OPFOR + class O_MRAP_02_F: MRAP_02_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_02_Name"; + }; + class O_MRAP_02_hmg_F: MRAP_02_hmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_02_hmg_Name"; + }; + class O_MRAP_02_gmg_F: MRAP_02_gmg_base_F { + displayName = "$STR_AGM_RealisticNames_MRAP_02_gmg_Name"; + }; + + class O_MBT_02_cannon_F: O_MBT_02_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_02_cannon_Name"; + }; + class O_MBT_02_arty_F: O_MBT_02_arty_base_F { + displayName = "$STR_AGM_RealisticNames_MBT_02_arty_Name"; + }; + class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_cannon_Name"; + }; + class O_APC_Tracked_02_AA_F: O_APC_Tracked_02_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Tracked_02_AA_Name"; + }; + class O_APC_Wheeled_02_rcws_F: O_APC_Wheeled_02_base_F { + displayName = "$STR_AGM_RealisticNames_APC_Wheeled_02_rcws_Name"; + }; + + class O_Truck_02_transport_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_transport_Name"; + }; + class O_Truck_02_covered_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_covered_Name"; + }; + class O_Truck_02_ammo_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_ammo_Name"; + }; + class O_Truck_02_fuel_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_fuel_Name"; + }; + class O_Truck_02_box_F: Truck_02_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_box_Name"; + }; + class O_Truck_02_medical_F: O_Truck_02_box_F { + displayName = "$STR_AGM_RealisticNames_Truck_02_medical_Name"; + }; + + class O_Truck_03_transport_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_transport_Name"; + }; + class O_Truck_03_covered_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_covered_Name"; + }; + class O_Truck_03_device_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_device_Name"; + }; + class O_Truck_03_ammo_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_ammo_Name"; + }; + class O_Truck_03_fuel_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_fuel_Name"; + }; + class O_Truck_03_repair_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_repair_Name"; + }; + class O_Truck_03_medical_F: Truck_03_base_F { + displayName = "$STR_AGM_RealisticNames_Truck_03_medical_Name"; + }; + + class O_Heli_Light_02_F: Heli_Light_02_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_02_Name"; + }; + class O_Heli_Light_02_unarmed_F: Heli_Light_02_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_02_unarmed_Name"; + }; + class O_Plane_CAS_02_F: Plane_CAS_02_base_F { + displayName = "$STR_AGM_RealisticNames_Plane_CAS_02_Name"; + }; + + class O_UAV_02_F: UAV_02_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_Name"; + }; + class O_UAV_02_CAS_F: UAV_02_CAS_base_F { + displayName = "$STR_AGM_RealisticNames_UAV_02_CAS_Name"; + }; + + class O_static_AT_F: AT_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AT_Name"; + }; + class O_static_AA_F: AA_01_base_F { + displayName = "$STR_AGM_RealisticNames_static_AA_Name"; + }; + + // Civilian + class Heli_Light_01_civil_base_F: Heli_Light_01_base_F { + displayName = "$STR_AGM_RealisticNames_Heli_Light_01_civil_Name"; + }; + + // pistols + class Pistol_Base_F; + class Weapon_hgun_P07_F: Pistol_Base_F { + displayName = "P99"; + }; + class Weapon_hgun_Rook40_F: Pistol_Base_F { + displayName = "MP-443 Grach"; + }; + class Weapon_hgun_ACPC2_F: Pistol_Base_F { + displayName = "ACP-C2"; + }; + class Weapon_hgun_Pistol_heavy_01_F: Pistol_Base_F { + displayName = "FNX-45 Tactical"; + }; + class Weapon_hgun_Pistol_heavy_02_F: Pistol_Base_F { + displayName = "Chiappa Rhino 60DS"; + }; + class Weapon_hgun_Pistol_Signal_F: Pistol_Base_F { + displayName = "Taurus Judge"; + }; + + // rocket launchers + class Launcher_Base_F; + class Weapon_launch_NLAW_F: Launcher_Base_F { + displayName = "NLAW"; + }; + class Weapon_launch_RPG32_F: Launcher_Base_F { + displayName = "RPG-32"; + }; + class Weapon_launch_Titan_F: Launcher_Base_F { + displayName = "Mini-Spike (AA)"; + }; + class Weapon_launch_Titan_short_F: Launcher_Base_F { + displayName = "Mini-Spike (AT)"; + }; + class Weapon_launch_B_Titan_F: Launcher_Base_F { + displayName = "Mini-Spike (AA)"; + }; + //class Weapon_launch_I_Titan_F: Weapon_launch_B_Titan_F {}; + //class Weapon_launch_O_Titan_F: Weapon_launch_B_Titan_F {}; + class Weapon_launch_launch_B_Titan_short_F: Launcher_Base_F { + displayName = "Mini-Spike (AT)"; + }; + //class Weapon_launch_I_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; + //class Weapon_launch_O_Titan_short_F: Weapon_launch_launch_B_Titan_short_F {}; + + // rifles + class Weapon_Base_F; + class Weapon_arifle_MX_F: Weapon_Base_F { + displayName = "MX"; + }; + class Weapon_arifle_MXC_F: Weapon_Base_F { + displayName = "MXC"; + }; + class Weapon_arifle_MX_GL_F: Weapon_Base_F { + displayName = "MX 3GL"; + }; + class Weapon_arifle_MX_SW_F: Weapon_Base_F { + displayName = "MX LSW"; + }; + class Weapon_arifle_MXM_F: Weapon_Base_F { + displayName = "MXM"; + }; + + class Weapon_arifle_Katiba_F: Weapon_Base_F { + displayName = "KT2002 Katiba"; + }; + class Weapon_arifle_Katiba_C_F: Weapon_Base_F { + displayName = "KT2002C Katiba"; + }; + class Weapon_arifle_Katiba_GL_F: Weapon_Base_F { + displayName = "KT2002 Katiba KGL"; + }; + + class Weapon_arifle_Mk20_F: Weapon_Base_F { + displayName = "F2000 (Camo)"; + }; + class Weapon_arifle_Mk20_plain_F: Weapon_Base_F { + displayName = "F2000"; + }; + class Weapon_arifle_Mk20C_F: Weapon_Base_F { + displayName = "F2000 Tactical (Camo)"; + }; + class Weapon_arifle_Mk20C_plain_F: Weapon_Base_F { + displayName = "F2000 Tactical"; + }; + class Weapon_arifle_Mk20_GL_F: Weapon_Base_F { + displayName = "F2000 EGLM (Camo)"; + }; + class Weapon_arifle_Mk20_GL_plain_F: Weapon_Base_F { + displayName = "F2000 EGLM"; + }; + + class Weapon_arifle_TRG21_F: Weapon_Base_F { + displayName = "TAR-21"; + }; + class Weapon_arifle_TRG20_F: Weapon_Base_F { + displayName = "CTAR-21"; + }; + class Weapon_arifle_TRG21_GL_F: Weapon_Base_F { + displayName = "TAR-21 EGLM"; + }; + + // sub machine guns + class Weapon_SMG_01_F: Weapon_Base_F { + displayName = "Vector SMG"; + }; + class Weapon_SMG_02_F: Weapon_Base_F { + displayName = "Scorpion Evo 3 A1"; + }; + class Weapon_hgun_PDW2000_F: Weapon_Base_F { + displayName = "CPW"; + }; + class Weapon_arifle_SDAR_F: Weapon_Base_F { + displayName = "RFB SDAR"; + }; + + // machine guns + class Weapon_LMG_Mk200_F: Weapon_Base_F { + displayName = "Stoner 99 LMG"; + }; + class Weapon_LMG_Zafir_F: Weapon_Base_F { + displayName = "Negev NG7"; + }; + + // sniper rifles + class Weapon_srifle_EBR_F: Weapon_Base_F { + displayName = "Mk14 Mod 1 EBR"; + }; + class Weapon_srifle_GM6_F: Weapon_Base_F { + displayName = "GM6 Lynx"; + }; + class Weapon_srifle_GM6_camo_F: Weapon_Base_F { + displayName = "GM6 Lynx (Camo)"; + }; + class Weapon_srifle_LRR_F: Weapon_Base_F { + displayName = "M200 Intervention"; + }; + class Weapon_srifle_LRR_camo_F: Weapon_Base_F { + displayName = "M200 Intervention (Camo)"; + }; + class Weapon_srifle_DMR_01_F: Weapon_Base_F { + displayName = "VS-121"; + }; +}; + +// WEAPONS + +class Mode_FullAuto; +class CfgWeapons { + class Rifle_Base_F; + class CannonCore; + class RocketPods; + class MissileLauncher; + class MGunCore; + class MGun; + class LMG_RCWS; + class GMG_F; + class Bomb_04_Plane_CAS_01_F; + class autocannon_Base_F; + + // INFANTRY STUFF + // (I indented this on purpose, so you can collapse it in ST) + class arifle_MX_Base_F; + class arifle_MX_F : arifle_MX_Base_F { + displayName = "MX"; + }; + class arifle_MX_Black_F: arifle_MX_F { + displayName = "MX (Black)"; + }; + class arifle_MXC_F : arifle_MX_Base_F { + displayName = "MXC"; + }; + class arifle_MXC_Black_F: arifle_MXC_F { + displayName = "MXC (Black)"; + }; + class arifle_MX_GL_F : arifle_MX_Base_F { + displayName = "MX 3GL"; + }; + class arifle_MX_GL_Black_F : arifle_MX_GL_F { + displayName = "MX 3GL (Black)"; + }; + class arifle_MX_SW_F : arifle_MX_Base_F { + displayName = "MX LSW"; + }; + class arifle_MX_SW_Black_F : arifle_MX_SW_F { + displayName = "MX LSW (Black)"; + }; + class arifle_MXM_F : arifle_MX_Base_F { + displayName = "MXM"; + }; + class arifle_MXM_Black_F : arifle_MXM_F { + displayName = "MXM (Black)"; + }; + + class arifle_katiba_Base_F; + class arifle_Katiba_F : arifle_katiba_Base_F { + displayName = "KT2002 Katiba"; + }; + class arifle_Katiba_GL_F : arifle_katiba_Base_F { + displayName = "KT2002 Katiba KGL"; + }; + class arifle_Katiba_C_F : arifle_katiba_Base_F { + displayName = "KT2002C Katiba"; + }; + + class SDAR_base_F; + class arifle_SDAR_F : SDAR_base_F { + displayName = "RFB SDAR"; + }; + + class Tavor_base_F; + class arifle_TRG21_F : Tavor_base_F { + displayName = "TAR-21"; + }; + class arifle_TRG21_GL_F : arifle_TRG21_F { + displayName = "TAR-21 EGLM"; + }; + class arifle_TRG20_F : Tavor_base_F { + displayName = "CTAR-21"; + }; + + class mk20_base_F; + class arifle_Mk20_F : mk20_base_F { + displayName = "F2000 (Camo)"; + }; + class arifle_Mk20_plain_F : arifle_Mk20_F { + displayName = "F2000"; + }; + class arifle_Mk20C_F : mk20_base_F { + displayName = "F2000 Tactical (Camo)"; + }; + class arifle_Mk20C_plain_F : arifle_Mk20C_F { + displayName = "F2000 Tactical"; + }; + class arifle_Mk20_GL_F : mk20_base_F { + displayName = "F2000 EGLM (Camo)"; + }; + class arifle_Mk20_GL_plain_F : arifle_Mk20_GL_F { + displayName = "F2000 EGLM"; + }; + + class SMG_01_Base : Rifle_Base_F { + displayName = "Vector SMG"; + }; + class SMG_01_F : SMG_01_Base { + displayName = "Vector SMG"; + }; + + class SMG_02_base_F; + class SMG_02_F : SMG_02_base_F { + displayName = "Scorpion Evo 3 A1"; + }; + + class pdw2000_base_F; + class hgun_pdw2000_F : pdw2000_base_F { + displayName = "CPW"; + }; + + class Pistol_Base_F; + class hgun_P07_F : Pistol_Base_F { + displayName = "P99"; + }; + + class hgun_Rook40_F : Pistol_Base_F { + displayName = "MP-443 Grach"; + }; + + class hgun_ACPC2_F : Pistol_Base_F { + displayName = "ACP-C2"; + }; + + class hgun_Pistol_heavy_01_F: Pistol_Base_F { + displayName = "FNX-45 Tactical"; + }; + + class hgun_Pistol_heavy_02_F: Pistol_Base_F { + displayName = "Chiappa Rhino 60DS"; + }; + + class hgun_Pistol_Signal_F: Pistol_Base_F { + displayName = "Taurus Judge"; + }; + + class Rifle_Long_Base_F; + class LMG_Mk200_F : Rifle_Long_Base_F { + displayName = "Stoner 99 LMG"; + }; + + class LMG_Zafir_F: Rifle_Long_Base_F { + displayName = "Negev NG7"; + }; + + class EBR_base_F; + class srifle_EBR_F : EBR_base_F { + displayName = "Mk14 Mod 1 EBR"; + }; + + class LRR_base_F; + class srifle_LRR_F : LRR_base_F { + displayName = "M200 Intervention"; + }; + class srifle_LRR_camo_F : srifle_LRR_F { + displayName = "M200 Intervention (Camo)"; + }; + + class GM6_base_F; + class srifle_GM6_F : GM6_base_F { + displayName = "GM6 Lynx"; + }; + class srifle_GM6_camo_F : srifle_GM6_F { + displayName = "GM6 Lynx (Camo)"; + }; + + class DMR_01_base_F; + class srifle_DMR_01_F : DMR_01_base_F { + displayName = "VS-121"; + }; + + //MANPADS + class Launcher_Base_F; + class launch_RPG32_F: Launcher_Base_F { + displayName = "RPG-32"; + }; + class launch_Titan_base: Launcher_Base_F { + displayName = "Mini-Spike (AA)"; + }; + class launch_Titan_short_base: launch_Titan_base { + displayName = "Mini-Spike (AT)"; + }; + class launch_NLAW_F: Launcher_Base_F { + displayName = "NLAW"; + }; + + // VEHICLE STUFF + class gatling_20mm: CannonCore { + class manual; + }; + class Twin_Cannon_20mm: gatling_20mm { + displayName = "Plamen PL-20"; + class manual: manual { + displayName = "Plamen PL-20"; + }; + }; + class gatling_30mm: CannonCore { // This is a fictional veresion of the GSh-6-30, with 3 barrels + displayName = "GSh-3-30"; + class LowROF: Mode_FullAuto { + displayName = "GSh-3-30"; + }; + }; + class Gatling_30mm_Plane_CAS_01_F: CannonCore { + displayName = "GAU-8"; + class LowROF: Mode_FullAuto { + displayName = "GAU-8"; + }; + }; + class Cannon_30mm_Plane_CAS_02_F: CannonCore { + displayName = "GSh-301"; + class LowROF: Mode_FullAuto { + displayName = "GSh-301"; + }; + }; + class Missile_AA_04_Plane_CAS_01_F: RocketPods { + displayName = "AIM-9 Sidewinder"; + }; + class Missile_AA_03_Plane_CAS_02_F: Missile_AA_04_Plane_CAS_01_F { + displayName = "Wympel R-73"; + }; + class Missile_AGM_02_Plane_CAS_01_F: MissileLauncher { + displayName = "AGM-65 Maverick"; + }; + class Missile_AGM_01_Plane_CAS_02_F: Missile_AGM_02_Plane_CAS_01_F { + displayName = "Kh-25MTP"; + }; + class Rocket_04_HE_Plane_CAS_01_F: RocketPods { + displayName = "Hydra 70"; + class Burst: RocketPods { + displayName = "Hydra 70"; + }; + }; + class Rocket_04_AP_Plane_CAS_01_F: Rocket_04_HE_Plane_CAS_01_F { + displayName = "Hydra 70"; + class Burst: RocketPods { + displayName = "Hydra 70"; + }; + }; + class Rocket_03_HE_Plane_CAS_02_F: Rocket_04_HE_Plane_CAS_01_F { + displayName = "S-8"; + class Burst: Burst { + displayName = "S-8"; + }; + }; + class Rocket_03_AP_Plane_CAS_02_F: Rocket_04_AP_Plane_CAS_01_F { + displayName = "S-8"; + class Burst: Burst { + displayName = "S-8"; + }; + }; + class rockets_Skyfire: RocketPods { + displayName = "Skyfire-70"; + class Burst: RocketPods { + displayName = "Skyfire-70"; + }; + }; + class missiles_DAR: RocketPods { + displayName = "Hydra 70"; + class Burst: RocketPods { + displayName = "Hydra 70"; + }; + }; + class missiles_DAGR: RocketPods { + displayName = "DAGR"; + class Burst: RocketPods { + displayName = "DAGR"; + }; + }; + class missiles_ASRAAM: MissileLauncher { + displayName = "AIM-132 ASRAAM"; + }; + class missiles_Zephyr: MissileLauncher { + displayName = "AIM-120A AMRAAM"; + }; + class missiles_SCALPEL: RocketPods { // according to zGuba, this is what it's based on + displayName = "9K121 Vikhr"; + }; + class Bomb_03_Plane_CAS_02_F: Bomb_04_Plane_CAS_01_F { + displayName = "FAB-250M-54"; + }; + + class M134_minigun: MGunCore { + displayName = "2x M134 Minigun"; + }; + class LMG_Minigun: LMG_RCWS { + displayName = "M134 Minigun"; + class manual: MGun { + displayName = "M134 Minigun"; + }; + }; + class HMG_127: LMG_RCWS { + displayName = "M2"; + class manual: MGun { + displayName = "M2"; + }; + }; + class HMG_01: HMG_127 { + displayName = "XM312"; + }; + class HMG_M2: HMG_01 { + displayName = "M2"; + }; + class HMG_NSVT: HMG_127 { + displayName = "NSVT"; + class manual: manual { + displayName = "NSVT"; + }; + }; + class GMG_20mm: GMG_F { + displayName = "XM307"; + class manual: GMG_F { + displayName = "XM307"; + }; + }; + class GMG_40mm: GMG_F { + displayName = "Mk 19"; + class manual: GMG_F { + displayName = "Mk 19"; + }; + }; + + class autocannon_35mm: CannonCore { + displayName = "GDF-001"; + class manual: CannonCore { + displayName = "GDF-001"; + }; + }; + class missiles_titan: MissileLauncher { + displayName = "Mini-Spike"; + }; + class mortar_155mm_AMOS: CannonCore { + displayName = "L/52"; + }; + class rockets_230mm_GAT: RocketPods { + displayName = "M269"; + }; + class cannon_120mm: CannonCore { + class player; + displayName = "MG251"; + }; + class cannon_120mm_long: cannon_120mm { + displayName = "L/55"; + class player: player {}; + }; + class cannon_105mm: cannon_120mm { + displayName = "M68"; + class player: player { + displayName = "M68"; + }; + }; + class cannon_125mm: cannon_120mm { + displayName = "2A46"; + }; + class LMG_coax: LMG_RCWS { + displayName = "PKT"; + }; + class AGM_LMG_coax_MBT_01: LMG_coax { + displayName = "MAG 58"; + }; + class AGM_LMG_coax_APC_Tracked_03: LMG_coax { + displayName = "L94A1"; + }; + class autocannon_40mm_CTWS: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + class AP: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + }; + class HE: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + }; + }; + class autocannon_30mm_CTWS: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + class AP: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + }; + class HE: autocannon_Base_F { + displayName = "Mk44 Bushmaster II"; + }; + }; + class autocannon_30mm: autocannon_30mm_CTWS { + displayName = "L21A1 RARDEN"; + class AP: AP { + displayName = "L21A1 RARDEN"; + }; + class HE: HE { + displayName = "L21A1 RARDEN"; + }; + }; +}; + +class CfgMagazines { + class VehicleMagazine; + class 2000Rnd_65x39_Belt; + + class 1000Rnd_Gatling_30mm_Plane_CAS_01_F: VehicleMagazine { + displayNameShort = "30mm HEI"; + }; + class 7Rnd_Rocket_04_HE_F: VehicleMagazine { + displayNameShort = "70mm HE"; + }; + class 7Rnd_Rocket_04_AP_F: 7Rnd_Rocket_04_HE_F { + displayNameShort = "70mm AP"; + }; + class 24Rnd_PG_missiles: VehicleMagazine { + displayNameShort = "70mm HE"; + }; + class 12Rnd_PG_missiles: 24Rnd_PG_missiles { + displayNameShort = "70mm HE"; + }; + class 5000Rnd_762x51_Belt: 2000Rnd_65x39_Belt { + displayNameShort = "7.62mm"; + }; + class 5000Rnd_762x51_Yellow_Belt: 5000Rnd_762x51_Belt { + displayNameShort = "7.62mm"; + }; + class 500Rnd_127x99_mag: VehicleMagazine { + displayNameShort = "12.7mm"; + }; + class 500Rnd_127x99_mag_Tracer_Green: 500Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 500Rnd_127x99_mag_Tracer_Red: 500Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 500Rnd_127x99_mag_Tracer_Yellow: 500Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 200Rnd_127x99_mag: 500Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 200Rnd_127x99_mag_Tracer_Green: 200Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 200Rnd_127x99_mag_Tracer_Red: 200Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 200Rnd_127x99_mag_Tracer_Yellow: 200Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 100Rnd_127x99_mag: 500Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 100Rnd_127x99_mag_Tracer_Green: 100Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 100Rnd_127x99_mag_Tracer_Red: 100Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 100Rnd_127x99_mag_Tracer_Yellow: 100Rnd_127x99_mag { + displayNameShort = "12.7mm"; + }; + class 200Rnd_40mm_G_belt: VehicleMagazine { + displayNameShort = "40mm HE"; + }; + class 24Rnd_missiles: VehicleMagazine { + displayNameShort = "70mm HE"; + }; + class 300Rnd_20mm_shells: VehicleMagazine { + displayNameShort = "20mm HE"; + }; + class 14Rnd_80mm_rockets: VehicleMagazine { + displayNameShort = "70mm HE"; + }; + class 250Rnd_30mm_HE_shells: VehicleMagazine { + displayNameShort = "30mm HE"; + }; + class 250Rnd_30mm_APDS_shells: 250Rnd_30mm_HE_shells { + displayNameShort = "30mm APDS"; + }; + class 20Rnd_Rocket_03_HE_F: 7Rnd_Rocket_04_HE_F { + displayNameShort = "80mm HE"; + }; + class 20Rnd_Rocket_03_AP_F: 7Rnd_Rocket_04_AP_F { + displayNameShort = "80mm AP"; + }; + class 500Rnd_Cannon_30mm_Plane_CAS_02_F: 1000Rnd_Gatling_30mm_Plane_CAS_01_F { + displayNameShort = "30mm HEI-T"; + }; + class 680Rnd_35mm_AA_shells: VehicleMagazine { + displayNameShort = "35mm HEI"; + }; + class 680Rnd_35mm_AA_shells_Tracer_Red: 680Rnd_35mm_AA_shells { + displayNameShort = "35mm HEI-T"; + }; + class 680Rnd_35mm_AA_shells_Tracer_Green: 680Rnd_35mm_AA_shells { + displayNameShort = "35mm HEI-T"; + }; + class 680Rnd_35mm_AA_shells_Tracer_Yellow: 680Rnd_35mm_AA_shells { + displayNameShort = "35mm HEI-T"; + }; + class 32Rnd_155mm_Mo_shells: VehicleMagazine { + displayNameShort = "155mm HE"; + }; + class 6Rnd_155mm_Mo_smoke: 32Rnd_155mm_Mo_shells { + displayNameShort = "155mm Smoke"; + }; + class 6Rnd_155mm_Mo_mine: 6Rnd_155mm_Mo_smoke { + displayNameShort = "155mm Mines"; + }; + class 6Rnd_155mm_Mo_AT_mine: 6Rnd_155mm_Mo_smoke { + displayNameShort = "155mm AT Mines"; + }; + class 2Rnd_155mm_Mo_Cluster: 6Rnd_155mm_Mo_smoke { + displayNameShort = "155mm Cluster"; + }; + class 2Rnd_155mm_Mo_guided: 6Rnd_155mm_Mo_smoke { + displayNameShort = "155mm Guided"; + }; + class 2Rnd_155mm_Mo_LG: 6Rnd_155mm_Mo_smoke { + displayNameShort = "155mm Laser Guided"; + }; + class 12Rnd_230mm_rockets: 14Rnd_80mm_rockets { + displayName = "227mm HE Missile"; + displayNameShort = "227mm HE"; + }; + class 30Rnd_120mm_HE_shells: VehicleMagazine { + displayNameShort = "120mm HE"; + }; + class 30Rnd_120mm_HE_shells_Tracer_Red: 30Rnd_120mm_HE_shells { + displayNameShort = "120mm HE-T"; + }; + class 30Rnd_120mm_HE_shells_Tracer_Green: 30Rnd_120mm_HE_shells { + displayNameShort = "120mm HE-T"; + }; + class 30Rnd_120mm_HE_shells_Tracer_Yellow: 30Rnd_120mm_HE_shells { + displayNameShort = "120mm HE-T"; + }; + class 30Rnd_120mm_APFSDS_shells: 30Rnd_120mm_HE_shells { + displayNameShort = "120mm AP"; + }; + class 30Rnd_120mm_APFSDS_shells_Tracer_Red: 30Rnd_120mm_APFSDS_shells { + displayNameShort = "120mm AP-T"; + }; + class 30Rnd_120mm_APFSDS_shells_Tracer_Green: 30Rnd_120mm_APFSDS_shells { + displayNameShort = "120mm AP-T"; + }; + class 30Rnd_120mm_APFSDS_shells_Tracer_Yellow: 30Rnd_120mm_APFSDS_shells { + displayNameShort = "120mm AP-T"; + }; + class 200Rnd_762x51_Belt: VehicleMagazine { + displayNameShort = "7.62mm"; + }; + class 200Rnd_762x51_Belt_Red: 200Rnd_762x51_Belt {}; + class 200Rnd_762x51_Belt_Green: 200Rnd_762x51_Belt {}; + class 200Rnd_762x51_Belt_Yellow: 200Rnd_762x51_Belt {}; + class 200Rnd_762x51_Belt_T_Red: 200Rnd_762x51_Belt_Red { + displayNameShort = "7.62mm"; + }; + class 200Rnd_762x51_Belt_T_Green: 200Rnd_762x51_Belt_Green { + displayNameShort = "7.62mm"; + }; + class 200Rnd_762x51_Belt_T_Yellow: 200Rnd_762x51_Belt_Yellow { + displayNameShort = "7.62mm"; + }; + class 2000Rnd_762x51_Belt_Red; + class 2000Rnd_762x51_Belt_T_Red: 2000Rnd_762x51_Belt_Red { + displayNameShort = "7.62mm"; + }; + class 2000Rnd_762x51_Belt_Green; + class 2000Rnd_762x51_Belt_T_Green: 2000Rnd_762x51_Belt_Green { + displayNameShort = "7.62mm"; + }; + class 2000Rnd_762x51_Belt_Yellow; + class 2000Rnd_762x51_Belt_T_Yellow: 2000Rnd_762x51_Belt_Yellow { + displayNameShort = "7.62mm"; + }; + class 1000Rnd_762x51_Belt_Red; + class 1000Rnd_762x51_Belt_T_Red: 1000Rnd_762x51_Belt_Red { + displayNameShort = "7.62mm"; + }; + class 1000Rnd_762x51_Belt_Green; + class 1000Rnd_762x51_Belt_T_Green: 1000Rnd_762x51_Belt_Green { + displayNameShort = "7.62mm"; + }; + class 1000Rnd_762x51_Belt_Yellow; + class 1000Rnd_762x51_Belt_T_Yellow: 1000Rnd_762x51_Belt_Yellow { + displayNameShort = "7.62mm"; + }; + + class 16Rnd_120mm_HE_shells; + class 16Rnd_120mm_HE_shells_Tracer_Red; + class 16Rnd_120mm_HE_shells_Tracer_Green; + class 16Rnd_120mm_HE_shells_Tracer_Yellow; + class 12Rnd_125mm_HE: 16Rnd_120mm_HE_shells { + displayNameShort = "125mm HE"; + }; + class 12Rnd_125mm_HE_T_Red: 16Rnd_120mm_HE_shells_Tracer_Red { + displayNameShort = "125mm HE-T"; + }; + class 12Rnd_125mm_HE_T_Green: 16Rnd_120mm_HE_shells_Tracer_Green { + displayNameShort = "125mm HE-T"; + }; + class 12Rnd_125mm_HE_T_Yellow: 16Rnd_120mm_HE_shells_Tracer_Yellow { + displayNameShort = "125mm HE-T"; + }; + + class 12Rnd_125mm_HEAT: 12Rnd_125mm_HE { + displayNameShort = "125mm MP"; + }; + class 12Rnd_125mm_HEAT_T_Red: 12Rnd_125mm_HEAT { + displayNameShort = "125mm MP-T"; + }; + class 12Rnd_125mm_HEAT_T_Green: 12Rnd_125mm_HEAT { + displayNameShort = "125mm MP-T"; + }; + class 12Rnd_125mm_HEAT_T_Yellow: 12Rnd_125mm_HEAT { + displayNameShort = "125mm MP-T"; + }; + + class 32Rnd_120mm_APFSDS_shells; + class 32Rnd_120mm_APFSDS_shells_Tracer_Red; + class 32Rnd_120mm_APFSDS_shells_Tracer_Green; + class 32Rnd_120mm_APFSDS_shells_Tracer_Yellow; + class 24Rnd_125mm_APFSDS: 32Rnd_120mm_APFSDS_shells { + displayNameShort = "125mm AP"; + }; + class 24Rnd_125mm_APFSDS_T_Red: 32Rnd_120mm_APFSDS_shells_Tracer_Red { + displayNameShort = "125mm AP-T"; + }; + class 24Rnd_125mm_APFSDS_T_Green: 32Rnd_120mm_APFSDS_shells_Tracer_Green { + displayNameShort = "125mm AP-T"; + }; + class 24Rnd_125mm_APFSDS_T_Yellow: 32Rnd_120mm_APFSDS_shells_Tracer_Yellow { + displayNameShort = "125mm AP-T"; + }; + + class 20Rnd_105mm_HEAT_MP: 12Rnd_125mm_HEAT { + displayNameShort = "105mm MP"; + }; + class 20Rnd_105mm_HEAT_MP_T_Red: 20Rnd_105mm_HEAT_MP { + displayNameShort = "105mm MP-T"; + }; + class 20Rnd_105mm_HEAT_MP_T_Green: 20Rnd_105mm_HEAT_MP { + displayNameShort = "105mm MP-T"; + }; + class 20Rnd_105mm_HEAT_MP_T_Yellow: 20Rnd_105mm_HEAT_MP { + displayNameShort = "105mm MP-T"; + }; + class 40Rnd_105mm_APFSDS: 24Rnd_125mm_APFSDS { + displayNameShort = "105mm AP"; + }; + class 40Rnd_105mm_APFSDS_T_Red: 40Rnd_105mm_APFSDS { + displayNameShort = "105mm AP-T"; + }; + class 40Rnd_105mm_APFSDS_T_Green: 40Rnd_105mm_APFSDS { + displayNameShort = "105mm AP-T"; + }; + class 40Rnd_105mm_APFSDS_T_Yellow: 40Rnd_105mm_APFSDS { + displayNameShort = "105mm AP-T"; + }; + class 60Rnd_40mm_GPR_shells: VehicleMagazine { + displayNameShort = "40mm GPR"; + }; + class 60Rnd_40mm_GPR_Tracer_Red_shells: 60Rnd_40mm_GPR_shells { + displayNameShort = "40mm GPR-T"; + }; + class 60Rnd_40mm_GPR_Tracer_Green_shells: 60Rnd_40mm_GPR_shells { + displayNameShort = "40mm GPR-T"; + }; + class 60Rnd_40mm_GPR_Tracer_Yellow_shells: 60Rnd_40mm_GPR_shells { + displayNameShort = "40mm GPR-T"; + }; + class 40Rnd_40mm_APFSDS_shells: 60Rnd_40mm_GPR_shells { + displayNameShort = "40mm AP"; + }; + class 40Rnd_40mm_APFSDS_Tracer_Red_shells: 40Rnd_40mm_APFSDS_shells { + displayNameShort = "40mm AP-T"; + }; + class 40Rnd_40mm_APFSDS_Tracer_Green_shells: 40Rnd_40mm_APFSDS_Tracer_Red_shells { + displayNameShort = "40mm AP-T"; + }; + class 40Rnd_40mm_APFSDS_Tracer_Yellow_shells: 40Rnd_40mm_APFSDS_Tracer_Red_shells { + displayNameShort = "40mm AP-T"; + }; + class 450Rnd_127x108_Ball: VehicleMagazine { + displayNameShort = "12.7mm"; + }; + + class 140Rnd_30mm_MP_shells: 250Rnd_30mm_HE_shells { + displayNameShort = "30mm MP"; + }; + class 140Rnd_30mm_MP_shells_Tracer_Red: 140Rnd_30mm_MP_shells { + displayNameShort = "30mm MP-T"; + }; + class 140Rnd_30mm_MP_shells_Tracer_Green: 140Rnd_30mm_MP_shells_Tracer_Red { + displayNameShort = "30mm MP-T"; + }; + class 140Rnd_30mm_MP_shells_Tracer_Yellow: 140Rnd_30mm_MP_shells_Tracer_Red { + displayNameShort = "30mm MP-T"; + }; + class 60Rnd_30mm_APFSDS_shells: 250Rnd_30mm_HE_shells { + displayNameShort = "30mm AP"; + }; + class 60Rnd_30mm_APFSDS_shells_Tracer_Red: 60Rnd_30mm_APFSDS_shells { + displayNameShort = "30mm AP-T"; + }; + class 60Rnd_30mm_APFSDS_shells_Tracer_Green: 60Rnd_30mm_APFSDS_shells { + displayNameShort = "30mm AP-T"; + }; + class 60Rnd_30mm_APFSDS_shells_Tracer_Yellow: 60Rnd_30mm_APFSDS_shells { + displayNameShort = "30mm AP-T"; + }; + + class 200Rnd_20mm_G_belt: VehicleMagazine { + displayNameShort = "20mm HE"; + }; + class 40Rnd_20mm_G_belt: 200Rnd_20mm_G_belt { + displayNameShort = "20mm HE"; + }; + + + // EXPLOSIVES + class CA_Magazine; + // http://en.wikipedia.org/wiki/M15_mine + class ATMine_Range_Mag: CA_Magazine { + displayName = "$STR_AGM_RealisticNames_ATMine_Name"; + }; + // http://en.wikipedia.org/wiki/VS-50_mine + class APERSMine_Range_Mag: ATMine_Range_Mag { + displayName = "$STR_AGM_RealisticNames_APERSMine_Name"; + }; + // https://www.buymilsurp.com/us-m26-antipersonnel-bounding-mine-p-5419.html + class APERSBoundingMine_Range_Mag: ATMine_Range_Mag { + displayName = "$STR_AGM_RealisticNames_APERSBoundingMine_Name"; + }; + // http://en.wikipedia.org/wiki/PMR-3_mine + class APERSTripMine_Wire_Mag: ATMine_Range_Mag { + displayName = "$STR_AGM_RealisticNames_APERSTripwireMine_Name"; + }; + // the following ones can be found here: http://www.dtic.mil/dtic/tr/fulltext/u2/a567897.pdf + class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag { + displayName = "$STR_AGM_RealisticNames_SLAM_Name"; + }; + class ClaymoreDirectionalMine_Remote_Mag: CA_Magazine { + displayName = "$STR_AGM_RealisticNames_Claymore_Name"; + }; + class SatchelCharge_Remote_Mag: CA_Magazine { + displayName = "$STR_AGM_RealisticNames_SatchelCharge_Name"; + }; + class DemoCharge_Remote_Mag: SatchelCharge_Remote_Mag { + displayName = "$STR_AGM_RealisticNames_DemoCharge_Name"; + }; + class HandGrenade: CA_Magazine { + displayName = "$STR_AGM_RealisticNames_HandGrenade_Name"; + }; + class SmokeShell: HandGrenade { + displayName = "$STR_AGM_RealisticNames_SmokeShell_Name"; + }; + class SmokeShellBlue: SmokeShell { + displayName = "$STR_AGM_RealisticNames_SmokeShellBlue_Name"; + }; + class SmokeShellGreen: SmokeShell { + displayName = "$STR_AGM_RealisticNames_SmokeShellGreen_Name"; + }; + class SmokeShellOrange: SmokeShell { + displayName = "$STR_AGM_RealisticNames_SmokeShellOrange_Name"; + }; + class SmokeShellPurple: SmokeShell { + displayName = "$STR_AGM_RealisticNames_SmokeShellPurple_Name"; + }; + class SmokeShellRed: SmokeShell { + displayName = "$STR_AGM_RealisticNames_SmokeShellRed_Name"; + }; + class SmokeShellYellow: SmokeShell { + displayName = "$STR_AGM_RealisticNames_SmokeShellYellow_Name"; + }; +}; diff --git a/TO_MERGE/agm/RealisticNames/stringtable.xml b/TO_MERGE/agm/RealisticNames/stringtable.xml new file mode 100644 index 0000000000..e72608f6b5 --- /dev/null +++ b/TO_MERGE/agm/RealisticNames/stringtable.xml @@ -0,0 +1,1042 @@ + + + + + + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312 + XM312A + + + XM312A + XM312A + XM312 + XM312A + XM312A + XM312A + XM312A + XM312A + XM312A + XM312A + + + XM312 (High) + XM312 (Hoch) + XM312 (Alto) + XM312 (Haut) + XM312 (Vysoký) + XM312 (Wysoki) + XM312 (Высокий) + XM312 (Alta) + XM312 (Magasított) + XM312 (Alta) + + + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + XM307 + + + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + XM307A + + + XM307 (High) + XM307 (Hoch) + XM307 (Alto) + XM307 (Haut) + XM307 (Vysoký) + XM307 (Wysoki) + XM307 (Высокий) + XM307 (Alta) + XM307 (Magasított) + XM307 (Alta) + + + Mini-Spike Launcher (AT) + Mini-Spike Lenkflugkörper (AT) + Lanzador Mini-Spike (AT) + Poste de tir Mini-Spike (AC) + Mini-Spike Odpalovač (AT) + Wyrzutnia Mini-Spike (AT) + Mini-Spike Пусковое устройство (ПТРК) + Lança-mísseis Mini-Spike (AC) + Mini-Spike rakétarendszer (páncéltörő) + Lanciatore Mini-Spike (AC) + + + Mini-Spike Launcher (AA) + Mini-Spike Lenkflugkörper (AA) + Lanzador Mini-Spike (AA) + Poste de tir Mini-Spike (AA) + Mini-Spike Odpalovač (AA) + Wyrzutnia Mini-Spike (AA) + Mini-Spike Пусковое устройство (ВВ) + Lança-mísseis Mini-Spike (AA) + Mini-Spike rakétarendszer (légvédelmi) + Lanciatore Mini-Spike (AA) + + + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + YABHON-R3 + + + YABHON-R3 (CAS) + YABHON-R3 (Luftnahunterstützung) + YABHON-R3 (CAS) + YABHON-R3 (CAS) + YABHON-R3 (CAS) + YABHON-R3 (штурмовик) + + + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + M-ATV + + + M-ATV (HMG) + M-ATV (SMG) + M-ATV (HMG) + M-ATV (CKM) + M-ATV (TK) + M-ATV (HMG) + M-ATV (Пулемет) + M-ATV (HMG) + M-ATV (HMG) + M-ATV (HMG) + + + M-ATV (GMG) + M-ATV (GMW) + M-ATV (GMG) + M-ATV (GMG) + M-ATV (Granátomet) + M-ATV (GMG) + M-ATV (Гранатомет) + M-ATV (GMG) + M-ATV (GMG) + M-ATV (GMG) + + + Merkava Mk IV M + Merkava Mk IV M + Merkava Mk IV M + Merkawa Mk IV M + Merkava Mk IV M + Merkava Mk IV M + Меркава Mk IV M + Merkava Mk IV M + Merkava Mk IV M + Merkava Mk IV M + + + Merkava Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + Merkawa Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + Меркава Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + Merkava Mk IV LIC + + + Sholef + Sholef + Sholef + Sholef + Sholef + Sholef + Шолеф + Sholef + Sholef + Sholef + + + Seara + Seara + Seara + Seara + Seara + Seara + Seara + Seara + Seara + Seara + + + Namer + Namer + Namer + Namer + Namer + Namer + Намер + Namer + Namer + Namer + + + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + Bardelas + + + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + Patria AMV + + + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + Nemmera + + + HEMTT Transport + HEMTT Transport + HEMTT de transporte + HEMTT Transportowy + HEMTT Valník + HEMTT Transport + HEMTT Транспортный + HEMTT Transporte + HEMTT szállítójármű + HEMTT da trasporto + + + HEMTT Transport (covered) + HEMTT Transport (bedeckt) + HEMTT de transporte (cubierto) + HEMTT Transportowy (zakryty) + HEMTT Valník (krytý) + HEMTT Transport (bâché) + HEMTT Транспортный (крытый) + HEMTT Transporte (coberto) + HEMTT szállítójármű (ponyvás) + HEMTT da trasporto (coperto) + + + HEMTT + HEMTT + HEMTT + HEMTT + HEMTT + HEMTT Tracteur + HEMTT + HEMTT + HEMTT + HEMTT + + + HEMTT Container + HEMTT Container + HEMTT de contenedor + HEMTT Kontener + HEMTT Skříňový + HEMTT Conteneur + HEMTT Контейнер + HEMTT Contêiner + HEMTT Konténer + HEMTT portacontainer + + + HEMTT Medical + HEMTT Sanitäter + HEMTT médico + HEMTT Medyczny + HEMTT Zdravotnický + HEMTT Sanitaire + HEMTT Медицинский + HEMTT Médico + HEMTT (egészségügyi) + HEMTT Medico + + + HEMTT Ammo + HEMTT Munition + HEMTT de munición + HEMTT Amunicyjny + HEMTT Muniční + HEMTT Munitions + HEMTT Боеприпасы + HEMTT Munições + HEMTT (lőszerszállító) + HEMTT di rifornimento munizioni + + + HEMTT Fuel + HEMTT Treibstoff + HEMTT de combustible + HEMTT Cysterna + HEMTT Cisterna + HEMTT Citerne + HEMTT Заправщик + HEMTT Combustível + HEMTT (üzemanyag-szállító) + HEMTT di rifornimento carburante + + + HEMTT Repair + HEMTT Instandsetzung + HEMTT de reparación + HEMTT Naprawczy + HEMTT Opravárenský + HEMTT Réparation + HEMTT Ремонтный + HEMTT Reparador + HEMTT (szerelő-jármű) + HEMTT Riparatore + + + Fennek + Fennek + Fennek + Fennek + Fennek + Fennek + Феннек + Fennek + Fennek + Fennek + + + Fennek (HMG) + Fennek (SMG) + Fennek (HMG) + Fennek (CKM) + Fennek (TK) + Fennek (HMG) + Феннек (Пулемет) + Fennek (HMG) + Fennek (HMG) + Fennek (HMG) + + + Fennek (GMG) + Fennek (GMW) + Fennek (GMG) + Fennek (GMG) + Fennek (granátomet) + Fennek (GMG) + Феннек (Гранатомет) + Fennek (GMG) + Fennek (GMG) + Fennek (GMG) + + + Leopard 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + Леопард 2SG + Leopard 2SG + Leopard 2SG + Leopard 2SG + + + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Warrior + FV510 Уорриор + FV510 Warrior + FV510 Warrior + FV510 Warrior + + + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + Pandur II + + + KamAZ Transport + KamAZ Transport + KamAZ de transporte + KamAZ transportowy + KAMAZ Valník + KamAZ Transport + КамАЗ Траспортный + KamAZ Transporte + KamAZ szállítójármű + KamAZ da trasporto + + + KamAZ Transport (covered) + KamAZ Transport (bedeckt) + KamAZ de transporte (cubierto) + KamAZ Transportowy (zakryty) + KAMAZ Valník (krytý) + KamAZ Transport (bâché) + КамАЗ Траспортный (Крытый) + KamAZ Transporte (coberto) + KamAZ szállítójármű (ponyvás) + KamAZ da trasporto (coperto) + + + KamAZ Ammo + KamAZ Munition + KamAZ de munición + KamAZ Amunicyjny + KAMAZ Muniční + KamAZ Munitions + КамАЗ Боеприпасы + KamAZ Munições + KamAZ (lőszerszállító) + KamAZ di rifornimento munizioni + + + KamAZ Fuel + KamAZ Treibstoff + KamAZ de combustible + KamAZ cysterna + KAMAZ Cisterna + KamAZ Citerne + КамАЗ Заправщик + KamAZ Combustível + KamAZ (üzemanyag-szállító) + KamAZ di rifornimento carburante + + + KamAZ Repair + KamAZ Instandsetzung + KamAZ de reparación + KamAZ Naprawczy + KAMAZ Opravárenský + KamAZ Réparation + КамАЗ Ремонтный + KamAZ Reparador + KamAZ (szerelő-jármű) + KamAZ riparatore + + + KamAZ Medical + KamAZ Sanitäter + KamAZ médico + KamAZ Medyczny + KAMAZ Zdravotnický + KamAZ Sanitaire + КамАЗ Медицинский + KamAZ Médico + KamAZ (egészségügyi) + KamAZ Medico + + + Punisher + Punisher + Punisher + Punisher + Punisher + Punisher + Kаратель + Punisher + Punisher + Punisher + + + Punisher (HMG) + Punisher (SMG) + Punisher (HMG) + Punisher (CKM) + Punisher (TK) + Punisher (HMG) + Kаратель (Пулемет) + Punisher (HMG) + Punisher (HMG) + Punisher (HMG) + + + Punisher (GMG) + Punisher (GMW) + Punisher (GMG) + Punisher (CKM) + Punisher (granátomet) + Punisher (GMG) + Kаратель (Гранатомет) + Punisher (GMG) + Punisher (GMG) + Punisher (GMG) + + + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + T100 Черный Орел + T100 Black Eagle + T100 Black Eagle + T100 Black Eagle + + + 2S9 Sochor + 2S9 Sochor + 2S9 Sochor + 259 Sochor + 2S9 Sochor + 2S9 Sochor + 2S9 Сокор + 2S9 Sochor + 2S9 Sochor + 2S9 Sochor + + + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + БМ-2Т Сталкер + BM-2T Stalker + BM-2T Stalker + BM-2T Stalker + + + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ЗСУ-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + ZSU-35 Tigris + + + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + Otokar ARMA + + + Typhoon Transport + Typhoon Transport + Typhoon de transporte + Typhoon Transportowy + Typhoon Valník + Typhoon Transport + Тайфун Транспортный + Typhoon Transporte + Typhoon szállítójármű + Typhoon da trasporto + + + Typhoon Transport (covered) + Typhoon Transport (bedeckt) + Typhoon de transporte (cubierto) + Typhoon Transportowy (przykryty) + Typhoon Valník (krytý) + Typhoon Transport (bâché) + Тайфун Транспортный (kрытый) + Typhoon Transporte (coberto) + Typhoon szállítójármű (ponyvás) + Typhoon da trasporto (coperto) + + + Typhoon Device + Typhoon Gerät + Typhoon de dispositivo + Typhoon Urządzenie + Typhoon Zařízení + Typhoon Dispositif + Тайфун Устройство + Typhoon Dispositivo + Typhoon (szerkezet) + Typhoon per dispositivo + + + Typhoon Ammo + Typhoon Munition + Typhoon de munición + Typhoon Amunicyjny + Typhoon Muniční + Typhoon Munitions + Тайфун Боеприпасы + Typhoon Munições + Typhoon (lőszerszállító) + Typhoon di rifornimento munizioni + + + Typhoon Fuel + Typhoon Treibstoff + Typhoon de combustible + Typhoon Cysterna + Typhoon Cisterna + Typhoon Citerne + Тайфун Заправщик + Typhoon Combustível + Typhoon (üzemanyag-szállító) + Typhoon di rifornimento carburante + + + Typhoon Repair + Typhoon Instandsetzung + Typhoon de reparación + Typhoon Naprawczy + Typhoon Opravárenský + Typhoon Réparation + Тайфун Ремонтный + Typhoon Reparador + Typhoon (szerelő-jármű) + Typhoon riparatore + + + Typhoon Medical + Typhoon Sanitäter + Typhoon médico + Typhoon Medyczny + Typhoon Zdravotnický + Typhoon Sanitaire + Тайфун Медицинский + Typhoon Médico + Typhoon (egészségügyi) + Typhoon medico + + + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Commanche + RAH-66 Команч + RAH-66 Comanche + RAH-66 Comanche + RAH-66 Comanche + + + MH-6 Little Bird + MH-6 Little Bird + MH-6 Litte Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + MH-6 Little Bird + + + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + AH-6 Little Bird + + + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + CH-47I Chinook + + + CH-47I Chinook (unarmed) + CH-47I Chinook (unbewaffnet) + CH-47I Chinnok (Desarmado) + CH-47I Chinook (nieuzbrojony) + CH-47I Chinook (невооруженный) + CH-47I Chinook (Neozbrojený) + + + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Тандерболт II + A-10D Thunderbolt II + A-10D Thunderbolt II + A-10D Thunderbolt II + + + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + AW159 Wildcat + + + AW159 Wildcat (unarmed) + AW159 Wildcat (unbewaffnet) + AW159 Wildcat (desarmado) + AW159 Wildcat (nieuzbrojony) + AW159 Wildcat (neozbrojený) + AW159 Wildcat (non-armé) + AW159 Wildcat (невооруженный) + AW159 Wildcat (desarmado) + AW159 Wildcat (fegyvertelen) + AW159 Wildcat (disarmato) + + + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Merlin + AW101 Мерлин + AW101 Merlin + AW101 Merlin + AW101 Merlin + + + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 Альбатрос (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + L-159 ALCA (CAS) + + + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 ALCA (AA) + L-159 Альбатрос (AA) + L-159 ALCA (ВВ) + L-159 ALCA (AA) + L-159 ALCA (AA) + + + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Касатка + Ka-60 Kasatka + Ka-60 Kasatka + Ka-60 Kasatka + + + Ka-60 Kasatka (unarmed) + Ka-60 Kasatka (unbewaffnet) + Ka-60 Kasatka (desarmado) + Ka-60 Kasatka (nieuzbrojony) + Ka-60 Kasatka (neozbrojená) + Ka-60 Kasatka (non-armé) + Ka-60 Касатка (невооруженный) + Ka-60 Kasatka (desarmado) + Ka-60 Kasatka (fegyvertelen) + Ka-60 Kasatka (disarmato) + + + Yak-130 + Yak-130 + Yak-130 + Jak-130 + Jak-130 + Yak-130 + Як-130 + Yak-130 + Jak-130 + Yak-130 + + + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + MD 500 + + + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + M4A1 SLAM + + + M18A1 Claymore + M18A1 Claymore + M18A1 Claymore + Mina kierunkowa M18A1 Claymore + M18A1 Mina Claymore + M18A1 Claymore Mine antipersonnel à effet dirigé + M18A1 Клеймор + M18A1 Claymore + M18A1 Claymore akna + M18A1 Claymore Mina antiuomo + + + M183 Demolition Charge Assembly + M183 Geballte Sprengladung + Conjunto de carga de demolición M183 + Ładunek burzący M183 + M183 Demoliční nálož + M183 Charge de Démolition + M183 Комплектный подрывной заряд + M183 Sacola de Demolição + M183 romboló töltet + M183 Demolition Charge Assembly + + + M112 Demolition Block + M112 Sprengladung + Bloque de demolición M112 + Ładunek burzący M112 + M112 Výbušná nálož + Pétard M112 + M112 подрывной заряд + M112 Carga de Demolição + M112 romboló töltet + M112 Demolition Block + + + M67 Fragmentation Grenade + M67 Splittergranate + Granada de fragmentación M67 + Granat obronny M67 + M67 Granát + M67 Grenade à fragmentation + M67 ручная осколочная граната + M67 Granada de fragmentação + M67 repeszgránát + M67 Granata a frammentazione + + + M83 Smoke Grenade (White) + M83 Rauchgranate (Weiss) + Granada de humo M83 (Blanco) + Granat dymny M83 (Biały) + M83 Kouřový Granát (Bílý) + M83 Grenade fumigène (Blanche) + M83 дымовой гранаты (Белый) + M83 Granada de fumaça (Branca) + M83 füstgránát (Fehér) + M83 Granata fumogena (Bianco) + + + M18 Smoke Grenade (Blue) + M18 Rauchgranate (Blau) + Granada de humo M18 (Azul) + Granat dymny M18 (Niebieski) + M18 Kouřový Granát (Modrý) + M18 Grenade fumigène (Bleue) + M18 дымовой гранаты (Синий) + M18 Granada de fumaça (Azul) + M18 füstgránát (Kék) + M18 Granata fumogena (Blu) + + + M18 Smoke Grenade (Green) + M18 Rauchgranate (Grün) + Granada de humo M18 (Verde) + Granat dymny M18 (Zielony) + M18 Kouřový Granát (Zelený) + M18 Grenade fumigène (Verte) + M18 дымовой гранаты (Зелёный) + M18 Granada de fumaça (Verde) + M18 füstgránát (Zöld) + M18 Granata fumogena (Verde) + + + M18 Smoke Grenade (Orange) + M18 Rauchgranate (Orange) + Granada de humo M18 (Naranja) + Granat dymny M18 (Pomarańczowy) + M18 Kouřový Granát (Oranžový) + M18 Grenade fumigène (Orange) + M18 дымовой гранаты (Оранжевый) + M18 Granada de fumaça (Laranja) + M18 füstgránát (Narancssárga) + M18 Granata fumogena (Arancione) + + + M18 Smoke Grenade (Purple) + M18 Rauchgranate (Violett) + Granada de humo M18 (Púrpura) + Granat dymny M18 (Fioletowy) + M18 Kouřový Granát (Fialový) + M18 Grenade fumigène (Pourpre) + M18 дымовой гранаты (Пурпурный) + M18 Granada de fumaça (Roxa) + M18 füstgránát (Lila) + M18 Granata fumogena (Viola) + + + M18 Smoke Grenade (Red) + M18 Rauchgranate (Rot) + Granada de humo M18 (Rojo) + Granat dymny M18 (Czerwony) + M18 Kouřový Granát (Červený) + M18 Grenade fumigène (Rouge) + M18 дымовой гранаты (Красный) + M18 Granada de fumaça (Vermelha) + M18 füstgránát (Piros) + M18 Granata fumogena (Rosso) + + + M18 Smoke Grenade (Yellow) + M18 Rauchgranate (Gelb) + Granada de humo M18 (Amarillo) + Granat dymny M18 (Żółty) + M18 Kouřový Granát (Žlutý) + M18 Grenade fumigène (Jaune) + M183 дымовой гранаты (Жёлтые) + M18 Granada de fumaça (Amarela) + M18 füstgránát (Sárga) + M18 Granata fumogena (Giallo) + + + M15 Anti-Tank Mine + M15 Panzerabwehrmine + Mina antitanque M15 + Mina przeciwpancerna M15 + M15 Protitanková Mina + M15 Mine antichar + M15 противотанковая мина + M15 Mina anticarro + M15 harckocsiakna + M15 Mine anticarro + + + VS-50 Anti-Personnel Mine + VS-50 Antipersonenmine + Mina antipersona VS-50 + Mina przeciwpiechotna VS-50 + VS-50 Protipěchotní Mina + VS-50 Mine antipersonnel à pression + VS-50 Противопехотная мина + VS-50 Mina antipessoal + VS-50 gyalogsági taposóakna + VS-50 Mine antiuomo + + + M26 Anti-Personnel Bounding Mine + M26 Antipersonensprungmine + Mina antipersona M26 + Mina przeciwpiechotna M26 + M26 Šrapnelová Mina + M26 Mine antipersonnel bondissante + M26 Противопехотная мина + M26 Mina saltadora antipessoal + M26 gyalogsági ugróakna + M26 Mine saltanti antiuomo + + + PMR-3 Anti-Personnel Tripwire Mine + PMR-3 Antipersonenstolperdrahtmine + Mina antipersona de alambre PMR-3 + Mina przeciwpiechotna PMR-3 + PMR-3 Nástražná Mina + PMR-3 Mine antipersonnel à traction + PMR-3 Противопехотная мина + PMR-3 Mina antipessoal (armadilha) + PMR-3 botlódrótos gyalogsági akna + PMR-3 Mine antiuomo + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Recoil/config.cpp b/TO_MERGE/agm/Recoil/config.cpp new file mode 100644 index 0000000000..e671d76bb1 --- /dev/null +++ b/TO_MERGE/agm/Recoil/config.cpp @@ -0,0 +1,366 @@ +// SEE LICENSE.TXT FOR LICENSING INFORMATION + +class CfgPatches { + class AGM_Recoil { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "TaoSensai", "commy2"}; + authorUrl = "https://github.com/Taosenai/tmr"; + }; +}; + +class CfgFunctions { + class AGM_Recoil { + class AGM_Recoil { + file = "\AGM_Recoil\functions"; + class burstDispersion; + class camshake; + }; + }; +}; + +class Extended_FiredBis_EventHandlers { + class CAManBase { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == AGM_player) then {_this call AGM_Recoil_fnc_camshake; _this call AGM_Recoil_fnc_burstDispersion;};"; + }; + }; + class Tank { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == vehicle AGM_player) then {_this call AGM_Recoil_fnc_camshake;};"; + }; + }; + class Car { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == vehicle AGM_player) then {_this call AGM_Recoil_fnc_camshake;};"; + }; + }; + class Helicopter { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == vehicle AGM_player) then {_this call AGM_Recoil_fnc_camshake;};"; + }; + }; + class Plane { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == vehicle AGM_player) then {_this call AGM_Recoil_fnc_camshake;};"; + }; + }; + class Ship_F { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == vehicle AGM_player) then {_this call AGM_Recoil_fnc_camshake;};"; + }; + }; + class StaticWeapon { + class AGM_Recoil_CamShake { + clientFiredBis = "if (_this select 0 == vehicle AGM_player) then {_this call AGM_Recoil_fnc_camshake;};"; + }; + }; +}; + +// DOC: http://forums.bistudio.com/showthread.php?94464-explaining-the-cfgRecoils-array +class CfgRecoils { + #define KICKBACK 0.07 + #define KICKBACKPRONE 0.05 + + #define MUZZLECLIMB 0.01 + #define MUZZLERECOVERY -0.004 + +// BASE RECOILS + pistolBase[] = {0,0.8*KICKBACK,0.9*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.9*MUZZLERECOVERY, 0.3,0,0}; + subMachineGunBase[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + assaultRifleBase[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + machinegunBase[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + launcherBase[] = {0,0,0}; + +// PISTOLS + recoil_pistol_light[] = {0,0.8*KICKBACK,0.9*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.9*MUZZLERECOVERY, 0.3,0,0}; + recoil_pistol_heavy[] = {0,1.1*KICKBACK,1.4*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.4*MUZZLERECOVERY, 0.3,0,0}; + recoil_prone_pistol_light[] = {0,0.8*KICKBACKPRONE,0.9*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.9*MUZZLERECOVERY, 0.3,0,0}; + recoil_prone_pistol_heavy[] = {0,1.1*KICKBACKPRONE,1.4*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.4*MUZZLERECOVERY, 0.3,0,0}; + +// SUBMACHINE GUNS + recoil_single_smg_01[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_burst_smg_01[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_smg_01[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_smg_01[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_burst_prone_smg_01[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_smg_01[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_smg_02[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_burst_smg_02[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_smg_02[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_smg_02[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_burst_prone_smg_02[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_smg_02[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_pdw[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_burst_pdw[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_pdw[] = {0,0.5*KICKBACK,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_pdw[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_burst_prone_pdw[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_pdw[] = {0,0.5*KICKBACKPRONE,0.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.5*MUZZLERECOVERY, 0.3,0,0}; + +// ASSAULT RIFLES + recoil_single_mx[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_mx[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_mx[] = {0,1*KICKBACKPRONE,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_mx[] = {0,1*KICKBACKPRONE,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_ktb[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_ktb[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_ktb[] = {0,1*KICKBACKPRONE,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_ktb[] = {0,1*KICKBACKPRONE,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_mk20[] = {0,0.8*KICKBACK,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_mk20[] = {0,0.8*KICKBACK,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_mk20[] = {0,0.8*KICKBACKPRONE,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_mk20[] = {0,0.8*KICKBACKPRONE,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_trg[] = {0,0.8*KICKBACK,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_trg[] = {0,0.8*KICKBACK,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_trg[] = {0,0.8*KICKBACKPRONE,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_trg[] = {0,0.8*KICKBACKPRONE,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_sdar[] = {0,0.8*KICKBACK,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_sdar[] = {0,0.8*KICKBACK,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_sdar[] = {0,0.8*KICKBACKPRONE,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_sdar[] = {0,0.8*KICKBACKPRONE,0.8*MUZZLECLIMB, 0.12,0,0, 0.15,0,0.8*MUZZLERECOVERY, 0.3,0,0}; + +// MACHINE GUNS + recoil_single_mk200[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_mk200[] = {0,1*KICKBACK,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_mk200[] = {0,1*KICKBACKPRONE,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_mk200[] = {0,1*KICKBACKPRONE,1*MUZZLECLIMB, 0.12,0,0, 0.15,0,1*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_zafir[] = {0,1.5*KICKBACK,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_zafir[] = {0,1.5*KICKBACK,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_zafir[] = {0,1.5*KICKBACKPRONE,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_zafir[] = {0,1.5*KICKBACKPRONE,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + +// PRECISION RIFLES + recoil_single_dmr[] = {0,1.5*KICKBACK,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_dmr[] = {0,1.5*KICKBACK,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_dmr[] = {0,1.5*KICKBACKPRONE,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_dmr[] = {0,1.5*KICKBACKPRONE,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_ebr[] = {0,1.5*KICKBACK,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_ebr[] = {0,1.5*KICKBACK,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_ebr[] = {0,1.5*KICKBACKPRONE,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_auto_prone_ebr[] = {0,1.5*KICKBACKPRONE,1.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,1.5*MUZZLERECOVERY, 0.3,0,0}; + + recoil_single_gm6[] = {0,2.5*KICKBACK,2.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,2.5*MUZZLERECOVERY, 0.3,0,0}; + recoil_single_prone_gm6[] = {0,2.5*KICKBACKPRONE,2.5*MUZZLECLIMB, 0.12,0,0, 0.15,0,2.5*MUZZLERECOVERY, 0.3,0,0}; + +// LAUNCHERS + recoil_single_law[] = {0,0,0}; + recoil_single_nlaw[] = {0,0,0}; + recoil_single_titan[] = {0,0,0}; +}; + +class CfgCameraShake { + // What does this do, really? It seems like the engine no longer respects it. + defaultCaliberCoefWeaponFire = 0; +}; + +// Completely disable BI's camshake on fire. +#define AGM_CAMSHAKEFIRE_BASE 0 +#define AGM_CAMSHAKEFIRE_LESS 0 +#define AGM_CAMSHAKEFIRE_MORE 0 + +// Go through all modes that have a camshakefire defined and change it to ours. +class CfgMovesBasic { + class Default { + camShakeFire = AGM_CAMSHAKEFIRE_BASE; + }; +}; +class CfgMovesMaleSdr : CfgMovesBasic { + class States { + class AmovPercMstpSlowWrflDnon; + class AmovPknlMstpSlowWrflDnon : AmovPercMstpSlowWrflDnon { + camShakeFire = AGM_CAMSHAKEFIRE_LESS; + }; + class AmovPercMstpSrasWrflDnon; + class AmovPpneMstpSrasWrflDnon : AmovPercMstpSrasWrflDnon { + camShakeFire = AGM_CAMSHAKEFIRE_LESS; + }; + class AmovPknlMstpSrasWlnrDnon : Default { + camShakeFire = AGM_CAMSHAKEFIRE_LESS; + }; + class AmovPknlMrunSlowWrflDf; + class AmovPknlMtacSlowWrflDf : AmovPknlMrunSlowWrflDf { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDfl; + class AmovPknlMtacSlowWrflDfl : AmovPknlMrunSlowWrflDfl { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDl; + class AmovPknlMtacSlowWrflDl : AmovPknlMrunSlowWrflDl { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDbl; + class AmovPknlMtacSlowWrflDbl : AmovPknlMrunSlowWrflDbl { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDb; + class AmovPknlMtacSlowWrflDb : AmovPknlMrunSlowWrflDb { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDbr; + class AmovPknlMtacSlowWrflDbr : AmovPknlMrunSlowWrflDbr { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDr; + class AmovPknlMtacSlowWrflDr : AmovPknlMrunSlowWrflDr { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMrunSlowWrflDfr; + class AmovPknlMtacSlowWrflDfr : AmovPknlMrunSlowWrflDfr { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMstpSrasWrflDnon; + class AmovPknlMwlkSrasWrflDf : AmovPknlMstpSrasWrflDnon { + camShakeFire = AGM_CAMSHAKEFIRE_BASE; + }; + class AmovPknlMrunSrasWrflDf; + class AmovPknlMtacSrasWrflDf : AmovPknlMrunSrasWrflDf { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + class AmovPknlMwlkSrasWpstDf; + class AmovPknlMtacSrasWpstDf : AmovPknlMwlkSrasWpstDf { + camShakeFire = AGM_CAMSHAKEFIRE_MORE; + }; + }; +}; + +// Ammo +class CfgAmmo { + class MissileCore; + class MissileBase: MissileCore { + AGM_Recoil_shakeMultiplier = 2; + }; + + class BombCore; + class LaserBombCore: BombCore { + AGM_Recoil_shakeMultiplier = 2; + }; + class Bo_Mk82: BombCore { + AGM_Recoil_shakeMultiplier = 2; + }; + + class RocketCore; + class ArtilleryRocketCore: RocketCore { + AGM_Recoil_shakeMultiplier = 1.4; + }; + class RocketBase: RocketCore { + AGM_Recoil_shakeMultiplier = 1.4; + }; + + class BulletCore; + class BulletBase: BulletCore { + AGM_Recoil_shakeMultiplier = 1; + }; + + class ShotgunCore; + class ShotgunBase: ShotgunCore { + AGM_Recoil_shakeMultiplier = 1.1; + }; + + class ShellCore; + class ShellBase: ShellCore { + AGM_Recoil_shakeMultiplier = 3; + }; + + class SubmunitionCore; + class SubmunitionBase: SubmunitionCore { + AGM_Recoil_shakeMultiplier = 3; + }; + + class ShotDeployCore; + class ShotDeployBase: ShotDeployCore { + AGM_Recoil_shakeMultiplier = 3; + }; +}; + +// Weapons +// 1. Set the recoil profiles for all fire modes. +// 2. Set the shake multiplier. This determines the camshake for the weapon. +// Ex: agm_recoil_shakeMultiplier = 1; + +// disabled currently +#define SHAKEMULTIPLIER_BASE 0 + +class CfgWeapons { + class CannonCore; + class autocannon_Base_F: CannonCore { + agm_recoil_shakeMultiplier = SHAKEMULTIPLIER_BASE; + }; + class autocannon_35mm: CannonCore { + agm_recoil_shakeMultiplier = SHAKEMULTIPLIER_BASE; + }; + class cannon_120mm: CannonCore { + agm_recoil_shakeMultiplier = SHAKEMULTIPLIER_BASE; + }; + class mortar_155mm_AMOS: CannonCore { + agm_recoil_shakeMultiplier = SHAKEMULTIPLIER_BASE; + }; + class mortar_82mm: CannonCore { + agm_recoil_shakeMultiplier = SHAKEMULTIPLIER_BASE; + }; + + // No camshake for gatlings + class gatling_20mm: CannonCore { + agm_recoil_shakeMultiplier = 0; + }; + class gatling_25mm: CannonCore { + agm_recoil_shakeMultiplier = 0; + }; + class gatling_30mm: CannonCore { + agm_recoil_shakeMultiplier = 0; + }; + + class MGunCore; + class MGun: MGunCore { + agm_recoil_shakeMultiplier = SHAKEMULTIPLIER_BASE; + }; + // No camshake for smoke launchers + class SmokeLauncher: MGun { + agm_recoil_shakeMultiplier = 0; + }; + + // No camshake for coax machine guns + class LMG_RCWS; + class LMG_M200: LMG_RCWS { + agm_recoil_shakeMultiplier = 0; + }; + class LMG_coax: LMG_RCWS { + agm_recoil_shakeMultiplier = 0; + }; + class LMG_Minigun: LMG_RCWS { + agm_recoil_shakeMultiplier = 0; + }; +}; + +// Vehicles +class CfgVehicles { + class LandVehicle; + class Tank: LandVehicle { + AGM_enableCamshake = 1; + }; + class Car: LandVehicle { + AGM_enableCamshake = 1; + }; + class StaticWeapon: LandVehicle { + AGM_enableCamshake = 1; + }; + + class Allvehicles; + class Air: Allvehicles { + AGM_enableCamshake = 1; + }; +}; diff --git a/TO_MERGE/agm/Recoil/functions/fn_burstDispersion.sqf b/TO_MERGE/agm/Recoil/functions/fn_burstDispersion.sqf new file mode 100644 index 0000000000..220fc60341 --- /dev/null +++ b/TO_MERGE/agm/Recoil/functions/fn_burstDispersion.sqf @@ -0,0 +1,62 @@ +// TMR: Small Arms - Recoil initialization and functions +// (C) 2013 Ryan Schultz. See LICENSE. +// Edited prefixes for compatability in AGM_Realism by KoffeinFlummi +// Edited by commy2 + +private ["_unit", "_weapon", "_projectile"]; + +_unit = _this select 0; +_weapon = _this select 1; +_projectile = _this select 6; + +if (_weapon in ["Throw", "Put"]) exitWith {}; + +private ["_lastFired", "_burst"]; + +_lastFired = _unit getVariable ["AGM_Recoil_lastFired", -1]; +_burst = _unit getVariable ["AGM_Recoil_Burst", 0]; + +if (time - _lastFired < 0.45) then { + private "_startDisperse"; + _burst = _burst + 1; + _unit setVariable ["AGM_Recoil_Burst", _burst, false]; + + _startDisperse = [1, 3] select (cameraView == "GUNNER"); + + if (_burst > _startDisperse) then { + // Reset burst size for calcs + _burst = _burst - _startDisperse; + + // Increase dispersion cap if player is not using sights + _sightsBurst = [30, 0] select (cameraView == "GUNNER"); + + // Increase initial dispersion and cap if player is moving + if (speed _unit > 0.5) then { + _sightsBurst = 25; + _burst = _burst + 15; + }; + + // Maximum possible dispersion (without _sightsBurst mod) + _maxBurst = 50; + + if (_unit getVariable ["AGM_weaponRested", false]) then {_maxBurst = 25}; + if (_unit getVariable ["AGM_bipodDeployed", false]) then {_maxBurst = 18}; + + // Cap the dispersion + _burst = (_burst min _maxBurst) + _sightsBurst; + + // Add random variance + _elevAngle = (_burst / 300) - random (_burst / 300) * 2; + _travAngle = (_burst / 260) - random (_burst / 260) * 2; + + ["Burst", [_travAngle, _elevAngle]] call AGM_Debug_fnc_log; + + [_projectile, _travAngle, _elevAngle] call AGM_Core_fnc_changeProjectileDirection; + }; +} else { + + // Long enough delay, reset burst + _unit setVariable ["AGM_Recoil_Burst", 0, false]; +}; + +_unit setVariable ["AGM_Recoil_lastFired", time, false]; diff --git a/TO_MERGE/agm/Recoil/functions/fn_camshake.sqf b/TO_MERGE/agm/Recoil/functions/fn_camshake.sqf new file mode 100644 index 0000000000..3bbdfd33bf --- /dev/null +++ b/TO_MERGE/agm/Recoil/functions/fn_camshake.sqf @@ -0,0 +1,61 @@ +// TMR: Small Arms - Recoil initialization and functions +// (C) 2013 Ryan Schultz. See LICENSE. +// Edited prefixes for compatability in AGM_Realism by KoffeinFlummi +// Edited by commy2 + +#define BASE_POWER 0.40 +#define BASE_TIME 0.19 +#define BASE_FREQ 13 +#define RECOIL_COEF 40 + +private ["_unit", "_weapon", "_muzzle", "_ammo"]; + +_unit = _this select 0; +_weapon = _this select 1; +_muzzle = _this select 2; +_ammo = _this select 4; + +if (_weapon in [handgunWeapon _unit, "Throw", "Put"]) exitWith {}; + +private ["_powerMod", "_timeMod", "_freqMod", "_powerCoef"]; + +_powerMod = ([0, -0.1, -0.1, 0, -0.2] select (["STAND", "CROUCH", "PRONE", "UNDEFINED", ""] find stance _unit)) + ([0, -1, 0, -1] select (["INTERNAL", "EXTERNAL", "GUNNER", "GROUP"] find cameraView)); +_timeMod = 0; +_freqMod = 0; + +_powerCoef = 0; +if (_unit != vehicle _unit) then { + _powerCoef = getNumber (configFile >> "CfgWeapons" >> _weapon >> "AGM_Recoil_shakeMultiplier"); + _powerCoef = _powerCoef * getNumber (configFile >> "CfgAmmo" >> _ammo >> "AGM_Recoil_shakeMultiplier"); +} else { + private ["_type", "_config", "_recoil"]; + + _type = ["recoil", "recoilProne"] select (stance _unit == "PRONE"); + + _config = configFile >> "CfgWeapons" >> _weapon; + _recoil = if (_muzzle == _weapon) then { + getText (_config >> _type) + } else { + getText (_config >> _muzzle >> _type) + }; + + _recoil = getArray (configFile >> "CfgRecoils" >> _recoil); + if (count _recoil < 2) exitWith {}; + + _powerCoef = _recoil select 1; + _powerCoef = (call compile format ["%1", _powerCoef]) * RECOIL_COEF; +}; + +if (_unit getVariable ["AGM_weaponRested", false]) then {_powerMod = _powerMod - 0.07}; +if (_unit getVariable ["AGM_bipodDeployed", false]) then {_powerMod = _powerMod - 0.11}; + +private "_camshake"; +_camshake = [ + _powerCoef * (BASE_POWER + _powerMod) max 0, + BASE_TIME + _timeMod max 0, + BASE_FREQ + _freqMod max 0 +]; + +["CamShake", _camshake, {copyToClipboard format ["addCamShake %1;", _this]; _this}] call AGM_Debug_fnc_log; + +addCamShake _camshake; diff --git a/TO_MERGE/agm/Reload/config.cpp b/TO_MERGE/agm/Reload/config.cpp new file mode 100644 index 0000000000..ea7793ff6a --- /dev/null +++ b/TO_MERGE/agm/Reload/config.cpp @@ -0,0 +1,73 @@ +class CfgPatches { + class AGM_Reload { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Reload { + class AGM_Reload { + file = "\AGM_Reload\functions"; + class checkAmmo; + }; + }; +}; + +class Extended_Take_EventHandlers { + class CAManBase { + class AGM_AmmoIndicatorReload { + clientTake = "if (_this select 0 == AGM_player && {(_this select 1) in [uniformContainer (_this select 0), vestContainer (_this select 0), backpackContainer (_this select 0)]} && {_this select 2 == currentMagazine (_this select 0)}) then {[_this select 0, vehicle (_this select 0), true] call AGM_Reload_fnc_checkAmmo};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class checkAmmo { + displayName = "$STR_AGM_Reload_checkAmmo"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon || {_vehicle isKindOf 'StaticWeapon'}"; + statement = "[_player, _vehicle, false] call AGM_Reload_fnc_checkAmmo"; + key = 19; + shift = 0; + control = 1; + alt = 0; + }; +}; + +class CfgActions { + class LoadMagazine; + class LoadEmptyMagazine : LoadMagazine { + showWindow = 0; + textDefault = ""; + }; +}; + +class RscControlsGroup; +class RscText; +class RscInGameUI { + class RscUnitInfo { + // Soldier only + class WeaponInfoControlsGroupLeft: RscControlsGroup { + class controls { + class CA_AmmoCount: RscText { + sizeEx = 0; + }; + }; + }; + // Vehicles only + /*class WeaponInfoControlsGroupRight: RscControlsGroup { + class controls { + class CA_AmmoCount: RscText { + sizeEx = 0; + }; + }; + };*/ + }; +}; diff --git a/TO_MERGE/agm/Reload/functions/fn_checkAmmo.sqf b/TO_MERGE/agm/Reload/functions/fn_checkAmmo.sqf new file mode 100644 index 0000000000..5bd6de270c --- /dev/null +++ b/TO_MERGE/agm/Reload/functions/fn_checkAmmo.sqf @@ -0,0 +1,101 @@ +/* + * Author: commy2 + * + * Count the ammo of the currently loaded magazine or count rifle grenades. Play animation and display message. + * + * Argument: + * 0: The player (Object) + * 1: The vehicle (Object) + * 2: Skip the animation? Used after reloading (Bool) + * + * Return value: + * Nothing + */ + +#define COUNT_BARS 12 + + +private ["_unit", "_vehicle"]; + +_unit = _this select 0; +_vehicle = _this select 1; + +if (_unit != _vehicle && !(_vehicle isKindOf "StaticWeapon")) then { + _vehicle = _unit; +}; + +[_vehicle, currentWeapon _vehicle, currentMuzzle _vehicle, currentMagazine _vehicle, _this select 2] spawn { + _vehicle = _this select 0; + _weapon = _this select 1; + _muzzle = _this select 2; + _magazine = _this select 3; + _skipDelay = _this select 4; + + if (currentWeapon _vehicle == "") exitWith {}; + if (typeName _muzzle != "STRING") then {_muzzle = _weapon}; + + _showNumber = false; + _ammo = 0; + _maxRounds = 1; + _count = 0; + + // not grenade launcher + if (_muzzle == _weapon) then { + _maxRounds = getNumber (configFile >> "CfgMagazines" >> _magazine >> "count") max 1; + + _ammo = _vehicle ammo _weapon; + if (_maxRounds >= COUNT_BARS) then { + _count = round (COUNT_BARS * _ammo / _maxRounds); + + if (_ammo > 0) then {_count = _count max 1}; + if (_ammo < _maxRounds) then {_count = _count min (COUNT_BARS - 1)}; + } else { + _count = _ammo; + }; + + // grenade launcher + } else { + _showNumber = true; + + _count = if (_magazine != "") then { + {_x == _magazine} count (magazines _vehicle + [_magazine]) + } else { + {_x in getArray (configFile >> "CfgWeapons" >> _weapon >> _muzzle >> "Magazines")} count magazines _vehicle + }; + }; + + if !(_skipDelay) then { + _vehicle playActionNow "Gear"; + sleep 1 + }; + + _text = if (_showNumber) then { + parseText format ["%1x", _count] + } else { + _color = [ + 2 * (1 - _ammo / _maxRounds) min 1, + 2 * _ammo / _maxRounds min 1, + 00 + ]; + + _string = ""; + for "_a" from 1 to _count do { + _string = _string + "|"; + }; + _text = [_string, _color] call AGM_Core_fnc_stringToColoredText; + + _string = ""; + for "_a" from (_count + 1) to (_maxRounds min COUNT_BARS) do { + _string = _string + "|"; + }; + + composeText [ + _text, + [_string, [0.5, 0.5, 0.5]] call AGM_Core_fnc_stringToColoredText + ] + }; + + _picture = getText (configFile >> "CfgMagazines" >> _magazine >> "picture"); + + [_text, _picture] call AGM_Core_fnc_displayTextPicture; +}; diff --git a/TO_MERGE/agm/Reload/stringtable.xml b/TO_MERGE/agm/Reload/stringtable.xml new file mode 100644 index 0000000000..a596796bdc --- /dev/null +++ b/TO_MERGE/agm/Reload/stringtable.xml @@ -0,0 +1,30 @@ + + + + + + Check Ammo + Munition prüfen + Verificar munición + Sprawdź amunicję + Vérifier Munitions + Lőszerellenőrzés + Zkontrolovat Munici + Controlla le munizioni + Conferir munições + Kонтроль Боеприпасы + + + Ammo + Munition + Munición + Amunicja + Munitions + Lőszer + Munice + Munizioni + Munições + Боеприпасы + + + diff --git a/TO_MERGE/agm/Respawn/UI/Icon_Module_FriendlyFire_ca.paa b/TO_MERGE/agm/Respawn/UI/Icon_Module_FriendlyFire_ca.paa new file mode 100644 index 0000000000..200d02732c Binary files /dev/null and b/TO_MERGE/agm/Respawn/UI/Icon_Module_FriendlyFire_ca.paa differ diff --git a/TO_MERGE/agm/Respawn/UI/Icon_Module_Rallypoint_ca.paa b/TO_MERGE/agm/Respawn/UI/Icon_Module_Rallypoint_ca.paa new file mode 100644 index 0000000000..ef6ce002c4 Binary files /dev/null and b/TO_MERGE/agm/Respawn/UI/Icon_Module_Rallypoint_ca.paa differ diff --git a/TO_MERGE/agm/Respawn/UI/Icon_Module_Respawn_ca.paa b/TO_MERGE/agm/Respawn/UI/Icon_Module_Respawn_ca.paa new file mode 100644 index 0000000000..3edf597185 Binary files /dev/null and b/TO_MERGE/agm/Respawn/UI/Icon_Module_Respawn_ca.paa differ diff --git a/TO_MERGE/agm/Respawn/config.cpp b/TO_MERGE/agm/Respawn/config.cpp new file mode 100644 index 0000000000..a959cc34f7 --- /dev/null +++ b/TO_MERGE/agm/Respawn/config.cpp @@ -0,0 +1,281 @@ +class CfgPatches { + class AGM_Respawn { + units[] = {}; + weapons[] = {"AGM_Rallypoint_West", "AGM_Rallypoint_East", "AGM_Rallypoint_Independent", "AGM_RallypointExit_West", "AGM_RallypointExit_East", "AGM_RallypointExit_Independent"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"bux578", "commy2"}; + authorUrl = "https://github.com/bux578/"; + }; +}; + +class CfgFunctions { + class AGM_Respawn { + class AGM_Respawn { + file = "AGM_Respawn\functions"; + class canMoveRallypoint; + class getAllGear; + class handleKilled; + class handleRespawn; + class initRallypoint; + class module; + class moduleFriendlyFire; + class moduleRallypoint; + class moveRallypoint; + class removeBody; + class removeDisconnectedPlayer; + class restoreGear; + class showFriendlyFireMessage; + class teleportToRallypoint; + }; + }; +}; + +class Extended_Killed_EventHandlers { + class CAManBase { + class AGM_Respawn_HandleGear { + killed = "_this call AGM_Respawn_fnc_handleKilled"; + }; + }; +}; +class Extended_Respawn_EventHandlers { + class CAManBase { + class AGM_Respawn_HandleGear { + respawn = "_this call AGM_Respawn_fnc_handleRespawn"; + }; + }; +}; + +class CfgAddons { + class AGM_Respawn_Rallypoints { + list[] = {"AGM_Rallypoint_West", "AGM_Rallypoint_East", "AGM_Rallypoint_Independent", "AGM_RallypointExit_West", "AGM_RallypointExit_East", "AGM_RallypointExit_Independent"}; + }; +}; + +class CfgVehicleClasses { + class AGM_Respawn_Rallypoints { + displayName = "AGM Respawn"; + }; +}; + +class CfgVehicles { + class Module_F; + class AGM_ModuleRespawn: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Respawn System"; + function = "AGM_Respawn_fnc_module"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Respawn\UI\Icon_Module_Respawn_ca.paa"; + class Arguments { + class SavePreDeathGear { + displayName = "Save Gear?"; + description = "Respawn with the gear a soldier had just before his death?"; + typeName = "BOOL"; + class values { + class Yes { name = "Yes"; value = 1;}; + class No { default = 1; name = "No"; value = 0; }; + }; + }; + class RemoveDeadBodiesDisonncected { + displayName = "Remove bodies?"; + description = "Remove player bodies after disconnect?"; + typeName = "BOOL"; + class values { + class Yes { default = 1; name = "Yes"; value = 1;}; + class No { name = "No"; value = 0; }; + }; + }; + /*class BodyRemoveTimer { + displayName = "Time to remove bodies."; + description = "The amount of time (in seconds) after that a unit's body gets removed. Default: 90"; + typeName = "NUMBER"; + defaultValue = 90; + };*/ + }; + }; + + class AGM_ModuleFriendlyFire: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Friendly Fire Messages"; + function = "AGM_Respawn_fnc_moduleFriendlyFire"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Respawn\UI\Icon_Module_FriendlyFire_ca.paa"; + class Arguments { + }; + }; + + class AGM_ModuleRallypoint: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Rallypoint System"; + function = "AGM_Respawn_fnc_moduleRallypoint"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Respawn\UI\Icon_Module_Rallypoint_ca.paa"; + class Arguments { + }; + }; + + // rallypoints + class FlagCarrier; + class Flag_NATO_F: FlagCarrier { + class AGM_Actions; + }; + + class Flag_CSAT_F: FlagCarrier { + class AGM_Actions; + }; + + class Flag_AAF_F: FlagCarrier { + class AGM_Actions; + }; + + // static + class AGM_Rallypoint_West: Flag_NATO_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Rallypoint West Base"; + vehicleClass = "AGM_Respawn_Rallypoints"; + + class EventHandlers { + init = "(_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call AGM_Respawn_fnc_initRallypoint"; + }; + class AGM_Actions: AGM_Actions { + class AGM_Teleport { + displayName = "Teleport to Rallypoint"; + distance = 4; + condition = "side group _player == west"; + statement = "[_player, side group _player, false] call AGM_Respawn_fnc_teleportToRallypoint;"; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class AGM_Rallypoint_East: Flag_CSAT_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Rallypoint East Base"; + vehicleClass = "AGM_Respawn_Rallypoints"; + + class EventHandlers { + init = "(_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call AGM_Respawn_fnc_initRallypoint"; + }; + class AGM_Actions: AGM_Actions { + class AGM_Teleport { + displayName = "Teleport to Rallypoint"; + distance = 4; + condition = "side group _player == east"; + statement = "[_player, side group _player, false] call AGM_Respawn_fnc_teleportToRallypoint;"; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class AGM_Rallypoint_Independent: Flag_AAF_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Rallypoint Independent Base"; + vehicleClass = "AGM_Respawn_Rallypoints"; + + class EventHandlers { + init = "(_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call AGM_Respawn_fnc_initRallypoint"; + }; + class AGM_Actions: AGM_Actions { + class AGM_Teleport { + displayName = "Teleport to Rallypoint"; + distance = 4; + condition = "side group _player == independent"; + statement = "[_player, side group _player, false] call AGM_Respawn_fnc_teleportToRallypoint;"; + showDisabled = 1; + priority = 1; + }; + }; + }; + + // moveable + class AGM_RallypointExit_West: Flag_NATO_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Rallypoint West"; + vehicleClass = "AGM_Respawn_Rallypoints"; + + class EventHandlers { + init = "(_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_nato_CO.paa'; _this call AGM_Respawn_fnc_initRallypoint"; + }; + class AGM_Actions: AGM_Actions { + class AGM_Teleport { + displayName = "Teleport to Base"; + distance = 4; + condition = "side group _player == west"; + statement = "[_player, side group _player, true] call AGM_Respawn_fnc_teleportToRallypoint;"; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class AGM_RallypointExit_East: Flag_CSAT_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Rallypoint East"; + vehicleClass = "AGM_Respawn_Rallypoints"; + + class EventHandlers { + init = "(_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_CSAT_CO.paa'; _this call AGM_Respawn_fnc_initRallypoint"; + }; + class AGM_Actions: AGM_Actions { + class AGM_Teleport { + displayName = "Teleport to Base"; + distance = 4; + condition = "side group _player == east"; + statement = "[_player, side group _player, true] call AGM_Respawn_fnc_teleportToRallypoint;"; + showDisabled = 1; + priority = 1; + }; + }; + }; + + class AGM_RallypointExit_Independent: Flag_AAF_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Rallypoint Independent"; + vehicleClass = "AGM_Respawn_Rallypoints"; + + class EventHandlers { + init = "(_this select 0) setFlagTexture '\A3\Data_F\Flags\Flag_AAF_CO.paa'; _this call AGM_Respawn_fnc_initRallypoint"; + }; + class AGM_Actions: AGM_Actions { + class AGM_Teleport { + displayName = "Teleport to Base"; + distance = 4; + condition = "side group _player == independent"; + statement = "[_player, side group _player, true] call AGM_Respawn_fnc_teleportToRallypoint;"; + showDisabled = 1; + priority = 1; + }; + }; + }; + + // team leader + class Man; + class CAManBase: Man { + class AGM_SelfActions { + class AGM_MoveRallypoint { + displayName = "Move Rallypoint"; + condition = "[_player, side group _player] call AGM_Respawn_fnc_canMoveRallypoint"; + statement = "[_player, side group _player] call AGM_Respawn_fnc_moveRallypoint"; + showDisabled = 0; + priority = -0.5; + }; + }; + }; +}; + +class AGM_Parameters_Boolean { + // Boolean Parameters (0/1) + AGM_Respawn_SavePreDeathGear = 0; + AGM_Respawn_RemoveDeadBodiesDisonncected = 1; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_canMoveRallypoint.sqf b/TO_MERGE/agm/Respawn/functions/fn_canMoveRallypoint.sqf new file mode 100644 index 0000000000..a0e0e2ab4b --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_canMoveRallypoint.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_unit", "_side"]; + +_unit = _this select 0; +_side = _this select 1; + +_unit getVariable ["AGM_canMoveRallypoint", false] +&& {!isNull ([ + objNull, + missionNamespace getVariable ["AGM_Rallypoint_West", objNull], + missionNamespace getVariable ["AGM_Rallypoint_East", objNull], + missionNamespace getVariable ["AGM_Rallypoint_Independent", objNull] +] select ([west, east, independent] find _side) + 1)} diff --git a/TO_MERGE/agm/Respawn/functions/fn_getAllGear.sqf b/TO_MERGE/agm/Respawn/functions/fn_getAllGear.sqf new file mode 100644 index 0000000000..5368dbdd35 --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_getAllGear.sqf @@ -0,0 +1,40 @@ +/* +Author: bux578 + +Description: +Returns an array containing all items of a given unit + +Arguments: +A player object + +Return value: +An array containing all inventory items +*/ + +private ["_unit", "_allGear"]; + +_unit = _this select 0; + +_allGear = [ + (headgear _unit), + (goggles _unit), + (uniform _unit), + (uniformItems _unit), + (vest _unit), + (vestItems _unit), + (backpack _unit), + (backpackItems _unit), + (primaryWeapon _unit), + (primaryWeaponItems _unit), + (primaryWeaponMagazine _unit), + (secondaryWeapon _unit), + (secondaryWeaponItems _unit), + (secondaryWeaponMagazine _unit), + (handgunWeapon _unit), + (handgunItems _unit), + (handgunMagazine _unit), + (assignedItems _unit), + (binocular _unit) +]; + +_allGear diff --git a/TO_MERGE/agm/Respawn/functions/fn_handleKilled.sqf b/TO_MERGE/agm/Respawn/functions/fn_handleKilled.sqf new file mode 100644 index 0000000000..48fb056ebe --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_handleKilled.sqf @@ -0,0 +1,31 @@ +/* + Name: AGM_Respawn_fnc_handleKilled + + Author(s): + bux578 + + Description: + Handles the XEH Killed event + + Parameters: + 0: OBJECT - Killed unit + 1: OBJECT - Attacker + + Returns: + VOID +*/ + +private ["_killedUnit"]; + +_killedUnit = _this select 0; + +// Saves the gear when the player is killed +AGM_Respawn_unitGear = []; + +if (AGM_Respawn_SavePreDeathGear) then { + AGM_Respawn_unitGear = [_killedUnit] call AGM_Respawn_fnc_getAllGear; +}; + +if (missionNamespace getVariable ["AGM_showFriendlyFireMessage", false]) then { + [_this, "AGM_Respawn_fnc_showFriendlyFireMessage", 2] call AGM_Core_fnc_execRemoteFnc; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_handleRespawn.sqf b/TO_MERGE/agm/Respawn/functions/fn_handleRespawn.sqf new file mode 100644 index 0000000000..499bd33e8a --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_handleRespawn.sqf @@ -0,0 +1,25 @@ +/* + Name: AGM_Respawn_fnc_handleRespawn + + Author(s): + bux578 + + Description: + Handles the XEH Respawn event + + Parameters: + 0: OBJECT - Respawned Unit + 1: ? + + Returns: + VOID +*/ + +private ["_respawnedUnit"]; + +_respawnedUnit = _this select 0; + +// Restores the gear when the player respawns +if (AGM_Respawn_SavePreDeathGear) then { + [_respawnedUnit, AGM_Respawn_unitGear] call AGM_Respawn_fnc_restoreGear; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_initRallypoint.sqf b/TO_MERGE/agm/Respawn/functions/fn_initRallypoint.sqf new file mode 100644 index 0000000000..ae84a02605 --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_initRallypoint.sqf @@ -0,0 +1,17 @@ +// by commy2 + +private ["_rallypoint", "_name"]; + +_rallypoint = _this select 0; + +if (!local _rallypoint) exitWith {}; + +_name = typeOf _rallypoint; + +if (isNil _name) then { + missionNamespace setVariable [_name, _rallypoint]; + publicVariable _name; +} else { + deleteVehicle _rallypoint; + diag_log text "[AGM] Respawn: ERROR Multiple Rallypoints of same type."; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_module.sqf b/TO_MERGE/agm/Respawn/functions/fn_module.sqf new file mode 100644 index 0000000000..c407da505b --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_module.sqf @@ -0,0 +1,43 @@ +/* + * Author: KoffeinFlummi, bux578, CAA-Picard, commy2 + * + * Initializes the respawn module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ +if !(isServer) exitWith {}; + +_logic = _this select 0; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +AGM_Respawn_Module = true; + +[_logic, "AGM_Respawn_SavePreDeathGear", "SavePreDeathGear"] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_Respawn_RemoveDeadBodiesDisonncected", "RemoveDeadBodiesDisonncected"] call AGM_Core_fnc_readBooleanParameterFromModule; + +if (isServer) then { + if (AGM_Respawn_RemoveDeadBodiesDisonncected) then { + _fnc_deleteDisconnected = { + _this spawn { + _unit = _this select 0; + + sleep 4; + + if (!alive _unit) then { + deleteVehicle _unit; + }; + }; + false + }; + + addMissionEventHandler ["HandleDisconnect", _fnc_deleteDisconnected]; + }; +}; + +diag_log text "[AGM]: Respawn Module Initialized."; diff --git a/TO_MERGE/agm/Respawn/functions/fn_moduleFriendlyFire.sqf b/TO_MERGE/agm/Respawn/functions/fn_moduleFriendlyFire.sqf new file mode 100644 index 0000000000..3dc6fb302f --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_moduleFriendlyFire.sqf @@ -0,0 +1,28 @@ +/* + * Author: commy2 + * + * Initializes the Friendly Fire Messages module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +_this spawn { + _logic = _this select 0; + _units = _this select 1; + _activated = _this select 2; + + if !(_activated) exitWith {}; + + if (isServer) then { + _varName = "AGM_showFriendlyFireMessage"; + + missionNamespace setVariable [_varName, true]; + publicVariable _varName; + }; + + diag_log text "[AGM]: Friendly Fire Messages Module Initialized."; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_moduleRallypoint.sqf b/TO_MERGE/agm/Respawn/functions/fn_moduleRallypoint.sqf new file mode 100644 index 0000000000..33efac1953 --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_moduleRallypoint.sqf @@ -0,0 +1,25 @@ +/* + * Author: commy2 + * + * Initializes the Rallypoint module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +//_mode = parseNumber (_logic getVariable "Action"); + +{ + _x setVariable ["AGM_canMoveRallypoint", true]; +} forEach _units; + +diag_log text "[AGM]: Rallypoint Module Initialized."; diff --git a/TO_MERGE/agm/Respawn/functions/fn_moveRallypoint.sqf b/TO_MERGE/agm/Respawn/functions/fn_moveRallypoint.sqf new file mode 100644 index 0000000000..68d197844c --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_moveRallypoint.sqf @@ -0,0 +1,35 @@ +// by commy2 + +_this spawn { + _unit = _this select 0; + _side = _this select 1; + + _rallypoint = [ + objNull, + missionNamespace getVariable ["AGM_RallypointExit_West", objNull], + missionNamespace getVariable ["AGM_RallypointExit_East", objNull], + missionNamespace getVariable ["AGM_RallypointExit_Independent", objNull] + ] select ([west, east, independent] find _side) + 1; + + if (isNull _rallypoint) exitWith {}; + + _position = getPosATL _unit; + _position = _position findEmptyPosition [0, 2, typeOf _rallypoint]; + if (count _position == 0) then {_position = getPosATL _unit}; + + _position set [2, 0]; + + ["Deploy in 5 seconds ..."] call AGM_Core_fnc_displayTextStructured; + + sleep 5; + _rallypoint setPosATL _position; + _unit reveal _rallypoint; + + /* + _marker = format ["AGM_RallyPoint_%1", _side]; + _marker setMarkerPos _position; + _marker setMarkerTextLocal format ["%1:%2", [date select 3, 2, 0] call CBA_fnc_FORMATNumber, [date select 4, 2, 0] call CBA_fnc_FORMATNumber]; + */ + + ["Rallypoint deployed"] call AGM_Core_fnc_displayTextStructured; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_removeBody.sqf b/TO_MERGE/agm/Respawn/functions/fn_removeBody.sqf new file mode 100644 index 0000000000..063b39abec --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_removeBody.sqf @@ -0,0 +1,30 @@ +/* + * Author: bux578 + * + * removes the body + * + * Arguments: + * The body + * + * Return Value: + * None + */ + +private ["_body", "_forceRemove", "_bodyRemoveTimer"]; + +_body = _this select 0; +_forceRemove = _this select 1; + +_bodyRemoveTimer = AGM_Respawn_BodyRemoveTimer max 0; + +// could be used for SpecOps missions. +if (_forceRemove) then { + _bodyRemoveTimer = 2; +}; + +[_body, _bodyRemoveTimer] spawn { + sleep (_this select 1); + // hideBody takes ~20s till body is fully underground + // a better hideBody would make this more aesthetic + deleteVehicle (_this select 0); +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_removeDisconnectedPlayer.sqf b/TO_MERGE/agm/Respawn/functions/fn_removeDisconnectedPlayer.sqf new file mode 100644 index 0000000000..a3fbbc737e --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_removeDisconnectedPlayer.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private ["_forceRemove", "_body"]; + +_forceRemove = _this select 0; + +{ + if (getPlayerUID _x == _uid) exitWith { + _body = _x; + }; +} forEach playableUnits; + +if (!isNil "_body" && {!alive _body}) then { + [_body, _forceRemove] call AGM_Respawn_fnc_removeBody; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_restoreGear.sqf b/TO_MERGE/agm/Respawn/functions/fn_restoreGear.sqf new file mode 100644 index 0000000000..f724e31af1 --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_restoreGear.sqf @@ -0,0 +1,145 @@ +/* +Author: bux578 + +Description: +Restores previously saved gear + +Arguments: +A player object, an array containing all gear + +Return value: +An array containing all inventory items +*/ + +private ["_unit", "_allGear", "_headgear", "_goggles", "_uniform", "_uniformitems", "_vest", "_vestitems", "_backpack", "_backpackitems", "_primaryweapon", "_primaryweaponitems", "_primaryweaponmagazine", "_handgunweapon", "_handgunweaponitems", "_handgunweaponmagazine", "_assigneditems", "_binocular"]; + + +_unit = _this select 0; +_allGear = _this select 1; + +// remove all starting gear of a player +removeAllWeapons _unit; +removeGoggles _unit; +removeHeadgear _unit; +removeVest _unit; +removeUniform _unit; +removeAllAssignedItems _unit; +clearAllItemsFromBackpack _unit; +removeBackpack _unit; + +_headgear = _allGear select 0; +_goggles = _allGear select 1; +_uniform = _allGear select 2; +_uniformitems = _allGear select 3; +_vest = _allGear select 4; +_vestitems = _allGear select 5; +_backpack = _allGear select 6; +_backpackitems = _allGear select 7; +_primaryweapon = _allGear select 8; +_primaryweaponitems = _allGear select 9; +_primaryweaponmagazine = _allGear select 10; +_secondaryweapon = _allGear select 11; +_secondaryweaponitems = _allGear select 12; +_secondaryweaponmagazine = _allGear select 13; +_handgunweapon = _allGear select 14; +_handgunweaponitems = _allGear select 15; +_handgunweaponmagazine = _allGear select 16; +_assigneditems = _allGear select 17; +_binocular = _allGear select 18; + + +// start restoring the items +if (_headgear != "") then { + _unit addHeadgear _headgear; +}; +if (_uniform != "") then { + _unit forceAddUniform _uniform; +}; +if (_vest != "") then { + _unit addVest _vest; +}; +if (_goggles != "") then { + _unit addGoggles _goggles; +}; + +{ + _unit addItemToUniform _x; +}forEach _uniformitems; + +{ + _unit addItemToVest _x; +}forEach _vestitems; + + +if(format["%1", _backpack] != "") then { + _unit addBackpack _backpack; + + _backpa = unitBackpack _unit; + clearMagazineCargoGlobal _backpa; + clearWeaponCargoGlobal _backpa; + clearItemCargoGlobal _backpa; + { + _unit addItemToBackpack _x; + } forEach _backpackitems; +}; + + +// primaryWeapon +if (_primaryweapon != "") then { + { + _unit addMagazine _x; + } forEach _primaryweaponmagazine; + + _unit addWeapon _primaryweapon; + + { + if (_x != "") then { + _unit addPrimaryWeaponItem _x; + }; + } forEach _primaryweaponitems; +}; + + +// secondaryWeapon +if (_secondaryweapon != "") then { + { + _unit addMagazine _x; + } forEach _secondaryweaponmagazine; + + _unit addWeapon _secondaryweapon; + + { + if (_x != "") then { + _unit addSecondaryWeaponItem _x; + }; + } forEach _secondaryweaponitems; +}; + + +// handgun +if (_handgunweapon != "") then { + { + _unit addMagazine _x; + } forEach _handgunweaponmagazine; + + _unit addWeapon _handgunweapon; + + { + if (_x != "") then { + _unit addHandgunItem _x; + }; + } forEach _handgunweaponitems; +}; + + +_assignedItems = _assignedItems - [_binocular]; + +// items +{_unit linkItem _x} forEach _assignedItems; + +_unit addWeapon _binocular; + +if ("Laserdesignator" in assignedItems _unit) then { + _unit selectWeapon "Laserdesignator"; + if (currentMagazine _unit == "") then {_unit addMagazine "Laserbatteries";}; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_showFriendlyFireMessage.sqf b/TO_MERGE/agm/Respawn/functions/fn_showFriendlyFireMessage.sqf new file mode 100644 index 0000000000..e505d2cfff --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_showFriendlyFireMessage.sqf @@ -0,0 +1,12 @@ +// by commy2 + +private ["_unit", "_killer"]; + +_unit = _this select 0; +_killer = _this select 1; + +if (_unit != _killer && side group _unit in [side group AGM_player, civilian] && {side group _killer == side group AGM_player}) then { + systemChat format ["%1 was killed by %2", [_unit] call AGM_Core_fnc_getName, [_killer] call AGM_Core_fnc_getName]; + + [_unit, "killedByFriendly", [_unit, _killer]] call AGM_Core_fnc_callCustomEventHandlers; +}; diff --git a/TO_MERGE/agm/Respawn/functions/fn_teleportToRallypoint.sqf b/TO_MERGE/agm/Respawn/functions/fn_teleportToRallypoint.sqf new file mode 100644 index 0000000000..387039479e --- /dev/null +++ b/TO_MERGE/agm/Respawn/functions/fn_teleportToRallypoint.sqf @@ -0,0 +1,27 @@ +// by commy2 + +private ["_unit", "_side", "_toBase", "_rallypoint"]; + +_unit = _this select 0; +_side = _this select 1; +_toBase = _this select 2; + +_rallypoint = ([ + [ + objNull, + missionNamespace getVariable ["AGM_RallypointExit_West", objNull], + missionNamespace getVariable ["AGM_RallypointExit_East", objNull], + missionNamespace getVariable ["AGM_RallypointExit_Independent", objNull] + ], + [ + objNull, + missionNamespace getVariable ["AGM_Rallypoint_West", objNull], + missionNamespace getVariable ["AGM_Rallypoint_East", objNull], + missionNamespace getVariable ["AGM_Rallypoint_Independent", objNull] + ] +] select _toBase) select ([west, east, independent] find _side) + 1; + +if (isNull _rallypoint) exitWith {}; + +_unit setPosASL (getPosASL _rallypoint); +[["Teleported to Rallypoint", "Teleported to Base"] select _toBase] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/Resting/config.cpp b/TO_MERGE/agm/Resting/config.cpp new file mode 100644 index 0000000000..f01391a3db --- /dev/null +++ b/TO_MERGE/agm/Resting/config.cpp @@ -0,0 +1,1449 @@ +// PATCH CONFIG +class CfgPatches { + class AGM_Resting { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi", "TaoSensai"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Resting { + class AGM_Resting { + file = "AGM_Resting\functions"; + class hasBipod; + class restWeapon; + }; + }; +}; + +class AGM_Core_Default_Keys { + class restWeapon { + displayName = "$STR_AGM_Resting_RestWeapon"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon && {inputAction 'reloadMagazine' == 0} && {!weaponLowered _player} && {speed _player < 1}"; + statement = "[_player, _vehicle, currentWeapon _player] call AGM_Resting_fnc_restWeapon"; + key = 15; + shift = 0; + control = 0; + alt = 0; + }; +}; + +class CfgWeapons { + class Rifle_Long_Base_F; + class arifle_MX_Base_F; + + class arifle_MX_SW_F : arifle_MX_Base_F { + AGM_Bipod = 1; + }; + + class LMG_Mk200_F : Rifle_Long_Base_F { + AGM_Bipod = 1; + }; + class LMG_Zafir_F: Rifle_Long_Base_F { + AGM_Bipod = 1; + }; + + class LRR_base_F : Rifle_Long_Base_F { + AGM_Bipod = 1; + }; + class GM6_base_F : Rifle_Long_Base_F { + AGM_Bipod = 1; + }; +}; + +// CODE BELOW TAKEN FROM TMR, PREFIXES EDITED FOR COMPATABILITY + +#define AGM_SWAY_DEPLOY 0.02 +#define AGM_SWAY_DEPLOYPRONE 0.01 +#define AGM_SWAY_RESTED 0.04 //0.08 +#define AGM_SWAY_RESTEDPRONE 0.02 //0.04 +#define AGM_DEPLOY_TURNSPEED 0.1 + +// Arma 3 doesn't respect turnSpeed. + +class CfgMovesBasic { + class Default; + + class Actions { + class RifleStandActions; + class RifleStandActions_agm_deploy : RifleStandActions { + stop = "AmovPercMstpSrasWrflDnon_agm_deploy"; + default = "AmovPercMstpSrasWrflDnon_agm_deploy"; + turnL = "AmovPercMstpSrasWrflDnon_agm_deploy"; + turnR = "AmovPercMstpSrasWrflDnon_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustLStandActions; + class RifleAdjustLStandActions_agm_deploy : RifleAdjustLStandActions { + stop = "AadjPercMstpSrasWrflDleft_agm_deploy"; + default = "AadjPercMstpSrasWrflDleft_agm_deploy"; + AdjustL = "AadjPercMstpSrasWrflDleft_agm_deploy"; + turnL = "AadjPercMstpSrasWrflDleft_agm_deploy"; + turnR = "AadjPercMstpSrasWrflDleft_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustRStandActions; + class RifleAdjustRStandActions_agm_deploy : RifleAdjustRStandActions { + stop = "AadjPercMstpSrasWrflDright_agm_deploy"; + default = "AadjPercMstpSrasWrflDright_agm_deploy"; + AdjustRight = "AadjPercMstpSrasWrflDright_agm_deploy"; + turnL = "AadjPercMstpSrasWrflDright_agm_deploy"; + turnR = "AadjPercMstpSrasWrflDright_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustFStandActions; + class RifleAdjustFStandActions_agm_deploy : RifleAdjustFStandActions { + stop = "AadjPercMstpSrasWrflDup_agm_deploy"; + default = "AadjPercMstpSrasWrflDup_agm_deploy"; + AdjustF = "AadjPercMstpSrasWrflDup_agm_deploy"; + turnL = "AadjPercMstpSrasWrflDup_agm_deploy"; + turnR = "AadjPercMstpSrasWrflDup_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustBStandActions; + class RifleAdjustBStandActions_agm_deploy : RifleAdjustBStandActions { + stop = "AadjPercMstpSrasWrflDdown_agm_deploy"; + default = "AadjPercMstpSrasWrflDdown_agm_deploy"; + AdjustB = "AadjPercMstpSrasWrflDdown_agm_deploy"; + turnR = "AadjPercMstpSrasWrflDdown_agm_deploy"; + turnL = "AadjPercMstpSrasWrflDdown_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleKneelActions; + class RifleKneelActions_agm_deploy : RifleKneelActions { + stop = "AmovPknlMstpSrasWrflDnon_agm_deploy"; + default = "AmovPknlMstpSrasWrflDnon_agm_deploy"; + crouch = "AmovPknlMstpSrasWrflDnon_agm_deploy"; // TODO: this might cause issues + turnL = "AmovPknlMstpSrasWrflDnon_agm_deploy"; + turnR = "AmovPknlMstpSrasWrflDnon_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustLKneelActions; + class RifleAdjustLKneelActions_agm_deploy : RifleAdjustLKneelActions { + stop = "AadjPknlMstpSrasWrflDleft_agm_deploy"; + default = "AadjPknlMstpSrasWrflDleft_agm_deploy"; + turnL = "AadjPknlMstpSrasWrflDleft_agm_deploy"; + turnR = "AadjPknlMstpSrasWrflDleft_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustRKneelActions; + class RifleAdjustRKneelActions_agm_deploy : RifleAdjustRKneelActions { + stop = "AadjPknlMstpSrasWrflDright_agm_deploy"; + default = "AadjPknlMstpSrasWrflDright_agm_deploy"; + turnL = "AadjPknlMstpSrasWrflDright_agm_deploy"; + turnR = "AadjPknlMstpSrasWrflDright_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustFKneelActions; + class RifleAdjustFKneelActions_agm_deploy : RifleAdjustFKneelActions { + stop = "AadjPknlMstpSrasWrflDup_agm_deploy"; + default = "AadjPknlMstpSrasWrflDup_agm_deploy"; + turnL = "AadjPknlMstpSrasWrflDup_agm_deploy"; + turnR = "AadjPknlMstpSrasWrflDup_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustBKneelActions; + class RifleAdjustBKneelActions_agm_deploy : RifleAdjustBKneelActions { + stop = "AadjPknlMstpSrasWrflDdown_agm_deploy"; + default = "AadjPknlMstpSrasWrflDdown_agm_deploy"; + turnL = "AadjPknlMstpSrasWrflDdown_agm_deploy"; + turnR = "AadjPknlMstpSrasWrflDdown_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleProneActions; + class RifleProneActions_agm_deploy : RifleProneActions { + stop = "AmovPpneMstpSrasWrflDnon_agm_deploy"; + default = "AmovPpneMstpSrasWrflDnon_agm_deploy"; + turnL = "AmovPpneMstpSrasWrflDnon_agm_deploy"; + turnR = "AmovPpneMstpSrasWrflDnon_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustLProneActions; + class RifleAdjustLProneActions_agm_deploy : RifleAdjustLProneActions { + stop = "AadjPpneMstpSrasWrflDleft_agm_deploy"; + default = "AadjPpneMstpSrasWrflDleft_agm_deploy"; + turnL = "AadjPpneMstpSrasWrflDleft_agm_deploy"; + turnR = "AadjPpneMstpSrasWrflDleft_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustRProneActions; + class RifleAdjustRProneActions_agm_deploy : RifleAdjustRProneActions { + stop = "AadjPpneMstpSrasWrflDright_agm_deploy"; + default = "AadjPpneMstpSrasWrflDright_agm_deploy"; + turnL = "AadjPpneMstpSrasWrflDright_agm_deploy"; + turnR = "AadjPpneMstpSrasWrflDright_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustFProneActions; + class RifleAdjustFProneActions_agm_deploy : RifleAdjustFProneActions { + stop = "aadjppnemstpsraswrfldup_agm_deploy"; + default = "aadjppnemstpsraswrfldup_agm_deploy"; + turnL = "aadjppnemstpsraswrfldup_agm_deploy"; + turnR = "aadjppnemstpsraswrfldup_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustBProneActions; + class RifleAdjustBProneActions_agm_deploy : RifleAdjustBProneActions { + stop = "AadjPpneMstpSrasWrflDdown_agm_deploy"; + default = "AadjPpneMstpSrasWrflDdown_agm_deploy"; + turnL = "AadjPpneMstpSrasWrflDdown_agm_deploy"; + turnR = "AadjPpneMstpSrasWrflDdown_agm_deploy"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + ////////////////////////////////////////////////////////////////////// + + class RifleStandActions_agm_rested : RifleStandActions { + stop = "AmovPercMstpSrasWrflDnon_agm_rested"; + default = "AmovPercMstpSrasWrflDnon_agm_rested"; + turnL = "AmovPercMstpSrasWrflDnon_agm_rested"; + turnR = "AmovPercMstpSrasWrflDnon_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustLStandActions_agm_rested : RifleAdjustLStandActions { + stop = "AadjPercMstpSrasWrflDleft_agm_rested"; + default = "AadjPercMstpSrasWrflDleft_agm_rested"; + AdjustL = "AadjPercMstpSrasWrflDleft_agm_rested"; + turnL = "AadjPercMstpSrasWrflDleft_agm_rested"; + turnR = "AadjPercMstpSrasWrflDleft_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustRStandActions_agm_rested : RifleAdjustRStandActions { + stop = "AadjPercMstpSrasWrflDright_agm_rested"; + default = "AadjPercMstpSrasWrflDright_agm_rested"; + AdjustRight = "AadjPercMstpSrasWrflDright_agm_rested"; + turnL = "AadjPercMstpSrasWrflDright_agm_rested"; + turnR = "AadjPercMstpSrasWrflDright_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustFStandActions_agm_rested : RifleAdjustFStandActions { + stop = "AadjPercMstpSrasWrflDup_agm_rested"; + default = "AadjPercMstpSrasWrflDup_agm_rested"; + AdjustF = "AadjPercMstpSrasWrflDup_agm_rested"; + turnL = "AadjPercMstpSrasWrflDup_agm_rested"; + turnR = "AadjPercMstpSrasWrflDup_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustBStandActions_agm_rested : RifleAdjustBStandActions { + stop = "AadjPercMstpSrasWrflDdown_agm_rested"; + default = "AadjPercMstpSrasWrflDdown_agm_rested"; + AdjustB = "AadjPercMstpSrasWrflDdown_agm_rested"; + turnR = "AadjPercMstpSrasWrflDdown_agm_rested"; + turnL = "AadjPercMstpSrasWrflDdown_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleKneelActions_agm_rested : RifleKneelActions { + stop = "AmovPknlMstpSrasWrflDnon_agm_rested"; + default = "AmovPknlMstpSrasWrflDnon_agm_rested"; + crouch = "AmovPknlMstpSrasWrflDnon_agm_rested"; + turnL = "AmovPknlMstpSrasWrflDnon_agm_rested"; + turnR = "AmovPknlMstpSrasWrflDnon_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustLKneelActions_agm_rested : RifleAdjustLKneelActions { + stop = "AadjPknlMstpSrasWrflDleft_agm_rested"; + default = "AadjPknlMstpSrasWrflDleft_agm_rested"; + turnL = "AadjPknlMstpSrasWrflDleft_agm_rested"; + turnR = "AadjPknlMstpSrasWrflDleft_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustRKneelActions_agm_rested : RifleAdjustRKneelActions { + stop = "AadjPknlMstpSrasWrflDright_agm_rested"; + default = "AadjPknlMstpSrasWrflDright_agm_rested"; + turnL = "AadjPknlMstpSrasWrflDright_agm_rested"; + turnR = "AadjPknlMstpSrasWrflDright_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustFKneelActions_agm_rested : RifleAdjustFKneelActions { + stop = "AadjPknlMstpSrasWrflDup_agm_rested"; + default = "AadjPknlMstpSrasWrflDup_agm_rested"; + turnL = "AadjPknlMstpSrasWrflDup_agm_rested"; + turnR = "AadjPknlMstpSrasWrflDup_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustBKneelActions_agm_rested : RifleAdjustBKneelActions { + stop = "AadjPknlMstpSrasWrflDdown_agm_rested"; + default = "AadjPknlMstpSrasWrflDdown_agm_rested"; + turnL = "AadjPknlMstpSrasWrflDdown_agm_rested"; + turnR = "AadjPknlMstpSrasWrflDdown_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleProneActions_agm_rested : RifleProneActions { + stop = "AmovPpneMstpSrasWrflDnon_agm_rested"; + default = "AmovPpneMstpSrasWrflDnon_agm_rested"; + turnL = "AmovPpneMstpSrasWrflDnon_agm_rested"; + turnR = "AmovPpneMstpSrasWrflDnon_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustLProneActions_agm_rested : RifleAdjustLProneActions { + stop = "AadjPpneMstpSrasWrflDleft_agm_rested"; + default = "AadjPpneMstpSrasWrflDleft_agm_rested"; + turnL = "AadjPpneMstpSrasWrflDleft_agm_rested"; + turnR = "AadjPpneMstpSrasWrflDleft_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustRProneActions_agm_rested : RifleAdjustRProneActions { + stop = "AadjPpneMstpSrasWrflDright_agm_rested"; + default = "AadjPpneMstpSrasWrflDright_agm_rested"; + turnL = "AadjPpneMstpSrasWrflDright_agm_rested"; + turnR = "AadjPpneMstpSrasWrflDright_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustFProneActions_agm_rested : RifleAdjustFProneActions { + stop = "aadjppnemstpsraswrfldup_agm_rested"; + default = "aadjppnemstpsraswrfldup_agm_rested"; + turnL = "aadjppnemstpsraswrfldup_agm_rested"; + turnR = "aadjppnemstpsraswrfldup_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class RifleAdjustBProneActions_agm_rested : RifleAdjustBProneActions { + stop = "AadjPpneMstpSrasWrflDdown_agm_rested"; + default = "AadjPpneMstpSrasWrflDdown_agm_rested"; + turnL = "AadjPpneMstpSrasWrflDdown_agm_rested"; + turnR = "AadjPpneMstpSrasWrflDdown_agm_rested"; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + ////////////////////////////////////////////////////////////////////// + // FFV + ////////////////////////////////////////////////////////////////////// + + class passenger_inside_1Actions; + class passenger_inside_1Actions_agm_deploy : passenger_inside_1Actions { + stop = "passenger_inside_1_Aim_agm_deploy"; + default = "passenger_inside_1_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_inside_2Actions; + class passenger_inside_2Actions_agm_deploy : passenger_inside_2Actions { + stop = "passenger_inside_2_Aim_agm_deploy"; + default = "passenger_inside_2_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_inside_3Actions; + class passenger_inside_3Actions_agm_deploy : passenger_inside_3Actions { + stop = "passenger_inside_3_Aim_agm_deploy"; + default = "passenger_inside_3_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_inside_4Actions; + class passenger_inside_4Actions_agm_deploy : passenger_inside_4Actions { + stop = "passenger_inside_4_Aim_agm_deploy"; + default = "passenger_inside_4_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_bench_1Actions; + class passenger_bench_1Actions_agm_deploy : passenger_bench_1Actions { + stop = "passenger_bench_1_Aim_agm_deploy"; + default = "passenger_bench_1_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_1Actions; + class passenger_boat_1Actions_agm_deploy : passenger_boat_1Actions { + stop = "passenger_boat_1_Aim_agm_deploy"; + default = "passenger_boat_1_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_2Actions; + class passenger_boat_2Actions_agm_deploy : passenger_boat_2Actions { + stop = "passenger_boat_2_Aim_agm_deploy"; + default = "passenger_boat_2_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_3Actions; + class passenger_boat_3Actions_agm_deploy : passenger_boat_3Actions { + stop = "passenger_boat_3_Aim_agm_deploy"; + default = "passenger_boat_3_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_4Actions; + class passenger_boat_4Actions_agm_deploy : passenger_boat_4Actions { + stop = "passenger_boat_4_Aim_agm_deploy"; + default = "passenger_boat_4_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_1Actions; + class passenger_flatground_1Actions_agm_deploy : passenger_flatground_1Actions { + stop = "passenger_flatground_1_Aim_agm_deploy"; + default = "passenger_flatground_1_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_2Actions; + class passenger_flatground_2Actions_agm_deploy : passenger_flatground_2Actions { + stop = "passenger_flatground_2_Aim_agm_deploy"; + default = "passenger_flatground_2_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_3Actions; + class passenger_flatground_3Actions_agm_deploy : passenger_flatground_3Actions { + stop = "passenger_flatground_3_Aim_agm_deploy"; + default = "passenger_flatground_3_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_4Actions; + class passenger_flatground_4Actions_agm_deploy : passenger_flatground_4Actions { + stop = "passenger_flatground_4_Aim_agm_deploy"; + default = "passenger_flatground_4_Aim_agm_deploy"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + ////////////////////////////////////////////////////////////////////// + + class passenger_inside_1Actions_agm_rested : passenger_inside_1Actions { + stop = "passenger_inside_1_Aim_agm_rested"; + default = "passenger_inside_1_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_inside_2Actions_agm_rested : passenger_inside_2Actions { + stop = "passenger_inside_2_Aim_agm_rested"; + default = "passenger_inside_2_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_inside_3Actions_agm_rested : passenger_inside_3Actions { + stop = "passenger_inside_3_Aim_agm_rested"; + default = "passenger_inside_3_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_inside_4Actions_agm_rested : passenger_inside_4Actions { + stop = "passenger_inside_4_Aim_agm_rested"; + default = "passenger_inside_4_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_bench_1Actions_agm_rested : passenger_bench_1Actions { + stop = "passenger_bench_1_Aim_agm_rested"; + default = "passenger_bench_1_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_1Actions_agm_rested : passenger_boat_1Actions { + stop = "passenger_boat_1_Aim_agm_rested"; + default = "passenger_boat_1_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_2Actions_agm_rested : passenger_boat_2Actions { + stop = "passenger_boat_2_Aim_agm_rested"; + default = "passenger_boat_2_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_3Actions_agm_rested : passenger_boat_3Actions { + stop = "passenger_boat_3_Aim_agm_rested"; + default = "passenger_boat_3_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_boat_4Actions_agm_rested : passenger_boat_4Actions { + stop = "passenger_boat_4_Aim_agm_rested"; + default = "passenger_boat_4_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_1Actions_agm_rested : passenger_flatground_1Actions { + stop = "passenger_flatground_1_Aim_agm_rested"; + default = "passenger_flatground_1_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_2Actions_agm_rested : passenger_flatground_2Actions { + stop = "passenger_flatground_2_Aim_agm_rested"; + default = "passenger_flatground_2_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_3Actions_agm_rested : passenger_flatground_3Actions { + stop = "passenger_flatground_3_Aim_agm_rested"; + default = "passenger_flatground_3_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + + class passenger_flatground_4Actions_agm_rested : passenger_flatground_4Actions { + stop = "passenger_flatground_4_Aim_agm_rested"; + default = "passenger_flatground_4_Aim_agm_rested"; + turnL = ""; + turnR = ""; + turnSpeed = AGM_DEPLOY_TURNSPEED; + limitFast = 1; + }; + }; +}; + +class CfgMovesMaleSdr : CfgMovesBasic { + class States { + class AmovPercMstpSrasWrflDnon; + class AmovPercMstpSrasWrflDnon_agm_deploy : AmovPercMstpSrasWrflDnon { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleStandActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"AmovPercMstpSrasWrflDnon_agm_deploy", 0.02}; + ConnectFrom[] = {"AmovPercMstpSrasWrflDnon_agm_deploy", 0.02}; + InterpolateFrom[] = {"AmovPercMstpSrasWrflDnon", 0.02}; + InterpolateTo[] = {"AmovPercMstpSrasWrflDnon", 0.02}; + }; + + class aadjpercmstpsraswrfldup; + class aadjpercmstpsraswrfldup_agm_deploy : aadjpercmstpsraswrfldup { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustFStandActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrfldup_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrfldup_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrfldup", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrfldup", 0.02}; + }; + + class aadjpercmstpsraswrflddown; + class aadjpercmstpsraswrflddown_agm_deploy : aadjpercmstpsraswrflddown { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustBStandActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrflddown_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrflddown_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrflddown", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrflddown", 0.02}; + }; + + class aadjpercmstpsraswrfldright; + class aadjpercmstpsraswrfldright_agm_deploy : aadjpercmstpsraswrfldright { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustRStandActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrfldright_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrfldright_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrfldright", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrfldright", 0.02}; + }; + + class aadjpercmstpsraswrfldleft; + class aadjpercmstpsraswrfldleft_agm_deploy : aadjpercmstpsraswrfldleft { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustLStandActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrfldleft_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrfldleft_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrfldleft", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrfldleft", 0.02}; + }; + + class aadjpknlmstpsraswrfldup; + class aadjpknlmstpsraswrfldup_agm_deploy : aadjpknlmstpsraswrfldup { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustFKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrfldup_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrfldup_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrfldup", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrfldup", 0.02}; + }; + + class amovpknlmstpsraswrfldnon; + class amovpknlmstpsraswrfldnon_agm_deploy : amovpknlmstpsraswrfldnon { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"amovpknlmstpsraswrfldnon_agm_deploy", 0.02}; + ConnectFrom[] = {"amovpknlmstpsraswrfldnon_agm_deploy", 0.02}; + InterpolateFrom[] = {"amovpknlmstpsraswrfldnon", 0.02}; + InterpolateTo[] = {"amovpknlmstpsraswrfldnon", 0.02}; + }; + + class aadjpknlmstpsraswrflddown; + class aadjpknlmstpsraswrflddown_agm_deploy : aadjpknlmstpsraswrflddown { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustBKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrflddown_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrflddown_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrflddown", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrflddown", 0.02}; + }; + + class aadjpknlmstpsraswrfldleft; + class aadjpknlmstpsraswrfldleft_agm_deploy : aadjpknlmstpsraswrfldleft { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustLKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrfldleft_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrfldleft_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrfldleft", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrfldleft", 0.02}; + }; + + class aadjpknlmstpsraswrfldright; + class aadjpknlmstpsraswrfldright_agm_deploy : aadjpknlmstpsraswrfldright { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "RifleAdjustRKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrfldright_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrfldright_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrfldright", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrfldright", 0.02}; + }; + + class aadjppnemstpsraswrfldup; + class aadjppnemstpsraswrfldup_agm_deploy : aadjppnemstpsraswrfldup { + aimPrecision = AGM_SWAY_DEPLOYPRONE; + actions = "RifleAdjustFProneActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrfldup_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrfldup_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrfldup", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrfldup", 0.02}; + }; + + class amovppnemstpsraswrfldnon; + class amovppnemstpsraswrfldnon_agm_deploy : amovppnemstpsraswrfldnon { + aimPrecision = AGM_SWAY_DEPLOYPRONE; + actions = "RifleProneActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"amovppnemstpsraswrfldnon_agm_deploy", 0.02}; + ConnectFrom[] = {"amovppnemstpsraswrfldnon_agm_deploy", 0.02}; + InterpolateFrom[] = {"amovppnemstpsraswrfldnon", 0.02}; + InterpolateTo[] = {"amovppnemstpsraswrfldnon", 0.02}; + }; + + class aadjppnemstpsraswrflddown; + class aadjppnemstpsraswrflddown_agm_deploy : aadjppnemstpsraswrflddown { + aimPrecision = AGM_SWAY_DEPLOYPRONE; + actions = "RifleAdjustBKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrflddown_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrflddown_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrflddown", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrflddown", 0.02}; + }; + + class aadjppnemstpsraswrfldleft; + class aadjppnemstpsraswrfldleft_agm_deploy : aadjppnemstpsraswrfldleft { + aimPrecision = AGM_SWAY_DEPLOYPRONE; + actions = "RifleAdjustLKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrfldleft_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrfldleft_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrfldleft", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrfldleft", 0.02}; + }; + + class aadjppnemstpsraswrfldright; + class aadjppnemstpsraswrfldright_agm_deploy : aadjppnemstpsraswrfldright { + aimPrecision = AGM_SWAY_DEPLOYPRONE; + actions = "RifleAdjustRKneelActions_agm_deploy"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrfldright_agm_deploy", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrfldright_agm_deploy", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrfldright", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrfldright", 0.02}; + }; + + ///////////////////////////////////////////////////////////////////////////// + + class AmovPercMstpSrasWrflDnon_agm_rested : AmovPercMstpSrasWrflDnon { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleStandActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"AmovPercMstpSrasWrflDnon_agm_rested", 0.02}; + ConnectFrom[] = {"AmovPercMstpSrasWrflDnon_agm_rested", 0.02}; + InterpolateFrom[] = {"AmovPercMstpSrasWrflDnon", 0.02}; + InterpolateTo[] = {"AmovPercMstpSrasWrflDnon", 0.02}; + }; + + class aadjpercmstpsraswrfldup_agm_rested : aadjpercmstpsraswrfldup { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustFStandActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrfldup_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrfldup_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrfldup", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrfldup", 0.02}; + }; + + class aadjpercmstpsraswrflddown_agm_rested : aadjpercmstpsraswrflddown { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustBStandActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrflddown_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrflddown_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrflddown", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrflddown", 0.02}; + }; + + class aadjpercmstpsraswrfldright_agm_rested : aadjpercmstpsraswrfldright { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustRStandActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrfldright_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrfldright_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrfldright", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrfldright", 0.02}; + }; + + class aadjpercmstpsraswrfldleft_agm_rested : aadjpercmstpsraswrfldleft { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustLStandActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpercmstpsraswrfldleft_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpercmstpsraswrfldleft_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpercmstpsraswrfldleft", 0.02}; + InterpolateTo[] = {"aadjpercmstpsraswrfldleft", 0.02}; + }; + + class aadjpknlmstpsraswrfldup_agm_rested : aadjpknlmstpsraswrfldup { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustFKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrfldup_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrfldup_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrfldup", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrfldup", 0.02}; + }; + + class amovpknlmstpsraswrfldnon_agm_rested : amovpknlmstpsraswrfldnon { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"amovpknlmstpsraswrfldnon_agm_rested", 0.02}; + ConnectFrom[] = {"amovpknlmstpsraswrfldnon_agm_rested", 0.02}; + InterpolateFrom[] = {"amovpknlmstpsraswrfldnon", 0.02}; + InterpolateTo[] = {"amovpknlmstpsraswrfldnon", 0.02}; + }; + + class aadjpknlmstpsraswrflddown_agm_rested : aadjpknlmstpsraswrflddown { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustBKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrflddown_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrflddown_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrflddown", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrflddown", 0.02}; + }; + + class aadjpknlmstpsraswrfldleft_agm_rested : aadjpknlmstpsraswrfldleft { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustLKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrfldleft_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrfldleft_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrfldleft", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrfldleft", 0.02}; + }; + + class aadjpknlmstpsraswrfldright_agm_rested : aadjpknlmstpsraswrfldright { + aimPrecision = AGM_SWAY_RESTED; + actions = "RifleAdjustRKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjpknlmstpsraswrfldright_agm_rested", 0.02}; + ConnectFrom[] = {"aadjpknlmstpsraswrfldright_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjpknlmstpsraswrfldright", 0.02}; + InterpolateTo[] = {"aadjpknlmstpsraswrfldright", 0.02}; + }; + + class aadjppnemstpsraswrfldup_agm_rested : aadjppnemstpsraswrfldup { + aimPrecision = AGM_SWAY_RESTEDPRONE; + actions = "RifleAdjustFProneActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrfldup_agm_rested", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrfldup_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrfldup", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrfldup", 0.02}; + }; + + class amovppnemstpsraswrfldnon_agm_rested : amovppnemstpsraswrfldnon { + aimPrecision = AGM_SWAY_RESTEDPRONE; + actions = "RifleProneActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"amovppnemstpsraswrfldnon_agm_rested", 0.02}; + ConnectFrom[] = {"amovppnemstpsraswrfldnon_agm_rested", 0.02}; + InterpolateFrom[] = {"amovppnemstpsraswrfldnon", 0.02}; + InterpolateTo[] = {"amovppnemstpsraswrfldnon", 0.02}; + }; + + class aadjppnemstpsraswrflddown_agm_rested : aadjppnemstpsraswrflddown { + aimPrecision = AGM_SWAY_RESTEDPRONE; + actions = "RifleAdjustBKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrflddown_agm_rested", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrflddown_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrflddown", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrflddown", 0.02}; + }; + + class aadjppnemstpsraswrfldleft_agm_rested : aadjppnemstpsraswrfldleft { + aimPrecision = AGM_SWAY_RESTEDPRONE; + actions = "RifleAdjustLKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrfldleft_agm_rested", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrfldleft_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrfldleft", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrfldleft", 0.02}; + }; + + class aadjppnemstpsraswrfldright_agm_rested : aadjppnemstpsraswrfldright { + aimPrecision = AGM_SWAY_RESTEDPRONE; + actions = "RifleAdjustRKneelActions_agm_rested"; + aiming = "aimingLying"; + speed = 0.01; + onLandEnd = true; + onLandBeg = true; + + ConnectTo[] = {"aadjppnemstpsraswrfldright_agm_rested", 0.02}; + ConnectFrom[] = {"aadjppnemstpsraswrfldright_agm_rested", 0.02}; + InterpolateFrom[] = {"aadjppnemstpsraswrfldright", 0.02}; + InterpolateTo[] = {"aadjppnemstpsraswrfldright", 0.02}; + }; + + ////////////////////////////////////////////////////////////////////// + // FFV + ////////////////////////////////////////////////////////////////////// + + class passenger_bench_1_Aim; + class passenger_bench_1_Aim_agm_deploy : passenger_bench_1_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_bench_1Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_bench_1_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_bench_1_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_bench_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_bench_1_Aim", 0.02}; + }; + + class passenger_inside_1_Aim; + class passenger_inside_1_Aim_agm_deploy : passenger_inside_1_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_inside_1Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_1_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_inside_1_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_inside_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_1_Aim", 0.02}; + }; + + class passenger_inside_2_Aim; + class passenger_inside_2_Aim_agm_deploy : passenger_inside_2_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_inside_2Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_2_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_inside_2_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_inside_2_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_2_Aim", 0.02}; + }; + + class passenger_inside_3_Aim; + class passenger_inside_3_Aim_agm_deploy : passenger_inside_3_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_inside_3Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_3_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_inside_3_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_inside_3_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_3_Aim", 0.02}; + }; + + class passenger_inside_4_Aim; + class passenger_inside_4_Aim_agm_deploy : passenger_inside_4_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_inside_4Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_4_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_inside_4_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_inside_4_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_4_Aim", 0.02}; + }; + + class passenger_boat_1_Aim; + class passenger_boat_1_Aim_agm_deploy : passenger_boat_1_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_boat_1Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_1_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_boat_1_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_boat_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_1_Aim", 0.02}; + }; + + class passenger_boat_2_Aim; + class passenger_boat_2_Aim_agm_deploy : passenger_boat_2_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_boat_2Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_2_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_boat_2_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_boat_2_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_2_Aim", 0.02}; + }; + + class passenger_boat_3_Aim; + class passenger_boat_3_Aim_agm_deploy : passenger_boat_3_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_boat_3Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_3_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_boat_3_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_boat_3_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_3_Aim", 0.02}; + }; + + class passenger_boat_4_Aim; + class passenger_boat_4_Aim_agm_deploy : passenger_boat_4_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_boat_4Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_4_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_boat_4_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_boat_4_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_4_Aim", 0.02}; + }; + + class passenger_flatground_1_Aim; + class passenger_flatground_1_Aim_agm_deploy : passenger_flatground_1_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_flatground_1Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_1_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_flatground_1_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_flatground_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_1_Aim", 0.02}; + }; + + class passenger_flatground_2_Aim; + class passenger_flatground_2_Aim_agm_deploy : passenger_flatground_2_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_flatground_2Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_2_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_flatground_2_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_flatground_2_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_2_Aim", 0.02}; + }; + + class passenger_flatground_3_Aim; + class passenger_flatground_3_Aim_agm_deploy : passenger_flatground_3_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_flatground_3Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_3_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_flatground_3_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_flatground_3_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_3_Aim", 0.02}; + }; + + class passenger_flatground_4_Aim; + class passenger_flatground_4_Aim_agm_deploy : passenger_flatground_4_Aim { + aimPrecision = AGM_SWAY_DEPLOY; + actions = "passenger_flatground_4Actions_agm_deploy"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_4_Aim_agm_deploy", 0.02}; + ConnectFrom[] = {"passenger_flatground_4_Aim_agm_deploy", 0.02}; + InterpolateFrom[] = {"passenger_flatground_4_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_4_Aim", 0.02}; + }; + + ////////////////////////////////////////////////////////////////////// + + class passenger_bench_1_Aim_agm_rested : passenger_bench_1_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_bench_1Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_bench_1_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_bench_1_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_bench_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_bench_1_Aim", 0.02}; + }; + + class passenger_inside_1_Aim_agm_rested : passenger_inside_1_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_inside_1Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_1_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_inside_1_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_inside_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_1_Aim", 0.02}; + }; + + class passenger_inside_2_Aim_agm_rested : passenger_inside_2_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_inside_2Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_2_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_inside_2_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_inside_2_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_2_Aim", 0.02}; + }; + + class passenger_inside_3_Aim_agm_rested : passenger_inside_3_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_inside_3Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_3_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_inside_3_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_inside_3_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_3_Aim", 0.02}; + }; + + class passenger_inside_4_Aim_agm_rested : passenger_inside_4_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_inside_4Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_inside_4_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_inside_4_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_inside_4_Aim", 0.02}; + InterpolateTo[] = {"passenger_inside_4_Aim", 0.02}; + }; + + class passenger_boat_1_Aim_agm_rested : passenger_boat_1_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_boat_1Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_1_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_boat_1_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_boat_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_1_Aim", 0.02}; + }; + + class passenger_boat_2_Aim_agm_rested : passenger_boat_2_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_boat_2Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_2_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_boat_2_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_boat_2_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_2_Aim", 0.02}; + }; + + class passenger_boat_3_Aim_agm_rested : passenger_boat_3_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_boat_3Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_3_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_boat_3_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_boat_3_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_3_Aim", 0.02}; + }; + + class passenger_boat_4_Aim_agm_rested : passenger_boat_4_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_boat_4Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_boat_4_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_boat_4_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_boat_4_Aim", 0.02}; + InterpolateTo[] = {"passenger_boat_4_Aim", 0.02}; + }; + + class passenger_flatground_1_Aim_agm_rested : passenger_flatground_1_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_flatground_1Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_1_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_flatground_1_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_flatground_1_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_1_Aim", 0.02}; + }; + + class passenger_flatground_2_Aim_agm_rested : passenger_flatground_2_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_flatground_2Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_2_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_flatground_2_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_flatground_2_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_2_Aim", 0.02}; + }; + + class passenger_flatground_3_Aim_agm_rested : passenger_flatground_3_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_flatground_3Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_3_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_flatground_3_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_flatground_3_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_3_Aim", 0.02}; + }; + + class passenger_flatground_4_Aim_agm_rested : passenger_flatground_4_Aim { + aimPrecision = AGM_SWAY_RESTED; + actions = "passenger_flatground_4Actions_agm_rested"; + aiming = "aimingDefault"; + speed = 0.01; + onLandEnd = false; + onLandBeg = false; + + ConnectTo[] = {"passenger_flatground_4_Aim_agm_rested", 0.02}; + ConnectFrom[] = {"passenger_flatground_4_Aim_agm_rested", 0.02}; + InterpolateFrom[] = {"passenger_flatground_4_Aim", 0.02}; + InterpolateTo[] = {"passenger_flatground_4_Aim", 0.02}; + }; + }; +}; diff --git a/TO_MERGE/agm/Resting/functions/fn_hasBipod.sqf b/TO_MERGE/agm/Resting/functions/fn_hasBipod.sqf new file mode 100644 index 0000000000..353d3aecf0 --- /dev/null +++ b/TO_MERGE/agm/Resting/functions/fn_hasBipod.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private ["_weapon", "_config"]; + +_weapon = _this select 0; + +_config = configFile >> "CfgWeapons" >> _weapon; + +getNumber (_config >> "AGM_Bipod") == 1 || {getNumber (_config >> "tmr_autorest_deployable") == 1} diff --git a/TO_MERGE/agm/Resting/functions/fn_restWeapon.sqf b/TO_MERGE/agm/Resting/functions/fn_restWeapon.sqf new file mode 100644 index 0000000000..bb2345e010 --- /dev/null +++ b/TO_MERGE/agm/Resting/functions/fn_restWeapon.sqf @@ -0,0 +1,191 @@ +/* + * Author: KoffeinFlummi, edited by commy2 + * + * Rests the player's weapon if possible. + * + * Arguments: + * None + * + * Return Values: + * None + * + */ + +#define RESTEDRECOIL 0.6 +#define BIPODRECOIL 0.3 +#define MAXDISTANCE 1 +#define MAXANGLE 15 +#define MAXHEIGHT 0.45 +#define CAMSHAKE [1,0.5,5] + +private ["_unit", "_vehicle", "_weapon"]; + +_unit = _this select 0; +_vehicle = _this select 1; +_weapon = _this select 2; + +if (_weapon != primaryWeapon _unit) exitWith {}; + +// UNREST THE WEAPON +private "_fnc_unRestWeapon"; + +_fnc_unRestWeapon = { + addCamShake CAMSHAKE; + + private "_animation"; + _animation = animationState _unit; + + if (_unit getVariable ["AGM_bipodDeployed", false]) then { + _unit setUnitRecoilCoefficient (unitRecoilCoefficient _unit / BIPODRECOIL); + if (_animation find "_agm_deploy" != -1) then { + //[_unit, [_animation, "_agm_deploy", ""] call CBA_fnc_replace, 2] call AGM_Core_fnc_doAnimation; + _unit switchMove ([_animation, "_agm_deploy", ""] call CBA_fnc_replace); + }; + + private "_picture"; + _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); + [localize "STR_AGM_Resting_BipodUndeployed", _picture] call AGM_Core_fnc_displayTextPicture; + + } else { + _unit setUnitRecoilCoefficient (unitRecoilCoefficient _unit / RESTEDRECOIL); + if (_animation find "_agm_rested" != -1) then { + //[_unit, [_animation, "_agm_rested", ""] call CBA_fnc_replace, 2] call AGM_Core_fnc_doAnimation; + _unit switchMove ([_animation, "_agm_rested", ""] call CBA_fnc_replace); + }; + + private "_picture"; + _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); + [localize "STR_AGM_Resting_WeaponLifted", _picture] call AGM_Core_fnc_displayTextPicture; + }; + + _unit setVariable ["AGM_weaponRested", false]; + _unit setVariable ["AGM_bipodDeployed", false]; +}; + +if (_unit getVariable ["AGM_weaponRested", false]) exitWith {call _fnc_unRestWeapon}; + +// exit if this is not an available animation +if (!isClass (configFile >> "CfgMovesMaleSdr" >> "States" >> format ["%1_agm_deploy", animationState _unit])) exitWith {}; + +// PREPARE INTERSECTS +private "_fnc_getIntersection"; + +_fnc_getIntersection = { + private ["_weaponPos", "_weaponDir", "_weaponPosDown"]; + + _weaponPos = ATLtoASL (_unit modelToWorld (_unit selectionPosition "RightHand")); + _weaponDir = _unit weaponDirection _weapon; + _weaponPosDown = _weaponPos vectorAdd [0,0,-MAXHEIGHT]; + + private ["_checkPosMiddle", "_checkPosLeft", "_checkPosRight", "_checkPosDown"]; + + _checkPosMiddle = [ + (_weaponPos select 0) + MAXDISTANCE * (_weaponDir select 0), + (_weaponPos select 1) + MAXDISTANCE * (_weaponDir select 1), + (_weaponPos select 2) + MAXDISTANCE * (_weaponDir select 2) + ]; + _checkPosLeft = [ + (_weaponPos select 0) + MAXDISTANCE * sin (((_weaponDir select 0) atan2 (_weaponDir select 1)) + 360 - MAXANGLE), + (_weaponPos select 1) + MAXDISTANCE * cos (((_weaponDir select 0) atan2 (_weaponDir select 1)) + 360 - MAXANGLE), + (_weaponPos select 2) + MAXDISTANCE * (_weaponDir select 2) + ]; + _checkPosRight = [ + (_weaponPos select 0) + MAXDISTANCE * sin (((_weaponDir select 0) atan2 (_weaponDir select 1)) + MAXANGLE), + (_weaponPos select 1) + MAXDISTANCE * cos (((_weaponDir select 0) atan2 (_weaponDir select 1)) + MAXANGLE), + (_weaponPos select 2) + MAXDISTANCE * (_weaponDir select 2) + ]; + _checkPosDown = [ + (_weaponPos select 0) + MAXDISTANCE * (_weaponDir select 0), + (_weaponPos select 1) + MAXDISTANCE * (_weaponDir select 1), + (_weaponPos select 2) + MAXDISTANCE * (_weaponDir select 2) - MAXHEIGHT + ]; + + /* UNCOMMENT THIS FOR DEBUGGING + weaponPos = ASLtoATL _weaponPos; + weaponPosDown = ASLtoATL _weaponPosDown; + checkPosMiddle = ASLtoATL _checkPosMiddle; + checkPosLeft = ASLtoATL _checkPosLeft; + checkPosRight = ASLtoATL _checkPosRight; + checkPosDown = ASLtoATL _checkPosDown; + + onEachFrame { + drawLine3D [weaponPos, checkPosMiddle, [1,0,0,1]]; + drawLine3D [weaponPos, checkPosLeft, [1,0,0,1]]; + drawLine3D [weaponPos, checkPosRight, [1,0,0,1]]; + drawLine3D [weaponPosDown, checkPosDown, [1,0,0,1]]; + };*/ + + private ["_intersectsMiddle", "_intersectsLeft", "_intersectsRight", "_intersectsDown"]; + + _intersectsMiddle = lineIntersects [_weaponPos, _checkPosMiddle]; + _intersectsLeft = lineIntersects [_weaponPos, _checkPosLeft]; + _intersectsRight = lineIntersects [_weaponPos, _checkPosRight]; + _intersectsDown = lineIntersects [_weaponPos, _checkPosDown] || {terrainIntersectASL [_weaponPosDown, _checkPosDown]}; + + [_intersectsMiddle, _intersectsLeft, _intersectsRight, _intersectsDown] +}; + +// CHECK FOR APPROPRIATE SURFACE +private "_intersects"; + +_intersects = call _fnc_getIntersection; + +if (true in _intersects) then { + _unit setVariable ["AGM_weaponRested", true]; + + private "_restedPosition"; + _restedPosition = getPosASL _unit; + + // REST THE WEAPON + addCamShake CAMSHAKE; + + if ([_weapon] call AGM_Resting_fnc_hasBipod && {_intersects select 3}) then { + _unit setVariable ["AGM_bipodDeployed", true]; + + _unit setUnitRecoilCoefficient (BIPODRECOIL * unitRecoilCoefficient _unit); + //[_unit, format ["%1_agm_deploy", animationState _unit], 2] call AGM_Core_fnc_doAnimation; + _unit switchMove format ["%1_agm_deploy", animationState _unit]; + + private "_picture"; + _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); + [localize "STR_AGM_Resting_BipodDeployed", _picture] call AGM_Core_fnc_displayTextPicture; + + } else { + _unit setVariable ["AGM_bipodDeployed", false]; + + _unit setUnitRecoilCoefficient (RESTEDRECOIL * unitRecoilCoefficient _unit); + //[_unit, format ["%1_agm_rested", animationState _unit], 2] call AGM_Core_fnc_doAnimation; + _unit switchMove format ["%1_agm_rested", animationState _unit]; + + private "_picture"; + _picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); + [localize "STR_AGM_Resting_WeaponRested", _picture] call AGM_Core_fnc_displayTextPicture; + }; + + // CHECK FOR PLAYER MOVING AWAY, CHANGING WEAPONS ETC + [_unit, _vehicle, _weapon, _fnc_unRestWeapon, _fnc_getIntersection, _restedPosition] spawn { + _unit = _this select 0; + _vehicle = _this select 1; + _weapon = _this select 2; + _fnc_unRestWeapon = _this select 3; + _fnc_getIntersection = _this select 4; + _restedPosition = _this select 5; + + while {_unit getVariable ["AGM_weaponRested", false]} do { + _intersects = call _fnc_getIntersection; + + if ( + _unit != AGM_player + || {_vehicle != vehicle _unit} + || {inputAction "reloadMagazine" != 0} + || {weaponLowered _unit} + || {speed _unit > 1} + || {currentWeapon _unit != _weapon} + || {getPosASL _unit distanceSqr _restedPosition > 1} + || {!(true in _intersects)} + ) exitWith {call _fnc_unRestWeapon}; + + sleep 0.3; + }; + }; +}; diff --git a/TO_MERGE/agm/Resting/stringtable.xml b/TO_MERGE/agm/Resting/stringtable.xml new file mode 100644 index 0000000000..d61d0ead7a --- /dev/null +++ b/TO_MERGE/agm/Resting/stringtable.xml @@ -0,0 +1,69 @@ + + + + + + Rest Weapon + Waffe auflegen + Apoyar el arma + Oprzyj broń + Zapřít zbraň + Appuyer l'arme + Зафиксировать оружие + Fegyver kitámasztása + Apoiar Arma + Appoggia l'arma + + + + Bipod deployed + Zweibein ausgeklappt + Bípode desplegado + Dwójnóg rozstawiony + Dvojnožka rozložena + Bipied déployé + Сошки установлены + Állványon + Bipé apoiado + Bipiede appoggiato + + + Weapon rested + Waffe aufgelegt + Arma apoyada + Broń oparta + Zbraň zapřena + Arme appuyée + Оружие зафиксировано + Fegyver kitámasztva + Arma apoiada + Arma appoggiata + + + + Bipod undeployed + Zweibein eingeklappt + Bípode plegado + Dwójnóg złożony + Dvojnožka rozložena + Bipied replié + Сошки убраны + Állvány csukva + Bipé recolhido + Bipiede richiuso + + + Weapon lifted + Waffe gehoben + Arma levantada + Broń podniesiona + Zbraň zdvihnuta + Arme relevée + Оружие не зафиксировано + Fegyver nincs támasztva + Arma levantada + Arma sollevata + + + + diff --git a/TO_MERGE/agm/SafeMode/clientInit.sqf b/TO_MERGE/agm/SafeMode/clientInit.sqf new file mode 100644 index 0000000000..2e0bad4a39 --- /dev/null +++ b/TO_MERGE/agm/SafeMode/clientInit.sqf @@ -0,0 +1,4 @@ + +// by commy2 + +//["Soldier", {_player = AGM_player; if (currentWeapon _player in (_player getVariable ["AGM_SafeMode_safedWeapons", []])) then {[false] call AGM_SafeMode_setSafeModeVisual}] call AGM_Core_fnc_addInfoDisplayEventHandler; diff --git a/TO_MERGE/agm/SafeMode/config.cpp b/TO_MERGE/agm/SafeMode/config.cpp new file mode 100644 index 0000000000..c8360c341d --- /dev/null +++ b/TO_MERGE/agm/SafeMode/config.cpp @@ -0,0 +1,46 @@ +// PATCH CONFIG +class CfgPatches { + class AGM_SafeMode { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_SafeMode { + class AGM_SafeMode { + file = "AGM_SafeMode\functions"; + class firstMode; + class lockSafety; + class playChangeFiremodeSound; + class setSafeModeVisual; + class unlockSafety; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_SafeMode { + clientInit = "call compile preprocessFileLineNumbers '\AGM_SafeMode\clientInit.sqf';"; + }; +}; + +class AGM_Core_Default_Keys { + class safeWeapon { + displayName = "$STR_AGM_SafeMode_SafeMode"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player, currentWeapon _player, currentMuzzle _player] call AGM_SafeMode_fnc_lockSafety"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 41; + shift = 0; + control = 1; + alt = 0; + }; +}; diff --git a/TO_MERGE/agm/SafeMode/functions/fn_firstMode.sqf b/TO_MERGE/agm/SafeMode/functions/fn_firstMode.sqf new file mode 100644 index 0000000000..9e5644da15 --- /dev/null +++ b/TO_MERGE/agm/SafeMode/functions/fn_firstMode.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private ["_weapon", "_mode"]; + +_weapon = _this select 0; + +_mode = getArray (configFile >> "CfgWeapons" >> _weapon >> "modes") select 0; + +[_mode, _weapon] select (_mode == "this") diff --git a/TO_MERGE/agm/SafeMode/functions/fn_lockSafety.sqf b/TO_MERGE/agm/SafeMode/functions/fn_lockSafety.sqf new file mode 100644 index 0000000000..cca54b51ab --- /dev/null +++ b/TO_MERGE/agm/SafeMode/functions/fn_lockSafety.sqf @@ -0,0 +1,65 @@ +// by commy2 + +private ["_unit", "_weapon", "_muzzle", "_safedWeapons"]; + +_unit = _this select 0; +_weapon = _this select 1; +_muzzle = _this select 2; + +// don't immediately switch back +if (inputAction "nextWeapon" > 0) exitWith {}; + +_safedWeapons = _unit getVariable ["AGM_SafeMode_safedWeapons", []]; + +if (_weapon in _safedWeapons) exitWith { + _this call AGM_SafeMode_fnc_unlockSafety; +}; + +_safedWeapons pushBack _weapon; + +_unit setVariable ["AGM_SafeMode_safedWeapons", _safedWeapons]; + +if (_unit getVariable ["AGM_SafeWeapon_actionID", -1] == -1) then { + private ["_condition", "_statement", "_id"]; + + _condition = { + if ( + [_this select 1] call AGM_Core_fnc_canUseWeapon + && { + if (currentMuzzle (_this select 1) in ((_this select 1) getVariable ["AGM_SafeMode_safedWeapons", []])) then { + if (inputAction "nextWeapon" > 0) exitWith { + [_this select 1, currentWeapon (_this select 1), currentMuzzle (_this select 1)] call AGM_SafeMode_fnc_unlockSafety; + false + }; + true + } else {false} + } + ) then { + // player hud + [false] call AGM_SafeMode_fnc_setSafeModeVisual; + true + } else { + // player hud + [true] call AGM_SafeMode_fnc_setSafeModeVisual; + false + } + }; + + _statement = { + [_this select 1, currentWeapon (_this select 1), currentMuzzle (_this select 1)] call AGM_SafeMode_fnc_unlockSafety; + }; + + //_id = [_unit, format ["%1", localize "STR_AGM_SafeMode_TakeOffSafety"], "DefaultAction", _condition, {}, {true}, _statement, 10] call AGM_Core_fnc_addActionMenuEventHandler; + _id = [_unit, "DefaultAction", _condition, {}] call AGM_Core_fnc_addActionEventHandler; + + _unit setVariable ["AGM_SafeWeapon_actionID", _id]; +}; + +_unit selectWeapon _muzzle;//_weapon + +// play fire mode selector sound +[_unit, _weapon, _muzzle] call AGM_SafeMode_fnc_playChangeFiremodeSound; + +private "_picture"; +_picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); +[localize "STR_AGM_SafeMode_PutOnSafety", _picture] call AGM_Core_fnc_displayTextPicture; diff --git a/TO_MERGE/agm/SafeMode/functions/fn_playChangeFiremodeSound.sqf b/TO_MERGE/agm/SafeMode/functions/fn_playChangeFiremodeSound.sqf new file mode 100644 index 0000000000..e8fecf4c13 --- /dev/null +++ b/TO_MERGE/agm/SafeMode/functions/fn_playChangeFiremodeSound.sqf @@ -0,0 +1,34 @@ +// by commy2 + +private ["_unit", "_weapon", "_sound"]; + +_unit = _this select 0; +_weapon = _this select 1; + +_sound = getArray (configFile >> "CfgWeapons" >> _weapon >> "changeFiremodeSound"); + +if (count _sound == 0) exitWith { + playSound "AGM_Sound_Click"; +}; + +// add file extension +if call { + { + if (toLower (_sound select 0) find _x == count toArray (_sound select 0) - count toArray _x - 1) exitWith {false}; + true + } forEach [".wav", ".ogg", ".wss"]; +} then { + _sound set [0, (_sound select 0) + ".wss"]; +}; + +// add default volume, pitch and distance +if (count _sound < 2) then {_sound pushBack 1}; +if (count _sound < 3) then {_sound pushBack 1}; +if (count _sound < 4) then {_sound pushBack 0}; + +private "_position"; + +_position = _unit modelToWorld (_unit selectionPosition "RightHand"); +_position set [2, (_position select 2) + ((getPosASLW _unit select 2) - (getPosATL _unit select 2) max 0)]; + +playSound3D [_sound select 0, objNull, false, _position, _sound select 1, _sound select 2, _sound select 3]; diff --git a/TO_MERGE/agm/SafeMode/functions/fn_setSafeModeVisual.sqf b/TO_MERGE/agm/SafeMode/functions/fn_setSafeModeVisual.sqf new file mode 100644 index 0000000000..6ea156abe5 --- /dev/null +++ b/TO_MERGE/agm/SafeMode/functions/fn_setSafeModeVisual.sqf @@ -0,0 +1,21 @@ +// by commy2 + +private ["_show", "_control"]; + +_show = _this select 0; + +disableSerialization; +_control = (uiNamespace getVariable ["AGM_dlgSoldier", displayNull]) displayCtrl 187; + +if (isNull _control) exitWith {}; + +if (_show) then { + private "_config"; + _config = configFile >> "RscInGameUI" >> "RscUnitInfoSoldier" >> "WeaponInfoControlsGroupLeft" >> "controls" >> "CA_ModeTexture"; + + _control ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; + _control ctrlCommit 0; +} else { + _control ctrlSetPosition [0, 0, 0, 0]; + _control ctrlCommit 0; +}; diff --git a/TO_MERGE/agm/SafeMode/functions/fn_unlockSafety.sqf b/TO_MERGE/agm/SafeMode/functions/fn_unlockSafety.sqf new file mode 100644 index 0000000000..89a8cc0206 --- /dev/null +++ b/TO_MERGE/agm/SafeMode/functions/fn_unlockSafety.sqf @@ -0,0 +1,64 @@ +// by commy2 + +private ["_unit", "_weapon", "_muzzle", "_safedWeapons"]; + +_unit = _this select 0; +_weapon = _this select 1; +_muzzle = _this select 2; + +_safedWeapons = _unit getVariable ["AGM_SafeMode_safedWeapons", []]; + +if (_weapon in _safedWeapons) then { + _safedWeapons = _safedWeapons - [_weapon]; + + _unit setVariable ["AGM_SafeMode_safedWeapons", _safedWeapons]; + + if (count _safedWeapons == 0) then { + private "_id"; + _id = _unit getVariable ["AGM_SafeWeapon_actionID", -1]; + + //[_unit, "DefaultAction", _id] call AGM_Core_fnc_removeActionMenuEventHandler; + [_unit, "DefaultAction", _id] call AGM_Core_fnc_removeActionEventHandler; + _unit setVariable ["AGM_SafeWeapon_actionID", -1]; + }; +}; + +_unit selectWeapon _muzzle; + +if (inputAction "nextWeapon" > 0) then { + // switch to the last mode to roll over to first after the default nextWeapon action + private ["_modes", "_mode", "_index"]; + + // get weapon modes + _modes = []; + { + if (getNumber (configFile >> "CfgWeapons" >> _weapon >> _x >> "showToPlayer") == 1) then { + _modes pushBack _x; + }; + if (_x == "this") then { + _modes pushBack _weapon; + }; + } forEach getArray (configfile >> "CfgWeapons" >> _weapon >> "modes"); + + // select last mode + _mode = _modes select (count _modes - 1); + + // switch to last mode + _index = 0; + while { + _index < 100 && {currentMuzzle _unit != _weapon || {currentWeaponMode _unit != _mode}} + } do { + _unit action ["SwitchWeapon", _unit, _unit, _index]; + _index = _index + 1; + }; +} else { + // play fire mode selector sound + [_unit, _weapon, _muzzle] call AGM_SafeMode_fnc_playChangeFiremodeSound; +}; + +// player hud +[true] call AGM_SafeMode_fnc_setSafeModeVisual; + +private "_picture"; +_picture = getText (configFile >> "CfgWeapons" >> _weapon >> "picture"); +[localize "STR_AGM_SafeMode_TookOffSafety", _picture] call AGM_Core_fnc_displayTextPicture; diff --git a/TO_MERGE/agm/SafeMode/stringtable.xml b/TO_MERGE/agm/SafeMode/stringtable.xml new file mode 100644 index 0000000000..ff3415831d --- /dev/null +++ b/TO_MERGE/agm/SafeMode/stringtable.xml @@ -0,0 +1,42 @@ + + + + + + Safe Mode + Waffe sichern + Seguro puesto + Bezpiecznik + Pojistka + Veszélytelenités + Предохранитель + + + Take off Safety + Waffe entsichern + Quitar seguro + Zwolnij bezpiecznik + Uvolnit pojistku + Veszélyesités + Снять с предохранителя + + + Put on Safety + Waffe gesichert + Poner seguro + Zabezpiecz broń + Přepnout pojistku + Veszélytelenitve + Поставить на предохранитель + + + Took off Safety + Waffe entsichert + Seguro quitado + Odbezpieczono broń + Odstranit pojistku + veszélyes + Снят с предохранителя + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Scopes/UI/scopes_bg.paa b/TO_MERGE/agm/Scopes/UI/scopes_bg.paa new file mode 100644 index 0000000000..2216b9e005 Binary files /dev/null and b/TO_MERGE/agm/Scopes/UI/scopes_bg.paa differ diff --git a/TO_MERGE/agm/Scopes/clientInit.sqf b/TO_MERGE/agm/Scopes/clientInit.sqf new file mode 100644 index 0000000000..106121cc8b --- /dev/null +++ b/TO_MERGE/agm/Scopes/clientInit.sqf @@ -0,0 +1,39 @@ +/* + * Author: KoffeinFlummi + * + * Initializes vars needed for scope adjustment and watches for scope changes. + * + * Arguments: + * None + * + * Return Value: + * None + */ +AGM_Scopes_fadeScript = scriptNull; + +// show overlay after changing weapon/optic +0 spawn { + _layer = ["AGM_Scope_Zeroing"] call BIS_fnc_rscLayer; + while {True} do { + waitUntil {[AGM_player, 0,0] call AGM_Scopes_fnc_canAdjustScope}; + _layer cutRsc ["AGM_Scope_Zeroing", "PLAIN", 0, false]; + sleep 3; + _layer cutFadeOut 2; + + _weapon = currentWeapon AGM_player; + _optics = [AGM_player] call AGM_Scopes_fnc_getOptics; + waitUntil {sleep 0.05; !(_optics isEqualTo ([AGM_player] call AGM_Scopes_fnc_getOptics)) or (currentWeapon AGM_player != _weapon)}; + }; +}; + +// instantly hide when scoping in +0 spawn { + _layer = ["AGM_Scope_Zeroing"] call BIS_fnc_rscLayer; + while {True} do { + waitUntil {sleep 0.05; cameraView == "GUNNER"}; + if !(isNull AGM_Scopes_fadeScript) then { + terminate AGM_Scopes_fadeScript; + }; + _layer cutText ["", "PLAIN", 0]; + }; +}; diff --git a/TO_MERGE/agm/Scopes/config.cpp b/TO_MERGE/agm/Scopes/config.cpp new file mode 100644 index 0000000000..c521d53df7 --- /dev/null +++ b/TO_MERGE/agm/Scopes/config.cpp @@ -0,0 +1,238 @@ +class CfgPatches { + class AGM_Scopes { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi"}; + authorUrl = "https://github.com/KoffeinFlummi"; + }; +}; + +class CfgFunctions { + class AGM_Scopes { + class AGM_Scopes { + file = "AGM_Scopes\functions"; + class adjustScope; + class canAdjustScope; + class firedEH; + class getOptics; + class hideZeroing; + class inventoryCheck; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Scopes { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Scopes\clientInit.sqf';"; + }; +}; + +class Extended_Fired_EventHandlers { + class CAManBase { + class AGM_Scopes { + clientFired = "if (_this select 0 == AGM_player) then {_this call AGM_Scopes_fnc_firedEH};"; + }; + }; +}; + +class Extended_Take_EventHandlers { + class CAManBase { + class AGM_Scopes { + clientTake = "if (_this select 0 == AGM_player) then {_this call AGM_Scopes_fnc_inventoryCheck};"; + }; + }; +}; + +class Extended_Put_EventHandlers { + class CAManBase { + class AGM_Scopes { + clientPut = "if (_this select 0 == AGM_player) then {_this call AGM_Scopes_fnc_inventoryCheck};"; + }; + }; +}; + +class Extended_InitPost_EventHandlers { + class CAManBase { + class AGM_Scopes { + init = "if (_this select 0 == call AGM_Core_fnc_player) then {_this call AGM_Scopes_fnc_inventoryCheck};"; + }; + }; +}; + +class Extended_Respawn_EventHandlers { + class CAManBase { + class AGM_Scopes { + respawn = "if (_this select 0 == call AGM_Core_fnc_player) then {_this call AGM_Scopes_fnc_inventoryCheck};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class adjustScopeUp { + displayName = "$STR_AGM_Scopes_AdjustUp"; + condition = "[_player] call AGM_Scopes_fnc_inventoryCheck; [_player, 0, 0.1] call AGM_Scopes_fnc_canAdjustScope"; + statement = "[_player, 0, 0.1] call AGM_Scopes_fnc_adjustScope;"; + allowHolding = 1; + key = 201; + shift = 0; + control = 0; + alt = 0; + }; + class adjustScopeDown: adjustScopeUp { + displayName = "$STR_AGM_Scopes_AdjustDown"; + condition = "[_player] call AGM_Scopes_fnc_inventoryCheck; [_player, 0, -0.1] call AGM_Scopes_fnc_canAdjustScope"; + statement = "[_player, 0, -0.1] call AGM_Scopes_fnc_adjustScope;"; + key = 209; + }; + class adjustScopeLeft: adjustScopeUp { + displayName = "$STR_AGM_Scopes_AdjustLeft"; + condition = "[_player] call AGM_Scopes_fnc_inventoryCheck; [_player, -0.1, 0] call AGM_Scopes_fnc_canAdjustScope"; + statement = "[_player, -0.1, 0] call AGM_Scopes_fnc_adjustScope;"; + key = 209; + control = 1; + }; + class adjustScopeRight: adjustScopeLeft { + displayName = "$STR_AGM_Scopes_AdjustRight"; + condition = "[_player] call AGM_Scopes_fnc_inventoryCheck; [_player, 0.1, 0] call AGM_Scopes_fnc_canAdjustScope"; + statement = "[_player, 0.1, 0] call AGM_Scopes_fnc_adjustScope;"; + key = 201; + }; +}; + +class CfgSounds { + class AGM_Sound_Click; + class AGM_Scopes_Click_1: AGM_Sound_Click { + sound[] = {"\AGM_Scopes\sounds\agm_scopes_click.wav", 3, 2, 200}; + }; + class AGM_Scopes_Click_2: AGM_Scopes_Click_1 { + sound[] = {"\AGM_Scopes\sounds\agm_scopes_click.wav", 3.3, 1.8, 200}; + }; + class AGM_Scopes_Click_3: AGM_Scopes_Click_1 { + sound[] = {"\AGM_Scopes\sounds\agm_scopes_click.wav", 2.8, 2.3, 200}; + }; +}; + +class CfgWeapons { + class ItemCore; + class InventoryOpticsItem_Base_F; + + class optic_LRPS: ItemCore { + AGM_ScopeAdjust_Horizontal[] = {-50,50}; + AGM_ScopeAdjust_Vertical[] = {-70,70}; + class ItemInfo: InventoryOpticsItem_Base_F { + class OpticsModes { + class Snip { + discreteDistance[] = {1}; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class optic_SOS: ItemCore { + AGM_ScopeAdjust_Horizontal[] = {-50,50}; + AGM_ScopeAdjust_Vertical[] = {-60,60}; + class ItemInfo: InventoryOpticsItem_Base_F { + class OpticsModes { + class Snip { + discreteDistance[] = {1}; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; + + class optic_DMS: ItemCore { + AGM_ScopeAdjust_Horizontal[] = {-40,40}; + AGM_ScopeAdjust_Vertical[] = {-40,40}; + class ItemInfo: InventoryOpticsItem_Base_F { + class OpticsModes { + class Snip { + discreteDistance[] = {1}; + discreteDistanceInitIndex = 0; + }; + }; + }; + }; +}; + +class RscTitles { + class AGM_Scope_Zeroing { + idd = -1; + movingEnable = 0; + enableSimulation = 1; + enableDisplay = 1; + onLoad = "_this spawn compile preprocessFileLineNumbers '\AGM_Scopes\scripts\zeroingOnLoad.sqf'; uiNamespace setVariable ['AGM_Scope_Debug', _this];"; + duration = 1e+011; + fadein = 0; + fadeout = 0; + name = "AGM_Scope_Zeroing"; + class RscPicture; + class RscText; + class controls { + class AGM_Scope_Zeroing_BG: RscPicture { + idc = 925001; + type = 0; + text = "AGM_Scopes\UI\scopes_bg.paa"; + style = 48 + 0x800; + scale = 1; + sizeEx = 1; + font = "PuristaMedium"; + colorText[] = {1,1,1,1}; + colorBackground[] = {1,1,1,1}; + shadow = 1; + + x = (0.5-0.4/2) * safezoneW + safezoneX; + y = 0 * safezoneH + safezoneY; + w = 0.4 * safezoneW; + h = 0.3 * safezoneH; + }; + class AGM_Scope_Zeroing_Vertical: RscText { + idc = 925002; + type = 0; + style = 2; + sizeEx = 0.04; + lineSpacing = 1; + font = "PuristaMedium"; + text = ""; + colorText[] = {1,1,1, 0.9}; + colorBackground[] = {1,0,0, 0}; + shadow = 0; + + x = (0.5-0.4/2 + 0.45*0.4) * safezoneW + safezoneX; + y = (0 + 0.19*0.3) * safezoneH + safezoneY; + w = 0.04 * safezoneW; + h = 0.025 * safezoneH; + }; + class AGM_Scope_Zeroing_Horizontal: RscText { + idc = 925003; + type = 0; + style = 0; + sizeEx = 0.04; + lineSpacing = 1; + font = "PuristaMedium"; + text = ""; + colorText[] = {1,1,1, 0.9}; + colorBackground[] = {1,0,0, 0}; + shadow = 0; + + x = (0.5-0.4/2 + 0.6*0.4) * safezoneW + safezoneX; + y = (0 + 0.47*0.3) * safezoneH + safezoneY; + w = 0.04 * safezoneW; + h = 0.025 * safezoneH; + }; + }; + }; +}; + +class RscInGameUI { + class RscUnitInfo; + class RscWeaponZeroing: RscUnitInfo { + onLoad = "[""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; uiNamespace setVariable ['AGM_dlgWeaponZeroing', _this select 0];"; + }; +}; diff --git a/TO_MERGE/agm/Scopes/functions/fn_adjustScope.sqf b/TO_MERGE/agm/Scopes/functions/fn_adjustScope.sqf new file mode 100644 index 0000000000..0b70913365 --- /dev/null +++ b/TO_MERGE/agm/Scopes/functions/fn_adjustScope.sqf @@ -0,0 +1,67 @@ +/* + * Author: KoffeinFlummi + * + * Changes the adjustment for the current scope + * + * Arguments: + * 0: Horizontal adjustment + * 1: Vertical adjustment + * + * Return Value: + * True + */ + +private ["_unit", "_weapons", "_zeroing", "_pitchbankyaw", "_pitch", "_bank", "_yaw", "_hint"]; + +_unit = _this select 0; + +_weapons = [ + primaryWeapon _unit, + secondaryWeapon _unit, + handgunWeapon _unit +]; + +if (isNil "AGM_Scopes_Adjustment") then { + AGM_Scopes_Adjustment = [[0,0], [0,0], [0,0]]; +}; + +_zeroing = AGM_Scopes_Adjustment select (_weapons find (currentWeapon _unit)); +_zeroing set [0, (round (((_zeroing select 0) + (_this select 1)) * 10)) / 10]; +_zeroing set [1, (round (((_zeroing select 1) + (_this select 2)) * 10)) / 10]; + +AGM_Scopes_Adjustment set [_weapons find (currentWeapon _unit), _zeroing]; + +playSound (["AGM_Scopes_Click_1", "AGM_Scopes_Click_2", "AGM_Scopes_Click_3"] select floor random 3); + +// slightly rotate the player if looking through optic +if (cameraView == "GUNNER") then { + _pitchbankyaw = [_unit] call AGM_Core_fnc_getPitchBankYaw; + // these are not exact mil-to-degree conversions, but instead chosen + // to minimize the effect of rounding errors + _pitch = (_pitchbankyaw select 0) + ((_this select 2) * -0.04); + _bank = _pitchbankyaw select 1; + _yaw = (_pitchbankyaw select 2) + ((_this select 1) * -0.04); + [_unit, _pitch, _bank, _yaw] call AGM_Core_fnc_setPitchBankYaw; +}; + +_display = uiNamespace getVariable ["AGM_Scopes_ZeroingDisplay", displayNull]; +if !(isNull _display) then { + _vertical = _display displayCtrl 925002; + _horizontal = _display displayCtrl 925003; + _vertical ctrlSetText (str (_zeroing select 1)); + _horizontal ctrlSetText (str (_zeroing select 0)); +}; + +if (!isNull (missionNamespace getVariable ["AGM_Scopes_fadeScript", scriptNull])) then { + terminate AGM_Scopes_fadeScript; +}; +if (cameraView != "GUNNER") then { + AGM_Scopes_fadeScript = 0 spawn { + _layer = ["AGM_Scope_Zeroing"] call BIS_fnc_rscLayer; + _layer cutRsc ["AGM_Scope_Zeroing", "PLAIN", 0, false]; + sleep 3; + _layer cutFadeOut 2; + }; +}; + +true diff --git a/TO_MERGE/agm/Scopes/functions/fn_canAdjustScope.sqf b/TO_MERGE/agm/Scopes/functions/fn_canAdjustScope.sqf new file mode 100644 index 0000000000..0096bd150f --- /dev/null +++ b/TO_MERGE/agm/Scopes/functions/fn_canAdjustScope.sqf @@ -0,0 +1,47 @@ +/* + * Author: KoffeinFlummi + * + * Checks if a player can adjust his optic in the given way. + * + * Arguments: + * 0: Horizontal adjustment + * 1: Vertical adjustment + * + * Return Value: + * Can adjustment be done? (Bool) + */ + +private ["_unit", "_weapons", "_zeroing", "_optic", "_maxHorizontal", "_maxVertical"]; + +_unit = _this select 0; + +_weapons = [ + primaryWeapon _unit, + secondaryWeapon _unit, + handgunWeapon _unit +]; + +if !(currentWeapon _unit in _weapons) exitWith {false}; + +if (isNil "AGM_Scopes_Adjustment") then { + AGM_Scopes_Adjustment = [[0,0], [0,0], [0,0]]; +}; + +if (isNil "AGM_Scopes_Optics") then { + AGM_Scopes_Optics = ["", "", ""]; +}; + +_zeroing = AGM_Scopes_Adjustment select (_weapons find (currentWeapon _unit)); +_zeroX = (_zeroing select 0) + (_this select 1); +_zeroY = (_zeroing select 1) + (_this select 2); + +_optic = AGM_Scopes_Optics select (_weapons find (currentWeapon _unit)); +_maxHorizontal = getArray (configFile >> "CfgWeapons" >> _optic >> "AGM_ScopeAdjust_Horizontal"); +_maxVertical = getArray (configFile >> "CfgWeapons" >> _optic >> "AGM_ScopeAdjust_Vertical"); +if ((count _maxHorizontal < 2) or (count _maxVertical < 2)) exitWith {false}; +if ((_maxHorizontal isEqualTo [0,0]) or (_maxVertical isEqualTo [0,0])) exitWith {false}; + +if (_zeroX < _maxHorizontal select 0 or _zeroX > _maxHorizontal select 1) exitWith {false}; +if (_zeroY < _maxVertical select 0 or _zeroY > _maxVertical select 1) exitWith {false}; + +vehicle _unit == _unit diff --git a/TO_MERGE/agm/Scopes/functions/fn_firedEH.sqf b/TO_MERGE/agm/Scopes/functions/fn_firedEH.sqf new file mode 100644 index 0000000000..925679ef98 --- /dev/null +++ b/TO_MERGE/agm/Scopes/functions/fn_firedEH.sqf @@ -0,0 +1,33 @@ +/* + * Author: KoffeinFlummi + * + * Adjusts the flight path of the bullet according to the zeroing + * + * Arguments: + * Fired EH + * + * Return Value: + * None + */ + +private ["_unit", "_weaponType", "_ammoType", "_magazineType", "_round", "_weapons", "_zeroing", "_direction", "_azimuth", "_altitude", "_velocity"]; + +_unit = _this select 0; +_weaponType = _this select 1; +_ammoType = _this select 4; +_round = _this select 5; +_magazineType = _this select 6; + +_weapons = [ + primaryWeapon _unit, + secondaryWeapon _unit, + handgunWeapon _unit +]; +if !(_weaponType in _weapons) exitWith {}; + +_zeroing = AGM_Scopes_Adjustment select (_weapons find _weaponType); + +// convert zeroing from mils to degrees +_zeroing = [_zeroing, {_this * 0.05625}] call AGM_Core_fnc_map; + +[_round, _zeroing select 0, _zeroing select 1, 0] call AGM_Core_fnc_changeProjectileDirection; diff --git a/TO_MERGE/agm/Scopes/functions/fn_getOptics.sqf b/TO_MERGE/agm/Scopes/functions/fn_getOptics.sqf new file mode 100644 index 0000000000..997b1dc442 --- /dev/null +++ b/TO_MERGE/agm/Scopes/functions/fn_getOptics.sqf @@ -0,0 +1,27 @@ +/* + * Author: commy2 + * + * Gets the optic classnames of all currently equipped weapons. + * + * Arguments: + * 0: Unit (Object) + * + * Return Value: + * [optic of primary, optic of secondary, optic of handgun] (Array) + */ + +private ["_unit", "_array"]; + +_unit = _this select 0; + +_array = ["", "", ""]; + +if !(_unit isKindOf "CAManBase") exitWith {_array}; + +{ + if (count _x >= 2) then { + _array set [_forEachIndex, _x select 2]; + }; +} forEach [primaryWeaponItems _unit, secondaryWeaponItems _unit, handgunItems _unit]; + +_array diff --git a/TO_MERGE/agm/Scopes/functions/fn_hideZeroing.sqf b/TO_MERGE/agm/Scopes/functions/fn_hideZeroing.sqf new file mode 100644 index 0000000000..9013a4155c --- /dev/null +++ b/TO_MERGE/agm/Scopes/functions/fn_hideZeroing.sqf @@ -0,0 +1,25 @@ +// by commy2 + +private ["_state", "_ctrl"]; + +_state = _this select 0; + +disableSerialization; +_ctrl = (uiNamespace getVariable ['AGM_dlgWeaponZeroing', displayNull]) displayCtrl 168; + +if (_state) then { + _ctrl ctrlSetPosition [0,0,0,0]; +} else { + private "_config"; + + _config = configFile >> "RscInGameUI" >> "RscWeaponZeroing" >> "CA_Zeroing"; + + _ctrl ctrlSetPosition [ + getNumber (_config >> "x"), + getNumber (_config >> "y"), + getNumber (_config >> "w"), + getNumber (_config >> "h") + ]; +}; + +_ctrl ctrlCommit 0; diff --git a/TO_MERGE/agm/Scopes/functions/fn_inventoryCheck.sqf b/TO_MERGE/agm/Scopes/functions/fn_inventoryCheck.sqf new file mode 100644 index 0000000000..008b204598 --- /dev/null +++ b/TO_MERGE/agm/Scopes/functions/fn_inventoryCheck.sqf @@ -0,0 +1,21 @@ +// by KoffeinFlummi / commy2 + +private "_new"; + +_new = _this call AGM_Scopes_fnc_getOptics; + +if (isNil "AGM_Scopes_Optics") then { + AGM_Scopes_Optics = ["", "", ""]; +}; + +if (isNil "AGM_Scopes_Adjustment") then { + AGM_Scopes_Adjustment = [[0,0], [0,0], [0,0]]; +}; + +{ + if (_new select _forEachIndex != _x) then { + AGM_Scopes_Adjustment set [_forEachIndex, [0,0]]; + }; +} forEach AGM_Scopes_Optics; + +AGM_Scopes_Optics = _new; diff --git a/TO_MERGE/agm/Scopes/scripts/zeroingOnLoad.sqf b/TO_MERGE/agm/Scopes/scripts/zeroingOnLoad.sqf new file mode 100644 index 0000000000..d74c1b4d5f --- /dev/null +++ b/TO_MERGE/agm/Scopes/scripts/zeroingOnLoad.sqf @@ -0,0 +1,18 @@ +disableSerialization; + +_display = _this select 0; +uiNamespace setVariable ["AGM_Scopes_ZeroingDisplay", _display]; +_vertical = _display displayCtrl 925002; +_horizontal = _display displayCtrl 925003; + +_weapons = [ + primaryWeapon player, + secondaryWeapon player, + handgunWeapon player +]; + +if ((currentWeapon player) in _weapons) then { + _zeroing = AGM_Scopes_Adjustment select (_weapons find (currentWeapon player)); + _horizontal ctrlSetText (str (_zeroing select 0)); + _vertical ctrlSetText (str (_zeroing select 1)); +}; diff --git a/TO_MERGE/agm/Scopes/sounds/agm_scopes_click.wav b/TO_MERGE/agm/Scopes/sounds/agm_scopes_click.wav new file mode 100644 index 0000000000..efc08e62d1 Binary files /dev/null and b/TO_MERGE/agm/Scopes/sounds/agm_scopes_click.wav differ diff --git a/TO_MERGE/agm/Scopes/stringtable.xml b/TO_MERGE/agm/Scopes/stringtable.xml new file mode 100644 index 0000000000..85d4b40994 --- /dev/null +++ b/TO_MERGE/agm/Scopes/stringtable.xml @@ -0,0 +1,50 @@ + + + + + + Adjust Elevation Up + Magasság Állítása Felfelé + Optik-Elevation erhöhen + Ajustar Elevação Acima + Hausse + + Regulacja krzyża w pionie + + Zvýšit náměr + Ajustar elevación arriba + Вверх по вертикали + + + Adjust Elevation Down + Magasság Állítása Lefelé + Optik-Elevation verringern + Ajustar Elevação Abaixo + Hausse - + Regulacja krzyża w pionie - + Snížit náměr + Ajustar elevación abajo + Вниз по вертикали + + + Adjust Windage Right + Oldalirány Állítása Jobbra + Optik-Azimuth erhöhen + Ajustar Azimute à Direita + Dérive + + Regulacja krzyża w poziomie + + Náměr doprava (vítr) + Ajustar deriva a la derecha + Вправо на уровне + + + Adjust Windage Left + Oldalirány Állítása Balra + Optik-Azimuth verringern + Ajustar Azimute à Esquerda + Dérive - + Regulacja krzyża w poziomie - + Náměr doleva (vítr) + Ajustar deriva a la izquierda + Влево на уровне + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Smallarms/config.cpp b/TO_MERGE/agm/Smallarms/config.cpp new file mode 100644 index 0000000000..b01cbb04a9 --- /dev/null +++ b/TO_MERGE/agm/Smallarms/config.cpp @@ -0,0 +1,530 @@ +// SEE LICENSE.TXT FOR LICENSING INFORMATION + +class CfgPatches { + class AGM_Smallarms { + units[] = {}; + weapons[] = {}; //{"AGM_acc_flashlight_tls"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"TaoSensai", "KoffeinFlummi"}; + authorUrl = "https://github.com/Taosenai/tmr"; + }; +}; + +// EVERYTHING BELOW BELONGS TO TAOSENSAI + +////////////////////////////////////////////////////// +// TMR strings update for weapons and magazines: +// 1. Change displayname to match TMR standards. +// 3. Add displaynameshort to TMR standards. +////////////////////////////////////////////////////// + +class CfgMagazines { + class CA_Magazine; + + // Magazine updates: + // 1. Update all magazines with tracer mix to use 1 in 5 mix. Full tracer mags should not be changed! + // 2. Remove tracers at bottom of magazine. + // 3. Do string updates. + + // 5.56mm //////////////////////////////////// + + class 30Rnd_556x45_Stanag : CA_Magazine { + displayname = "5.56mm 30Rnd Mag"; + displaynameshort = "5.56mm"; + + tracersEvery = 0; + lastRoundsTracer = 0; + }; + + class 30Rnd_556x45_Stanag_Tracer_Red: 30Rnd_556x45_Stanag { + displayname = "5.56mm 30Rnd Tracer Mag"; + displaynameshort = "5.56mm"; + }; + + class 30Rnd_556x45_Stanag_Tracer_Green: 30Rnd_556x45_Stanag { + displayname = "5.56mm 30Rnd Tracer Mag"; + displaynameshort = "5.56mm"; + }; + + class 30Rnd_556x45_Stanag_Tracer_Yellow: 30Rnd_556x45_Stanag { + displayname = "5.56mm 30Rnd Tracer Mag"; + displaynameshort = "5.56mm"; + }; + + class 20Rnd_556x45_UW_mag: 30Rnd_556x45_Stanag { + displayname = "5.56mm 20Rnd MEA Mag"; + displaynameshort = "5.56mm MEA"; + }; + + // 6.5mm ////////////////////////////////////////// + + class 30Rnd_65x39_caseless_mag : CA_Magazine { // MX!! + displayname = "6.5mm 30Rnd Mag"; + displaynameshort = "6.5mm"; + + tracersEvery = 0; + lastRoundsTracer = 0; + }; + + class 30Rnd_65x39_caseless_mag_Tracer : 30Rnd_65x39_caseless_mag { // MX!! + displayname = "6.5mm 30Rnd Tracer Mag"; + displaynameshort = "6.5mm Tracer"; + }; + + class 30Rnd_65x39_caseless_green : 30Rnd_65x39_caseless_mag { // Katiba!! + displayname = "6.5mm 30Rnd Mag"; + displaynameshort = "6.5mm"; + + tracersEvery = 0; + lastRoundsTracer = 0; + }; + + class 30Rnd_65x39_caseless_green_Tracer : 30Rnd_65x39_caseless_green { // Katiba!! + displayname = "6.5mm 30Rnd Tracer Magazine"; + displaynameshort = "6.5mm Tracer"; + }; + + class 100Rnd_65x39_caseless_mag : CA_Magazine { + displayname = "6.5mm 100Rnd Mag"; + displaynameshort = "6.5mm"; + + tracersEvery = 5; + lastRoundsTracer = 3; + }; + + class 100Rnd_65x39_caseless_mag_Tracer : 100Rnd_65x39_caseless_mag { + displayname = "6.5mm 100Rnd Tracer Mag"; + displaynameshort = "6.5mm Tracer"; + }; + + class 200Rnd_65x39_cased_Box : 100Rnd_65x39_caseless_mag { + displayname = "6.5mm 200Rnd Box"; + displaynameshort = "6.5mm"; + + tracersEvery = 5; + lastRoundsTracer = 3; + }; + class 200Rnd_65x39_cased_Box_Tracer: 200Rnd_65x39_cased_Box { + displayname = "6.5mm 200Rnd Tracer Box"; + displaynameshort = "6.5mm Tracer"; + }; + + // 7.62mm ////////////////////////////////////////// + + class 20Rnd_762x51_Mag: CA_Magazine { + displayname = "7.62mm 20Rnd Mag"; + displaynameshort = "7.62mm"; + }; + + class 150Rnd_762x51_Box : CA_Magazine { + displayname = "7.62mm 150Rnd Box"; + + tracersEvery = 5; + lastRoundsTracer = 3; + }; + + class 150Rnd_762x51_Box_Tracer : 150Rnd_762x51_Box { + displayname = "7.62mm 150Rnd Tracer Box"; + }; + + // Anti-materiel /////////////////////////////// + + class 7Rnd_408_Mag: CA_Magazine { + displayname = ".408 7Rnd Mag"; + }; + + class 5Rnd_127x108_Mag: CA_Magazine { + displayname = "12.7mm 5Rnd Mag"; + }; + + // SMG & Pistol //////////////////////////// + + class 30Rnd_9x21_Mag : CA_Magazine { + displayname = "9mm 30Rnd Mag"; + displaynameshort = "9mm"; + + lastRoundsTracer = 0; + }; + + class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag { + displayname = "9mm 17Rnd Mag"; + displaynameshort = "9mm"; + + count = 17; + }; + + class 30Rnd_45ACP_Mag_SMG_01 : 30Rnd_9x21_Mag { + displayname = ".45 25Rnd Mag"; + displaynameshort = ".45"; + + picture = "\A3\weapons_f\data\ui\M_30Rnd_9x21_CA.paa"; + + count = 25; + + tracersEvery = 0; + lastRoundsTracer = 0; + }; + + class 9Rnd_45ACP_Mag : 30Rnd_45ACP_Mag_SMG_01 { + displayname = ".45 8Rnd Mag"; + displaynameshort = ".45"; + + count = 8; + }; + + class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 { + displayname = ".45 25Rnd Tracer Mag"; + }; +}; + +class Mode_SemiAuto; +class Mode_Burst; +class Mode_FullAuto; + +// config inheritance of weapon slot info v1.32 +class SlotInfo; +class CowsSlot: SlotInfo {}; +class PointerSlot: SlotInfo { + //compatibleItems[] = {"acc_flashlight","acc_pointer_IR", "AGM_acc_flashlight_tls"}; +}; + +class CfgWeapons { + + // config inheritance of weapon slot info v1.32 for launchers + class Launcher; + class Launcher_Base_F: Launcher { + class WeaponSlotsInfo {}; + }; + + // config inheritance of weapon slot info v1.32 for assault rifles + class RifleCore; + class Rifle: RifleCore { + class WeaponSlotsInfo { + class MuzzleSlot: SlotInfo {}; + class CowsSlot: CowsSlot {}; + class PointerSlot: PointerSlot {}; + }; + }; + class Rifle_Base_F: Rifle {}; + class Rifle_Long_Base_F: Rifle_Base_F { + class WeaponSlotsInfo: WeaponSlotsInfo {}; + }; + + // config inheritance of weapon slot info v1.32 for handguns + class PistolCore; + class Pistol: PistolCore { + class WeaponSlotsInfo { + class CowsSlot: SlotInfo {}; + }; + }; + class Pistol_Base_F: Pistol { + class WeaponSlotsInfo: WeaponSlotsInfo { + class MuzzleSlot: SlotInfo {}; + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + //////////// SMALL ARMS WEAPONS /////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////// + + // Weapon updates: + // 1. Do string update. + // 2. Fix magazine compatibility as needed. + // 3. Fix firing modes as needed. + // 4. Fix accessory compatibility as needed. + + // Grenade launchers ///////////////////////////////////// + // Updated strings are in weapon configs. + class GrenadeLauncher; + class UGL_F : GrenadeLauncher {}; + + // MXs //////////////////////////////////////////////////// + + class arifle_MX_Base_F : Rifle_Base_F { + //magazines[] = {"30Rnd_65x39_caseless_mag", "30Rnd_65x39_caseless_mag_Tracer", "100Rnd_65x39_caseless_mag", "100Rnd_65x39_caseless_mag_Tracer"}; + + // http://www.bushmaster.com/acr/#/intro + // 800 rpm (whatever, fictional lol) + + //class Single : Mode_SemiAuto {}; + class Single : Mode_SemiAuto { + reloadTime = 0.075; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.075; + }; + }; + + class arifle_MX_SW_F : arifle_MX_Base_F { + modes[] = {"Single", "manual", "close", "short", "medium", "far_optic1", "far_optic2"}; + + //class Single : Single {}; + //class manual : FullAuto {}; + }; + + // Katibas //////////////////////////////////////////////////// + + class arifle_katiba_Base_F : Rifle_Base_F { + // http://world.guns.ru/assault/iran/khaybar-kh2002-e.html + // 800 rpm + + class Single : Mode_SemiAuto { + reloadTime = 0.075; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.075; + }; + }; + + // SDAR ////////////////////////////////////////////////// + + class SDAR_base_F : Rifle_Base_F { + modes[] = {"Single", "FullAuto"}; // Leave in the imaginary full-auto mode because, whatever. + }; + + // Tavor TRG //////////////////////////////////////////////// + + class Tavor_base_F : Rifle_Base_F { + // http://www.israel-weapon.com/files/brochure_2012/IWI_TAVOR_AR.pdf + // 700 ~1000 rpm (850) + class Single : Mode_SemiAuto { + reloadTime = 0.07; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.07; + }; + }; + + // Mk20 (F2000) ////////////////////////////////////////////////// + + class mk20_base_F : Rifle_Base_F { + // http://www.fnherstal.com/primary-menu/products-capabilities/rifles/technical-data/product/182/232/182/1/_/fn-f2000R-standard.html + // 850 rpm + class Single : Mode_SemiAuto { + reloadTime = 0.07; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.07; + }; + }; + + // SMG Vermin //////////////////////////////////////////////////// + + class SMG_01_Base : Rifle_Base_F { + // http://kriss-usa.com/pdf/operatormanual/ + // 1200 rpm + class Single : Mode_SemiAuto { + reloadTime = 0.05; + }; + + class Burst : Mode_Burst { + burst = 2; + reloadTime = 0.05; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.05; + }; + }; + + // SMG Scorpion //////////////////////////////////////////////////// + + class SMG_02_base_F : Rifle_Base_F { + //http://www.czub.cz/zbrojovka/cz-manual/Instruction-Manual-Scorpion-EVO-3-A1_en.pdf + // 1150 rpm + + class Single : Mode_SemiAuto { + // http://www.stengg.com/upload/915fGdhTi3ggnnGQGGL.pdf + // 900-1100 rpm (1000rpm) + reloadTime = 0.052; + }; + + class Burst : Mode_Burst { + reloadTime = 0.052; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.052; + }; + }; + + // SMG PDW2000 /////////////////////////////////////////////////// + + class pdw2000_base_F: Rifle_Base_F { + magazines[] = {"30Rnd_9x21_Mag"}; + + modes[] = {"Single", "FullAuto"}; // No burst on this thing + + class Single : Mode_SemiAuto { + // http://www.stengg.com/upload/915fGdhTi3ggnnGQGGL.pdf + // 900-1100 rpm (1000rpm) + reloadTime = 0.06; + }; + + class FullAuto: Mode_FullAuto { + reloadTime = 0.06; + }; + }; + + // Pistols ////////////////////////////////////////////// + + class hgun_P07_F : Pistol_Base_F { + magazines[] = {"16Rnd_9x21_Mag"}; + }; + + class hgun_Rook40_F : Pistol_Base_F { + magazines[] = {"16Rnd_9x21_Mag"}; + }; + + /*class hgun_ACPC2_F: Pistol_Base_F {}; + class hgun_Pistol_heavy_01_F: Pistol_Base_F {}; + class hgun_Pistol_heavy_02_F: Pistol_Base_F {};*/ + + // LMGs ////////////////////////////////////////////// + + class LMG_Mk200_F : Rifle_Long_Base_F { + modes[] = {"manual", "Single", "close", "short", "medium", "far_optic1", "far_optic2"}; + + class manual : Mode_FullAuto { + // http://www.defensereview.com/kac-stoner-lmg-belt-fed-5-56mm-nato-lightweight-light-machine-gun-squad-automatic-weapon-lmgsaw-displayed-at-sofic-2010/ + // 550 rpm + reloadTime = 0.109; + }; + + // Add semi-auto mode. + // Inherit from 'manual' for sound reasons. + class Single : manual { + reloadTime = 0.109; + dispersion = 0.00175; // radians. Equal to 6 MOA. + autofire = 0; + burst = 1; + displayname = "Semi"; + texturetype = "semi"; + showToPlayer = 1; + }; + }; + + class LMG_Zafir_F: Rifle_Long_Base_F { + modes[] = {"FullAuto", "Single", "close", "short", "medium", "far_optic1", "far_optic2"}; + + class FullAuto : Mode_FullAuto { + reloadTime = 0.070; // 850 RPM on gas position 1 + }; + }; + + // Sniper and anti-materiel rifles ///////////////////////////////// + + class EBR_base_F : Rifle_Long_Base_F { + // EMR/EBR is typically issued semi-auto AFAIK + modes[] = {"Single", "single_close_optics1", "single_medium_optics1", "single_far_optics1"}; + cursor = "arifle"; + }; + + class LRR_base_F : Rifle_Long_Base_F { + cursor = "arifle"; + }; + + class GM6_base_F : Rifle_Long_Base_F { + cursor = "arifle"; + + // Fuck your balancing, BI. + class Single : Mode_SemiAuto { + // 250 rpm is probably the limit of the finger on a heavy bullpup trigger like this thing must have. + reloadTime = 0.24; + }; + }; + + /////////////////////////////////////////////////////////////////////////////// + //////////// WEAPON ATTACHMENTS /////////////////////////////////////////////// + /////////////////////////////////////////////////////////////////////////////// + + + + + class ItemCore; + class InventoryItem_Base_F; + class InventoryMuzzleItem_Base_F; + class InventoryFlashLightItem_Base_F; + + class AGM_acc_flashlight_tls: ItemCore { + author = "$STR_A3_Bohemia_Interactive"; + _generalMacro = "AGM_acc_flashlight_tls"; + scope = 1; //2; + displayName = "$STR_A3_cfgWeapons_acc_flashlight0";// + descriptionUse = "$STR_A3_cfgWeapons_use_flashlight0";// + picture = "\A3\weapons_F\Data\UI\gear_accv_flashlight_tls_ca.paa"; + model = "\A3\weapons_f\acc\accv_flashlight_TLS_F"; + descriptionShort = "$STR_A3_cfgWeapons_acc_flashlight1";// + class ItemInfo: InventoryFlashLightItem_Base_F { + mass = 4; + class FlashLight { + color[] = {180,156,120}; + ambient[] = {0.9,0.78,0.6}; + intensity = 20; + size = 1; + innerAngle = 20; + outerAngle = 80; + coneFadeCoef = 5; + position = "flash dir"; + direction = "flash"; + useFlare = 1; + flareSize = 1.4; + flareMaxDistance = "100.0f"; + dayLight = 0; + class Attenuation { + start = 0.5; + constant = 0; + linear = 0; + quadratic = 1.1; + hardLimitStart = 20; + hardLimitEnd = 30; + }; + scale[] = {0}; + }; + }; + inertia = 0.1; + }; +}; + +#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \ + name = #ITEM; \ + count = COUNT; \ +}; + +/*class CfgVehicles { + class NATO_Box_Base; + class EAST_Box_Base; + class IND_Box_Base; + + class Box_NATO_Support_F: NATO_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_acc_flashlight_tls,5) + }; + }; + + class Box_East_Support_F: EAST_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_acc_flashlight_tls,5) + }; + }; + + class Box_IND_Support_F: IND_Box_Base { + class TransportItems { + MACRO_ADDITEM(AGM_acc_flashlight_tls,5) + }; + }; + + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + MACRO_ADDITEM(AGM_acc_flashlight_tls,2) + }; + }; +};*/ diff --git a/TO_MERGE/agm/SwitchUnits/UI/IconSwitchUnits_ca.paa b/TO_MERGE/agm/SwitchUnits/UI/IconSwitchUnits_ca.paa new file mode 100644 index 0000000000..b5868f0423 Binary files /dev/null and b/TO_MERGE/agm/SwitchUnits/UI/IconSwitchUnits_ca.paa differ diff --git a/TO_MERGE/agm/SwitchUnits/clientInit.sqf b/TO_MERGE/agm/SwitchUnits/clientInit.sqf new file mode 100644 index 0000000000..6c769a5903 --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/clientInit.sqf @@ -0,0 +1,23 @@ +/* + Author(s): + bux578 +*/ + +0 spawn { + private ["_side"]; + + waitUntil {sleep 0.5; AGM_SwitchUnits_EnableSwitchUnits}; + + //_side = [west, east, independent, civilian] select AGM_SwitchUnits_SwitchUnitsAllowedForSide; + + _sides = []; + + if(AGM_SwitchUnits_SwitchToWest) then {_sides pushBack west}; + if(AGM_SwitchUnits_SwitchToEast) then {_sides pushBack east}; + if(AGM_SwitchUnits_SwitchToIndependent) then {_sides pushBack independent}; + if(AGM_SwitchUnits_SwitchToCivilian) then {_sides pushBack civilian}; + + if (player getVariable ["AGM_CanSwitchUnits", false]) then { + [player, _sides] call AGM_SwitchUnits_fnc_initPlayer; + }; +}; diff --git a/TO_MERGE/agm/SwitchUnits/config.cpp b/TO_MERGE/agm/SwitchUnits/config.cpp new file mode 100644 index 0000000000..254a92be3a --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/config.cpp @@ -0,0 +1,140 @@ +class CfgPatches { + class AGM_SwitchUnits { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"bux578"}; + authorUrl = "https://github.com/bux578/"; + }; +}; + +class CfgFunctions { + class AGM_SwitchUnits { + class AGM_SwitchUnits { + file = "AGM_SwitchUnits\functions"; + class addMapFunction; + class handleMapClick; + class initPlayer; + class isValidAi; + class markAiOnMap; + class module; + class nearestPlayers; + class switchBack; + class switchUnit; + }; + }; +}; + + +class Extended_PostInit_EventHandlers { + class AGM_SwitchUnits { + clientInit = "call compile preprocessFileLineNumbers '\AGM_SwitchUnits\clientInit.sqf'"; + }; +}; + + +class CfgVehicles { + class Module_F; + class AGM_ModuleSwitchUnits: Module_F { + author = "AGM Team"; + category = "AGM"; + displayName = "SwitchUnits System"; + function = "AGM_SwitchUnits_fnc_module"; + scope = 2; + isGlobal = 1; + icon = "\AGM_SwitchUnits\UI\IconSwitchUnits_ca.paa"; + class Arguments { + class SwitchToWest { + displayName = "Switch to West?"; + description = "Allow switching to west units?"; + typeName = "BOOL"; + class values { + class Yes {name = "Yes"; value = 1;}; + class No {default = 1; name = "No"; value = 0;}; + }; + }; + class SwitchToEast { + displayName = "Switch to East?"; + description = "Allow switching to east units?"; + typeName = "BOOL"; + class values { + class Yes {name = "Yes"; value = 1;}; + class No {default = 1; name = "No"; value = 0;}; + }; + }; + class SwitchToIndependent { + displayName = "Switch to Independent?"; + description = "Allow switching to independent units?"; + typeName = "BOOL"; + class values { + class Yes {name = "Yes"; value = 1;}; + class No {default = 1; name = "No"; value = 0;}; + }; + }; + class SwitchToCivilian { + displayName = "Switch to Civilian?"; + description = "Allow switching to civilian units?"; + typeName = "BOOL"; + class values { + class Yes {name = "Yes"; value = 1;}; + class No {default = 1; name = "No"; value = 0;}; + }; + }; + class EnableSafeZone { + displayName = "Enable Safe Zone?"; + description = "Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone."; + typeName = "BOOL"; + class values { + class Yes {default = 1; name = "Yes"; value = 1;}; + class No {name = "No"; value = 0;}; + }; + }; + class SafeZoneRadius { + displayName = "Safe Zone Radius"; + description = "The safe zone around players from a different team. Default: 200"; + typeName = "NUMBER"; + defaultValue = 100; + }; + + /* + + class EnableSwitchUnits { + displayName = "Enable SwitchUnits?"; + description = "Enable to switch to AI units? Default: No"; + typeName = "BOOL"; + class values { + class Yes {name = "Yes"; value = 1;}; + class No {default = 1; name = "No"; value = 0;}; + }; + }; + + class SwitchUnitsAllowedForSide { + displayName = "Allow for which side?"; + description = "Which side should be allowed to switch to AI units?"; + typeName = "NUMBER"; + class values { + class West {name = "West"; value = 0;}; + class East {default = 1; name = "East"; value = 1;}; + class Independent {name = "Independent"; value = 2;}; + class Civilian {name = "Civilian"; value = 3;}; + }; + };*/ + }; + }; +}; + +class AGM_Parameters_Numeric { + AGM_SwitchUnits_SafeZoneRadius = 100; +}; +class AGM_Parameters_Boolean { + AGM_SwitchUnits_EnableSwitchUnits = 0; + AGM_SwitchUnits_SwitchToWest = 0; + AGM_SwitchUnits_SwitchToEast = 0; + AGM_SwitchUnits_SwitchToIndependent = 0; + AGM_SwitchUnits_SwitchToCivilian = 0; + AGM_SwitchUnits_EnableSafeZone = 1; +}; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_addMapFunction.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_addMapFunction.sqf new file mode 100644 index 0000000000..f65725aacf --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_addMapFunction.sqf @@ -0,0 +1,23 @@ +/* + Name: AGM_SwitchUnits_fnc_addMapFunction + + Author(s): + bux578 + + Description: + Adds a mapClick Eventhandler + + Parameters: + 0: OBJECT - unit + 1: ARRAY - sided + + Returns: + VOID +*/ + +private ["_unit"]; +_unit = _this select 0; + +["theMapClick", "onMapSingleClick", { + [_this, _pos, _shift, _alt] call AGM_SwitchUnits_fnc_handleMapClick; +}, [_unit, _sides]] call BIS_fnc_addStackedEventHandler; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_handleMapClick.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_handleMapClick.sqf new file mode 100644 index 0000000000..642baed1bd --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_handleMapClick.sqf @@ -0,0 +1,41 @@ +/* + Name: AGM_SwitchUnits_fnc_handleMapClick + + Author(s): + bux578 + + Description: + Finds the clicked unit + + Parameters: + 0: OBJECT - MapClickEventHandlerArgs + 0: OBJECT - unit to switch to + 1: ARRAY - sides + + Returns: + VOID +*/ + +private ["_args", "_currentPlayerUnit", "_sides", "_pos", "_sideNearest"]; + +_currentPlayerUnit = (_this select 0) select 0; +_sides = (_this select 0) select 1; +_pos = _this select 1; + +_sideNearest = []; + +{ + if ([_x] call AGM_SwitchUnits_fnc_isValidAi && (side group _x in _sides)) then { + _sideNearest pushBack _x; + }; +} forEach (nearestObjects [_pos, ["Man"], 20]); + + +if (count _sideNearest > 0) then { + private ["_switchUnit"]; + + _switchUnit = _sideNearest select 0; + [_currentPlayerUnit, _switchUnit] call AGM_SwitchUnits_fnc_switchUnit; + + openMap false; +}; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_initPlayer.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_initPlayer.sqf new file mode 100644 index 0000000000..c3ee6ce7b2 --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_initPlayer.sqf @@ -0,0 +1,48 @@ +/* + Name: AGM_SwitchUnits_fnc_initPlayer + + Author(s): + bux578 + + Description: + Initializes the player + + Parameters: + 0: OBJECT - player + 1: ARRAY - Array containing selected sides + + Returns: + VOID +*/ + +private ["_playerUnit", "_sides"]; + +_playerUnit = _this select 0; +_sides = _this select 1; + +if (vehicle _playerUnit == _playerUnit) then { + + [_sides] call AGM_SwitchUnits_fnc_markAiOnMap; + + _playerUnit setVariable ["AGM_SwitchUnits_IsPlayerUnit", true]; + _playerUnit allowDamage false; + + AGM_SwitchUnits_OriginalUnit = _playerUnit; + AGM_SwitchUnits_OriginalName = [_playerUnit] call AGM_Core_fnc_getName; + AGM_SwitchUnits_OriginalGroup = group _playerUnit; + + // remove all starting gear of a player + removeAllWeapons _playerUnit; + removeGoggles _playerUnit; + removeHeadgear _playerUnit; + removeVest _playerUnit; + removeAllAssignedItems _playerUnit; + clearAllItemsFromBackpack _playerUnit; + removeBackpack _playerUnit; + _playerUnit linkItem "ItemMap"; + removeUniform _playerUnit; + + [_playerUnit, "AGM_SwitchUnits", true] call AGM_Core_fnc_setForceWalkStatus; + + [_playerUnit, _sides] call AGM_SwitchUnits_fnc_addMapFunction; +}; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_isValidAi.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_isValidAi.sqf new file mode 100644 index 0000000000..f91b27ffbe --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_isValidAi.sqf @@ -0,0 +1,25 @@ +/* + Name: AGM_SwitchUnits_fnc_isValidAi + + Author(s): + bux578 + + Description: + Checks if AI is a valid target for switching + + Parameters: + 0: OBJECT - unit + + Returns: + VOID +*/ + +private ["_unit"]; + +_unit = _this select 0; + +!([_unit] call AGM_Core_fnc_isPlayer +|| {_unit in playableUnits} +|| {vehicle _unit != _unit} +|| {_unit getVariable ["AGM_SwitchUnits_IsPlayerUnit", false]} +|| {_unit getVariable ["AGM_SwitchUnits_IsPlayerControlled", false]}) diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_markAiOnMap.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_markAiOnMap.sqf new file mode 100644 index 0000000000..05865bc060 --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_markAiOnMap.sqf @@ -0,0 +1,64 @@ +/* + Name: AGM_SwitchUnits_fnc_markAiOnMap + + Author(s): + bux578 + + Description: + Creates markers for AI units for given sides + Marks players in a different color + + Parameters: + 0: OBJECT - side + + Returns: + VOID +*/ + +private ["_sidesToShow"]; +_sidesToShow = _this select 0; + +_sidesToShow spawn { + + private ["_sides", "_allMarkerNames"]; + _sides = _this; + _allMarkerNames = []; + + while { true } do { + sleep 1.5; + + // delete markers + { + deleteMarkerLocal _x; + } forEach _allMarkerNames; + + // create markers + { + if (([_x] call AGM_SwitchUnits_fnc_isValidAi && (side group _x in _sides)) || (_x getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])) then { + private ["_markerName", "_marker", "_markerColor"]; + + //_markerName = format ["%1", [_x] call AGM_Core_fnc_getName]; + _markerName = str _x; + + _marker = createMarkerLocal [_markerName, position _x]; + _markerName setMarkerTypeLocal "mil_triangle"; + _markerName setMarkerShapeLocal "ICON"; + _markerName setMarkerSizeLocal [0.5,0.7]; + _markerName setMarkerDirLocal getDir _x; + + // commy's one liner magic + _markerColor = format ["Color%1", side group _x]; + + if ((_x getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])) then { + _markerName setMarkerColorLocal "ColorOrange"; + _markerName setMarkerTextLocal (_x getVariable ["AGM_SwitchUnits_PlayerControlledName",""]); + } else { + _markerName setMarkerColorLocal _markerColor; + _markerName setMarkerTextLocal (getText (configFile >> "CfgVehicles" >> typeOf _x >> "displayName")); + }; + + _allMarkerNames pushBack _markerName; + }; + } forEach allUnits; + }; +}; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_module.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_module.sqf new file mode 100644 index 0000000000..43ec26199a --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_module.sqf @@ -0,0 +1,38 @@ +/* + Name: AGM_SwitchUnits_fnc_module + + Author(s): + bux578 + + Description: + Initializes the SwitchUnits module + + Parameters: + 0: OBJECT - module logic + 1: ARRAY - list of affected units + 2: BOOLEAN - isActivated + + Returns: + BOOLEAN (Good practice to include one) +*/ + +if !(isServer) exitWith {}; + +_logic = _this select 0; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +AGM_SwitchUnits_Module = true; + +["AGM_SwitchUnits_EnableSwitchUnits", true] call AGM_Core_fnc_setParameter; + +[_logic, "AGM_SwitchUnits_SwitchToWest", "SwitchToWest"] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_SwitchUnits_SwitchToEast", "SwitchToEast"] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_SwitchUnits_SwitchToIndependent", "SwitchToIndependent"] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_SwitchUnits_SwitchToCivilian", "SwitchToCivilian"] call AGM_Core_fnc_readBooleanParameterFromModule; + +[_logic, "AGM_SwitchUnits_EnableSafeZone", "EnableSafeZone"] call AGM_Core_fnc_readBooleanParameterFromModule; +[_logic, "AGM_SwitchUnits_SafeZoneRadius", "SafeZoneRadius"] call AGM_Core_fnc_readNumericParameterFromModule; + +diag_log text "[AGM]: SwitchUnits Module Initialized."; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_nearestPlayers.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_nearestPlayers.sqf new file mode 100644 index 0000000000..04b185c455 --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_nearestPlayers.sqf @@ -0,0 +1,31 @@ +/* + Name: AGM_SwitchUnits_fnc_nearestPlayers + + Author(s): + bux578 + + Description: + Returns an array of alive players in a given radius around a given location + + Parameters: + 0: POSTION - Center position + 1: NUMBER - Radius + + Returns: + ARRAY - Player units +*/ + +private ["_position", "_radius", "_nearestPlayers"]; + +_position = _this select 0; +_radius = _this select 1; + +_nearestPlayers = []; + +{ + if ([_x] call AGM_Core_fnc_isPlayer && {alive _x}) then { + _nearestPlayers pushBack _x; + }; +} forEach (nearestObjects [_position, ["Man"], _radius]); + + _nearestPlayers diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_switchBack.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_switchBack.sqf new file mode 100644 index 0000000000..eba84d57f6 --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_switchBack.sqf @@ -0,0 +1,29 @@ +/* + Name: AGM_SwitchUnits_fnc_switchBack + + Author(s): + bux578 + + Description: + Switches back to the original player unit + This method needs to be "spawn"ed + + Parameters: + 0: OBJECT - original player unit + 1: OBJECT - respawned unit + + Returns: + VOID +*/ + +private ["_originalPlayerUnit", "_currentUnit"]; +_originalPlayerUnit = _this select 0; +_currentUnit = _this select 1; + +[_originalPlayerUnit] joinSilent AGM_SwitchUnits_OriginalGroup; + +waitUntil {local _originalPlayerUnit}; + +selectPlayer _originalPlayerUnit; + +deleteVehicle _currentUnit; diff --git a/TO_MERGE/agm/SwitchUnits/functions/fn_switchUnit.sqf b/TO_MERGE/agm/SwitchUnits/functions/fn_switchUnit.sqf new file mode 100644 index 0000000000..ddb2a1d523 --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/functions/fn_switchUnit.sqf @@ -0,0 +1,79 @@ +/* + Name: AGM_SwitchUnits_fnc_switchUnit + + Author(s): + bux578 + + Description: + Selects the new given player unit + + Parameters: + 0: OBJECT - the unit to switch to + + Returns: + VOID +*/ + +private ["_newUnit"]; + +_newUnit = _this select 1; + +// don't switch to original player units +if (!([_newUnit] call AGM_SwitchUnits_fnc_isValidAi)) exitWith {}; + +_newUnit spawn { + private ["_unit", "_allNearestPlayers", "_oldUnit", "_respawnEhId", "_oldOwner", "_leave"]; + + _unit = _this; + + _leave = false; + + if (AGM_SwitchUnits_EnableSafeZone) then { + + _allNearestPlayers = [position _unit, AGM_SwitchUnits_SafeZoneRadius] call AGM_SwitchUnits_fnc_nearestPlayers; + _nearestEnemyPlayers = [_allNearestPlayers, {((side AGM_SwitchUnits_OriginalGroup) getFriend (side _this) < 0.6) && !(_this getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])}] call AGM_Core_fnc_filter; + + if (count _nearestEnemyPlayers > 0) exitWith { + _leave = true; + }; + }; + + // exitWith doesn't exit past the "if(EnableSafeZone)" block + if (_leave) exitWith { + [localize "STR_AGM_SwitchUnits_TooCloseToEnemy"] call AGM_Core_fnc_displayTextStructured; + }; + + // should switch locality + // This doesn't work anymore, because one's now able to switch to units from a different side + //[_unit] joinSilent group player; + [[_unit, player], "{(_this select 0) setVariable ['AGM_SwitchUnits_OriginalOwner', owner (_this select 0), true]; (_this select 0) setOwner owner (_this select 1)}", 1] call AGM_Core_fnc_execRemoteFnc; + + _oldUnit = player; + waitUntil {sleep 0.2; local _unit}; + + _oldUnit setVariable ["AGM_SwitchUnits_IsPlayerControlled", false, true]; + _oldUnit setVariable ["AGM_SwitchUnits_PlayerControlledName", "", true]; + + _respawnEhId = _unit getVariable ["AGM_SwitchUnits_RespawnEhId", -1]; + if (_respawnEhId != -1) then { + _oldUnit removeEventHandler ["Respawn", _respawnEhId]; + }; + + selectPlayer _unit; + + _unit setVariable ["AGM_SwitchUnits_IsPlayerControlled", true, true]; + _unit setVariable ["AGM_SwitchUnits_PlayerControlledName", AGM_SwitchUnits_OriginalName, true]; + + _respawnEhId = _unit addEventHandler ["Respawn", { + [AGM_SwitchUnits_OriginalUnit, _this select 0] spawn AGM_SwitchUnits_fnc_switchBack; + }]; + _unit setVariable ["AGM_SwitchUnits_RespawnEhId", _respawnEhId, true]; + + // set owner back to original owner + _oldOwner = _oldUnit getVariable["AGM_SwitchUnits_OriginalOwner", -1]; + if (_oldOwner > -1) then { + [[_oldUnit, _oldOwner], "{(_this select 0) setOwner (_this select 1)}", 1] call AGM_Core_fnc_execRemoteFnc; + }; + + [localize "STR_AGM_SwitchUnits_SwitchedUnit"] call AGM_Core_fnc_displayTextStructured; +}; diff --git a/TO_MERGE/agm/SwitchUnits/stringtable.xml b/TO_MERGE/agm/SwitchUnits/stringtable.xml new file mode 100644 index 0000000000..76e9782e5d --- /dev/null +++ b/TO_MERGE/agm/SwitchUnits/stringtable.xml @@ -0,0 +1,22 @@ + + + + + + Switched unit + Einheit gewechselt + Юнит переключен + Prohozená jednotka + Przełącz jednostkę + Cambiado de unidad + + + This unit is too close to the enemy. + Diese Einheit ist zu nah am Feind. + Юнит слишком близок к противнику + Tato jednotka je moc blízko k nepříteli. + Ta jednostka jest zbyt blisko przeciwnika. + Esta unidad está demasiado cerca del enemigo. + + + diff --git a/TO_MERGE/agm/Thermals/config.cpp b/TO_MERGE/agm/Thermals/config.cpp new file mode 100644 index 0000000000..044e17c838 --- /dev/null +++ b/TO_MERGE/agm/Thermals/config.cpp @@ -0,0 +1,41 @@ +// PATCH CONFIG +class CfgPatches { + class AGM_Thermals { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"[TF]Nkey"}; + authorUrl = "https://github.com/michail-nikolaev/"; + }; +}; + +class CfgVehicles { + class Land; + class Man: Land { + mFact = 1; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)) + tBody = 32; // Metabolism temperature of the model (in celsius) + }; + + class All; + // Up to this point, the thermal properties apply to the entire model, + // so if a vehicle's engine starts, the entire model will begin to warm up at the rate of htMax up to a temperature of afMax, + // likewise if it begins driving, the entire model will heat up at the rate specified by htMax to a maximum temperature of mfMax. + class AllVehicles: All { + htMin=60; // Minimum half-cooling time (in seconds) + htMax=1800; // Maximum half-cooling time (in seconds) + afMax=70; // Maximum temperature in case the model is alive (in celsius) + mfMax=50; // Maximum temperature when the model is moving (in celsius) + mFact=0.0; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)) + tBody=0; // Metabolism temperature of the model (in celsius) + }; + + class Animal; + class Animal_Base_F: Animal { + mFact = 1; // Metabolism factor - number from interval <0, 1> (0 - metabolism has no influence, 1 - metabolism has full influence (no other temperature source will be considered)) + tBody = 32; // Metabolism temperature of the model (in celsius) + }; +}; diff --git a/TO_MERGE/agm/TopDownAttack/Optics.hpp b/TO_MERGE/agm/TopDownAttack/Optics.hpp new file mode 100644 index 0000000000..e44578bffd --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/Optics.hpp @@ -0,0 +1,51 @@ + +class RscControlsGroup; +class RscPicture; +class RscMapControl; + +class RscInGameUI { + class RscOptics_titan { + onLoad = "uiNamespace setVariable ['AGM_dlgJavelinOptics', _this select 0]; missionNamespace setVariable ['AGM_Disposable_modeJavelin', 0];"; + + class CA_javelin_elements_group: RscControlsGroup { + class Controls { + class CA_Javelin_Day_mode_off: RscPicture {}; + class CA_Javelin_SEEK_off: CA_Javelin_Day_mode_off { + idc = 1005; + }; + class GetLockedTarget: RscMapControl { + onDraw = "call AGM_TopDownAttack_fnc_getLockedTarget"; + idc = -1; + w = 0; + h = 0; + }; + }; + }; + }; +}; + +//_dlg = uiNamespace getVariable ["AGM_dlgJavelinOptics", displayNull]; _ctrl = _dlg displayCtrl 1006; _ctrl ctrlSetTextColor [0.2941,0.8745,0.2157,1.0] + +// on colorText[] = {0.2941, 0.8745, 0.2157, 1.0}; +// off colorText[] = {0.2941, 0.2941, 0.2941, 1.0}; +// orange colorText[] = {0.9255, 0.5216, 0.1216, 1.0}; + +/* +CA_javelin_elements_group: 170 +CA_Javelin_Day_mode_off: 1001 +CA_Javelin_Day_mode: 160 +CA_Javelin_WFOV_mode_off: 1004 +CA_Javelin_WFOV_mode_group: 163 +CA_Javelin_NFOV_mode_off: 1003 +CA_Javelin_NFOV_mode_group: 162 +CA_Javelin_SEEK_off: 1005 //1001 +CA_Javelin_SEEK: 166 +CA_Javelin_Missle_off: 1032 +CA_Javelin_Missle: 167 +CA_Javelin_CLU_off: 1027 +CA_Javelin_HangFire_off: 1028 +CA_Javelin_TOP_off: 1006 +CA_Javelin_DIR: 1007 +CA_Javelin_FLTR_mode_off: 1002 +CA_Javelin_FLTR_mode: 161 +*/ diff --git a/TO_MERGE/agm/TopDownAttack/config.cpp b/TO_MERGE/agm/TopDownAttack/config.cpp new file mode 100644 index 0000000000..0fb6f920a2 --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/config.cpp @@ -0,0 +1,72 @@ + +class CfgPatches { + class AGM_TopDownAttack { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_TopDownAttack { + class AGM_TopDownAttack { + file = "\AGM_TopDownAttack\functions"; + class canToggleTopDownAttack; + class getLockedTarget; + class toggleTopDownAttack; + class topDownAttack; + }; + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + class AGM_TopDownAttack_FireMissile { + FiredBIS = "if (local (_this select 0)) then {_this call AGM_TopDownAttack_fnc_topDownAttack};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class toggleTopDownAttack { + displayName = "$STR_AGM_ToggleTopDownAttack"; + condition = "[_player] call AGM_TopDownAttack_fnc_canToggleTopDownAttack"; + statement = "[_player] call AGM_TopDownAttack_fnc_toggleTopDownAttack"; + key = 25; + shift = 0; + control = 0; + alt = 0; + }; +}; + +class CfgSounds { + class AGM_Sound_Locked1 { + sound[] = {"\A3\Sounds_F\weapons\Rockets\locked_3", 0.316228, 2.5, 200}; + titles[] = {}; + }; + class AGM_Sound_Locked2 { + sound[] = {"\A3\Sounds_F\weapons\Rockets\locked_1", 0.316228, 1, 200}; + titles[] = {}; + }; +}; + +#include + +class CfgWeapons { + class Launcher_Base_F; + + class launch_Titan_base: Launcher_Base_F { + AGM_enableTopDownAttack = 0; + AGM_lockTargetMode = 0; + }; + class launch_Titan_short_base: launch_Titan_base { + AGM_enableTopDownAttack = 1; + AGM_lockTargetMode = 1; + }; +}; diff --git a/TO_MERGE/agm/TopDownAttack/functions/fn_canToggleTopDownAttack.sqf b/TO_MERGE/agm/TopDownAttack/functions/fn_canToggleTopDownAttack.sqf new file mode 100644 index 0000000000..97eb1ddd00 --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/functions/fn_canToggleTopDownAttack.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_player", "_ctrlJavelinMode"]; + +_player = _this select 0; + +disableSerialization; +_ctrlJavelinMode = (uiNamespace getVariable ["AGM_dlgJavelinOptics", displayNull]) displayCtrl 1006; + +getNumber (configFile >> "CfgWeapons" >> currentWeapon _player >> "AGM_enableTopDownAttack") == 1 +&& {ctrlShown _ctrlJavelinMode} diff --git a/TO_MERGE/agm/TopDownAttack/functions/fn_getLockedTarget.sqf b/TO_MERGE/agm/TopDownAttack/functions/fn_getLockedTarget.sqf new file mode 100644 index 0000000000..c7a924a62c --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/functions/fn_getLockedTarget.sqf @@ -0,0 +1,11 @@ +// by commy2 + +// cursorTarget doesn't work for lockable weapons in fired event handlers +if (!isNull cursorTarget) then { + AGM_TopDownAttack_LockedTarget = cursorTarget; + AGM_TopDownAttack_LockedTargetTime = time; +} else { + if (time - (missionNamespace getVariable ["AGM_TopDownAttack_LockedTargetTime", -1]) > 1) then { + AGM_TopDownAttack_LockedTarget = objNull; + }; +}; diff --git a/TO_MERGE/agm/TopDownAttack/functions/fn_toggleTopDownAttack.sqf b/TO_MERGE/agm/TopDownAttack/functions/fn_toggleTopDownAttack.sqf new file mode 100644 index 0000000000..cced4dd24b --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/functions/fn_toggleTopDownAttack.sqf @@ -0,0 +1,23 @@ +// by commy2 + +#define COLOR_ON [0.2941, 0.8745, 0.2157, 1.0] +#define COLOR_OFF [0.2941, 0.2941, 0.2941, 1.0] + +private ["_state", "_dlgJavelinOptics", "_ctrlJavelinModeTop", "_ctrlJavelinModeDir"]; + +_state = missionNamespace getVariable ["AGM_TopDownAttack_modeJavelin", 0]; + +_state = [1, 0] select _state; + +AGM_TopDownAttack_modeJavelin = _state; + +playSound "AGM_Sound_Click"; + +disableSerialization; +_dlgJavelinOptics = uiNamespace getVariable ["AGM_dlgJavelinOptics", displayNull]; + +_ctrlJavelinModeTop = _dlgJavelinOptics displayCtrl 1006; +_ctrlJavelinModeDir = _dlgJavelinOptics displayCtrl 1007; + +_ctrlJavelinModeTop ctrlSetTextColor ([COLOR_OFF, COLOR_ON] select _state); +_ctrlJavelinModeDir ctrlSetTextColor ([COLOR_ON, COLOR_OFF] select _state); diff --git a/TO_MERGE/agm/TopDownAttack/functions/fn_topDownAttack.sqf b/TO_MERGE/agm/TopDownAttack/functions/fn_topDownAttack.sqf new file mode 100644 index 0000000000..f96330f125 --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/functions/fn_topDownAttack.sqf @@ -0,0 +1,170 @@ +// by commy2 + +if (getNumber (configFile >> "CfgWeapons" >> _this select 1 >> "AGM_enableTopDownAttack") != 1) exitWith {}; + +_this spawn { + _projectile = _this select 6; + + if (missionNamespace getVariable ["AGM_TopDownAttack_modeJavelin", 0] == 0) exitWith {}; + _flyInHeight = 100; + + // cursorTarget doesn't work for lockable weapons in fired event handlers + _target = missionNamespace getVariable ["AGM_TopDownAttack_LockedTarget", objNull]; + AGM_TopDownAttack_LockedTarget = objNull; + + // save values of the auto-guided missile + _type = typeOf _projectile; + _position = position _projectile; + _vector = [vectorDir _projectile, vectorUp _projectile]; + _velocity = velocity _projectile; + + deleteVehicle _projectile; + + // create new non-guided missile + _projectile = createVehicle [_type, _position, [], 0, "FLY"]; + _projectile setVectorDirAndUp _vector; + _projectile setVelocity _velocity; + + // common functions + _heightStart = getPosASL _projectile select 2; + _fnc_getHeight = {(getPosASL _this select 2) - _heightStart}; + + _fnc_getPitch = {asin (vectorDir _this select 2)}; + + _fnc_getHorizontalDistance = { + private "_v"; + + _v = getPosASL (_this select 0) vectorDiff getPosASL (_this select 1); + + sqrt ((_v select 0) ^ 2 + (_v select 1) ^ 2) + }; + + _fnc_getDirTo = { + private "_v"; + + _v = getPosASL (_this select 0) vectorFromTo getPosASL (_this select 1); + + (_v select 0) atan2 (_v select 1) + }; + + _getPitchTo = { + private ["_p", "_v"]; + + _p = getPosASL (_this select 1); + _p set [2, (_p select 2) + 1]; + + _v = getPosASL (_this select 0) vectorFromTo _p; + + asin (_v select 2) + }; + + _fnc_changeMissileDirection = { + private ["_projectile", "_v", "_l", "_r"]; + + _projectile = _this select 0; + _v = _this select 1; + + _l = sqrt ((_v select 0) ^ 2 + (_v select 1) ^ 2); + _r = -(_v select 2) / _l; + + _projectile setVectorDirAndUp [ + _v, + [ + (_v select 0) * _r, + (_v select 1) * _r, + _l + ] + ]; + _projectile setVelocity _v vectorMultiply vectorMagnitude velocity _projectile; + }; + + // init phase + sleep 0.5; + + // top down attack + if (!isNil "_flyInHeight") then { + // premature explosion + if (!alive _projectile) exitWith {}; + + // get in travel height phase, abrupt direction change + _vector = vectorDir _projectile; + _vector set [2, 2]; + _vector = vectorNormalized _vector; + + [_projectile, _vector] call _fnc_changeMissileDirection; + + // missile reached travel height, change direction again + waitUntil {!alive _projectile || {_projectile call _fnc_getHeight > _flyInHeight}}; + + // premature explosion2 + if (!alive _projectile) exitWith {}; + + // stay in travel height phase, another abrupt direction change + _vector = vectorDir _projectile; + _vector set [2, 0]; + _vector = vectorNormalized _vector; + + [_projectile, _vector] call _fnc_changeMissileDirection; + + // no target, self destruct + if (isNull _target) exitWith { + sleep 2; + deleteVehicle _projectile; + }; + + // loop to stay in travel height and correct altitude + _time = time; + while { + alive _projectile + && {!isNull _target} + && {[_projectile, _target] call _fnc_getHorizontalDistance > 100} + } do { + _height = _projectile call _fnc_getHeight; + _pitch = _projectile call _fnc_getPitch; + + _dir = ([_projectile, _target] call _fnc_getDirTo) - direction _projectile; + _up = if (abs (_flyInHeight - _height) < 1) then { + -_pitch min 10 max -10 + } else { + ([-20, 20] select (_height < _flyInHeight)) * (time - _time) + }; + + [_projectile, _dir, _up] call AGM_Core_fnc_changeProjectileDirection; + + _time = time; + sleep 0.05; + }; + }; + + // missile missed target or hit a bird or something + if (!alive _projectile) exitWith {}; + + // allah ackbar, motherfucker + while { + alive _projectile + && {!isNull _target} + } do { + + // flare near target. Target flare instead if the target isn't a flare already + // @todo some config values + if !(_target isKindOf "CMflareAmmo") then { + _flares = position _target nearObjects ["CMflareAmmo", 10]; + + _count = count _flares; + if (_count > 0) then { + _target = _flares select floor random _count; + }; + }; + + _height = _projectile call _fnc_getHeight; + _pitch = _projectile call _fnc_getPitch; + + _dir = ([_projectile, _target] call _fnc_getDirTo) - direction _projectile; + _up = ([_projectile, _target] call _getPitchTo) - (_projectile call _fnc_getPitch); + + [_projectile, _dir, _up] call AGM_Core_fnc_changeProjectileDirection; + + _time = time; + sleep 0.05; + }; +}; diff --git a/TO_MERGE/agm/TopDownAttack/stringtable.xml b/TO_MERGE/agm/TopDownAttack/stringtable.xml new file mode 100644 index 0000000000..bdede11d8f --- /dev/null +++ b/TO_MERGE/agm/TopDownAttack/stringtable.xml @@ -0,0 +1,15 @@ + + + + + + Toggle Top Down Attack + Angriffsmodus umschalten + Cambiar a ataque vertical + Fentröl-támadás kapcsolása + Przełącznik trybu ataku + Переключить режим атаки + Raketomet - Sepnout vertikální útok + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Vector/UI/agm_vector_x_ca.paa b/TO_MERGE/agm/Vector/UI/agm_vector_x_ca.paa new file mode 100644 index 0000000000..84eb59a044 Binary files /dev/null and b/TO_MERGE/agm/Vector/UI/agm_vector_x_ca.paa differ diff --git a/TO_MERGE/agm/Vector/agm_vector.p3d b/TO_MERGE/agm/Vector/agm_vector.p3d new file mode 100644 index 0000000000..b061e8400b Binary files /dev/null and b/TO_MERGE/agm/Vector/agm_vector.p3d differ diff --git a/TO_MERGE/agm/Vector/agm_vector_optics.p3d b/TO_MERGE/agm/Vector/agm_vector_optics.p3d new file mode 100644 index 0000000000..0840237aa7 Binary files /dev/null and b/TO_MERGE/agm/Vector/agm_vector_optics.p3d differ diff --git a/TO_MERGE/agm/Vector/clientInit.sqf b/TO_MERGE/agm/Vector/clientInit.sqf new file mode 100644 index 0000000000..c1d6f6cdeb --- /dev/null +++ b/TO_MERGE/agm/Vector/clientInit.sqf @@ -0,0 +1,13 @@ +// by commy2 + +player setVariable ["AGM_cooldownVector", 0, false]; + +AGM_isVectorReady = true; +AGM_vectorKey = [false, false]; +AGM_vectorConfig = [0, 0]; +AGM_vectorSettings = [false, false, false, false]; + +0 spawn { + waitUntil {preloadTitleRsc ["AGM_Digit_Preload", "PLAIN"]}; + waitUntil {preloadTitleRsc ["AGM_Debug_Crosshair", "PLAIN"]}; +}; diff --git a/TO_MERGE/agm/Vector/config.cpp b/TO_MERGE/agm/Vector/config.cpp new file mode 100644 index 0000000000..85b05cafb3 --- /dev/null +++ b/TO_MERGE/agm/Vector/config.cpp @@ -0,0 +1,353 @@ +class CfgPatches { + class AGM_Vector { + units[] = {"AGM_Item_Vector"}; + weapons[] = {"AGM_Vector"}; + requiredVersion = 0.1; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"Ghost", "Hamburger SV", "commy2", "bux578"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_Vector { + class AGM_Vector { + file = "AGM_Vector\functions"; + class abort; + class config; + class convertDegree; + class convertDistance; + class convertFOS; + class getDirection; + class getDistance; + class modeAzimuth; + class modeAzimuthInclination; + class modeDistance; + class modeDistanceAzimuth; + class modeDistanceHeight; + class modeFallOfShort; + class modeRelativeAzimuthDistance; + class modeRelativeDistance; + class modeRelativeDistanceHeight; + class settings; + class tabAzimuthKey; + class tabDistanceKey; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Vector { + clientInit = "call compile preprocessFileLineNumbers '\AGM_Vector\clientInit.sqf'"; + }; +}; + +class AGM_Core_Default_Keys { + class vectorAzimuth { + displayName = "$STR_AGM_Vector_AzimuthKey"; + condition = "currentWeapon player == 'AGM_Vector' && {_vehicle == player} && {cameraView == 'Gunner'}"; + statement = "AGM_vectorKey set [0, true]; if (AGM_isVectorReady) then {AGM_isVectorReady = false; AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_tabAzimuthKey; 0 spawn AGM_Vector_fnc_abort;};"; + conditionUp = "true"; + statementUp = "AGM_vectorKey set [0, false];"; + key = 15; + shift = 0; + control = 0; + alt = 0; + }; + class vectorDistance { + displayName = "$STR_AGM_Vector_DistanceKey"; + condition = "currentWeapon player == 'AGM_Vector' && {_vehicle == player} && {cameraView == 'Gunner'}"; + statement = "AGM_vectorKey set [1, true]; if (AGM_isVectorReady) then {AGM_isVectorReady = false; AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_tabDistanceKey; 0 spawn AGM_Vector_fnc_abort;};"; + conditionUp = "true"; + statementUp = "AGM_vectorKey set [1, false];"; + key = 19; + shift = 0; + control = 0; + alt = 0; + }; +}; + +class CfgWeapons { + class Binocular; + class AGM_Vector: Binocular { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "$STR_AGM_Vector_VectorName"; + descriptionShort = "$STR_AGM_Vector_VectorDescription"; + model = "\AGM_Vector\agm_vector.p3d"; + modelOptics = "\AGM_Vector\agm_vector_optics.p3d"; + picture = "\AGM_Vector\UI\agm_vector_x_ca.paa"; + visionMode[] = {"Normal","NVG"}; + opticsZoomMax = 0.03; + opticsZoomMin = 0.03; + weaponInfoType = "AGM_RscOptics_vector"; + }; +}; + +class CfgVehicles { + class Item_Base_F; + class AGM_Item_Vector: Item_Base_F { + author = "Ghost, Hamburger SV"; + scope = 2; + scopeCurator = 2; + displayName = "$STR_AGM_Vector_VectorName"; + vehicleClass = "Items"; + class TransportWeapons { + class AGM_Vector { + weapon = "AGM_Vector"; + count = 1; + }; + }; + }; + + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportWeapons { + class _xx_AGM_Vector { + weapon = "AGM_Vector"; + count = 6; + }; + }; + }; +}; + +class AGM_Rsc_Display_Base; +class AGM_Rsc_Control_Base; +class RSCText; + +class RscInGameUI { + class AGM_RscOptics_vector: AGM_Rsc_Display_Base { + idd = -1; + onLoad = "uiNamespace setVariable ['AGM_dlgVectorOptics', _this select 0];"; + controls[] = {"CA_Distance","CA_Heading","CA_OpticsPitch"}; + + class CA_Distance: RSCText { + idc = 151; // distance + w = 0; + h = 0; + }; + class CA_Heading: RSCText { + idc = 156; // azimuth + w = 0; + h = 0; + }; + class CA_OpticsPitch: RSCText { + idc = 182; // inclination + w = 0; + h = 0; + }; + }; +}; + +class RscTitles { + class AGM_Vector : AGM_Rsc_Display_Base { + name = "AGM_Vector"; + onLoad = "uiNamespace setVariable ['AGM_dlgVector', _this select 0];"; + controls[] = {"Vector_Center", "Vector_Crosshair", "Digit0", "Digit1", "Digit2", "Digit3", "Digit4", "Digit5", "Digit6", "Digit7", "Digit8", "Digit9", "DigitE1", "DigitE2", "DigitE3", "DigitE4"}; + + class Vector_Center : AGM_Rsc_Control_Base { + idc = 1; + colorText[] = {1, 0, 0, 0.5}; + x = 0.488 * safezoneW + safezoneX; + y = 0.4783 * safezoneH + safezoneY; + w = 0.4 / 16 * safezoneW; + h = 0.4 / 9 * safezoneH; + }; + + class Vector_Crosshair : Vector_Center { + idc = 2; + x = 0.4848 * safezoneW + safezoneX; + y = 0.4732 * safezoneH + safezoneY; + w = 0.5 / 16 * safezoneW; + h = 0.5 / 9 * safezoneH; + }; + + class Digit0 : Vector_Center { + idc = 10; + x = (0.54 + 0 * 0.02) * safezoneW + safezoneX; + y = 0.54 * safezoneH + safezoneY; + w = 0.5 / 16 * safezoneW; + h = 0.5 / 9 * safezoneH; + }; + + class Digit1 : Digit0 { + idc = 11; + x = (0.54 + 1 * 0.02) * safezoneW + safezoneX; + }; + + class Digit2 : Digit0 { + idc = 12; + x = (0.54 + 2 * 0.02) * safezoneW + safezoneX; + }; + + class Digit3 : Digit0 { + idc = 13; + x = (0.54 + 3 * 0.02) * safezoneW + safezoneX; + }; + + class Digit4 : Digit0 { + idc = 14; + x = (0.54 + 4 * 0.02) * safezoneW + safezoneX; + }; + + class Digit5 : Digit0 { + idc = 15; + x = (0.35 + 0 * 0.02) * safezoneW + safezoneX; + }; + + class Digit6 : Digit0 { + idc = 16; + x = (0.35 + 1 * 0.02) * safezoneW + safezoneX; + }; + + class Digit7 : Digit0 { + idc = 17; + x = (0.35 + 2 * 0.02) * safezoneW + safezoneX; + }; + + class Digit8 : Digit0 { + idc = 18; + x = (0.35 + 3 * 0.02) * safezoneW + safezoneX; + }; + + class Digit9 : Digit0 { + idc = 19; + x = (0.35 + 4 * 0.02) * safezoneW + safezoneX; + }; + + class DigitE1 : Digit0 { + idc = 21; + x = (0.39 + 0 * 0.02) * safezoneW + safezoneX; + y = 0.42 * safezoneH + safezoneY; + }; + + class DigitE2 : DigitE1 { + idc = 22; + x = (0.39 + 1 * 0.02) * safezoneW + safezoneX; + }; + + class DigitE3 : DigitE1 { + idc = 23; + x = (0.39 + 2 * 0.02) * safezoneW + safezoneX; + }; + + class DigitE4 : DigitE1 { + idc = 24; + x = (0.39 + 3 * 0.02) * safezoneW + safezoneX; + }; + }; + + //PRELOAD + class AGM_Digit_Preload : AGM_Rsc_Display_Base { + class controlsBackground { + class Preload_Center : AGM_Rsc_Control_Base { + text = "\AGM_Vector\rsc\Vector_Center.paa"; + }; + class Preload_0 : Preload_Center { + text = "\AGM_Vector\rsc\d0.paa"; + }; + class Preload_1 : Preload_Center { + text = "\AGM_Vector\rsc\d1.paa"; + }; + class Preload_2 : Preload_Center { + text = "\AGM_Vector\rsc\d2.paa"; + }; + class Preload_3 : Preload_Center { + text = "\AGM_Vector\rsc\d3.paa"; + }; + class Preload_4 : Preload_Center { + text = "\AGM_Vector\rsc\d4.paa"; + }; + class Preload_5 : Preload_Center { + text = "\AGM_Vector\rsc\d5.paa"; + }; + class Preload_6 : Preload_Center { + text = "\AGM_Vector\rsc\d6.paa"; + }; + class Preload_7 : Preload_Center { + text = "\AGM_Vector\rsc\d7.paa"; + }; + class Preload_8 : Preload_Center { + text = "\AGM_Vector\rsc\d8.paa"; + }; + class Preload_9 : Preload_Center { + text = "\AGM_Vector\rsc\d9.paa"; + }; + class Preload_x : Preload_Center { + text = "\AGM_Vector\rsc\d+.paa"; + }; + class Preload_y : Preload_Center { + text = "\AGM_Vector\rsc\d-.paa"; + }; + class Preload_A : Preload_Center { + text = "\AGM_Vector\rsc\dA.paa"; + }; + class Preload_b : Preload_Center { + text = "\AGM_Vector\rsc\db.paa"; + }; + class Preload_C : Preload_Center { + text = "\AGM_Vector\rsc\dC.paa"; + }; + class Preload_d : Preload_Center { + text = "\AGM_Vector\rsc\dd.paa"; + }; + class Preload_E : Preload_Center { + text = "\AGM_Vector\rsc\dE.paa"; + }; + class Preload_F : Preload_Center { + text = "\AGM_Vector\rsc\dF.paa"; + }; + class Preload_G : Preload_Center { + text = "\AGM_Vector\rsc\dG.paa"; + }; + class Preload_i : Preload_Center { + text = "\AGM_Vector\rsc\di.paa"; + }; + class Preload_L : Preload_Center { + text = "\AGM_Vector\rsc\dL.paa"; + }; + class Preload_n : Preload_Center { + text = "\AGM_Vector\rsc\dn.paa"; + }; + class Preload_o : Preload_Center { + text = "\AGM_Vector\rsc\do.paa"; + }; + class Preload_oo : Preload_Center { + text = "\AGM_Vector\rsc\doo.paa"; + }; + class Preload_P : Preload_Center { + text = "\AGM_Vector\rsc\dP.paa"; + }; + class Preload_q : Preload_Center { + text = "\AGM_Vector\rsc\dq.paa"; + }; + class Preload_r : Preload_Center { + text = "\AGM_Vector\rsc\dr.paa"; + }; + class Preload_t : Preload_Center { + text = "\AGM_Vector\rsc\dt.paa"; + }; + class Preload_U : Preload_Center { + text = "\AGM_Vector\rsc\dU.paa"; + }; + }; + }; + + class AGM_Debug_Crosshair : AGM_Rsc_Display_Base { + name = "AGM_Debug_Crosshair"; + onLoad = "uiNamespace setVariable ['AGM_ctrlDebugCrosshair', (_this select 0) displayCtrl 1];"; + + class controlsBackground { + class Debug_Crosshair : AGM_Rsc_Control_Base { + text = "\AGM_Vector\rsc\debug_crosshair.paa"; + colorText[] = {1, 0, 0, 0.5}; + x = 0.490938 * safezoneW + safezoneX; + y = 0.4838 * safezoneH + safezoneY; + w = 0.3 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Vector/data/agm_default_as.paa b/TO_MERGE/agm/Vector/data/agm_default_as.paa new file mode 100644 index 0000000000..b7efce459b Binary files /dev/null and b/TO_MERGE/agm/Vector/data/agm_default_as.paa differ diff --git a/TO_MERGE/agm/Vector/data/agm_vector.rvmat b/TO_MERGE/agm/Vector/data/agm_vector.rvmat new file mode 100644 index 0000000000..92ee2f8849 --- /dev/null +++ b/TO_MERGE/agm/Vector/data/agm_vector.rvmat @@ -0,0 +1,82 @@ +class StageTI { + texture="#(argb,8,8,3)color(1,0.25,0,0,ti)"; +}; +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.1,0.1,0.1,1}; //amount of glossiness - the higher the number, the higher the glossiness +specularPower=100; //area of glossiness - the higher the number, the smaller the area +PixelShaderID="Super"; +VertexShaderID="Super"; + +class Stage1 { + texture="AGM_Vector\data\agm_vector_nohq.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 { + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,mc)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 { + texture="AGM_Vector\data\agm_default_as.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,1}; + }; +}; +class Stage5 { + texture="AGM_Vector\data\agm_vector_smdi.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 { + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage7 { + texture="a3\data_f\env_land_ca.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/TO_MERGE/agm/Vector/data/agm_vector_co.paa b/TO_MERGE/agm/Vector/data/agm_vector_co.paa new file mode 100644 index 0000000000..394ba0b2b7 Binary files /dev/null and b/TO_MERGE/agm/Vector/data/agm_vector_co.paa differ diff --git a/TO_MERGE/agm/Vector/data/agm_vector_nohq.paa b/TO_MERGE/agm/Vector/data/agm_vector_nohq.paa new file mode 100644 index 0000000000..3514618298 Binary files /dev/null and b/TO_MERGE/agm/Vector/data/agm_vector_nohq.paa differ diff --git a/TO_MERGE/agm/Vector/data/agm_vector_smdi.paa b/TO_MERGE/agm/Vector/data/agm_vector_smdi.paa new file mode 100644 index 0000000000..5a08d973ab Binary files /dev/null and b/TO_MERGE/agm/Vector/data/agm_vector_smdi.paa differ diff --git a/TO_MERGE/agm/Vector/data/reticles/agm_vector_reticle.paa b/TO_MERGE/agm/Vector/data/reticles/agm_vector_reticle.paa new file mode 100644 index 0000000000..425dbb85b2 Binary files /dev/null and b/TO_MERGE/agm/Vector/data/reticles/agm_vector_reticle.paa differ diff --git a/TO_MERGE/agm/Vector/functions/fn_abort.sqf b/TO_MERGE/agm/Vector/functions/fn_abort.sqf new file mode 100644 index 0000000000..240b2c735e --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_abort.sqf @@ -0,0 +1,49 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlVectorCrosshair", "_ctrlDigit0", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigit9", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_ctrlDigitE4", "_allControls"]; + +waitUntil {currentWeapon player != "AGM_Vector" || {cameraView != "Gunner"}}; + +terminate AGM_Vector_scriptHandle; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlVectorCrosshair = _dlgVector displayCtrl 2; +_ctrlDigit0 = _dlgVector displayCtrl 10; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigit9 = _dlgVector displayCtrl 19; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; +_ctrlDigitE4 = _dlgVector displayCtrl 24; + +_allControls = [ + _ctrlVectorCenter, + _ctrlVectorCrosshair, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3, + _ctrlDigit4, + _ctrlDigit5, + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigitE1, + _ctrlDigitE2, + _ctrlDigitE3, + _ctrlDigitE4 +]; + +{_x ctrlShow false} forEach _allControls; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_config.sqf b/TO_MERGE/agm/Vector/functions/fn_config.sqf new file mode 100644 index 0000000000..89f58c919c --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_config.sqf @@ -0,0 +1,213 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlVectorCrosshair", "_ctrlDigit0", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigit9", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_ctrlDigitE4", "_allControls", "_isReticle", "_isNVG", "_time", "_theCount"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlVectorCrosshair = _dlgVector displayCtrl 2; +_ctrlDigit0 = _dlgVector displayCtrl 10; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigit9 = _dlgVector displayCtrl 19; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; +_ctrlDigitE4 = _dlgVector displayCtrl 24; + +_allControls = [ + _ctrlVectorCenter, + _ctrlVectorCrosshair, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3, + _ctrlDigit4, + _ctrlDigit5, + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigitE1, + _ctrlDigitE2, + _ctrlDigitE3, + _ctrlDigitE4 +]; + +_ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\dC.paa"; +_ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dq.paa"; +_ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dn.paa"; +_ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dF.paa"; +_ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\di.paa"; +_ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dG.paa"; + +sleep 2; + +{_x ctrlSetText ""} forEach [ + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2 +]; + +_isReticle = AGM_vectorSettings select 0; +_isNVG = AGM_vectorSettings select 1; + +if (_isReticle) then { + if (_isNVG) then { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dn.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\di.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dG.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + } else { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\dr.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + }; + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dn.paa"; + _ctrlDigit2 ctrlSetText ""; + _ctrlDigit3 ctrlSetText ""; +} else { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\dr.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + _ctrlDigit3 ctrlSetText ""; +}; + +waitUntil { + if (AGM_vectorKey select 0) then { + waitUntil { + !(AGM_vectorKey select 0) || {AGM_vectorKey select 1} + }; + if !(AGM_vectorKey select 1) then { + if (_isNVG) then { + _isReticle = false; + _isNVG = false; + } else { + if (_isReticle) then { + _isReticle = true; + _isNVG = true; + } else { + _isReticle = true; + _isNVG = false; + }; + }; + }; + if (_isReticle) then { + if (_isNVG) then { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dn.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\di.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dG.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + } else { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\dr.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + }; + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dn.paa"; + _ctrlDigit2 ctrlSetText ""; + _ctrlDigit3 ctrlSetText ""; + } else { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\dr.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + _ctrlDigit3 ctrlSetText ""; + }; + }; + AGM_vectorKey select 1 +}; + +_time = time; +waitUntil { + if (AGM_vectorKey select 0) then {_time = -1}; + !(AGM_vectorKey select 1) || {time > _time + 1} +}; + +_theCount = 1; +waitUntil { + if (AGM_vectorKey select 1) then { + _theCount = _theCount + 1; + _time = time; + waitUntil {!(AGM_vectorKey select 1) || {time > _time + 1}}; + }; + if (AGM_vectorKey select 0) then {_time = -1}; + time > _time + 1 || {_theCount >= 5} +}; + +if (_theCount >= 5) then { + _ctrlDigitE1 ctrlSetText "\AGM_Vector\rsc\d5.paa"; + _ctrlDigitE2 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + _ctrlDigitE3 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigitE4 ctrlSetText "\AGM_Vector\rsc\dr.paa"; + + AGM_vectorSettings set [0, _isReticle]; + AGM_vectorSettings set [1, _isNVG]; + + _ctrlVectorCrosshair ctrlShow (AGM_vectorSettings select 0); + + if (AGM_vectorSettings select 1) then { + {_x ctrlSetTextColor [1, 0, 0, 1]} forEach _allControls; + } else { + {_x ctrlSetTextColor [1, 0, 0, 0.5]} forEach _allControls; + }; + + sleep 2; + + {_x ctrlSetText ""} forEach [ + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3, + _ctrlDigitE1, + _ctrlDigitE2, + _ctrlDigitE3, + _ctrlDigitE4 + ]; +} else { + _ctrlDigit6 ctrlSetText ""; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\d1.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dd.paa"; + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dC.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dn.paa"; + _ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + + sleep 2; + + {_x ctrlSetText ""} forEach [ + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3 + ]; +}; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_convertDegree.sqf b/TO_MERGE/agm/Vector/functions/fn_convertDegree.sqf new file mode 100644 index 0000000000..5a63cb1041 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_convertDegree.sqf @@ -0,0 +1,66 @@ +/* +BWA3 script, by commy2 +this code is property of the ArmA 3 Bundeswehr modification +ask us nicely at http://www.bwmod.de/ if you want to re-use any of this script +we don't support changed code based on this work +*/ + +private["_number", "_return", "_isNegative", "_digit1", "_digit2", "_digit3", "_digit4"]; + +_number = _this; + +_return = []; +if (AGM_vectorSettings select 2) then { + _number = round (6400 / 360 * _number); + if (_number == 6400) then {_number = 0}; + + _return = _number call AGM_Vector_fnc_convertDistance; +} else { + _number = round _number; + _isNegative = if (_number < 0) then {true} else {false}; + _number = abs _number; + if (_number == 360) then {_number = 0}; + + _digit1 = floor (_number / 100); + _digit2 = floor (_number / 10) - _digit1 * 10; + _digit3 = _number mod 10; + _digit4 = "\AGM_Vector\rsc\do.paa"; + + if (_isNegative) then { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + _digit1 = ""; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + } else { + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + }; + } else { + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + } else { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + _digit1 = ""; + _digit2 = ""; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + } else { + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + }; + } else { + _digit1 = format["\AGM_Vector\rsc\d%1.paa", _digit1]; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + }; + }; + _return = [_digit1, _digit2, _digit3, _digit4]; +}; + +_return diff --git a/TO_MERGE/agm/Vector/functions/fn_convertDistance.sqf b/TO_MERGE/agm/Vector/functions/fn_convertDistance.sqf new file mode 100644 index 0000000000..fb9b1618e6 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_convertDistance.sqf @@ -0,0 +1,84 @@ +/* +BWA3 script, by commy2 +this code is property of the ArmA 3 Bundeswehr modification +ask us nicely at http://www.bwmod.de/ if you want to re-use any of this script +we don't support changed code based on this work +*/ + +private["_number", "_isNegative", "_digit1", "_digit2", "_digit3", "_digit4"]; + +_number = _this; + +_number = round _number; +_isNegative = if (_number < 0) then {true} else {false}; +_number = abs _number; + +if (_number >= 10000) exitWith { + [ + "\AGM_Vector\rsc\d-.paa", + "\AGM_Vector\rsc\d-.paa", + "\AGM_Vector\rsc\d-.paa", + "\AGM_Vector\rsc\d-.paa" + ] +}; + +_digit1 = floor (_number / 1000); +_digit2 = floor (_number / 100) - _digit1 * 10; +_digit3 = floor (_number / 10) - _digit1 * 100 - _digit2 * 10; +_digit4 = _number mod 10; + +if (_isNegative) then { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit1 = ""; + _digit2 = ""; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + } else { + _digit1 = ""; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; +} else { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit1 = ""; + _digit2 = ""; + _digit3 = ""; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + } else { + _digit1 = ""; + _digit2 = ""; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit1 = format["\AGM_Vector\rsc\d%1.paa", _digit1]; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; +}; + +[_digit1, _digit2, _digit3, _digit4] diff --git a/TO_MERGE/agm/Vector/functions/fn_convertFOS.sqf b/TO_MERGE/agm/Vector/functions/fn_convertFOS.sqf new file mode 100644 index 0000000000..cb200f7580 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_convertFOS.sqf @@ -0,0 +1,225 @@ +/* +BWA3 script, by commy2 +this code is property of the ArmA 3 Bundeswehr modification +ask us nicely at http://www.bwmod.de/ if you want to re-use any of this script +we don't support changed code based on this work +*/ + +private["_number", "_coordinate", "_isNegative", "_digit0", "_digit1", "_digit2", "_digit3", "_digit4"]; + +_number = _this select 0; +_coordinate = _this select 1; + +_number = round _number; +_isNegative = if (_number < 0) then {true} else {false}; +_number = abs _number; + +if (_number >= 10000) exitWith { + [ + "", + "\AGM_Vector\rsc\d-.paa", + "\AGM_Vector\rsc\d-.paa", + "\AGM_Vector\rsc\d-.paa", + "\AGM_Vector\rsc\d-.paa" + ] +}; + +_digit0 = ""; +_digit1 = floor (_number / 1000); +_digit2 = floor (_number / 100) - _digit1 * 10; +_digit3 = floor (_number / 10) - _digit1 * 100 - _digit2 * 10; +_digit4 = _number mod 10; + +switch (_coordinate) do { + case 0 : { + if (_isNegative) then { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit0 = "\AGM_Vector\rsc\dd.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit3 = ""; + _digit4 = ""; + } else { + _digit0 = "\AGM_Vector\rsc\dd.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit4 = ""; + }; + } else { + _digit0 = "\AGM_Vector\rsc\dd.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = ""; + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + } else { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit0 = "\AGM_Vector\rsc\dA.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit3 = ""; + _digit4 = ""; + } else { + _digit0 = "\AGM_Vector\rsc\dA.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit4 = ""; + }; + } else { + _digit0 = "\AGM_Vector\rsc\dA.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = ""; + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + }; + }; + case 1 : { + if (_isNegative) then { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit0 = "\AGM_Vector\rsc\dL.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit3 = ""; + _digit4 = ""; + } else { + _digit0 = "\AGM_Vector\rsc\dL.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit4 = ""; + }; + } else { + _digit0 = "\AGM_Vector\rsc\dL.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = ""; + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + } else { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit0 = "\AGM_Vector\rsc\dr.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit3 = ""; + _digit4 = ""; + } else { + _digit0 = "\AGM_Vector\rsc\dr.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit4 = ""; + }; + } else { + _digit0 = "\AGM_Vector\rsc\dr.paa"; + _digit1 = ""; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = ""; + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + }; + }; + case 2 : { + if (_isNegative) then { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit0 = "\AGM_Vector\rsc\dU.paa"; + _digit1 = "\AGM_Vector\rsc\dP.paa"; + _digit2 = ""; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit4 = ""; + } else { + _digit0 = "\AGM_Vector\rsc\dU.paa"; + _digit1 = "\AGM_Vector\rsc\dP.paa"; + _digit2 = ""; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = "\AGM_Vector\rsc\dU.paa"; + _digit1 = "\AGM_Vector\rsc\dP.paa"; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = ""; + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + } else { + if (_digit1 == 0) then { + if (_digit2 == 0) then { + if (_digit3 == 0) then { + _digit0 = "\AGM_Vector\rsc\dd.paa"; + _digit1 = "\AGM_Vector\rsc\dn.paa"; + _digit2 = ""; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + _digit4 = ""; + } else { + _digit0 = "\AGM_Vector\rsc\dd.paa"; + _digit1 = "\AGM_Vector\rsc\dn.paa"; + _digit2 = ""; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = "\AGM_Vector\rsc\dd.paa"; + _digit1 = "\AGM_Vector\rsc\dn.paa"; + _digit2 = format["\AGM_Vector\rsc\d%1.paa", _digit2]; + _digit3 = format["\AGM_Vector\rsc\d%1.paa", _digit3]; + _digit4 = format["\AGM_Vector\rsc\d%1.paa", _digit4]; + }; + } else { + _digit0 = ""; + _digit1 = "\AGM_Vector\rsc\d-.paa"; + _digit2 = "\AGM_Vector\rsc\d-.paa"; + _digit3 = "\AGM_Vector\rsc\d-.paa"; + _digit4 = "\AGM_Vector\rsc\d-.paa"; + }; + }; + }; +}; + +[_digit0, _digit1, _digit2, _digit3, _digit4] diff --git a/TO_MERGE/agm/Vector/functions/fn_getDirection.sqf b/TO_MERGE/agm/Vector/functions/fn_getDirection.sqf new file mode 100644 index 0000000000..84a6516eae --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_getDirection.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private "_dlgVectorOptics"; + +disableSerialization; +_dlgVectorOptics = uiNamespace getVariable ['AGM_dlgVectorOptics', displayNull]; + +[ + round parseNumber ctrlText (_dlgVectorOptics displayCtrl 156), + round parseNumber ctrlText (_dlgVectorOptics displayCtrl 182) +] diff --git a/TO_MERGE/agm/Vector/functions/fn_getDistance.sqf b/TO_MERGE/agm/Vector/functions/fn_getDistance.sqf new file mode 100644 index 0000000000..70d0c78b03 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_getDistance.sqf @@ -0,0 +1,25 @@ +// by commy2 + +#define MIN_DISTANCE 10 +#define MAX_DISTANCE ([6000, 9000] select (AGM_vectorSettings select 3)) +#define INTERVAL 2 + +private ["_dlgVectorOptics", "_distance"]; + +disableSerialization; +_dlgVectorOptics = uiNamespace getVariable ['AGM_dlgVectorOptics', displayNull]; + +_distance = ctrlText (_dlgVectorOptics displayCtrl 151); + +if (_distance == "----") exitWith {-9999}; + +_distance = round parseNumber _distance; + +if (AGM_vectorSettings select 3) then { + _distance = 3.28084 * _distance; +}; + +if (_distance > MAX_DISTANCE) exitWith {-9999}; +if (_distance < MIN_DISTANCE) exitWith {-9999}; + +_distance diff --git a/TO_MERGE/agm/Vector/functions/fn_modeAzimuth.sqf b/TO_MERGE/agm/Vector/functions/fn_modeAzimuth.sqf new file mode 100644 index 0000000000..8afe487453 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeAzimuth.sqf @@ -0,0 +1,61 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_exit", "_time"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_time = -1; +_exit = false; +waitUntil { + if (time > _time + 0.5) then { + _direction = call AGM_Vector_fnc_getDirection; + _azimuth = _direction select 0; + + _digits = _azimuth call AGM_Vector_fnc_convertDegree; + _ctrlDigit5 ctrlSetText (_digits select 0); + _ctrlDigit6 ctrlSetText (_digits select 1); + _ctrlDigit7 ctrlSetText (_digits select 2); + _ctrlDigit8 ctrlSetText (_digits select 3); + + _time = time; + }; + if (AGM_vectorKey select 1) then {_exit = true}; + !(AGM_vectorKey select 0) || {_exit} +}; +if (_exit) exitWith { + waitUntil { + if (time > _time + 0.5) then { + _direction = call AGM_Vector_fnc_getDirection; + _azimuth = _direction select 0; + + _digits = _azimuth call AGM_Vector_fnc_convertDegree; + _ctrlDigit5 ctrlSetText (_digits select 0); + _ctrlDigit6 ctrlSetText (_digits select 1); + _ctrlDigit7 ctrlSetText (_digits select 2); + _ctrlDigit8 ctrlSetText (_digits select 3); + + _time = time; + }; + !(AGM_vectorKey select 1) + }; + _ctrlDigit5 ctrlSetText ""; + _ctrlDigit6 ctrlSetText ""; + _ctrlDigit7 ctrlSetText ""; + _ctrlDigit8 ctrlSetText ""; + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeRelativeAzimuthDistance; +}; +_ctrlVectorCenter ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeAzimuthInclination.sqf b/TO_MERGE/agm/Vector/functions/fn_modeAzimuthInclination.sqf new file mode 100644 index 0000000000..5b3e91baed --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeAzimuthInclination.sqf @@ -0,0 +1,83 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_exit", "_time", "_direction", "_azimuth", "_inclination", "_digits"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_time = -1; +_exit = false; +waitUntil { + if (time > _time + 0.5) then { + _direction = call AGM_Vector_fnc_getDirection; + _azimuth = _direction select 0; + _inclination = _direction select 1; + + _digits = _azimuth call AGM_Vector_fnc_convertDegree; + _ctrlDigit5 ctrlSetText (_digits select 0); + _ctrlDigit6 ctrlSetText (_digits select 1); + _ctrlDigit7 ctrlSetText (_digits select 2); + _ctrlDigit8 ctrlSetText (_digits select 3); + + if (_inclination > 45 || {_inclination < -45}) then {_inclination = -9999}; + + _digits = _inclination call AGM_Vector_fnc_convertDegree; + _ctrlDigit1 ctrlSetText (_digits select 0); + _ctrlDigit2 ctrlSetText (_digits select 1); + _ctrlDigit3 ctrlSetText (_digits select 2); + _ctrlDigit4 ctrlSetText (_digits select 3); + + _time = time; + }; + if (AGM_vectorKey select 1) then {_exit = true}; + !(AGM_vectorKey select 0) || {_exit} +}; +if (_exit) exitWith { + waitUntil { + if (time > _time + 0.5) then { + _direction = call AGM_Vector_fnc_getDirection; + _azimuth = _direction select 0; + _inclination = _direction select 1; + + _digits = _azimuth call AGM_Vector_fnc_convertDegree; + _ctrlDigit5 ctrlSetText (_digits select 0); + _ctrlDigit6 ctrlSetText (_digits select 1); + _ctrlDigit7 ctrlSetText (_digits select 2); + _ctrlDigit8 ctrlSetText (_digits select 3); + + if (_inclination > 45 || {_inclination < -45}) then {_inclination = -9999}; + + _digits = _inclination call AGM_Vector_fnc_convertDegree; + _ctrlDigit1 ctrlSetText (_digits select 0); + _ctrlDigit2 ctrlSetText (_digits select 1); + _ctrlDigit3 ctrlSetText (_digits select 2); + _ctrlDigit4 ctrlSetText (_digits select 3); + + _time = time; + }; + !(AGM_vectorKey select 1) + }; + _ctrlDigit1 ctrlSetText ""; + _ctrlDigit2 ctrlSetText ""; + _ctrlDigit3 ctrlSetText ""; + _ctrlDigit4 ctrlSetText ""; + _ctrlDigit5 ctrlSetText ""; + _ctrlDigit6 ctrlSetText ""; + _ctrlDigit7 ctrlSetText ""; + _ctrlDigit8 ctrlSetText ""; + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeFallOfShort; +}; +_ctrlVectorCenter ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeDistance.sqf b/TO_MERGE/agm/Vector/functions/fn_modeDistance.sqf new file mode 100644 index 0000000000..e6c00f09f4 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeDistance.sqf @@ -0,0 +1,39 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_exit", "_distance", "_digits"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_exit = false; +waitUntil { + if (AGM_vectorKey select 0) then {_exit = true}; + !(AGM_vectorKey select 1) || {_exit} +}; +if (_exit) exitWith { + waitUntil {!(AGM_vectorKey select 0)}; + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeRelativeDistance; +}; + +_distance = call AGM_Vector_fnc_getDistance; + +_digits = _distance call AGM_Vector_fnc_convertDistance; +_ctrlDigit1 ctrlSetText (_digits select 0); +_ctrlDigit2 ctrlSetText (_digits select 1); +_ctrlDigit3 ctrlSetText (_digits select 2); +_ctrlDigit4 ctrlSetText (_digits select 3); + +_ctrlVectorCenter ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeDistanceAzimuth.sqf b/TO_MERGE/agm/Vector/functions/fn_modeDistanceAzimuth.sqf new file mode 100644 index 0000000000..37b49d3bfd --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeDistanceAzimuth.sqf @@ -0,0 +1,46 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_time", "_direction", "_azimuth", "_exit", "_distance", "_digits"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_time = -1; +waitUntil { + if (time > _time + 0.5) then { + _direction = call AGM_Vector_fnc_getDirection; + _azimuth = _direction select 0; + + _digits = _azimuth call AGM_Vector_fnc_convertDegree; + _ctrlDigit5 ctrlSetText (_digits select 0); + _ctrlDigit6 ctrlSetText (_digits select 1); + _ctrlDigit7 ctrlSetText (_digits select 2); + _ctrlDigit8 ctrlSetText (_digits select 3); + + _time = time; + }; + !(AGM_vectorKey select 0) && {!(AGM_vectorKey select 1)} +}; + +_distance = call AGM_Vector_fnc_getDistance; + +_digits = _distance call AGM_Vector_fnc_convertDistance; +_ctrlDigit1 ctrlSetText (_digits select 0); +_ctrlDigit2 ctrlSetText (_digits select 1); +_ctrlDigit3 ctrlSetText (_digits select 2); +_ctrlDigit4 ctrlSetText (_digits select 3); + +_ctrlVectorCenter ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeDistanceHeight.sqf b/TO_MERGE/agm/Vector/functions/fn_modeDistanceHeight.sqf new file mode 100644 index 0000000000..324152ae11 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeDistanceHeight.sqf @@ -0,0 +1,55 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_direction", "_azimuth", "_exit", "_distance", "_digits", "_inclination", "_height", "_lenght"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_exit = false; +waitUntil { + if (AGM_vectorKey select 0) then {_exit = true}; + !(AGM_vectorKey select 1) || {_exit} +}; +if (_exit) exitWith { + waitUntil {!(AGM_vectorKey select 0)}; + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeRelativeDistanceHeight; +}; + +_distance = call AGM_Vector_fnc_getDistance; +_direction = call AGM_Vector_fnc_getDirection; +_azimuth = _direction select 0; +_inclination = _direction select 1; + +_height = sin _inclination * _distance; +_lenght = cos _inclination * _distance; +if (_distance == -9999) then { + _height = -9999; + _lenght = -9999; +}; + +_digits = _height call AGM_Vector_fnc_convertDistance; +_ctrlDigit1 ctrlSetText (_digits select 0); +_ctrlDigit2 ctrlSetText (_digits select 1); +_ctrlDigit3 ctrlSetText (_digits select 2); +_ctrlDigit4 ctrlSetText (_digits select 3); + +_digits = _lenght call AGM_Vector_fnc_convertDistance; +_ctrlDigit5 ctrlSetText (_digits select 0); +_ctrlDigit6 ctrlSetText (_digits select 1); +_ctrlDigit7 ctrlSetText (_digits select 2); +_ctrlDigit8 ctrlSetText (_digits select 3); + +_ctrlVectorCenter ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeFallOfShort.sqf b/TO_MERGE/agm/Vector/functions/fn_modeFallOfShort.sqf new file mode 100644 index 0000000000..463eefdf30 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeFallOfShort.sqf @@ -0,0 +1,103 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigit9", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_distanceP1", "_directionP1", "_azimuthP1", "_inclinationP1", "_directionP2", "_azimuthP2", "_abscissa", "_ordinate", "_applicate", "_distanceP2", "_digits", "_inclinationP2", "_height", "_lenght", "_digits0", "_digits1", "_digits2"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit0 = _dlgVector displayCtrl 10; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigit9 = _dlgVector displayCtrl 19; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_distanceP1 = call AGM_Vector_fnc_getDistance; +_directionP1 = call AGM_Vector_fnc_getDirection; +_azimuthP1 = _directionP1 select 0; +_inclinationP1 = _directionP1 select 1; + +_ctrlDigitE1 ctrlSetText "\AGM_Vector\rsc\d1.paa"; +_ctrlDigitE2 ctrlSetText "\AGM_Vector\rsc\d-.paa"; +_ctrlDigitE3 ctrlSetText "\AGM_Vector\rsc\dP.paa"; + +waitUntil {!(AGM_vectorKey select 0)}; + +_distanceP2 = call AGM_Vector_fnc_getDistance; +_directionP2 = call AGM_Vector_fnc_getDirection; +_azimuthP2 = _directionP2 select 0; +_inclinationP2 = _directionP2 select 1; + +_abscissa = _distanceP1 * sin (_azimuthP1 - _azimuthP2); +_ordinate = _distanceP1 * cos (_inclinationP1 - _inclinationP2) - _distanceP2 * cos (_azimuthP1 - _azimuthP2); +_applicate = (sin _inclinationP2 * _distanceP2) - (sin _inclinationP1 * _distanceP1); +if (_distanceP1 == -9999 || {_distanceP2 == -9999}) then { + _abscissa = -9999; + _ordinate = -9999; + _applicate = -9999; +}; + +_digits0 = [_ordinate, 0] call AGM_Vector_fnc_convertFOS; +_digits1 = [_abscissa, 1] call AGM_Vector_fnc_convertFOS; +_digits2 = [_applicate, 2] call AGM_Vector_fnc_convertFOS; + +_ctrlVectorCenter ctrlShow false; + +_ctrlDigitE1 ctrlShow false; +_ctrlDigitE2 ctrlShow false; +_ctrlDigitE3 ctrlShow false; + +waitUntil { + _ctrlDigit0 ctrlSetText (_digits0 select 0); + _ctrlDigit1 ctrlSetText (_digits0 select 1); + _ctrlDigit2 ctrlSetText (_digits0 select 2); + _ctrlDigit3 ctrlSetText (_digits0 select 3); + _ctrlDigit4 ctrlSetText (_digits0 select 4); + _ctrlDigit5 ctrlSetText (_digits1 select 0); + _ctrlDigit6 ctrlSetText (_digits1 select 1); + _ctrlDigit7 ctrlSetText (_digits1 select 2); + _ctrlDigit8 ctrlSetText (_digits1 select 3); + _ctrlDigit9 ctrlSetText (_digits1 select 4); + + waitUntil {!(AGM_vectorKey select 1) || {AGM_vectorKey select 0}}; + waitUntil {AGM_vectorKey select 1 || {AGM_vectorKey select 0}}; + + if !(AGM_vectorKey select 0) then { + _ctrlDigit0 ctrlSetText (_digits2 select 0); + _ctrlDigit1 ctrlSetText (_digits2 select 1); + _ctrlDigit2 ctrlSetText (_digits2 select 2); + _ctrlDigit3 ctrlSetText (_digits2 select 3); + _ctrlDigit4 ctrlSetText (_digits2 select 4); + _ctrlDigit5 ctrlSetText ""; + _ctrlDigit6 ctrlSetText ""; + _ctrlDigit7 ctrlSetText ""; + _ctrlDigit8 ctrlSetText ""; + _ctrlDigit9 ctrlSetText ""; + }; + + waitUntil {!(AGM_vectorKey select 1) || {AGM_vectorKey select 0}}; + waitUntil {AGM_vectorKey select 1 || {AGM_vectorKey select 0}}; + + AGM_vectorKey select 0 +}; +_ctrlDigit0 ctrlSetText ""; +_ctrlDigit1 ctrlSetText ""; +_ctrlDigit2 ctrlSetText ""; +_ctrlDigit3 ctrlSetText ""; +_ctrlDigit4 ctrlSetText ""; +_ctrlDigit5 ctrlSetText ""; +_ctrlDigit6 ctrlSetText ""; +_ctrlDigit7 ctrlSetText ""; +_ctrlDigit8 ctrlSetText ""; +_ctrlDigit9 ctrlSetText ""; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeRelativeAzimuthDistance.sqf b/TO_MERGE/agm/Vector/functions/fn_modeRelativeAzimuthDistance.sqf new file mode 100644 index 0000000000..9e9d12a543 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeRelativeAzimuthDistance.sqf @@ -0,0 +1,71 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_distanceP1", "_directionP1", "_azimuthP1", "_inclinationP1", "_directionP2", "_azimuthP2", "_distanceP2", "_inclinationP2", "_digits", "_relDirection", "_relDistance", "_relHeight", "_relLenght", "_digits0", "_digits1", "_digits2", "_lenghtP1", "_lenghtP2", "_relAzimuth"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_distanceP1 = call AGM_Vector_fnc_getDistance; +_directionP1 = call AGM_Vector_fnc_getDirection; +_azimuthP1 = _directionP1 select 0; +_inclinationP1 = _directionP1 select 1; + +_ctrlDigitE1 ctrlSetText "\AGM_Vector\rsc\d1.paa"; +_ctrlDigitE2 ctrlSetText "\AGM_Vector\rsc\d-.paa"; +_ctrlDigitE3 ctrlSetText "\AGM_Vector\rsc\dP.paa"; + +waitUntil {!(AGM_vectorKey select 0)}; + +_distanceP2 = call AGM_Vector_fnc_getDistance; +_directionP2 = call AGM_Vector_fnc_getDirection; +_azimuthP2 = _directionP2 select 0; +_inclinationP2 = _directionP2 select 1; + +_relDirection = sqrt ((_azimuthP1 - _azimuthP2)^2 + (_inclinationP1 - _inclinationP2)^2); +_relDistance = sqrt (_distanceP1^2 + _distanceP2^2 - 2 * _distanceP1 * _distanceP2 * cos _relDirection); +_relHeight = (sin _inclinationP1 * _distanceP1) - (sin _inclinationP2 * _distanceP2); +_relLenght = sqrt (_relDistance^2 - _relHeight^2); if (str(_relLenght) == "-1.#IND") then {_relLenght = 0}; + +_lenghtP1 = cos _inclinationP1 * _distanceP1; +_lenghtP2 = cos _inclinationP2 * _distanceP2; +_relAzimuth = (sin _azimuthP2 * _lenghtP2 - sin _azimuthP1 * _lenghtP1) atan2 (cos _azimuthP2 * _lenghtP2 - cos _azimuthP1 * _lenghtP1); +if (_relAzimuth < 0) then {_relAzimuth = _relAzimuth + 360}; + +if (_distanceP1 == -9999 || {_distanceP2 == -9999}) then { + _relDistance = -9999; + _relAzimuth = -9999; +}; + +_digits = _relLenght call AGM_Vector_fnc_convertDistance; +_ctrlDigit1 ctrlSetText (_digits select 0); +_ctrlDigit2 ctrlSetText (_digits select 1); +_ctrlDigit3 ctrlSetText (_digits select 2); +_ctrlDigit4 ctrlSetText (_digits select 3); + +_digits = _relAzimuth call AGM_Vector_fnc_convertDegree; +_ctrlDigit5 ctrlSetText (_digits select 0); +_ctrlDigit6 ctrlSetText (_digits select 1); +_ctrlDigit7 ctrlSetText (_digits select 2); +_ctrlDigit8 ctrlSetText (_digits select 3); + +_ctrlVectorCenter ctrlShow false; + +_ctrlDigitE1 ctrlShow false; +_ctrlDigitE2 ctrlShow false; +_ctrlDigitE3 ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeRelativeDistance.sqf b/TO_MERGE/agm/Vector/functions/fn_modeRelativeDistance.sqf new file mode 100644 index 0000000000..5e0901b4a1 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeRelativeDistance.sqf @@ -0,0 +1,57 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_distanceP1", "_directionP1", "_azimuthP1", "_inclinationP1", "_directionP2", "_azimuthP2", "_distanceP2", "_inclinationP2", "_relDirection", "_relDistance", "_distance", "_digits"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_distanceP1 = call AGM_Vector_fnc_getDistance; +_directionP1 = call AGM_Vector_fnc_getDirection; +_azimuthP1 = _directionP1 select 0; +_inclinationP1 = _directionP1 select 1; + +_ctrlDigitE1 ctrlSetText "\AGM_Vector\rsc\d1.paa"; +_ctrlDigitE2 ctrlSetText "\AGM_Vector\rsc\d-.paa"; +_ctrlDigitE3 ctrlSetText "\AGM_Vector\rsc\dP.paa"; + +waitUntil {!(AGM_vectorKey select 1)}; + +_distanceP2 = call AGM_Vector_fnc_getDistance; +_directionP2 = call AGM_Vector_fnc_getDirection; +_azimuthP2 = _directionP2 select 0; +_inclinationP2 = _directionP2 select 1; + +_relDirection = sqrt ((_azimuthP1 - _azimuthP2)^2 + (_inclinationP1 - _inclinationP2)^2); +_relDistance = sqrt (_distanceP1^2 + _distanceP2^2 - 2 * _distanceP1 * _distanceP2 * cos _relDirection); + +if (_distanceP1 == -9999 || {_distanceP2 == -9999}) then { + _relDistance = -9999; +}; + +_digits = _relDistance call AGM_Vector_fnc_convertDistance; +_ctrlDigit1 ctrlSetText (_digits select 0); +_ctrlDigit2 ctrlSetText (_digits select 1); +_ctrlDigit3 ctrlSetText (_digits select 2); +_ctrlDigit4 ctrlSetText (_digits select 3); + +_ctrlVectorCenter ctrlShow false; + +_ctrlDigitE1 ctrlShow false; +_ctrlDigitE2 ctrlShow false; +_ctrlDigitE3 ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_modeRelativeDistanceHeight.sqf b/TO_MERGE/agm/Vector/functions/fn_modeRelativeDistanceHeight.sqf new file mode 100644 index 0000000000..bfebb9de57 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_modeRelativeDistanceHeight.sqf @@ -0,0 +1,67 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_distanceP1", "_directionP1", "_azimuthP1", "_inclinationP1", "_directionP2", "_azimuthP2", "_distanceP2", "_inclinationP2", "_azimuth", "_inclination", "_height", "_lenght", "_relDirection", "_relDistance", "_distance", "_digits"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; + +_ctrlVectorCenter ctrlSetText "\AGM_Vector\rsc\Vector_Center.paa"; + +_distanceP1 = call AGM_Vector_fnc_getDistance; +_directionP1 = call AGM_Vector_fnc_getDirection; +_azimuthP1 = _directionP1 select 0; +_inclinationP1 = _directionP1 select 1; + +_ctrlDigitE1 ctrlSetText "\AGM_Vector\rsc\d1.paa"; +_ctrlDigitE2 ctrlSetText "\AGM_Vector\rsc\d-.paa"; +_ctrlDigitE3 ctrlSetText "\AGM_Vector\rsc\dP.paa"; + +waitUntil {!(AGM_vectorKey select 1)}; + +_distanceP2 = call AGM_Vector_fnc_getDistance; +_directionP2 = call AGM_Vector_fnc_getDirection; +_azimuthP2 = _directionP2 select 0; +_inclinationP2 = _directionP2 select 1; + +_azimuth = abs (_azimuthP1 - _azimuthP2); +_inclination = abs (_inclinationP1 - _inclinationP2); +_height = sqrt (_distanceP1^2 + _distanceP2^2 - 2 * _distanceP1 * _distanceP2 * cos _inclination); +_lenght = sqrt (_distanceP1^2 + _distanceP2^2 - 2 * _distanceP1 * _distanceP2 * cos _azimuth); +if (_inclination < 0) then {_height = -1 * _height}; + +if (_distanceP1 == -9999 || {_distanceP2 == -9999}) then { + _height = -9999; + _lenght = -9999; +}; + +_digits = _height call AGM_Vector_fnc_convertDistance; +_ctrlDigit1 ctrlSetText (_digits select 0); +_ctrlDigit2 ctrlSetText (_digits select 1); +_ctrlDigit3 ctrlSetText (_digits select 2); +_ctrlDigit4 ctrlSetText (_digits select 3); + +_digits = _lenght call AGM_Vector_fnc_convertDistance; +_ctrlDigit5 ctrlSetText (_digits select 0); +_ctrlDigit6 ctrlSetText (_digits select 1); +_ctrlDigit7 ctrlSetText (_digits select 2); +_ctrlDigit8 ctrlSetText (_digits select 3); + +_ctrlVectorCenter ctrlShow false; + +_ctrlDigitE1 ctrlShow false; +_ctrlDigitE2 ctrlShow false; +_ctrlDigitE3 ctrlShow false; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_settings.sqf b/TO_MERGE/agm/Vector/functions/fn_settings.sqf new file mode 100644 index 0000000000..3db14168b3 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_settings.sqf @@ -0,0 +1,185 @@ +// by commy2 + +private["_dlgVector", "_ctrlVectorCenter", "_ctrlVectorCrosshair", "_ctrlDigit0", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigit9", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_ctrlDigitE4", "_isFeet", "_isMil", "_time", "_theCount"]; + +disableSerialization; +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlDigit0 = _dlgVector displayCtrl 10; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigit9 = _dlgVector displayCtrl 19; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; +_ctrlDigitE4 = _dlgVector displayCtrl 24; + +_ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\dU.paa"; +_ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\dn.paa"; +_ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\di.paa"; +_ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dt.paa"; +_ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\d5.paa"; +_ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dE.paa"; +_ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dt.paa"; +_ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + +sleep 2; + +{_x ctrlSetText ""} forEach [ + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3 +]; + +_isMil = AGM_vectorSettings select 2; +_isFeet = AGM_vectorSettings select 3; + +if (_isMil) then { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\d6.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\d4.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\d0.paa"; +} else { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\d3.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\d6.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\do.paa"; +}; +if (_isFeet) then { + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dt.paa"; +} else { + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\d5.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\d1.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\d-.paa"; + _ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dU.paa"; +}; + +waitUntil { + if (AGM_vectorKey select 1) then { + waitUntil { + !(AGM_vectorKey select 1) || AGM_vectorKey select 0 + }; + if !(AGM_vectorKey select 0) then { + if (_isMil) then { + if (_isFeet) then { + _isMil = false; + _isFeet = true; + } else { + _isMil = true; + _isFeet = true; + }; + } else { + if (_isFeet) then { + _isMil = false; + _isFeet = false; + } else { + _isMil = true; + _isFeet = false; + }; + }; + }; + if (_isMil) then { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\d6.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\d4.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + } else { + _ctrlDigit6 ctrlSetText "\AGM_Vector\rsc\d3.paa"; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\d6.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\do.paa"; + }; + if (_isFeet) then { + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dF.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\dE.paa"; + _ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + } else { + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\d5.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\d1.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\d-.paa"; + _ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dU.paa"; + }; + }; + AGM_vectorKey select 0 +}; + +_time = time; +waitUntil { + if (AGM_vectorKey select 1) then {_time = -1}; + !(AGM_vectorKey select 0) || time > _time + 1 +}; + +_theCount = 1; +waitUntil { + if (AGM_vectorKey select 0) then { + _theCount = _theCount + 1; + _time = time; + waitUntil {!(AGM_vectorKey select 0) || time > _time + 1}; + }; + if (AGM_vectorKey select 1) then {_time = -1}; + time > _time + 1 || {_theCount >= 5} +}; + +if (_theCount >= 5) then { + _ctrlDigitE1 ctrlSetText "\AGM_Vector\rsc\d5.paa"; + _ctrlDigitE2 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + _ctrlDigitE3 ctrlSetText "\AGM_Vector\rsc\dq.paa"; + _ctrlDigitE4 ctrlSetText "\AGM_Vector\rsc\dr.paa"; + + AGM_vectorSettings set [2, _isMil]; + AGM_vectorSettings set [3, _isFeet]; + + sleep 2; + + {_x ctrlSetText ""} forEach [ + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3, + _ctrlDigitE1, + _ctrlDigitE2, + _ctrlDigitE3, + _ctrlDigitE4 + ]; +} else { + _ctrlDigit6 ctrlSetText ""; + _ctrlDigit7 ctrlSetText "\AGM_Vector\rsc\d0.paa"; + _ctrlDigit8 ctrlSetText "\AGM_Vector\rsc\d1.paa"; + _ctrlDigit9 ctrlSetText "\AGM_Vector\rsc\dd.paa"; + _ctrlDigit0 ctrlSetText "\AGM_Vector\rsc\dU.paa"; + _ctrlDigit1 ctrlSetText "\AGM_Vector\rsc\dn.paa"; + _ctrlDigit2 ctrlSetText "\AGM_Vector\rsc\di.paa"; + _ctrlDigit3 ctrlSetText "\AGM_Vector\rsc\dt.paa"; + + sleep 2; + + {_x ctrlSetText ""} forEach [ + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3 + ]; +}; + +AGM_isVectorReady = true; diff --git a/TO_MERGE/agm/Vector/functions/fn_tabAzimuthKey.sqf b/TO_MERGE/agm/Vector/functions/fn_tabAzimuthKey.sqf new file mode 100644 index 0000000000..0a53443c14 --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_tabAzimuthKey.sqf @@ -0,0 +1,111 @@ +// by commy2 + +#define DELAY 0.3 + +private["_rscLayer", "_dlgVector", "_ctrlVectorCenter", "_ctrlVectorCrosshair", "_ctrlDigit0", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigit9", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_ctrlDigitE4", "_allControls", "_hold", "_time", "_theCount"]; + +disableSerialization; +_rscLayer = ["AGM_Vector"] call BIS_fnc_rscLayer; +_rscLayer cutRsc ["AGM_Vector", "PLAIN", 0, false]; + +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlVectorCrosshair = _dlgVector displayCtrl 2; +_ctrlDigit0 = _dlgVector displayCtrl 10; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigit9 = _dlgVector displayCtrl 19; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; +_ctrlDigitE4 = _dlgVector displayCtrl 24; + +_allControls = [ + _ctrlVectorCenter, + _ctrlVectorCrosshair, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3, + _ctrlDigit4, + _ctrlDigit5, + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigitE1, + _ctrlDigitE2, + _ctrlDigitE3, + _ctrlDigitE4 +]; + + +if (AGM_vectorSettings select 0) then { + _ctrlVectorCrosshair ctrlShow true; + _ctrlVectorCrosshair ctrlSetText "\AGM_Vector\rsc\Vector_Crosshair.paa"; +}; + +if (AGM_vectorSettings select 1) then { + {_x ctrlSetTextColor [1, 0, 0, 1]} forEach _allControls; +}; + +_hold = true; +_time = time; + +waitUntil { + if !(AGM_vectorKey select 0) then { + _hold = false; + }; + time > _time + DELAY || {!_hold} +}; + +if (_hold) then { + if (AGM_vectorKey select 1) then { + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeDistanceAzimuth; + } else { + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeAzimuth; + }; +} else { + waitUntil {time > _time + DELAY}; + if (AGM_vectorKey select 0) then { + if (AGM_vectorKey select 1) then { + //L tab + (L + R) hold + waitUntil {!(AGM_vectorKey select 0)}; + AGM_isVectorReady = true; + } else { + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeAzimuthInclination; + }; + } else { + if (AGM_vectorKey select 1) then { + //L tab + R hold + waitUntil {!(AGM_vectorKey select 0)}; + AGM_isVectorReady = true; + } else { + //L tab + waitUntil {!(AGM_vectorKey select 0)}; + + _theCount = AGM_vectorConfig select 0; + _time = AGM_vectorConfig select 1; + + if (time < _time + 1 && {_theCount <= 0}) then { + _theCount = _theCount - 1; + if (_theCount <= -5) then { + AGM_vectorConfig = [0, time]; + 0 spawn AGM_Vector_settings; + } else { + AGM_vectorConfig = [_theCount, time]; + AGM_isVectorReady = true; + }; + } else { + AGM_vectorConfig = [-1, time]; + AGM_isVectorReady = true; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Vector/functions/fn_tabDistanceKey.sqf b/TO_MERGE/agm/Vector/functions/fn_tabDistanceKey.sqf new file mode 100644 index 0000000000..fc790eb85e --- /dev/null +++ b/TO_MERGE/agm/Vector/functions/fn_tabDistanceKey.sqf @@ -0,0 +1,111 @@ +// by commy2 + +#define DELAY 0.3 + +private["_rscLayer", "_dlgVector", "_ctrlVectorCenter", "_ctrlVectorCrosshair", "_ctrlDigit0", "_ctrlDigit1", "_ctrlDigit2", "_ctrlDigit3", "_ctrlDigit4", "_ctrlDigit5", "_ctrlDigit6", "_ctrlDigit7", "_ctrlDigit8", "_ctrlDigit9", "_ctrlDigitE1", "_ctrlDigitE2", "_ctrlDigitE3", "_ctrlDigitE4", "_allControls", "_hold", "_time", "_theCount"]; + +disableSerialization; +_rscLayer = ["AGM_Vector"] call BIS_fnc_rscLayer; +_rscLayer cutRsc ["AGM_Vector", "PLAIN", 0, false]; + +_dlgVector = uiNamespace getVariable "AGM_dlgVector"; +_ctrlVectorCenter = _dlgVector displayCtrl 1; +_ctrlVectorCrosshair = _dlgVector displayCtrl 2; +_ctrlDigit0 = _dlgVector displayCtrl 10; +_ctrlDigit1 = _dlgVector displayCtrl 11; +_ctrlDigit2 = _dlgVector displayCtrl 12; +_ctrlDigit3 = _dlgVector displayCtrl 13; +_ctrlDigit4 = _dlgVector displayCtrl 14; +_ctrlDigit5 = _dlgVector displayCtrl 15; +_ctrlDigit6 = _dlgVector displayCtrl 16; +_ctrlDigit7 = _dlgVector displayCtrl 17; +_ctrlDigit8 = _dlgVector displayCtrl 18; +_ctrlDigit9 = _dlgVector displayCtrl 19; +_ctrlDigitE1 = _dlgVector displayCtrl 21; +_ctrlDigitE2 = _dlgVector displayCtrl 22; +_ctrlDigitE3 = _dlgVector displayCtrl 23; +_ctrlDigitE4 = _dlgVector displayCtrl 24; + +_allControls = [ + _ctrlVectorCenter, + _ctrlVectorCrosshair, + _ctrlDigit0, + _ctrlDigit1, + _ctrlDigit2, + _ctrlDigit3, + _ctrlDigit4, + _ctrlDigit5, + _ctrlDigit6, + _ctrlDigit7, + _ctrlDigit8, + _ctrlDigit9, + _ctrlDigitE1, + _ctrlDigitE2, + _ctrlDigitE3, + _ctrlDigitE4 +]; + + +if (AGM_vectorSettings select 0) then { + _ctrlVectorCrosshair ctrlShow true; + _ctrlVectorCrosshair ctrlSetText "\AGM_Vector\rsc\Vector_Crosshair.paa"; +}; + +if (AGM_vectorSettings select 1) then { + {_x ctrlSetTextColor [1, 0, 0, 1]} forEach _allControls; +}; + +_hold = true; +_time = time; + +waitUntil { + if !(AGM_vectorKey select 1) then { + _hold = false; + }; + time > _time + DELAY || {!_hold} +}; + +if (_hold) then { + if (AGM_vectorKey select 0) then { + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeDistanceAzimuth; + } else { + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeDistance; + }; +} else { + waitUntil {time > _time + DELAY}; + if (AGM_vectorKey select 1) then { + if (AGM_vectorKey select 0) then { + //R tab + (L + R) hold + waitUntil {!(AGM_vectorKey select 1)}; + AGM_isVectorReady = true; + } else { + AGM_Vector_scriptHandle = 0 spawn AGM_Vector_fnc_modeDistanceHeight; + }; + } else { + if (AGM_vectorKey select 0) then { + //R tab + L hold + waitUntil {!(AGM_vectorKey select 1)}; + AGM_isVectorReady = true; + } else { + //R tab + waitUntil {!(AGM_vectorKey select 1)}; + + _theCount = AGM_vectorConfig select 0; + _time = AGM_vectorConfig select 1; + + if (time < _time + 1 && {_theCount >= 0}) then { + _theCount = _theCount + 1; + if (_theCount >= 5) then { + AGM_vectorConfig = [0, time]; + 0 spawn AGM_Vector_config; + } else { + AGM_vectorConfig = [_theCount, time]; + AGM_isVectorReady = true; + }; + } else { + AGM_vectorConfig = [1, time]; + AGM_isVectorReady = true; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/Vector/rsc/Vector_Center.paa b/TO_MERGE/agm/Vector/rsc/Vector_Center.paa new file mode 100644 index 0000000000..33e337ec59 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/Vector_Center.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/Vector_Crosshair.paa b/TO_MERGE/agm/Vector/rsc/Vector_Crosshair.paa new file mode 100644 index 0000000000..cce3aa8f4a Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/Vector_Crosshair.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d+.paa b/TO_MERGE/agm/Vector/rsc/d+.paa new file mode 100644 index 0000000000..216e1c1196 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d+.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d-.paa b/TO_MERGE/agm/Vector/rsc/d-.paa new file mode 100644 index 0000000000..4b3b8a6913 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d-.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d0.paa b/TO_MERGE/agm/Vector/rsc/d0.paa new file mode 100644 index 0000000000..6a2d1165fa Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d0.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d1.paa b/TO_MERGE/agm/Vector/rsc/d1.paa new file mode 100644 index 0000000000..094c5245d1 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d1.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d2.paa b/TO_MERGE/agm/Vector/rsc/d2.paa new file mode 100644 index 0000000000..f36e66135b Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d2.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d3.paa b/TO_MERGE/agm/Vector/rsc/d3.paa new file mode 100644 index 0000000000..bc82512d92 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d3.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d4.paa b/TO_MERGE/agm/Vector/rsc/d4.paa new file mode 100644 index 0000000000..4f322522ba Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d4.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d5.paa b/TO_MERGE/agm/Vector/rsc/d5.paa new file mode 100644 index 0000000000..f4ae7004e7 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d5.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d6.paa b/TO_MERGE/agm/Vector/rsc/d6.paa new file mode 100644 index 0000000000..e3125d4b1c Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d6.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d7.paa b/TO_MERGE/agm/Vector/rsc/d7.paa new file mode 100644 index 0000000000..2666ca75a1 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d7.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d8.paa b/TO_MERGE/agm/Vector/rsc/d8.paa new file mode 100644 index 0000000000..9d528b445c Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d8.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/d9.paa b/TO_MERGE/agm/Vector/rsc/d9.paa new file mode 100644 index 0000000000..15305d416e Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/d9.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dA.paa b/TO_MERGE/agm/Vector/rsc/dA.paa new file mode 100644 index 0000000000..31f19b2264 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dA.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dC.paa b/TO_MERGE/agm/Vector/rsc/dC.paa new file mode 100644 index 0000000000..eacd0b71f8 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dC.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dE.paa b/TO_MERGE/agm/Vector/rsc/dE.paa new file mode 100644 index 0000000000..0714184cfa Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dE.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dF.paa b/TO_MERGE/agm/Vector/rsc/dF.paa new file mode 100644 index 0000000000..cc6d0f0b26 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dF.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dG.paa b/TO_MERGE/agm/Vector/rsc/dG.paa new file mode 100644 index 0000000000..1a8f0ce7a7 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dG.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dL.paa b/TO_MERGE/agm/Vector/rsc/dL.paa new file mode 100644 index 0000000000..2f5f5d8b39 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dL.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dU.paa b/TO_MERGE/agm/Vector/rsc/dU.paa new file mode 100644 index 0000000000..fa1988d347 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dU.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/db.paa b/TO_MERGE/agm/Vector/rsc/db.paa new file mode 100644 index 0000000000..e1f68b83db Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/db.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dd.paa b/TO_MERGE/agm/Vector/rsc/dd.paa new file mode 100644 index 0000000000..eac746a189 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dd.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/debug_crosshair.paa b/TO_MERGE/agm/Vector/rsc/debug_crosshair.paa new file mode 100644 index 0000000000..cce3aa8f4a Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/debug_crosshair.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/di.paa b/TO_MERGE/agm/Vector/rsc/di.paa new file mode 100644 index 0000000000..20f10580e5 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/di.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dn.paa b/TO_MERGE/agm/Vector/rsc/dn.paa new file mode 100644 index 0000000000..dcb187c6eb Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dn.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/do.paa b/TO_MERGE/agm/Vector/rsc/do.paa new file mode 100644 index 0000000000..b4d81b79e8 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/do.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/doo.paa b/TO_MERGE/agm/Vector/rsc/doo.paa new file mode 100644 index 0000000000..80a2242612 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/doo.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dp.paa b/TO_MERGE/agm/Vector/rsc/dp.paa new file mode 100644 index 0000000000..13d564a0e9 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dp.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dq.paa b/TO_MERGE/agm/Vector/rsc/dq.paa new file mode 100644 index 0000000000..723c1df0da Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dq.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dr.paa b/TO_MERGE/agm/Vector/rsc/dr.paa new file mode 100644 index 0000000000..2dd4e76b65 Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dr.paa differ diff --git a/TO_MERGE/agm/Vector/rsc/dt.paa b/TO_MERGE/agm/Vector/rsc/dt.paa new file mode 100644 index 0000000000..512ce5e2ba Binary files /dev/null and b/TO_MERGE/agm/Vector/rsc/dt.paa differ diff --git a/TO_MERGE/agm/Vector/stringtable.xml b/TO_MERGE/agm/Vector/stringtable.xml new file mode 100644 index 0000000000..a10b6ccc94 --- /dev/null +++ b/TO_MERGE/agm/Vector/stringtable.xml @@ -0,0 +1,54 @@ + + + + + + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + Vector IV + + + Rangefinder + Laserentfernungsmesser + Telémetro + Télémètre + Dalmierz + Dálkoměr + Telemetro + Távolságmérő + Telêmetro + Дальномер + + + Vector - Azimuth Key + Vector - Azimuth-Taste + Vector - Tecla de acimut + Vector - Touche Azimuth + Vector - Azymut + Vector - Zobrazit Azimut + Vector - Tasto Azimuth + Vector - Tecla de Azimute + Vector - Irányszög gomb + Vector – Азимут + + + Vector - Distance Key + Vector - Entfernungs-Taste + Vector - Tecla de distancia + Vector - Touche Distance + Vector - Odległość + Vector - Zobrazit vzdálenost + Vecto - Tasto Distanza + Vector - Tecla de Distância + Vector - Távolság gomb + Vector – Расстояние + + + \ No newline at end of file diff --git a/TO_MERGE/agm/VehicleLock/$PBOPREFIX$ b/TO_MERGE/agm/VehicleLock/$PBOPREFIX$ new file mode 100644 index 0000000000..c5c7ac3b55 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/$PBOPREFIX$ @@ -0,0 +1 @@ +AGM_VehicleLock \ No newline at end of file diff --git a/TO_MERGE/agm/VehicleLock/.DONTPACK b/TO_MERGE/agm/VehicleLock/.DONTPACK new file mode 100644 index 0000000000..e69de29bb2 diff --git a/TO_MERGE/agm/VehicleLock/config.cpp b/TO_MERGE/agm/VehicleLock/config.cpp new file mode 100644 index 0000000000..95306a15e1 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/config.cpp @@ -0,0 +1,215 @@ +class CfgPatches { + class AGM_VehicleLock { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.6; + requiredAddons[] = {"AGM_Core", "AGM_Interaction"}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"PabstMirror"}; + authorUrl = "https://github.com/PabstMirror/"; + }; +}; + +class AGM_Parameters_Numeric { + AGM_VehicleLock_DefaultLockpickStrength = 10; +}; + +class CfgFunctions { + class AGM_VehicleLock { + class AGM_VehicleLock { + file = "AGM_vehicleLock\functions"; + class addKeyForVehicle; + class getVehicleSideKey; + class hasKeyForVehicle; + class lockpick; + class moduleInit; + class moduleSync; + class serverSetupCustomKey; + class setVehicleLock; + }; + }; +}; + +class CfgMagazines { + class CA_Magazine; + class AGM_magazine_customKey: CA_Magazine { + picture = "\AGM_vehicleLock\ui\keyBlack.paa"; + displayName = "AGM Vehicle Key"; //!!!CANNONT be localized!!!, because it is used as part of the magazineDetail string + descriptionShort = "$STR_AGM_Vehicle_Item_Custom_Description"; + }; +}; + +class CfgWeapons { + class InventoryItem_Base_F; + class AGM_ItemCore; + + class AGM_item_key_master: AGM_ItemCore { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "Vehicle Key: Master"; + descriptionShort = "$STR_AGM_Vehicle_Item_Master_Description"; + model = "\A3\weapons_F\ammo\mag_univ.p3d"; + picture = "\AGM_vehicleLock\ui\keyBlack.paa"; + scope = 2; + class ItemInfo: InventoryItem_Base_F { + mass = 0.1; + }; + }; + class AGM_item_key_lockpick: AGM_item_key_master { + displayName = "Lockpick"; + descriptionShort = "$STR_AGM_Vehicle_Item_Lockpick_Description"; + picture = "\AGM_vehicleLock\ui\lockpick.paa"; + }; + class AGM_item_key_west: AGM_item_key_master { + displayName = "Vehicle Key: West"; + descriptionShort = "$STR_AGM_Vehicle_Item_West_Description"; + picture = "\AGM_vehicleLock\ui\keyBlue.paa"; + }; + class AGM_item_key_east: AGM_item_key_master { + displayName = "Vehicle Key: East"; + descriptionShort = "$STR_AGM_Vehicle_Item_East_Description"; + picture = "\AGM_vehicleLock\ui\keyRed.paa"; + }; + class AGM_item_key_indp: AGM_item_key_master { + displayName = "Vehicle Key: Independent"; + descriptionShort = "$STR_AGM_Vehicle_Item_Indp_Description"; + picture = "\AGM_vehicleLock\ui\keyPurple.paa"; + }; + class AGM_item_key_civ: AGM_item_key_master { + displayName = "Vehicle Key: Civilian"; + descriptionShort = "$STR_AGM_Vehicle_Item_Civ_Description"; + picture = "\AGM_vehicleLock\ui\keyGreen.paa"; + }; +}; + +#define MACRO_LOCK_ACTIONS \ + class AGM_unlockVehicle { \ + displayName = "$STR_AGM_Vehicle_Action_UnLock"; \ + distance = 4; \ + condition = "([_player, AGM_Interaction_Target] call AGM_VehicleLock_fnc_hasKeyForVehicle) && {(locked AGM_Interaction_Target) in [2, 3]}"; \ + statement = "[AGM_Interaction_Target, false] call AGM_VehicleLock_fnc_setVehicleLock"; \ + showDisabled = 1; \ + priority = 0.3; \ + icon = "\AGM_vehicleLock\ui\key_menuIcon_ca.paa"; \ + }; \ + class AGM_lockVehicle { \ + displayName = "$STR_AGM_Vehicle_Action_Lock"; \ + distance = 4; \ + condition = "([_player, AGM_Interaction_Target] call AGM_VehicleLock_fnc_hasKeyForVehicle) && {(locked AGM_Interaction_Target) in [0, 1]}"; \ + statement = "[AGM_Interaction_Target, true] call AGM_VehicleLock_fnc_setVehicleLock"; \ + showDisabled = 1; \ + priority = 0.2; \ + icon = "\AGM_vehicleLock\ui\key_menuIcon_ca.paa"; \ + }; \ + class AGM_lockpickVehicle { \ + displayName = "$STR_AGM_Vehicle_Action_Lockpick"; \ + distance = 4; \ + condition = "[_player, AGM_Interaction_Target, 'canLockpick'] call AGM_VehicleLock_fnc_lockpick"; \ + statement = "[_player, AGM_Interaction_Target, 'startLockpick'] call AGM_VehicleLock_fnc_lockpick"; \ + showDisabled = 0; \ + priority = 0.1; \ + }; + +class CfgVehicles { + class Logic; + class Module_F: Logic { + class ArgumentsBaseUnits {}; + class ModuleDescription {}; + }; + class AGM_VehicleLock_ModuleSetup: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Vehicle Lock Setup"; + function = "AGM_VehicleLock_fnc_moduleInit"; + scope = 2; + isGlobal = 1; + icon = "\AGM_VehicleLock\ui\IconLock_ca.paa"; + functionPriority = 0; + class Arguments { + class SideKeysAssignment { + displayName = "Players Start Side Keys"; // Argument label + description = "Which players start wtih side keys (e.g.: agm_item_key_west)"; // Tooltip description + typeName = "NUMBER"; // Value type, can be "NUMBER", "STRING" or "BOOL" + class values { + class Nobody { + name = "Nobody"; + value = 0; + default = 1; + }; + class GroupLeads { + name = "Group Leads"; + value = 1; + }; + class Everyone { + name = "Everyone"; + value = 2; + }; + }; + }; + class SetLockState { + displayName = "Set Lock State"; // Argument label + description = "Set lock state for all vehicles on map"; // Tooltip description + typeName = "NUMBER"; // Value type, can be "NUMBER", "STRING" or "BOOL" + class values { + class None { + name = "As Is"; + value = 0; + default = 1; + }; + class Side { + name = "Locked"; + value = 1; + }; + class Unique { + name = "Unlocked"; + value = 2; + }; + }; + }; + class LockpickStrength { + displayName = "Global Lockpick Strength"; + description = "Global Time to lockpick (in seconds). Default: 10"; + typeName = "NUMBER"; // Value type, can be "NUMBER", "STRING" or "BOOL" + defaultValue = "10"; // Default text filled in the input box + }; + }; + class ModuleDescription: ModuleDescription { + description = "Settings for lockpick strength, auto assigment of keys at start and initial vehicle lock state."; + }; + }; + + class AGM_VehicleLock_ModuleSyncedAssign: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Vehicle Key Assign"; + function = "AGM_VehicleLock_fnc_moduleSync"; + scope = 2; + isGlobal = 1; + icon = "\AGM_VehicleLock\ui\IconLock_ca.paa"; + functionPriority = 0; + class Arguments {}; + class ModuleDescription: ModuleDescription { + description = "Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. Only valid for objects present at mission start."; + sync[] = {"AnyPlayer", "AnyVehicle"}; + }; + }; + + class LandVehicle; + class Car: LandVehicle { + class AGM_Actions { + MACRO_LOCK_ACTIONS + }; + }; + class Tank: LandVehicle { + class AGM_Actions { + MACRO_LOCK_ACTIONS + }; + }; + class Air; + class Helicopter: Air { + class AGM_Actions { + MACRO_LOCK_ACTIONS + }; + }; +}; diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_addKeyForVehicle.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_addKeyForVehicle.sqf new file mode 100644 index 0000000000..9841c9c6c1 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_addKeyForVehicle.sqf @@ -0,0 +1,48 @@ +/* + Name: AGM_VehicleLock_fnc_addKeyForVehicle + + Author: Pabst Mirror + + Description: + Adds a key to a unit that will open a vehicle + + Parameters: + 0: OBJECT - unit + 1: OBJECT - vehicle + 2: BOOL - custom key (true: custom key - false: side key) + + Returns: + Nothing + + Example: + [bob, car1, true] call AGM_VehicleLock_fnc_addKeyForVehicle; +*/ + +#define CUSTOM_KEY_CLASSNAME "AGM_magazine_customKey" + +private ["_unit","_veh","_useCustom","_previousMags","_newMags","_keyMagazine","_keyName"]; + +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_veh = [_this, 1, objNull, [objNull]] call bis_fnc_param; +_useCustom = [_this, 2, false, [false]] call bis_fnc_param; + +if (isNull _unit) exitWith { + ["addKeyForVehicleClient: null unit"] call BIS_fnc_error; +}; +if (isNull _veh) exitWith { + ["addKeyForVehicleClient: null vehicle"] call BIS_fnc_error; +}; + +if (_useCustom) then { + _previousMags = magazinesDetail _unit; + _unit addMagazine CUSTOM_KEY_CLASSNAME; + _newMags = (magazinesDetail _unit) - _previousMags; + if ((count _newMags) < 1) exitWith { + ["AGM_VehicleLock_fnc_addKeyForVehicle: failed to add magazine (inventory full?)"] call BIS_fnc_error; + }; + _keyMagazine = _newMags select 0; + [[_veh, _keyMagazine], "AGM_VehicleLock_fnc_serverSetupCustomKey", 1] call AGM_Core_fnc_execRemoteFnc; +} else { + _keyName = [_veh] call AGM_VehicleLock_fnc_getVehicleSideKey; + _unit addItem _keyName; +}; diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_getVehicleSideKey.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_getVehicleSideKey.sqf new file mode 100644 index 0000000000..948ff5eb11 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_getVehicleSideKey.sqf @@ -0,0 +1,36 @@ +/* + Name: AGM_VehicleLock_fnc_getVehicleSideKey + + Author: Pabst Mirror + + Description: + Returns the side specifc key for a vehicle + + Parameters: + 0: OBJECT - vehicle + + Returns: + STRING - Key Classname + + Example: + [tank1] call AGM_VehicleLock_fnc_getVehicleSideKey; +*/ + +private ["_veh","_vehConfigSide","_vehSide","_returnValue"]; + +_veh = [_this, 0, objNull, [objNull]] call bis_fnc_param; +if (isNull _veh) exitWith {["AGM_VehicleLock_fnc_getVehicleSideKey: null vehicle"] call BIS_fnc_error; ""}; + +_vehConfigSide = [_veh, true] call bis_fnc_objectSide; +_vehSide = _veh getVariable ["agm_lock_side", _vehConfigSide]; + +_returnValue = ""; + +switch (_vehSide) do { +case (west): {_returnValue = "AGM_item_key_west"}; +case (east): {_returnValue = "AGM_item_key_east"}; +case (resistance): {_returnValue = "AGM_item_key_indp"}; +case (civilian): {_returnValue = "AGM_item_key_civ"}; +}; + +_returnValue diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_hasKeyForVehicle.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_hasKeyForVehicle.sqf new file mode 100644 index 0000000000..894b9fc636 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_hasKeyForVehicle.sqf @@ -0,0 +1,43 @@ +/* + Name: AGM_VehicleLock_fnc_hasKeyForVehicle + + Author: Pabst Mirror + + Description: + Returns if user has a valid key for the vehicle + + Parameters: + 0: OBJECT - unit + 1: OBJECT - vehicle + + Returns: + BOOL - unit has key for vehicle + + Example: + [bob, car] call AGM_VehicleLock_fnc_hasKeyForVehicle; +*/ + +private ["_unit","_veh","_returnValue","_sideKeyName","_customKeys"]; + +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_veh = [_this, 1, objNull, [objNull]] call bis_fnc_param; + +if (isNull _unit) exitWith {["AGM_VehicleLock_fnc_hasKeyForVehicle: null unit"] call BIS_fnc_error; false}; +if (isNull _veh) exitWith {["AGM_VehicleLock_fnc_hasKeyForVehicle: null vehicle"] call BIS_fnc_error; false}; + +_returnValue = false; + +//Master can open anything "no matter what" +if ("AGM_item_key_master" in (items _unit)) then {_returnValue = true}; + +//Check side key +_sideKeyName = [_veh] call AGM_VehicleLock_fnc_getVehicleSideKey; +if (_sideKeyName in (items _unit)) then {_returnValue = true}; + +//Check custom keys +_customKeys = _veh getVariable ["agm_lock_customKeys", []]; +{ + if (_x in (magazinesDetail _unit)) then {_returnValue = true;}; +} forEach _customKeys; + +_returnValue diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_lockpick.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_lockpick.sqf new file mode 100644 index 0000000000..bc3e68d189 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_lockpick.sqf @@ -0,0 +1,71 @@ +/* + Name: AGM_VehicleLock_fnc_lockpick + + Author: Pabst Mirror + + Description: + Handles lockpick functionality from action menu. + + Parameters: + 0: OBJECT - unit + 1: OBJECT - vehicle + 2: STRING - function type + "canLockpick": returns BOOL if lockpick is possible + "startLockpick": starts the process + "finishLockpick": on completions, opens the lock + + Returns: + BOOL + + Example: + [AGM_player, AGM_Interaction_Target, 'canLockpick'] call AGM_VehicleLock_fnc_lockpick +*/ +private ["_unit","_veh","_funcType","_vehLockpickStrenth","_returnValue"]; + +_unit = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_veh = [_this, 1, objNull, [objNull]] call bis_fnc_param; +_funcType = [_this, 2, "", [""]] call bis_fnc_param; + +if (isNull _unit) exitWith { + ["AGM_VehicleLock_fnc_lockpick: null unit"] call BIS_fnc_error; + false +}; +if (isNull _veh) exitWith { + ["AGM_VehicleLock_fnc_lockpick: null vehicle"] call BIS_fnc_error; + false +}; + +//need lockpick item +if (!("AGM_item_key_lockpick" in (items _unit))) exitWith { + false +}; + +_vehLockpickStrenth = _veh getVariable["agm_vehicleLock_pickStr", AGM_VehicleLock_DefaultLockpickStrength]; +if (typeName _vehLockpickStrenth != "SCALAR") exitWith { + ["AGM_VehicleLock_fnc_lockpick: agm_vehicleLock_pickStr invalid: (%1)", _veh] call BIS_fnc_error; + false +}; + +//-1 indicates unpickable lock +if (_vehLockpickStrenth < 0) exitWith { + false +}; + +_returnValue = false; + +switch (true) do { + case (_funcType == "canLockpick"): { + _returnValue = true; + }; + case (_funcType == "startLockpick"): { + [_vehLockpickStrenth, [_unit, _veh, "finishLockpick"], "AGM_VehicleLock_fnc_lockpick", (localize "STR_AGM_Vehicle_Action_LockpickInUse")] call AGM_Core_fnc_progressBar; + }; + case (_funcType == "finishLockpick"): { + [_veh, false] call AGM_VehicleLock_fnc_setVehicleLock; + }; + default { + ["AGM_VehicleLock_fnc_lockpick: bad function type"] call BIS_fnc_error; + }; +}; + +_returnValue; diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_moduleInit.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_moduleInit.sqf new file mode 100644 index 0000000000..2e0d44c9c7 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_moduleInit.sqf @@ -0,0 +1,67 @@ +/* + Name: AGM_VehicleLock_fnc_moduleInit + + Author: Pabst Mirror + + Description: + Function for setup module. Sets default lockpick strength, auto handout keys, and default lock state. + + Parameters: + 0: OBJECT - logic + + Returns: + Nothing + + Example: + called from module +*/ + +_this spawn { + + private ["_logic", "_sideKeysAssignment", "_setLockState", "_lock", "_giveSideKey", "_keyClassName"]; + _logic = [_this, 0, objNull, [objNull]] call BIS_fnc_param; + + _sideKeysAssignment = _logic getVariable["SideKeysAssignment", 0]; + _setLockState = _logic getVariable["SetLockState", 0]; + + if (isServer) then { + [_logic, "AGM_VehicleLock_DefaultLockpickStrength", "LockpickStrength"] call AGM_Core_fnc_readNumericParameterFromModule; + + { //set lock state + _lock = + switch (_setLockState) do { + case (0): {(locked _x) in [2, 3]}; + case (1):{true}; + case (2):{false}; + }; + [_x, _lock] call AGM_VehicleLock_fnc_setVehicleLock; + } + forEach vehicles; + }; + + if (hasInterface) then { + waitUntil {player == player}; + waitUntil {alive player}; + sleep 5; //need to wait for other gear-assign scripts to finish + + _giveSideKey = + switch (_sideKeysAssignment) do { + case (0): {false}; + case (1): {(leader player) == player}; + case (2): {true}; + }; + + if (_giveSideKey) then { + _keyClassName = switch (playerside) do { + case (west): {"AGM_item_key_west"}; + case (east): {"AGM_item_key_east"}; + case (resistance): {"AGM_item_key_indp"}; + case (civilian): {"AGM_item_key_civ"}; + default {""}; + }; + if (_keyClassName != "") then { + player addItem _keyClassName; + }; + }; + }; +}; diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_moduleSync.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_moduleSync.sqf new file mode 100644 index 0000000000..75d74b47ad --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_moduleSync.sqf @@ -0,0 +1,47 @@ +/* + Name: AGM_VehicleLock_fnc_moduleSync + + Author: Pabst Mirror + + Description: + Function for sync module. Assigns keys for all synced vehicles to any players that are synced. + + Parameters: + 0: OBJECT - logic + 1: ARRAY - synced objects (only objects at mission start, so JIP without AI won't be present) + + Returns: + Nothing + + Example: + called from module +*/ + +_this spawn { + private ["_logic","_syncedObjects","_listOfVehicles"]; + + _logic = [_this, 0, objNull, [objNull]] call BIS_fnc_param; + _syncedObjects = [_this, 1, [], [[]]] call BIS_fnc_param; + + if (hasInterface) then { + waitUntil {player == player}; + waitUntil {alive player}; + sleep 5; //need to wait for other gear-assign scripts to finish + + _listOfVehicles = []; { + if ((_x isKindOf "Car") || (_x isKindOf "Tank") || (_x isKindOf "Helicopter")) then { + _listOfVehicles pushBack _x; + }; + } forEach _syncedObjects; + + if ((count _listOfVehicles) == 0) exitWith { + ["AGM_VehicleLock_fnc_moduleSync: no valid vehicles synced"] call BIS_fnc_error; + }; + + if (player in _syncedObjects) then { + { + [player, _x, true] call AGM_VehicleLock_fnc_addKeyForVehicle; + } forEach _listOfVehicles; + }; + }; +}; diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_serverSetupCustomKey.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_serverSetupCustomKey.sqf new file mode 100644 index 0000000000..6b16b5cf19 --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_serverSetupCustomKey.sqf @@ -0,0 +1,32 @@ +/* + Name: AGM_VehicleLock_fnc_serverSetupCustomKey + + Author: Pabst Mirror + + Description: + Adds a key (magazineDetail name) to approved keys for a vehicle + + Parameters: + 0: OBJECT - vehicle + 1: STRING - Magazine Name + + Returns: + Nothing + + Example: + [tank1, "todo"] call AGM_VehicleLock_fnc_serverSetupCustomKey; +*/ + +private ["_veh","_key","_currentKeys"]; + +_veh = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_key = [_this, 1, "", [""]] call bis_fnc_param; + +if (!isServer) exitWith {["AGM_VehicleLock_fnc_serverSetupCustomKey: only run on server"] call BIS_fnc_error;}; +if (_key == "") exitWith {["AGM_VehicleLock_fnc_serverSetupCustomKey: empty key string"] call BIS_fnc_error;}; + +//Want this as atomic as possible + +_currentKeys = _veh getVariable ["agm_lock_customKeys", []]; +_currentKeys pushBack _key; +_veh setVariable ["agm_lock_customKeys", _currentKeys, true]; diff --git a/TO_MERGE/agm/VehicleLock/functions/fn_setVehicleLock.sqf b/TO_MERGE/agm/VehicleLock/functions/fn_setVehicleLock.sqf new file mode 100644 index 0000000000..83126578cf --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/functions/fn_setVehicleLock.sqf @@ -0,0 +1,29 @@ +/* + Name: AGM_VehicleLock_fnc_setVehicleLock + + Author: Pabst Mirror + + Description: + Sets a vehicle lock state (MP safe) + + Parameters: + 0: OBJECT - vehicle + 1: BOOL - new lock state + + Returns: + Nothing + + Example: + [tank1, false] call AGM_VehicleLock_fnc_setVehicleLock; +*/ + +private ["_veh","_isLocked","_lockNumber"]; + +_veh = [_this, 0, objNull, [objNull]] call bis_fnc_param; +_isLocked = [_this, 1, false, [false]] call bis_fnc_param; + +if (isNull _veh) exitWith {["AGM_VehicleLock_fnc_setVehicleLock: null vehicle"] call BIS_fnc_error;}; + +_lockNumber = if (_isLocked) then {2} else {0}; +[[_veh, _lockNumber], "{(_this select 0) lock (_this select 1)}", 2] call AGM_Core_fnc_execRemoteFnc; +_veh setVariable ["AGM_LockedInventory", _isLocked, true]; diff --git a/TO_MERGE/agm/VehicleLock/readme.txt b/TO_MERGE/agm/VehicleLock/readme.txt new file mode 100644 index 0000000000..e62d9eb83b --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/readme.txt @@ -0,0 +1,37 @@ +Adds keys as an item, to lock and unlock vehicles. +Primary target would be role play or TVT, but has uses in all game types, even co-ops (DAC AI will steal unlocked vehicles) + +Modules allow fast setup, or can manualy add items and set variables. + +Two key modes (can be used together): +Simple Side based keys (e.g. "AGM_item_key_west" works on any hunter) +Custom keys (one key will only open a specific vehicle and nothing else) + +Items Added: + +AGM_item_key_lockpick +AGM_item_key_master +AGM_item_key_west +AGM_item_key_east +AGM_item_key_indp +AGM_item_key_civ + +Magazine added (should never be manualy added, needs to be 'programed' to work on a vehicle): +AGM_magazine_customKey + +For Mission Makers: + +Modules: +Vehicle Lock Setup - Settings for lockpick strength, auto assigment of keys at start and initial vehicle lock state. +Vehicle Key Assign - Sync with vehicles and players. Will handout custom keys to players for every synced vehicle. + +Global Variable: +AGM_VehicleLock_DefaultLockpickStrength - Time in seconds to lock pick globaly, can also set per-vehicle (-1 would disable) + +Vehicle setVariables: +agm_lock_side - SIDE: overrides a vehicle's side, allows indfor to use little-bird's with indp keys +agm_vehicleLock_pickStr - NUMBER: secons, determines how long lockpicking with take, overrides AGM_VehicleLock_DefaultLockpickStrength +agm_lock_customKeys - ARRAY: array of strings of magazinesDetails, use the following function to modify + +[bob, car1, true] call AGM_VehicleLock_fnc_addKeyForVehicle; +will add a "AGM_magazine_customKey" to bob and program it to work on car1 \ No newline at end of file diff --git a/TO_MERGE/agm/VehicleLock/stringtable.xml b/TO_MERGE/agm/VehicleLock/stringtable.xml new file mode 100644 index 0000000000..c6e8d51d8b --- /dev/null +++ b/TO_MERGE/agm/VehicleLock/stringtable.xml @@ -0,0 +1,116 @@ + + + + + + Unlock Vehicle + Fahrzeug aufschließen + Vehículo abierto + Déverrouiller le véhicule + Odblokuj pojazd + Odemknout vozidlo + Jármű nyitása + Открыть машину + + + Lock Vehicle + Fahrzeug abschließen + Vehículo cerrado + Verrouiller le véhicule + Zablokuj pojazd + Zamknout vozidlo + Jármű zárása + Закрыть машину + + + Lockpick Vehicle + Fahrzeug knacken + Forzar vehículo + Crocheter le véhicule + Otwórz zamek + Vypáčit vozidlo + Jármű feltörése + Взломать замок + + + Picking Lock.... + Schloss knacken... + Forzando cierre... + Crochetage... + Otwieranie zamka... + Páčim vozidlo... + Feltörés... + Взламываем замок... + + + A custom key that will open a specific vehicle. + Ein Schlüssel der ein bestimmtes Fahrzeug aufschließt. + Una llave concreta abrirá un vehículo concreto. + Une clé propre à un seul véhicule. + Unikatowy klucz który otworzy konkretny pojazd. + Vlastní klíč, který otevře konkrétní vozidlo. + Kulcs egy járműhez + Ключ от конкретной машины. + + + A Master Key will open any lock, no matter what! + Ein Generalschlüssel der jedes Schloss öffnet... + Una llave maestra abrirá cualquier cierre, no importa cual! + Un passe-partout qui ouvrira n'importe quelle serrure. + Uniwersalny klucz który otworzy każdy zamek. + Hlavní klíč otevře libovolný zámek, bez vyjímek! + Általános kulcs minden járműhez + Универсальный ключ, открывающий любой замок. + + + A lockpick set that can pick the locks of most vehicles. + Ein Dietrich der die meisten Fahrzeugschlösser knacken kann... + Un set de ganzúas puede abrir la mayoría de cerraduras de vehículos. + Un crochet qui ouvrira la plupart des véhicules. + Zestaw wytrychów dzięki któremu można otworzyć zamki w większości pojazdów. + Sada paklíčů, která dokáže odemknout zámky u většiny vozidel. + Álkulcs melyik minden járműt nyitni tud + Набор отмычек, которым можно взломать почти любую машину. + + + A key that should open most WEST vehicles. + Ein Schlüssel der die meisten westlichen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos occidentales. + Une clé qui ouvrira la plupart des véhicules WEST. + Klucz który powinien otworzyć większość pojazdów ZACHODU. + Klíč který by měl otevřít většinou Západních vozidel. + Általános kulcs WEST járművekhez + Ключ для открытия большинства машин Запада. + + + A key that should open most EAST vehicle. + Ein Schlüssel der die meisten östlichen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos orientales. + Une clé qui ouvrira la plupart des véhicules EAST. + Klucz który powinien otworzyć większość pojazdów WSCHODU. + Általános kulcs EAST járművekhez + Klíč který by měl otevřít vetšinu Východních vozidel. + Ключ для открытия большинства машин Востока. + + + A key that should open most INDEP vehicle. + Ein Schlüssel der die meisten Fahrzeuge der Aufständischen öffnen sollte... + Una llave que puede abrir la mayoría de vehículos independientes. + Une clé qui ouvrira la plupart des véhicules INDEP. + Klucz który powinien otworzyć większość pojazdów INDFOR. + Általános kulcs INDEPENDENT járművekhez + Klíč který by měl otevřít většinu Nezávislých vozidel. + Ключ для открытия большинства машин Независимых. + + + A key that should open most CIV vehicle. + Ein Schlüssel der die meisten zivilen Fahrzeuge öffnen sollte... + Una llave que puede abrir la mayoría de vehículos civiles. + Une clé qui ouvrira la plupart des véhicules CIV. + Klucz który powinien otworzyć większość pojazdów CYWILNYCH. + Klíč který by měl otevřít většinu Civilních vozidel. + Általános kulcs CIVILIAN járművekhez + Ключ для открытия большинства машин Гражданских. + + + \ No newline at end of file diff --git a/TO_MERGE/agm/VehicleLock/ui/IconLock_ca.paa b/TO_MERGE/agm/VehicleLock/ui/IconLock_ca.paa new file mode 100644 index 0000000000..11d6dedf01 Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/IconLock_ca.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/keyBlack.paa b/TO_MERGE/agm/VehicleLock/ui/keyBlack.paa new file mode 100644 index 0000000000..96cd624843 Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/keyBlack.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/keyBlue.paa b/TO_MERGE/agm/VehicleLock/ui/keyBlue.paa new file mode 100644 index 0000000000..29dd1059c1 Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/keyBlue.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/keyGreen.paa b/TO_MERGE/agm/VehicleLock/ui/keyGreen.paa new file mode 100644 index 0000000000..db5c99b5af Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/keyGreen.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/keyPurple.paa b/TO_MERGE/agm/VehicleLock/ui/keyPurple.paa new file mode 100644 index 0000000000..e5383f6a6e Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/keyPurple.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/keyRed.paa b/TO_MERGE/agm/VehicleLock/ui/keyRed.paa new file mode 100644 index 0000000000..62389d167f Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/keyRed.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/key_menuIcon_ca.paa b/TO_MERGE/agm/VehicleLock/ui/key_menuIcon_ca.paa new file mode 100644 index 0000000000..0ff1cc597b Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/key_menuIcon_ca.paa differ diff --git a/TO_MERGE/agm/VehicleLock/ui/lockpick.paa b/TO_MERGE/agm/VehicleLock/ui/lockpick.paa new file mode 100644 index 0000000000..5fbd211924 Binary files /dev/null and b/TO_MERGE/agm/VehicleLock/ui/lockpick.paa differ diff --git a/TO_MERGE/agm/Vehicles/config.cpp b/TO_MERGE/agm/Vehicles/config.cpp new file mode 100644 index 0000000000..adc604d141 --- /dev/null +++ b/TO_MERGE/agm/Vehicles/config.cpp @@ -0,0 +1,467 @@ +class CfgPatches { + class AGM_Vehicles { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Vehicles { + class AGM_Vehicles { + file = "AGM_Vehicles\functions"; + class speedLimiter; + class startEngine; + }; + }; +}; + +class AGM_Core_Default_Keys { + class speedLimiter { + displayName = "$STR_AGM_SpeedLimiter"; + condition = "_player == driver _vehicle && {_vehicle isKindOf 'Car' || {_vehicle isKindOf 'Tank'}}"; + statement = "[_player, _vehicle] call AGM_Vehicles_fnc_speedLimiter"; + key = 211; + shift = 0; + control = 0; + alt = 0; + }; +}; + +class Extended_Engine_EventHandlers { + class Car { + class AGM_EngineStartDelay { + clientEngine = "_this call AGM_Vehicles_fnc_startEngine"; + }; + }; +}; + +#define FUEL_FACTOR 0.165 +// fuel capacity = range in km * FUEL_FACTOR + +class CfgVehicles { + class All { + class Turrets {}; + }; + + class AllVehicles: All { + class NewTurret { + class Turrets {}; + }; + }; + + class Land: AllVehicles {}; + + class LandVehicle: Land { + class CommanderOptics: NewTurret {}; + }; + + class Car: LandVehicle {}; + + class Tank: LandVehicle { + class Turrets { + class MainTurret: NewTurret { + class Turrets { + class CommanderOptics: NewTurret {}; + }; + }; + }; + }; + + class APC: Tank { + class Turrets: Turrets { + class MainTurret: MainTurret {}; + }; + }; + + class Ship: AllVehicles { + class Turrets { + class MainTurret; + }; + }; + + class Tank_F: Tank { + class Turrets { + class MainTurret: NewTurret { + class Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class Car_F: Car { + class Turrets { + class MainTurret: NewTurret {}; + }; + }; + + class Wheeled_APC_F: Car_F { + class Turrets { + class MainTurret: NewTurret { + class Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class APC_Tracked_01_base_F: Tank_F { + fuelCapacity = 500 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets {}; + }; + }; + }; + + class APC_Tracked_02_base_F: Tank_F { + fuelCapacity = 600 * FUEL_FACTOR; // NO FUCKING DATA + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class O_APC_Tracked_02_base_F: APC_Tracked_02_base_F {}; + + class O_APC_Tracked_02_cannon_F: O_APC_Tracked_02_base_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"autocannon_30mm_CTWS","AGM_LMG_coax_MBT_01","missiles_titan"}; + magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Green","2000Rnd_762x51_Belt_Green","2Rnd_GAT_missiles"}; + }; + }; + }; + + class APC_Tracked_03_base_F: Tank_F { + fuelCapacity = 660 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"autocannon_30mm","AGM_LMG_coax_APC_Tracked_03"}; + magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","1000Rnd_762x51_Belt_Yellow","1000Rnd_762x51_Belt_Yellow"}; + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class MBT_03_base_F: Tank_F { + fuelCapacity = 550 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"cannon_120mm_long","AGM_LMG_coax_MBT_01"}; + magazines[] = {"28Rnd_120mm_APFSDS_shells_Tracer_Yellow","14Rnd_120mm_HE_shells_Tracer_Yellow","2000Rnd_762x51_Belt_Yellow","2000Rnd_762x51_Belt_Yellow"}; + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class MBT_01_base_F: Tank_F { + fuelCapacity = 500 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"cannon_120mm","AGM_LMG_coax_MBT_01"}; + magazines[] = {"32Rnd_120mm_APFSDS_shells_Tracer_Red","16Rnd_120mm_HE_shells_Tracer_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"}; + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class B_MBT_01_base_F: MBT_01_base_F {}; + + class B_MBT_01_cannon_F: B_MBT_01_base_F {}; + + class MBT_02_base_F: Tank_F { + fuelCapacity = 600 * FUEL_FACTOR; // again, couldn't find proper data + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class Ship_F: Ship {}; + + class Boat_F: Ship_F {}; + + class Boat_Armed_01_base_F: Boat_F { + class Turrets: Turrets { + class FrontTurret; + class RearTurret: FrontTurret {}; + }; + }; + + class Boat_Armed_01_minigun_base_F: Boat_Armed_01_base_F {}; + + class B_Boat_Armed_01_minigun_F: Boat_Armed_01_minigun_base_F { + class Turrets: Turrets { + class FrontTurret: FrontTurret {}; + class RearTurret: RearTurret { + magazines[] = {"2000Rnd_762x51_Belt_T_Red"}; + }; + }; + }; + + class I_Boat_Armed_01_minigun_F: Boat_Armed_01_minigun_base_F { + class Turrets: Turrets { + class FrontTurret: FrontTurret {}; + class RearTurret: RearTurret { + magazines[] = {"2000Rnd_762x51_Belt_T_Yellow"}; + }; + }; + }; + + class Truck_F: Car_F { + class Turrets: Turrets {}; + }; + + class MRAP_01_base_F: Car_F { + fuelCapacity = 510 * FUEL_FACTOR; + }; + + class MRAP_02_base_F: Car_F { + fuelCapacity = 500 * FUEL_FACTOR; // couldn't find any data for the punisher + }; + + class O_MRAP_02_F: MRAP_02_base_F { + class Turrets {}; + }; + + class Offroad_01_base_F: Car_F { + //fuelCapacity = 45; + }; + + class MRAP_03_base_F: Car_F { + fuelCapacity = 860 * FUEL_FACTOR; + smokeLauncherGrenadeCount = 3; + smokeLauncherAngle = 80; + class Turrets: Turrets { + class CommanderTurret: MainTurret { + stabilizedInAxes = 3; + }; + }; + }; + + class MRAP_03_hmg_base_F: MRAP_03_base_F { + smokeLauncherGrenadeCount = 3; + smokeLauncherAngle = 80; + class Turrets: Turrets { + class MainTurret: MainTurret {}; + class CommanderTurret: CommanderTurret { + stabilizedInAxes = 3; + }; + }; + }; + + class MRAP_03_gmg_base_F: MRAP_03_hmg_base_F { + smokeLauncherGrenadeCount = 3; + smokeLauncherAngle = 80; + class Turrets: Turrets { + class MainTurret: MainTurret {}; + class CommanderTurret: CommanderTurret { + stabilizedInAxes = 3; + }; + }; + }; + + class Truck_01_base_F: Truck_F { + fuelCapacity = 644 * FUEL_FACTOR; + class Turrets {}; + }; + + class Truck_02_base_F: Truck_F { + fuelCapacity = 1100 * FUEL_FACTOR; + class Turrets {}; + }; + + class Truck_03_base_F: Truck_F { + fuelCapacity = 900 * FUEL_FACTOR; // NO. FUCKING. DATA. + class Turrets {}; + }; + + class Hatchback_01_base_F: Car_F { + //fuelCapacity = 45; + class Turrets {}; + }; + + class SUV_01_base_F: Car_F { + //fuelCapacity = 45; + class Turrets {}; + }; + + class Van_01_base_F: Truck_F { + //fuelCapacity = 45; + class Turrets {}; + }; + + class APC_Wheeled_01_base_F: Wheeled_APC_F { + fuelCapacity = 800 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class B_APC_Wheeled_01_base_F: APC_Wheeled_01_base_F {}; + + class B_APC_Wheeled_01_cannon_F: B_APC_Wheeled_01_base_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"autocannon_40mm_CTWS","AGM_LMG_coax_MBT_01"}; + magazines[] = {"60Rnd_40mm_GPR_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","2000Rnd_762x51_Belt_Green"}; + }; + }; + }; + + class APC_Wheeled_02_base_F: Wheeled_APC_F { + fuelCapacity = 700 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets {}; + }; + + class CommanderOptics: CommanderOptics {}; + }; + }; + + class B_MBT_01_TUSK_F: B_MBT_01_cannon_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"cannon_105mm","AGM_LMG_coax_MBT_01"}; + magazines[] = {"40Rnd_105mm_APFSDS_T_Red","20Rnd_105mm_HEAT_MP_T_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_Green"}; + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class APC_Wheeled_03_base_F: Wheeled_APC_F { + fuelCapacity = 700 * FUEL_FACTOR; + class Turrets: Turrets { + class MainTurret: MainTurret { + class Turrets: Turrets { + class CommanderOptics: CommanderOptics {}; + }; + }; + }; + }; + + class I_APC_Wheeled_03_base_F: APC_Wheeled_03_base_F {}; + + class I_APC_Wheeled_03_cannon_F: I_APC_Wheeled_03_base_F { + class Turrets: Turrets { + class MainTurret: MainTurret { + weapons[] = {"autocannon_30mm_CTWS","AGM_LMG_coax_MBT_01","missiles_titan"}; + magazines[] = {"140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","2000Rnd_762x51_Belt_Yellow","2Rnd_GAT_missiles"}; + }; + }; + }; +}; + +class CfgWeapons { + class MGunCore; + class MGun: MGunCore {}; + class LMG_RCWS: MGun {}; + class LMG_coax; + class AGM_LMG_coax_MBT_01: LMG_coax {}; + class AGM_LMG_coax_APC_Tracked_03: LMG_coax {}; + class autocannon_Base_F; + + class LMG_Minigun: LMG_RCWS { + magazines[] = {"1000Rnd_65x39_Belt","1000Rnd_65x39_Belt_Green","1000Rnd_65x39_Belt_Tracer_Green","1000Rnd_65x39_Belt_Tracer_Red","1000Rnd_65x39_Belt_Tracer_Yellow","1000Rnd_65x39_Belt_Yellow","2000Rnd_65x39_Belt","2000Rnd_65x39_Belt_Green","2000Rnd_65x39_Belt_Tracer_Green","2000Rnd_65x39_Belt_Tracer_Green_Splash","2000Rnd_65x39_Belt_Tracer_Red","2000Rnd_65x39_Belt_Tracer_Yellow","2000Rnd_65x39_Belt_Tracer_Yellow_Splash","2000Rnd_65x39_Belt_Yellow","2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_T_Yellow","200Rnd_65x39_Belt","200Rnd_65x39_Belt_Tracer_Green","200Rnd_65x39_Belt_Tracer_Red","200Rnd_65x39_Belt_Tracer_Yellow","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt"}; + class manual: MGun { + reloadTime = 0.015; + dispersion = 0.006; + }; + class close: manual{}; + class short: close{}; + class medium: close{}; + class far: close{}; + }; + + class HMG_127: LMG_RCWS { + class manual: MGun {}; + }; + + class HMG_01: HMG_127 { + reloadTime = 0.23; + class manual: manual { + reloadTime = 0.23; + }; + class close: manual { + reloadTime = 0.23; + }; + class short: close { + reloadTime = 0.23; + }; + class medium: close { + reloadTime = 0.23; + }; + class far: close { + reloadTime = 0.23; + }; + }; + + class autocannon_30mm_CTWS: autocannon_Base_F { + class AP: autocannon_Base_F { + magazines[] = {"60Rnd_30mm_APFSDS_shells","60Rnd_30mm_APFSDS_shells_Tracer_Red","60Rnd_30mm_APFSDS_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","140Rnd_30mm_MP_shells","140Rnd_30mm_MP_shells_Tracer_Red","140Rnd_30mm_MP_shells_Tracer_Green","140Rnd_30mm_MP_shells_Tracer_Yellow"}; + magazineReloadTime = 0; + }; + muzzles[] = {"AP"}; + }; + class autocannon_40mm_CTWS: autocannon_Base_F { + class AP: autocannon_Base_F { + magazines[] = {"40Rnd_40mm_APFSDS_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Green_shells","40Rnd_40mm_APFSDS_Tracer_Yellow_shells","60Rnd_40mm_GPR_shells","60Rnd_40mm_GPR_Tracer_Red_shells","60Rnd_40mm_GPR_Tracer_Green_shells","60Rnd_40mm_GPR_Tracer_Yellow_shells"}; + magazineReloadTime = 0; + }; + muzzles[] = {"AP"}; + }; + + // comp RHS + class RHS_weap_M242BC: autocannon_30mm_CTWS { + muzzles[] = {"AP","HE"}; + }; +}; + +class CfgAmmo { + class MissileBase; + + class M_Mo_120mm_AT: MissileBase { + cost = 400000; // Stop it from aiming at FUCKING RABBITS. + weaponLockSystem = 2; + }; + class M_Mo_120mm_AT_LG: M_Mo_120mm_AT { + cost = 400000; + weaponLockSystem = 4; + }; + + class M_Mo_82mm_AT: MissileBase { + cost = 400000; + weaponLockSystem = 2; + }; + class M_Mo_82mm_AT_LG: M_Mo_82mm_AT { + cost = 400000; + weaponLockSystem = 4; + }; +}; diff --git a/TO_MERGE/agm/Vehicles/functions/fn_speedLimiter.sqf b/TO_MERGE/agm/Vehicles/functions/fn_speedLimiter.sqf new file mode 100644 index 0000000000..7355724625 --- /dev/null +++ b/TO_MERGE/agm/Vehicles/functions/fn_speedLimiter.sqf @@ -0,0 +1,33 @@ +// by commy2 + +_this spawn { + _player = _this select 0; + _vehicle = _this select 1; + + if (missionNamespace getVariable ["AGM_isSpeedLimiter", false]) exitWith { + [localize "STR_AGM_SpeedLimiter_Off"] call AGM_Core_fnc_displayTextStructured; + playSound "AGM_Sound_Click"; + AGM_isSpeedLimiter = false; + }; + + [localize "STR_AGM_SpeedLimiter_On"] call AGM_Core_fnc_displayTextStructured; + playSound "AGM_Sound_Click"; + AGM_isSpeedLimiter = true; + + _maxSpeed = speed _vehicle; + if (_maxSpeed < 10) then {_maxSpeed = 10}; + + waitUntil { + _speed = speed _vehicle; + if (_speed > _maxSpeed) then { + _velocity = velocity _vehicle; + _vehicle setVelocity [ + (_velocity select 0) * _maxSpeed / _speed, + (_velocity select 1) * _maxSpeed / _speed, + (_velocity select 2) * _maxSpeed / _speed + ]; + }; + !AGM_isSpeedLimiter || {_player != driver _vehicle} + }; + AGM_isSpeedLimiter = false; +}; diff --git a/TO_MERGE/agm/Vehicles/functions/fn_startEngine.sqf b/TO_MERGE/agm/Vehicles/functions/fn_startEngine.sqf new file mode 100644 index 0000000000..46d673ac44 --- /dev/null +++ b/TO_MERGE/agm/Vehicles/functions/fn_startEngine.sqf @@ -0,0 +1,25 @@ +// by commy2 + +#define STARTUP_DELAY 1.3 + +private ["_vehicle", "_isEngineOn", "_player"]; + +_vehicle = _this select 0; +_isEngineOn = _this select 1; + +_player = AGM_player; + +if (_isEngineOn && {_player == driver _vehicle} && {speed _vehicle == 0}) then { + [_vehicle] spawn { + _vehicle = _this select 0; + + _direction = [vectorDir _vehicle, vectorUp _vehicle]; + + _time = time + STARTUP_DELAY; + waitUntil { + _vehicle setVelocity [0, 0, 0]; + _vehicle setVectorDirAndUp _direction; + time > _time + }; + }; +}; diff --git a/TO_MERGE/agm/Vehicles/stringtable.xml b/TO_MERGE/agm/Vehicles/stringtable.xml new file mode 100644 index 0000000000..50ebdb6643 --- /dev/null +++ b/TO_MERGE/agm/Vehicles/stringtable.xml @@ -0,0 +1,43 @@ + + + + + + Speed Limiter on + Begrenzer an + Limitador de velocidad activado + Ogranicznik prędkości włączony + Omezovač rychlosti zapnout + Limiteur de vitesse Activé + Ограничение скорости включено + Sebességkorlát bekapcsolva + Limitador de Velocidade Ativo + Limitatore Attivo + + + Speed Limiter off + Begrenzer aus + Limitador de velocidad desactivado + Ogranicznik prędkości wyłączony + Omezovač rychlosti vypnout + Limiteur de vitesse Désactivé + Ограничение скорости выключено + Sebességkorlát kikapcsolva + Limitador de Velocidade Desativado + Limitatore Non Attivo + + + + Speed Limiter + Begrenzer + Limitador de velocidad + Ogranicznik prędkości + Omezovač rychlosti + Limiteur de vitesse + Ограничение скорости + Sebességkorlát + Limitador de Velocidade + Limitatore di Velocità + + + diff --git a/TO_MERGE/agm/WeaponSelect/clientInit.sqf b/TO_MERGE/agm/WeaponSelect/clientInit.sqf new file mode 100644 index 0000000000..c3becf5495 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/clientInit.sqf @@ -0,0 +1,49 @@ +// by CAA-Picard, commy2 + +AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag = true; +AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = ""; +AGM_WeaponSelect_CurrentGrenadeMuzzleOther = ""; + +// Collect frag and other muzzles separately +with uiNamespace do { + if (isNil "AGM_WeaponSelect_FragMuzzles") then { + AGM_WeaponSelect_FragMuzzles = []; + AGM_WeaponSelect_NonFragMuzzles = []; + AGM_WeaponSelect_AllMuzzles = []; + + AGM_WeaponSelect_FragMagazines = []; + AGM_WeaponSelect_NonFragMagazines = []; + AGM_WeaponSelect_AllMagazines = []; + + { + _magazines = getArray (configFile >> "CfgWeapons" >> "Throw" >> _x >> "magazines"); + _magazine = _magazines select 0; + + _ammo = getText (configfile >> "CfgMagazines" >> _magazine >> "ammo"); + _explosive = getNumber (configfile >> "CfgAmmo" >> _ammo >> "explosive"); + + if (_explosive == 0) then { + AGM_WeaponSelect_NonFragMuzzles pushBack _x; + AGM_WeaponSelect_NonFragMagazines pushBack _magazines; + } else { + AGM_WeaponSelect_FragMuzzles pushBack _x; + AGM_WeaponSelect_FragMagazines pushBack _magazines; + }; + AGM_WeaponSelect_AllMuzzles pushBack _x; + AGM_WeaponSelect_AllMagazines pushBack _magazines; + } forEach getArray (configfile >> "CfgWeapons" >> "Throw" >> "muzzles"); + }; +}; + +AGM_WeaponSelect_FragMuzzles = uiNamespace getVariable "AGM_WeaponSelect_FragMuzzles"; +AGM_WeaponSelect_NonFragMuzzles = uiNamespace getVariable "AGM_WeaponSelect_NonFragMuzzles"; +AGM_WeaponSelect_AllMuzzles = uiNamespace getVariable "AGM_WeaponSelect_AllMuzzles"; +AGM_WeaponSelect_FragMagazines = uiNamespace getVariable "AGM_WeaponSelect_FragMagazines"; +AGM_WeaponSelect_NonFragMagazines = uiNamespace getVariable "AGM_WeaponSelect_NonFragMagazines"; +AGM_WeaponSelect_AllMagazines = uiNamespace getVariable "AGM_WeaponSelect_AllMagazines"; + +//AGM_WeaponSelect_AllMuzzlesCount = count AGM_WeaponSelect_AllMuzzles; + +// hide grenade count if none is selected +[uiNamespace getVariable "AGM_dlgSoldier", false] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +["Soldier", {[_this select 0, call AGM_WeaponSelect_fnc_getSelectedGrenade != ""] call AGM_WeaponSelect_fnc_toggleGrenadeCount}] call AGM_Core_fnc_addInfoDisplayEventHandler; diff --git a/TO_MERGE/agm/WeaponSelect/config.cpp b/TO_MERGE/agm/WeaponSelect/config.cpp new file mode 100644 index 0000000000..ee9ee2ab11 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/config.cpp @@ -0,0 +1,234 @@ +class CfgPatches { + class AGM_WeaponSelect { + units[] = {}; + weapons[] = {}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"commy2", "KoffeinFlummi", "CAA-Picard"}; + authorUrl = "https://github.com/commy2/"; + }; +}; + +class CfgFunctions { + class AGM_WeaponSelect { + class AGM_WeaponSelect { + file = "\AGM_WeaponSelect\functions"; + class actionThrow; + class actionThrowCondition; + class countMagazinesForGrenadeMuzzle; + class displayGrenadeTypeAndNumber; + class findNextGrenadeMagazine; + class findNextGrenadeMuzzle; + class fireSmokeLauncher; + class getSelectedGrenade; + class getWeaponModes; + class getWeaponMuzzles; + class playChangeFiremodeSound; + class putWeaponAway; + class selectGrenadeAll; + class selectGrenadeFrag; + class selectGrenadeOther; + class selectWeaponMode; + class selectWeaponMuzzle; + class selectWeaponVehicle; + class selectMagazineVehicle; + class setNextGrenadeMuzzle; + class throwGrenade; + class toggleGrenadeCount; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_WeaponSelect { + clientInit = "call compile preprocessFileLineNumbers '\AGM_WeaponSelect\clientInit.sqf';"; + }; +}; + +class Extended_Init_EventHandlers { + class CAManBase { + class AGM_WeaponSelect_ThrowGrenade { + clientInit = "_this call compile preprocessFileLineNumbers '\AGM_WeaponSelect\initActions.sqf';"; + }; + }; +}; +class Extended_Respawn_EventHandlers { + class CAManBase { + class AGM_WeaponSelect_ThrowGrenade { + respawn = "[_this, ""{_this call compile preprocessFileLineNumbers '\AGM_WeaponSelect\initActions.sqf';}""] call AGM_Core_fnc_execRemoteFnc;"; + }; + }; +}; + +class Extended_FiredBIS_EventHandlers { + class CAManBase { + class AGM_WeaponSelect_ThrowGrenade { + clientFiredBIS = "if (_this select 0 == AGM_player) then {_this call AGM_WeaponSelect_fnc_throwGrenade;};"; + }; + }; +}; + +class AGM_Core_Default_Keys { + class selectPistol { + displayName = "$STR_AGM_WeaponSelect_SelectPistol"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player, handgunWeapon _player] call AGM_WeaponSelect_fnc_selectWeaponMode"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 2; + shift = 0; + control = 0; + alt = 0; + }; + class selectRifle { + displayName = "$STR_AGM_WeaponSelect_SelectRifle"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player, primaryWeapon _player] call AGM_WeaponSelect_fnc_selectWeaponMode"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 3; + shift = 0; + control = 0; + alt = 0; + }; + class selectLauncher { + displayName = "$STR_AGM_WeaponSelect_SelectLauncher"; + condition = "_player == _vehicle"; + statement = "[_player, secondaryWeapon _player] call AGM_WeaponSelect_fnc_selectWeaponMode"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 5; + shift = 0; + control = 0; + alt = 0; + }; + /*class selectPistolMuzzle { + displayName = "Select Pistol Muzzle"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player, handgunWeapon _player] call AGM_WeaponSelect_fnc_selectWeaponMuzzle"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + disabled = 1; + key = 7; + shift = 0; + control = 0; + alt = 0; + };*/ + class selectRifleMuzzle { + displayName = "$STR_AGM_WeaponSelect_SelectRifleMuzzle"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player, primaryWeapon _player] call AGM_WeaponSelect_fnc_selectWeaponMuzzle"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 4; + shift = 0; + control = 0; + alt = 0; + }; + /*class selectLauncherMuzzle { + displayName = "Select Launcher Muzzle"; + condition = "_player == _vehicle"; + statement = "[_player, secondaryWeapon _player] call AGM_WeaponSelect_fnc_selectWeaponMuzzle"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + disabled = 1; + key = 8; + shift = 0; + control = 0; + alt = 0; + };*/ + class selectBinocular { + displayName = "$STR_AGM_WeaponSelect_SelectBinocular"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player, binocular _player] call AGM_WeaponSelect_fnc_selectWeaponMode"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 6; + shift = 0; + control = 0; + alt = 0; + }; + class selectGrenadeFrag { + displayName = "$STR_AGM_WeaponSelect_SelectGrenadeFrag"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player] call AGM_WeaponSelect_fnc_selectGrenadeFrag"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 7; + shift = 0; + control = 0; + alt = 0; + }; + class selectGrenadeOther { + displayName = "$STR_AGM_WeaponSelect_SelectGrenadeOther"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player] call AGM_WeaponSelect_fnc_selectGrenadeOther"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 8; + shift = 0; + control = 0; + alt = 0; + }; + class holsterWeapon { + displayName = "$STR_AGM_WeaponSelect_HolsterWeapon"; + condition = "[_player] call AGM_Core_fnc_canUseWeapon"; + statement = "[_player] call AGM_WeaponSelect_fnc_putWeaponAway"; + exceptions[] = {"AGM_Interaction_isNotEscorting"}; + key = 11; + shift = 0; + control = 0; + alt = 0; + }; + + class engineOn { + displayName = "$STR_AGM_WeaponSelect_EngineOn"; + condition = "_player != _vehicle && {_player == driver _vehicle} && {!isEngineOn _vehicle}"; + statement = "_vehicle engineOn true"; + key = 3; + shift = 0; + control = 0; + alt = 0; + }; + class engineOff { + displayName = "$STR_AGM_WeaponSelect_EngineOff"; + condition = "_player != _vehicle && {_player == driver _vehicle} && {isEngineOn _vehicle}"; + statement = "_vehicle engineOn false"; + key = 2; + shift = 0; + control = 0; + alt = 0; + }; + + class selectMaingun { + displayName = "$STR_AGM_WeaponSelect_SelectMainGun"; + condition = "_player != _vehicle"; + statement = "[_player, _vehicle, 0] call AGM_WeaponSelect_fnc_selectWeaponVehicle"; + key = 4; + shift = 0; + control = 0; + alt = 0; + }; + class selectMachineGun { + displayName = "$STR_AGM_WeaponSelect_SelectMachineGun"; + condition = "_player != _vehicle"; + statement = "[_player, _vehicle, 1] call AGM_WeaponSelect_fnc_selectWeaponVehicle"; + key = 5; + shift = 0; + control = 0; + alt = 0; + }; + class selectMissile { + displayName = "$STR_AGM_WeaponSelect_SelectMissiles"; + condition = "_player != _vehicle"; + statement = "[_player, _vehicle, 2] call AGM_WeaponSelect_fnc_selectWeaponVehicle"; + key = 6; + shift = 0; + control = 0; + alt = 0; + }; + + class fireSmokeLauncher { + displayName = "$STR_AGM_WeaponSelect_FireSmokeLauncher"; + condition = "_player != _vehicle && {_player == commander _vehicle}"; + statement = "[_vehicle] call AGM_WeaponSelect_fnc_fireSmokeLauncher"; + key = 10; + shift = 0; + control = 0; + alt = 0; + }; +}; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_actionThrow.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_actionThrow.sqf new file mode 100644 index 0000000000..d4488e57f8 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_actionThrow.sqf @@ -0,0 +1,4 @@ +// by commy2 + +_text = [localize "STR_AGM_WeaponSelect_NoGrenadeSelected", [1,0,0]] call AGM_Core_fnc_stringToColoredText; +[composeText [lineBreak, _text]] call AGM_Core_fnc_displayTextStructured; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_actionThrowCondition.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_actionThrowCondition.sqf new file mode 100644 index 0000000000..e0343d04e6 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_actionThrowCondition.sqf @@ -0,0 +1,32 @@ +// by commy2 + +_muzzle = call AGM_WeaponSelect_fnc_getSelectedGrenade; + +_isInput = inputAction "CycleThrownItems" > 0; +if !(_isInput isEqualTo (missionNamespace getVariable ["AGM_WeaponSelect_CycleThrownItemsState", false])) then { + if (_isInput) then { + if (_muzzle == "") then { + [_this select 1] spawn AGM_WeaponSelect_fnc_selectGrenadeAll; + } else { + [_this select 1] spawn AGM_WeaponSelect_fnc_selectGrenadeAll;// + }; + }; + AGM_WeaponSelect_CycleThrownItemsState = _isInput; +}; + +if !([_this select 1] call AGM_Core_fnc_canUseWeapon) exitWith {false}; + +if (_muzzle == "") exitWith {["All"] call AGM_WeaponSelect_fnc_findNextGrenadeMagazine != ""}; + +// fix auto muzzle swap after entering or leaving a vehicle +if (_this select 0 != missionNamespace getVariable ["AGM_WeaponSelect_CurrentGrenadeMuzzleVehicle", objNull]) then { + [_this select 1, _muzzle] call AGM_WeaponSelect_fnc_setNextGrenadeMuzzle; + AGM_WeaponSelect_CurrentGrenadeMuzzleVehicle = _this select 0; +}; + +if ((_this select 1) ammo _muzzle == 0) exitWith { + if (AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag) then {AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = ""} else {AGM_WeaponSelect_CurrentGrenadeMuzzleOther = ""}; + [uiNamespace getVariable "AGM_dlgSoldier", false] call AGM_WeaponSelect_fnc_toggleGrenadeCount; + true +}; +false diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_countMagazinesForGrenadeMuzzle.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_countMagazinesForGrenadeMuzzle.sqf new file mode 100644 index 0000000000..b9a7e06bea --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_countMagazinesForGrenadeMuzzle.sqf @@ -0,0 +1,44 @@ +/* + * Author: CAA-Picard + * + * Count how many grenade magazines the unit has on the uniform and vest. + * + * Argument: + * 0: Muzzle name + * + * Return value: + * 0: Number of magazines + * 1: First magazine name + */ + +private ["_player", "_muzzle"]; + +_player = _this select 0; +_muzzle = _this select 1; + +_uniformMags = getMagazineCargo uniformContainer _player; +_vestMags = getMagazineCargo vestContainer _player; +_backPackMags = getMagazineCargo backpackContainer _player; + +_numberOfMagazines = 0; +_magazineClasses = getArray (configFile >> "CfgWeapons" >> "Throw" >> _muzzle >> "magazines" ); +_firstMagazine = _magazineClasses select 0; +{ + _indexInUniform = (_uniformMags select 0) find _x; + if (_indexInUniform > -1) then { + _numberOfMagazines = _numberOfMagazines + ((_uniformMags select 1) select _indexInUniform); + _firstMagazine = _x; + }; + _indexInVest = (_vestMags select 0) find _x; + if (_indexInVest > -1) then { + _numberOfMagazines = _numberOfMagazines + ((_vestMags select 1) select _indexInVest); + _firstMagazine = _x; + }; + _indexInBackpack = (_backpackMags select 0) find _x; + if (_indexInBackpack > -1) then { + _numberOfMagazines = _numberOfMagazines + ((_backpackMags select 1) select _indexInBackpack); + _firstMagazine = _x; + }; +} forEach _magazineClasses; + +[_numberOfMagazines, _firstMagazine] diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_displayGrenadeTypeAndNumber.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_displayGrenadeTypeAndNumber.sqf new file mode 100644 index 0000000000..abe1bf0e27 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_displayGrenadeTypeAndNumber.sqf @@ -0,0 +1,27 @@ +/* + * Author: CAA-Picard + * + * Display a grenade type and quantity. + * + * Argument: + * 0: magazine class + * 1: number of magazines + * + * Return value: + * None + */ + +_magazine = _this select 0; +_numberofMagazines = _this select 1; + +_color = []; +if (_numberOfMagazines > 0) then { + _color = [1,1,1]; +} else { + _color = [1,0,0]; +}; + +_name = getText (configFile >> "CfgMagazines" >> _magazine >> "displayNameShort"); +_picture = getText (configFile >> "CfgMagazines" >> _magazine >> "picture"); +_text = [format["%1 x%2", _name, _numberOfMagazines], _color] call AGM_Core_fnc_stringToColoredText; +[_text, _picture] call AGM_Core_fnc_displayTextPicture; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_findNextGrenadeMagazine.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_findNextGrenadeMagazine.sqf new file mode 100644 index 0000000000..485e30f789 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_findNextGrenadeMagazine.sqf @@ -0,0 +1,32 @@ +// by commy2 + +private ["_scope", "_allMags", "_allMuzzles", "_magazines", "_start", "_index", "_nextMagazine"]; + +_scope = _this select 0; //"All", "Frag" or "NonFrag" + +_allMags = missionNamespace getVariable [format ["AGM_WeaponSelect_%1Magazines", _scope], []]; +_allMuzzles = missionNamespace getVariable [format ["AGM_WeaponSelect_%1Muzzles", _scope], []]; + +_magazines = magazines AGM_player; + +_start = [AGM_WeaponSelect_CurrentGrenadeMuzzleOther, AGM_WeaponSelect_CurrentGrenadeMuzzleFrag] select AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag; +_index = _allMuzzles find _start; + +scopeName "SearchMain"; + +_nextMagazine = ""; +for "_index" from (_index + 1) to (count _allMuzzles - 1) do { + { + if (_x in (_allMags select _index)) exitWith {_nextMagazine = _x; breakTo "SearchMain"}; + } count _magazines; +}; + +if (_nextMagazine != "") exitWith {_nextMagazine}; + +for "_index" from 0 to _index do { + { + if (_x in (_allMags select _index)) exitWith {_nextMagazine = _x; breakTo "SearchMain"}; + } count _magazines; +}; + +_nextMagazine diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_findNextGrenadeMuzzle.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_findNextGrenadeMuzzle.sqf new file mode 100644 index 0000000000..56dcf1a207 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_findNextGrenadeMuzzle.sqf @@ -0,0 +1,32 @@ +// by commy2 + +private ["_scope", "_allMags", "_allMuzzles", "_magazines", "_start", "_index", "_nextMuzzle"]; + +_scope = _this select 0; //"All", "Frag" or "NonFrag" + +_allMags = missionNamespace getVariable [format ["AGM_WeaponSelect_%1Magazines", _scope], []]; +_allMuzzles = missionNamespace getVariable [format ["AGM_WeaponSelect_%1Muzzles", _scope], []]; + +_magazines = magazines AGM_player; + +_start = [AGM_WeaponSelect_CurrentGrenadeMuzzleOther, AGM_WeaponSelect_CurrentGrenadeMuzzleFrag] select AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag; +_index = _allMuzzles find _start; + +scopeName "SearchMain"; + +_nextMuzzle = ""; +for "_index" from (_index + 1) to (count _allMuzzles - 1) do { + { + if (_x in (_allMags select _index)) exitWith {_nextMuzzle = _allMuzzles select _index; breakTo "SearchMain"}; + } count _magazines; +}; + +if (_nextMuzzle != "") exitWith {_nextMuzzle}; + +for "_index" from 0 to _index do { + { + if (_x in (_allMags select _index)) exitWith {_nextMuzzle = _allMuzzles select _index; breakTo "SearchMain"}; + } count _magazines; +}; + +_nextMuzzle diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_fireSmokeLauncher.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_fireSmokeLauncher.sqf new file mode 100644 index 0000000000..e5836589e8 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_fireSmokeLauncher.sqf @@ -0,0 +1,37 @@ +// by commy2 + +private ["_vehicle", "_turret", "_weapons"]; + +_vehicle = _this select 0; + +_turret = [typeOf _vehicle] call AGM_Core_fnc_getTurretCommander; + +_weapons = _vehicle weaponsTurret _turret; + +if ( + count _weapons > 1 + || {count _weapons > 0 && {!(_weapons select 0 in ["SmokeLauncher", "BWA3_SmokeLauncher"])}} // @todo somebody might use custom smoke launcher weapons aswell, maybe ... +) then { + //This doesn't work reliably for vehilces with additional weapons for the commander. Select smoke launcher instead. + + private "_index"; + + // avoid infinite loop + if !("SmokeLauncher" in _weapons) exitWith {}; + + _index = 0; + while { + _vehicle currentWeaponTurret _turret != "SmokeLauncher" + } do { + [commander _vehicle, _vehicle, _index] call AGM_WeaponSelect_fnc_selectWeaponVehicle; + _index = _index + 1; + }; +} else { + // fire away! + + private "_logic"; + + _logic = createGroup sideLogic createUnit ["Logic", [0,0,0], [], 0, "NONE"]; + _logic action ["useWeapon", _vehicle, commander _vehicle, 0]; + deleteVehicle _logic; +}; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_getSelectedGrenade.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_getSelectedGrenade.sqf new file mode 100644 index 0000000000..317366a8ff --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_getSelectedGrenade.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[AGM_WeaponSelect_CurrentGrenadeMuzzleOther, AGM_WeaponSelect_CurrentGrenadeMuzzleFrag] select AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_getWeaponModes.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_getWeaponModes.sqf new file mode 100644 index 0000000000..52d4dd73ea --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_getWeaponModes.sqf @@ -0,0 +1,26 @@ +/* + * Author: commy2 + * + * Get the available firing modes of a weapon. Will ignore the ai helper modes. + * + * Argument: + * 0: A weapon in cfgWeapons (String) + * + * Return value: + * All firing modes (Array) + */ + +private ["_weapon", "_modes"]; + +_weapon = _this select 0; + +_modes = []; +{ + if (getNumber (configFile >> "CfgWeapons" >> _weapon >> _x >> "showToPlayer") == 1) then { + _modes pushBack _x; + }; + if (_x == "this") then { + _modes pushBack _weapon; + }; +} forEach getArray (configfile >> "CfgWeapons" >> _weapon >> "modes"); +_modes diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_getWeaponMuzzles.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_getWeaponMuzzles.sqf new file mode 100644 index 0000000000..16ac740642 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_getWeaponMuzzles.sqf @@ -0,0 +1,22 @@ +/* + * Author: commy2 + * + * Get the muzzles of a weapon. + * + * Argument: + * 0: A weapon in cfgWeapons (String) + * + * Return value: + * All weapon muzzles (Array) + */ + +private ["_weapon", "_muzzles"]; + +_weapon = _this select 0; + +_muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles"); + +if ("this" in _muzzles) then { + _muzzles set [_muzzles find "this", _weapon]; +}; +_muzzles diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_playChangeFiremodeSound.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_playChangeFiremodeSound.sqf new file mode 100644 index 0000000000..8eb9b6178a --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_playChangeFiremodeSound.sqf @@ -0,0 +1,32 @@ +// by commy2 + +private ["_unit", "_weapon", "_sound"]; + +_unit = _this select 0; +_weapon = _this select 1; + +_sound = getArray (configFile >> "CfgWeapons" >> _weapon >> "changeFiremodeSound"); + +if (count _sound == 0) exitWith {}; + +// add file extension +if call { + { + if (toLower (_sound select 0) find _x == count toArray (_sound select 0) - count toArray _x - 1) exitWith {false}; + true + } forEach [".wav", ".ogg", ".wss"]; +} then { + _sound set [0, (_sound select 0) + ".wss"]; +}; + +// add default volume, pitch and distance +if (count _sound < 2) then {_sound pushBack 1}; +if (count _sound < 3) then {_sound pushBack 1}; +if (count _sound < 4) then {_sound pushBack 0}; + +private "_position"; + +_position = _unit modelToWorld (_unit selectionPosition "RightHand"); +_position set [2, (_position select 2) + ((getPosASLW _unit select 2) - (getPosATL _unit select 2) max 0)]; + +playSound3D [_sound select 0, objNull, false, _position, _sound select 1, _sound select 2, _sound select 3]; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_putWeaponAway.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_putWeaponAway.sqf new file mode 100644 index 0000000000..2be2670598 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_putWeaponAway.sqf @@ -0,0 +1,19 @@ +/* + * Author: commy2 + * + * The unit will put its current weapon away. + * + * Argument: + * 0: What unit should put the current weapon on back? (Object) + * + * Return value: + * None. + */ + +private "_player"; + +_player = _this select 0; + +[_player] call AGM_Core_fnc_fixLoweredRifleAnimation; + +_player action ["SwitchWeapon", _player, _player, 99]; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeAll.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeAll.sqf new file mode 100644 index 0000000000..1676dfcaa8 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeAll.sqf @@ -0,0 +1,51 @@ +/* + * Author: CAA-Picard, commy2 + * + * Cycle through all grenades. + * + * Argument: + * None + * + * Return value: + * None + */ + +private ["_player", "_nextMuzzle"]; + +_player = _this select 0; + +_nextMuzzle = ["All"] call AGM_WeaponSelect_fnc_findNextGrenadeMuzzle; + +if (_nextMuzzle != "") then { + + + private ["_magazines", "_magazine", "_count", "_return"]; + _magazines = AGM_WeaponSelect_AllMagazines select (AGM_WeaponSelect_AllMuzzles find _nextMuzzle); + reverse _magazines; + + _magazine = ""; + _count = {_return = _x in _magazines; if (_return) then {_magazine = _x}; _return} count magazines _player; + + // There is a muzzle with magazines --> cycle to it + [_player, _nextMuzzle] call AGM_WeaponSelect_fnc_setNextGrenadeMuzzle; + + [_magazine, _count] call AGM_WeaponSelect_fnc_displayGrenadeTypeAndNumber; + + [uiNamespace getVariable "AGM_dlgSoldier", true] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +} else { + // There is a no muzzle with magazines --> select nothing + AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = ""; AGM_WeaponSelect_CurrentGrenadeMuzzleOther = ""; + + _text = [localize "STR_AGM_WeaponSelect_NoGrenadesLeft", [1,0,0]] call AGM_Core_fnc_stringToColoredText; + [composeText [lineBreak, _text]] call AGM_Core_fnc_displayTextStructured; + + [uiNamespace getVariable "AGM_dlgSoldier", false] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +}; + +if (_nextMuzzle in AGM_WeaponSelect_FragMuzzles) then { + AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = _nextMuzzle; + AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag = true; +} else { + AGM_WeaponSelect_CurrentGrenadeMuzzleOther = _nextMuzzle; + AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag = false; +}; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeFrag.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeFrag.sqf new file mode 100644 index 0000000000..2798bc57db --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeFrag.sqf @@ -0,0 +1,45 @@ +/* + * Author: CAA-Picard, commy2 + * + * Cycle through frags. + * + * Argument: + * None + * + * Return value: + * None + */ + +private ["_player", "_nextMuzzle"]; + +_player = _this select 0; + +_nextMuzzle = ["Frag"] call AGM_WeaponSelect_fnc_findNextGrenadeMuzzle; + +if (_nextMuzzle != "") then { + AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = _nextMuzzle; + + private ["_magazines", "_magazine", "_count", "_return"]; + _magazines = AGM_WeaponSelect_FragMagazines select (AGM_WeaponSelect_FragMuzzles find _nextMuzzle); + reverse _magazines; + + _magazine = ""; + _count = {_return = _x in _magazines; if (_return) then {_magazine = _x}; _return} count magazines _player; + + // There is a muzzle with magazines --> cycle to it + [_player, _nextMuzzle] call AGM_WeaponSelect_fnc_setNextGrenadeMuzzle; + + [_magazine, _count] call AGM_WeaponSelect_fnc_displayGrenadeTypeAndNumber; + + [uiNamespace getVariable "AGM_dlgSoldier", true] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +} else { + // There is a no muzzle with magazines --> select nothing + AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = ""; + + _text = [localize "STR_AGM_WeaponSelect_NoFragsLeft", [1,0,0]] call AGM_Core_fnc_stringToColoredText; + [composeText [lineBreak, _text]] call AGM_Core_fnc_displayTextStructured; + + [uiNamespace getVariable "AGM_dlgSoldier", false] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +}; + +AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag = true; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeOther.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeOther.sqf new file mode 100644 index 0000000000..99290cc2d0 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectGrenadeOther.sqf @@ -0,0 +1,45 @@ +/* + * Author: CAA-Picard, commy2 + * + * Cycle through non explosive grenades. + * + * Argument: + * None + * + * Return value: + * None + */ + +private ["_player", "_nextMuzzle"]; + +_player = _this select 0; + +_nextMuzzle = ["NonFrag"] call AGM_WeaponSelect_fnc_findNextGrenadeMuzzle; + +if (_nextMuzzle != "") then { + AGM_WeaponSelect_CurrentGrenadeMuzzleOther = _nextMuzzle; + + private ["_magazines", "_magazine", "_count", "_return"]; + _magazines = AGM_WeaponSelect_NonFragMagazines select (AGM_WeaponSelect_NonFragMuzzles find _nextMuzzle); + reverse _magazines; + + _magazine = ""; + _count = {_return = _x in _magazines; if (_return) then {_magazine = _x}; _return} count magazines _player; + + // There is a muzzle with magazines --> cycle to it + [_player, _nextMuzzle] call AGM_WeaponSelect_fnc_setNextGrenadeMuzzle; + + [_magazine, _count] call AGM_WeaponSelect_fnc_displayGrenadeTypeAndNumber; + + [uiNamespace getVariable "AGM_dlgSoldier", true] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +} else { + // There is a no muzzle with magazines --> select nothing + AGM_WeaponSelect_CurrentGrenadeMuzzleOther = ""; + + _text = [localize "STR_AGM_WeaponSelect_NoMiscGrenadeLeft", [1,0,0]] call AGM_Core_fnc_stringToColoredText; + [composeText [lineBreak, _text]] call AGM_Core_fnc_displayTextStructured; + + [uiNamespace getVariable "AGM_dlgSoldier", false] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +}; + +AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag = false; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectMagazineVehicle.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectMagazineVehicle.sqf new file mode 100644 index 0000000000..51feec8e26 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectMagazineVehicle.sqf @@ -0,0 +1,52 @@ +// by commy2 + +private ["_vehicle", "_index", "_turret", "_weapon", "_magazine"]; + +_vehicle = _this select 0; +_index = _this select 1; + +_turret = [player] call AGM_Core_fnc_getTurretIndex; + +/* WIP + + + +_weapon = currentWeapon _vehicle; + + +_weapons = _vehicle weaponsTurret _turret; +_magazines = _vehicle magazinesTurret _turret; + + + + +vehicle player loadMagazine [[0], "cannon_120mm", "32Rnd_120mm_APFSDS_shells_Tracer_Red"] + + + + + +["cannon_105mm","LMG_M200"] + + + + + +vehicle player loadMagazine [[0,0], "SmokeLauncher", "SmokeLauncherMag"] + + + + + +player action ["SwitchMagazine", vehicle player, player, 1]; + + +*/ + + + + + + + + diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponMode.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponMode.sqf new file mode 100644 index 0000000000..f520cea519 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponMode.sqf @@ -0,0 +1,48 @@ +/* + * Author: commy2 + * + * The player will select the specified weapon or will change to the next firing mode if the weapon was already selected. + * + * Argument: + * 0: A weapon (String) + * + * Return value: + * None. + */ + +private ["_player", "_weapon", "_muzzles", "_modes", "_count", "_index", "_muzzle", "_mode"]; + +_player = _this select 0; +_weapon = _this select 1; + +if (_weapon == "") exitWith {}; + +if (currentWeapon _player != _weapon) exitWith { + _player selectWeapon _weapon; +}; + +// unlock safety +if (_weapon in (_player getVariable ["AGM_SafeMode_safedWeapons", []])) exitWith { + [_player, _weapon, _weapon] call AGM_SafeMode_fnc_unlockSafety; +}; + +_muzzles = [_weapon] call AGM_WeaponSelect_fnc_getWeaponMuzzles; +_modes = [_weapon] call AGM_WeaponSelect_fnc_getWeaponModes; + +_count = count _modes; +_index = (_modes find currentWeaponMode _player) + 1; +if (_index > _count - 1) then {_index = 0}; + +_muzzle = _muzzles select 0; +_mode = _modes select _index; + +_index = 0; +while { + _index < 100 && {currentMuzzle _player != _muzzle || {currentWeaponMode _player != _mode}} +} do { + _player action ["SwitchWeapon", _player, _player, _index]; + _index = _index + 1; +}; + +// play fire mode selector sound +[_player, _weapon] call AGM_WeaponSelect_fnc_playChangeFiremodeSound; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponMuzzle.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponMuzzle.sqf new file mode 100644 index 0000000000..d643366e25 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponMuzzle.sqf @@ -0,0 +1,46 @@ +/* + * Author: commy2 + * + * The player will select the specified weapon and change to the first additional muzzle. E.g. the grenade launcher of a assault rifle. + * + * Argument: + * 0: A weapon (String) + * + * Return value: + * None. + */ + +private ["_player", "_weapon", "_muzzles", "_count", "_index", "_muzzle"]; + +_player = _this select 0; +_weapon = _this select 1; + +if (_weapon == "") exitWith {}; + +_muzzles = [_weapon] call AGM_WeaponSelect_fnc_getWeaponMuzzles; + +if (currentWeapon _player != _weapon) exitWith { + if (count _muzzles > 1) then { + + // unlock safety + /*if (_weapon in (_player getVariable ["AGM_SafeMode_safedWeapons", []])) exitWith { + [_player, _weapon, _muzzles select 1] call AGM_SafeMode_fnc_unlockSafety; + };*/ + + _player selectWeapon (_muzzles select 1); + }; +}; + +_count = count _muzzles; +_index = (_muzzles find currentMuzzle _player) + 1; +if (_index > _count - 1) then {_index = 1}; + +_muzzle = _muzzles select _index; + +_index = 0; +while { + _index < 100 && {currentMuzzle _player != _muzzle} +} do { + _player action ["SwitchWeapon", _player, _player, _index]; + _index = _index + 1; +}; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponVehicle.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponVehicle.sqf new file mode 100644 index 0000000000..bb8d03f03d --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_selectWeaponVehicle.sqf @@ -0,0 +1,37 @@ +// by commy2 + +private ["_player", "_vehicle", "_index", "_turret", "_weapons", "_weapon"]; + +_player = _this select 0; +_vehicle = _this select 1; +_index = _this select 2; + +_turret = [_player] call AGM_Core_fnc_getTurretIndex; + +if (_turret isEqualTo [] && {_player == driver _vehicle}) then { + _weapons = weapons _vehicle; + if (_index > count _weapons - 1) exitWith {}; + + _weapon = _weapons select _index; + + _index = 0; + while { + _index < 100 && {currentWeapon _vehicle != _weapon} + } do { + _player action ["SwitchWeapon", _vehicle, _player, _index]; + _index = _index + 1; + }; +} else { + _weapons = _vehicle weaponsTurret _turret; + if (_index > count _weapons - 1) exitWith {}; + + _weapon = _weapons select _index; + + _index = 0; + while { + _index < 100 && {_vehicle currentWeaponTurret _turret != _weapon} + } do { + _player action ["SwitchWeapon", _vehicle, _player, _index]; + _index = _index + 1; + }; +}; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_setNextGrenadeMuzzle.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_setNextGrenadeMuzzle.sqf new file mode 100644 index 0000000000..3a029324bc --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_setNextGrenadeMuzzle.sqf @@ -0,0 +1,100 @@ +/* + * Author: CAA-Picard + * + * Select the next grenade muzzle to throw. + * + * Argument: + * muzzle name + * + * Return value: + * None + * + */ + +private ["_player", "_muzzle"]; + +_player = _this select 0; +_muzzle = _this select 1; + +_uniformMags = getMagazineCargo uniformContainer _player; +_vestMags = getMagazineCargo vestContainer _player; +_backPackMags = getMagazineCargo backpackContainer _player; + +_uniformMagsToRemove = []; +_vestMagsToRemove = []; +_backPackMagsToRemove = []; + +_firstMagazine = ""; + +// Collect which magazines to remove +_throwMuzzleNames = getArray (configfile >> "CfgWeapons" >> "Throw" >> "muzzles"); +{ + _muzzleName = _x; + _muzzleMagazines = getArray (configFile >> "CfgWeapons" >> "Throw" >> _muzzleName >> "magazines" ); + if (_muzzle != _muzzleName) then { + { + _index = (_uniformMags select 0) find _x; + if (_index > -1) then { + _uniformMagsToRemove = _uniformMagsToRemove + [[_x, (_uniformMags select 1) select _index]]; + }; + _index = (_vestMags select 0) find _x; + if (_index > -1) then { + _vestMagsToRemove = _vestMagsToRemove + [[_x, (_vestMags select 1) select _index]]; + }; + _index = (_backpackMags select 0) find _x; + if (_index > -1) then { + _backpackMagsToRemove = _backpackMagsToRemove + [[_x, (_backpackMags select 1) select _index]]; + }; + } forEach _muzzleMagazines; + } else { + { + _index = (_uniformMags select 0) find _x; + if (_index > -1) then { + _firstMagazine = _x; + }; + _index = (_vestMags select 0) find _x; + if (_index > -1) then { + _firstMagazine = _x; + }; + _index = (_backpackMags select 0) find _x; + if (_index > -1) then { + _firstMagazine = _x; + }; + } forEach _muzzleMagazines; + }; +} forEach _throwMuzzleNames; + +// Remove all magazines except those we are switching to --> this breaks the selector +{ + for [{_i=0},{_i < (_x select 1)}, {_i = _i + 1}] do { + _player removeItem (_x select 0); + }; +} forEach _uniformMagsToRemove; +{ + for [{_i=0},{_i < (_x select 1)}, {_i = _i + 1}] do { + _player removeItem (_x select 0); + }; +} forEach _vestMagsToRemove; +{ + for [{_i=0},{_i < (_x select 1)}, {_i = _i + 1}] do { + _player removeItem (_x select 0); + }; +} forEach _backPackMagsToRemove; + +// Readd magazines +{ + for [{_i=0},{_i < (_x select 1)}, {_i = _i + 1}] do { + _player addItemToUniform (_x select 0); + }; +} forEach _uniformMagsToRemove; +{ + for [{_i=0},{_i < (_x select 1)}, {_i = _i + 1}] do { + _player addItemToVest (_x select 0); + }; +} forEach _vestMagsToRemove; +{ + for [{_i=0},{_i < (_x select 1)}, {_i = _i + 1}] do { + _player addItemToBackpack (_x select 0); + }; +} forEach _backPackMagsToRemove; + diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_throwGrenade.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_throwGrenade.sqf new file mode 100644 index 0000000000..d93620da76 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_throwGrenade.sqf @@ -0,0 +1,19 @@ +// by commy2 + +private ["_unit", "_weapon", "_magazine"]; + +_unit = _this select 0; +_weapon = _this select 1; +_magazine = _this select 5; + +if (_weapon != "Throw") exitWith {}; + +private "_count"; +_count = {_x == _magazine} count magazines _unit; + +[_magazine, _count] call AGM_WeaponSelect_fnc_displayGrenadeTypeAndNumber; + +if (_count == 0) then { + if (AGM_WeaponSelect_CurrentGrenadeMuzzleIsFrag) then {AGM_WeaponSelect_CurrentGrenadeMuzzleFrag = ""} else {AGM_WeaponSelect_CurrentGrenadeMuzzleOther = ""}; + [uiNamespace getVariable "AGM_dlgSoldier", false] call AGM_WeaponSelect_fnc_toggleGrenadeCount; +}; diff --git a/TO_MERGE/agm/WeaponSelect/functions/fn_toggleGrenadeCount.sqf b/TO_MERGE/agm/WeaponSelect/functions/fn_toggleGrenadeCount.sqf new file mode 100644 index 0000000000..1e7a8c4b4b --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/functions/fn_toggleGrenadeCount.sqf @@ -0,0 +1,23 @@ +// by commy2 + +private ["_dlg", "_show"]; + +_dlg = _this select 0; +_show = _this select 1; + +if (_show) then { + private "_config"; + + _config = configFile >> "RscInGameUI" >> "RscUnitInfo" >> "WeaponInfoControlsGroupLeft" >> "controls" >> "CA_GrenadeCount"; + (_dlg displayCtrl 151) ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; + + _config = configFile >> "RscInGameUI" >> "RscUnitInfo" >> "WeaponInfoControlsGroupLeft" >> "controls" >> "CA_GrenadeType"; + (_dlg displayCtrl 152) ctrlSetPosition [getNumber (_config >> "x"), getNumber (_config >> "y"), getNumber (_config >> "w"), getNumber (_config >> "h")]; + +} else { + (_dlg displayCtrl 151) ctrlSetPosition [0,0,0,0]; + (_dlg displayCtrl 152) ctrlSetPosition [0,0,0,0]; +}; + +(_dlg displayCtrl 151) ctrlCommit 0; +(_dlg displayCtrl 152) ctrlCommit 0; diff --git a/TO_MERGE/agm/WeaponSelect/initActions.sqf b/TO_MERGE/agm/WeaponSelect/initActions.sqf new file mode 100644 index 0000000000..1ac3bfed73 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/initActions.sqf @@ -0,0 +1,25 @@ +// by commy2 + +private ["_unit", "_id"]; + +_unit = _this select 0; + +/*_id = [ + _unit, + format ["%1", localize "STR_AGM_WeaponSelect_ReadyGrenade"], + "Throw", + AGM_WeaponSelect_fnc_actionThrowCondition, + AGM_WeaponSelect_fnc_actionThrow, + {true}, + {[_this select 1] call AGM_WeaponSelect_fnc_selectGrenadeAll}, + 2 +] call AGM_Core_fnc_addActionMenuEventHandler;*/ + +_id = [ + _unit, + "Throw", + AGM_WeaponSelect_fnc_actionThrowCondition, + AGM_WeaponSelect_fnc_actionThrow +] call AGM_Core_fnc_addActionEventHandler; + +_unit setVariable ["AGM_WeaponSelect_ThrowActionID", _id]; diff --git a/TO_MERGE/agm/WeaponSelect/stringtable.xml b/TO_MERGE/agm/WeaponSelect/stringtable.xml new file mode 100644 index 0000000000..0d0c687745 --- /dev/null +++ b/TO_MERGE/agm/WeaponSelect/stringtable.xml @@ -0,0 +1,248 @@ + + + + + + Select Pistol + Pistole auswählen + Seleccionar pistola + Wybierz pistolet + Zvolit příruční zbraň + Выбрать пистолет + Sélectionner Pistolet + Pisztoly Kiválasztása + Selecionar Pistola + Seleziona la Pistola + + + Select Rifle + Gewehr auswählen + Seleccionar fusil + Wybierz karabin + Zvolit hlavní zbraň + Выбрать автомат + Sélectionner Fusil + Puska Kiválasztása + Selecionar Rifle + Seleziona il Fucile + + + Select Launcher + Raketenwerfer auswählen + Seleccionar lanzador + Wybierz wyrzutnię + Zvolit Raketomet + Выбрать гранатомет + Sélectionner Lanceur + Rakétavető Kiválasztása + Selecionar Lançador + Seleziona il Lanciatore + + + Select Grenade Launcher + Granatwerfer auswählen + Seleccionar lanzador de granadas + Wybierz granatnik + Zvolit Granátomet + Выбрать подствольный гранатомет + Sélectionner Lance-grenades + Gránátvető Kiválasztása + Selecionar Lança-Granadas + Seleziona il Lanciagranate + + + Select Binoculars + Fernglas auswählen + Seleccionar prismáticos + Wybierz lornetkę + Zvolit Dalekohled + Выбрать бинокль + Sélectionner Jumelles + Távcső Kiválasztása + Selecionar Binóculos + Seleziona il Binocolo + + + Holster Weapon + Waffe holstern + Enfundar el arma + Schowaj broń + Schovat zbraň + Убрать оружие + Arme à la bretelle + Fegyvert tokba + Guardar Arma + Nascondi l'arma + + + Engine on + Motor an + Encender motor + Włącz silnik + Moteur allumé + Motor indítása + Zapnout motor + Ligar Motor + Motore acceso + Включить двигатель + + + Engine off + Motor aus + Apagar motor + Wyłącz silnik + Moteur éteint + Motor leállítása + Vypnout motor + Desligar Motor + Motore spento + Выключить двигатель + + + Select Main Gun + Hauptgeschütz auswählen + Seleccionar arma principal + Wybierz główną broń + Sélectionner l'Arme Principale + Elsődleges Fegyver Kiválasztása + Zvolit Hlavní Zbraň + Selecionar Arma Principal + Seleziona Arma Primaria + Выбрать основное оружие + + + Select Machine Gun + Maschinengewehr auswählen + Seleccionar ametralladora + Wybierz karabin maszynowy + Sélectionner Mitrailleuse + Géppuska Kiválasztása + Zvolit Kulomet + Selecionar Metralhadora + Seleziona Mitragliatrice + Выбрать пулемёт + + + Select Missiles + Raketen auswählen + Seleccionar misiles + Wybierz rakiety + Sélectionner Missiles + Rakéták Kiválasztása + Zvolit Rakety + Selecionar Mísseis + Seleziona Missili + Выбрать ракеты + + + Grenade %1 + Granate %1 + Granada %1 + Granat %1 + Granát %1 + Gránát Kiválasztása + Граната %1 + + + Ready Grenade + Granate nehmen + Granada lista + Przygotuj granat + Odjistit granát + Kész Gránát + Подготовить гранату + + + Select Frag Grenade + Explosive Granate auswählen + Seleccionar granada de fragmenación + Wybierz granat odłamkowy + Sélectionner grenade à fragmentation + Repeszgránát Kiválasztása + Zvolit Výbušný Granát + Selecionar Granada de Fragmentação + Seleziona Granata a Frammentazione + Выбрать осколочную гранату + + + Select Non-Frag Grenade + Nichtexplosive Granate auswählen + Seleccionar granada de no fragmentación + Wybierz granat nieodłamkowy + Sélectionner grenade non-léthale + Nem Robbanó Gránát Kiválasztása + Zvolit Ne-Výbušný Granát + Selecionar Granada + Seleziona Altre Granate + Выбрать гранату + + + Throw Selected Grenade + Gewählte Granate werfen + Arrojar granada seleccionada + Rzuć wybrany granat + Lancer la grenade sélectionnée + Kiválasztott Gránát Eldobása + Hodit Zvolený Granát + Lançar Granada Selecionada + Lancia la Granata Selezionata + Бросить выбранную гранату + + + No grenades left + Keine Granaten übrig + No quedan granadas + Plus de grenades + Brak granatów + Žádné granáty + Nincs több gránát + Гранат не осталось + + + No frags left + Keine explosiven Granaten übrig + Sin granadas de fragmentación + Brak granatów odłamkowych + Plus de grenades à fragmentation + Nincs több repeszgránát + Už nejsou granáty + Não há granadas de fragmentação restantes + Nessuna granata a frammentazione rimanente + Осколочныких гранат нет + + + No misc. grenades left + Keine nichtexplosiven Granaten übrig + Sin granadas de varias + Brak granatów nieodłamkowych + Plus de grenades non-léthales + Nincs több egyéb gránát + Už nejsou žádné ostatní granáty + Não há outras granadas restantes + Nessun'altra granata rimanente. + Невзрывоопасные гранаты закончились + + + No grenade selected + Keine Granate ausgewählt + Granada no seleccionada + Nie wybrano żadnego granatu + Aucune grenade sélectionnée + Nincs kiválasztva gránát + Není zvolen žádný granát + Nenhuma granada selecionada + Nessuna granata selezionata + Нет выбранной гранаты + + + Fire Smoke Launcher + Rauchwand abfeuern + Disparar lanzador de humo + Kouřový odpalovač + Tirer le lance-pots fumigènes + Wystrzel granat dymny + Füst kilövése + Запустить дымовую завесу + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Wind/clientInit.sqf b/TO_MERGE/agm/Wind/clientInit.sqf new file mode 100644 index 0000000000..af21636287 --- /dev/null +++ b/TO_MERGE/agm/Wind/clientInit.sqf @@ -0,0 +1,89 @@ +// by CAA-Picard + +if !(hasInterface) exitWith {}; + +// Kestrel Stuff +AGM_isKestrel = false; +AGM_isKestrelWheel = false; + +0 spawn { + waitUntil {preloadTitleRsc ["AGM_Kestrel", "PLAIN"]}; + waitUntil {preloadTitleRsc ["AGM_KestrelWheel", "PLAIN"]}; + waitUntil {preloadTitleRsc ["AGM_KestrelWheel_Preload", "PLAIN"]}; +}; + +// Air temperature and air density +if (isNumber (configFile >> "CfgWorlds" >> worldName >> "AGM_TempMeanJan")) then { + AGM_TempMeanJan = getNumber (configFile >> "CfgWorlds" >> worldName >> "AGM_TempMeanJan"); + AGM_TempMeanJul = getNumber (configFile >> "CfgWorlds" >> worldName >> "AGM_TempMeanJul"); + AGM_TempAmplitudeJan = getNumber (configFile >> "CfgWorlds" >> worldName >> "AGM_TempAmplitudeJan"); + AGM_TempAmplitudeJul = getNumber (configFile >> "CfgWorlds" >> worldName >> "AGM_TempAmplitudeJul"); +} else { + _lat = - getNumber (configFile >> "CfgWorlds" >> worldName >> "latitude"); + if (_lat == 0) then {_lat = 0.1;}; + _yearlyTempMean = 28 min (28 - (abs(_lat) - 23.5) * (3.14159/180) * 6371 / 145); + AGM_TempMeanJan = _yearlyTempMean - _lat / abs(_lat) * ((abs(_lat) max 25) - 25) * 30 / 65; + AGM_TempMeanJul = _yearlyTempMean + _lat / abs(_lat) * ((abs(_lat) max 25) - 25) * 30 / 65; + AGM_TempAmplitudeJan = 10; + AGM_TempAmplitudeJul = 10; +}; + +0 spawn { + while {true} do { + _annualCoef = 0.5 - 0.5 * cos(360 * dateToNumber date); + _dailyTempMean = AGM_TempMeanJan * (1 - _annualCoef) + AGM_TempMeanJul * _annualCoef; + _dailyTempAmplitude = AGM_TempAmplitudeJan * (1 - _annualCoef) + AGM_TempAmplitudeJul * _annualCoef; + + _hourlyCoef = -0.5 * sin(360 * ((3 + (date select 3))/24 + (date select 4)/1440)); + AGM_Wind_currentTemperature = _dailyTempMean + _hourlyCoef * _dailyTempAmplitude - 2 * humidity - 4 * overcast; + AGM_Wind_currentRelativeDensity = (273.15 + 20) / (273.15 + AGM_Wind_currentTemperature); + sleep 60; + }; +}; + +// Wind & Temperature Readings +0 spawn { + while {true} do { + waitUntil {(inputAction "Compass" > 0 or inputAction "CompassToggle" > 0) and (vehicle player == player)}; + + _windStrength = sqrt((wind select 0) ^ 2 + (wind select 1) ^ 2); + + _arrowRscString = ""; + switch true do { + case (_windStrength <= 0.5) : {}; + case (_windStrength <= 3) : {_arrowRscString = "VeryLight";}; + case (_windStrength <= 5) : {_arrowRscString = "Light";}; + case (_windStrength <= 7) : {_arrowRscString = "Moderate";}; + default {_arrowRscString = "Strong";}; + }; + + _approxTemp = (round (AGM_Wind_currentTemperature / 5)) * 5; // in steps of 5 + hintSilent format ["%1: %2 °C", localize "STR_AGM_Wind_ApproximateTemp", _approxTemp]; + + // Draw arrow indicator + 186186 cutRsc ["AGM_Wind_Arrow", "PLAIN"]; + + // Calculate relative direction between player + #define numSectors 16 + _relAngle = windDir - (getdir (player)); + _sector = round(_relAngle / (360/numSectors)) + 1; + if (_sector < 1) then { + _sector = _sector + numSectors; + }; + if (_sector > numSectors) then { + _sector = _sector - numSectors; + }; + + // Update arrow indicator texture + _textureName = if (_arrowRscString == "") then { + "\AGM_Wind\ui\AGM_noWind.paa" + } else { + format["\AGM_Wind\ui\AGM_Wind%1-%2.paa", _arrowRscString, if (_sector < 10) then {"0"+str(_sector)} else {str(_sector)}] + }; + ((uiNamespace getVariable "AGM_Wind_Arrow") displayCtrl 185185) ctrlSetText _textureName; + + sleep 0.1; + //186186 cutText ["", "PLAIN"]; + hint ""; + }; +}; diff --git a/TO_MERGE/agm/Wind/config.cpp b/TO_MERGE/agm/Wind/config.cpp new file mode 100644 index 0000000000..5ec1605d99 --- /dev/null +++ b/TO_MERGE/agm/Wind/config.cpp @@ -0,0 +1,369 @@ +class CfgPatches { + class AGM_Wind { + units[] = {"AGM_Item_ItemKestrel"}; + weapons[] = {"AGM_ItemKestrel"}; + requiredVersion = 0.60; + requiredAddons[] = {AGM_Core, AGM_Interaction}; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"Falke", "commy2", "KoffeinFlummi", "CAA-Picard"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +class CfgFunctions { + class AGM_Wind { + class AGM_Wind { + file = "AGM_Wind\functions"; + class firedEH; + class init; + class openKestrel; + }; + }; +}; + +class Extended_PostInit_EventHandlers { + class AGM_Wind { + serverInit = "if (isServer && {call AGM_Core_fnc_isAutoWind}) then {setWind [wind select 0, wind select 1, true]};"; + clientInit = "call compile preprocessFileLineNumbers '\AGM_Wind\clientInit.sqf'"; + }; +}; + +class Extended_InitPost_EventHandlers { + class CAManBase { + class AGM_Wind { + init = "_this call AGM_Wind_fnc_init"; + }; + }; +}; + +class Extended_Fired_EventHandlers { + class CAManBase { + class AGM_Wind { + clientFired = "_this call AGM_Wind_fnc_firedEH"; + }; + }; +}; + +class CfgWeapons { + class AGM_ItemCore; + class InventoryItem_Base_F; + + class AGM_ItemKestrel: AGM_ItemCore { + author = "Falke"; + scope = 2; + displayName = "$STR_AGM_Kestrel_Name"; + descriptionShort = "$STR_AGM_Kestrel_Description"; + model = "\AGM_Wind\kestrel4500.p3d"; + picture = "\AGM_Wind\data\4500NV.paa"; + icon = "iconObject_circle"; + mapSize = 0.034; + class ItemInfo: InventoryItem_Base_F { + mass = 2; + }; + }; +}; + +class CfgVehicles { + class Man; + class CAManBase: Man { + class AGM_SelfActions { + class AGM_OpenKestrel { + displayName = "$STR_AGM_Wind_OpenKestrel"; + condition = "'AGM_ItemKestrel' in items player && {!underwater player} && {cameraView != 'Gunner'} && {!AGM_isKestrel}"; + statement = "call AGM_Wind_fnc_openKestrel"; + showDisabled = 0; + priority = 2; + icon = "AGM_Wind\data\4500NV1.paa"; + hotkey = "K"; + }; + class AGM_CloseKestrel { + displayName = "$STR_AGM_Wind_CloseKestrel"; + condition = "AGM_isKestrel"; + statement = "AGM_isKestrel = false"; + showDisabled = 0; + priority = 2; + icon = "AGM_Wind\data\4500NV1.paa"; + hotkey = "K"; + }; + }; + }; + + class Item_Base_F; + class AGM_Item_ItemKestrel: Item_Base_F { + author = "Falke"; + scope = 2; + scopeCurator = 2; + displayName = "$STR_AGM_Kestrel_Name"; + vehicleClass = "Items"; + class TransportItems { + class AGM_ItemKestrel { + name = "AGM_ItemKestrel"; + count = 1; + }; + }; + }; + + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + class TransportItems { + class _xx_AGM_ItemKestrel { + name = "AGM_ItemKestrel"; + count = 6; + }; + }; + }; +}; + + +class CfgAmmo { + class Default; + class BulletCore; + class B_127x108_Ball; + class B_127x99_Ball; + class BulletBase : BulletCore { + AGM_Bullet_Dispersion = 0; + }; + class B_127x108_APDS : B_127x108_Ball { + AGM_Bullet_Dispersion = 0.017; + }; + class B_127x99_SLAP : B_127x99_Ball { + AGM_Bullet_Dispersion = 0.017; + }; +}; + +class RscText; +class AGM_Rsc_Control_Base; +class AGM_Rsc_Display_Base; +class RscTitles { + titles[] = {AGM_Kestrel, AGM_KestrelWheel}; + + class AGM_Wind_Arrow { + idd = -1; + movingEnable=0; + duration=0.5; + fadeIn=0; + fadeOut=0.25; + onLoad = "with uiNameSpace do { AGM_Wind_Arrow = _this select 0 };"; + controls[] = {"AGM_Wind_Arrow_BG","AGM_Wind_Arrow_FW"}; + class AGM_Wind_Arrow_BG: RscText { + idc = -1; + type = 0; + style = 128; + colorBackground[] = {0,0,0,0}; + colorText[] = {0,0,0,0}; + text = ""; + sizeEx = 0.027; + x = "SafeZoneX + 0.001"; + y = "SafeZoneY + 0.05"; + w = 0.25; + h = 0.25; + size = 0.034; + }; + class AGM_Wind_Arrow_FW: AGM_Wind_Arrow_BG { + idc = 185185; + style = 48; + colorText[] = {1,1,1,1}; + sizeEx = 0.03; + text = ""; + }; + }; + + class AGM_Kestrel { + idd = -1; + movingEnable = 0; + enableSimulation = 1; + enableDisplay = 1; + onLoad = "_this spawn compile preprocessFileLineNumbers '\AGM_Wind\scripts\KestrelonLoad.sqf'"; + duration = 1e+011; + fadein = 0; + fadeout = 0; + name = "AGM_Kestrel"; + class RscPicture; + class RscText; + class controls { + class AGM_KestrelHUDpic: RscPicture { + idc = 42001; + type = 0; + text = "AGM_Wind\data\4500NV1.paa"; + style = 48 + 0x800; + x = safeZoneX -0.25; + y = safeZoneY + safeZoneH - 0.8; + h = 0.75; + w = 0.75; + scale = 1; + font = "PuristaMedium"; + sizeEx = 1; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {1, 1, 1, 1}; + shadow = 0; + }; + class AGM_KestrelHUDpic_Night: RscPicture { + idc = 42006; + type = 0; + text = "AGM_Wind\data\4500NV2.paa"; + style = 48 + 0x800; + x = safeZoneX -0.25; + y = safeZoneY + safeZoneH - 0.8; + h = 0.75; + w = 0.75; + scale = 1; + font = "PuristaMedium"; + sizeEx = 1; + colorText[] = {0,0,0,1-(sunOrMoon*sunOrMoon+(moonIntensity/5))}; + colorBackground[] = {1, 1, 1, 1}; + shadow = 0; + }; + class AGM_KestrelHUD1: RscText { + idc = 42002; + type = 0; + style = 1; + x = safeZoneX +0.08; + y = safeZoneY + safeZoneH -0.51; + h = 0.09; + w = 0.108; + sizeEx = 0.04; + lineSpacing = 1; + font = "PuristaMedium"; + text = " 0000"; + colorText[] = {0.0745,0.2196,0.1216, 0.7}; + colorBackground[] = {0, 0, 0, 0}; + shadow = 0; + }; + class AGM_KestrelHUD2: RscText { + idc = 42003; + type = 0; + style = 1; + x = safeZoneX +0.08; + y = safeZoneY + safeZoneH -0.48; + h = 0.09; + w = 0.108; + sizeEx = 0.04; + lineSpacing = 1; + font = "PuristaMedium"; + text = " 0000"; + colorText[] = {0.0745,0.2196,0.1216, 0.7}; + colorBackground[] = {0, 0, 0, 0}; + shadow = 0; + }; + class AGM_KestrelHUD3: RscText { + idc = 42004; + type = 0; + style = 1; + x = safeZoneX +0.08; + y = safeZoneY + safeZoneH -0.45; + h = 0.09; + w = 0.108; + sizeEx = 0.04; + lineSpacing = 1; + font = "PuristaMedium"; + text = " 0000"; + colorText[] = {0.0745,0.2196,0.1216, 0.7}; + colorBackground[] = {0, 0, 0, 0}; + shadow = 0; + }; + class AGM_KestrelHUD4: RscText { + idc = 42005; + type = 0; + style = 1; + //x = safeZoneX +0.068; + x = safeZoneX + 0.08; + y = safeZoneY + safeZoneH - 0.418; + h = 0.09; + w = 0.108; + //w = 0.138; + sizeEx = 0.04; + lineSpacing = 1; + font = "PuristaMedium"; + text = " 0000"; + colorText[] = {0.0745,0.2196,0.1216, 0.7}; + colorBackground[] = {0, 0, 0, 0}; + shadow = 0; + }; + }; + }; + class AGM_KestrelWheel { + idd = -1; + movingEnable = 0; + enableSimulation = 1; + enableDisplay = 1; + onLoad = "_this spawn compile preprocessFileLineNumbers '\AGM_Wind\scripts\KestrelonLoadRad.sqf'"; + duration = 1e+011; + fadein = 0; + fadeout = 0; + name = "AGM_KestrelWheel"; + class RscPicture; + class controls { + class AGM_KestrelHUDrad: RscPicture { + idc = 42010; + type = 0; + text = "AGM_Wind\data\kestrel_0.paa"; + style = 48 + 0x800; + x = safeZoneX + 0.07; + y = safeZoneY + safeZoneH - 0.76; + h = 0.15; + w = 0.15; + scale = 1; + font = "PuristaMedium"; + sizeEx = 1; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {1, 1, 1, 1}; + shadow = 0; + }; + }; + }; + + class AGM_KestrelWheel_Preload: AGM_Rsc_Display_Base { + class controlsBackground { + class Preload_0: AGM_Rsc_Control_Base { + text = "\AGM_Wind\data\kestrel_0.paa"; + }; + class Preload_1: Preload_0 { + text = "\AGM_Wind\data\kestrel_1.paa"; + }; + class Preload_2: Preload_0 { + text = "\AGM_Wind\data\kestrel_2.paa"; + }; + class Preload_3: Preload_0 { + text = "\AGM_Wind\data\kestrel_3.paa"; + }; + class Preload_4: Preload_0 { + text = "\AGM_Wind\data\kestrel_4.paa"; + }; + class Preload_5: Preload_0 { + text = "\AGM_Wind\data\kestrel_5.paa"; + }; + class Preload_6: Preload_0 { + text = "\AGM_Wind\data\kestrel_6.paa"; + }; + class Preload_7: Preload_0 { + text = "\AGM_Wind\data\kestrel_7.paa"; + }; + class Preload_8: Preload_0 { + text = "\AGM_Wind\data\kestrel_8.paa"; + }; + class Preload_9: Preload_0 { + text = "\AGM_Wind\data\kestrel_9.paa"; + }; + }; + }; +}; + +class CfgWorlds { + class CAWorld; + + class Stratis: CAWorld { + AGM_TempMeanJan = 7.4; + AGM_TempMeanJul = 25.9; + AGM_TempAmplitudeJan = 6.4; + AGM_TempAmplitudeJul = 9.2; + }; + + class Altis: CAWorld { + AGM_TempMeanJan = 7.4; + AGM_TempMeanJul = 25.9; + AGM_TempAmplitudeJan = 6.4; + AGM_TempAmplitudeJul = 9.2; + }; +}; diff --git a/TO_MERGE/agm/Wind/data/4500NV.paa b/TO_MERGE/agm/Wind/data/4500NV.paa new file mode 100644 index 0000000000..fd72433b9e Binary files /dev/null and b/TO_MERGE/agm/Wind/data/4500NV.paa differ diff --git a/TO_MERGE/agm/Wind/data/4500NV1.paa b/TO_MERGE/agm/Wind/data/4500NV1.paa new file mode 100644 index 0000000000..9a29b346fb Binary files /dev/null and b/TO_MERGE/agm/Wind/data/4500NV1.paa differ diff --git a/TO_MERGE/agm/Wind/data/4500NV2.paa b/TO_MERGE/agm/Wind/data/4500NV2.paa new file mode 100644 index 0000000000..992743a3a6 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/4500NV2.paa differ diff --git a/TO_MERGE/agm/Wind/data/arrow1.paa b/TO_MERGE/agm/Wind/data/arrow1.paa new file mode 100644 index 0000000000..8edb257ead Binary files /dev/null and b/TO_MERGE/agm/Wind/data/arrow1.paa differ diff --git a/TO_MERGE/agm/Wind/data/body.paa b/TO_MERGE/agm/Wind/data/body.paa new file mode 100644 index 0000000000..bec55bb418 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/body.paa differ diff --git a/TO_MERGE/agm/Wind/data/gpstemp.paa b/TO_MERGE/agm/Wind/data/gpstemp.paa new file mode 100644 index 0000000000..ef45fe406c Binary files /dev/null and b/TO_MERGE/agm/Wind/data/gpstemp.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_0.paa b/TO_MERGE/agm/Wind/data/kestrel_0.paa new file mode 100644 index 0000000000..190c25f100 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_0.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_1.paa b/TO_MERGE/agm/Wind/data/kestrel_1.paa new file mode 100644 index 0000000000..fe757888e4 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_1.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_2.paa b/TO_MERGE/agm/Wind/data/kestrel_2.paa new file mode 100644 index 0000000000..1b0fda0a65 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_2.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_3.paa b/TO_MERGE/agm/Wind/data/kestrel_3.paa new file mode 100644 index 0000000000..659f4597a3 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_3.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_4.paa b/TO_MERGE/agm/Wind/data/kestrel_4.paa new file mode 100644 index 0000000000..abb1ed6580 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_4.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_5.paa b/TO_MERGE/agm/Wind/data/kestrel_5.paa new file mode 100644 index 0000000000..800ed80d8b Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_5.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_6.paa b/TO_MERGE/agm/Wind/data/kestrel_6.paa new file mode 100644 index 0000000000..784e441c21 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_6.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_7.paa b/TO_MERGE/agm/Wind/data/kestrel_7.paa new file mode 100644 index 0000000000..9452286c2d Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_7.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_8.paa b/TO_MERGE/agm/Wind/data/kestrel_8.paa new file mode 100644 index 0000000000..31fe71ce84 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_8.paa differ diff --git a/TO_MERGE/agm/Wind/data/kestrel_9.paa b/TO_MERGE/agm/Wind/data/kestrel_9.paa new file mode 100644 index 0000000000..978506ef5d Binary files /dev/null and b/TO_MERGE/agm/Wind/data/kestrel_9.paa differ diff --git a/TO_MERGE/agm/Wind/data/rad.paa b/TO_MERGE/agm/Wind/data/rad.paa new file mode 100644 index 0000000000..13a3ffe6f7 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/rad.paa differ diff --git a/TO_MERGE/agm/Wind/data/tasten.paa b/TO_MERGE/agm/Wind/data/tasten.paa new file mode 100644 index 0000000000..8a140ec5f0 Binary files /dev/null and b/TO_MERGE/agm/Wind/data/tasten.paa differ diff --git a/TO_MERGE/agm/Wind/data/tasten1.paa b/TO_MERGE/agm/Wind/data/tasten1.paa new file mode 100644 index 0000000000..af441a51de Binary files /dev/null and b/TO_MERGE/agm/Wind/data/tasten1.paa differ diff --git a/TO_MERGE/agm/Wind/functions/fn_firedEH.sqf b/TO_MERGE/agm/Wind/functions/fn_firedEH.sqf new file mode 100644 index 0000000000..df714cf5df --- /dev/null +++ b/TO_MERGE/agm/Wind/functions/fn_firedEH.sqf @@ -0,0 +1,74 @@ +/* + * Authors: KoffeinFlummi, esteldunedain + * + * Changes the bullet trajectory depending on wind, density and temperature. + * + * Arguments: + * Fired EH + * + * Return Value: + * none + */ + +private ["_unit", "_ammoType", "_round", "_dispersion", "_additionalVel"]; + +_unit = _this select 0; +_ammoType = _this select 4; +_round = _this select 5; + +if !(local _unit) exitWith {}; +if !([_unit] call AGM_Core_fnc_isPlayer) exitWith {}; +if (_round isKindOf "GrenadeHand") exitWith {}; + +// Additional dispersion +_dispersion = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "AGM_Bullet_Dispersion"); + +// Powder temp effect +_additionalVel = (vectorMagnitude (velocity _round)) * ((((AGM_Wind_currentTemperature + 273.13) / 288.13 - 1) / 2.5 + 1 ) - 1); + +[_round, ((random 2) - 1) * _dispersion, ((random 2) - 1) * _dispersion, _additionalVel] call AGM_Core_fnc_changeProjectileDirection; + +_this spawn { + _ammoType = _this select 4; + _round = _this select 5; + + _airFriction = getNumber (configFile >> "CfgAmmo" >> _ammoType >> "airFriction"); + _simulation = getText (configFile >> "CfgAmmo" >> _ammoType >> "simulation"); + _time = time; + + if (_airFriction >= 0 || {_simulation == "shotMissile"} || {_simulation == "shotRocket"}) then { + // Do not correct for airDensity if airFriction is not logical on the first place + _airFriction = -0.0007; + while {!isNull _round and alive _round} do { + _deltaTime = time - _time; + + _velocity = velocity _round; + _velocityNew = _velocity + // Calculate approximate wind drag + vectorDiff (wind vectorMultiply (vectorMagnitude (_velocity vectorDiff wind) * AGM_Wind_currentRelativeDensity * _airFriction * _deltaTime)); + _round setVelocity _velocityNew; + + _time = time; + sleep 0.05; + }; + } else { + // Calculate total drag based on aparent wind + while {!isNull _round and alive _round} do { + _deltaTime = time - _time; + + // See https://github.com/KoffeinFlummi/AGM/issues/996 and See https://github.com/KoffeinFlummi/AGM/issues/1732 + _velocity = velocity _round; + _aparentWind = wind vectorDiff _velocity; + _velocityNew = (_velocity + // Undo engine's drag calculation (airFriction * V^2 * dt) + vectorDiff (_velocity vectorMultiply (vectorMagnitude _velocity * _airFriction * _deltaTime))) + // Calculate total drag based on aparent wind + vectorDiff (_aparentWind vectorMultiply (vectorMagnitude _aparentWind * AGM_Wind_currentRelativeDensity * _airFriction * _deltaTime)); + + _round setVelocity _velocityNew; + + _time = time; + sleep 0.05; + }; + }; +}; diff --git a/TO_MERGE/agm/Wind/functions/fn_init.sqf b/TO_MERGE/agm/Wind/functions/fn_init.sqf new file mode 100644 index 0000000000..1c7b385963 --- /dev/null +++ b/TO_MERGE/agm/Wind/functions/fn_init.sqf @@ -0,0 +1,9 @@ +private ["_unit"]; + +_unit = _this select 0; + +// Substitute wind calculations for AI by lowering accuracy +if !(isPlayer _unit) exitWith { + _windStrength = sqrt((wind select 0) ^ 2 + (wind select 1) ^ 2); + _unit setSkill ["aimingAccuracy", (_unit skill "aimingAccuracy") * (1 - _windStrength / 14)]; +}; diff --git a/TO_MERGE/agm/Wind/functions/fn_openKestrel.sqf b/TO_MERGE/agm/Wind/functions/fn_openKestrel.sqf new file mode 100644 index 0000000000..9fc7cefeb8 --- /dev/null +++ b/TO_MERGE/agm/Wind/functions/fn_openKestrel.sqf @@ -0,0 +1,7 @@ +// by commy2 + +AGM_isKestrel = true; +AGM_isKestrelWheel = true; + +(["AGM_KestrelWheel"] call BIS_fnc_rscLayer) cutRsc ["AGM_KestrelWheel", "PLAIN", 0, false]; +(["AGM_Kestrel"] call BIS_fnc_rscLayer) cutRsc ["AGM_Kestrel", "PLAIN", 0, false]; diff --git a/TO_MERGE/agm/Wind/kestrel4500.p3d b/TO_MERGE/agm/Wind/kestrel4500.p3d new file mode 100644 index 0000000000..af487e33a6 Binary files /dev/null and b/TO_MERGE/agm/Wind/kestrel4500.p3d differ diff --git a/TO_MERGE/agm/Wind/kestrel4500rad.p3d b/TO_MERGE/agm/Wind/kestrel4500rad.p3d new file mode 100644 index 0000000000..128c3be2d9 Binary files /dev/null and b/TO_MERGE/agm/Wind/kestrel4500rad.p3d differ diff --git a/TO_MERGE/agm/Wind/scripts/KestrelonLoad.sqf b/TO_MERGE/agm/Wind/scripts/KestrelonLoad.sqf new file mode 100644 index 0000000000..78e793deb0 --- /dev/null +++ b/TO_MERGE/agm/Wind/scripts/KestrelonLoad.sqf @@ -0,0 +1,125 @@ +// by Falke + +disableSerialization; +_display = _this select 0; +_ctrl1 = _display displayCtrl 42001; +_ctrl2 = _display displayCtrl 42002; +_ctrl3 = _display displayCtrl 42003; +_ctrl4 = _display displayCtrl 42004; +_ctrl5 = _display displayCtrl 42005; +_ctrl6 = _display displayCtrl 42006; +_sleep1 = 0.5; +AGM_Kestrel_wind_Head=0; +//unIFormItems _player+backpackItems _player+vestItems _player +//assigneditems _player + +_player = AGM_player; + +IF (!("AGM_ItemKestrel" in items _player )) THEN {AGM_isKestrel = FALSE;}; +IF (underwater _player) THEN {AGM_isKestrel = FALSE;}; + +WHILE {AGM_isKestrel} DO { + _dSpotter = direction _player; + _windrarray = WIND; + _windrA= _windrarray select 0; + _windrB= _windrarray select 1; + _windrC= sqrt ((_windrA * _windrA) + (_windrB * _windrB)); + _windrD= _windrA atan2 _windrB; + _windrR = _dSpotter - _windrD; + IF (_windrR < 0) THEN {_windrR = 360+_windrR;}; + _windrBB = _windrC * sin (_windrR); + _windrAA = sqrt ((_windrC * _windrC) - (_windrBB * _windrBB)); + IF (_windrR < 90) THEN {_windrAA= _windrAA - (_windrAA*2);}; + IF (_windrR > 270) THEN {_windrAA= _windrAA - (_windrAA*2);}; + + _OrtPlayer = eyePos _player; + _Pos0 = _OrtPlayer select 0; + _Pos1 = _OrtPlayer select 1; + _Pos2 = _OrtPlayer select 2; + + // im Gebaude + _Ort=0; + IF (lineIntersects [_OrtPlayer, [_Pos0,_Pos1,_Pos2 + 15]]) THEN {_Ort=_Ort+1}; + /* + if (lineIntersects [_OrtPlayer, [_Pos0,_Pos1 + 15,_Pos2]]) then {_Ort=_Ort+1}; + if (lineIntersects [_OrtPlayer, [_Pos0,_Pos1 - 15,_Pos2]]) then {_Ort=_Ort+1}; + if (lineIntersects [_OrtPlayer, [_Pos0 + 15,_Pos1,_Pos2]]) then {_Ort=_Ort+1}; + if (lineIntersects [_OrtPlayer, [_Pos0 - 15,_Pos1,_Pos2]]) then {_Ort=_Ort+1}; + */ + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin windDir) * 15, (_Pos1) - (cos windDir) * 15, (_Pos2)]]) THEN {_Ort=_Ort+1}; + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin (windDir-90)) * 15, (_Pos1) - (cos (windDir-90)) * 15, (_Pos2)]]) THEN {_Ort=_Ort+1}; + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin (windDir+90)) * 15, (_Pos1) - (cos (windDir+90)) * 15, (_Pos2)]]) THEN {_Ort=_Ort+1}; + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin (windDir+180)) * 15, (_Pos1) - (cos (windDir+180)) * 15, (_Pos2)]]) THEN {_Ort=_Ort+1}; + if (_Ort>3) then {_windrAA=99.99;_windrBB=99.99}; + + // in Windrichtung + _Ort=0; + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin windDir) * 5, (_Pos1) - (cos windDir) * 5, (_Pos2)]]) THEN {_Ort=_Ort+1}; + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin (windDir-15)) * 5, (_Pos1) - (cos (windDir-15)) * 5, (_Pos2)]]) THEN {_Ort=_Ort+1}; + IF (lineIntersects [[(_Pos0) , (_Pos1), (_Pos2)], [(_Pos0) - (sin (windDir+15)) * 5, (_Pos1) - (cos (windDir+15)) * 5, (_Pos2)]]) THEN {_Ort=_Ort+1}; + //IF (lineIntersects [_OrtPLAYER, [_Pos0,_Pos1,_Pos2 + 10]]) THEN {_Ort=_Ort+1}; + IF (_Ort>2) THEN {_windrAA=99.99;_windrBB=99.99}; + + /* + onEachFrame { + _OrtPLAYER = eyePos _player; + _Pos0=_OrtPLAYER select 0; + _Pos1=_OrtPLAYER select 1; + _Pos2=_OrtPLAYER select 2; + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin windDir) * 5, (_Pos1) - (cos windDir) * 5, (_Pos2)-(getPosASL _player SELECT 2)], [1,0,0,1]]; + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin (windDir-15)) * 5, (_Pos1) - (cos (windDir-15)) * 5, (_Pos2)-(getPosASL _player SELECT 2)], [1,0,0,1]]; + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin (windDir+15)) * 5, (_Pos1) - (cos (windDir+15)) * 5, (_Pos2)-(getPosASL _player SELECT 2)], [1,0,0,1]]; + + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [_Pos0,_Pos1,_Pos2 + 15-(getPosASL _player SELECT 2)], [0,0,1,1]]; + + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin (windDir)) * 15, (_Pos1) - (cos (windDir)) * 15, (_Pos2)-(getPosASL _player SELECT 2)], [0,1,0,1]]; + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin (windDir+90)) * 15, (_Pos1) - (cos (windDir+90)) * 15, (_Pos2)-(getPosASL _player SELECT 2)], [0,1,0,1]]; + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin (windDir-90)) * 15, (_Pos1) - (cos (windDir-90)) * 15, (_Pos2)-(getPosASL _player SELECT 2)], [0,1,0,1]]; + drawLine3D [[(_Pos0) , (_Pos1), (_Pos2)-(getPosASL _player SELECT 2)], [(_Pos0) - (sin (windDir+180)) * 15, (_Pos1) - (cos (windDir+180)) * 15, (_Pos2)-(getPosASL _player SELECT 2)], [0,1,0,1]]; + }; + */ + //IF (vehicle _player != _player) THEN {_windrAA=0;_windrBB=0}; + IF (_player != vehicle _player) THEN {_windrAA=0;_windrBB=0}; + + IF (_windrAA == 99.99) then { + AGM_Kestrel_wind_Head = 0; + _windrAA= "0.00"; + _windrBB= "0.00"; + }ELSE{ + AGM_Kestrel_wind_Head=_windrAA; + IF (_windrAA < 0) THEN { + _windrAA= FORMAT["-%1",[_windrAA*-1, 1, 2] call CBA_fnc_FORMATNumber]; + }ELSE{ + _windrAA= FORMAT["%1",[_windrAA, 1, 2] call CBA_fnc_FORMATNumber]; + }; + IF (_windrBB < 0) THEN { + _windrBB= FORMAT["-%1",[_windrBB*-1, 1, 2] call CBA_fnc_FORMATNumber]; + }ELSE{ + _windrBB= FORMAT["%1",[_windrBB, 1, 2] call CBA_fnc_FORMATNumber]; + }; + }; + + _ctrl2 ctrlSetText _windrAA; + _ctrl3 ctrlSetText _windrBB; + _ctrl4 ctrlSetText FORMAT["%1",round (direction _player)]; + _ctrl5 ctrlSetText FORMAT["%1", (round (AGM_Wind_currentTemperature * 10)) / 10]; + _ctrl6 ctrlsettextcolor [0,0,0,1-(sunOrMoon*sunOrMoon+(moonIntensity/5))]; + + IF (!("AGM_ItemKestrel" in items _player)) THEN {AGM_isKestrel = FALSE;}; + IF ( + underwater _player || + //{_player != vehicle _player} || + {cameraView == "GUNNER"} || + {!alive _player} + ) THEN {AGM_isKestrel = FALSE;}; + IF (!AGM_isKestrel) THEN {_sleep1 = 0.01;}; + + SLEEP _sleep1; +}; +AGM_isKestrelWheel=False; +_ctrl1 ctrlShow false; +_ctrl2 ctrlShow false; +_ctrl3 ctrlShow false; +_ctrl4 ctrlShow false; +_ctrl5 ctrlShow false; +_ctrl6 ctrlShow false; diff --git a/TO_MERGE/agm/Wind/scripts/KestrelonLoadRad.sqf b/TO_MERGE/agm/Wind/scripts/KestrelonLoadRad.sqf new file mode 100644 index 0000000000..82c7dcc7f5 --- /dev/null +++ b/TO_MERGE/agm/Wind/scripts/KestrelonLoadRad.sqf @@ -0,0 +1,22 @@ +// by Falke + +disableSerialization; +_display1 = _this select 0; +_ctrl10 = _display1 displayCtrl 42010; +_rad1=1; +AGM_Kestrel_wind_Head=0; +while {AGM_isKestrelWheel} do { + _rad2=(AGM_Kestrel_wind_Head*2); + if (_rad2 > 5) then { _rad2=5; }; + if (_rad2 < -5) then { _rad2=-5; }; + _rad1=_rad1+_rad2; + if (_rad1 < 0) then { _rad1=_rad1+9; }; + if (_rad1 > 9) then { _rad1=_rad1-9; }; + waitUntil {preloadTitleRsc ["AGM_KestrelWheel_Preload", "PLAIN"]}; + _ctrl10 ctrlSetText format["AGM_Wind\data\kestrel_%1.paa",round _rad1]; + _Night = (sunOrMoon*sunOrMoon+(moonIntensity/5)); + _ctrl10 ctrlsettextcolor [_Night,_Night,_Night,1]; + sleep 0.01; + _i = 0; waitUntil {_i = _i + 1; _i > 1}; +}; +_ctrl10 ctrlShow false; diff --git a/TO_MERGE/agm/Wind/stringtable.xml b/TO_MERGE/agm/Wind/stringtable.xml new file mode 100644 index 0000000000..be69952adb --- /dev/null +++ b/TO_MERGE/agm/Wind/stringtable.xml @@ -0,0 +1,64 @@ + + + + + + Approximate Temperature + Ungefähre Temperatur + Temperatura aproximada + Estimer la température + Przybliżona temperatura + Odhadovaná teplota + Hőmérséklet nagyábol + Примерная температура + + + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + Kestrel 4500NV + + + Applied Ballistics Meter + Applied Ballistics Meter + Anemómetro balístico + Applied Ballistics Meter + Urządzenie do monitorowania pogody + Zařízení pro měření vítru + Monitoraggio Balistico Attivo + Applied Ballistics Meter + Medidor Balístico Ativo + метеостанция + + + Open Kestrel + Kestrel öffnen + Abrir Kestrel + Ouvrir Kestrel + Otwórz Kestrel + Otevřít Kestrel + Abrir Kestrel + Apri Kestrel + Kestrel bekapcsolása + Открыть Kestrel + + + Close Kestrel + Kestrel schließen + Cerrar Kestrel + Fermer Kestrel + Zamknij Kestrel + Zavřít Kestrel + Fechar Kestrel + Chiudi Kestrel + Kestrel kikapcsolása + Закрыть Kestrel + + + \ No newline at end of file diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-01.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-01.paa new file mode 100644 index 0000000000..9865029c93 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-01.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-02.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-02.paa new file mode 100644 index 0000000000..a02147e6ee Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-02.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-03.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-03.paa new file mode 100644 index 0000000000..340cfdcd6e Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-03.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-04.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-04.paa new file mode 100644 index 0000000000..6d8404fb86 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-04.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-05.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-05.paa new file mode 100644 index 0000000000..2de5cdbd74 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-05.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-06.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-06.paa new file mode 100644 index 0000000000..c5e0a40af7 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-06.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-07.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-07.paa new file mode 100644 index 0000000000..4df57f7585 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-07.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-08.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-08.paa new file mode 100644 index 0000000000..8c5012502f Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-08.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-09.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-09.paa new file mode 100644 index 0000000000..15173a56ab Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-09.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-10.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-10.paa new file mode 100644 index 0000000000..83c860cecb Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-10.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-11.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-11.paa new file mode 100644 index 0000000000..8beeb80d98 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-11.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-12.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-12.paa new file mode 100644 index 0000000000..d9a62f9e81 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-12.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-13.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-13.paa new file mode 100644 index 0000000000..87a8dfcca9 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-13.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-14.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-14.paa new file mode 100644 index 0000000000..f9200aaf2d Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-14.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-15.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-15.paa new file mode 100644 index 0000000000..e3ee52d21e Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-15.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindLight-16.paa b/TO_MERGE/agm/Wind/ui/AGM_WindLight-16.paa new file mode 100644 index 0000000000..9b835e62c4 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindLight-16.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-01.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-01.paa new file mode 100644 index 0000000000..fd4d255c35 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-01.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-02.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-02.paa new file mode 100644 index 0000000000..db6e8dcebc Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-02.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-03.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-03.paa new file mode 100644 index 0000000000..300934ff37 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-03.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-04.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-04.paa new file mode 100644 index 0000000000..f7b8331dae Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-04.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-05.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-05.paa new file mode 100644 index 0000000000..a3b0a532ff Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-05.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-06.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-06.paa new file mode 100644 index 0000000000..495ec6bc15 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-06.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-07.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-07.paa new file mode 100644 index 0000000000..d0471a4c4f Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-07.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-08.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-08.paa new file mode 100644 index 0000000000..967e9d8ef7 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-08.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-09.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-09.paa new file mode 100644 index 0000000000..54ef3eabf9 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-09.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-10.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-10.paa new file mode 100644 index 0000000000..e7608c2e02 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-10.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-11.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-11.paa new file mode 100644 index 0000000000..6d1ce9418e Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-11.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-12.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-12.paa new file mode 100644 index 0000000000..2b853dca89 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-12.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-13.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-13.paa new file mode 100644 index 0000000000..56443ab4f9 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-13.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-14.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-14.paa new file mode 100644 index 0000000000..06cb4610fb Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-14.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-15.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-15.paa new file mode 100644 index 0000000000..5f548b6ac9 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-15.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindModerate-16.paa b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-16.paa new file mode 100644 index 0000000000..617e83193d Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindModerate-16.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-01.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-01.paa new file mode 100644 index 0000000000..87c2db663c Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-01.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-02.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-02.paa new file mode 100644 index 0000000000..8d29483635 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-02.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-03.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-03.paa new file mode 100644 index 0000000000..fc08f14e1b Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-03.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-04.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-04.paa new file mode 100644 index 0000000000..3fbbd70302 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-04.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-05.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-05.paa new file mode 100644 index 0000000000..2254b0d545 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-05.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-06.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-06.paa new file mode 100644 index 0000000000..6054696d61 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-06.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-07.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-07.paa new file mode 100644 index 0000000000..d62308dfc9 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-07.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-08.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-08.paa new file mode 100644 index 0000000000..cce04ab099 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-08.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-09.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-09.paa new file mode 100644 index 0000000000..e2c53aec6f Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-09.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-10.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-10.paa new file mode 100644 index 0000000000..609b54096a Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-10.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-11.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-11.paa new file mode 100644 index 0000000000..705cc5bd10 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-11.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-12.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-12.paa new file mode 100644 index 0000000000..d8d585d6eb Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-12.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-13.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-13.paa new file mode 100644 index 0000000000..d903c832ab Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-13.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-14.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-14.paa new file mode 100644 index 0000000000..91153a801b Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-14.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-15.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-15.paa new file mode 100644 index 0000000000..d0a34d79e4 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-15.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindStrong-16.paa b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-16.paa new file mode 100644 index 0000000000..1be25039e4 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindStrong-16.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-01.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-01.paa new file mode 100644 index 0000000000..561e52ec88 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-01.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-02.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-02.paa new file mode 100644 index 0000000000..fbce91664a Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-02.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-03.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-03.paa new file mode 100644 index 0000000000..f20ced9770 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-03.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-04.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-04.paa new file mode 100644 index 0000000000..6b104848da Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-04.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-05.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-05.paa new file mode 100644 index 0000000000..f8e30a0c64 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-05.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-06.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-06.paa new file mode 100644 index 0000000000..3a11d94cba Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-06.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-07.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-07.paa new file mode 100644 index 0000000000..b956cb478b Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-07.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-08.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-08.paa new file mode 100644 index 0000000000..090f630d8f Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-08.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-09.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-09.paa new file mode 100644 index 0000000000..d8b8b7eff1 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-09.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-10.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-10.paa new file mode 100644 index 0000000000..0151ad3779 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-10.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-11.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-11.paa new file mode 100644 index 0000000000..241980a1e0 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-11.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-12.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-12.paa new file mode 100644 index 0000000000..adcaf136fa Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-12.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-13.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-13.paa new file mode 100644 index 0000000000..d381f0cc9e Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-13.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-14.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-14.paa new file mode 100644 index 0000000000..0e77f697e2 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-14.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-15.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-15.paa new file mode 100644 index 0000000000..ad283a4d76 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-15.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-16.paa b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-16.paa new file mode 100644 index 0000000000..b7ae70a989 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_WindVeryLight-16.paa differ diff --git a/TO_MERGE/agm/Wind/ui/AGM_noWind.paa b/TO_MERGE/agm/Wind/ui/AGM_noWind.paa new file mode 100644 index 0000000000..8fa262c286 Binary files /dev/null and b/TO_MERGE/agm/Wind/ui/AGM_noWind.paa differ diff --git a/addons/core/$PBOPREFIX$ b/addons/core/$PBOPREFIX$ new file mode 100644 index 0000000000..cf1ff42a75 --- /dev/null +++ b/addons/core/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\core \ No newline at end of file diff --git a/addons/core/CfgEventHandlers.hpp b/addons/core/CfgEventHandlers.hpp new file mode 100644 index 0000000000..8e5f37210d --- /dev/null +++ b/addons/core/CfgEventHandlers.hpp @@ -0,0 +1,41 @@ +class Extended_PreInit_EventHandlers { + class ADDON { + init = QUOTE(call compile preprocessFileLineNumbers PATHTOF(XEH_preInit.sqf) ); + serverInit = QUOTE(call compile preprocessFileLineNumbers PATHTOF(scripts\readParameters.sqf) ); + disableModuload = true; + }; +}; + +class Extended_PostInit_EventHandlers { + class ADDON { + init = QUOTE(call compile preprocessFileLineNumbers PATHTOF(XEH_postInit.sqf) ); + disableModuload = true; + }; +}; + +class Extended_InitPost_EventHandlers { + class All { + class GVAR(executePersistent) { + init = QUOTE([_this select 0] call GVAR(fnc_executePersistent) ); + }; + }; + class CAManBase { + class GVAR(setName) { + init = QUOTE(if (local (_this select 0)) then { _this call FUNC(setName) }; ); + }; + class AGM_Core_forceWalk { + init = QUOTE(if (local (_this select 0)) then { _this call FUNC(applyForceWalkStatus); }; ); + }; + }; +}; + +class Extended_Respawn_EventHandlers { + class All { + class GVAR(restoreVariablesJIP) { + respawn = QUOTE(_this call GVAR(fnc_restoreVariablesJIP) ); + }; + class GVAR(setName) { + respawn = QUOTE(_this call GVAR(fnc_setName) ); + }; + }; +}; \ No newline at end of file diff --git a/addons/core/CfgFunctions.hpp b/addons/core/CfgFunctions.hpp new file mode 100644 index 0000000000..ba40a17a6f --- /dev/null +++ b/addons/core/CfgFunctions.hpp @@ -0,0 +1,147 @@ +class CfgFunctions { + class ADDON { + class ADDON { + file = PATHTOF(functions\); + class addActionEventHandler; + class addActionMenuEventHandler; + class addCameraEventHandler; + class addCustomEventHandler; + class addInfoDisplayEventHandler; + class addMapMarkerCreatedEventHandler; + class addInventoryDisplayLoadedEventHandler; + class addScrollWheelEventHandler; + class adminKick; + class ambientBrightness; + class applyForceWalkStatus; + class binarizeNumber; + class callCustomEventHandlers; + class callCustomEventHandlersGlobal; + class canGetInPosition; + class canInteractWith; + class canUseWeapon; + class changeProjectileDirection; + class checkPBOs; + class claim; + class closeDialogIfTargetMoves; + class codeToLetter; + class codeToString; + class convertKeyCode; + class currentChannel; + class disableUserInput; + class displayText; + class displayTextPicture; + class displayTextStructured; + class doAnimation; + class endRadioTransmission; + class execPersistentFnc; + class execRemoteFnc; + class executePersistent; + class filter; + class fixLoweredRifleAnimation; + class getCaptivityStatus; + class getConfigCommander; + class getConfigGunner; + class getDefaultAnim; + class getDoorTurrets; + class getForceWalkStatus; + class getHitPoints; + class getHitPointsWithSelections; + class getInPosition; + class getMarkerType; + class getName; + class getNumberFromMissionSQM; + class getPitchBankYaw; + class getStringFromMissionSQM; + class getTargetAzimuthAndInclination; + class getTargetDistance; + class getTargetObject; + class getTurretCommander; + class getTurretConfigPath; + class getTurretCopilot; + class getTurretGunner; + class getTurretIndex; + class getTurrets; + class getTurretsFFV; + class getTurretsOther; + class getUavControlPosition; + class getVehicleCargo; + class getVehicleCodriver; + class getVehicleCrew; + class getWeaponAzimuthAndInclination; + class getWeaponType; + class getWindDirection; + class goKneeling; + class hadamardProduct; + class interpolateFromArray; + class inTransitionAnim; + class isAutoWind; + class isEngineer; + class isEOD; + class isInBuilding; + class isMedic; + class isPlayer; + class isTurnedOut; + class letterToCode; + class map; + class moduleCheckPBOs; + class moduleLSDVehicles; + class muteUnit; + class numberToDigits; + class numberToDigitsString; + class onLoadRscDisplayChannel; + class owned; + class player; + class playerSide; + class progressBar; + class queueAnimation; + class readBooleanParameterFromModule; + class readNumericParameterFromModule; + class removeActionEventHandler; + class removeActionMenuEventHandler; + class removeCameraEventHandler; + class removeCustomEventHandler; + class removeInfoDisplayEventHandler; + class removeInventoryDisplayLoadedEventHandler; + class removeMapMarkerCreatedEventHandler; + class removeScrollWheelEventHandler; + class restoreVariablesJIP; + class revertKeyCodeLocalized; + class sanitizeString; + class serverLog; + class setCaptivityStatus; + class setForceWalkStatus; + class setKeyDefault; + class setName; + class setParameter; + class setPitchBankYaw; + class setVariableJIP; + class stringToColoredText; + class subString; + class toBin; + class toBitmask; + class toHex; + class toNumber; + class unmuteUnit; + }; + }; + class AGM_Debug { + class AGM_Debug { + file = "AGM_Core\functions\Debug"; + class exportConfig; + class getChildren; + class getDisplayConfigName; + class log; + class logControls; + class logDisplays; + class monitor; + class showUser; + }; + }; + class AGM_CuratorFix { + class AGM_CuratorFix { + file = "AGM_Core\functions\CuratorFix"; + class addUnloadEventhandler; + class fixCrateContent; + }; + }; +}; \ No newline at end of file diff --git a/addons/core/CfgSounds.hpp b/addons/core/CfgSounds.hpp new file mode 100644 index 0000000000..d382a8356b --- /dev/null +++ b/addons/core/CfgSounds.hpp @@ -0,0 +1,7 @@ + +class CfgSounds { + class AGM_Sound_Click { + sound[] = {"\AGM_Core\sounds\AGM_click.wav", 1, 1, 200}; + titles[] = {}; + }; +}; \ No newline at end of file diff --git a/addons/core/CfgVehicles.hpp b/addons/core/CfgVehicles.hpp new file mode 100644 index 0000000000..e17a0e90c3 --- /dev/null +++ b/addons/core/CfgVehicles.hpp @@ -0,0 +1,108 @@ +class CfgVehicles { + /*class Man; + class CAManBase: Man { + // @todo + class UserActions { + class AGM_Fire { + displayName = ""; + priority = -99; + available = 1; + radius = 2.5; + radiusView = 0; + position = ""; + showWindow = 0; + showIn3D = 0; + onlyForPlayer = 1; + shortcut = "DefaultAction"; + condition = "call AGM_Core_UserActionFireCondition"; + statement = "call AGM_Core_UserActionFire"; + userActionID = 100; + }; + }; + };*/ + + // += needs a non inherited entry in that class, otherwise it simply overwrites + //#include + + class Module_F; + class AGM_ModuleCheckPBOs: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "Check PBOs"; + function = "AGM_Core_fnc_moduleCheckPBOs"; + scope = 2; + isGlobal = 1; + icon = "\AGM_Core\UI\IconCheckPBO_ca.paa"; + class Arguments { + class Action { + displayName = "Action"; + description = "What to do with people who do not have the right PBOs?"; + class values { + class WarnOnce { + default = 1; + name = "Warn once"; + value = 0; + }; + class Warn { + name = "Warn (permanent)"; + value = 1; + }; + class Kick { + name = "Kick"; + value = 2; + }; + }; + }; + class CheckAll { + displayName = "Check all addons"; + description = "Check all addons instead of only those of AGM?"; + typeName = "BOOL"; + class values { + class WarnOnce { + default = 1; + name = "No"; + value = 0; + }; + class Warn { + name = "Yes"; + value = 1; + }; + }; + }; + class Whitelist { + displayName = "Whitelist"; + description = "What addons are allowed regardless?"; + typeName = "STRING"; + class values { + default = "[]"; + }; + }; + }; + }; + + class AGM_ModuleLSDVehicles: Module_F { + author = "$STR_AGM_Core_AGMTeam"; + category = "AGM"; + displayName = "LSD Vehicles"; + function = "AGM_Core_fnc_moduleLSDVehicles"; + scope = 2; + isGlobal = 1; + class Arguments { + }; + }; + + class Box_NATO_Support_F; + class AGM_Box_Misc: Box_NATO_Support_F { + author = "$STR_AGM_Core_AGMTeam"; + displayName = "$STR_AGM_Core_MiscItems"; + transportMaxWeapons = 9001; + transportMaxMagazines = 9001; + transportMaxItems = 9001; + maximumload = 2000; + + class TransportWeapons {}; + class TransportMagazines {}; + class TransportItems {}; + class TransportBackpacks {}; + }; +}; \ No newline at end of file diff --git a/addons/core/CfgWeapons.hpp b/addons/core/CfgWeapons.hpp new file mode 100644 index 0000000000..05f36e8c89 --- /dev/null +++ b/addons/core/CfgWeapons.hpp @@ -0,0 +1,30 @@ +class CfgWeapons { + class ItemCore; + class AGM_ItemCore: ItemCore { + type = 4096;//4; + detectRange = -1; + simulation = "ItemMineDetector"; + }; + + class Rifle_Base_F; + class AGM_FakePrimaryWeapon: Rifle_Base_F { + discreteDistance[] = {}; + discreteDistanceInitIndex = 0; + displayName = ""; + picture = ""; + model = ""; + magazines[] = {"AGM_FakeMagazine"}; + scope = 2; + }; +}; + +class CfgMagazines { + class CA_Magazine; + + class AGM_FakeMagazine: CA_Magazine { + descriptionShort = ""; + displayName = ""; + displayNameShort = ""; + count = 0; + }; +}; \ No newline at end of file diff --git a/addons/core/DefaultItems.hpp b/addons/core/DefaultItems.hpp new file mode 100644 index 0000000000..e228fca522 --- /dev/null +++ b/addons/core/DefaultItems.hpp @@ -0,0 +1,1030 @@ +/* + +Autoexported while playing the unmodded game. + + +A = "_c = _x >> 'items'; isArray _c" configClasses (configFile >> "CfgVehicles"); + +B = []; {B set [_forEachIndex, inheritsFrom _x]} forEach A; +E = B - A; + +C = []; {C set [_forEachIndex, getArray (_x >> "items")]} forEach A; +D = []; {D set [_forEachIndex, getArray (_x >> "respawnItems")]} forEach A; + +{A set [_forEachIndex, configName _x]} forEach A; +{B set [_forEachIndex, configName _x]} forEach B; +{E set [_forEachIndex, configName _x]} forEach E; + +diag_log text "====================="; + +{ + diag_log text format ["class %1;", _x]; +} forEach E; + +{ + diag_log text format ["class %1: %2 {", _x, B select _forEachIndex]; + _s = str (C select _forEachIndex); _s = toString (toArray _s - [91,93]); + diag_log text format [" items[] = {%1};", _s]; + _s = str (D select _forEachIndex); _s = toString (toArray _s - [91,93]); + diag_log text format [" respawnItems[] = {%1};", _s]; + diag_log text "};"; +} forEach A; + +*/ + +class SoldierWB; +class SoldierGB; +class SoldierEB; +class C_man_1; +class B_Soldier_base_F: SoldierWB { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_02_f: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_03_f: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_04_f: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_05_f: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_RangeMaster_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_lite_F: B_Soldier_03_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_GL_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_AR_F: B_Soldier_02_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_SL_F: B_Soldier_03_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_TL_F: B_Soldier_03_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_M_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_LAT_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_medic_F: B_Soldier_02_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_repair_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_exp_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Helipilot_F: B_Soldier_04_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_A_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_AT_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_AA_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_engineer_F: B_Soldier_03_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_crew_F: B_Soldier_03_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_officer_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Competitor_F: B_RangeMaster_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Pilot_F: B_Soldier_05_f { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_helicrew_F: B_Helipilot_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_PG_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_UAV_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class b_soldier_unarmed_f: B_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_diver_base_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_diver_F: B_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_diver_TL_F: B_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_diver_exp_F: B_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_recon_base: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_LAT_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_exp_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_medic_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_TL_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_M_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_recon_JTAC_F: B_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_sniper_base_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_spotter_F: B_Soldier_sniper_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_sniper_F: B_Soldier_sniper_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Story_SF_Captain_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Story_Protagonist_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Story_Engineer_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Story_Colonel_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Story_Pilot_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Story_Tank_Commander_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class b_soldier_survival_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_CTRG_soldier_GL_LAT_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_CTRG_soldier_engineer_exp_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_CTRG_soldier_M_medic_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_CTRG_soldier_AR_A_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_support_base_F: B_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_AAR_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_AAT_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_soldier_AAA_F: B_soldier_AAT_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_support_MG_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_support_GMG_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_support_Mort_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_support_AMG_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_support_AMort_F: B_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_base_F: SoldierGB { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_lite_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_SL_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_TL_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_AR_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_medic_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_engineer_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_exp_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_GL_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_M_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_LAT_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Soldier_A_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_officer_F: I_G_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_F: I_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_F: I_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_lite_F: I_G_Soldier_lite_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_lite_F: I_G_Soldier_lite_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_SL_F: I_G_Soldier_SL_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_SL_F: I_G_Soldier_SL_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_TL_F: I_G_Soldier_TL_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_TL_F: I_G_Soldier_TL_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_AR_F: I_G_Soldier_AR_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_AR_F: I_G_Soldier_AR_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_medic_F: I_G_medic_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_medic_F: I_G_medic_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_engineer_F: I_G_engineer_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_engineer_F: I_G_engineer_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_exp_F: I_G_Soldier_exp_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_exp_F: I_G_Soldier_exp_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_GL_F: I_G_Soldier_GL_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_GL_F: I_G_Soldier_GL_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_M_F: I_G_Soldier_M_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_M_F: I_G_Soldier_M_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_LAT_F: I_G_Soldier_LAT_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_LAT_F: I_G_Soldier_LAT_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_Soldier_A_F: I_G_Soldier_A_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_Soldier_A_F: I_G_Soldier_A_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_G_officer_F: I_G_officer_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_G_officer_F: I_G_officer_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class i_g_soldier_unarmed_f: I_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class b_g_soldier_unarmed_f: B_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class o_g_soldier_unarmed_f: O_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class i_g_survivor_F: I_G_Soldier_F { + items[] = {}; + respawnItems[] = {}; +}; +class b_g_survivor_F: B_G_Soldier_F { + items[] = {}; + respawnItems[] = {}; +}; +class o_g_survivor_F: O_G_Soldier_F { + items[] = {}; + respawnItems[] = {}; +}; +class I_G_Story_Protagonist_F: B_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_Story_SF_Captain_F: B_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_resistanceLeader_F: I_G_Story_Protagonist_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_G_resistanceCommander_F: I_G_Story_Protagonist_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_base_F: SoldierGB { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_02_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_03_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_04_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_soldier_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_lite_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_A_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_GL_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_AR_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_SL_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_TL_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_M_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_LAT_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_AT_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_AA_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_medic_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_repair_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_exp_F: I_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_engineer_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_crew_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_helipilot_F: I_Soldier_03_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_pilot_F: I_Soldier_04_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_helicrew_F: I_helipilot_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_officer_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Story_Colonel_F: I_officer_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_soldier_UAV_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class i_soldier_unarmed_f: I_soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_diver_base_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_diver_F: I_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_diver_exp_F: I_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_diver_TL_F: I_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_sniper_base_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Spotter_F: I_Soldier_sniper_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Sniper_F: I_Soldier_sniper_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_support_base_F: I_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_AAR_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_AAT_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_Soldier_AAA_F: I_Soldier_AAT_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_support_MG_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_support_GMG_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_support_Mort_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_support_AMG_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_support_AMort_F: I_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_base_F: SoldierEB { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_officer_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_02_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_lite_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_GL_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_AR_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_SL_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_TL_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldier_M_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_LAT_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_medic_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldier_repair_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldier_exp_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_helipilot_F: O_Soldier_02_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_A_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_AT_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_AA_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_engineer_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_crew_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Pilot_F: O_helipilot_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_helicrew_F: O_helipilot_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldier_PG_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Story_Colonel_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Story_CEO_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldier_UAV_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class o_soldier_unarmed_f: O_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_diver_base_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_diver_F: O_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_diver_TL_F: O_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_diver_exp_F: O_Soldier_diver_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_sniper_base_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_spotter_F: O_Soldier_sniper_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_sniper_F: O_Soldier_sniper_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_recon_base: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_M_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_LAT_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_medic_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_exp_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_JTAC_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_recon_TL_F: O_Soldier_recon_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_support_base_F: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_AAR_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_AAT_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_AAA_F: O_Soldier_AAT_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_support_MG_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_support_GMG_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_support_Mort_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_support_AMG_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_support_AMort_F: O_Soldier_support_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_Soldier_Urban_base: O_Soldier_base_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_AR_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_AAR_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_LAT_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_AT_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_AAT_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_AA_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_AAA_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_TL_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_SoldierU_SL_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_medic_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_repair_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_exp_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_engineer_U_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_M_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_soldierU_A_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_SoldierU_GL_F: O_Soldier_Urban_base { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class C_Marshal_F: B_RangeMaster_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class B_Soldier_VR_F: B_Soldier_base_F { + items[] = {}; + respawnItems[] = {}; +}; +class O_Soldier_VR_F: O_Soldier_base_F { + items[] = {}; + respawnItems[] = {}; +}; +class I_Soldier_VR_F: I_Soldier_base_F { + items[] = {}; + respawnItems[] = {}; +}; +class C_Soldier_VR_F: C_man_1 { + items[] = {}; + respawnItems[] = {}; +}; +class B_Protagonist_VR_F: B_Soldier_base_F { + items[] = {}; + respawnItems[] = {}; +}; +class O_Protagonist_VR_F: O_Soldier_base_F { + items[] = {}; + respawnItems[] = {}; +}; +class I_Protagonist_VR_F: I_Soldier_base_F { + items[] = {}; + respawnItems[] = {}; +}; +class B_UAV_AI: B_Helipilot_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class O_UAV_AI: O_helipilot_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class I_UAV_AI: O_UAV_AI { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class Underwear_F: B_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class b_survivor_F: B_Soldier_F { + items[] = {}; + respawnItems[] = {}; +}; +class o_survivor_F: O_Soldier_F { + items[] = {}; + respawnItems[] = {}; +}; +class i_survivor_F: I_soldier_F { + items[] = {}; + respawnItems[] = {}; +}; +class b_soldier_universal_f: B_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class b_g_soldier_universal_f: B_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class o_soldier_universal_f: O_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class o_g_soldier_universal_f: O_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class i_soldier_universal_f: I_soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; +class i_g_soldier_universal_f: I_G_Soldier_F { + items[] = {"FirstAidKit"}; + respawnItems[] = {"FirstAidKit"}; +}; diff --git a/addons/core/FixAnimations.hpp b/addons/core/FixAnimations.hpp new file mode 100644 index 0000000000..83353fe27d --- /dev/null +++ b/addons/core/FixAnimations.hpp @@ -0,0 +1,35 @@ + +class CfgMovesBasic; +class CfgMovesMaleSdr: CfgMovesBasic { + class AgonyBase; + class AgonyBaseRfl; + class StandBase; + + class States { + class AinjPfalMstpSnonWnonDnon_carried_Down: AgonyBase { + canReload = 0; + }; + class AinjPfalMstpSnonWnonDnon_carried_Up: AgonyBase { + canReload = 0; + }; + class AinjPfalMstpSnonWrflDnon_carried_Down: AgonyBase { + canReload = 0; + }; + class AinjPfalMstpSnonWrflDnon_carried_Up: AgonyBaseRfl { + canReload = 0; + }; + + class AmovPpneMstpSnonWnonDnon_injured; + class AinjPpneMstpSnonWnonDnon: AmovPpneMstpSnonWnonDnon_injured { + canReload = 0; + }; + class AmovPpneMstpSrasWrflDnon_injured; + class AinjPpneMstpSnonWrflDnon: AmovPpneMstpSrasWrflDnon_injured { + canReload = 0; + }; + + class LadderCivilStatic: StandBase { + AGM_isLadder = 1; + }; + }; +}; diff --git a/addons/core/FixPickup.hpp b/addons/core/FixPickup.hpp new file mode 100644 index 0000000000..19ced78e96 --- /dev/null +++ b/addons/core/FixPickup.hpp @@ -0,0 +1,13 @@ + +class CfgActions { + class None; + class TakeWeapon: None { + show = 0; + }; + class TakeItem: None { + show = 0; + }; + class TakeMagazine: None { + show = 0; + }; +}; diff --git a/addons/core/HintConfig.hpp b/addons/core/HintConfig.hpp new file mode 100644 index 0000000000..d600609ee5 --- /dev/null +++ b/addons/core/HintConfig.hpp @@ -0,0 +1,76 @@ +// by commy2 + +class RscStructuredText; +class RscMapControl; + +class RscTitles { + class AGM_RscHint { + idd = -1; + onLoad = "uiNamespace setVariable ['AGM_ctrlHint', (_this select 0) displayCtrl 1];"; + movingEnable = false; + duration = 4; + fadeIn = 0.2; + fadeOut = 0.2; + name = "AGM_RscHint"; + + class controls { + class HintBox: RscStructuredText { + idc = 1; + text = ""; + size = "1 / 40 / (getResolution select 5)"; + sizeEx = 1; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0, 0, 0, 0.5}; + x = safeZoneW + safeZoneX - 0 * safezoneW; //safeZoneW + safeZoneX - 0.2 * safezoneW; + y = safeZoneY + 0.2 * safezoneH; + w = 0.2 * safeZoneW; + h = 0.1 * SafeZoneH; + }; + }; + }; + class AGM_RscErrorHint { + idd = -1; + onLoad = "uiNamespace setVariable ['AGM_ctrlErrorHint', (_this select 0) displayCtrl 1];"; + movingEnable = false; + duration = 999999; + fadeIn = 0.2; + fadeOut = 0.2; + name = "AGM_RscErrorHint"; + + class controls { + class HintBox: RscStructuredText { + idc = 1; + text = ""; + size = "1 / 40 / (getResolution select 5)"; + sizeEx = 1; + colorText[] = {1, 1, 1, 1}; + colorBackground[] = {0.8, 0, 0, 0.5}; + x = 0.3 * safeZoneW + safeZoneX; + y = 0.4 * safezoneH + safeZoneY; + w = 0.4 * safeZoneW; + h = 0.2 * SafeZoneH; + }; + }; + }; + class AGM_EventHandlerHelper: AGM_Rsc_Display_Base { + idd = -1; + class controls { + class CameraView: RscMapControl { + onDraw = "if (cameraView != uiNamespace getVariable 'AGM_EventHandler_CameraMode') then {uiNamespace setVariable ['AGM_EventHandler_CameraMode', cameraView]; {[uiNamespace getVariable 'AGM_EventHandler_CameraMode'] call _x; nil} count ((missionNamespace getVariable 'AGM_EventHandler_CameraMode') select 2);};"; + idc = -1; + w = 0; + h = 0; + }; + }; + }; + class AGM_EventHandlerHelper2: AGM_Rsc_Display_Base { + class controls { + class MapMarkerCreated: RscMapControl { + onDraw = "if (count allMapMarkers != uiNamespace getVariable 'AGM_EventHandler_MapMarker') then {if (count allMapMarkers > uiNamespace getVariable 'AGM_EventHandler_MapMarker') then {{[allMapMarkers select count allMapMarkers - 1] call _x; nil} count ((missionNamespace getVariable 'AGM_EventHandler_MapMarker') select 2);}; uiNamespace setVariable ['AGM_EventHandler_MapMarker', count allMapMarkers];};"; + idc = -1; + w = 0; + h = 0; + }; + }; + }; +}; diff --git a/addons/core/MainMenu.hpp b/addons/core/MainMenu.hpp new file mode 100644 index 0000000000..785e789c8c --- /dev/null +++ b/addons/core/MainMenu.hpp @@ -0,0 +1,103 @@ + +class AGM_Tile_Base { + class Attributes { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + shadow = "true"; + }; + class AttributesImage { + font = "PuristaMedium"; + color = "#E5E5E5"; + align = "left"; + }; + class HitZone { + left = 0.0; + top = 0.0; + right = 0.0; + bottom = 0.0; + }; + class ShortcutPos { + left = 0; + top = 0; + w = 0; + h = 0; + }; + class TextPos { + left = 0.01; + top = 0; + right = 0; + bottom = 0; + }; + action = "(findDisplay 49) closeDisplay 0; 0 spawn AGM_Core_openMenu;"; + animTextureDefault = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureDisabled = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureFocused = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureNormal = "#(argb,8,8,3)color(1,1,1,1)"; + animTextureOver = "#(argb,8,8,3)color(1,1,1,1)"; + animTexturePressed = "#(argb,8,8,3)color(1,1,1,1)"; + color2[] = {0,0,0,1}; + color[] = {1,1,1,1}; + //colorBackground2[] = {0.75,0.75,0.75,1}; + //colorBackground[] = {0,0,0,0.8}; + colorBackground[] = {1, 0.647, 0, 0.5}; + colorBackground2[] = {1, 0.647, 0, 0.5}; + colorBackgroundFocused[] = {1, 1, 1, 0}; + colorDisabled[] = {1,1,1,0.25}; + colorFocused[] = {0,0,0,1}; + colorText[] = {1,1,1,1}; + default = 0; + font = "PuristaMedium"; + idc = -1; + period = 1.2; + periodFocus = 1.2; + periodOver = 1.2; + shadow = 0; + shortcuts[] = {}; + size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + sizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)"; + soundClick[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundClick",0.09,1}; + soundEnter[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEnter",0.09,1}; + soundEscape[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundEscape",0.09,1}; + soundPush[] = {"\A3\ui_f\data\sound\RscButtonMenu\soundPush",0.09,1}; + style = "0x02 + 0xC0"; + text = "$STR_AGM_Core_Options"; + textureNoShortcut = "#(argb,8,8,3)color(0,0,0,0)"; + tooltip = ""; + tooltipColorBox[] = {1,1,1,1}; + tooltipColorShade[] = {0,0,0,0.65}; + tooltipColorText[] = {1,1,1,1}; + type = 16; + x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX)"; + y = "(0.1 * safezoneH + safezoneY) + 1.2 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; + w = "15 * (((safezoneW / safezoneH) min 1.2) / 40)"; + h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; +}; + +class RscStandardDisplay; + +/*class RscDisplayMain: RscStandardDisplay { + class controls { + class AGM_Tile : AGM_Tile_Base {}; + }; +};*/ +class RscDisplayMPInterrupt: RscStandardDisplay { + class controls { + class AGM_Tile : AGM_Tile_Base {}; + }; +}; +class RscDisplayInterrupt: RscStandardDisplay { + class controls { + class AGM_Tile : AGM_Tile_Base {}; + }; +}; +class RscDisplayInterruptEditor3D: RscStandardDisplay { + class controls { + class AGM_Tile : AGM_Tile_Base {}; + }; +}; +class RscDisplayInterruptEditorPreview: RscStandardDisplay { + class controls { + class AGM_Tile : AGM_Tile_Base {}; + }; +}; diff --git a/addons/core/MenuConfig.hpp b/addons/core/MenuConfig.hpp new file mode 100644 index 0000000000..2907029b43 --- /dev/null +++ b/addons/core/MenuConfig.hpp @@ -0,0 +1,927 @@ + +#define HSPACE 0.3 +#define VSPACE 0.3 +#define BORDER 0.1 + +class AGM_Core_Interactive_Button_Base { + tooltip = ""; + action = ""; + + idc = -1; + access = 0; + style = 0; + type = 1; + text = ""; + font = "PuristaMedium"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + shadow = 2; + + x = 0; + y = 0; + w = 0; + h = 0; + + offsetX = 0.003; + offsetY = 0.003; + offsetPressedX = 0.002; + offsetPressedY = 0.002; + borderSize = 0; + + colorText[] = {1,1,1,1}; + colorDisabled[] = {0.5,0.5,0.5,1}; + colorBackground[] = {0,0,0,0.8}; + colorBackgroundDisabled[] = {0,0,0,0.8}; + colorBackgroundActive[] = {1,1,1,0.8}; + colorFocused[] = {0,0,0,0}; + colorShadow[] = {0,0,0,0}; + colorBorder[] = {1,1,1,0.8}; + + 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}; +}; + +#define HSPACE2 0.05 +#define VSPACE2 0.05 +#define BORDER 0.1 + +class AGM_Core_Text_Button_Base { + idc = 2; + moving = 0; + text = ""; + font = "PuristaMedium"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + lineSpacing = 0; + access = 0; + type = 0; + style = 2 + 0x800; + size = 1; + colorBackground[] = {0,0,0,0.8}; + colorText[] = {1,1,1,1}; + x = 0; + y = 0; + w = 0; + h = 0; +}; + +class AGM_Core_OptionsMenu_Dialog { + idd = -1; + movingEnable = true; + onLoad = "_dlgMenuDialog = _this select 0; for '_a' from 20 to 32 do {(_dlgMenuDialog displayCtrl _a) ctrlShow false}; for '_a' from 100 to 119 do {(_dlgMenuDialog displayCtrl _a) ctrlShow false}; for '_a' from 200 to 219 do {(_dlgMenuDialog displayCtrl _a) ctrlShow false}; for '_a' from 300 to 319 do {(_dlgMenuDialog displayCtrl _a) ctrlShow false}; for '_a' from 400 to 419 do {(_dlgMenuDialog displayCtrl _a) ctrlShow false}; for '_a' from 500 to 519 do {(_dlgMenuDialog displayCtrl _a) ctrlShow false}; uiNamespace setVariable ['AGM_Core_MenuDialog', _dlgMenuDialog];"; + objects[] = {}; + + class controlsBackground { + class Background { + idc = 1; + moving = 0; + font = "TahomaB"; + text = ""; + sizeEx = 0; + lineSpacing = 0; + access = 0; + type = 0; + style = 0 + 0x800; + size = 1; + //colorBackground[] = {0, 0.265, 0, 0.5}; + colorBackground[] = {0, 0, 0, 0.5}; + colorText[] = {0, 0, 0, 0}; + x = HSPACE2 / 2 * safezoneW + safezoneX; + y = VSPACE2 / 2 * safezoneH + safezoneY; + w = (1 - 2 * HSPACE2 / 2) * safezoneW; + h = (1 - 2 * VSPACE2 / 2) * safezoneH; + }; + + class Header { + idc = 2; + moving = 0; + text = "$STR_AGM_Core_Options"; + font = "PuristaMedium"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + lineSpacing = 0; + access = 0; + type = 0; + style = 1 + 0x800; + size = 1; + //colorBackground[] = {0,0,0,0}; + colorBackground[] = {1, 0.647, 0, 0.5}; + colorText[] = {1,1,1,1}; + x = (HSPACE2 + 0 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 0.5 * 0.04) * safezoneH + safezoneY; + w = 4.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class AGM_Logo : AGM_Core_Interactive_Button_Base { + action = "closeDialog 0;"; + type = 0; + style = 48; + onMouseEnter = "hint ('_' + str(_this))"; + tooltip = ""; + text = "";//"\AGM_common\rsc\bwlogo.paa"; + idc = 2; + x = ((1 - 2 * HSPACE2 / 2) - (HSPACE2 + 0.5 * 0.1)) * safezoneW + safezoneX; + y = (VSPACE2 + 2 * 0.04) * safezoneH + safezoneY; + w = 1.0 / 16 * safezoneW; + h = 1.0 / 9 * safezoneH; + }; + }; + + class controls { + class Text_Button0 : AGM_Core_Text_Button_Base { + idc = 100; + style = 0 + 0x800; + x = (HSPACE2 + 0 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 2 * 0.04) * safezoneH + safezoneY; + w = 4.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Text_Button1 : Text_Button0 { + idc = 101; + y = (VSPACE2 + 3 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button2 : Text_Button0 { + idc = 102; + y = (VSPACE2 + 4 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button3 : Text_Button0 { + idc = 103; + y = (VSPACE2 + 5 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button4 : Text_Button0 { + idc = 104; + y = (VSPACE2 + 6 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button5 : Text_Button0 { + idc = 105; + y = (VSPACE2 + 7 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button6 : Text_Button0 { + idc = 106; + y = (VSPACE2 + 8 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button7 : Text_Button0 { + idc = 107; + y = (VSPACE2 + 9 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button8 : Text_Button0 { + idc = 108; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button9 : Text_Button0 { + idc = 109; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button10 : Text_Button0 { + idc = 110; + y = (VSPACE2 + 12 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button11 : Text_Button0 { + idc = 111; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button12 : Text_Button0 { + idc = 112; + y = (VSPACE2 + 14 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button13 : Text_Button0 { + idc = 113; + y = (VSPACE2 + 15 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button14 : Text_Button0 { + idc = 114; + y = (VSPACE2 + 16 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button15 : Text_Button0 { + idc = 115; + y = (VSPACE2 + 17 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button16 : Text_Button0 { + idc = 116; + y = (VSPACE2 + 18 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button17 : Text_Button0 { + idc = 117; + y = (VSPACE2 + 19 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button18 : Text_Button0 { + idc = 118; + y = (VSPACE2 + 20 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Button19 : Text_Button0 { + idc = 119; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + }; + + ////////////////////////////////////////////////// + + class Interactive_Button0 : AGM_Core_Interactive_Button_Base { + action = "AGM_Core_keySet = -1; [0] spawn AGM_Core_editKey"; + sizeEx = "0.8 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + idc = 200; + style = 2 + 0x800; + x = (HSPACE2 + 3 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 2 * 0.04) * safezoneH + safezoneY; + w = 3.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_Button1 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [1] spawn AGM_Core_editKey"; + idc = 201; + y = (VSPACE2 + 3 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button2 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [2] spawn AGM_Core_editKey"; + idc = 202; + y = (VSPACE2 + 4 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button3 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [3] spawn AGM_Core_editKey"; + idc = 203; + y = (VSPACE2 + 5 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button4 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [4] spawn AGM_Core_editKey"; + idc = 204; + y = (VSPACE2 + 6 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button5 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [5] spawn AGM_Core_editKey"; + idc = 205; + y = (VSPACE2 + 7 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button6 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [6] spawn AGM_Core_editKey"; + idc = 206; + y = (VSPACE2 + 8 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button7 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [7] spawn AGM_Core_editKey"; + idc = 207; + y = (VSPACE2 + 9 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button8 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [8] spawn AGM_Core_editKey"; + idc = 208; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button9 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [9] spawn AGM_Core_editKey"; + idc = 209; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button10 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [10] spawn AGM_Core_editKey"; + idc = 210; + y = (VSPACE2 + 12 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button11 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [11] spawn AGM_Core_editKey"; + idc = 211; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button12 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [12] spawn AGM_Core_editKey"; + idc = 212; + y = (VSPACE2 + 14 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button13 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [13] spawn AGM_Core_editKey"; + idc = 213; + y = (VSPACE2 + 15 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button14 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [14] spawn AGM_Core_editKey"; + idc = 214; + y = (VSPACE2 + 16 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button15 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [15] spawn AGM_Core_editKey"; + idc = 215; + y = (VSPACE2 + 17 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button16 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [16] spawn AGM_Core_editKey"; + idc = 216; + y = (VSPACE2 + 18 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button17 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [17] spawn AGM_Core_editKey"; + idc = 217; + y = (VSPACE2 + 19 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button18 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [18] spawn AGM_Core_editKey"; + idc = 218; + y = (VSPACE2 + 20 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Button19 : Interactive_Button0 { + action = "AGM_Core_keySet = -1; [19] spawn AGM_Core_editKey"; + idc = 219; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + }; + + ////////////////////////////////////////////////// + + class Interactive_Checkbox0 : Text_Button0 { + action = "hint '0'"; + idc = 300; + //type = 0; + style = 48; + text = "\AGM_Core\UI\box_unchecked_ca.paa"; + colorBackground[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + x = (HSPACE2 + 3 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 2 * 0.04) * safezoneH + safezoneY; + w = 0.3 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_Checkbox1 : Interactive_Checkbox0 { + action = ""; + idc = 301; + y = (VSPACE2 + 3 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox2 : Interactive_Checkbox0 { + action = ""; + idc = 302; + y = (VSPACE2 + 4 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox3 : Interactive_Checkbox0 { + action = ""; + idc = 303; + y = (VSPACE2 + 5 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox4 : Interactive_Checkbox0 { + action = ""; + idc = 304; + y = (VSPACE2 + 6 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox5 : Interactive_Checkbox0 { + action = ""; + idc = 305; + y = (VSPACE2 + 7 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox6 : Interactive_Checkbox0 { + action = ""; + idc = 306; + y = (VSPACE2 + 8 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox7 : Interactive_Checkbox0 { + action = ""; + idc = 307; + y = (VSPACE2 + 9 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox8 : Interactive_Checkbox0 { + action = ""; + idc = 308; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox9 : Interactive_Checkbox0 { + action = ""; + idc = 309; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox10 : Interactive_Checkbox0 { + action = ""; + idc = 310; + y = (VSPACE2 + 12 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox11 : Interactive_Checkbox0 { + action = ""; + idc = 311; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox12 : Interactive_Checkbox0 { + action = ""; + idc = 312; + y = (VSPACE2 + 14 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox13 : Interactive_Checkbox0 { + action = ""; + idc = 313; + y = (VSPACE2 + 15 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox14 : Interactive_Checkbox0 { + action = ""; + idc = 314; + y = (VSPACE2 + 16 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox15 : Interactive_Checkbox0 { + action = ""; + idc = 315; + y = (VSPACE2 + 17 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox16 : Interactive_Checkbox0 { + action = ""; + idc = 316; + y = (VSPACE2 + 18 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox17 : Interactive_Checkbox0 { + action = ""; + idc = 317; + y = (VSPACE2 + 19 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox18 : Interactive_Checkbox0 { + action = ""; + idc = 318; + y = (VSPACE2 + 20 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_Checkbox19 : Interactive_Checkbox0 { + action = ""; + idc = 319; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + }; + + ////////////////////////////////////////////////// + + class Text_Checkbox0 : Text_Button0 { + idc = 400; + x = (HSPACE2 + 0 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 2 * 0.04) * safezoneH + safezoneY; + w = 4.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Text_Checkbox1 : Text_Checkbox0 { + idc = 401; + y = (VSPACE2 + 3 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox2 : Text_Checkbox0 { + idc = 402; + y = (VSPACE2 + 4 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox3 : Text_Checkbox0 { + idc = 403; + y = (VSPACE2 + 5 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox4 : Text_Checkbox0 { + idc = 404; + y = (VSPACE2 + 6 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox5 : Text_Checkbox0 { + idc = 405; + y = (VSPACE2 + 7 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox6 : Text_Checkbox0 { + idc = 406; + y = (VSPACE2 + 8 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox7 : Text_Checkbox0 { + idc = 407; + y = (VSPACE2 + 9 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox8 : Text_Checkbox0 { + idc = 408; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox9 : Text_Checkbox0 { + idc = 409; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox10 : Text_Checkbox0 { + idc = 410; + y = (VSPACE2 + 12 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox11 : Text_Checkbox0 { + idc = 411; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox12 : Text_Checkbox0 { + idc = 412; + y = (VSPACE2 + 14 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox13 : Text_Checkbox0 { + idc = 413; + y = (VSPACE2 + 15 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox14 : Text_Checkbox0 { + idc = 414; + y = (VSPACE2 + 16 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox15 : Text_Checkbox0 { + idc = 415; + y = (VSPACE2 + 17 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox16 : Text_Checkbox0 { + idc = 416; + y = (VSPACE2 + 18 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox17 : Text_Checkbox0 { + idc = 417; + y = (VSPACE2 + 19 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox18 : Text_Checkbox0 { + idc = 418; + y = (VSPACE2 + 20 * 0.04) * safezoneH + safezoneY; + }; + + class Text_Checkbox19 : Text_Checkbox0 { + idc = 419; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + }; + + ////////////////////////////////////////////////// + + class Interactive_CheckboxButton0 : AGM_Core_Interactive_Button_Base { + action = "[0] call AGM_Core_toggleState"; + idc = 500; + colorBackground[] = {0, 0, 0, 0}; + colorBackgroundActive[] = {0, 0, 0, 0}; + colorText[] = {1, 1, 1, 1}; + x = (HSPACE2 + 3 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 2 * 0.04) * safezoneH + safezoneY; + w = 0.3 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_CheckboxButton1 : Interactive_CheckboxButton0 { + action = "[1] call AGM_Core_toggleState"; + idc = 501; + y = (VSPACE2 + 3 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton2 : Interactive_CheckboxButton0 { + action = "[2] call AGM_Core_toggleState"; + idc = 502; + y = (VSPACE2 + 4 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton3 : Interactive_CheckboxButton0 { + action = "[3] call AGM_Core_toggleState"; + idc = 503; + y = (VSPACE2 + 5 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton4 : Interactive_CheckboxButton0 { + action = "[4] call AGM_Core_toggleState"; + idc = 504; + y = (VSPACE2 + 6 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton5 : Interactive_CheckboxButton0 { + action = "[5] call AGM_Core_toggleState"; + idc = 505; + y = (VSPACE2 + 7 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton6 : Interactive_CheckboxButton0 { + action = "[6] call AGM_Core_toggleState"; + idc = 506; + y = (VSPACE2 + 8 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton7 : Interactive_CheckboxButton0 { + action = "[7] call AGM_Core_toggleState"; + idc = 507; + y = (VSPACE2 + 9 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton8 : Interactive_CheckboxButton0 { + action = "[8] call AGM_Core_toggleState"; + idc = 508; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton9 : Interactive_CheckboxButton0 { + action = "[9] call AGM_Core_toggleState"; + idc = 509; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton10 : Interactive_CheckboxButton0 { + action = "[10] call AGM_Core_toggleState"; + idc = 510; + y = (VSPACE2 + 12 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton11 : Interactive_CheckboxButton0 { + action = "[11] call AGM_Core_toggleState"; + idc = 511; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton12 : Interactive_CheckboxButton0 { + action = "[12] call AGM_Core_toggleState"; + idc = 512; + y = (VSPACE2 + 14 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton13 : Interactive_CheckboxButton0 { + action = "[13] call AGM_Core_toggleState"; + idc = 513; + y = (VSPACE2 + 15 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton14 : Interactive_CheckboxButton0 { + action = "[14] call AGM_Core_toggleState"; + idc = 514; + y = (VSPACE2 + 16 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton15 : Interactive_CheckboxButton0 { + action = "[15] call AGM_Core_toggleState"; + idc = 515; + y = (VSPACE2 + 17 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton16 : Interactive_CheckboxButton0 { + action = "[16] call AGM_Core_toggleState"; + idc = 516; + y = (VSPACE2 + 18 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton17 : Interactive_CheckboxButton0 { + action = "[17] call AGM_Core_toggleState"; + idc = 517; + y = (VSPACE2 + 19 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton18 : Interactive_CheckboxButton0 { + action = "[18] call AGM_Core_toggleState"; + idc = 518; + y = (VSPACE2 + 20 * 0.04) * safezoneH + safezoneY; + }; + + class Interactive_CheckboxButton19 : Interactive_CheckboxButton0 { + action = "[19] call AGM_Core_toggleState"; + idc = 519; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + }; + + ////////////////////////////////////////////////// + + class TextBox_KeyChange : Text_Button0 { + text = ""; + idc = 20; + style = 2 + 0x800; + x = (6 * 0.1) * safezoneW + safezoneX; + y = (8 * 0.04) * safezoneH + safezoneY; + w = (6.0 / 16 - HSPACE2 / 2) * safezoneW; + h = (3.0 / 9 - VSPACE2 / 2) * safezoneH; + }; + + /*class TextBox_Key_Shift : TextBox_KeyChange { + text = "$STR_AGM_Core_Shift"; + idc = 21; + colorText[] = {0.25,0.25,0.25,1}; + colorBackground[] = {0,0,0,0}; + x = (3 / 4 * HSPACE2 + 5.75 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class TextBox_Key_Control : TextBox_Key_Shift { + text = "$STR_AGM_Core_Ctrl"; + idc = 22; + x = (3 / 4 * HSPACE2 + 6.75 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key_Alt : TextBox_Key_Shift { + text = "$STR_AGM_Core_Alt"; + idc = 23; + x = (3 / 4 * HSPACE2 + 7.75 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + };*/ + + class TextBox_Key_Shift : Interactive_Button0 { + action = "AGM_Core_keyNewTemp = [42, [false, false, false], 42];"; + text = "$STR_AGM_Core_Shift"; + sizeEx = "0.7 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + idc = 21; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0}; + x = (3 / 4 * HSPACE2 + 6 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + w = 1.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class TextBox_Key_Control : TextBox_Key_Shift { + action = "AGM_Core_keyNewTemp = [29, [false, false, false], 29];"; + text = "$STR_AGM_Core_Ctrl"; + idc = 22; + x = (3 / 4 * HSPACE2 + 6.75 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key_Alt : TextBox_Key_Shift { + action = "AGM_Core_keyNewTemp = [56, [false, false, false], 56];"; + text = "$STR_AGM_Core_Alt"; + idc = 23; + x = (3 / 4 * HSPACE2 + 7.5 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key_Shift_Right : TextBox_Key_Shift { + action = "AGM_Core_keyNewTemp = [54, [false, false, false], 54];"; + text = "$STR_AGM_Core_Shift_Right"; + idc = 27; + x = (3 / 4 * HSPACE2 + 6 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key_Control_Right : TextBox_Key_Shift { + action = "AGM_Core_keyNewTemp = [157, [false, false, false], 157];"; + text = "$STR_AGM_Core_Ctrl_Right"; + idc = 28; + x = (3 / 4 * HSPACE2 + 6.75 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key_Alt_Right : TextBox_Key_Shift { + action = "AGM_Core_keyNewTemp = [184, [false, false, false], 184];"; + text = "$STR_AGM_Core_Alt_Right"; + idc = 29; + x = (3 / 4 * HSPACE2 + 7.5 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Action : TextBox_KeyChange { + text = ""; + idc = 30; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0}; + sizeEx = "0.8 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + x = (3 / 4 * HSPACE2 + 6.75 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 7 * 0.04) * safezoneH + safezoneY; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class TextBox_Key_Default : TextBox_Key_Shift { + action = "call AGM_Core_keysetDefault"; + text = "$STR_AGM_Core_KeyDefault"; + idc = 31; + x = (3 / 4 * HSPACE2 + 8.25 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 10 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key_None : TextBox_Key_Shift { + action = "AGM_Core_keyNewTemp = [0, [false, false, false], 0];"; + text = "$STR_AGM_Core_KeyNone"; + idc = 32; + x = (3 / 4 * HSPACE2 + 8.25 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 11 * 0.04) * safezoneH + safezoneY; + }; + + class TextBox_Key : TextBox_KeyChange { + text = ""; + idc = 24; + colorText[] = {1,1,1,1}; + colorBackground[] = {0,0,0,0}; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + x = (3 / 4 * HSPACE2 + 6.75 * 0.1 - 2.0 / 16) * safezoneW + safezoneX; + y = (VSPACE2 + 8.5 * 0.04) * safezoneH + safezoneY; + w = 6.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_ButtonV : Interactive_Button0 { + action = "AGM_Core_keySet = 1"; + text = "$STR_AGM_Core_Save"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + idc = 25; + colorBackground[] = {0,0,0,0}; + x = (HSPACE2 + 6 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_ButtonW : Interactive_ButtonV { + action = "AGM_Core_keySet = -1"; + text = "$STR_AGM_Core_Cancel"; + idc = 26; + x = (HSPACE2 + 7.5 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 13 * 0.04) * safezoneH + safezoneY; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_ButtonX : Interactive_Button0 { + action = "AGM_Core_keySave = 1; closeDialog 0"; + text = "$STR_AGM_Core_Save"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + idc = 10; + x = ((1 - 2 * HSPACE2 / 2) - (HSPACE2 + 2.5 * 0.1)) * safezoneW + safezoneX; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_ButtonY : Interactive_Button0 { + action = "AGM_Core_keySave = -1; closeDialog 0"; + text = "$STR_AGM_Core_Cancel"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + idc = 11; + x = ((1 - 2 * HSPACE2 / 2) - (HSPACE2 + 1 * 0.1)) * safezoneW + safezoneX; + y = (VSPACE2 + 21 * 0.04) * safezoneH + safezoneY; + w = 2.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_ButtonA : AGM_Core_Interactive_Button_Base { + action = "false call AGM_Core_nextKeys"; + text = "$STR_AGM_Core_Prev"; + idc = 12; + style = 2 + 0x800; + x = (HSPACE2 + 3 * 0.1) * safezoneW + safezoneX; + y = (VSPACE2 + 0.5 * 0.04) * safezoneH + safezoneY; + w = 1.0 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + + class Interactive_ButtonB : Interactive_ButtonA { + action = "true call AGM_Core_nextKeys"; + text = "$STR_AGM_Core_Next"; + idc = 13; + x = (HSPACE2 + 3 * 0.1 + 2.0 / 16) * safezoneW + safezoneX; + }; + + class Interactive_ButtonC : AGM_Core_Text_Button_Base { + text = ""; + idc = 14; + style = 2 + 0x800; + x = (HSPACE2 + 3 * 0.1 + 1.25 / 16) * safezoneW + safezoneX; + y = (VSPACE2 + 0.5 * 0.04) * safezoneH + safezoneY; + w = 0.5 / 16 * safezoneW; + h = 0.3 / 9 * safezoneH; + }; + }; +}; diff --git a/addons/core/NoVoice.hpp b/addons/core/NoVoice.hpp new file mode 100644 index 0000000000..15fb8440a5 --- /dev/null +++ b/addons/core/NoVoice.hpp @@ -0,0 +1,227 @@ + +class RadioProtocolBase { + class Words; +}; +class AGM_RadioProtocolNoRadio: RadioProtocolBase { + class CuratorWaypointPlaced; + class CuratorWaypointPlacedAttack; + class CuratorObjectPlaced; + class curatorObjectDestroyed; + class curatorModuleCAS; + class SentFireNoTarget_1; + class SentSupportRequestRGCASBombing; + class SentNoTargetDefault; + class SentEngageNoTargetDefault; + class SentFireNoTargetDefault; + class SentAttackNoTargetDefault; + class SentEnemyDetectedMedium; + class SentEnemyDetectedLong; + class SentEnemyDetectedDangerClose; + class SentEnemyDetectedClose; + class SentEnemyDetectedVeryLong; + class SentIsLeaderDefault; + class SentCommandCompletedDefault; + class SentFireReadyDefault; + class SentCommandFailedDefault; + class SentDestinationUnreacheableDefault; + class SentObjectDestroyedDefault; + class SentObjectDestroyedUnknownDefault; + class SentClearDefault; + class SentRepeatCommandDefault; + class SentWhereAreYouDefault; + class SentReportStatusDefault; + class SentNotifyAttackDefault; + class SentNotifyAttackSubgroupDefault; + class SentConfirmMoveDefault; + class SentConfirmAttackDefault; + class SentConfirmOtherDefault; + class SentUnitKilledDefault; + class SentHealthCriticalDefault; + class SentHealthNormalDefault; + class SentReturnToFormationDefault; + class SentLooseFormationDefault; + class SentCmdFollowMeDefault; + class SelectCmdMoveSentenceClose; + class SelectCmdMoveSentenceVeryClose; + class SelectCmdMoveSentenceFar; + class SentEnemyDetectedMediumStealth; + class SentSupportConfirmDefault; + class SelectCmdMoveSentenceClose_1; + class SelectCmdMoveSentenceVeryClose_1; + class SelectCmdMoveSentenceFar_1; + class SentSupportRequestRGCASHelicopter; + class SentSupportRequestRGSupplyDrop; + class SentSupportRequestRGUAV; + class SentSupportRequestRGArty; + class SentSupportRequestRGTransport; + class SentRequestAcknowledgedSGCASBombing; + class SentRequestAcknowledgedSGCASHelicopter; + class SentRequestAcknowledgedSGSupplyDrop; + class SentRequestAcknowledgedSGUAV; + class SentRequestAcknowledgedSGArty; + class SentRequestAcknowledgedTransport; + class SentUnitDestroyedHQCASBombing; + class SentUnitDestroyedHQCASHelicopter; + class SentUnitDestroyedHQSupplyDrop; + class SentUnitDestroyedHQUAV; + class SentUnitDestroyedHQArty; + class SentUnitDestroyedHQTransport; + class SentRequestAccomplishedSGCASBombing; + class SentRequestAccomplishedSGCASHelicopter; + class SentRequestAccomplishedSGSupplyDrop; + class SentRequestAccomplishedSGUAV; + class SentRequestAccomplishedSGArty; + class SentRequestAccomplishedSGTransport; + class SentSupportAddedDuringMission; + class SentArtySGSupportRoundsComplete; + class SentTransportSGWelcomeAboard; + class SentTransportSGLZCoordinatesSelected; + class SelectCmdMoveSentenceLocation; + class SelectCmdMoveSentenceMedium; + class SentEnemyDetectedLongStealth; + class SentEnemyDetectedDangerCloseStealth; + class SentEnemyDetectedCloseStealth; + class SentEnemyDetectedVeryLongStealth; + class SentEngageDefault; + class SelectCmdMoveSentenceLocation_1; + class SelectCmdMoveSentenceMedium_1; + class SentBehaviourSafeDefault; + class SentBehaviourAwareDefault; + class SentBehaviourCombatDefault; + class SentOpenFireDefault; + class SentCeaseFireInsideGroupDefault; + class SentCeaseFireDefault; + class SentEngageStealth; + class SentFireNoTargetStealth; + class SentAttackNoTargetStealth; + class SentNoTargetStealth; + class SentEngageNoTargetStealth; + class SelectCmdMoveSentenceCloseStealth; + class SelectCmdMoveSentenceVeryCloseStealth; + class SelectCmdMoveSentenceFarStealth; + class SelectCmdMoveSentenceLocationStealth; + class SelectCmdMoveSentenceMediumStealth; + class SentReturnToFormationStealth; + class SentLooseFormationStealth; + class SentCmdFollowMeStealth; + class SentOpenFireStealth; + class SentCeaseFireInsideGroupStealth; + class SentBehaviourSafeStealth; + class SentBehaviourAwareStealth; + class SentBehaviourCombatStealth; + class SentSupportConfirmStealth; + class SentCommandFailedStealth; + class SentObjectDestroyedStealth; + class SentObjectDestroyedUnknownStealth; + class SentCommandCompletedStealth; + class SentFireReadyStealth; + class SentIsLeaderStealth; + class SentDestinationUnreacheableStealth; + class SentClearStealth; + class SentRepeatCommandStealth; + class SentWhereAreYouStealth; + class SentReportStatusStealth; + class SentNotifyAttackStealth; + class SentNotifyAttackSubgroupStealth; + class SentConfirmMoveStealth; + class SentConfirmAttackStealth; + class SentConfirmOtherStealth; + class SentUnitKilledStealth; + class SentHealthCriticalStealth; + class SentHealthNormalStealth; + class SentGenReinforcementsConfirmed; + class SentGenReinforcementsRejected; + class SentGenReinforcementsArrived; + class SentGenLeavingAO; + class SentGenTime; + class SentGenLosing; + class SentGenLost; + class SentGenComplete; + class SentGenCmdSeize; + class SentGenCmdDefend; + class SentGenCmdRTB; + class SentGenCmdTargetNeutralize; + class SentGenCmdTargetProtect; + class SentGenCmdTargetEscort; + class SentGenCmdTargetFind; + class SentGenIncoming; + class SentGenBaseUnlockRespawn; + class SentGenBaseUnlockVehicle; + class SentGenBaseSideFriendlyWEST; + class SentFXBreathingSlow; + class SentFXBreathingFast; + class SentFXHit; + class SentFXDeath; + class SentFXHurt; + class SentFXEffort; + class SentFXDrowning; + class SentCeaseFireDefault_1; + class SentGenBaseSideFriendlyEAST; + class SentGenBaseSideFriendlyGUER; + class SentGenBaseSideEnemyWEST; + class SentGenBaseSideEnemyEAST; + class SentGenBaseSideEnemyGUER; + class SentTargetDefault; + class SentTargetStealth; + class Dummy; + class Words: Words { + grid_zero[] = {}; + grid_one[] = {}; + grid_two[] = {}; + grid_three[] = {}; + grid_four[] = {}; + grid_five[] = {}; + grid_six[] = {}; + grid_seven[] = {}; + grid_eight[] = {}; + grid_nine[] = {}; + grid_zero_2[] = {}; + grid_one_2[] = {}; + grid_two_2[] = {}; + grid_three_2[] = {}; + grid_four_2[] = {}; + grid_five_2[] = {}; + grid_six_2[] = {}; + grid_seven_2[] = {}; + grid_eight_2[] = {}; + grid_nine_2[] = {}; + grid_zero_3[] = {}; + grid_one_3[] = {}; + grid_two_3[] = {}; + grid_three_3[] = {}; + grid_four_3[] = {}; + grid_five_3[] = {}; + grid_six_3[] = {}; + grid_seven_3[] = {}; + grid_eight_3[] = {}; + grid_nine_3[] = {}; + Ready[] = {}; + Waiting[] = {}; + StandingBy[] = {}; + /*IAmReady[] = {}; + ReadyForOrders[] = {}; + AwaitingOrders[] = {};*/ + }; +}; + +class CfgVoice { + class AGM_NoVoice { + author = "$STR_AGM_Core_AGMTeam"; + protocol = "AGM_RadioProtocolNoRadio"; + variants[] = {1}; + directories[] = {"",""}; + identityTypes[] = {"Default"}; + scope = 2; + voiceType = ""; + icon = "\a3\Ui_f\data\Map\Markers\Flags\nato_ca.paa"; + displayName = "$STR_AGM_Core_NoVoice"; + }; +}; +class CfgVoiceTypes { + class AGM_NoVoice { + name = "$STR_AGM_Core_NoVoice"; + voices[] = {"AGM_NoVoice","AGM_NoVoice","AGM_NoVoice"}; + preview = "AGM_NoVoice"; + alternative = ""; + }; +}; diff --git a/addons/core/ProgressScreen.hpp b/addons/core/ProgressScreen.hpp new file mode 100644 index 0000000000..f43b34db52 --- /dev/null +++ b/addons/core/ProgressScreen.hpp @@ -0,0 +1,94 @@ + +class AGM_Core_ProgressBar_Dialog { + idd = -1; + movingEnable = false; + onLoad = "uiNamespace setVariable ['AGM_Core_ctrlProgressBar', (_this select 0) displayCtrl 1]; uiNamespace setVariable ['AGM_Core_ctrlProgressBarTitle', (_this select 0) displayCtrl 2];"; + objects[] = {}; + + class controlsBackground { + class Background { + idc = -1; + moving = 0; + font = "TahomaB"; + text = ""; + sizeEx = 0; + lineSpacing = 0; + access = 0; + type = 0; + style = 0; + size = 1; + colorBackground[] = {0, 0, 0, 0.1}; + colorText[] = {0, 0, 0, 0}; + x = "safezoneX"; + y = "safezoneY"; + w = "safezoneW"; + h = "safezoneH"; + }; + + class Progress_Bar { + idc = 1; + moving = 0; + text = ""; + font = "PuristaMedium"; + sizeEx = "1 / 40 / (getResolution select 5)";// * safezoneX / safezoneXAbs"; + lineSpacing = 0; + access = 0; + type = 0; + style = 2; + size = 1; + colorBackground[] = {1, 0.647, 0, 0.5}; + colorText[] = {1,1,1,1}; + x = "safezoneX + 0.1 * safezoneW"; + y = "safezoneY + 0.2 * safezoneH"; + w = "0.0 * safezoneW"; + h = "0.01 * safezoneH"; + }; + + class Title_Bar : Progress_Bar { + idc = 2; + //type = 13; + //size = 1; + colorBackground[] = {0, 0, 0, 0}; + x = "safezoneX + 0.1 * safezoneW"; + y = "safezoneY + 0.1 * safezoneH"; + w = "0.8 * safezoneW"; + h = "0.05 * safezoneH"; + /*class Attributes { + font = "TahomaB"; + color = "#000000"; + align = "center"; + valign = "middle"; + shadow = false; + shadowColor = "#ff0000"; + size = "1"; + };*/ + }; + }; +}; + +class AGM_Core_DisableMouse_Dialog { + idd = -1; + movingEnable = false; + onLoad = "uiNamespace setVariable ['AGM_Core_dlgDisableMouse', _this select 0];"; + objects[] = {}; + class controlsBackground { + class Background { + idc = -1; + moving = 0; + font = "TahomaB"; + text = ""; + sizeEx = 0; + lineSpacing = 0; + access = 0; + type = 0; + style = 0; + size = 1; + colorBackground[] = {0, 0, 0, 0};//0.5 + colorText[] = {0, 0, 0, 0}; + x = "safezoneX"; + y = "safezoneY"; + w = "safezoneW"; + h = "safezoneH"; + }; + }; +}; diff --git a/addons/core/RscInfoType.hpp b/addons/core/RscInfoType.hpp new file mode 100644 index 0000000000..c8d56aba7a --- /dev/null +++ b/addons/core/RscInfoType.hpp @@ -0,0 +1,27 @@ + +class RscInGameUI { + class RscUnitInfo; + class RscUnitInfoSoldier: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgSoldier', _this select 0]; {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoSoldier', [-1, [], []]]) select 2); {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoAny', [-1, [], []]]) select 2); [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + }; + class RscUnitInfoTank: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgVehicle', _this select 0]; {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoVehicle', [-1, [], []]]) select 2); {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoAny', [-1, [], []]]) select 2); [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + }; + class RscUnitInfoAir: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgAircraft', _this select 0]; {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoAircraft', [-1, [], []]]) select 2); {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoAny', [-1, [], []]]) select 2); [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + }; + class RscUnitInfoShip: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgShip', _this select 0]; {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoShip', [-1, [], []]]) select 2); {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoAny', [-1, [], []]]) select 2); [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + }; + class RscUnitInfoParachute: RscUnitInfo { + onLoad = "uiNamespace setVariable ['AGM_dlgParachute', _this select 0]; {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoParachute', [-1, [], []]]) select 2); {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInfoAny', [-1, [], []]]) select 2); [""onLoad"",_this,""RscUnitInfo"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf"""; + }; +}; + +class RscDisplayInventory { + onLoad = "[""onLoad"",_this,""RscDisplayInventory"",'IGUI'] call compile preprocessfilelinenumbers ""A3\ui_f\scripts\initDisplay.sqf""; {_this call _x} forEach ((missionNamespace getVariable ['AGM_onLoadInventory', [-1, [], []]]) select 2);"; +}; + +class RscDisplayChannel { + onLoad = "_this call AGM_Core_fnc_onLoadRscDisplayChannel;"; +}; diff --git a/addons/core/UI/IconCheckPBO_ca.paa b/addons/core/UI/IconCheckPBO_ca.paa new file mode 100644 index 0000000000..fff094413e Binary files /dev/null and b/addons/core/UI/IconCheckPBO_ca.paa differ diff --git a/addons/core/UI/blank_CO.paa b/addons/core/UI/blank_CO.paa new file mode 100644 index 0000000000..c1109c748c Binary files /dev/null and b/addons/core/UI/blank_CO.paa differ diff --git a/addons/core/UI/box_checked_ca.paa b/addons/core/UI/box_checked_ca.paa new file mode 100644 index 0000000000..2b0d92b600 Binary files /dev/null and b/addons/core/UI/box_checked_ca.paa differ diff --git a/addons/core/UI/box_unchecked_ca.paa b/addons/core/UI/box_unchecked_ca.paa new file mode 100644 index 0000000000..9bbefd0419 Binary files /dev/null and b/addons/core/UI/box_unchecked_ca.paa differ diff --git a/addons/core/XEH_postInit.sqf b/addons/core/XEH_postInit.sqf new file mode 100644 index 0000000000..aea34f8183 --- /dev/null +++ b/addons/core/XEH_postInit.sqf @@ -0,0 +1,61 @@ +// BWA3 Realism - Core +// (C) 2013 KoffeinFlummi. See LICENSE. + +"GVAR(remoteFnc)" addPublicVariableEventHandler { + (_this select 1) call GVAR(fnc_execRemoteFnc); +}; + +[missionNamespace] call GVAR(fnc_executePersistent); + +// check previous version number from profile +_currentVersion = getText (configFile >> "CfgPatches" >> "AGM_Core" >> "version"); +_previousVersion = profileNamespace getVariable ["AGM_VersionNumberString", ""]; + +if (_currentVersion != _previousVersion) then { + // do something + + profileNamespace setVariable ["AGM_VersionNumberString", _currentVersion]; +}; + +0 spawn compile preprocessFileLineNumbers "\AGM_core\scripts\Version\checkVersionNumber.sqf"; + +// everything that only player controlled machines need, goes below this +if (!hasInterface) exitWith {}; + +call compile preprocessFileLineNumbers "\AGM_core\scripts\assignedItemFix.sqf"; + +GVAR(keyInput) = compile preprocessFileLineNumbers "\AGM_core\scripts\keyInput.sqf"; +GVAR(keyRelease) = compile preprocessFileLineNumbers "\AGM_core\scripts\keyRelease.sqf"; +GVAR(editKey) = compile preprocessFileLineNumbers "\AGM_core\scripts\editKey.sqf"; +GVAR(openMenu) = compile preprocessFileLineNumbers "\AGM_core\scripts\openMenu.sqf"; +GVAR(closeMenu) = compile preprocessFileLineNumbers "\AGM_core\scripts\closeMenu.sqf"; +GVAR(nextKeys) = compile preprocessFileLineNumbers "\AGM_core\scripts\nextKeys.sqf"; +GVAR(toggleState) = compile preprocessFileLineNumbers "\AGM_core\scripts\toggleState.sqf"; + +[false] call GVAR(fnc_setKeyDefault); + +GVAR(keyStates) = []; +GVAR(keyTimes) = []; +for "_index" from 0 to 300 do { + GVAR(keyStates) set [_index, 0]; + GVAR(keyTimes) set [_index, -1]; +}; + +call compile preprocessFileLineNumbers "\AGM_core\scripts\KeyInput\initCanInteractFunction.sqf"; +call compile preprocessFileLineNumbers "\AGM_core\scripts\KeyInput\initKeys.sqf"; +call compile preprocessFileLineNumbers "\AGM_core\scripts\KeyInput\initScrollWheel.sqf"; + +0 spawn { + while {true} do { + waitUntil {!isNull (findDisplay 46)}; sleep 0.1; + findDisplay 46 displayAddEventHandler ["KeyDown", "_this call GVAR(onKeyDown)"]; + findDisplay 46 displayAddEventHandler ["KeyUp", "_this call GVAR(onKeyUp)"]; + findDisplay 46 displayAddEventHandler ["MouseZChanged", "_this call GVAR(onScrollWheel)"]; + [false] call GVAR(fnc_disableUserInput); + waitUntil {isNull (findDisplay 46)}; + }; +}; + +enableCamShake true; + +[missionNamespace, "playerChanged", "{if (alive (_this select 0)) then {[_this select 0] call GVAR(fnc_setName)}; if (alive (_this select 1)) then {[_this select 1] call GVAR(fnc_setName)};}"] call GVAR(fnc_addCustomEventhandler); diff --git a/addons/core/XEH_preInit.sqf b/addons/core/XEH_preInit.sqf new file mode 100644 index 0000000000..95329c8bfa --- /dev/null +++ b/addons/core/XEH_preInit.sqf @@ -0,0 +1,22 @@ +// by commy2 + +AGM_player = player; + +if (hasInterface) then { + ["AGM_CheckForPlayerChange", "onEachFrame", { + if !(AGM_player isEqualTo (missionNamespace getVariable ["BIS_fnc_moduleRemoteControl_unit", player])) then { + //if (AGM_player != missionNamespace getVariable ["BIS_fnc_moduleRemoteControl_unit", player]) then { + _this = AGM_player; + + AGM_player = missionNamespace getVariable ["BIS_fnc_moduleRemoteControl_unit", player]; + uiNamespace setVariable ["AGM_player", AGM_player]; + + [missionNamespace, "playerChanged", [AGM_player, _this]] call GVAR(fnc_callCustomEventHandlers); + }; + }] call BIS_fnc_addStackedEventHandler; +}; + +// remove this for the release +/*if (isNil "AGM_Debug") then { + AGM_Debug = ["remote"]; +};*/ diff --git a/addons/core/config.cpp b/addons/core/config.cpp new file mode 100644 index 0000000000..e1a71e0103 --- /dev/null +++ b/addons/core/config.cpp @@ -0,0 +1,94 @@ +#include "script_component.hpp" + +class CfgPatches { + class ADDON { + units[] = {"AGM_Box_Misc"}; + weapons[] = {"AGM_ItemCore", "AGM_FakePrimaryWeapon"}; + requiredVersion = 0.60; + requiredAddons[] = { + "ace_main" + }; + version = "0.95"; + versionStr = "0.95"; + versionAr[] = {0,95,0}; + author[] = {"KoffeinFlummi"}; + authorUrl = "https://github.com/KoffeinFlummi/"; + }; +}; + +#include "CfgEventHandlers.hpp" +#include "CfgFunctions.hpp" +#include "CfgSounds.hpp" +#include "CfgVehicles.hpp" +#include "CfgWeapons.hpp" + +class CfgFactionClasses { + class PREFIX { + displayName = QUOTE(PREFIX); + priority = 0.1; + side = 7; + }; +}; + +class AGM_Rsc_Display_Base { + idd = -1; + type = 0; + style = 48; + name = ""; + duration = 999999; + fadeIn = 0; + fadeOut = 0; + font = "TahomaB"; + size = 1; + colorBackground[] = {1, 1, 1, 0}; + colorText[] = {1, 1, 1, 1}; +}; + +class AGM_Rsc_Control_Base { + idc = 1; + type = 0; + style = 48; + access = 0; + lineSpacing = 0; + moving = 1; + text = ""; + size = 1; + sizeEx = 0; + font = "TahomaB"; + colorBackground[] = {1, 1, 1, 0}; + colorText[] = {1, 1, 1, 1}; + x = 0; + y = 0; + w = 0; + h = 0; +}; + +class GVAR(canInteractConditions) { + class GVAR(notOnMap) { + condition = "!visibleMap"; + }; +}; + +class GVAR(Options) { + class enableNumberHotkeys { + displayName = "$STR_AGM_Core_EnableNumberHotkeys"; + default = 1; + }; +}; + +#include +#include +#include +#include + +/* +class RscControlsGroupNoScrollbars; +class RscAttributeInventory: RscControlsGroupNoScrollbars { + onSetFocus = "[_this,""RscAttributeInventory"",'CuratorCommon'] call (uinamespace getvariable ""BIS_fnc_initCuratorAttribute""); _this select 0 call AGM_CuratorFix_fnc_addUnloadEventhandler;"; +}; +*/ + +#include +#include +#include +#include diff --git a/addons/core/data/agm_default.rvmat b/addons/core/data/agm_default.rvmat new file mode 100644 index 0000000000..582ef10305 --- /dev/null +++ b/addons/core/data/agm_default.rvmat @@ -0,0 +1,82 @@ +/*class StageTI { + texture="bwa3_weapons\data\bwa3_puma_wanne_ti_ca.paa"; +};*/ +ambient[]={1,1,1,1}; +diffuse[]={1,1,1,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.01,0.01,0.01,1}; //amount of glossiness - the higher the number, the higher the glossiness +specularPower=500; //area of glossiness - the higher the number, the smaller the area +PixelShaderID="Super"; +VertexShaderID="Super"; + +class Stage1 { + texture="#(rgb,1,1,1)color(0.5,0.5,1,1)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 { + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,dt)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 { + texture="#(argb,8,8,3)color(0,0,0,0,mc)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 { + texture="#(argb,8,8,3)color(1,1,1,1,as)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,1}; + }; +}; +class Stage5 { + texture="#(rgb,1,1,1)color(0.2,0.2,1,1)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 { + texture="#(ai,64,64,1)fresnel(4.7,1.2)"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; +class Stage7 { + texture="a3\data_f\env_land_ca.paa"; + uvSource="tex"; + class uvTransform { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,1}; + pos[]={0,0,0}; + }; +}; diff --git a/addons/core/functions/CuratorFix/fn_addUnloadEventhandler.sqf b/addons/core/functions/CuratorFix/fn_addUnloadEventhandler.sqf new file mode 100644 index 0000000000..583879848a --- /dev/null +++ b/addons/core/functions/CuratorFix/fn_addUnloadEventhandler.sqf @@ -0,0 +1,12 @@ +// by commy2 + +private "_dlg"; + +disableSerialization; +_dlg = ctrlParent _this; + +_dlg displayAddEventHandler ["unload", { + if (_this select 1 == 1) then { + [missionnamespace getvariable ["BIS_fnc_initCuratorAttributes_target", objNull]] call AGM_CuratorFix_fnc_fixCrateContent; + }; +}]; diff --git a/addons/core/functions/CuratorFix/fn_fixCrateContent.sqf b/addons/core/functions/CuratorFix/fn_fixCrateContent.sqf new file mode 100644 index 0000000000..e79e570c30 --- /dev/null +++ b/addons/core/functions/CuratorFix/fn_fixCrateContent.sqf @@ -0,0 +1,33 @@ +// by commy2 + +private ["_crate", "_weapons", "_items"]; + +_crate = _this select 0; + +// get all weapons inside the crate +_weapons = weaponCargo _crate; +_items = []; + +// if the "weapon" is supposed to be an item, move those from the weapon array to the item array +{ + if (getText (configFile >> "CfgWeapons" >> _x >> "simulation") == "ItemMineDetector") then { + _weapons set [_forEachIndex, ""]; + _items pushBack _x; + }; +} forEach _weapons; + +_weapons = _weapons - [""]; + +// exit now if everything is fine +if (count _items == 0) exitWith {}; + +// otherwise clear weapon cargo and re-add items and weapons +clearWeaponCargoGlobal _crate; + +{ + _crate addWeaponCargoGlobal [_x, 1]; +} forEach _weapons; + +{ + _crate addItemCargoGlobal [_x, 1]; +} forEach _items; diff --git a/addons/core/functions/Debug/fn_exportConfig.sqf b/addons/core/functions/Debug/fn_exportConfig.sqf new file mode 100644 index 0000000000..9c28c36451 --- /dev/null +++ b/addons/core/functions/Debug/fn_exportConfig.sqf @@ -0,0 +1,69 @@ +// by commy2 + +/* + usage: + + (configFile >> "CfgAmmo") call AGM_Debug_fnc_exportConfig; +*/ + +private "_fnc_logEntries"; + +_fnc_logEntries = { + private ["_c", "_d", "_p", "_t", "_e"]; + + _c = _this select 0; + _d = _this select 1; + + _p = inheritsFrom _c; + + _t = format [["class %1: %2 {", "class %1 {"] select (configName _p == ""), configName _c, configName _p]; + for "_a" from 1 to _d do { + _t = " " + _t; + }; + diag_log text _t; + + _e = []; + for "_i" from 0 to (count _c - 1) do { + private ["_e1, _e2"]; + _e1 = _c select _i; + + _e2 = switch (true) do { + case (isNumber _e1): {getNumber _e1}; + case (isText _e1): {getText _e1}; + case (isArray _e1): {getArray _e1}; + case (isClass _e1): {[_e1, _d + 1] call _fnc_logEntries; false}; + }; + + if (typeName _e2 != "BOOL") then { + if (typeName _e2 == "ARRAY") then { + _e2 = toArray str _e2; + { + if (_x == toArray "[" select 0) then { + _e2 set [_forEachIndex, toArray "{" select 0]; + }; + if (_x == toArray "]" select 0) then { + _e2 set [_forEachIndex, toArray "}" select 0]; + }; + } forEach _e2; + _e2 = toString _e2; + _t = format ["%1[] = %2;", configName _e1, _e2]; + } else { + _t = format ["%1 = %2;", configName _e1, str _e2]; + }; + for "_a" from 0 to _d do { + _t = " " + _t; + }; + diag_log text _t; + }; + }; + + _t = "};"; + for "_a" from 1 to _d do { + _t = " " + _t; + }; + diag_log text _t; + diag_log text ""; + +}; + +[_this, 0] call _fnc_logEntries; diff --git a/addons/core/functions/Debug/fn_getChildren.sqf b/addons/core/functions/Debug/fn_getChildren.sqf new file mode 100644 index 0000000000..79c7461c47 --- /dev/null +++ b/addons/core/functions/Debug/fn_getChildren.sqf @@ -0,0 +1,10 @@ +// by commy2 + +private ["_name", "_cfgClass", "_classes"]; + +_name = _this select 0; +_cfgClass = _this select 1; + +_classes = format ["configName inheritsFrom _x == '%1'", _name] configClasses (configFile >> _cfgClass); +_classes = [_classes, {configName _this}] call GVAR(fnc_map); +_classes diff --git a/addons/core/functions/Debug/fn_getDisplayConfigName.sqf b/addons/core/functions/Debug/fn_getDisplayConfigName.sqf new file mode 100644 index 0000000000..57eba31cf0 --- /dev/null +++ b/addons/core/functions/Debug/fn_getDisplayConfigName.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_configName", "_index"]; + +_configName = ""; + +for "_index" from 0 to (count configFile - 1) do { + _config = configFile select _index; + if (isClass _config && {isNumber (_config >> "idd")} && {getNumber (_config >> "idd") == _this}) exitWith { + _configName = configName _config; + }; +}; + +_configName diff --git a/addons/core/functions/Debug/fn_log.sqf b/addons/core/functions/Debug/fn_log.sqf new file mode 100644 index 0000000000..b2a260a31f --- /dev/null +++ b/addons/core/functions/Debug/fn_log.sqf @@ -0,0 +1,29 @@ +// by commy2 + +if ((_this select 0) in (missionNamespace getVariable ["AGM_Debug", []])) then { + private ["_type", "_argument", "_function", "_showInGame"]; + + _this resize 4; + + _type = _this select 0; + _argument = _this select 1; + _function = _this select 2; + _showInGame = _this select 3; + + if (isNil "_function") then { + _function = {_this}; + }; + + if (isNil "_showInGame") then { + _showInGame = true; + }; + + private "_result"; + _result = _argument call _function; + + if (_showInGame) then { + systemChat format ["%1", _result]; + }; + + diag_log text format ["[AGM] Debug: %1 : %2 - %3 : %4", _type, diag_frameno, _fnc_scriptNameParent, _result]; +}; diff --git a/addons/core/functions/Debug/fn_logControls.sqf b/addons/core/functions/Debug/fn_logControls.sqf new file mode 100644 index 0000000000..d0037cce31 --- /dev/null +++ b/addons/core/functions/Debug/fn_logControls.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_array", "_index"]; + +_array = []; + +for "_index" from 0 to 10000 do { + if (str (findDisplay _this displayCtrl _index) != "No control") then { + diag_log text str (findDisplay _this displayCtrl _index); + _array pushBack _index; + }; +}; + +_array; diff --git a/addons/core/functions/Debug/fn_logDisplays.sqf b/addons/core/functions/Debug/fn_logDisplays.sqf new file mode 100644 index 0000000000..5d990b8042 --- /dev/null +++ b/addons/core/functions/Debug/fn_logDisplays.sqf @@ -0,0 +1,14 @@ +// by commy2 + +private ["_array", "_index"]; + +_array = []; + +for "_index" from 0 to 10000 do { + if (str (findDisplay _index) != "No Display") then { + diag_log text str findDisplay _index; + _array pushBack _index; + }; +}; + +_array; diff --git a/addons/core/functions/Debug/fn_monitor.sqf b/addons/core/functions/Debug/fn_monitor.sqf new file mode 100644 index 0000000000..6065e23837 --- /dev/null +++ b/addons/core/functions/Debug/fn_monitor.sqf @@ -0,0 +1,10 @@ +// by commy2 + +terminate (missionNamespace getVariable ["AGM_Debug_MonitorFnc", scriptNull]); + +AGM_Debug_MonitorFnc = _this spawn { + waitUntil { + hintSilent str (call _this); + false + }; +}; diff --git a/addons/core/functions/Debug/fn_showUser.sqf b/addons/core/functions/Debug/fn_showUser.sqf new file mode 100644 index 0000000000..d01585c4dc --- /dev/null +++ b/addons/core/functions/Debug/fn_showUser.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private "_object"; + +AGM_Debug_Object = _this select 0; + +onEachFrame { + hintSilent str (AGM_Debug_Object getVariable ["AGM_isUsedBy", objNull]); +}; diff --git a/addons/core/functions/fn_addActionEventHandler.sqf b/addons/core/functions/fn_addActionEventHandler.sqf new file mode 100644 index 0000000000..8ea3267335 --- /dev/null +++ b/addons/core/functions/fn_addActionEventHandler.sqf @@ -0,0 +1,69 @@ +/* + * Author: commy2 + * + * Add an addAction event to a unit. Used to handle multiple addAction events. Global arguments, local effects. Does only work for player controlled units. + * + * Argument: + * 0: Unit the action should be assigned to (Object) + * 1: Name of the action, e.g. "DefaultAction" (String) + * 2: Condition (Code or String) + * 3: Code to execute (Code or String) + * + * Return value: + * ID of the action (used to remove it later). + */ + +private ["_unit", "_action", "_condition", "_statement", "_name", "_actionsVar", "_actionID", "_actions", "_id", "_actionIDs"]; + +_unit = _this select 0; +_action = _this select 1; +_condition = _this select 2; +_statement = _this select 3; + +if (typeName _condition == "STRING") then { + _condition = compile _condition; +}; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_name = format ["AGM_Action_%1", _action]; + +_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; + +_actionID = _actionsVar select 0; +_actions = _actionsVar select 1; + +_id = (_actions select 0) + 1; +_actionIDs = _actions select 1; +_actions = _actions select 2; + +_actionIDs pushBack _id; +_actions pushBack [_condition, _statement]; + +// first action to add, unit needs addAction command +if (_actionID == -1) then { + private "_addAction"; + + _addAction = call compile format [ + "[ + '', + {if (inputAction '%1' == 0) exitWith {}; {if (_this call (_x select 0)) then {_this call (_x select 1)}} forEach (((_this select 0) getVariable '%2') select 1 select 2)}, + nil, + -1, + false, + true, + '%1', + ""if (_this != AGM_player || {vehicle _this != _target}) exitWith {false}; _actions = (_this getVariable '%2') select 1 select 2; _count = count _actions; _index = 0; _return = false; while {_index < _count && {!_return}} do {_return = [_target, _this] call ((_actions select _index) select 0); _index = _index + 1}; _return"" + ]", + _action, + _name + ]; + + _actionID = _unit addAction _addAction; +}; + +_unit setVariable [_name, [_actionID, [_id, _actionIDs, _actions]], false]; + +_id diff --git a/addons/core/functions/fn_addActionMenuEventHandler.sqf b/addons/core/functions/fn_addActionMenuEventHandler.sqf new file mode 100644 index 0000000000..9819c84271 --- /dev/null +++ b/addons/core/functions/fn_addActionMenuEventHandler.sqf @@ -0,0 +1,85 @@ +/* + * Author: commy2 + * + * Add an addAction event to a unit. Used to handle multiple addAction events and add a action to the mouse wheel menu. Global arguments, local effects. Does only work for player controlled units. + * + * Argument: + * 0: Unit the action should be assigned to (Object) + * 1: Menu title of the action (String) + * 2: Name of the action, e.g. "DefaultAction" (String) + * 3: Condition (Code or String) + * 4: Code to execute by the action (Code or String) + * 5: Condition for the menu action (Code or String) + * 6: Code to execute from the menu (Code or String) + * 7: Priority of the action (Number, optional default: 0) + * + * Return value: + * ID of the action (used to remove it later). + */ + +private ["_unit", "_displayName", "_action", "_condition", "_statement", "_condition2", "_statement2", "_priority", "_name", "_actionsVar", "_id", "_actionIDs", "_actions", "_nameVar", "_addAction", "_actionID"]; + +_unit = _this select 0; +_displayName = _this select 1; +_action = _this select 2; +_condition = _this select 3; +_statement = _this select 4; +_condition2 = _this select 5; +_statement2 = _this select 6; +_priority = _this select 7; + +if (isNil "_priority") then {_priority = 0}; + +if (typeName _condition == "STRING") then { + _condition = compile _condition; +}; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +if (typeName _condition2 == "STRING") then { + _condition2 = compile _condition2; +}; + +if (typeName _statement2 == "STRING") then { + _statement2 = compile _statement2; +}; + +_name = format ["AGM_ActionMenu_%1", _action]; + +_actionsVar = _unit getVariable [_name, [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_nameVar = format ["%1_ID%2", _name, _id]; +missionNamespace setVariable [_nameVar, [_condition, _statement, _condition2, _statement2]]; + +_actionIDs pushBack _id; + +_addAction = call compile format [ + "[ + '%2', + {if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}}, + nil, + %4, + false, + true, + '%1', + ""if (_this != AGM_player || {vehicle _this != _target}) exitWith {false}; [_target, _this] call (%3 select 0)"" + ]", + _action, + _displayName, + _nameVar, + _priority +]; + +_actionID = _unit addAction _addAction; + +_actions pushBack [_actionID, _nameVar]; + +_unit setVariable [_name, [_id, _actionIDs, _actions], false]; + +_id diff --git a/addons/core/functions/fn_addCameraEventHandler.sqf b/addons/core/functions/fn_addCameraEventHandler.sqf new file mode 100644 index 0000000000..281b0366ec --- /dev/null +++ b/addons/core/functions/fn_addCameraEventHandler.sqf @@ -0,0 +1,38 @@ +/* + * Author: commy2 + * + * Add a camera view event handler. The event script is called when the camera view changes. + * The argument of the called function is stored in the _this variable and has as first element the new camera mode. Possible arguments are ["INTERNAL"], ["EXTERNAL"], ["GUNNER"] and ["GROUP"]. + * + * Argument: + * 0: Code to execute (Code or String) + * + * Return value: + * ID of the event script (used to remove it later). + */ + +private ["_statement", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_statement = _this select 0; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_actionsVar = missionNamespace getVariable ["AGM_EventHandler_CameraMode", [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +if (_id == 0) then { + uiNamespace setVariable ["AGM_EventHandler_CameraMode", cameraView]; + ("AGM_EventHandlerHelper" call BIS_fnc_rscLayer) cutRsc ["AGM_EventHandlerHelper", "PLAIN"]; +}; + +_actionIDs pushBack _id; +_actions pushBack _statement; + +missionNamespace setVariable ["AGM_EventHandler_CameraMode", [_id, _actionIDs, _actions]]; + +_id diff --git a/addons/core/functions/fn_addCustomEventHandler.sqf b/addons/core/functions/fn_addCustomEventHandler.sqf new file mode 100644 index 0000000000..2f6aa1dcde --- /dev/null +++ b/addons/core/functions/fn_addCustomEventHandler.sqf @@ -0,0 +1,38 @@ +/* + * Author: commy2 + * + * Add a custom event to a unit. The event scripts are called by GVAR(fnc_callCustomEventHandlers). + * + * Argument: + * 0: Object the event should be assigned to or namespace (Object OR Namespace) + * 1: Name of the event (String) + * 2: Code to execute (Code or String) + * + * Return value: + * ID of the event script (used to remove it later). + */ + +private ["_object", "_type", "_statement", "_name", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_object = _this select 0; +_type = _this select 1; +_statement = _this select 2; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_name = format ["AGM_CustomEventHandlers_%1", _type]; + +_actionsVar = _object getVariable [_name, [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_actionIDs pushBack _id; +_actions pushBack _statement; + +_object setVariable [_name, [_id, _actionIDs, _actions]]; + +_id diff --git a/addons/core/functions/fn_addInfoDisplayEventHandler.sqf b/addons/core/functions/fn_addInfoDisplayEventHandler.sqf new file mode 100644 index 0000000000..2cb4e6ea73 --- /dev/null +++ b/addons/core/functions/fn_addInfoDisplayEventHandler.sqf @@ -0,0 +1,34 @@ +/* + * Author: commy2 + * + * Add a unit info type handler. + * + * Argument: + * 0: Type. Can be "Soldier", "Vehicle", "Aircraft", "Ship", "Parachute" or "Any". "Any" will execute for any compatible display (String) + * 1: Code to execute (Code or String) + * + * Return value: + * ID of the event script (used to remove it later). + */ + +private ["_type", "_statement", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_type = format ["AGM_onLoadInfo%1", _this select 0]; +_statement = _this select 1; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_actionsVar = missionNamespace getVariable [_type, [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_actionIDs pushBack _id; +_actions pushBack _statement; + +missionNamespace setVariable [_type, [_id, _actionIDs, _actions]]; + +_id diff --git a/addons/core/functions/fn_addInventoryDisplayLoadedEventHandler.sqf b/addons/core/functions/fn_addInventoryDisplayLoadedEventHandler.sqf new file mode 100644 index 0000000000..b9b49551b0 --- /dev/null +++ b/addons/core/functions/fn_addInventoryDisplayLoadedEventHandler.sqf @@ -0,0 +1,32 @@ +/* + * Author: commy2 + * + * Add an inventory display opened handler. + * + * Argument: + * 0: Code to execute (Code or String) + * + * Return value: + * ID of the event script (used to remove it later). + */ + +private ["_statement", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_statement = _this select 0; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_actionsVar = missionNamespace getVariable ["AGM_onLoadInventory", [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_actionIDs pushBack _id; +_actions pushBack _statement; + +missionNamespace setVariable ["AGM_onLoadInventory", [_id, _actionIDs, _actions]]; + +_id diff --git a/addons/core/functions/fn_addMapMarkerCreatedEventHandler.sqf b/addons/core/functions/fn_addMapMarkerCreatedEventHandler.sqf new file mode 100644 index 0000000000..fbcddbe5c3 --- /dev/null +++ b/addons/core/functions/fn_addMapMarkerCreatedEventHandler.sqf @@ -0,0 +1,37 @@ +/* + * Author: commy2 + * + * Add a map marker creation event handler. + * + * Argument: + * 0: Code to execute (Code or String) + * + * Return value: + * ID of the event script (used to remove it later). + */ + +private ["_statement", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_statement = _this select 0; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_actionsVar = missionNamespace getVariable ["AGM_EventHandler_MapMarker", [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +if (_id == 0) then { + uiNamespace setVariable ["AGM_EventHandler_MapMarker", count allMapMarkers]; + ("AGM_EventHandlerHelper2" call BIS_fnc_rscLayer) cutRsc ["AGM_EventHandlerHelper2", "PLAIN"]; +}; + +_actionIDs pushBack _id; +_actions pushBack _statement; + +missionNamespace setVariable ["AGM_EventHandler_MapMarker", [_id, _actionIDs, _actions]]; + +_id diff --git a/addons/core/functions/fn_addScrollWheelEventHandler.sqf b/addons/core/functions/fn_addScrollWheelEventHandler.sqf new file mode 100644 index 0000000000..33c4dd9acc --- /dev/null +++ b/addons/core/functions/fn_addScrollWheelEventHandler.sqf @@ -0,0 +1,32 @@ +/* + * Author: commy2 + * + * Add an event handler that executes every time the scroll wheel is used. This is needed, because adding a MouseZ display event handler to display 46 will break in save games. Argument will be [Interval] where 'Interval' is a number. + * + * Argument: + * 0: Code to execute (Code or String) + * + * Return value: + * ID of the event script (used to remove it later). + */ + +private ["_statement", "_actionsVar", "_id", "_actionIDs", "_actions"]; + +_statement = _this select 0; + +if (typeName _statement == "STRING") then { + _statement = compile _statement; +}; + +_actionsVar = missionNamespace getVariable ["AGM_EventHandler_ScrollWheel", [-1, [], []]]; + +_id = (_actionsVar select 0) + 1; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_actionIDs pushBack _id; +_actions pushBack _statement; + +missionNamespace setVariable ["AGM_EventHandler_ScrollWheel", [_id, _actionIDs, _actions]]; + +_id diff --git a/addons/core/functions/fn_adminKick.sqf b/addons/core/functions/fn_adminKick.sqf new file mode 100644 index 0000000000..316756f492 --- /dev/null +++ b/addons/core/functions/fn_adminKick.sqf @@ -0,0 +1,7 @@ +// by commy2 + +private "_name"; + +_name = name (_this select 0); + +[_name, "{if (serverCommandAvailable '#kick') then {serverCommand format['#kick %1', _this]}}"] call GVAR(fnc_execRemoteFnc); diff --git a/addons/core/functions/fn_ambientBrightness.sqf b/addons/core/functions/fn_ambientBrightness.sqf new file mode 100644 index 0000000000..f3ec3d4bfe --- /dev/null +++ b/addons/core/functions/fn_ambientBrightness.sqf @@ -0,0 +1,13 @@ +/* + * Author: commy2, idea by Falke + * + * Returns a brightness value depending on the sun and moon state. Ranges from 0 to 1 (dark ... bright). + * + * Argument: + * None. + * + * Return value: + * Ambient brightness (Number) + */ + +sunOrMoon * sunOrMoon + moonIntensity/5 min 1 diff --git a/addons/core/functions/fn_applyForceWalkStatus.sqf b/addons/core/functions/fn_applyForceWalkStatus.sqf new file mode 100644 index 0000000000..ef35ec707c --- /dev/null +++ b/addons/core/functions/fn_applyForceWalkStatus.sqf @@ -0,0 +1,24 @@ +/* +Name: GVAR(fnc_applyForceWalkStatus) + +Author: Pabst Mirror + +Description: + Applys the forceWalk status of an unit. Called from Extended_InitPost_EventHandlers. + +Parameters: + 0: OBJECT - Unit + +Returns: + None + +Example: + [AGM_Player] call GVAR(fnc_applyForceWalkStatus) +*/ + +private ["_unit", "_forceWalkNumber"]; + +_unit = _this select 0; +_forceWalkNumber = _unit getVariable ["AGM_forceWalkStatusNumber", 0]; + +_unit forceWalk (_forceWalkNumber > 0); diff --git a/addons/core/functions/fn_binarizeNumber.sqf b/addons/core/functions/fn_binarizeNumber.sqf new file mode 100644 index 0000000000..d0ec7fe3b8 --- /dev/null +++ b/addons/core/functions/fn_binarizeNumber.sqf @@ -0,0 +1,37 @@ +/* + * Author: commy2 + * + * Get a binary equivalent of a decimal number. + * + * Argument: + * 0: Decimal Number (Number) + * 1: Minimum length of the returned Array, note: returned array can be larger (Number, optional default 8) + * + * Return value: + * Booleans (Array) + */ + +private ["_number", "_minLength", "_array", "_index", "_rest"]; + +_number = round (_this select 0); +_minLength = _this select 1; + +if (isNil "_minLength") then {_minLength = 8}; + +_array = []; +_array resize _minLength; + +for "_index" from 0 to (_minLength - 1) do { + _array set [_index, false]; +}; + +_index = 0; + +while {_number > 0} do { + _rest = _number mod 2; + _number = floor (_number / 2); + + _array set [_index, _rest == 1]; + _index = _index + 1; +}; +_array diff --git a/addons/core/functions/fn_callCustomEventHandlers.sqf b/addons/core/functions/fn_callCustomEventHandlers.sqf new file mode 100644 index 0000000000..b028102e7f --- /dev/null +++ b/addons/core/functions/fn_callCustomEventHandlers.sqf @@ -0,0 +1,30 @@ +/* + * Author: commy2 + * + * Execute all custom event script assigned to this object. + * + * Argument: + * 0: Object the eventhandlers are assigned to or namespace (Object or Namespace) + * 1: Name of the event (String) + * 2: Arguments passed to the eventhandler script (Array, optional default: [Object the event handlers are assigned to]) + * + * Return value: + * None. + */ + +private ["_object", "_type", "_argument", "_name", "_actions"]; + +_object = _this select 0; +_type = _this select 1; +_argument = _this select 2; + +if (isNil "_argument") then {_argument = [_object]}; + +_name = format ["AGM_CustomEventHandlers_%1", _type]; + +_actions = (_object getVariable [_name, [-1, [], []]]) select 2; + +{ + _argument call _x; nil; +} count _actions; +nil diff --git a/addons/core/functions/fn_callCustomEventHandlersGlobal.sqf b/addons/core/functions/fn_callCustomEventHandlersGlobal.sqf new file mode 100644 index 0000000000..2e6a830cda --- /dev/null +++ b/addons/core/functions/fn_callCustomEventHandlersGlobal.sqf @@ -0,0 +1,15 @@ +/* + * Author: commy2 + * + * Execute all custom event script assigned to this object on every machine. + * + * Argument: + * 0: Object the eventhandlers are assigned to or namespace (Object or Namespace) + * 1: Name of the event (String) + * 2: Arguments passed to the eventhandler script (Array, optional default: [Object the event handlers are assigned to]) + * + * Return value: + * None. + */ + +[_this, "GVAR(fnc_callCustomEventHandlers)", 2] call GVAR(fnc_execRemoteFnc); diff --git a/addons/core/functions/fn_canGetInPosition.sqf b/addons/core/functions/fn_canGetInPosition.sqf new file mode 100644 index 0000000000..3ce0553c43 --- /dev/null +++ b/addons/core/functions/fn_canGetInPosition.sqf @@ -0,0 +1,262 @@ +/* + * Author: commy2 + * + * Is the unit able to enter the vehicle in the given position? + * + * Arguments: + * 0: Unit to enter the vehicle (Object) + * 1: The vehicle to be entered (Object) + * 2: Position. Can be "Driver", "Pilot", "Gunner", "Commander", "Copilot", "Turret", "FFV", "Codriver" or "Cargo" (String) + * 3: Check current distance to vehicles memory point? (Bool, optional default: false) + * 4: Index. "Turret", "FFV", "Codriver" and "Cargo" support this optional parameter. Which position should be taken. + * Note: This index is diffrent from Armas "cargoIndex". (Number, optional default: next free index) + * + * Return Value: + * Nothing + */ + +#define CANGETINDRIVER (isNull (driver _vehicle) || {!alive driver _vehicle}) && {!lockedDriver _vehicle} && {getNumber (_config >> "isUav") != 1} +#define CANGETINTURRETINDEX (isNull (_vehicle turretUnit _turret) || {!alive (_vehicle turretUnit _turret)}) && {!(_vehicle lockedTurret _turret)} && {getNumber (_config >> "isUav") != 1} + +private ["_unit", "_vehicle", "_position", "_checkDistance", "_index"]; + +_this resize 5; + +_unit = _this select 0; +_vehicle = _this select 1; +_position = toLower (_this select 2); +_checkDistance = _this select 3; +_index = _this select 4; // optional, please don't use + +if (isNil "_checkDistance") then {_checkDistance = false}; +if (isNil "_index") then {_index = -1}; + +// general +if (!alive _vehicle || {locked _vehicle > 1}) exitWith {false}; + +private ["_config", "_turret", "_radius", "_selectionPosition", "_selectionPosition2", "_enemiesInVehicle", "_return"]; + +_config = configFile >> "CfgVehicles" >> typeOf _vehicle; +_turret = []; + +_radius = 0; + +_enemiesInVehicle = false; //Possible Side Restriction +{ + if (side _unit getFriend side _x < 0.6) exitWith {_enemiesInVehicle = true}; +} forEach crew _vehicle; + +_return = false; +switch (_position) do { + case "driver" : { + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInDriver")); + + if (_vehicle isKindOf "Tank") then { + _selectionPosition2 = [-(_selectionPosition select 0), _selectionPosition select 1, _selectionPosition select 2]; + }; + + _return = CANGETINDRIVER; + }; + + case "pilot" : { + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInDriver")); + + _return = CANGETINDRIVER; + }; + + case "gunner" : { + private "_turretConfig"; + _turret = [typeOf _vehicle] call GVAR(fnc_getTurretGunner); + if (_turret isEqualTo []) exitWith {false}; + + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = CANGETINTURRETINDEX + }; + + case "commander" : { + private "_turretConfig"; + _turret = [typeOf _vehicle] call GVAR(fnc_getTurretCommander); + if (_turret isEqualTo []) exitWith {false}; + + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = CANGETINTURRETINDEX + }; + + case "copilot" : { + private "_turretConfig"; + _turret = [typeOf _vehicle] call GVAR(fnc_getTurretCopilot); + if (_turret isEqualTo []) exitWith {false}; + + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = CANGETINTURRETINDEX + }; + + case "turret" : { + private ["_turrets", "_turretConfig"]; + _turrets = [typeOf _vehicle] call GVAR(fnc_getTurretsOther); + + if (_index != -1 && {_turret = _turrets select _index; + CANGETINTURRETINDEX + }) then { + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = true + } else { + for "_index" from 0 to (count _turrets - 1) do { + _turret = _turrets select _index; + if (CANGETINTURRETINDEX) exitWith { + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = true + }; + }; + }; + }; + + case "ffv" : { + private ["_turrets", "_turretConfig"]; + _turrets = [typeOf _vehicle] call GVAR(fnc_getTurretsFFV); + + if (_index != -1 && {_turret = _turrets select _index; + CANGETINTURRETINDEX + }) then { + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = true + } else { + for "_index" from 0 to (count _turrets - 1) do { + _turret = _turrets select _index; + if (CANGETINTURRETINDEX) exitWith { + _turretConfig = [_config, _turret] call GVAR(fnc_getTurretConfigPath); + + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_turretConfig >> "memoryPointsGetInGunner")); + + _return = true + }; + }; + }; + }; + + case "codriver" : { + private "_positions"; + _positions = [typeOf _vehicle] call GVAR(fnc_getVehicleCodriver); + + { + if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))}; + } forEach crew _vehicle; + + if (_index != -1 && {_index in _positions}) then { + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInCargo")); + + if (_vehicle isKindOf "Car" && {!(_vehicle isKindOf "Wheeled_APC_F")}) then { + _selectionPosition2 = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInDriver")); + _selectionPosition2 set [0, -(_selectionPosition2 select 0)]; + }; + + _return = true + } else { + + _index = _positions select 0; + if (!isNil "_index") then { + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInCargo")); + + if (_vehicle isKindOf "Car" && {!(_vehicle isKindOf "Wheeled_APC_F")}) then { + _selectionPosition2 = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInDriver")); + _selectionPosition2 set [0, -(_selectionPosition2 select 0)]; + }; + + _return = true + }; + }; + }; + + case "cargo" : { + private "_positions"; + _positions = [typeOf _vehicle] call GVAR(fnc_getVehicleCargo); + + { + if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))}; + } forEach crew _vehicle; + + if (_index != -1 && {_index in _positions}) then { + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInCargo")); + + if (_vehicle isKindOf "Car" && {!(_vehicle isKindOf "Wheeled_APC_F")}) then { + _selectionPosition2 = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInDriver")); + _selectionPosition2 set [0, -(_selectionPosition2 select 0)]; + }; + + _return = true + } else { + + _index = _positions select 0; + if (!isNil "_index") then { + _radius = getNumber (_config >> "getInRadius"); + _selectionPosition = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInCargo")); + + if (_vehicle isKindOf "Car" && {!(_vehicle isKindOf "Wheeled_APC_F")}) then { + _selectionPosition2 = _vehicle selectionPosition (getText (_config >> "memoryPointsGetInDriver")); + _selectionPosition2 set [0, -(_selectionPosition2 select 0)]; + }; + + _return = true + }; + }; + }; + + default {}; +}; + +private "_fnc_isInRange"; +_fnc_isInRange = { + if (_radius == 0) exitWith {true}; + + private ["_unitPosition", "_distance"]; + _unitPosition = getPos _unit; + + _distance = _unitPosition distance (_vehicle modelToWorld _selectionPosition); + + if (!isNil "_selectionPosition2") then { + _distance = _distance min (_unitPosition distance (_vehicle modelToWorld _selectionPosition2)); + }; + + _distance < _radius +}; + +// if you want into the cargo and you can't, then check ffv turrets aswell +if (_position == "cargo") exitWith { + if (_return && {!_checkDistance || {_vehicle == vehicle _unit} || _fnc_isInRange}) then {true} else { + [_unit, _vehicle, "ffv", _checkDistance] call GVAR(fnc_canGetInPosition); + } +}; + +_return && {!_checkDistance || {_vehicle == vehicle _unit} || _fnc_isInRange} + +//_enemiesInVehicle diff --git a/addons/core/functions/fn_canInteractWith.sqf b/addons/core/functions/fn_canInteractWith.sqf new file mode 100644 index 0000000000..1550fcc031 --- /dev/null +++ b/addons/core/functions/fn_canInteractWith.sqf @@ -0,0 +1,10 @@ +// by commy2 + +private ["_unit", "_target", "_owner"]; + +_unit = _this select 0; +_target = _this select 1; + +_owner = _target getVariable ["AGM_isUsedBy", objNull]; + +isNull _owner || {_unit == _owner} || {!isPlayer _owner} diff --git a/addons/core/functions/fn_canUseWeapon.sqf b/addons/core/functions/fn_canUseWeapon.sqf new file mode 100644 index 0000000000..038e9b716a --- /dev/null +++ b/addons/core/functions/fn_canUseWeapon.sqf @@ -0,0 +1,14 @@ +// by commy2 + +// returns true if the unit is on foot or in a ffv position + +private ["_unit", "_config"]; + +_unit = _this select 0; + +if (_unit == vehicle _unit) exitWith {true}; + +_config = configFile >> "CfgMovesMaleSdr" >> "States" >> animationState _unit; + +isClass _config +&& {getNumber (_config >> "canPullTrigger") == 1} diff --git a/addons/core/functions/fn_changeProjectileDirection.sqf b/addons/core/functions/fn_changeProjectileDirection.sqf new file mode 100644 index 0000000000..a70d443d01 --- /dev/null +++ b/addons/core/functions/fn_changeProjectileDirection.sqf @@ -0,0 +1,60 @@ +/* + * Author: commy2 + * + * Adjust a projectiles velocity and dir + up vector. + * + * Argument: + * 0: Projectile (Object, CfgAmmo) + * 1: Adjust azimuth this much. (Number) + * 2: Adjust inclination this much. (Number) + * 3: Adjust projectile speed this much. In m/s. (Number, optional default: 0 m/s) + * + * Return value: + * None. + */ + +private ["_projectile", "_adjustDir", "_adjustUp", "_adjustSpeed", "_vdir", "_dir", "_up", "_l", "_r", "_vup", "_vel"]; + +_projectile = _this select 0; +_adjustDir = _this select 1; +_adjustUp = _this select 2; +_adjustSpeed = _this select 3; + +if (isNil "_adjustSpeed") then { + _adjustSpeed = 0; +}; + +["CPD", [_fnc_scriptNameParent, _adjustDir, _adjustUp, _adjustSpeed], nil, false] call AGM_Debug_fnc_log; + +// get old direction vector +_vdir = vectorDir _projectile; + +// get azimuth and inclination and apply corrections +_dir = (_vdir select 0) atan2 (_vdir select 1) + _adjustDir; +_up = sqrt ((_vdir select 1) ^ 2 + (_vdir select 0) ^ 2) atan2 - (_vdir select 2) + _adjustUp; + +// get new direction vector (this is a unit vector) +_vdir = [ + sin _dir * sin _up, + cos _dir * sin _up, + - cos _up +]; + +// get best up vector +_l = sqrt ((_vdir select 0) ^ 2 + (_vdir select 1) ^ 2); if (_l == 0) then {diag_log text format ["[AGM] ERROR: %1, %2, %3, %4, %5, %6, %7", _projectile, _adjustDir, _adjustUp, vectorDir _projectile, _vdir, _dir, _up]}; +_r = -(_vdir select 2) / _l; + +_vup = [ + (_vdir select 0) * _r, + (_vdir select 1) * _r, + _l +]; + +// get new speed vector. Keep total speed, but change to new direction. Yay for vector commands. +_vel = _vdir vectorMultiply _adjustSpeed + vectorMagnitude velocity _projectile; + +// set projectile direction dir and up. Projectiles are long objects, especially with tracers, so it would look dumb otherwise. +_projectile setVectorDirAndUp [_vdir, _vup]; + +// set new speed vector +_projectile setVelocity _vel; diff --git a/addons/core/functions/fn_checkPBOs.sqf b/addons/core/functions/fn_checkPBOs.sqf new file mode 100644 index 0000000000..6b7732b0ae --- /dev/null +++ b/addons/core/functions/fn_checkPBOs.sqf @@ -0,0 +1,39 @@ +/* + * Author: commy2 + * + * Used to execute the checkPBOs module without placing the module. Don't use this together with the module. + * + * Argument: + * 0: Mode (Number) + * 0: Warn once + * 1: Warn permanently + * 2: Kick + * 1: Check all PBOs? (Boolean, optional default: "[]") + * 2: Whitelist (String, optinal default: false) + * + * Return value: + * None. + */ + +private ["_mode", "_checkAll", "_whitelist", "_logic"]; + +_this resize 3; + +_mode = _this select 0; +_checkAll = _this select 1; +_whitelist = _this select 2; + +if (isNil "_checkAll") then { + _checkAll = false; +}; + +if (isNil "_whitelist") then { + _whitelist = "[]"; +}; + +_logic = "Logic" createVehicleLocal [0,0,0]; +_logic setVariable ["Action", _mode]; +_logic setVariable ["CheckAll", _checkAll]; +_logic setVariable ["Whitelist", _whitelist]; +[_logic, [], true] call GVAR(fnc_moduleCheckPBOs); +deleteVehicle _logic; diff --git a/addons/core/functions/fn_claim.sqf b/addons/core/functions/fn_claim.sqf new file mode 100644 index 0000000000..593b16b505 --- /dev/null +++ b/addons/core/functions/fn_claim.sqf @@ -0,0 +1,27 @@ +// by commy2 + +private ["_unit", "_target", "_lockTarget", "_owner"]; + +_unit = _this select 0; +_target = _this select 1; +_lockTarget = _this select 2; + +if (isNil "_lockTarget") then {_lockTarget = false}; + +_owner = _target getVariable ["AGM_isUsedBy", objNull]; + +if (!isNull _owner && {!isNull _unit} && {_unit != _owner}) then { + diag_log text "[AGM] ERROR: Claiming already owned object."; +}; + +_target setVariable ["AGM_isUsedBy", _unit, true]; + +if (_lockTarget) then { + if (!isNull _unit) then { + [_target, "{_locked = locked _this; _this setVariable ['AGM_lockStatus', _locked]; _this lock 2}", _target] call GVAR(fnc_execRemoteFnc); + } else { + [_target, "{_this lock (_this getVariable ['AGM_lockStatus', locked _this])}", _target] call GVAR(fnc_execRemoteFnc); + }; +}; + +//systemChat str locked _target; systemChat str (_target getVariable ['AGM_lockStatus', locked _target]); diff --git a/addons/core/functions/fn_closeDialogIfTargetMoves.sqf b/addons/core/functions/fn_closeDialogIfTargetMoves.sqf new file mode 100644 index 0000000000..a37df70af3 --- /dev/null +++ b/addons/core/functions/fn_closeDialogIfTargetMoves.sqf @@ -0,0 +1,47 @@ +/* + * Author: commy2 + * + * Closes the current dialog if the target moves, changes vehicle etc. + * + * Arguments: + * 0: Target unit + * 1: Ignore the unit being dead? (Optional, default: No) + * + * Return Value: + * None + */ + +_this spawn { + _target = _this select 0; + _ignoreDead = _this select 1; + if (isNil "_ignoreDead") then {_ignoreDead = false}; + + _vehicleTarget = vehicle _target; + _vehiclePlayer = vehicle AGM_player; + _inVehicle = _target != _vehicleTarget; + + _position = getPosASL _target; + + _fnc_check = { + // either unit changed vehicles + if (_vehiclePlayer != vehicle AGM_player) exitWith {True}; + if (_vehicleTarget != vehicle _target) exitWith {True}; + + // target died + if (!alive _target && {!_ignoreDead}) exitWith {True}; + + // player fell unconscious + if (AGM_player getVariable ["AGM_isUnconscious", False]) exitWith {True}; + + // target moved (outside of vehicle) + (!_inVehicle && {getPosASL _target distanceSqr _position > 1}) + }; + + waitUntil { + if (call _fnc_check) then { + closeDialog 0; + call AGM_Interaction_fnc_hideMenu; + }; + (isNil "AGM_Interaction_MainButton" && !dialog) || {!isNull (uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull])} //Exit loop if DisableMouse dialog open + }; +}; diff --git a/addons/core/functions/fn_codeToLetter.sqf b/addons/core/functions/fn_codeToLetter.sqf new file mode 100644 index 0000000000..78f4e84eef --- /dev/null +++ b/addons/core/functions/fn_codeToLetter.sqf @@ -0,0 +1,3 @@ +// by commy2 + +["", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] select ([2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38, 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 44, 21] find (_this select 0)) + 1 diff --git a/addons/core/functions/fn_codeToString.sqf b/addons/core/functions/fn_codeToString.sqf new file mode 100644 index 0000000000..943696e32a --- /dev/null +++ b/addons/core/functions/fn_codeToString.sqf @@ -0,0 +1,23 @@ +/* + * Author: commy2 + * + * Removes the brackets around a code and returns the code as a string. It does nothing if the code is already a string. + * + * Argument: + * 0: Code (Code or String) + * + * Return value: + * Code (String) + */ + +private "_function"; + +_function = _this select 0; + +if (typeName _function == "STRING") exitWith {_function}; + +_function = toArray str _function; +_function set [0, -1]; +_function set [count _function - 1, -1]; +_function = toString (_function - [-1]); +_function diff --git a/addons/core/functions/fn_convertKeyCode.sqf b/addons/core/functions/fn_convertKeyCode.sqf new file mode 100644 index 0000000000..45ba78c02e --- /dev/null +++ b/addons/core/functions/fn_convertKeyCode.sqf @@ -0,0 +1,28 @@ +/* + * Author: commy2 + * + * Get a key code used in AGM key input eh. + * + * Argument: + * 0: Arma DIK code (Number) + * 1: Key state for shift left and shift right key (Bool) + * 2: Key state for ctrl left and ctrl right key (Bool) + * 3: Key state for alt and alt gr key (Bool) + * + * Return value: + * Key code (Number) + */ + +#define KEY_MODIFIERS [42, 54, 29, 157, 56, 184] + +private "_key"; + +_key = _this select 0; + +if (_key in KEY_MODIFIERS) exitWith {_key}; + +if (_this select 1) then {_key = _key + 0.1}; +if (_this select 2) then {_key = _key + 0.2}; +if (_this select 3) then {_key = _key + 0.4}; + +_key diff --git a/addons/core/functions/fn_currentChannel.sqf b/addons/core/functions/fn_currentChannel.sqf new file mode 100644 index 0000000000..0be751367d --- /dev/null +++ b/addons/core/functions/fn_currentChannel.sqf @@ -0,0 +1,16 @@ +/* + * Author: commy2 + * + * Returns the current radio / chat / marker channel. + * + * Argument: + * NONE. + * + * Return value: + * The current channel. Can be "group", "side", "global", "command", "vehicle" or "direct" (String) + */ + +#define CHANNELS ["group", "side", "global", "command", "vehicle", "direct"] +#define CHANNELS_LOCALIZED [localize "str_channel_group", localize "str_channel_side", localize "str_channel_global", localize "str_channel_command", localize "str_channel_vehicle", localize "str_channel_direct"] + +CHANNELS select (CHANNELS_LOCALIZED find (uiNamespace getVariable ["AGM_currentChannel", ""])) max 0 diff --git a/addons/core/functions/fn_disableUserInput.sqf b/addons/core/functions/fn_disableUserInput.sqf new file mode 100644 index 0000000000..edb3ee11c2 --- /dev/null +++ b/addons/core/functions/fn_disableUserInput.sqf @@ -0,0 +1,90 @@ +/* + * Author: commy2 + * + * Disables key input. ESC can still be pressed to open the menu. + * + * Argument: + * 0: True to disable key inputs, false to re-enable them (Bool) + * + * Return value: + * Nothing + */ + +private ["_state", "_dlg"]; + +_state = _this select 0; + +if (_state) then { + disableSerialization; + + if (!isNull (uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull])) exitWith {}; + if ("AGM_DisableUserInput" in ([BIS_stackedEventHandlers_onEachFrame, {_this select 0}] call GVAR(fnc_map))) exitWith {}; + + // end TFAR and ACRE2 radio transmissions + 0 spawn GVAR(fnc_endRadioTransmission); + + // Close map + if (visibleMap && {!(player getVariable ["AGM_canSwitchUnits", false])}) then {openMap false}; + + closeDialog 0; + createDialog "GVAR(DisableMouse_Dialog)"; + + _dlg = uiNamespace getVariable "GVAR(dlgDisableMouse)"; + + _dlg displayAddEventHandler ["KeyDown", { + _key = _this select 1; + + if (_key == 1 && {alive player}) then { + createDialog (["RscDisplayInterrupt", "RscDisplayMPInterrupt"] select isMultiplayer); + + disableSerialization; + _dlg = finddisplay 49; + _dlg displayAddEventHandler ["KeyDown", { + _key = _this select 1; + !(_key == 1) + }]; + + for "_index" from 100 to 2000 do { + (_dlg displayCtrl _index) ctrlEnable false; + }; + + _ctrl = _dlg displayctrl 103; + _ctrl ctrlSetEventHandler ["buttonClick", "while {!isNull (uiNamespace getVariable ['GVAR(dlgDisableMouse)', displayNull])} do {closeDialog 0}; failMission 'LOSER'; [false] call GVAR(fnc_disableUserInput);"]; + _ctrl ctrlEnable true; + _ctrl ctrlSetText "ABORT"; + _ctrl ctrlSetTooltip "Abort."; + + _ctrl = _dlg displayctrl ([104, 1010] select isMultiplayer); + _ctrl ctrlSetEventHandler ["buttonClick", "closeDialog 0; player setDamage 1; [false] call GVAR(fnc_disableUserInput);"]; + _ctrl ctrlEnable (call {_config = missionConfigFile >> "respawnButton"; !isNumber _config || {getNumber _config == 1}}); + _ctrl ctrlSetText "RESPAWN"; + _ctrl ctrlSetTooltip "Respawn."; + }; + + if (_key in actionKeys "TeamSwitch" && {teamSwitchEnabled}) then {(uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull]) closeDisplay 0; teamSwitch};//_acc = accTime; teamSwitch; setAccTime _acc}; + if (_key in actionKeys "CuratorInterface" && {getAssignedCuratorLogic player in allCurators}) then {(uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull]) closeDisplay 0; openCuratorInterface}; + if (_key in actionKeys "ShowMap" && {player getVariable ["AGM_canSwitchUnits", false]}) then {(uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull]) closeDisplay 0; openMap true}; + + if (serverCommandAvailable "#missions" || {player getVariable ["AGM_isUnconscious", false] && {(call GVAR(fnc_player)) getVariable ["AGM_Medical_AllowChatWhileUnconscious", missionNamespace getVariable ["AGM_Medical_AllowChatWhileUnconscious", false]]}}) then { + if (!(_key in (actionKeys "DefaultAction" + actionKeys "Throw")) && {_key in (actionKeys "Chat" + actionKeys "PrevChannel" + actionKeys "NextChannel")}) then { + _key = 0; + }; + }; + + _key > 0 + }]; + _dlg displayAddEventHandler ["KeyUp", {true}]; + + ["AGM_DisableUserInput", "onEachFrame", { + if (isNull (uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull]) && {!visibleMap && isNull findDisplay 49 && isNull findDisplay 312 && isNull findDisplay 632}) then { + ["AGM_DisableUserInput", "onEachFrame"] call BIS_fnc_removeStackedEventHandler; + [true] call GVAR(fnc_disableUserInput); + }; + }] call BIS_fnc_addStackedEventHandler; +} else { + if ("AGM_DisableUserInput" in ([BIS_stackedEventHandlers_onEachFrame, {_this select 0}] call GVAR(fnc_map))) then { + ["AGM_DisableUserInput", "onEachFrame"] call BIS_fnc_removeStackedEventHandler; + }; + + (uiNamespace getVariable ["GVAR(dlgDisableMouse)", displayNull]) closeDisplay 0; +}; diff --git a/addons/core/functions/fn_displayText.sqf b/addons/core/functions/fn_displayText.sqf new file mode 100644 index 0000000000..8652d40faf --- /dev/null +++ b/addons/core/functions/fn_displayText.sqf @@ -0,0 +1,52 @@ +/* + * Author: commy2 + * + * Display a message. + * + * Argument: + * 0: Message (String) + * 1: Play a clicking sound (Bool, optional default: false) + * 2: How long before hiding the message in seconds (Number, optional default: 2 sec) + * 3: Priority, higher priority messages will override lesser important ones (Number, optional default: 0) + * + * Return value: + * Nothing + */ + +#define DEFAULT_PLAY_SOUND false +#define DEFAULT_DELAY 2 +#define DEFAULT_PRIORITY 0 + +if (isNil "GVAR(lastHint)") then { + GVAR(lastHint) = [0, 0]; +}; + +_this resize 4; + +_this spawn { + private ["_text", "_sound", "_delay", "_priority", "_lastHintTime", "_lastHintPriority", "_time"]; + + _text = _this select 0; + _sound = _this select 1; + _delay = _this select 2; + _priority = _this select 3; + + _lastHintTime = GVAR(lastHint) select 0; + _lastHintPriority = GVAR(lastHint) select 1; + + if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text}; + if (isNil "_sound") then {_sound = DEFAULT_PLAY_SOUND}; + if (isNil "_delay") then {_delay = DEFAULT_DELAY}; + if (isNil "_priority") then {_priority = DEFAULT_PRIORITY}; + + _time = time; + if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then { + hintSilent _text; + if (_sound) then {playSound "AGM_Sound_Click"}; + GVAR(lastHint) set [0, _time]; + GVAR(lastHint) set [1, _priority]; + + sleep _delay; + if (_time == GVAR(lastHint) select 0) then {hintSilent ""}; + }; +}; diff --git a/addons/core/functions/fn_displayTextPicture.sqf b/addons/core/functions/fn_displayTextPicture.sqf new file mode 100644 index 0000000000..c0b439abdc --- /dev/null +++ b/addons/core/functions/fn_displayTextPicture.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * Display a structured text with image. + * + * Argument: + * 0: Text (Anything) + * 1: Image (String) + * + * Return value: + * Nothing + */ + +private ["_text", "_image"]; + +_text = _this select 0; +_image = _this select 1; + +if (typeName _text != "TEXT") then { + _text = parseText format ["%1", _text]; +}; + +_text = composeText [ + parseText format ["", _image], + lineBreak, + _text +]; + +[_text] call GVAR(fnc_displayTextStructured); diff --git a/addons/core/functions/fn_displayTextStructured.sqf b/addons/core/functions/fn_displayTextStructured.sqf new file mode 100644 index 0000000000..4c7b2970a6 --- /dev/null +++ b/addons/core/functions/fn_displayTextStructured.sqf @@ -0,0 +1,47 @@ +/* + * Author: commy2 + * + * Display a structured text. + * + * Argument: + * 0: Text (Anything) + * 1: Size of the textbox (Number, optional default: 1) + * + * Return value: + * Nothing + */ + +private ["_text", "_size", "_isShown", "_ctrlHint"]; + +_text = _this select 0; +_size = _this select 1; + +if (isNil "_size") then {_size = 1}; + +if (typeName _text != "TEXT") then { + _text = composeText [lineBreak, parseText format ["%1", _text]]; +}; + +_isShown = ctrlShown (uiNamespace getVariable ["AGM_ctrlHint", controlNull]); + +("AGM_RscHint" call BIS_fnc_rscLayer) cutRsc ["AGM_RscHint", "PLAIN", 0, true]; + +disableSerialization; +_ctrlHint = uiNamespace getVariable "AGM_ctrlHint"; + +_ctrlHint ctrlSetPosition [ + safeZoneW + safeZoneX - 0 * safezoneW, + safeZoneY + 0.2 * safezoneH, + 0.2 * safeZoneW, + _size * 0.1 * SafeZoneH +]; +_ctrlHint ctrlCommit 0; + +_ctrlHint ctrlSetStructuredText _text; +_ctrlHint ctrlSetPosition [ + safeZoneW + safeZoneX - 0.2 * safezoneW, + safeZoneY + 0.2 * safezoneH, + 0.2 * safeZoneW, + _size * 0.1 * SafeZoneH +]; +_ctrlHint ctrlCommit ([0.2, 0] select _isShown); diff --git a/addons/core/functions/fn_doAnimation.sqf b/addons/core/functions/fn_doAnimation.sqf new file mode 100644 index 0000000000..7c5290e512 --- /dev/null +++ b/addons/core/functions/fn_doAnimation.sqf @@ -0,0 +1,76 @@ +/* + * Author: commy2 + * + * Execute an animation. This is used to not break things like the unconsciousness animation. + * + * Argument: + * 0: Unit (Object) + * 1: Animation (String) + * 2: Priority of the animation. (Number, optional default: 0) + * 0: PlayMove + * 1: PlayMoveNow + * 2: SwitchMove (no transitional animation, doesn't overwrite priority 1) + * + * Return value: + * Nothing + */ + +private ["_unit", "_animation", "_priority", "_force"]; + +_unit = _this select 0; +_animation = _this select 1; +_priority = _this select 2; +_force = False; + +// no animation given +if (isNil "_animation") exitWith { + diag_log format ["[AGM] ERROR: No animation specified in %1", _fnc_scriptNameParent]; +}; + +if (isNil "_priority") then { + _priority = 0; +}; +if (count _this > 3) then { + _force = _this select 3; +}; + +// don't overwrite more important animations +if (_unit getVariable ["AGM_isUnconscious", false] && {!_force}) exitWith { + if (_animation != "Unconscious") then { + [_unit, "Unconscious", 2] call GVAR(fnc_doAnimation); + }; +}; + +// don't go unconscious if the unit isn't unconscious +if (_animation == "Unconscious" && {!(_unit getVariable ["AGM_isUnconscious", false])}) exitWith {}; + +// switchMove "" no longer works in dev 1.37 +if (_animation == "") then { + _animation = [_unit] call GVAR(fnc_getDefaultAnim); +}; + +switch (_priority) do { + case 0 : { + if (_unit == vehicle _unit) then { + [_unit, format ["{_this playMove '%1'}", _animation], _unit] call GVAR(fnc_execRemoteFnc); + } else { + // Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles. + [_unit, format ["{_this playMove '%1'}", _animation]] call GVAR(fnc_execRemoteFnc); + }; + }; + case 1 : { + if (_unit == vehicle _unit) then { + [_unit, format ["{_this playMoveNow '%1'}", _animation], _unit] call GVAR(fnc_execRemoteFnc); + } else { + // Execute on all machines. PlayMove and PlayMoveNow are bugged: They have no global effects when executed on remote machines inside vehicles. + [_unit, format ["{_this playMoveNow '%1'}", _animation]] call GVAR(fnc_execRemoteFnc); + }; + }; + case 2 : { + // Execute on all machines. SwitchMove has local effects. + [_unit, format ["{_this switchMove '%1'}", _animation]] call GVAR(fnc_execRemoteFnc); + }; + default {}; +}; + +["Anim", [_priority, _animation]] call AGM_Debug_fnc_log; diff --git a/addons/core/functions/fn_endRadioTransmission.sqf b/addons/core/functions/fn_endRadioTransmission.sqf new file mode 100644 index 0000000000..2b9d0bd4bf --- /dev/null +++ b/addons/core/functions/fn_endRadioTransmission.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * End radio transmissions of addons TFAR and ACRE2. TFAR v0.9.7, ACRE Public Beta 2.0.3.571 + * + * Arguments: + * None. + * + * Return Value: + * None. + * + */ + +// ACRE +if (isClass (configFile >> "CfgPatches" >> "acre_main")) then { + [-1] call acre_sys_core_fnc_handleMultiPttKeyPressUp; + [0] call acre_sys_core_fnc_handleMultiPttKeyPressUp; + [1] call acre_sys_core_fnc_handleMultiPttKeyPressUp; + [2] call acre_sys_core_fnc_handleMultiPttKeyPressUp; +}; + +// TFAR +if (isClass (configFile >> "CfgPatches" >> "task_force_radio")) then { + call TFAR_fnc_onSwTangentReleased; + call TFAR_fnc_onAdditionalSwTangentReleased; + call TFAR_fnc_onLRTangentReleased; + call TFAR_fnc_onAdditionalLRTangentReleased; + call TFAR_fnc_onDDTangentReleased; +}; diff --git a/addons/core/functions/fn_execPersistentFnc.sqf b/addons/core/functions/fn_execPersistentFnc.sqf new file mode 100644 index 0000000000..4fd287c0c5 --- /dev/null +++ b/addons/core/functions/fn_execPersistentFnc.sqf @@ -0,0 +1,52 @@ +/* + * Author: commy2 + * + * Execute a function on every machine. Function will also be called upon JIP (postInit). The arguments are stored in (_this select 0), while the assigned namespace is stored in (_this select 1). + * + * Argument: + * 0: Function arguments (Array) + * 1: Function to execute, has to be defined on the remote machine first (String) + * 2: Namespace to save that variable in (Object or Namespace) + * 3: Name. Will overwrite previously defined functions with that name (String) + * + * Return value: + * Nothing. + */ + +private ["_arguments", "_function", "_unit", "_name"]; + +GVAR(remoteFnc) = _this; + +_arguments = _this select 0; +_function = call compile (_this select 1); +_unit = _this select 2; +_name = _this select 3; + +["Remote", [_arguments, _this select 1, _name], {format ["%1 call %2 id: %3", _this select 0, _this select 1, _this select 2]}, false] call AGM_Debug_fnc_log; + +// execute function on every currently connected machine +[[_arguments, _unit], _this select 1, 2] call GVAR(fnc_execRemoteFnc); + +// save persistent function for JIP +private ["_persistentFunctions", "_index"]; + +_persistentFunctions = _unit getVariable ["AGM_PersistentFunctions", []]; + +// find index to overwrite function with the same name, add to end otherwise +_index = count _persistentFunctions; +{ + if (_x select 2 == _name) exitWith { + _index = _forEachIndex; + }; +} forEach _persistentFunctions; + +// set new value +_persistentFunctions set [_index, [_arguments, _function, _name]]; + +// broadcast variable +if (typeName _unit == "NAMESPACE") then { + AGM_PersistentFunctions = _persistentFunctions; + publicVariable "AGM_PersistentFunctions"; +} else { + _unit setVariable ["AGM_PersistentFunctions", _persistentFunctions, true]; +}; diff --git a/addons/core/functions/fn_execRemoteFnc.sqf b/addons/core/functions/fn_execRemoteFnc.sqf new file mode 100644 index 0000000000..29b8f1c566 --- /dev/null +++ b/addons/core/functions/fn_execRemoteFnc.sqf @@ -0,0 +1,70 @@ +/* + * Author: commy2 + * + * Execute a function on a remote machine in mp. + * + * Argument: + * 0: Function arguments (Array) + * 1: Function to execute, has to be defined on the remote machine first (String) + * 2: The function will be executed where this unit is local OR the mode were this function should be executed. (Object OR Number, optional default: 2) + * Mode 0: execute on this machine only + * Mode 1: execute on server + * Mode 2: execute on all clients + server + * Mode 3: execute on dedicated only + * + * Return value: + * Nothing + */ + +private ["_arguments", "_function", "_unit", "_id"]; + +GVAR(remoteFnc) = _this; + +_arguments = _this select 0; +_function = call compile (_this select 1); +_unit = _this select 2; + +if (isNil "_unit") then { + _unit = 2; +}; + +["Remote", [_arguments, _this select 1, _unit], {format ["%1 call %2 to: %3", _this select 0, _this select 1, _this select 2]}, false] call AGM_Debug_fnc_log; + +if (typeName _unit == "SCALAR") exitWith { + switch (_unit) do { + case 0 : { + _arguments call _function; + }; + case 1 : { + if (isServer) then { + _arguments call _function; + } else { + publicVariableServer "GVAR(remoteFnc)"; + }; + }; + case 2 : { + _arguments call _function; + + GVAR(remoteFnc) set [2, 0]; + publicVariable "GVAR(remoteFnc)"; + }; + case 3 : { + if (isDedicated) then { + _arguments call _function; + } else { + if (!isServer) then {publicVariableServer "GVAR(remoteFnc)"}; + }; + }; + }; +}; + +if (local _unit) then { + _arguments call _function; +} else { + if (isServer) then { + _id = owner _unit; + _id publicVariableClient "GVAR(remoteFnc)"; + } else { + publicVariableServer "GVAR(remoteFnc)"; + }; +}; diff --git a/addons/core/functions/fn_executePersistent.sqf b/addons/core/functions/fn_executePersistent.sqf new file mode 100644 index 0000000000..9e2fab7b3d --- /dev/null +++ b/addons/core/functions/fn_executePersistent.sqf @@ -0,0 +1,15 @@ +// by commy2 + +private "_target"; + +_target = _this select 0; + +{ + if (isNil "_x") then { + diag_log text format ["[AGM] ERROR: No argument and function for remote function. ID: %1", _forEachIndex]; + } else { + if (typeName _x == "ARRAY") then { + [_x select 0, _target] call (_x select 1); + }; + }; +} forEach (_target getVariable ["AGM_PersistentFunctions", []]); diff --git a/addons/core/functions/fn_filter.sqf b/addons/core/functions/fn_filter.sqf new file mode 100644 index 0000000000..62cbb5d7c6 --- /dev/null +++ b/addons/core/functions/fn_filter.sqf @@ -0,0 +1,33 @@ +/* + * Author: KoffeinFlummi, commy2 + * + * Filters array and removes every element not fitting the condition + * + * Arguments: + * 0: Array to be filtered. + * 1: Code to be evaluated. + * + * Return Value: + * Final array + * + * Usage: + * [[0,1,2,3,4], {_this > 2}] call GVAR(fnc_filter) ==> [3,4] + */ + +private ["_array", "_code", "_newArray", "_index"]; + +_array = _this select 0; +_code = _this select 1; + +if (isNil "_array") exitWith { + diag_log text format ["[AGM] ERROR: No array for function filter in %1", _fnc_scriptNameParent]; + [] +}; + +_newArray = []; +for "_index" from 0 to (count _array - 1) do { + if ((_array select _index) call _code) then { + _newArray pushBack (_array select _index); + }; +}; +_newArray diff --git a/addons/core/functions/fn_fixLoweredRifleAnimation.sqf b/addons/core/functions/fn_fixLoweredRifleAnimation.sqf new file mode 100644 index 0000000000..fafcd9efe2 --- /dev/null +++ b/addons/core/functions/fn_fixLoweredRifleAnimation.sqf @@ -0,0 +1,9 @@ +// by commy2 + +private "_unit"; + +_unit = _this select 0; + +if (currentWeapon _unit != "" && {currentWeapon _unit == primaryWeapon _unit} && {weaponLowered _unit} && {stance _unit == "STAND"}) then { + [_unit, "amovpercmstpsraswrfldnon", 0] call GVAR(fnc_doAnimation); +}; diff --git a/addons/core/functions/fn_getCaptivityStatus.sqf b/addons/core/functions/fn_getCaptivityStatus.sqf new file mode 100644 index 0000000000..eeed24440c --- /dev/null +++ b/addons/core/functions/fn_getCaptivityStatus.sqf @@ -0,0 +1,28 @@ +/* + * Author: commy2 + * + * Return the captivity status of an unit. + * + * Argument: + * 0: Unit (Object) + * + * Return value: + * Reasons, why the unit is a captive. An empty array is returned if the unit is not a captive (Array of Strings) + */ + +private ["_unit", "_captivityReasons", "_unitCaptivityStatus", "_unitCaptivityReasons"]; + +_unit = _this select 0; + +_captivityReasons = missionNamespace getVariable ["AGM_captivityReasons", []]; + +_unitCaptivityStatus = [captiveNum _unit, count _captivityReasons] call GVAR(fnc_binarizeNumber); + +_unitCaptivityReasons = []; +{ + if (_unitCaptivityStatus select _forEachIndex) then { + _unitCaptivityReasons pushBack _x; + }; +} forEach _captivityReasons; + +_unitCaptivityReasons diff --git a/addons/core/functions/fn_getConfigCommander.sqf b/addons/core/functions/fn_getConfigCommander.sqf new file mode 100644 index 0000000000..8fb1df2cff --- /dev/null +++ b/addons/core/functions/fn_getConfigCommander.sqf @@ -0,0 +1,20 @@ +/* + * Author: commy2 + * + * Get the commander config of a vehicles turret. + * + * Argument: + * 0: vehicle type (String) + * + * Return value: + * Commander config (Config) + */ + +private ["_vehicle", "_config", "_turret"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> _vehicle; +_turret = [_vehicle] call GVAR(fnc_getTurretCommander); + +[_config, _turret] call GVAR(fnc_getTurretConfigPath) diff --git a/addons/core/functions/fn_getConfigGunner.sqf b/addons/core/functions/fn_getConfigGunner.sqf new file mode 100644 index 0000000000..8f8c27b517 --- /dev/null +++ b/addons/core/functions/fn_getConfigGunner.sqf @@ -0,0 +1,20 @@ +/* + * Author: commy2 + * + * Get the gunner config of a vehicles turret. + * + * Argument: + * 0: vehicle type (String) + * + * Return value: + * Gunner config (Config) + */ + +private ["_vehicle", "_config", "_turret"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> _vehicle; +_turret = [_vehicle] call GVAR(fnc_getTurretGunner); + +[_config, _turret] call GVAR(fnc_getTurretConfigPath) diff --git a/addons/core/functions/fn_getDefaultAnim.sqf b/addons/core/functions/fn_getDefaultAnim.sqf new file mode 100644 index 0000000000..1a2430af87 --- /dev/null +++ b/addons/core/functions/fn_getDefaultAnim.sqf @@ -0,0 +1,28 @@ +// by commy2 + +private ["_unit", "_anim", "_stance"]; + +_unit = _this select 0; +_anim = toLower (animationState _unit); + +// stance is broken for some animations. +_stance = stance _unit; +if (_anim find "ppne" == 4) then { + _stance = "PRONE"; +}; +if (_anim find "pknl" == 4) then { + _stance = "CROUCH"; +}; +if (_anim find "perc" == 4) then { + _stance = "STAND"; +}; + +_anim = format ["AmovP%1M%2S%3W%4D%5", + ["erc", "knl", "pne"] select (["STAND", "CROUCH", "PRONE"] find _stance) max 0, + ["stp", "run"] select (vectorMagnitude velocity _unit > 1), + [["ras", "low"] select weaponLowered _unit, "non"] select (currentWeapon _unit == ""), + ["non", "rfl", "lnr", "pst", "bin"] select (["", primaryWeapon _unit, secondaryWeapon _unit, handgunWeapon _unit, binocular _unit] find currentWeapon _unit) max 0, + ["non", _anim select [count _anim - 1, 1]] select (_anim select [count _anim - 2, 2] in ["df", "db", "dl", "dr"]) +]; + +["", _anim] select isClass (configFile >> "CfgMovesMaleSdr" >> "States" >> _anim) diff --git a/addons/core/functions/fn_getDoorTurrets.sqf b/addons/core/functions/fn_getDoorTurrets.sqf new file mode 100644 index 0000000000..7810c350b6 --- /dev/null +++ b/addons/core/functions/fn_getDoorTurrets.sqf @@ -0,0 +1,46 @@ +/* + * Author: bux578 + * + * Gets the turret index of door gunners + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Turret indexes of the door gunner. Empty array means no gunner position. (Array) + */ + + /* + Name: GVAR(fnc_getDoorTurrets) + + Author(s): + bux578 + + Description: + Returns the turret indices of door gunners + + Parameters: + 0: STRING - vehicle type + + Returns: + ARRAY +*/ + +private ["_vehicleType", "_turrets", "_doorTurrets", "_config"]; + +_vehicleType = _this select 0; + +_turrets = [_vehicleType] call GVAR(fnc_getTurrets); + +_doorTurrets = []; + +{ + _config = configFile >> "CfgVehicles" >> _vehicleType; + _config = [_config, _x] call GVAR(fnc_getTurretConfigPath); + + if ((getNumber (_config >> "isCopilot") == 0) && count (getArray (_config >> "weapons")) > 0 ) then { + _doorTurrets pushBack _x; + }; +} forEach _turrets; + +_doorTurrets diff --git a/addons/core/functions/fn_getForceWalkStatus.sqf b/addons/core/functions/fn_getForceWalkStatus.sqf new file mode 100644 index 0000000000..c220b43c16 --- /dev/null +++ b/addons/core/functions/fn_getForceWalkStatus.sqf @@ -0,0 +1,36 @@ +/* +Name: GVAR(fnc_getForceWalkStatus) + +Author: Pabst Mirror (from captivity by commy2) + +Description: + Returns reasons why the unit is forceWalk-ing, empty if not forced. + +Parameters: + 0: OBJECT - Unit + +Returns: + ARRAY(of strings) - Reason why the unit is force walking + +Example: + [AGM_Player] call GVAR(fnc_getForceWalkStatus) +*/ + +private ["_unit", "_forceWalkReasons", "_unitForceWalkNumber", "_unitForceWalkStatus", "_unitForceWalkReasons"]; + +_unit = _this select 0; + +_forceWalkReasons = missionNamespace getVariable ["AGM_forceWalkReasons", []]; + +_unitForceWalkNumber = _unit getVariable ["AGM_forceWalkStatusNumber", 0]; + +_unitForceWalkStatus = [_unitForceWalkNumber, count _forceWalkReasons] call GVAR(fnc_binarizeNumber); + +_unitForceWalkReasons = []; +{ + if (_unitForceWalkStatus select _forEachIndex) then { + _unitForceWalkReasons pushBack _x; + }; +} forEach _forceWalkReasons; + +_unitForceWalkReasons diff --git a/addons/core/functions/fn_getHitPoints.sqf b/addons/core/functions/fn_getHitPoints.sqf new file mode 100644 index 0000000000..97277dd1de --- /dev/null +++ b/addons/core/functions/fn_getHitPoints.sqf @@ -0,0 +1,55 @@ +/* + * Author: commy2 + * + * Returns all hitpoints of any vehicle. Non unique hitpoints in turrets are ignored. + * + * Arguments: + * 0: A vehicle, not the classname (Object) + * + * Return Value: + * The hitpoints (Array) + */ + +private ["_vehicle", "_config", "_hitpoints"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> typeOf _vehicle; + +_hitpoints = []; + +// get all classes that can contain hitpoints +private "_hitpointClasses"; +_hitpointClasses = [_config >> "HitPoints"]; +{ + private "_class"; + _class = ([_config, _x] call GVAR(fnc_getTurretConfigPath)) >> "HitPoints"; + + if (isClass _class) then { + _hitpointClasses pushBack _class; + }; + +} forEach allTurrets _vehicle; + +// iterate through all classes with hitpoints and their parents +{ + private "_class"; + _class = _x; + + while {isClass _class} do { + + for "_i" from 0 to (count _class - 1) do { + private "_entry"; + _entry = configName (_class select _i); + + if (!(_entry in _hitpoints) && {!isNil {_vehicle getHitPointDamage _entry}}) then { + _hitpoints pushBack _entry; + }; + }; + + _class = inheritsFrom _class; + }; + +} forEach _hitpointClasses; + +_hitpoints diff --git a/addons/core/functions/fn_getHitPointsWithSelections.sqf b/addons/core/functions/fn_getHitPointsWithSelections.sqf new file mode 100644 index 0000000000..de3cc0d06c --- /dev/null +++ b/addons/core/functions/fn_getHitPointsWithSelections.sqf @@ -0,0 +1,59 @@ +/* + * Author: commy2 + * + * Returns all hitpoints and their selections of any vehicle. Might contain duplicates if the turrets contain non unique hitpoints with different selection names. + * + * Arguments: + * 0: A vehicle, not the classname (Object) + * + * Return Value: + * The hitpoints with selections. Format: [hitpoints, selections]. They correspond by index. (Array) + */ + +private ["_vehicle", "_config", "_hitpoints", "_selections"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> typeOf _vehicle; + +_hitpoints = []; +_selections = []; + +// get all classes that can contain hitpoints +private "_hitpointClasses"; +_hitpointClasses = [_config >> "HitPoints"]; +{ + private "_class"; + _class = ([_config, _x] call GVAR(fnc_getTurretConfigPath)) >> "HitPoints"; + + if (isClass _class) then { + _hitpointClasses pushBack _class; + }; + +} forEach allTurrets _vehicle; + +// iterate through all classes with hitpoints and their parents +{ + private "_class"; + _class = _x; + + while {isClass _class} do { + + for "_i" from 0 to (count _class - 1) do { + private ["_entry", "_selection"]; + + _entry = configName (_class select _i); + _selection = getText (_class select _i >> "name"); + + if (!(_selection in _selections) && {!isNil {_vehicle getHit _selection}}) then { + _hitpoints pushBack _entry; + _selections pushBack _selection; + }; + }; + + _class = inheritsFrom _class; + }; + +} forEach _hitpointClasses; + +[_hitpoints, _selections] diff --git a/addons/core/functions/fn_getInPosition.sqf b/addons/core/functions/fn_getInPosition.sqf new file mode 100644 index 0000000000..f5cb27bb43 --- /dev/null +++ b/addons/core/functions/fn_getInPosition.sqf @@ -0,0 +1,247 @@ +/* + * Author: commy2 + * + * Move unit into given vehicle position. Or switch to that position if the unit is already inside the vehicle. + * + * Arguments: + * 0: Unit to enter the vehicle (Object) + * 1: The vehicle to be entered (Object) + * 2: Position. Can be "Driver", "Pilot", "Gunner", "Commander", "Copilot", "Turret", "FFV", "Codriver" or "Cargo" (String) + * 3: Index. "Turret", "FFV", "Codriver" and "Cargo" support this optional parameter. Which position should be taken. + * Note: This index is diffrent from Armas "cargoIndex". (Number, optional default: next free index) + * + * Return Value: + * Nothing + */ + +#define CANGETINDRIVER (isNull (driver _vehicle) || {!alive driver _vehicle}) && {!lockedDriver _vehicle} && {getNumber (_config >> "isUav") != 1} +#define CANGETINTURRETINDEX (isNull (_vehicle turretUnit _turret) || {!alive (_vehicle turretUnit _turret)}) && {!(_vehicle lockedTurret _turret)} && {getNumber (_config >> "isUav") != 1} + +private ["_unit", "_vehicle", "_position", "_index"]; + +_unit = _this select 0; +_vehicle = _this select 1; +_position = toLower (_this select 2); +_index = _this select 3; // optional, please don't use + +if (isNil "_index") then {_index = -1}; + +// general +if (!alive _vehicle || {locked _vehicle > 1}) exitWith {false}; + +private ["_config", "_turret", "_isInside", "_script", "_enemiesInVehicle"]; + +_config = configFile >> "CfgVehicles" >> typeOf _vehicle; +_turret = []; + +_isInside = vehicle _unit == _vehicle; + +_script = {}; +_enemiesInVehicle = false; //Possible Side Restriction +{ + if (side _unit getFriend side _x < 0.6) exitWith {_enemiesInVehicle = true}; +} forEach crew _vehicle; + +switch (_position) do { + case "driver" : { + if (CANGETINDRIVER) then { + _script = [ + {_unit action [["GetInDriver", "MoveToDriver"] select _isInside, _vehicle];}, + {if (_isInside) then {moveOut _unit}; _unit moveInDriver _vehicle; call _fnc_getInEH;} + ] select _enemiesInVehicle; + }; + }; + + case "pilot" : { + if (CANGETINDRIVER) then { + _script = [ + {_unit action [["GetInPilot", "MoveToPilot"] select _isInside, _vehicle];}, + {if (_isInside) then {moveOut _unit}; _unit moveInDriver _vehicle; call _fnc_getInEH;} + ] select _enemiesInVehicle; + _position = "driver"; + }; + }; + + case "gunner" : { + _turret = [typeOf _vehicle] call GVAR(fnc_getTurretGunner); + + if (CANGETINTURRETINDEX) then { + _script = [ + {_unit action [["GetInGunner", "MoveToGunner"] select _isInside, _vehicle];}, + {if (_isInside) then {moveOut _unit}; _unit moveInGunner _vehicle; call _fnc_getInEH;} + ] select _enemiesInVehicle; + }; + }; + + case "commander" : { + _turret = [typeOf _vehicle] call GVAR(fnc_getTurretCommander); + + if (CANGETINTURRETINDEX) then { + _script = [ + {_unit action [["GetInCommander", "MoveToCommander"] select _isInside, _vehicle];}, + {if (_isInside) then {moveOut _unit}; _unit moveInCommander _vehicle; call _fnc_getInEH;} + ] select _enemiesInVehicle; + }; + }; + + case "copilot" : { + _turret = [typeOf _vehicle] call GVAR(fnc_getTurretCopilot); + + if (CANGETINTURRETINDEX) then { + _script = [ + {_unit action [["GetInTurret", "moveToTurret"] select _isInside, _vehicle, _turret];}, + {if (_isInside) then {moveOut _unit}; _unit moveInTurret [_vehicle, _turret]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "gunner"; // I think. It's a turret after all and turrets supposedly return "gunner" + }; + }; + + case "turret" : { + private "_turrets"; + _turrets = [typeOf _vehicle] call GVAR(fnc_getTurretsOther); + + if (_index != -1 && {_turret = _turrets select _index; CANGETINTURRETINDEX}) then { + _script = [ + {_unit action [["GetInTurret", "moveToTurret"] select _isInside, _vehicle, _turret];}, + {if (_isInside) then {moveOut _unit}; _unit moveInTurret [_vehicle, _turret]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "gunner"; + } else { + + for "_index" from 0 to (count _turrets - 1) do { + _turret = _turrets select _index; + if (CANGETINTURRETINDEX) exitWith { + _script = [ + {_unit action [["GetInTurret", "moveToTurret"] select _isInside, _vehicle, _turret];}, + {if (_isInside) then {moveOut _unit}; _unit moveInTurret [_vehicle, _turret]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "gunner"; + }; + }; + }; + }; + + case "ffv" : { + private "_turrets"; + _turrets = [typeOf _vehicle] call GVAR(fnc_getTurretsFFV); + + if (_index != -1 && {_turret = _turrets select _index; CANGETINTURRETINDEX}) then { + _script = [ + {_unit action [["GetInTurret", "moveToTurret"] select _isInside, _vehicle, _turret];}, + {if (_isInside) then {moveOut _unit}; _unit moveInTurret [_vehicle, _turret]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "gunner"; // I think. It's a turret after all and turrets supposedly return "gunner" + } else { + + for "_index" from 0 to (count _turrets - 1) do { + _turret = _turrets select _index; + if (CANGETINTURRETINDEX) exitWith { + _script = [ + {_unit action [["GetInTurret", "moveToTurret"] select _isInside, _vehicle, _turret];}, + {if (_isInside) then {moveOut _unit}; _unit moveInTurret [_vehicle, _turret]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "gunner"; // I think. It's a turret after all and turrets supposedly return "gunner" + }; + }; + }; + }; + + case "codriver" : { + private "_positions"; + _positions = [typeOf _vehicle] call GVAR(fnc_getVehicleCodriver); + + { + if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))}; + } forEach crew _vehicle; + + if (_index != -1 && {_index in _positions}) then { + _script = [ + {_unit action [["GetInCargo", "MoveToCargo"] select _isInside, _vehicle, _index];}, + {if (_isInside) then {moveOut _unit}; _unit moveInCargo [_vehicle, _index]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "cargo"; + } else { + + _index = _positions select 0; + if (!isNil "_index") then { + _script = [ + {_unit action [["GetInCargo", "MoveToCargo"] select _isInside, _vehicle, _index];}, + {if (_isInside) then {moveOut _unit}; _unit moveInCargo [_vehicle, _index]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "cargo"; + }; + }; + }; + + case "cargo" : { + private "_positions"; + _positions = [typeOf _vehicle] call GVAR(fnc_getVehicleCargo); + + { + if (alive _x) then {_positions deleteAt (_positions find (_vehicle getCargoIndex _x))}; + } forEach crew _vehicle; + + if (_index != -1 && {_index in _positions}) then { + _script = [ + {_unit action [["GetInCargo", "MoveToCargo"] select _isInside, _vehicle, _index];}, + {if (_isInside) then {moveOut _unit}; _unit moveInCargo [_vehicle, _index]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "cargo"; + } else { + + _index = _positions select 0; + if (!isNil "_index") then { + _script = [ + {_unit action [["GetInCargo", "MoveToCargo"] select _isInside, _vehicle, _index];}, + {if (_isInside) then {moveOut _unit}; _unit moveInCargo [_vehicle, _index]; call _fnc_getInEH;} + ] select _enemiesInVehicle; + + _position = "cargo"; + }; + }; + }; + + default {}; +}; + +// this will execute all config based event handlers. Not script based ones unfortunately, but atleast we don't use any. +private "_fnc_getInEH"; +_fnc_getInEH = { + private "_config"; + // config based getIn EHs are assigned to the soldier, not the vehicle. Why Bis? Why? + _config = configFile >> "CfgVehicles" >> typeOf _unit >> "EventHandlers"; + + if (isClass _config) then { + //getIn is local effects with global arguments. It doesn't trigger if the unit was already inside and only switched seats + if !(_isInside) then { + [_vehicle, _position, _unit, _turret] call compile getText (_config >> "getIn"); + }; + }; +}; + +// if you want into the cargo and you can't, then check ffv turrets aswell +if (_position == "cargo") exitWith { + if (_script isEqualTo {}) then { + [_unit, _vehicle, "ffv"] call GVAR(fnc_getInPosition); + } else { + call _script; + }; +}; + +call _script; + +/* + sleep 0.1; + if ((vehicle _unit) != _vehicle) then { + ["fn_getInPosition.sqf - Side Restriction, failed to move _unit into vehicle"] call bis_fnc_error; + _unit moveInAny _vehicle; //attempt to fail gracefully + }; +*/ diff --git a/addons/core/functions/fn_getMarkerType.sqf b/addons/core/functions/fn_getMarkerType.sqf new file mode 100644 index 0000000000..3d35cae56d --- /dev/null +++ b/addons/core/functions/fn_getMarkerType.sqf @@ -0,0 +1,72 @@ +/* + * Author: KoffeinFlummi + * + * Get the apropriate marker for a group. + * + * Arguments: + * 0: Group + * + * Return Value: + * Marker Type (string) + */ + +_group = _this select 0; +_leader = leader _group; +_vehicle = vehicle _leader; +_side = side _leader; + +if (_vehicle == _leader) exitWith { + if ( + (getNumber (configFile >> "CfgVehicles" >> (typeOf _leader) >> "detectSkill") > 20) or + (getNumber (configFile >> "CfgVehicles" >> (typeOf _leader) >> "camouflage") < 1) or + (getText (configFile >> "CfgVehicles" >> (typeOf _leader) >> "textsingular") == "diver") + ) then { + ["n_recon", "b_recon", "o_recon"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) + } else { + ["n_inf", "b_inf", "o_inf"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) + }; +}; + +if (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "attendant") == 1) exitWith { + ["n_med", "b_med", "o_med"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; +if ( + (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "transportRepair") > 0) or + (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "transportFuel") > 0) or + (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "transportAmmo") > 0) or + (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "AGM_canRepair") > 0) or + (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "AGM_fuelCapacityCargo") > 0) + ) exitWith { + ["n_maint", "b_maint", "o_maint"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; + +if (_vehicle isKindOf "Plane") exitWith { + ["n_plane", "b_plane", "o_plane"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; +if (_vehicle isKindOf "Air") exitWith { + ["n_air", "b_air", "o_air"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; + +if (_vehicle isKindOf "StaticMortar") exitWith { + ["n_mortar", "b_mortar", "o_mortar"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; +if (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "artilleryScanner") == 1) exitWith { + ["n_art", "b_art", "o_art"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; + +if (_vehicle isKindOf "Car") exitWith { + ["n_motor_inf", "b_motor_inf", "o_motor_inf"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; +if ((_vehicle isKindOf "Tank") and (getNumber (configFile >> "CfgVehicles" >> (typeOf _vehicle) >> "transportSoldier") > 0)) exitWith { + ["n_mech_inf", "b_mech_inf", "o_mech_inf"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; +if (_vehicle isKindOf "Tank") exitWith { + ["n_armor", "b_armor", "o_armor"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; + +if (_vehicle isKindOf "Ship") exitWith { + ["n_naval", "b_naval", "o_naval"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) +}; + +// generic marker +["n_unknown", "b_unknown", "o_unknown"] select ((["GUER", "WEST", "EAST"] find (str _side)) max 0) diff --git a/addons/core/functions/fn_getName.sqf b/addons/core/functions/fn_getName.sqf new file mode 100644 index 0000000000..53e2ad8b8e --- /dev/null +++ b/addons/core/functions/fn_getName.sqf @@ -0,0 +1,35 @@ +/* + * Author: commy2 + * + * Returns the name of the object. Used to prevent issues with the name command. + * + * Argument: + * 0: Object (Object) + * 1: Show effective commander name? (Bool, optinal default: false) + * + * Return value: + * The name. + */ + +private ["_unit", "_showEffective", "_name"]; + +_unit = _this select 0; +_showEffective = _this select 1; + +if (isNil "_showEffective") then { + _showEffective = false; +}; + +_name = ""; + +if (_unit isKindOf "CAManBase") then { + _name = _unit getVariable ["AGM_Name", localize "STR_GVAR(Unknown)"]; +} else { + if (_showEffective) then { + _name = [effectiveCommander _unit] call GVAR(fnc_getName); + } else { + _name = getText (configFile >> "CfgVehicles" >> typeOf _unit >> "displayName"); + }; +}; + +_name diff --git a/addons/core/functions/fn_getNumberFromMissionSQM.sqf b/addons/core/functions/fn_getNumberFromMissionSQM.sqf new file mode 100644 index 0000000000..27d1298c4a --- /dev/null +++ b/addons/core/functions/fn_getNumberFromMissionSQM.sqf @@ -0,0 +1,17 @@ +/* + * Author: commy2 + * + * Get a number from the mission.sqm file. Mission has to be saved in the Editor. + * + * Argument: + * 0: Path of the entry in the mission.sqm (Array) + * + * Return value: + * Value of the entry. Note: If the entry does not exist, it might return 0 or an entry with the same name of another class! (Number) + */ + +private "_number"; + +_number = _this call GVAR(fnc_getStringFromMissionSQM); + +parseNumber _number; diff --git a/addons/core/functions/fn_getPitchBankYaw.sqf b/addons/core/functions/fn_getPitchBankYaw.sqf new file mode 100644 index 0000000000..95f9846e9a --- /dev/null +++ b/addons/core/functions/fn_getPitchBankYaw.sqf @@ -0,0 +1,13 @@ +/* + * Author: KoffeinFlummi + * + * Returns [pitch, bank, yaw] for given vehicle in degrees. + * + * Arguments: + * 0: Unit/Vehicle + * + * Return Value: + * [pitch, bank, yaw] + */ + +((_this select 0) call BIS_fnc_getPitchBank) + [getDir (_this select 0)] diff --git a/addons/core/functions/fn_getStringFromMissionSQM.sqf b/addons/core/functions/fn_getStringFromMissionSQM.sqf new file mode 100644 index 0000000000..34a2565a7e --- /dev/null +++ b/addons/core/functions/fn_getStringFromMissionSQM.sqf @@ -0,0 +1,57 @@ +/* + * Author: commy2 + * + * Get a string from the mission.sqm file. Mission has to be saved in the Editor. The string cannot contain the ; character. + * + * Argument: + * 0: Path of the entry in the mission.sqm (Array) + * + * Return value: + * Value of the entry. Note: If the entry does not exist, it might return an empty string or an entry with the same name of another class! (String) + */ + +private ["_path", "_mission", "_a", "_class", "_index", "_array", "_b", "_entry"]; + +_path = _this; + +if (missionName == "") exitWith {""}; +_mission = toArray toLower loadFile "mission.sqm"; +_mission resize 65536; +{ + if (_x < 33) then { + _mission set [_forEachIndex, -1]; + } +} forEach _mission; +_mission = toString (_mission - [-1]); + +{_path set [_forEachIndex, toLower _x]} forEach _path; + +for "_a" from 0 to (count _path - 2) do { + _class = format ["class%1{", _path select _a]; + + _index = _mission find _class; + + _array = toArray _mission; + for "_b" from 0 to (_index + count toArray _class - 1) do { + _array set [_b, -1]; + }; + _array = _array - [-1]; + + _mission = toString _array; +}; + +_entry = format ["%1=", _path select (count _path - 1)]; +_index = _mission find _entry; +if (_index == -1) exitWith {""}; + +_array = toArray _mission; +for "_b" from 0 to (_index + count toArray _entry - 1) do { + _array set [_b, -1]; +}; +_mission = toString (_array - [-1]); + +_index = _mission find ";"; + +_mission = toArray _mission; +_mission resize _index; +format ["%1", toString _mission]; diff --git a/addons/core/functions/fn_getTargetAzimuthAndInclination.sqf b/addons/core/functions/fn_getTargetAzimuthAndInclination.sqf new file mode 100644 index 0000000000..5f75268514 --- /dev/null +++ b/addons/core/functions/fn_getTargetAzimuthAndInclination.sqf @@ -0,0 +1,24 @@ +/* + * Author: commy2 + * + * Get players viewing direction and slope + * + * Argument: + * None. + * + * Return value: + * 0: Azimuth (Number) + * 1: Inclination or 'slope' (Number) + */ + +private ["_position", "_direction", "_azimuth", "_inclination"]; + +_position = ATLToASL positionCameraToWorld [0, 0, 0]; +_direction = ATLToASL positionCameraToWorld [0, 0, 1]; + +_azimuth = ((_direction select 0) - (_position select 0)) atan2 ((_direction select 1) - (_position select 1)); +_inclination = asin ((_direction select 2) - (_position select 2)); + +if (_azimuth < 0) then {_azimuth = _azimuth + 360}; + +[_azimuth, _inclination] diff --git a/addons/core/functions/fn_getTargetDistance.sqf b/addons/core/functions/fn_getTargetDistance.sqf new file mode 100644 index 0000000000..b0b50539f5 --- /dev/null +++ b/addons/core/functions/fn_getTargetDistance.sqf @@ -0,0 +1,48 @@ +/* + * Author: commy2 + * + * Get the distance to the next object the player is looking at. Used for laser distance measurements. + * + * Argument: + * 0: How accurate will the measurement be? In meters. (Number) + * 1: Maximal distance to measure. (Number) + * 2: Minimal distance to measure. (optional, Number) + * + * Return value: + * Measured distance in meters. Can return maximal or minimal distance (Number) + */ + +private ["_interval", "_maxDistance", "_minDistance", "_position", "_laser", "_line", "_distance", "_iteration"]; + +_interval = _this select 0; +_maxDistance = _this select 1; +_minDistance = _this select 2; + +_position = ATLToASL positionCameraToWorld [0, 0, 0]; +_position set [2, (_position select 2) - (getTerrainHeightASL _position min 0)]; + +_laser = + _position; +_line = [_position, _laser]; + +_distance = _maxDistance; +_iteration = _distance; + +while { + _iteration > _interval / 2 +} do { + _iteration = _iteration / 2; + + _laser = ATLToASL positionCameraToWorld [0, 0, _distance]; + _laser set [2, (_laser select 2) - (getTerrainHeightASL _laser min 0)]; + _line set [1, _laser]; + + _distance = _distance + (([1, -1] select (lineIntersects (_line + [vehicle AGM_player]) || {terrainIntersectASL _line})) * _iteration); +}; + +_distance = _interval * round (_distance / _interval); + +_distance = _distance min _maxDistance; + +if !(isNil "_minDistance") then {_distance = _distance max _minDistance}; + +_distance diff --git a/addons/core/functions/fn_getTargetObject.sqf b/addons/core/functions/fn_getTargetObject.sqf new file mode 100644 index 0000000000..9fb07c1cf0 --- /dev/null +++ b/addons/core/functions/fn_getTargetObject.sqf @@ -0,0 +1,25 @@ +/* + * Author: commy2 + * + * Get the nearest object the player is looking at. Used for laser designator instead of cursorTarget. + * + * Argument: + * 0: Maximal distance to search. (Number) + * + * Return value: + * Nearest object directly in line of sight, if none objNull (Object) + */ + +private ["_maxDistance", "_position", "_laser", "_intersects"]; + +_maxDistance = _this select 0; + +_position = ATLToASL positionCameraToWorld [0, 0, 0]; +_position set [2, (_position select 2) - (getTerrainHeightASL _position min 0)]; + +_laser = ATLToASL positionCameraToWorld [0, 0, _maxDistance]; +_laser set [2, (_laser select 2) - (getTerrainHeightASL _laser min 0)]; + +_intersects = lineIntersectsObjs [_position, _laser, objNull, objNull, true, 2]; + +if (count _intersects == 0) then {objNull} else {_intersects select 0} diff --git a/addons/core/functions/fn_getTurretCommander.sqf b/addons/core/functions/fn_getTurretCommander.sqf new file mode 100644 index 0000000000..5ad6b73af9 --- /dev/null +++ b/addons/core/functions/fn_getTurretCommander.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * Get the turret index of a vehicles commander. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Turret index of the vehicles commander. Empty array means no observer position. (Array) + */ + +private ["_vehicle", "_turrets", "_turret", "_config"]; + +_vehicle = _this select 0; + +_turrets = [_vehicle] call GVAR(fnc_getTurrets); + +_turret = []; +{ + _config = configFile >> "CfgVehicles" >> _vehicle; + + _config = [_config, _x] call GVAR(fnc_getTurretConfigPath); + + if (getNumber (_config >> "primaryObserver") == 1) exitWith { + _turret = _x; + }; +} forEach _turrets; +_turret diff --git a/addons/core/functions/fn_getTurretConfigPath.sqf b/addons/core/functions/fn_getTurretConfigPath.sqf new file mode 100644 index 0000000000..7b463fa397 --- /dev/null +++ b/addons/core/functions/fn_getTurretConfigPath.sqf @@ -0,0 +1,38 @@ +/* + * Author: commy2 + * + * Get the config path of a vehicles turret. + * + * Argument: + * 0: vehicles config (Config) + * 1: Turret index (Array) + * + * Return value: + * Turret config (Config) + */ + +private ["_config", "_turretIndex", "_index", "_offset", "_config2", "_foundClasses"]; + +_config = _this select 0; +_turretIndex = _this select 1; + +for "_index" from 0 to (count _turretIndex - 1) do { + _config = _config >> "Turrets"; + + _offset = 0; + _config2 = _config select 0; + + _foundClasses = 0; + for "_a" from 0 to (count _config - 1) do { + if (isClass _config2) then { + _foundClasses = _foundClasses + 1; + } else { + _offset = _offset + 1; + }; + _config2 = _config select (_turretIndex select _index) + _offset; + + if (_foundClasses == _turretIndex select _index) exitWith {}; + }; + _config = _config2; +}; +_config diff --git a/addons/core/functions/fn_getTurretCopilot.sqf b/addons/core/functions/fn_getTurretCopilot.sqf new file mode 100644 index 0000000000..f4fdbaf305 --- /dev/null +++ b/addons/core/functions/fn_getTurretCopilot.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * Get the turret index of a vehicles copilot. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Turret index of the vehicles gunner. Empty array means no copilot position. (Array) + */ + +private ["_vehicle", "_turrets", "_turret", "_config"]; + +_vehicle = _this select 0; + +_turrets = [_vehicle] call GVAR(fnc_getTurrets); + +_turret = []; +{ + _config = configFile >> "CfgVehicles" >> _vehicle; + + _config = [_config, _x] call GVAR(fnc_getTurretConfigPath); + + if (getNumber (_config >> "isCopilot") == 1 && {getNumber (_config >> "primaryGunner") != 1} && {getNumber (_config >> "primaryObserver") != 1}) exitWith { + _turret = _x; + }; +} forEach _turrets; +_turret diff --git a/addons/core/functions/fn_getTurretGunner.sqf b/addons/core/functions/fn_getTurretGunner.sqf new file mode 100644 index 0000000000..bcf641af22 --- /dev/null +++ b/addons/core/functions/fn_getTurretGunner.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * Get the turret index of a vehicles gunner. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Turret index of the vehicles gunner. Empty array means no gunner position. (Array) + */ + +private ["_vehicle", "_turrets", "_turret", "_config"]; + +_vehicle = _this select 0; + +_turrets = [_vehicle] call GVAR(fnc_getTurrets); + +_turret = []; +{ + _config = configFile >> "CfgVehicles" >> _vehicle; + + _config = [_config, _x] call GVAR(fnc_getTurretConfigPath); + + if (getNumber (_config >> "primaryGunner") == 1) exitWith { + _turret = _x; + }; +} forEach _turrets; +_turret diff --git a/addons/core/functions/fn_getTurretIndex.sqf b/addons/core/functions/fn_getTurretIndex.sqf new file mode 100644 index 0000000000..c63b0b76bf --- /dev/null +++ b/addons/core/functions/fn_getTurretIndex.sqf @@ -0,0 +1,30 @@ +/* + * Author: commy2 + * + * Get the turret index of a units current turret. + * + * Argument: + * 0: Unit, not the vehicle (as in not a car but the player) (Object) + * + * Return value: + * Turret index array or config path. E.g: [0] for gunner or [0,0] for commander. Returns empty array if unit is not in a turret. (Array) + */ + +private ["_unit", "_vehicle", "_turrets", "_units", "_index"]; + +_unit = _this select 0; +_vehicle = vehicle _unit; + +//_turrets = [typeOf _vehicle] call GVAR(fnc_getTurrets); +_turrets = allTurrets [_vehicle, true]; + +_units = []; +{ + _units pushBack (_vehicle turretUnit _x); +} forEach _turrets; + +_index = _units find _unit; + +if (_index == -1) exitWith {[]}; + +_turrets select _index; diff --git a/addons/core/functions/fn_getTurrets.sqf b/addons/core/functions/fn_getTurrets.sqf new file mode 100644 index 0000000000..c5c781c59c --- /dev/null +++ b/addons/core/functions/fn_getTurrets.sqf @@ -0,0 +1,52 @@ +/* + * Author: commy2 + * + * Get all turret indicies of a vehicle. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * All turret index arrays of the vehicle. E.g: [[0], [0,0]] (Array) + */ + +private ["_type", "_config", "_turrets", "_fnc_addTurret"]; + +_type = _this select 0; + +_varName = format ["AGM_CachedTurrets_%1", _type]; +_turrets = + (uiNamespace getVariable _varName); + +if (!isNil "_turrets") exitWith {_turrets}; + +_config = configFile >> "CfgVehicles" >> _type; + +_turrets = []; +_fnc_addTurret = { + private ["_config", "_path", "_count", "_offset", "_index", "_path2", "_config2"]; + + _config = _this select 0; + _path = _this select 1; + + _config = _config >> "Turrets"; + _count = count _config; + + _offset = 0; + for "_index" from 0 to (_count - 1) do { + _path2 = _path + [_index - _offset]; + _config2 = _config select _index; + + if (isClass _config2) then { + _turrets pushBack _path2; + [_config2, _path2] call _fnc_addTurret; + } else { + _offset = _offset + 1; + }; + }; +}; + +[_config, []] call _fnc_addTurret; + +uiNamespace setVariable [_varName, _turrets]; + +_turrets diff --git a/addons/core/functions/fn_getTurretsFFV.sqf b/addons/core/functions/fn_getTurretsFFV.sqf new file mode 100644 index 0000000000..0f94cd099a --- /dev/null +++ b/addons/core/functions/fn_getTurretsFFV.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * Get the turret indices of ffv turrets. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Turret index of the vehicles gunner. Empty array means no ffv turrets. (Array) + */ + +private ["_vehicle", "_turrets", "_turret", "_config"]; + +_vehicle = _this select 0; + +_turrets = [_vehicle] call GVAR(fnc_getTurrets); + +_turret = []; +{ + _config = configFile >> "CfgVehicles" >> _vehicle; + + _config = [_config, _x] call GVAR(fnc_getTurretConfigPath); + + if (getNumber (_config >> "isPersonTurret") == 1) then { + _turret pushBack _x; + }; +} forEach _turrets; +_turret diff --git a/addons/core/functions/fn_getTurretsOther.sqf b/addons/core/functions/fn_getTurretsOther.sqf new file mode 100644 index 0000000000..73aa3931ea --- /dev/null +++ b/addons/core/functions/fn_getTurretsOther.sqf @@ -0,0 +1,33 @@ +/* + * Author: commy2 + * + * Get the turret indices of other turrets (not gunner, commander, copilot or ffv). + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Turret index of the vehicles gunner. Empty array means no other turrets. (Array) + */ + +private ["_vehicle", "_turrets", "_turret", "_config"]; + +_vehicle = _this select 0; + +_turrets = [_vehicle] call GVAR(fnc_getTurrets); + +_turret = []; +{ + _config = configFile >> "CfgVehicles" >> _vehicle; + + _config = [_config, _x] call GVAR(fnc_getTurretConfigPath); + + if ( getNumber (_config >> "isCopilot") != 1 + && {getNumber (_config >> "primaryGunner") != 1} + && {getNumber (_config >> "primaryObserver") != 1} + && {getNumber (_config >> "isPersonTurret") != 1} + ) then { + _turret pushBack _x; + }; +} forEach _turrets; +_turret diff --git a/addons/core/functions/fn_getUavControlPosition.sqf b/addons/core/functions/fn_getUavControlPosition.sqf new file mode 100644 index 0000000000..30406deae0 --- /dev/null +++ b/addons/core/functions/fn_getUavControlPosition.sqf @@ -0,0 +1,31 @@ +/* +Name: GVAR(fnc_getUavControlPosition) + +Author: Pabst Mirror + +Description: + Gets the seat position of a UAV that the unit is activly controlling. + "" - not connected to anything or not activly controling + "DRIVER" + "GUNNER" + +Parameters: + 0: OBJECT - Unit + +Returns: + STRING - Position in the UAV that is currently being controled by the unit. + +Example: + [AGM_Player] call GVAR(fnc_getUavControlPosition) +*/ + +private ["_unit", "_uav", "_positionArray", "_playerIndex"]; + +_unit = _this select 0; +_uav = getConnectedUAV _unit; +if (isNull _uav) exitWith {""}; +_positionArray = UAVControl _uav; +_playerIndex = _positionArray find _unit; +if (_playerIndex == -1) exitWith {""}; + +_positionArray select (_playerIndex + 1) diff --git a/addons/core/functions/fn_getVehicleCargo.sqf b/addons/core/functions/fn_getVehicleCargo.sqf new file mode 100644 index 0000000000..2a4a784117 --- /dev/null +++ b/addons/core/functions/fn_getVehicleCargo.sqf @@ -0,0 +1,27 @@ +/* + * Author: commy2 + * + * Get the vehicle cargo positions. Codrivers and ffv positions are not listed. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Vehicle cargo positions. (Array) + */ + +private ["_vehicle", "_config", "_cargo", "_codrivers"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> _vehicle; + +_cargo = []; +_codrivers = getArray (_config >> "cargoIsCoDriver"); + +for "_index" from 0 to (getNumber (_config >> "transportSoldier") - 1) do { + if !(_index in _codrivers && {_vehicle isKindOf "Car"} && {!(_vehicle isKindOf "Wheeled_APC_F")}) then { + _cargo pushBack _index; + }; +}; +_cargo diff --git a/addons/core/functions/fn_getVehicleCodriver.sqf b/addons/core/functions/fn_getVehicleCodriver.sqf new file mode 100644 index 0000000000..98f4a4bccd --- /dev/null +++ b/addons/core/functions/fn_getVehicleCodriver.sqf @@ -0,0 +1,27 @@ +/* + * Author: commy2 + * + * Get the vehicle codriver positions. + * + * Argument: + * 0: Vehicle type (String) + * + * Return value: + * Vehicle codriver positions. (Array) + */ + +private ["_vehicle", "_config", "_cargo", "_codrivers"]; + +_vehicle = _this select 0; + +_config = configFile >> "CfgVehicles" >> _vehicle; + +_cargo = []; +_codrivers = getArray (_config >> "cargoIsCoDriver"); + +for "_index" from 0 to (getNumber (_config >> "transportSoldier") - 1) do { + if (_index in _codrivers && {_vehicle isKindOf "Car"} && {!(_vehicle isKindOf "Wheeled_APC_F")}) then { + _cargo pushBack _index; + }; +}; +_cargo diff --git a/addons/core/functions/fn_getVehicleCrew.sqf b/addons/core/functions/fn_getVehicleCrew.sqf new file mode 100644 index 0000000000..927defdd1f --- /dev/null +++ b/addons/core/functions/fn_getVehicleCrew.sqf @@ -0,0 +1,36 @@ +/* + * Author: commy2 + * + * Returns array of crew member objects. + * + * Argument: + * 0: Vehicle (Object) + * 1: Slot types. Can contain "driver", "commander", "gunner", "turret", "cargo" and "ffv". Case sensitive (Array) + * + * Return value: + * Crew (Array) + */ + +private ["_vehicle", "_types", "_crew"]; + +_vehicle = _this select 0; +_types = _this select 1; + +_crew = []; + +// iterate through all crew members +{ + // this unit is in a ffv position. check if we search for ffv. + if (_x select 4) then { + if ("ffv" in _types) then { + _crew pushBack (_x select 0); + }; + } else { + // otherwise check if we search for that type. toLower, because fullCrew returns "driver" vs. "Turret". + if (toLower (_x select 1) in _types) then { + _crew pushBack (_x select 0); + }; + }; +} forEach fullCrew _vehicle; + +_crew diff --git a/addons/core/functions/fn_getWeaponAzimuthAndInclination.sqf b/addons/core/functions/fn_getWeaponAzimuthAndInclination.sqf new file mode 100644 index 0000000000..702bde7761 --- /dev/null +++ b/addons/core/functions/fn_getWeaponAzimuthAndInclination.sqf @@ -0,0 +1,25 @@ +/* + * Author: commy2 + * + * Get players weapon direction and slope + * + * Argument: + * 0: Weapon name (String) + * + * Return value: + * 0: Azimuth (Number) + * 1: Inclination or 'slope' (Number) + */ + +private ["_weapon", "_direction", "_azimuth", "_inclination"]; + +_weapon = _this select 0; + +_direction = AGM_player weaponDirection _weapon; + +_azimuth = (_direction select 0) atan2 (_direction select 1); +_inclination = asin (_direction select 2); + +if (_azimuth < 0) then {_azimuth = _azimuth + 360}; + +[_azimuth, _inclination] diff --git a/addons/core/functions/fn_getWeaponType.sqf b/addons/core/functions/fn_getWeaponType.sqf new file mode 100644 index 0000000000..0cfcc886e1 --- /dev/null +++ b/addons/core/functions/fn_getWeaponType.sqf @@ -0,0 +1,29 @@ +/* + * Author: commy2 + * + * Check what kind of weapon the given class name is. (primary, secondary or handgun) + * + * Argument: + * 0: Class name of the weapon (String) + * + * Return value: + * Slot index of the given class name, 1: primary, 2: secondary, 3: handgun, else: -1 (Number) + */ + +private ["_weapon", "_type", "_index"]; + +_weapon = _this select 0; + +_type = [getNumber (configFile >> "CfgWeapons" >> _weapon >> "type")] call GVAR(fnc_binarizeNumber); + +_index = 0; +while {!(_type select _index) && {_index < 16}} do { + _index = _index + 1; +}; + +switch (_index) do { + case 0 : {1}; + case 1 : {3}; + case 2 : {2}; + default {-1}; +} diff --git a/addons/core/functions/fn_getWindDirection.sqf b/addons/core/functions/fn_getWindDirection.sqf new file mode 100644 index 0000000000..d5d24563d0 --- /dev/null +++ b/addons/core/functions/fn_getWindDirection.sqf @@ -0,0 +1,30 @@ +/* + * Author: commy2 + * + * Get the compass direction the wind is blowing from. + * + * Argument: + * None. + * + * Return value: + * Wind direction. (String) + */ + +switch (round (windDir / 360 * 16)) do { + case 1 : {localize "STR_GVAR(SSW)"}; + case 2 : {localize "STR_GVAR(SW)"}; + case 3 : {localize "STR_GVAR(WSW)"}; + case 4 : {localize "STR_GVAR(W)"}; + case 5 : {localize "STR_GVAR(WNW)"}; + case 6 : {localize "STR_GVAR(NW)"}; + case 7 : {localize "STR_GVAR(NNW)"}; + case 8 : {localize "STR_GVAR(N)"}; + case 9 : {localize "STR_GVAR(NNE)"}; + case 10 : {localize "STR_GVAR(NE)"}; + case 11 : {localize "STR_GVAR(ENE)"}; + case 12 : {localize "STR_GVAR(E)"}; + case 13 : {localize "STR_GVAR(ESE)"}; + case 14 : {localize "STR_GVAR(SE)"}; + case 15 : {localize "STR_GVAR(SSE)"}; + default {localize "STR_GVAR(S)"}; +}; diff --git a/addons/core/functions/fn_goKneeling.sqf b/addons/core/functions/fn_goKneeling.sqf new file mode 100644 index 0000000000..ad19014d05 --- /dev/null +++ b/addons/core/functions/fn_goKneeling.sqf @@ -0,0 +1,31 @@ +/* + * Author: commy2 + * + * Abhocken! Unit goes kneeling if not prone already and lowers weapon. Try, throw, catch because I'm bored. + * + * Argument: + * 0: Unit (Object) + * + * Return value: + * None. + */ + +private "_unit"; + +_unit = _this select 0; + +try { + if (_unit == vehicle _unit) then { + switch (currentWeapon _unit) do { + case "" : {throw "AmovPknlMstpSnonWnonDnon"}; + case (primaryWeapon _unit) : {throw "AmovPknlMstpSlowWrflDnon"}; + case (secondaryWeapon _unit) : {throw "AmovPknlMstpSrasWlnrDnon"}; + case (handgunWeapon _unit) : {throw "AmovPknlMstpSlowWpstDnon"}; + case (binocular _unit) : {throw "AmovPknlMstpSoptWbinDnon"}; + }; + }; +} catch { + if (stance _unit != "PRONE") then { + [_unit, _exception] call GVAR(fnc_doAnimation); + }; +}; diff --git a/addons/core/functions/fn_hadamardProduct.sqf b/addons/core/functions/fn_hadamardProduct.sqf new file mode 100644 index 0000000000..3b0d3fea9f --- /dev/null +++ b/addons/core/functions/fn_hadamardProduct.sqf @@ -0,0 +1,24 @@ +/* + * Author: KoffeinFlummi + * + * Returns the Hadamard Product of two vectors. + * (x hadamard y) = [x1*y1, x2*y2, x3*y3] + * + * Arguments: + * 0: Vector 1 + * 1: Vector 2 + * + * Return Value: + * Hadamard Product + */ + +_vector1 = _this select 0; +_vector2 = _this select 1; + +_newVector = []; + +for "_i" from 0 to (((count _vector1) min (count _vector2)) - 1) do { + _newVector = _newVector + [(_vector1 select _i) * (_vector2 select _i)]; +}; + +_newVector diff --git a/addons/core/functions/fn_inTransitionAnim.sqf b/addons/core/functions/fn_inTransitionAnim.sqf new file mode 100644 index 0000000000..14f470dd7c --- /dev/null +++ b/addons/core/functions/fn_inTransitionAnim.sqf @@ -0,0 +1,3 @@ +// by commy2 + +getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> animationState (_this select 0) >> "looped") == 0 diff --git a/addons/core/functions/fn_interpolateFromArray.sqf b/addons/core/functions/fn_interpolateFromArray.sqf new file mode 100644 index 0000000000..4fc68ae427 --- /dev/null +++ b/addons/core/functions/fn_interpolateFromArray.sqf @@ -0,0 +1,11 @@ +// by commy2 + +private ["_array", "_value", "_min", "_max"]; + +_array = _this select 0; +_value = _this select 1; + +_min = _array select floor _value; +_max = _array select ceil _value; + +_min + (_max - _min) * (_value % 1) diff --git a/addons/core/functions/fn_isAutoWind.sqf b/addons/core/functions/fn_isAutoWind.sqf new file mode 100644 index 0000000000..89be108383 --- /dev/null +++ b/addons/core/functions/fn_isAutoWind.sqf @@ -0,0 +1,13 @@ +/* + * Author: commy2 + * + * Check if wind is set on auto. + * + * Argument: + * None. + * + * Return value: + * This mission has automatic wind? (Bool) + */ + +["Mission", "Intel", "windForced"] call GVAR(fnc_getNumberFromMissionSQM) != 1 diff --git a/addons/core/functions/fn_isEOD.sqf b/addons/core/functions/fn_isEOD.sqf new file mode 100644 index 0000000000..c1ee031573 --- /dev/null +++ b/addons/core/functions/fn_isEOD.sqf @@ -0,0 +1,26 @@ +/* + Name: GVAR(fnc_isEOD) + + Author: Garth de Wet (LH) + + Description: + Checks whether the passed unit is an explosive specialist. + Either through config entry: "canDeactivateMines" + or + unit setVariable ["AGM_isEOD", true] + + Parameters: + 0: OBJECT - Unit to check if is a specialist + + Returns: + BOOLEAN + + Example: + _isSpecialist = [player] call GVAR(fnc_isEOD); +*/ + +private "_unit"; + +_unit = _this select 0; + +_unit getVariable ["AGM_isEOD", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "canDeactivateMines") == 1] diff --git a/addons/core/functions/fn_isEngineer.sqf b/addons/core/functions/fn_isEngineer.sqf new file mode 100644 index 0000000000..7b147d827d --- /dev/null +++ b/addons/core/functions/fn_isEngineer.sqf @@ -0,0 +1,17 @@ +/* + * Author: marc_book, edited by commy2 + * + * Checks if a unit is an engineer. + * + * Arguments: + * 0: unit to be checked (object) + * + * Return Value: + * Bool: is the unit an engineer? + */ + +private "_unit"; + +_unit = _this select 0; + +_unit getVariable ["AGM_IsEngineer", getNumber (configFile >> "CfgVehicles" >> typeOf _unit >> "engineer") == 1] diff --git a/addons/core/functions/fn_isInBuilding.sqf b/addons/core/functions/fn_isInBuilding.sqf new file mode 100644 index 0000000000..124c128e56 --- /dev/null +++ b/addons/core/functions/fn_isInBuilding.sqf @@ -0,0 +1,45 @@ +/* + * Author: commy2 + * + * Check if the unit is in a building. Will return true if the unit is sitting in a bush. + * + * Argument: + * 0: Unit (Object) + * + * Return value: + * Is the unit in a building? (Bool) + */ + +#define DISTANCE 10 + +private ["_unit", "_position", "_positionX", "_positionY", "_positionZ", "_intersections"]; + +_unit = _this select 0; + +_position = eyePos _unit; +_positionX = _position select 0; +_positionY = _position select 1; +_positionZ = _position select 2; +_intersections = 0; + +if (lineIntersects [_position, [_positionX, _positionY, _positionZ + DISTANCE]]) then { + _intersections = _intersections + 1; +}; + +if (lineIntersects [_position, [_positionX + DISTANCE, _positionY, _positionZ]]) then { + _intersections = _intersections + 1; +}; + +if (lineIntersects [_position, [_positionX - DISTANCE, _positionY, _positionZ]]) then { + _intersections = _intersections + 1; +}; + +if (lineIntersects [_position, [_positionX, _positionY + DISTANCE, _positionZ]]) then { + _intersections = _intersections + 1; +}; + +if (lineIntersects [_position, [_positionX, _positionY - DISTANCE, _positionZ]]) then { + _intersections = _intersections + 1; +}; + +_intersections > 3 diff --git a/addons/core/functions/fn_isMedic.sqf b/addons/core/functions/fn_isMedic.sqf new file mode 100644 index 0000000000..59e3915948 --- /dev/null +++ b/addons/core/functions/fn_isMedic.sqf @@ -0,0 +1,17 @@ +/* + * Author: KoffeinFlummi + * + * Checks if a unit is a medic. + * + * Arguments: + * 0: unit to be checked (object) + * + * Return Value: + * Bool: is unit medic? + */ + +private ["_unit"]; + +_unit = _this select 0; + +_unit getVariable ["AGM_isMedic", (getNumber(configFile >> "CfgVehicles" >> typeOf _unit >> "attendant") == 1)] diff --git a/addons/core/functions/fn_isPlayer.sqf b/addons/core/functions/fn_isPlayer.sqf new file mode 100644 index 0000000000..a60b615c96 --- /dev/null +++ b/addons/core/functions/fn_isPlayer.sqf @@ -0,0 +1,14 @@ +/* + * Author: bux578, commy2 + * + * Checks if a unit is a player / curator controlled unit. + * Currently returns false for non-local remote controlled zeus units. (Remotes from another zeus machine) + * + * Arguments: + * 0: unit to be checked (object) + * + * Return Value: + * Bool: is unit a player? + */ + +isPlayer (_this select 0) || {_this select 0 == call GVAR(fnc_player)} diff --git a/addons/core/functions/fn_isTurnedOut.sqf b/addons/core/functions/fn_isTurnedOut.sqf new file mode 100644 index 0000000000..535ee1b812 --- /dev/null +++ b/addons/core/functions/fn_isTurnedOut.sqf @@ -0,0 +1,38 @@ +/* + * Author: commy2 + * + * Check if the unit is in a vehicle and turned out. + * + * Argument: + * 0: Unit, not the vehicle (Object) + * + * Return value: + * Is the unit turned out or not? Will return false if there is no option to turn out in the first place. (Bool) + */ + +private ["_unit", "_vehicle", "_config", "_animation", "_action", "_inAction", "_turretIndex"]; + +_unit = _this select 0; +_vehicle = vehicle _unit; +_config = configFile >> "CfgVehicles" >> typeOf _vehicle; +_animation = animationState _unit; + +if (_unit == driver _vehicle) then { + _action = getText (_config >> "driverAction"); + _inAction = getText (_config >> "driverInAction"); +} else { + _turretIndex = [_unit] call GVAR(fnc_getTurretIndex); + + _config = [_config, _turretIndex] call GVAR(fnc_getTurretConfigPath); + + _action = getText (_config >> "gunnerAction"); + _inAction = getText (_config >> "gunnerInAction"); +}; + +if (_action == "" || {_inAction == ""} || {_action == _inAction}) exitWith {false}; + +_animation = toArray _animation; +_animation resize (count toArray _action); +_animation = toString _animation; + +_animation == _action diff --git a/addons/core/functions/fn_letterToCode.sqf b/addons/core/functions/fn_letterToCode.sqf new file mode 100644 index 0000000000..4382e94362 --- /dev/null +++ b/addons/core/functions/fn_letterToCode.sqf @@ -0,0 +1,3 @@ +// by commy2 + +[-1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 30, 48, 46, 32, 18, 33, 34, 35, 23, 36, 37, 38, 50, 49, 24, 25, 16, 19, 31, 20, 22, 47, 17, 45, 44, 21] select (["1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"] find toUpper (_this select 0)) + 1 diff --git a/addons/core/functions/fn_map.sqf b/addons/core/functions/fn_map.sqf new file mode 100644 index 0000000000..3884348ca9 --- /dev/null +++ b/addons/core/functions/fn_map.sqf @@ -0,0 +1,30 @@ +/* + * Author: KoffeinFlummi, commy2 + * + * Applies given code to every element in an array, LIKE SOMETHING SQF SHOULD HAVE BY DEFAULT. + * + * Arguments: + * 0: Array to be thingied. + * 1: Code to be applied to every element. + * + * Return Value: + * Final array + * + * Usage: + * [["2", "gobblecock", "25"], {parseNumber _this}] call GVAR(fnc_map) ==> [2, 0, 25] + */ + +private ["_array", "_code"]; + +_array = + _this select 0; +_code = _this select 1; + +if (isNil "_array") exitWith { + diag_log text format ["[AGM] ERROR: No array for function map in %1", _fnc_scriptNameParent]; + [] +}; + +{ + _array set [_forEachIndex, _x call _code]; +} forEach _array; +_array diff --git a/addons/core/functions/fn_moduleCheckPBOs.sqf b/addons/core/functions/fn_moduleCheckPBOs.sqf new file mode 100644 index 0000000000..dd55133c76 --- /dev/null +++ b/addons/core/functions/fn_moduleCheckPBOs.sqf @@ -0,0 +1,96 @@ +/* + * Author: KoffeinFlummi + * + * Initializes the check-PBOs module. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +_mode = parseNumber (_logic getVariable "Action"); +_checkAll = _logic getVariable ["CheckAll", false]; +_whitelist = call compile (_logic getVariable ["Whitelist", "[]"]); + +if (isNil "_whitelist") then { + _whitelist = []; +}; + +_whitelist = [_whitelist, {toLower _this}] call GVAR(fnc_map); + +AGM_Version_CheckAll = _checkAll; +AGM_Version_Whitelist = _whitelist; + +if (!isServer) then { + [_mode, _checkAll, _whitelist] spawn { + _mode = _this select 0; + _checkAll = _this select 1; + _whitelist = _this select 2; + + waitUntil { + sleep 1; + !isNil "AGM_Version_ClientErrors" + }; + + _missingAddon = AGM_Version_ClientErrors select 0; + _missingAddonServer = AGM_Version_ClientErrors select 1; + _oldVersionClient = AGM_Version_ClientErrors select 2; + _oldVersionServer = AGM_Version_ClientErrors select 3; + + // Display error message. + if (_missingAddon || {_missingAddonServer} || {_oldVersionClient} || {_oldVersionServer}) then { + _text = "[AGM] Version mismatch:

"; + _error = format ["AGM version mismatch: %1: ", profileName]; + + if (_missingAddon) then { + _text = _text + "Detected missing addon on client
"; + _error = _error + "Missing file(s); "; + }; + if (_missingAddonServer) then { + _text = _text + "Detected missing addon on server
"; + _error = _error + "Additional file(s); "; + }; + if (_oldVersionClient) then { + _text = _text + "Detected old client version
"; + _error = _error + "Older version; "; + }; + if (_oldVersionServer) then { + _text = _text + "Detected old server version
"; + _error = _error + "Newer version; "; + }; + + //[_error, "{systemChat _this}"] call GVAR(fnc_execRemoteFnc); + diag_log text _error; + + _text = composeText [lineBreak, parseText format ["%1", _text]]; + + _rscLayer = "AGM_RscErrorHint" call BIS_fnc_rscLayer; + _rscLayer cutRsc ["AGM_RscErrorHint", "PLAIN", 0, true]; + + disableSerialization; + _ctrlHint = uiNamespace getVariable "AGM_ctrlErrorHint"; + _ctrlHint ctrlSetStructuredText _text; + + if (_mode == 0) then { + sleep 10; + _rscLayer cutFadeOut 0.2; + }; + + if (_mode == 2) then { + sleep 10; + waitUntil {alive player}; + [player] call GVAR(fnc_adminKick); + }; + }; + }; +}; + +diag_log text format ["[AGM]: Check-PBOs Module Initialized. Mode: %1.", _mode]; diff --git a/addons/core/functions/fn_moduleLSDVehicles.sqf b/addons/core/functions/fn_moduleLSDVehicles.sqf new file mode 100644 index 0000000000..fbda2cc569 --- /dev/null +++ b/addons/core/functions/fn_moduleLSDVehicles.sqf @@ -0,0 +1,46 @@ +/* + * Author: KoffeinFlummi + * + * Nothing to see here, move along. + * + * Arguments: + * Whatever the module provides. (I dunno.) + * + * Return Value: + * None + */ + +_logic = _this select 0; +_units = _this select 1; +_activated = _this select 2; + +if !(_activated) exitWith {}; + +{ + _hiddenSelections = count (getArray (configFile >> "CfgVehicles" >> (typeOf _x) >> "hiddenSelections")); + if (_hiddenSelections > 0) then { + nul = [_x, _hiddenSelections] spawn { + _vehicle = _this select 0; + _hSCount = _this select 1; + _colors = [ + "#(argb,8,8,3)color(1,0,0,1,co)", + "#(argb,8,8,3)color(1,0.5,0,1,co)", + "#(argb,8,8,3)color(1,1,0,1,co)", + "#(argb,8,8,3)color(0,1,0,1,co)", + "#(argb,8,8,3)color(0,0,1,1,co)", + "#(argb,8,8,3)color(0.2,0,0.5,1,co)", + "#(argb,8,8,3)color(0.5,0,1,1,co)" + ]; + _index = 0; + while {True} do { + for "_i" from 0 to (_hSCount - 1) do { + _vehicle setObjectTexture [_i, (_colors select _index)]; + }; + _index = (_index + 1) % 7; + sleep 0.02; + }; + }; + }; +} count _units; + +diag_log text "[AGM]: WEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE."; diff --git a/addons/core/functions/fn_muteUnit.sqf b/addons/core/functions/fn_muteUnit.sqf new file mode 100644 index 0000000000..ae9704c10c --- /dev/null +++ b/addons/core/functions/fn_muteUnit.sqf @@ -0,0 +1,24 @@ +/* + * Author: commy2 + * + * Mutes the unit. It won't trigger auto generated chat messages either. + * + * Argument: + * 0: Unit (Object) + * + * Return value: + * Nothing + */ + +private ["_unit", "_speaker"]; + +_unit = _this select 0; + +if (isNull _unit) exitWith {}; + +_speaker = speaker _unit; +if (_speaker == "AGM_NoVoice") exitWith {}; + +[0, "{(_this select 1) setSpeaker 'AGM_NoVoice'}", _unit, "AGM_Speaker"] call GVAR(fnc_execPersistentFnc); + +_unit setVariable ["AGM_OriginalSpeaker", _speaker, true]; diff --git a/addons/core/functions/fn_numberToDigits.sqf b/addons/core/functions/fn_numberToDigits.sqf new file mode 100644 index 0000000000..304a5dea2c --- /dev/null +++ b/addons/core/functions/fn_numberToDigits.sqf @@ -0,0 +1,43 @@ +/* + * Author: commy2 + * + * Transforms a number to an array of the correspondending digits. + * + * Argument: + * 0: Number to 'digitize' (Number) + * 1: Set the minimal length of the returned array. Useful for getting left hand zeroes. (Number, optional) + * + * Return value: + * Digits. The maximum count is six digits. (Array) + */ + +private ["_number", "_minLength", "_length", "_digits", "_index", "_count"]; + +_number = _this select 0; +_minLength = _this select 1; + +_number = _number min 999999; +_length = floor (log _number + 1); + +if !(isNil "_minLength") then {_length = (_length max _minLength) min 6}; + +_digits = []; + +if (_number < 1) exitWith { + for "_index" from 0 to (_length - 1) do { + _digits set [_index, 0]; + }; + _digits +}; + +while { + _count = count _digits; + _count < _length +} do { + _digit = floor (_number / (10 ^ (_length - _count - 1))); + { + _digit = _digit - _x * (10 ^ (_count - _forEachIndex)); + } forEach _digits; + _digits set [_count, _digit]; +}; +_digits diff --git a/addons/core/functions/fn_numberToDigitsString.sqf b/addons/core/functions/fn_numberToDigitsString.sqf new file mode 100644 index 0000000000..82b6aa4cdf --- /dev/null +++ b/addons/core/functions/fn_numberToDigitsString.sqf @@ -0,0 +1,24 @@ +/* + * Author: commy2 + * + * Transforms a number to an string of the correspondending digits. + * + * Argument: + * 0: Number to 'digitize' (Number) + * 1: Set the minimal length of the returned string. Useful for getting left hand zeroes. (Number, optional) + * + * Return value: + * Digits. The maximum length is six digits. (String) + */ + +private ["_digits", "_count", "_string", "_index"]; + +_digits = _this call GVAR(fnc_numberToDigits); + +_count = count _digits; + +_string = ""; +for "_index" from 0 to (_count - 1) do { + _string = _string + str (_digits select _index); +}; +_string diff --git a/addons/core/functions/fn_onLoadRscDisplayChannel.sqf b/addons/core/functions/fn_onLoadRscDisplayChannel.sqf new file mode 100644 index 0000000000..490122352b --- /dev/null +++ b/addons/core/functions/fn_onLoadRscDisplayChannel.sqf @@ -0,0 +1,38 @@ +/* + Name: GVAR(fnc_onLoadRscDisplayChannel) + + Author: Pabst Mirror, commy2 + + Description: + When the RscDisplayChannel is loaded, this will constantly uiNamespace variable "AGM_currentChannel" + with the raw localized text of CA_Channel (IDC=101). Only runs while the display is open. + + Parameters: + 0: DISPLAY - RscDisplayChannel + + Returns: + Nothing +*/ + +/* +_this spawn { + private "_display"; + disableSerialization; + _display = _this select 0; + waitUntil { + if (isNull _display) exitWith {true}; + if (ctrlText (_display displayCtrl 101) != "") then { + uiNamespace setVariable ["AGM_currentChannel", ctrlText (_display displayCtrl 101)]; + }; + false + }; +}; +*/ + +uiNamespace setVariable ["AGM_ctrlChannel", (_this select 0) displayCtrl 101]; + +["AGM_currentChannel", "onEachFrame", { + if (ctrlText (uiNamespace getVariable ["AGM_ctrlChannel", controlNull]) != "") then { + uiNamespace setVariable ["AGM_currentChannel", ctrlText (uiNamespace getVariable ["AGM_ctrlChannel", controlNull])]; + }; +}] call BIS_fnc_addStackedEventhandler; diff --git a/addons/core/functions/fn_owned.sqf b/addons/core/functions/fn_owned.sqf new file mode 100644 index 0000000000..b3f7db8bf4 --- /dev/null +++ b/addons/core/functions/fn_owned.sqf @@ -0,0 +1,7 @@ +// by commy2 + +private "_object"; + +_object = _this select 0; + +!isNull (_object getVariable ["AGM_isUsedBy", objNull]) diff --git a/addons/core/functions/fn_player.sqf b/addons/core/functions/fn_player.sqf new file mode 100644 index 0000000000..25cefb9a86 --- /dev/null +++ b/addons/core/functions/fn_player.sqf @@ -0,0 +1,14 @@ +/* + * Author: bux578, commy2 + * + * Returns the player or curator controlled unit. + * Use this in INIT and RESPAWN eh scripts, because AGM_player isn't reset yet. + * + * Arguments: + * NONE. + * + * Return Value: + * Player controlled unit (object) + */ + +missionNamespace getVariable ["bis_fnc_moduleRemoteControl_unit", player] diff --git a/addons/core/functions/fn_playerSide.sqf b/addons/core/functions/fn_playerSide.sqf new file mode 100644 index 0000000000..d432a68fa7 --- /dev/null +++ b/addons/core/functions/fn_playerSide.sqf @@ -0,0 +1,3 @@ +// by commy2 + +side group AGM_player diff --git a/addons/core/functions/fn_progressBar.sqf b/addons/core/functions/fn_progressBar.sqf new file mode 100644 index 0000000000..f48a888618 --- /dev/null +++ b/addons/core/functions/fn_progressBar.sqf @@ -0,0 +1,60 @@ +/* + * Author: commy2 + * + * Draw progress bar and execute given function if succesful. + * + * Argument: + * 0: Duration of the action (Number) + * 1: Arguments of the callback function (Array) + * 2: Callback function name (String) + * 3: Title of the loading bar (String) + * 4: Name of the function that is called when the action is aborted via ESC (String, optional) + * + * Return value: + * Nothing + */ + +closeDialog 0; +createDialog "GVAR(ProgressBar_Dialog)"; + +_this spawn { + _time = _this select 0; + _arguments = _this select 1; + _function = call compile (_this select 2); + _title = _this select 3; + _function2 = call compile (_this select 4); + + disableSerialization; + _ctrlProgressBar = uiNamespace getVariable "GVAR(ctrlProgressBar)"; + _ctrlProgressBarTitle = uiNamespace getVariable "GVAR(ctrlProgressBarTitle)"; + + _ctrlProgressBar ctrlSetPosition [ + safezoneX + 0.1 * safezoneW, + safezoneY + 0.2 * safezoneH, + 0.8 * safezoneW, + 0.01 * safezoneH + ]; + _ctrlProgressBar ctrlCommit (_time / accTime); + + _ctrlProgressBarTitle ctrlSetText _title; + //_ctrlProgressBarTitle ctrlSetStructuredText _title; + + _time = time + _time; + waitUntil { + //make sure the progressBar is still open, not just any dialog + (isNull (uiNamespace getVariable ["GVAR(ctrlProgressBar)", controlNull])) || {!alive AGM_player} || {time > _time} + }; + + closeDialog 0; + + _progress = 1; + if (time > _time) then { + _arguments call _function; + } else { + [localize "STR_GVAR(ActionAborted)"] call GVAR(fnc_displayTextStructured); + if (!isNil "_function2") then { + _progress = 1 - ((_time - time) / (_this select 0)) max 0 min 1; + _arguments call _function2; + }; + }; +}; diff --git a/addons/core/functions/fn_queueAnimation.sqf b/addons/core/functions/fn_queueAnimation.sqf new file mode 100644 index 0000000000..94bbc21502 --- /dev/null +++ b/addons/core/functions/fn_queueAnimation.sqf @@ -0,0 +1,9 @@ +// by commy2 + +terminate (missionNamespace getVariable ["AGM_waitForAnimationHandle", scriptNull]); + +AGM_waitForAnimationHandle = _this spawn { + waitUntil {!([_this select 0] call GVAR(fnc_inTransitionAnim))}; + + _this call GVAR(fnc_doAnimation); +}; diff --git a/addons/core/functions/fn_readBooleanParameterFromModule.sqf b/addons/core/functions/fn_readBooleanParameterFromModule.sqf new file mode 100644 index 0000000000..91e538bbbd --- /dev/null +++ b/addons/core/functions/fn_readBooleanParameterFromModule.sqf @@ -0,0 +1,27 @@ +/* + * Author: CAA-Picard + * + * Reads a boolean value from a module, sets de AGM_Parameter. Logs if parameters are missing in the module. + * + * Arguments: + * 0: Module (Object) + * 1: AGM_Parameter name (string) + * 2: Module parameter name (string) + * + * Return Value: + * None + */ + + private ["_logic", "_agmParameterName", "_moduleParameterName"]; + +_logic = _this select 0; +_agmParameterName = _this select 1; +_moduleParameterName = _this select 2; + +// Check if the parameter is defined in the module +if (isNil {_logic getVariable _moduleParameterName}) exitWith { + diag_log text format["[AGM]: Warning in %1 module: %2 parameter is missing. Probably an obsolete version of the module is used in the mission.", typeOf _logic, _moduleParameterName]; +}; + +// Set the parameter +[_agmParameterName , if (_logic getVariable _moduleParameterName) then {1} else {0}] call GVAR(fnc_setParameter); diff --git a/addons/core/functions/fn_readNumericParameterFromModule.sqf b/addons/core/functions/fn_readNumericParameterFromModule.sqf new file mode 100644 index 0000000000..05bdf00f85 --- /dev/null +++ b/addons/core/functions/fn_readNumericParameterFromModule.sqf @@ -0,0 +1,33 @@ +/* + * Author: CAA-Picard + * + * Reads a numberic value from a module, sets de AGM_Parameter. Logs if parameters are missing in the module. + * + * Arguments: + * 0: Module (Object) + * 1: AGM_Parameter name (string) + * 2: Module parameter name (string) + * + * Return Value: + * None + */ + + private ["_logic", "_agmParameterName", "_moduleParameterName", "_value"]; + +_logic = _this select 0; +_agmParameterName = _this select 1; +_moduleParameterName = _this select 2; + +// Check if the parameter is defined in the module +if (isNil {_logic getVariable _moduleParameterName}) exitWith { + diag_log format["Warning in %1 module: %2 parameter is missing. Probably an obsolete version of the module is used in the mission.", typeOf _logic, _moduleParameterName] +}; + +// Check if the value is defined as string for backward compatibility +_value = _logic getVariable _moduleParameterName; +if (typeName _value == "STRING") then { + _value = parseNumber _value; +}; + +// Set the parameter +[_agmParameterName, _value] call GVAR(fnc_setParameter); diff --git a/addons/core/functions/fn_removeActionEventHandler.sqf b/addons/core/functions/fn_removeActionEventHandler.sqf new file mode 100644 index 0000000000..9e93e545d3 --- /dev/null +++ b/addons/core/functions/fn_removeActionEventHandler.sqf @@ -0,0 +1,49 @@ +/* + * Author: commy2 + * + * Remove an addAction event from a unit. + * + * Argument: + * 0: Unit the action is assigned to (Object) + * 1: Name of the action, e.g. "DefaultAction" (String) + * 2: ID of the action (Number) + * + * Return value: + * None. + */ + +private ["_unit", "_action", "_id", "_name", "_actionsVar", "_actionID", "_actions", "_currentID", "_actionIDs", "_count"]; + +_unit = _this select 0; +_action = _this select 1; +_id = _this select 2; + +if (_id == -1) exitWith {}; + +_name = format ["AGM_Action_%1", _action]; + +_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; + +_actionID = _actionsVar select 0; +_actions = _actionsVar select 1; + +_currentID = _actions select 0; +_actionIDs = _actions select 1; +_actions = _actions select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []]; +_actions = _actions - [[]]; + +if (count _actions == 0) then { + _unit removeAction _actionID; + _actionID = -1; +}; + +_unit setVariable [_name, [_actionID, [_currentID, _actionIDs, _actions]], false]; diff --git a/addons/core/functions/fn_removeActionMenuEventHandler.sqf b/addons/core/functions/fn_removeActionMenuEventHandler.sqf new file mode 100644 index 0000000000..cd7a3da1cd --- /dev/null +++ b/addons/core/functions/fn_removeActionMenuEventHandler.sqf @@ -0,0 +1,46 @@ +/* + * Author: commy2 + * + * Remove an addAction event from a unit. + * + * Argument: + * 0: Unit the action is assigned to (Object) + * 1: Name of the action, e.g. "DefaultAction" (String) + * 2: ID of the action (Number) + * + * Return value: + * None. + */ + +private ["_unit", "_action", "_id", "_name", "_actionsVar", "_currentID", "_actionIDs", "_actions", "_actionID", "_nameVar"]; + +_unit = _this select 0; +_action = _this select 1; +_id = _this select 2; + +if (_id == -1) exitWith {}; + +_name = format ["AGM_ActionMenu_%1", _action]; + +_actionsVar = _unit getVariable [_name, [-1, [-1, [], []]]]; + +_currentID = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_action = _actions select _id; +_actionID = _action select 0; +_nameVar = _action select 1; + +missionNamespace setVariable [_nameVar, nil]; + +_actionIDs deleteAt _id; +_actions deleteAt _id; + +_unit removeAction _actionID; + +_unit setVariable [_name, [_currentID, _actionIDs, _actions], false]; diff --git a/addons/core/functions/fn_removeCameraEventHandler.sqf b/addons/core/functions/fn_removeCameraEventHandler.sqf new file mode 100644 index 0000000000..912902a56a --- /dev/null +++ b/addons/core/functions/fn_removeCameraEventHandler.sqf @@ -0,0 +1,33 @@ +/* + * Author: commy2 + * + * Remove a camera view event handler. + * + * Argument: + * 0: ID of the event handler (Number) + * + * Return value: + * None. + */ + +private ["_id", "_actionsVar", "_currentId", "_actionIDs", "_actions"]; + +_id = _this select 0; + +_actionsVar = missionNamespace getVariable ["AGM_EventHandler_CameraMode", [-1, [], []]]; + +_currentId = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []];//{} +_actions = _actions - [[]];//[{}] + +missionNamespace setVariable ["AGM_EventHandler_CameraMode", [_currentId, _actionIDs, _actions]]; diff --git a/addons/core/functions/fn_removeCustomEventHandler.sqf b/addons/core/functions/fn_removeCustomEventHandler.sqf new file mode 100644 index 0000000000..5337ace1f4 --- /dev/null +++ b/addons/core/functions/fn_removeCustomEventHandler.sqf @@ -0,0 +1,39 @@ +/* + * Author: commy2 + * + * Remove a custom event handler from an object. + * + * Argument: + * 0: Unit the event handler is assigned to or namespace (Object OR Namespace) + * 1: Name of the event (String) + * 2: ID of the event handler (Number) + * + * Return value: + * None. + */ + +private ["_object", "_type", "_id", "_name", "_actionsVar", "_currentId", "_actionIDs", "_actions"]; + +_object = _this select 0; +_type = _this select 1; +_id = _this select 2; + +_name = format ["AGM_CustomEventHandlers_%1", _type]; + +_actionsVar = _object getVariable [_name, [-1, [], []]]; + +_currentId = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []];//{} +_actions = _actions - [[]];//[{}] + +_object setVariable [_name, [_currentId, _actionIDs, _actions]]; diff --git a/addons/core/functions/fn_removeInfoDisplayEventHandler.sqf b/addons/core/functions/fn_removeInfoDisplayEventHandler.sqf new file mode 100644 index 0000000000..ea0252df82 --- /dev/null +++ b/addons/core/functions/fn_removeInfoDisplayEventHandler.sqf @@ -0,0 +1,32 @@ +/* + * Author: commy2 + * + * Remove a unit info type event handler. + * + * Argument: + * 0: Type. Can be "Soldier", "Vehicle", "Aircraft" or "Parachute" (String) + * 1: ID of the event handler (Number) + * + * Return value: + * None. + */ + +private ["_type", "_id", "_actionsVar", "_currentId", "_actionIDs", "_actions"]; + +_type = format ["AGM_onLoadInfo%1", _this select 0]; +_id = _this select 1; + +_actionsVar = missionNamespace getVariable [_type, [-1, [], []]]; + +_currentId = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs deleteAt _id; +_actions deleteAt _id; + +missionNamespace setVariable [_type, [_currentId, _actionIDs, _actions]]; diff --git a/addons/core/functions/fn_removeInventoryDisplayLoadedEventHandler.sqf b/addons/core/functions/fn_removeInventoryDisplayLoadedEventHandler.sqf new file mode 100644 index 0000000000..b2cc322e36 --- /dev/null +++ b/addons/core/functions/fn_removeInventoryDisplayLoadedEventHandler.sqf @@ -0,0 +1,30 @@ +/* + * Author: commy2 + * + * Remove an inventory display opened handler. + * + * Argument: + * 0: ID of the event handler (Number) + * + * Return value: + * None. + */ + +private ["_id", "_actionsVar", "_currentId", "_actionIDs", "_actions"]; + +_id = _this select 0; + +_actionsVar = missionNamespace getVariable ["AGM_onLoadInventory", [-1, [], []]]; + +_currentId = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs deleteAt _id; +_actions deleteAt _id; + +missionNamespace setVariable ["AGM_onLoadInventory", [_currentId, _actionIDs, _actions]]; diff --git a/addons/core/functions/fn_removeMapMarkerCreatedEventHandler.sqf b/addons/core/functions/fn_removeMapMarkerCreatedEventHandler.sqf new file mode 100644 index 0000000000..a0edb36b78 --- /dev/null +++ b/addons/core/functions/fn_removeMapMarkerCreatedEventHandler.sqf @@ -0,0 +1,33 @@ +/* + * Author: commy2 + * + * Remove a map marker creation event handler. + * + * Argument: + * 0: ID of the event handler (Number) + * + * Return value: + * None. + */ + +private ["_id", "_actionsVar", "_currentId", "_actionIDs", "_actions"]; + +_id = _this select 0; + +_actionsVar = missionNamespace getVariable ["AGM_EventHandler_MapMarker", [-1, [], []]]; + +_currentId = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []];//{} +_actions = _actions - [[]];//[{}] + +missionNamespace setVariable ["AGM_EventHandler_MapMarker", [_currentId, _actionIDs, _actions]]; diff --git a/addons/core/functions/fn_removeScrollWheelEventHandler.sqf b/addons/core/functions/fn_removeScrollWheelEventHandler.sqf new file mode 100644 index 0000000000..b2dbd1317d --- /dev/null +++ b/addons/core/functions/fn_removeScrollWheelEventHandler.sqf @@ -0,0 +1,33 @@ +/* + * Author: commy2 + * + * Remove a scroll wheel event handler. + * + * Argument: + * 0: ID of the event handler (Number) + * + * Return value: + * None. + */ + +private ["_id", "_actionsVar", "_currentId", "_actionIDs", "_actions"]; + +_id = _this select 0; + +_actionsVar = missionNamespace getVariable ["AGM_EventHandler_ScrollWheel", [-1, [], []]]; + +_currentId = _actionsVar select 0; +_actionIDs = _actionsVar select 1; +_actions = _actionsVar select 2; + +_id = _actionIDs find _id; + +if (_id == -1) exitWith {}; + +_actionIDs set [_id, -1]; +_actionIDs = _actionIDs - [-1]; + +_actions set [_id, []];//{} +_actions = _actions - [[]];//[{}] + +missionNamespace setVariable ["AGM_EventHandler_ScrollWheel", [_currentId, _actionIDs, _actions]]; diff --git a/addons/core/functions/fn_restoreVariablesJIP.sqf b/addons/core/functions/fn_restoreVariablesJIP.sqf new file mode 100644 index 0000000000..a48f6e296b --- /dev/null +++ b/addons/core/functions/fn_restoreVariablesJIP.sqf @@ -0,0 +1,27 @@ +/* + * Author: commy2 + * + * Called from respawn eventhandler. Resets all public object namespace variables that are added via GVAR(fnc_setVariableJIP). + * + * Argument: + * 0: Object (Object) + * + * Return value: + * Nothing. + */ + +private ["_unit", "_respawnVariables"]; + +_unit = _this select 0; + +_respawnVariables = _unit getVariable ["AGM_respawnVariables", []]; + +// yes those +_respawnVariables pushBack "AGM_PersistentFunctions"; + +{ + _unit setVariable [_x, _unit getVariable _x, true]; +} forEach _respawnVariables; + +// fix speaker after respawn +[_unit, format ["{_this setSpeaker '%1'}", speaker _unit], 2] call GVAR(fnc_execRemoteFnc); diff --git a/addons/core/functions/fn_revertKeyCodeLocalized.sqf b/addons/core/functions/fn_revertKeyCodeLocalized.sqf new file mode 100644 index 0000000000..2c42127c36 --- /dev/null +++ b/addons/core/functions/fn_revertKeyCodeLocalized.sqf @@ -0,0 +1,38 @@ +/* + * Author: commy2 + * + * Revert a key code to a readible text. + * + * Argument: + * 0: Key code (Number) + * + * Return value: + * What input will result in the given key code? (String) + */ + +private ["_keyCode", "_key", "_alt", "_ctrl", "_shft"]; + +_keyCode = _this select 0; + +_key = toString ((toArray keyName floor _keyCode) - [34]); + +_keyCode = round ((_keyCode % 1) * 10); + +switch (_keyCode) do { + case 8 : {format [localize "STR_GVAR(DoubleTapKey)", _key]}; + case 9 : {format [localize "STR_GVAR(HoldKey)", _key]}; + default { + _keyCode = toArray ([_keyCode, 3] call GVAR(fnc_toBin)); + + _alt = "1" == toString [_keyCode select 0]; + _ctrl = "1" == toString [_keyCode select 1]; + _shift = "1" == toString [_keyCode select 2]; + + format ["%1%2%3%4", + ["", format ["%1 + ", localize "STR_GVAR(Alt)"]] select _alt, + ["", format ["%1 + ", localize "STR_GVAR(Ctrl)"]] select _ctrl, + ["", format ["%1 + ", localize "STR_GVAR(Shift)"]] select _shift, + _key + ] + }; +}; diff --git a/addons/core/functions/fn_sanitizeString.sqf b/addons/core/functions/fn_sanitizeString.sqf new file mode 100644 index 0000000000..578991f332 --- /dev/null +++ b/addons/core/functions/fn_sanitizeString.sqf @@ -0,0 +1,41 @@ +/* + * Author: CAA-Picard, based on Killzone-Kid code + * + * Removes quotation marks to avoid exploits and optionally html tags from text to avoid conflicts with structured text. + * + * Arguments: + * 0: Source string (String) + * 1: Remove html tags (Bool, optional) + * + * Return Value: + * Sanitized string + */ + + private ["_string", "_removeTags", "_array", "_arrayNew"]; + +_string = _this select 0; +_removeTags = _this select 1; +if (isNil "_removeTags") then {_removeTags = false}; + +_array = toArray _string; + +_arrayNew = []; +{ + switch _x do { + case 60 : { + _arrayNew = if (_removeTags) then {_arrayNew + toArray "<";} else {_arrayNew + [_x];}; + }; + case 62 : { + _arrayNew = if (_removeTags) then {_arrayNew + toArray ">";} else {_arrayNew + [_x];}; + }; + case 34 : { + }; + case 39 : { + }; + default { + _arrayNew = _arrayNew + [_x]; + }; + }; +} forEach _array; + +toString _arrayNew diff --git a/addons/core/functions/fn_serverLog.sqf b/addons/core/functions/fn_serverLog.sqf new file mode 100644 index 0000000000..275be41e85 --- /dev/null +++ b/addons/core/functions/fn_serverLog.sqf @@ -0,0 +1,7 @@ +// by CAA-Picard + +if (isServer) then { + diag_log _this; +} else { + [_this, "GVAR(fnc_serverLog)", 1] call GVAR(fnc_execRemoteFnc); +}; diff --git a/addons/core/functions/fn_setCaptivityStatus.sqf b/addons/core/functions/fn_setCaptivityStatus.sqf new file mode 100644 index 0000000000..fa65793800 --- /dev/null +++ b/addons/core/functions/fn_setCaptivityStatus.sqf @@ -0,0 +1,44 @@ +/* + * Author: commy2 + * + * Set the captivity status of an unit. This allows the handling of more than one reason to set a unit captive. + * + * Argument: + * 0: Unit (Object) + * 1: The reason of the captivity (String) + * 2: Is the reason still valid? True for setting this reason, false for removing it (Bool) + * + * Return value: + * None. + */ + +private ["_unit", "_reason", "_status", "_captivityReasons", "_unitCaptivityReasons", "_captivityReasonsBooleans", "_bitmask"]; + +_unit = _this select 0; +_reason = _this select 1; +_status = _this select 2; + +_captivityReasons = missionNamespace getVariable ["AGM_captivityReasons", []]; + +// register new reason (these reasons are shared publicly, since units can change ownership, but keep their captivity status) +if !(_reason in _captivityReasons) then { + _captivityReasons pushBack _reason; + + AGM_captivityReasons = _captivityReasons; + publicVariable "AGM_captivityReasons"; +}; + +// get reasons why the unit is captive already and update to the new status +_unitCaptivityReasons = [_unit] call GVAR(fnc_getCaptivityStatus); + +_captivityReasonsBooleans = []; +{ + _captivityReasonsBooleans set [_forEachIndex, (_captivityReasons select _forEachIndex) in _unitCaptivityReasons]; +} forEach _captivityReasons; + +_captivityReasonsBooleans set [_captivityReasons find _reason, _status]; + +_bitmask = _captivityReasonsBooleans call GVAR(fnc_toBitmask); + +// actually apply the setCaptive command globaly +[[_unit, _bitmask], "{(_this select 0) setCaptive (_this select 1)}", _unit] call GVAR(fnc_execRemoteFnc); diff --git a/addons/core/functions/fn_setForceWalkStatus.sqf b/addons/core/functions/fn_setForceWalkStatus.sqf new file mode 100644 index 0000000000..b33fd216a3 --- /dev/null +++ b/addons/core/functions/fn_setForceWalkStatus.sqf @@ -0,0 +1,52 @@ +/* +Name: GVAR(fnc_setForceWalkStatus) + +Author: Pabst Mirror (from captivity by commy2) + +Description: + Sets the forceWalk status of an unit. This allows the handling of more than one reason to set forceWalk. + Unit will force walk until all reasons are removed. + +Parameters: + 0: OBJECT - Unit + 1: STRING - Reason for forcing walking + 2: BOOL - Is the reason still valid. True to force walk, false to remove restriction. + +Returns: + None + +Example: + [AGM_Player, "BrokenLeg", true] call GVAR(fnc_setForceWalkStatus) +*/ + +private ["_unit", "_reason", "_status", "_forceWalkReasons", "_unitForceWalkReasons", "_forceWalkReasonsBooleans", "_bitmaskNumber"]; + +_unit = _this select 0; +_reason = _this select 1; +_status = _this select 2; + +_forceWalkReasons = missionNamespace getVariable ["AGM_forceWalkReasons", []]; + +// register new reason (these reasons are shared publicly, since units can change ownership, but keep their forceWalk status) +if !(_reason in _forceWalkReasons) then { + _forceWalkReasons pushBack _reason; + AGM_forceWalkReasons = _forceWalkReasons; + publicVariable "AGM_forceWalkReasons"; +}; + +// get reasons why the unit is forceWalking already and update to the new status +_unitForceWalkReasons = [_unit] call GVAR(fnc_getForceWalkStatus); + +_forceWalkReasonsBooleans = []; +{ + _forceWalkReasonsBooleans set [_forEachIndex, (_forceWalkReasons select _forEachIndex) in _unitForceWalkReasons]; +} forEach _forceWalkReasons; + +_forceWalkReasonsBooleans set [_forceWalkReasons find _reason, _status]; + +_bitmaskNumber = _forceWalkReasonsBooleans call GVAR(fnc_toBitmask); + +_unit setVariable ["AGM_forceWalkStatusNumber", _bitmaskNumber, true]; + +// actually apply the forceWalk command globaly +[[_unit], "GVAR(fnc_applyForceWalkStatus)", _unit] call GVAR(fnc_execRemoteFnc); diff --git a/addons/core/functions/fn_setKeyDefault.sqf b/addons/core/functions/fn_setKeyDefault.sqf new file mode 100644 index 0000000000..1554084e89 --- /dev/null +++ b/addons/core/functions/fn_setKeyDefault.sqf @@ -0,0 +1,66 @@ +/* + * Author: commy2 + * + * Set all keys from the 'GVAR(Default_Keys)' base class that are missing in the current user profile. + * + * Argument: + * 1: Overwrite existing key binds? (Bool) + * + * Return value: + * None. + */ + +private ["_overwrite", "_saveProfile", "_config", "_count", "_index", "_configFile", "_name", "_key", "_shft", "_ctrl", "_alt", "_keyCode", "_state"]; + +_overwrite = _this select 0; + +_saveProfile = false; + +_config = configFile >> "GVAR(Default_Keys)"; +_count = count _config; + +for "_index" from 0 to (_count - 1) do { + _configFile = _config select _index; + _name = format ["AGM_Key_%1", configName _configFile]; + _key = profileNamespace getVariable _name; + + if (isNil "_key" || {_overwrite}) then { + _key = getNumber (_configFile >> "Key"); + _shft = getNumber (_configFile >> "Shift") == 1; + _ctrl = getNumber (_configFile >> "Control") == 1; + _alt = getNumber (_configFile >> "Alt") == 1; + + _keyCode = [_key, _shft, _ctrl, _alt] call GVAR(fnc_convertKeyCode); + + profileNamespace setVariable [_name, _keyCode]; + _saveProfile = true; + }; +}; + +_config = configFile >> "GVAR(Options)"; +_count = count _config; + +for "_index" from 0 to (_count - 1) do { + _configFile = _config select _index; + _name = format ["AGM_%1", configName _configFile]; + _state = profileNamespace getVariable _name; + + if (isNil "_state" || {_overwrite}) then { + _state = getNumber (_configFile >> "default") == 1; + + profileNamespace setVariable [_name, _state]; + _saveProfile = true; + }; +}; + +if (_overwrite) then { + saveProfileNamespace; + diag_log text "[AGM]: Profile settings overwritten."; +} else { + if (_saveProfile) then { + saveProfileNamespace; + diag_log text "[AGM]: Encountered missing variable in profile namespace. Profile saved."; + } else { + diag_log text "[AGM]: No missing variables encountered in profile namespace."; + }; +}; diff --git a/addons/core/functions/fn_setName.sqf b/addons/core/functions/fn_setName.sqf new file mode 100644 index 0000000000..452b3b973a --- /dev/null +++ b/addons/core/functions/fn_setName.sqf @@ -0,0 +1,25 @@ +/* + * Author: commy2 + * + * Sets the name variable of the object. Used to prevent issues with the name command. + * + * Argument: + * 0: Object (Object) + * + * Return value: + * Nothing. + */ + +private ["_unit", "_name"]; + +_unit = _this select 0; + +if (isNull _unit || {!alive _unit}) exitWith {}; + +if (_unit isKindOf "CAManBase") then { + _name = [name _unit, true] call GVAR(fnc_sanitizeString); + + //if (_name != _unit getVariable ["AGM_Name", ""]) then { + _unit setVariable ["AGM_Name", _name, true]; + //}; +}; diff --git a/addons/core/functions/fn_setParameter.sqf b/addons/core/functions/fn_setParameter.sqf new file mode 100644 index 0000000000..ac605e34d3 --- /dev/null +++ b/addons/core/functions/fn_setParameter.sqf @@ -0,0 +1,27 @@ +/* + * Author: CAA-Picard + * + * Sets the value of an AGM_Parameter and makes it public. + * + * Arguments: + * 0: Parameter name (string) + * 1: Value + * + * Return Value: + * None + */ + + private ["_name", "_value"]; + +_name = _this select 0; +_value = _this select 1; + +// Hack to keep backward compatibility for the moment +if ((typeName (missionNamespace getVariable _name)) == "BOOL") then { + if ((typeName _value) == "SCALAR") then { + _value = _value > 0; + }; +}; + +missionNamespace setVariable [_name, _value]; +publicVariable _name; diff --git a/addons/core/functions/fn_setPitchBankYaw.sqf b/addons/core/functions/fn_setPitchBankYaw.sqf new file mode 100644 index 0000000000..5624c6594f --- /dev/null +++ b/addons/core/functions/fn_setPitchBankYaw.sqf @@ -0,0 +1,54 @@ +/* + * Taken From: + * https://community.bistudio.com/wiki/BIS_fnc_setPitchBank + * Edited By: + * KoffeinFlummi + * + * Arguments: + * 0: Unit/Vehicle + * 1: Pitch (degrees) + * 2: Yaw (degrees) + * 3: Bank (degrees) + * + * Return Value: + * None + */ + +private ["_object", "_aroundX", "_aroundY", "_aroundZ", "_dirX", "_dirY", "_dirZ", "_upX", "_upY", "_upZ", "_dir", "_up", "_dirXTemp", "_upXTemp"]; + +_object = _this select 0; +_aroundX = _this select 1; +_aroundY = _this select 2; +_aroundZ = (360 - (_this select 3)) - 360; + +_dirX = 0; +_dirY = 1; +_dirZ = 0; +_upX = 0; +_upY = 0; +_upZ = 1; +if (_aroundX != 0) then { + _dirY = cos _aroundX; + _dirZ = sin _aroundX; + _upY = -sin _aroundX; + _upZ = cos _aroundX; +}; +if (_aroundY != 0) then { + _dirX = _dirZ * sin _aroundY; + _dirZ = _dirZ * cos _aroundY; + _upX = _upZ * sin _aroundY; + _upZ = _upZ * cos _aroundY; +}; +if (_aroundZ != 0) then { + _dirXTemp = _dirX; + _dirX = (_dirXTemp* cos _aroundZ) - (_dirY * sin _aroundZ); + _dirY = (_dirY * cos _aroundZ) + (_dirXTemp * sin _aroundZ); + _upXTemp = _upX; + _upX = (_upXTemp * cos _aroundZ) - (_upY * sin _aroundZ); + _upY = (_upY * cos _aroundZ) + (_upXTemp * sin _aroundZ); +}; + +_dir = [_dirX,_dirY,_dirZ]; +_up = [_upX,_upY,_upZ]; + +_object setVectorDirAndUp [_dir,_up]; diff --git a/addons/core/functions/fn_setVariableJIP.sqf b/addons/core/functions/fn_setVariableJIP.sqf new file mode 100644 index 0000000000..78694b7740 --- /dev/null +++ b/addons/core/functions/fn_setVariableJIP.sqf @@ -0,0 +1,28 @@ +/* + * Author: commy2 + * + * Sets a public object namespace variable that gets reset with the same value after respawn, so JIP clients keep the value. + * + * Argument: + * 0: Object (Object) + * 1: Variable name (String) + * 2: Any value (Anything) + * + * Return value: + * Nothing. + */ + +private ["_unit", "_varName", "_value", "_respawnVariables"]; + +_unit = _this select 0; +_varName = _this select 1; +_value = _this select 2; + +_respawnVariables = _unit getVariable ["AGM_respawnVariables", []]; + +if !(_varName in _respawnVariables) then { + _respawnVariables pushBack _varName; + _unit setVariable ["AGM_respawnVariables", _respawnVariables, true]; +}; + +_unit setVariable [_varName, _value, true]; diff --git a/addons/core/functions/fn_stringToColoredText.sqf b/addons/core/functions/fn_stringToColoredText.sqf new file mode 100644 index 0000000000..2f5530c6f5 --- /dev/null +++ b/addons/core/functions/fn_stringToColoredText.sqf @@ -0,0 +1,27 @@ +/* + * Author: commy2 + * + * Create a centered, colored text. + * + * Argument: + * 0: Text (Anything) + * 2: Color (Array) + * + * Return value: + * Text + */ + +private ["_string", "_color"]; + +_string = format ["%1", _this select 0]; +_color = _this select 1; + +_color = ( + [255 * (_color select 0), 2] call GVAR(fnc_toHex) +) + ( + [255 * (_color select 1), 2] call GVAR(fnc_toHex) +) + ( + [255 * (_color select 2), 2] call GVAR(fnc_toHex) +); + +parseText format ["%1", _string, _color]; diff --git a/addons/core/functions/fn_subString.sqf b/addons/core/functions/fn_subString.sqf new file mode 100644 index 0000000000..c5eb1c8229 --- /dev/null +++ b/addons/core/functions/fn_subString.sqf @@ -0,0 +1,27 @@ +/* + * Author: KoffeinFlummi + * + * Returns a fraction of the given string, starting at a given index, with a given length. + * + * Arguments: + * 0: Source string + * 1: Starting index of new string + * 2: Length of the new string + * + * Return Value: + * String when successfull / False when not + */ + +_string = _this select 0; +_index = _this select 1; +_length = _this select 2; + +_array = toArray _string; +if (_index < 0 or _length < 0 or _index + _length > (count _array) + 1) exitWith {false}; + +_arrayNew = []; +for "_i" from _index to (_index + _length - 1) do { + _arrayNew = _arrayNew + [(_array select _i)]; +}; + +toString _arrayNew diff --git a/addons/core/functions/fn_toBin.sqf b/addons/core/functions/fn_toBin.sqf new file mode 100644 index 0000000000..a4f8a40f6f --- /dev/null +++ b/addons/core/functions/fn_toBin.sqf @@ -0,0 +1,37 @@ +/* +Author: commy2 + +Description: +Converts number to binary number + +Arguments: +A number + +Return Value: +A binary number, String +*/ + +private ["_number", "_minLength", "_sign", "_bin", "_rest"]; + +_number = _this select 0; +_minLength = _this select 1; + +if (isNil "_minLength") then {_minLength = 1}; + +_sign = ["", "-"] select (_number < 0); + +_number = round abs _number; +_bin = ["", "0"] select (_number == 0); + +while {_number > 0} do { + _rest = str (_number mod 2); + _number = floor (_number / 2); + + _bin = _rest + _bin; +}; + +while {count toArray _bin < _minLength} do { + _bin = "0" + _bin; +}; + +_sign + _bin diff --git a/addons/core/functions/fn_toBitmask.sqf b/addons/core/functions/fn_toBitmask.sqf new file mode 100644 index 0000000000..da997cc87a --- /dev/null +++ b/addons/core/functions/fn_toBitmask.sqf @@ -0,0 +1,22 @@ +/* + * Author: commy2 + * + * Convert an array of booleans into a number. + * + * Argument: + * 0: Booleans (Array of Booleans) + * + * Return value: + * Bitmask (Number) + */ + +private ["_array", "_result"]; + +_array = _this; + +_result = 0; +{ + if (_x) then {_result = _result + 2 ^ _forEachIndex}; +} forEach _array; + +_result diff --git a/addons/core/functions/fn_toHex.sqf b/addons/core/functions/fn_toHex.sqf new file mode 100644 index 0000000000..d61ac07e5e --- /dev/null +++ b/addons/core/functions/fn_toHex.sqf @@ -0,0 +1,46 @@ +/* +Author: commy2 + +Description: +Converts number to hexadecimal number + +Arguments: +A number + +Return Value: +A hexadecimal number, String +*/ + +private ["_number", "_minLength", "_sign", "_hex", "_rest"]; + +_number = _this select 0; +_minLength = _this select 1; + +if (isNil "_minLength") then {_minLength = 1}; + +_sign = ["", "-"] select (_number < 0); + +_number = round abs _number; +_hex = ["", "0"] select (_number == 0); + +while {_number > 0} do { + _rest = _number mod 16; + _rest = switch _rest do { + case 10 : {"A"}; + case 11 : {"B"}; + case 12 : {"C"}; + case 13 : {"D"}; + case 14 : {"E"}; + case 15 : {"F"}; + default {str _rest}; + }; + _number = floor (_number / 16); + + _hex = _rest + _hex; +}; + +while {count toArray _hex < _minLength} do { + _hex = "0" + _hex; +}; + +_sign + _hex diff --git a/addons/core/functions/fn_toNumber.sqf b/addons/core/functions/fn_toNumber.sqf new file mode 100644 index 0000000000..a467f105b7 --- /dev/null +++ b/addons/core/functions/fn_toNumber.sqf @@ -0,0 +1,23 @@ +/* + Name: GVAR(fnc_toNumber) + + Author(s): + Garth de Wet (LH) + + Description: + Takes a string/number and returns the number. + + Parameters: + 0: TYPE - Value to attempt to convert to number or if number simply return number. + + Returns: + NUMBER + + Example: + _number = ["102"] call GVAR(fnc_toNumber); +*/ +if (TYPENAME(_this select 0) == "SCALAR")exitWith { + (_this select 0) +}; + +(parseNumber (_this select 0)) \ No newline at end of file diff --git a/addons/core/functions/fn_unmuteUnit.sqf b/addons/core/functions/fn_unmuteUnit.sqf new file mode 100644 index 0000000000..dcb998094b --- /dev/null +++ b/addons/core/functions/fn_unmuteUnit.sqf @@ -0,0 +1,22 @@ +/* + * Author: commy2 + * + * Unmutes the unit. + * + * Argument: + * 0: Unit (Object) + * + * Return value: + * Nothing + */ + +private ["_unit", "_speaker"]; + +_unit = _this select 0; + +if (isNull _unit) exitWith {}; + +_speaker = _unit getVariable ["AGM_OriginalSpeaker", ""]; +if (_speaker == "") exitWith {}; + +[0, format ["{(_this select 1) setSpeaker '%1'}", _speaker], _unit, "AGM_Speaker"] call GVAR(fnc_execPersistentFnc); diff --git a/addons/core/script_component.hpp b/addons/core/script_component.hpp new file mode 100644 index 0000000000..3eddbd45d9 --- /dev/null +++ b/addons/core/script_component.hpp @@ -0,0 +1,14 @@ +#define COMPONENT core +#include "script_mod.hpp" + +// #define DEBUG_MODE_FULL + +#ifdef DEBUG_ENABLED_MAIN + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_MAIN + #define DEBUG_SETTINGS DEBUG_SETTINGS_MAIN +#endif + +#include "script_macros.hpp" diff --git a/addons/core/script_macros.hpp b/addons/core/script_macros.hpp new file mode 100644 index 0000000000..e69de29bb2 diff --git a/addons/core/scripts/KeyInput/initCanInteractFunction.sqf b/addons/core/scripts/KeyInput/initCanInteractFunction.sqf new file mode 100644 index 0000000000..7dce174f44 --- /dev/null +++ b/addons/core/scripts/KeyInput/initCanInteractFunction.sqf @@ -0,0 +1,19 @@ +// by commy2 + +private ["_function", "_configFile", "_count", "_index", "_config", "_configName", "_condition"]; + +_function = "private '_exceptions'; _exceptions = _this; alive AGM_player"; + +_configFile = configFile >> "GVAR(canInteractConditions)"; +_count = count _configFile; + +for "_index" from 0 to (_count -1) do { + _config = _configFile select _index; + _configName = configName _config; + + _condition = getText (_config >> "condition"); + + _function = _function + format ["&& {%1 || {'%2' in _exceptions}}", _condition, _configName]; +}; + +GVAR(canInteract) = compileFinal _function; diff --git a/addons/core/scripts/KeyInput/initKeys.sqf b/addons/core/scripts/KeyInput/initKeys.sqf new file mode 100644 index 0000000000..ba40049da6 --- /dev/null +++ b/addons/core/scripts/KeyInput/initKeys.sqf @@ -0,0 +1,71 @@ +// by commy2 + +_config = configFile >> "GVAR(Default_Keys)"; +_count = count _config; + +_header = "_keyCode = [_this select 1, _this select 2, _this select 3, _this select 4] call GVAR(fnc_convertKeyCode); _keyIndex = floor _keyCode; if (_keyIndex == 0) exitWith {false}; if (!(profileNamespace getVariable ['AGM_enableNumberHotkeys', true]) && {_keyIndex < 12} && {_keyIndex > 1} && {_keyCode mod 1 == 0}) exitWith {false}; _time = time; _player = AGM_player; _vehicle = vehicle _player; _isInput = false;"; +_headerUp = "_keyCode = _this select 1; _keyIndex = _keyCode; if (_keyIndex == 0) exitWith {false}; _time = time; _player = AGM_player; _vehicle = vehicle _player;"; + +_handleDoubleTap = "if (_time < (GVAR(keyTimes) select _keyIndex) + 0.5 && {_keyIndex == _keyCode}) then {_keyCode = _keyIndex + 0.8};"; +_handleHold = "_allowHold = false; _disallowHold = false; if (GVAR(keyStates) select _keyIndex > 1) exitWith {false}; if (GVAR(keyStates) select _keyIndex > 0) then {_keyCode = _keyIndex + 0.9};"; +_handleHoldUp = "if (GVAR(keyStates) select _keyIndex > 1) then {_keyCode = _keyIndex + 0.9};"; + +_debug = "if (!isNil 'AGM_Debug' && {'Keys' in AGM_Debug}) then {systemChat (str _keyCode + ' ' + str (GVAR(keyStates) select _keyIndex))};"; + +_onKeyDown = "" + _debug; +_onKeyUp = "" + _debug; + +for "_index" from 0 to (_count - 1) do { + _configFile = _config select _index; + + _keyName = configName _configFile; + _condition = getText (_configFile >> "condition"); + if (_condition == "") then {_condition = "true"}; + + _statement = getText (_configFile >> "statement"); + + _exceptions = getArray (_configFile >> "exceptions"); + _canInteract = format ["%1 call GVAR(canInteract)", _exceptions]; + + _conditionName = format ["AGM_Key_%1_Condition", _keyName]; + _statementName = format ["AGM_Key_%1_Statement", _keyName]; + missionNamespace setVariable [_conditionName, compileFinal _condition]; + missionNamespace setVariable [_statementName, compileFinal _statement]; + + _handleHolding = ["_disallowHold = true;", "_allowHold = true;"] select (getNumber (_configFile >> "allowHolding") == 1); + + if (_statement != "") then { + _entry = format ["if (_keyCode == profileNamespace getVariable 'AGM_Key_%1' && {call %2}) then {if (%4) then {call %3};%5 _isInput = true;};", _keyName, _conditionName, _statementName, _canInteract, _handleHolding]; + _onKeyDown = _onKeyDown + _entry; + }; + + _condition = getText (_configFile >> "conditionUp"); + if (_condition == "") then {_condition = "true"}; + + _statement = getText (_configFile >> "statementUp"); + + _conditionName = format ["AGM_Key_%1_ConditionUp", _keyName]; + _statementName = format ["AGM_Key_%1_StatementUp", _keyName]; + missionNamespace setVariable [_conditionName, compileFinal _condition]; + missionNamespace setVariable [_statementName, compileFinal _statement]; + + if (_statement != "") then { + _entry = format ["if (_keyCode == floor (profileNamespace getVariable 'AGM_Key_%1') && {call %2}) then {call %3; _isInput = true;};", _keyName, _conditionName, _statementName]; + _onKeyUp = _onKeyUp + _entry; + }; +}; + +_halt = "if (!(_allowHold) || {_disallowHold}) then {GVAR(keyStates) set [_keyIndex, (GVAR(keyStates) select _keyIndex) + 1]; GVAR(keyTimes) set [_keyIndex, _time];};"; +_haltUp = "GVAR(keyStates) set [_keyIndex, 0];"; + +//_return = "_isInput"; +_return = "if (profileNamespace getVariable ['AGM_enableNumberHotkeys', true] && {_keyIndex < 12} && {_keyIndex > 1}) then {true} else {_isInput}"; + +_repeat = "if (!_isInput && {_keyCode mod 1 > 0.75} && {_keyCode mod 1 < 0.85}) exitWith {_keyCode = _keyIndex; " + _onKeyDown + _return + "};"; +_repeatUp = "if (!_isInput && {_keyCode mod 1 > 0.75} && {_keyCode mod 1 < 0.85}) exitWith {_keyCode = _keyIndex; " + _onKeyUp + "};"; + +_onKeyDown = _header + _handleDoubleTap + _handleHold + _onKeyDown + _halt + _repeat + _return; +_onKeyUp = _headerUp + _onKeyUp + _haltUp + _repeatUp; //_headerUp + _handleHoldUp + _onKeyUp + _haltUp + _repeatUp; + +GVAR(onKeyDown) = compileFinal _onKeyDown; +GVAR(onKeyUp) = compileFinal _onKeyUp; diff --git a/addons/core/scripts/KeyInput/initScrollWheel.sqf b/addons/core/scripts/KeyInput/initScrollWheel.sqf new file mode 100644 index 0000000000..61f18b26f4 --- /dev/null +++ b/addons/core/scripts/KeyInput/initScrollWheel.sqf @@ -0,0 +1,14 @@ +// by commy2 + +GVAR(ScrollWheelFrame) = diag_frameno; + +GVAR(onScrollWheel) = { + _scroll = _this select 1; + + if (GVAR(ScrollWheelFrame) == diag_frameno) exitWith {}; + GVAR(ScrollWheelFrame) = diag_frameno; + + { + [_scroll] call _x; + } count ((missionNamespace getVariable ["AGM_EventHandler_ScrollWheel", [-1, [], []]]) select 2); +}; diff --git a/addons/core/scripts/Version/checkVersionNumber.sqf b/addons/core/scripts/Version/checkVersionNumber.sqf new file mode 100644 index 0000000000..3407269770 --- /dev/null +++ b/addons/core/scripts/Version/checkVersionNumber.sqf @@ -0,0 +1,189 @@ +// by commy2 + +sleep 1; //wait for module + +_files = []; + +if (missionNamespace getVariable ["AGM_Version_CheckAll", false]) then { + { + if (toLower _x find "a3_" != 0 && {!(toLower _x in (missionNamespace getVariable ["AGM_Version_Whitelist", []]))}) then { + _files pushBack _x; + }; + } forEach activatedAddons; +} else { + { + if (toLower _x find "agm_" == 0) then { + _files pushBack _x; + }; + } forEach activatedAddons; +}; + +_versionMain = parseNumber getText (configFile >> "CfgPatches" >> "AGM_Core" >> "version"); + +_versions = []; +{ + _version = parseNumber getText (configFile >> "CfgPatches" >> _x >> "version"); + _versions set [_forEachIndex, _version]; +} forEach _files; + +if (isServer) then { + diag_log text format ["[AGM] Server: agm_core is Version %1.", _versionMain]; + + { + if (toLower _x find "agm_" == 0) then {// + _version = _versions select _forEachIndex; + if (_version != _versionMain) then { + diag_log text format ["[AGM] Server: %1 is Version %2.", _x, _version]; + }; + }; + } forEach _files; + + AGM_Version_ServerVersions = [_files, _versions]; + publicVariable "AGM_Version_ServerVersions"; +} else { + diag_log text format ["[AGM] Client: agm_core is Version %1.", _versionMain]; + + { + if (toLower _x find "agm_" == 0) then {// + _version = _versions select _forEachIndex; + if (_version != _versionMain) then { + diag_log text format ["[AGM] Client: %1 is Version %2.", _x, _version]; + }; + }; + } forEach _files; + + AGM_Version_ClientVersions = [_files, _versions]; +}; + +// Begin client version check +if (!isServer) then { + // Wait for server to send the servers files and version numbers + waitUntil { + sleep 1; + !isNil "AGM_Version_ClientVersions" && {!isNil "AGM_Version_ServerVersions"} + }; + + _client = profileName; + + _files = AGM_Version_ClientVersions select 0; + _versions = AGM_Version_ClientVersions select 1; + + _serverFiles = AGM_Version_ServerVersions select 0; + _serverVersions = AGM_Version_ServerVersions select 1; + + // Compare client and server files and versions + _missingAddons = []; + _oldVersionsClient = []; + _oldVersionsServer = []; + { + _serverVersion = _serverVersions select _forEachIndex; + + _index = _files find _x; + if (_index == -1) then { + _missingAddons pushBack _x; + } else { + + _clientVersion = _versions select _index; + + if (_clientVersion < _serverVersion) then { + _oldVersionsClient pushBack [_x, _clientVersion, _serverVersion]; + }; + + if (_clientVersion > _serverVersion) then { + _oldVersionsServer pushBack [_x, _clientVersion, _serverVersion]; + }; + }; + } forEach _serverFiles; + + // find client files which the server doesn't have + _missingAddonsServer = []; + { + _index = _serverFiles find _x; + if (_index == -1) then { + _missingAddonsServer pushBack _x; + } + } forEach _files; + + // display and log error messages + _fnc_cutComma = { + _string = _this; + _string = toArray _string; + + _count = count _string; + _string set [_count - 2, toArray "." select 0]; + _string set [_count - 1, -1]; + _string = _string - [-1]; + + toString _string; + }; + + _missingAddon = false; + if (count _missingAddons > 0) then { + _missingAddon = true; + + _error = format ["[AGM] %1: ERROR missing addon(s): ", _client]; + { + _error = _error + format ["%1, ", _x]; + + if (_forEachIndex > 9) exitWith {};// + } forEach _missingAddons; + + _error = _error call _fnc_cutComma; + + diag_log text _error; + [_error, "{systemChat _this}"] call GVAR(fnc_execRemoteFnc); + }; + + _missingAddonServer = false; + if (count _missingAddonsServer > 0) then { + _missingAddonServer = true; + + _error = format ["[AGM] %1: ERROR missing server addon(s): ", _client]; + { + _error = _error + format ["%1, ", _x]; + + if (_forEachIndex > 9) exitWith {};// + } forEach _missingAddonsServer; + + _error = _error call _fnc_cutComma; + + diag_log text _error; + [_error, "{systemChat _this}"] call GVAR(fnc_execRemoteFnc); + }; + + _oldVersionClient = false; + if (count _oldVersionsClient > 0) then { + _oldVersionClient = true; + + _error = format ["[AGM] %1: ERROR outdated addon(s): ", _client]; + { + _error = _error + format ["%1 (client: %2, server: %3), ", _x select 0, _x select 1, _x select 2]; + + if (_forEachIndex > 9) exitWith {};// + } forEach _oldVersionsClient; + + _error = _error call _fnc_cutComma; + + diag_log text _error; + [_error, "{systemChat _this}"] call GVAR(fnc_execRemoteFnc); + }; + + _oldVersionServer = false; + if (count _oldVersionsServer > 0) then { + _oldVersionServer = true; + + _error = format ["[AGM] %1: ERROR outdated server addon(s): ", _client]; + { + _error = _error + format ["%1 (client: %2, server: %3), ", _x select 0, _x select 1, _x select 2]; + + if (_forEachIndex > 9) exitWith {};// + } forEach _oldVersionsServer; + + _error = _error call _fnc_cutComma; + + diag_log text _error; + [_error, "{systemChat _this}"] call GVAR(fnc_execRemoteFnc); + }; + + AGM_Version_ClientErrors = [_missingAddon, _missingAddonServer, _oldVersionClient, _oldVersionServer]; +}; diff --git a/addons/core/scripts/assignedItemFix.sqf b/addons/core/scripts/assignedItemFix.sqf new file mode 100644 index 0000000000..e5b9948e6b --- /dev/null +++ b/addons/core/scripts/assignedItemFix.sqf @@ -0,0 +1,18 @@ +// by commy2 + +if (isNil "AGM_itemFix") then { + AGM_isMapEnabled = call {_config = missionConfigFile >> "showMap"; !isNumber _config || {getNumber _config == 1}}; + AGM_isCompassEnabled = call {_config = missionConfigFile >> "showCompass"; !isNumber _config || {getNumber _config == 1}}; + AGM_isWatchEnabled = call {_config = missionConfigFile >> "showWatch"; !isNumber _config || {getNumber _config == 1}}; + AGM_isRadioEnabled = call {_config = missionConfigFile >> "showRadio"; !isNumber _config || {getNumber _config == 1}}; + AGM_isGPSEnabled = call {_config = missionConfigFile >> "showGPS"; !isNumber _config || {getNumber _config == 1}}; + + AGM_itemFix = ["AGM_itemFix", "onEachFrame", { + _items = assignedItems AGM_player; + showMap (AGM_isMapEnabled && {"ItemMap" in _items}); + showCompass (AGM_isCompassEnabled && {"ItemCompass" in _items}); + showWatch (AGM_isWatchEnabled && {"ItemWatch" in _items}); + //showRadio (AGM_isRadioEnabled && {"ItemRadio" in _items}); + showGPS (AGM_isGPSEnabled && {"ItemGPS" in _items || {cameraOn == getConnectedUAV AGM_player}}); //If player is activly controling a UAV, showGPS controls showing the map (m key) + }] call BIS_fnc_addStackedEventHandler; +}; diff --git a/addons/core/scripts/closeMenu.sqf b/addons/core/scripts/closeMenu.sqf new file mode 100644 index 0000000000..d2d62d018d --- /dev/null +++ b/addons/core/scripts/closeMenu.sqf @@ -0,0 +1,4 @@ +// by commy2 + +closeDialog 0; +[localize "STR_GVAR(ProfileNotSaved)"] call GVAR(fnc_displayTextStructured); diff --git a/addons/core/scripts/editKey.sqf b/addons/core/scripts/editKey.sqf new file mode 100644 index 0000000000..43d4aa986d --- /dev/null +++ b/addons/core/scripts/editKey.sqf @@ -0,0 +1,112 @@ +// by commy2 + +#define GRAY [0.25, 0.25, 0.25, 1] +#define WHITE [1, 1, 1, 1] +#define OFFSET_1 100 +#define OFFSET_2 200 + +waitUntil {isNil "GVAR(keyNewTemp)"}; +GVAR(keyNewTemp) = []; + +GVAR(keySet) = 0; +_index = count GVAR(keyNew); + +disableSerialization; +_dlgMenuDialog = uiNamespace getVariable "GVAR(MenuDialog)"; +_ctrlMenuDialog = _dlgMenuDialog displayCtrl (OFFSET_2 + (_this select 0)); +_action = GVAR(keyNames) select (_this select 0); +_displayName = getText (configFile >> "GVAR(Default_Keys)" >> _action >> "displayName"); + +_keyCode = profileNamespace getVariable [format ["AGM_Key_%1", _action], 0];// +for "_index1" from 0 to (count GVAR(keyNew) - 1) do { + if (_action == (GVAR(keyNew) select _index1) select 0) then { + _keyCode = (GVAR(keyNew) select _index1) select 1; + } +}; +(_dlgMenuDialog displayCtrl 24) ctrlSetText ([_keyCode] call GVAR(fnc_revertKeyCodeLocalized));//""; +/*(_dlgMenuDialog displayCtrl 21) ctrlSetTextColor GRAY; +(_dlgMenuDialog displayCtrl 22) ctrlSetTextColor GRAY; +(_dlgMenuDialog displayCtrl 23) ctrlSetTextColor GRAY;*/ + +for "_index1" from 20 to 32 do {(_dlgMenuDialog displayCtrl _index1) ctrlShow true}; +for "_index1" from 10 to 13 do {(_dlgMenuDialog displayCtrl _index1) ctrlEnable false}; + +(_dlgMenuDialog displayCtrl 30) ctrlSetText _displayName; + +GVAR(keysetDefault) = compile format [ + "_configFile = configFile >> 'GVAR(Default_Keys)' >> '%1'; + _key = getNumber (_configFile >> 'Key'); + _shft = getNumber (_configFile >> 'Shift') == 1; + _ctrl = getNumber (_configFile >> 'Control') == 1; + _alt = getNumber (_configFile >> 'Alt') == 1; + + _keyCode = [_key, _shft, _ctrl, _alt] call GVAR(fnc_convertKeyCode); + + GVAR(keyNewTemp) = [_key, [_shft, _ctrl, _alt], _keyCode];", + _action +]; + +_description = ctrlText _ctrlMenuDialog; +//_ctrlMenuDialog ctrlSetText ".."; + +_ehid_keydown = _dlgMenuDialog displayAddEventHandler ["KeyDown", "_this call GVAR(keyInput)"]; +_ehid_keyup = _dlgMenuDialog displayAddEventHandler ["KeyUp", "_this call GVAR(keyRelease)"]; + +waitUntil { + if (count GVAR(keyNewTemp) > 0) then { + _key = GVAR(keyNewTemp) select 0; + _keyModifier = GVAR(keyNewTemp) select 1; + //_keyCode = round (10 * ((GVAR(keyNewTemp) select 2) % 1)); + _keyCode = GVAR(keyNewTemp) select 2; + + (_dlgMenuDialog displayCtrl 24) ctrlSetText ([_keyCode] call GVAR(fnc_revertKeyCodeLocalized)); + + /*_key = toString (toArray (keyName _key) - [34]); + + switch (_keyCode) do { + case 8 : { + (_dlgMenuDialog displayCtrl 24) ctrlSetText format [localize "STR_GVAR(DoubleTapKey)", _key]; + + (_dlgMenuDialog displayCtrl 21) ctrlSetTextColor GRAY; + (_dlgMenuDialog displayCtrl 22) ctrlSetTextColor GRAY; + (_dlgMenuDialog displayCtrl 23) ctrlSetTextColor GRAY; + }; + case 9 : { + (_dlgMenuDialog displayCtrl 24) ctrlSetText format [localize "STR_GVAR(HoldKey)", _key]; + + (_dlgMenuDialog displayCtrl 21) ctrlSetTextColor GRAY; + (_dlgMenuDialog displayCtrl 22) ctrlSetTextColor GRAY; + (_dlgMenuDialog displayCtrl 23) ctrlSetTextColor GRAY; + }; + default { + (_dlgMenuDialog displayCtrl 24) ctrlSetText _key; + + (_dlgMenuDialog displayCtrl 21) ctrlSetTextColor ([GRAY, WHITE] select (_keyModifier select 0)); + (_dlgMenuDialog displayCtrl 22) ctrlSetTextColor ([GRAY, WHITE] select (_keyModifier select 1)); + (_dlgMenuDialog displayCtrl 23) ctrlSetTextColor ([GRAY, WHITE] select (_keyModifier select 2)); + }; + };*/ + }; + GVAR(keySet) != 0 || + {!dialog} +}; + +for "_index1" from 10 to 13 do {(_dlgMenuDialog displayCtrl _index1) ctrlEnable true}; +for "_index1" from 20 to 32 do {(_dlgMenuDialog displayCtrl _index1) ctrlShow false}; + +_dlgMenuDialog displayRemoveEventHandler ["KeyDown", _ehid_keydown]; +_dlgMenuDialog displayRemoveEventHandler ["KeyUp", _ehid_keyup]; + +if (GVAR(keySet) == 1 && {count GVAR(keyNewTemp) > 0}) then { + _keyCode = GVAR(keyNewTemp) select 2; + _description = [_keyCode] call GVAR(fnc_revertKeyCodeLocalized); + _ctrlMenuDialog ctrlSetText _description; + + GVAR(keyNew) set [_index, [_action, _keyCode]]; +} else { + _ctrlMenuDialog ctrlSetText _description; +}; + +GVAR(keySet) = -1; +GVAR(keyNewTemp) = nil; +GVAR(keysetDefault) = nil; diff --git a/addons/core/scripts/keyInput.sqf b/addons/core/scripts/keyInput.sqf new file mode 100644 index 0000000000..90cece0f90 --- /dev/null +++ b/addons/core/scripts/keyInput.sqf @@ -0,0 +1,25 @@ +// by commy2 + +#define FORBIDDEN_KEYS [42, 54, 29, 157, 56, 184, 0, 183, 197, 1] + +_key = _this select 1; +_shft = _this select 2; +_ctrl = _this select 3; +_alt =_this select 4; + +if (_key in FORBIDDEN_KEYS) exitWith {true}; + +_keyCode = [_key, _shft, _ctrl, _alt] call GVAR(fnc_convertKeyCode); + +_keyIndex = floor _keyCode; +_time = time; + +if (_time < (GVAR(keyTimes) select _keyIndex) + 0.5 && {_keyIndex == _keyCode}) then {_keyCode = _keyIndex + 0.8}; +if (GVAR(keyStates) select _keyIndex > 1) exitWith {true}; +if (GVAR(keyStates) select _keyIndex > 0 && {_keyIndex == _keyCode}) then {_keyCode = _keyIndex + 0.9}; + +GVAR(keyStates) set [_keyIndex, (GVAR(keyStates) select _keyIndex) + 1]; +GVAR(keyTimes) set [_keyIndex, _time]; + +GVAR(keyNewTemp) = [_key, [_shft, _ctrl, _alt], _keyCode]; +true diff --git a/addons/core/scripts/keyRelease.sqf b/addons/core/scripts/keyRelease.sqf new file mode 100644 index 0000000000..d9277a20f4 --- /dev/null +++ b/addons/core/scripts/keyRelease.sqf @@ -0,0 +1,5 @@ +// by commy2 + +_keyIndex = _this select 1; + +GVAR(keyStates) set [_keyIndex, 0]; diff --git a/addons/core/scripts/nextKeys.sqf b/addons/core/scripts/nextKeys.sqf new file mode 100644 index 0000000000..6f5af7977c --- /dev/null +++ b/addons/core/scripts/nextKeys.sqf @@ -0,0 +1,122 @@ +// by commy2 + +#define OFFSET_1 100 +#define OFFSET_2 200 +#define OFFSET_3 300 +#define OFFSET_4 400 +#define OFFSET_5 500 + +_config = configFile >> "GVAR(Default_Keys)"; +_count = count _config; + +_countPages = ceil (_count / 20) + 1; + +GVAR(MenuPage) = GVAR(MenuPage) + ([-1, 1] select _this); + +if (GVAR(MenuPage) == - 1) then {GVAR(MenuPage) = _countPages - 1}; +if (GVAR(MenuPage) > _countPages - 1) then {GVAR(MenuPage) = 0}; + +disableSerialization; +_dlgMenuDialog = uiNamespace getVariable "GVAR(MenuDialog)"; + +(_dlgMenuDialog displayCtrl 14) ctrlSetText format ["%1/%2", GVAR(MenuPage) + 1, _countPages]; + +if (GVAR(MenuPage) == _countPages - 1) then { + for "_index" from OFFSET_1 to (OFFSET_1 + 19) do {(_dlgMenuDialog displayCtrl _index) ctrlShow false}; + for "_index" from OFFSET_2 to (OFFSET_2 + 19) do {(_dlgMenuDialog displayCtrl _index) ctrlShow false}; + + _config = configFile >> "GVAR(Options)"; + _count = count _config; + + _offset = 0; + + for "_index" from 0 to (_count - 1 min 19) do { + _configFile = _config select _index + _offset; + _configName = configName _configFile; + _displayName = getText (_configFile >> "displayName"); + _state = profileNamespace getVariable format ["AGM_%1", _configName]; + + _control1 = _dlgMenuDialog displayCtrl (OFFSET_3 + _index); + _control2 = _dlgMenuDialog displayCtrl (OFFSET_4 + _index); + _control3 = _dlgMenuDialog displayCtrl (OFFSET_5 + _index); + + _control1 ctrlSetText format ["\AGM_Core\UI\box_%1checked_ca.paa", ["un", ""] select _state]; + _control2 ctrlSetText _displayName; + + _control1 ctrlShow true; + _control2 ctrlShow true; + _control3 ctrlShow true; + + GVAR(OptionNames) set [_index, _configName]; + }; + + for "_index" from _count to (_count + 19) do { + _control1 = _dlgMenuDialog displayCtrl (OFFSET_3 + _index); + _control2 = _dlgMenuDialog displayCtrl (OFFSET_4 + _index); + _control3 = _dlgMenuDialog displayCtrl (OFFSET_5 + _index); + + _control1 ctrlShow false; + _control2 ctrlShow false; + _control3 ctrlShow false; + }; + +} else { + for "_index" from OFFSET_3 to (OFFSET_3 + 19) do {(_dlgMenuDialog displayCtrl _index) ctrlShow false}; + for "_index" from OFFSET_4 to (OFFSET_4 + 19) do {(_dlgMenuDialog displayCtrl _index) ctrlShow false}; + for "_index" from OFFSET_5 to (OFFSET_5 + 19) do {(_dlgMenuDialog displayCtrl _index) ctrlShow false}; + + _offset = 20 * GVAR(MenuPage); + if (GVAR(MenuPage) == _countPages - 2) then { + _count = (_count - 1) % 20 + 1; + }; + + _updateNames = []; + _updateKeys = []; + { + _keyName = _x select 0; + _keyInput = _x select 1; + + _index = _updateNames find _keyName; + if (_index == -1) then {_index = count _updateKeys}; + + _updateNames set [_index, _keyName]; + _updateKeys set [_index, _keyInput]; + } forEach GVAR(keyNew); + + for "_index" from 0 to (_count - 1 min 19) do { + _configFile = _config select _index + _offset; + _keyName = configName _configFile; + _displayName = getText (_configFile >> "displayName"); + _isDisabled = getNumber (_configFile >> "disabled") == 1; + + _indexUpdate = _updateNames find _keyName; + _keyCode = if (_indexUpdate == -1) then { + profileNamespace getVariable format ["AGM_Key_%1", _keyName]; + } else { + _updateKeys select _indexUpdate; + }; + + _description = [_keyCode] call GVAR(fnc_revertKeyCodeLocalized); + + _control1 = _dlgMenuDialog displayCtrl (OFFSET_1 + _index); + _control2 = _dlgMenuDialog displayCtrl (OFFSET_2 + _index); + + _control1 ctrlSetText _displayName; + _control2 ctrlSetText _description; + + _control1 ctrlShow true; + _control2 ctrlShow true; + + GVAR(keyNames) set [_index, _keyName]; + }; + + for "_index" from _count to (_count + 19) do { + _control1 = _dlgMenuDialog displayCtrl (OFFSET_1 + _index); + _control2 = _dlgMenuDialog displayCtrl (OFFSET_2 + _index); + + _control1 ctrlShow false; + _control2 ctrlShow false; + }; + + GVAR(keySet) = -1; +}; diff --git a/addons/core/scripts/openMenu.sqf b/addons/core/scripts/openMenu.sqf new file mode 100644 index 0000000000..672f92abd1 --- /dev/null +++ b/addons/core/scripts/openMenu.sqf @@ -0,0 +1,99 @@ +// by commy2 + +#define OFFSET_1 100 +#define OFFSET_2 200 + +closeDialog 0; +createDialog "GVAR(OptionsMenu_Dialog)"; + +GVAR(keyNew) = []; +GVAR(keySet) = -1; +GVAR(keySave) = 0; +GVAR(keyNames) = []; +GVAR(MenuPage) = 0; +GVAR(OptionNames) = []; +GVAR(OptionNamesNew) = []; +GVAR(OptionStatesNew) = []; + +disableSerialization; +_dlgMenuDialog = uiNamespace getVariable "GVAR(MenuDialog)"; + +_ehid_keydown = _dlgMenuDialog displayAddEventHandler ["KeyDown", "_this select 1 > 1"]; +_ehid_keyup = _dlgMenuDialog displayAddEventHandler ["KeyUp", "_this select 1 > 1"]; + +_config = configFile >> "GVAR(Default_Keys)"; +_count = count _config; + +_countPages = ceil (_count / 20) + 1; +(_dlgMenuDialog displayCtrl 14) ctrlSetText format ["%1/%2", GVAR(MenuPage) + 1, _countPages]; + +for "_index" from 0 to (_count - 1 min 19) do { + _configFile = _config select _index; + _keyName = configName _configFile; + _displayName = getText (_configFile >> "displayName"); + _isDisabled = getNumber (_configFile >> "disabled") == 1; + + _keyCode = profileNamespace getVariable format ["AGM_Key_%1", _keyName]; + _description = [_keyCode] call GVAR(fnc_revertKeyCodeLocalized); + + _control1 = _dlgMenuDialog displayCtrl (OFFSET_1 + _index); + _control2 = _dlgMenuDialog displayCtrl (OFFSET_2 + _index); + + _control1 ctrlSetText _displayName; + _control2 ctrlSetText _description; + + _control1 ctrlShow true; + _control2 ctrlShow true; + + GVAR(keyNames) set [_index, _keyName]; +}; + +for "_index" from _count to 19 do { + _control1 = _dlgMenuDialog displayCtrl (OFFSET_1 + _index); + _control2 = _dlgMenuDialog displayCtrl (OFFSET_2 + _index); + + _control1 ctrlShow false; + _control2 ctrlShow false; +}; + +waitUntil {!dialog}; + +_dlgMenuDialog displayRemoveEventHandler ["KeyDown", _ehid_keydown]; +_dlgMenuDialog displayRemoveEventHandler ["KeyUp", _ehid_keyup]; + +if (GVAR(keySave) == 1) then { + _count0 = count GVAR(keyNew); + + for "_index" from 0 to (_count0 - 1) do { + _key = GVAR(keyNew) select _index; + _keyName = _key select 0; + _keyCode = _key select 1; + + profileNamespace setVariable [format ["AGM_Key_%1", _keyName], _keyCode]; + }; + + _count1 = count GVAR(OptionNamesNew); + + for "_index" from 0 to (_count1 - 1) do { + _name = GVAR(OptionNamesNew) select _index; + _state = GVAR(OptionStatesNew) select _index; + + profileNamespace setVariable [_name, _state]; + }; + + if (_count0 > 0 || {_count1 > 0}) then { + saveProfileNamespace; + [localize "STR_GVAR(ProfileSaved)"] call GVAR(fnc_displayTextStructured); + } else { + [localize "STR_GVAR(ProfileNotSaved)"] call GVAR(fnc_displayTextStructured); + }; +} else { + [localize "STR_GVAR(ProfileNotSaved)"] call GVAR(fnc_displayTextStructured); +}; + +GVAR(keyNewTemp) = nil; +GVAR(keyNames) = nil; +GVAR(MenuPage) = nil; +GVAR(OptionNames) = nil; +GVAR(OptionNamesNew) = nil; +GVAR(OptionStatesNew) = nil; diff --git a/addons/core/scripts/readParameters.sqf b/addons/core/scripts/readParameters.sqf new file mode 100644 index 0000000000..e99e66906e --- /dev/null +++ b/addons/core/scripts/readParameters.sqf @@ -0,0 +1,64 @@ +// by CAA-Picard + +// Read AGM_Parameters from config and set them on the mission namespace +_config = configFile >> "AGM_Parameters"; +_count = count _config; +for "_index" from 0 to (_count - 1) do { + _x = _config select _index; + + _name = configName _x; + _value = _x call bis_fnc_getcfgdata; + [_name, _value] call GVAR(fnc_setParameter); +}; + +_config = configFile >> "AGM_Parameters_Numeric"; +_count = count _config; +for "_index" from 0 to (_count - 1) do { + _x = _config select _index; + + _name = configName _x; + _value = _x call bis_fnc_getcfgdata; + [_name, _value] call GVAR(fnc_setParameter); +}; + +_config = configFile >> "AGM_Parameters_Boolean"; +_count = count _config; +for "_index" from 0 to (_count - 1) do { + _x = _config select _index; + + _name = configName _x; + _value = _x call bis_fnc_getcfgdata; + [_name, _value > 0] call GVAR(fnc_setParameter); +}; + + +// Read AGM_Parameters from mission and set them on the mission namespace, replacing defaults if necesary +_config = missionConfigFile >> "AGM_Parameters"; +_count = count _config; +for "_index" from 0 to (_count - 1) do { + _x = _config select _index; + + _name = configName _x; + _value = _x call bis_fnc_getcfgdata; + [_name, _value] call GVAR(fnc_setParameter); +}; + +_config = missionConfigFile >> "AGM_Parameters_Numeric"; +_count = count _config; +for "_index" from 0 to (_count - 1) do { + _x = _config select _index; + + _name = configName _x; + _value = _x call bis_fnc_getcfgdata; + [_name, _value] call GVAR(fnc_setParameter); +}; + +_config = missionConfigFile >> "AGM_Parameters_Boolean"; +_count = count _config; +for "_index" from 0 to (_count - 1) do { + _x = _config select _index; + + _name = configName _x; + _value = _x call bis_fnc_getcfgdata; + [_name, _value > 0] call GVAR(fnc_setParameter); +}; diff --git a/addons/core/scripts/toggleState.sqf b/addons/core/scripts/toggleState.sqf new file mode 100644 index 0000000000..2ea670d640 --- /dev/null +++ b/addons/core/scripts/toggleState.sqf @@ -0,0 +1,17 @@ +// by commy2 + +_index = _this select 0; + +_name = format ["AGM_%1", GVAR(OptionNames) select _index]; + +_index1 = GVAR(OptionNamesNew) find _name; +_state = if (_index1 == -1) then {_index1 = count GVAR(OptionNamesNew); !(profileNamespace getVariable _name)} else {!(GVAR(OptionStatesNew) select _index1)}; + +disableSerialization; +_dlgMenuDialog = uiNamespace getVariable "GVAR(MenuDialog)"; + +_control = _dlgMenuDialog displayCtrl (300 + _index); +_control ctrlSetText format ["\AGM_Core\UI\box_%1checked_ca.paa", ["un", ""] select _state]; + +GVAR(OptionNamesNew) set [_index1, _name]; +GVAR(OptionStatesNew) set [_index1, _state]; diff --git a/addons/core/sounds/AGM_click.wav b/addons/core/sounds/AGM_click.wav new file mode 100644 index 0000000000..1581272895 Binary files /dev/null and b/addons/core/sounds/AGM_click.wav differ diff --git a/addons/core/stringtable.xml b/addons/core/stringtable.xml new file mode 100644 index 0000000000..e60529bde0 --- /dev/null +++ b/addons/core/stringtable.xml @@ -0,0 +1,467 @@ + + + + + + AGM-Team + AGM-Team + AGM-Team + AGM-Team + AGM-Team + AGM-Team + Команда AGM + AGM-Team + AGM-Team + AGM-Team + + + Save + Speichern + Guardar + Zapisz + Uložit + Sauvegarder + Сохранить + Salvar + Mentés + Salva + + + Cancel + Abbrechen + Cancelar + Anuluj + Zrušit + Annuler + Отмена + Cancelar + Mégse + Annulla + + + AGM Options + AGM Optionen + Opciones AGM + Opcje AGM + AGM Nastavení + AGM Options + AGM Настройки + Opções do AGM + AGM Opciók + Opzioni AGM + + + Shift + Umschalt + Shift + Shift + Shift + Shift + Shift + Shift + Shift + Shift + + + Ctrl + Strg + Ctrl + Ctrl + Ctrl + Ctrl + Ctrl + Ctrl + Ctrl + Ctrl + + + Alt + Alt + Alt + Alt + Alt + Alt + Alt + Alt + Alt + Alt + + + Shift right + Umschalt rechts + Shift derecho + Prawy Shift + Pravý Shift + Shift Droite + Правый Shift + Shift da Direita + Jobb Shift + Shift destro + + + Ctrl right + Strg rechts + Ctrl derecho + Prawy Ctrl + Pravý Ctrl + Ctrl Droite + Правый Ctrl + Ctrl da Direita + Jobb Ctrl + Ctrl destro + + + Alt right + Alt Gr + Alt derecho + Prawy Alt + Pravý Alt + Alt Droite + Правый Alt + Alt da Direita + Alt Gr + Alt Gr + + + Default + Standard + Por defecto + Domyślne + Výchozí + Défaut + По умолчанию + Padrão + Alapértelmezett + Standard + + + None + Keiner + Ninguna + Brak + Žádný + Aucun + Не назначено + Nenhuma + Semmi + Non assegnato + + + 2x %1 + 2x %1 + 2x %1 + 2x %1 + 2x %1 + 2x %1 + 2x %1 + 2x %1 + 2x %1 + 2x %1 + + + Hold %1 + %1 halten + Mantener %1 + Przytrzymać %1 + Držet %1 + Tenir %1 + Удерживая %1 + Segurar %1 + %1 Nyomvatartása + Tieni premuto %1 + + + Profile saved + Profil gespeichert + Perfil guardado + Profil zapisany + Profil uložen + Profil sauvegardé + Профиль сохранен + Perfil salvo + Profil elmentve + Profilo salvato + + + Profile not saved + Profil nicht gespeichert + Perfil no guardado + Profil niezapisany + Profil neuložen + Profil non sauvegardé + Профиль не сохранен + Perfil não salvo + A profil nincs elmentve + Profilo non salvato + + + + N + N + N + N + S + N + С + N + É + N + + + NNE + NNO + NNE + NNE + SSV + NNE + ССВ + NNE + ÉÉK + NNE + + + NE + NO + NE + NE + SV + NE + СВ + NE + ÉK + NE + + + ENE + ONO + ENE + ENE + VSV + ENE + ВСВ + LNE + KÉK + ENE + + + E + O + E + E + V + E + В + L + K + E + + + ESE + OSO + ESE + ESE + VJV + ESE + ВЮВ + LSE + KDK + ESE + + + SE + SO + SE + SE + JV + SE + ЮВ + SE + DK + SE + + + SSE + SSO + SSE + SSE + JJV + SSE + ЮЮВ + SSE + DDK + SSE + + + S + S + S + S + J + S + Ю + S + D + S + + + SSW + SSW + SSO + SSW + JJZ + SSO + ЮЮЗ + SSO + DDNy + SSO + + + SW + SW + SO + SW + JZ + SO + ЮЗ + SO + DNy + SO + + + WSW + WSW + OSO + WSW + ZJZ + OSO + ЗЮЗ + OSO + NyDNy + OSO + + + W + W + O + W + Z + O + З + O + Ny + O + + + WNW + WNW + ONO + WNW + ZSZ + ONO + ЗСЗ + ONO + NyÉNy + ONO + + + NW + NW + NO + NW + SZ + NO + СЗ + NO + ÉNy + NO + + + NNW + NNW + NNO + NNW + SSZ + NNO + ССЗ + NNO + ÉÉNy + NNO + + + Action cancelled. + Aktion abgebrochen. + Acción cancelada. + Przerwano czynność + Akce přerušena + Action annulée. + Действие отменено. + Ação cancelada. + Művelet megszakítva. + Azione cancellata. + + + < Prev + < Zurück + < Anterior. + < Poprzedni + < Předchozí + < Préc + < Пред. + < Anterior + < Előző + < Prec + + + Next > + Weiter > + Siguiente > + Następny > + Další > + Suivant > + След. > + Próximo > + Következő > + Prossimo > + + + [AGM] Miscellaneous Items + [AGM] Verschiedenes + [AGM] Objetos varios + [AGM] Różne przedmioty + [AGM] Ostatní předměty + [AGM] Objets divers + [AGM] Различные предметы + [AGM] Itens diversos + [AGM] Egyéb tárgyak + [AGM] Oggetti vari + + + Disable Command Menu + Befehlsmenü ausschalten + Desactivar menú de mando + Wyłącz menu dowodzenia + Vypnout velící menu + Désactiver Menu Commande + Выключить командное меню + Parancsnoki menü kikapcsolása + + + Unknown + Unbekannt + Desconocido + Nieznany + Neznámý + Неизвестно + Ismeretlen + + + No Voice + Keine Stimme + Sin voz + Brak głosu + Žádný hlas + Без голоса + Nincs hang + + + \ No newline at end of file diff --git a/addons/main/$PBOPREFIX$ b/addons/main/$PBOPREFIX$ new file mode 100644 index 0000000000..f19bbb9bbf --- /dev/null +++ b/addons/main/$PBOPREFIX$ @@ -0,0 +1 @@ +z\ace\addons\main \ No newline at end of file diff --git a/addons/main/About.hpp b/addons/main/About.hpp new file mode 100644 index 0000000000..814fab7454 --- /dev/null +++ b/addons/main/About.hpp @@ -0,0 +1,35 @@ +#include "script_dialog_defines.hpp" + +class ACE_ABOUT_DLG { + idd = 114137; + movingEnable = 0; + onLoad = "with uiNameSpace do { ACE_ABOUT_DLG = _this select 0; };"; + onKeyDown = "if((_this select 1) == 1) then {ACE_ABOUT_STP = true;};"; + class controlsBackground { + class Contents : RscStructuredText { + idc = 1141371; + colorBackground[] = { 0, 0, 0, 0 }; + __SX(0.45); + __SY(0.25); + __SW(0.45); + __SH(0.6); + size = "0.025 * SafeZoneH"; + class Attributes { + font = "TahomaB"; + color = "#C8C8C8"; + align = "left"; + valign = "middle"; + shadow = true; + shadowColor = "#191970"; + size = "1"; + }; + }; + class ACE_ABOUT_NEXT : ACE_ABOUT_CTRL { //dummy visible + idc = 1141372; + __SX(0.065); + __SW(0.03); + text = ""; + action = ""; + }; + }; //controlsBackground +}; diff --git a/addons/main/CfgModuleCategories.hpp b/addons/main/CfgModuleCategories.hpp new file mode 100644 index 0000000000..ad8e18f15a --- /dev/null +++ b/addons/main/CfgModuleCategories.hpp @@ -0,0 +1,8 @@ +class CfgFactionClasses { + class NO_CATEGORY; + class ACE: NO_CATEGORY { + displayName = "ACE"; + priority = 2; + side = 7; + }; +}; \ No newline at end of file diff --git a/addons/main/about.sqf b/addons/main/about.sqf new file mode 100644 index 0000000000..5d500c60d5 --- /dev/null +++ b/addons/main/about.sqf @@ -0,0 +1,210 @@ +#include "script_component.hpp" +#include "\z\ace\addons\main\script_common.hpp" + +if (!isNil "ACE_ABOUT_RUN") exitWith {ACE_ABOUT_RUN = false;}; +ACE_ABOUT_RUN = true; + +disableSerialization; + +PARAMS_2(_menu,_data); + +private ["_pcredits", "_pkeynam", "_shift", "_ctrl", "_alt", "_keys", "_key", "_keystrg", "_mod", "_knaml", "_knam", "_k", "_pkeys", "_pary", "_tpages", "_cEvents", "_i", "_cSys", "_tSys", "_aSys", "_tS", "_j", "_c", "_tC", "_keyn", "_fadet", "_page1", "_color", "_bcolor", "_newpages", "_pstart", "_pcount", "_pnext", "_display", "_control", "_pnames", "_pnam", "_page", "_pages", "_run", "_disp", "_next", "_input", "_nesc", "_unset", "_p", "_text", "_curPage", "_time", "_faded"]; + +_pcredits = [ +"", +"Advanced Combat Environment 2", +"http://dev-heaven.net/projects/ace-mod2", +"", +__cr_managers, +"", +__cr_devs, +"", +__cr_testers, +"", +"For a full list of acknowledgements, please visit our Wiki:", +"http://ace.dev-heaven.net" +]; + +_pkeynam = { //local function + _shift = if (_shift > 0) then {42} else {0}; + _ctrl = if (_ctrl > 0) then {56} else {0}; + _alt = if (_alt > 0) then {29} else {0}; + _keys = [_shift,_ctrl,_alt,_key]; + _keystrg = "^"; + { + _mod = _x in [42,56,29]; + _knaml = call compile format["format['%2',%1]",(keyName _x),"%1"]; + _knaml = [_knaml, " "] call CBA_fnc_split; + _knam = "^"; + {_k = _x; if (!_mod || (_k != (localize "STR_ACE_KN_LEFT") && _k != (localize "STR_ACE_KN_RIGHT"))) then {_knam = _knam + " " + _k}} forEach _knaml; + _knam = [_knam, "^ ", ""] call CBA_fnc_replace; + _keystrg = _keystrg + "-" + _knam; + } forEach _keys; + _keystrg = [_keystrg, "^ ", ""] call CBA_fnc_replace; + _keystrg = [_keystrg, "^-", ""] call CBA_fnc_replace; + _keystrg = [_keystrg, "^", "None"] call CBA_fnc_replace; + _keystrg +}; +_pkeys = { + _pary = []; + _tpages = []; + _cEvents = configFile/"CfgSettings"/"CBA"/"events"; + for "_i" from 0 to (count _cEvents) - 1 do { + _cSys = _cEvents select _i; + _tSys = configName _cSys; + if (isNumber ((_cSys select 0)/"key")) then { + //format system name + _aSys = [_tSys, "_"] call CBA_fnc_split; + _tS = "^"; + {if (_x != "ace" && _x != "sys") then {_tS = _tS + " " + _x}} forEach _aSys; + _tS = [_tS, "^ ", ""] call CBA_fnc_replace; + _tS = format["%1:",_tS]; + PUSH(_pary,_tS); + for "_j" from 0 to (count _cSys) - 1 do { + _c = _cSys select _j; + _tC = configName _c; + _tC = [_tC, "_", " "] call CBA_fnc_replace; + //key + _key = getNumber (_c/"key"); + _shift = getNumber (_c/"shift"); + _ctrl = getNumber (_c/"ctrl"); + _alt = getNumber (_c/"alt"); + _keyn = [_key,_shift,_ctrl,_alt] call _pkeynam; + _tC = format[" %1: %2",_tC,_keyn]; + PUSH(_pary,_tC); + }; + }; + if (count _pary > 20) then { //split full page + PUSH(_tpages,_pary); + _pary = []; + }; + }; + if (count _pary > 0) then { //partial page + PUSH(_tpages,_pary); + _pary = []; + }; + _tpages +}; + +//pages (make sure each will fit within 24 lines, word wrap is on) +switch(_menu) do { + case "MAIN": { //note: not all scripting commands available on main menu (not compiled yet?) + _fadet = 13; + _page1 = _pcredits; + }; + case "SING": { + _fadet = 20; //fade time + _color = [1,1,1,1]; + //_bcolor = [0,0,0,0.3]; + _page1 = _pcredits; + _newpages = [] call _pkeys; + _pstart = 2; + _pcount = count _newpages; + _pnext = _pstart + _pcount; + }; + case "MULT": { + _fadet = 20; + _color = [1,1,1,1]; + //_bcolor = [0,0,0,0.3]; + _page1 = _pcredits; + _newpages = [] call _pkeys; + _pstart = 2; + _pcount = count _newpages; + _pnext = _pstart + _pcount; + }; + default {}; +}; + +//main menu display +if (typeName(_data select 0) == "DISPLAY") then { + _display = _data select 0; +}; + +if (typeName(_data select 0) == "CONTROL") then { + _control = _data select 0; + _display = ctrlParent _control; +}; + +//dynamic pages +_pnames = []; +for "_x" from _pstart to _pnext - 1 do { + _pnam = format ["_page%1",_x]; + PUSH(_pnames,_pnam); +}; +private _pnames; +for "_x" from 0 to _pcount - 1 do { + call compile format ["%1 = %2", _pnames select _x, _newpages select _x]; +}; + +//get num pages +_pages = 0; +_run = true; +while {_run} do { + INC(_pages); + if (isNil format ["_page%1", _pages]) exitWith {_pages = _pages - 1; _run = false}; +}; + +if (_pages > 0) then { + //Dialog + createDialog "ACE_ABOUT_DLG"; + _disp = uiNamespace getVariable "ACE_ABOUT_DLG"; + _ctrl = _disp displayCtrl 1141371; + _next = _disp displayCtrl 1141372; + + if (_pages > 1) then {_next ctrlSetText "Next"}; + + _ctrl ctrlSetFade 1; + _ctrl ctrlCommit 0; + _ctrl ctrlSetFade 0; + _ctrl ctrlCommit 3; + + ACE_ABOUT_INC = 0; + _input = { //local function + _nesc = isNil "ACE_ABOUT_STP"; + if (_pages == 1) then {ACE_ABOUT_INC = 0}; //ignore special control + _unset = (ACE_ABOUT_INC == 0) && ACE_ABOUT_RUN; + if (_unset && _nesc) then {false} else {_fadet = _fadet + 5; true}; + }; + + //by default cycle + for "_p" from 1 to _pages do { + _text = ""; + _page = call compile format["_page%1",_p]; + _curPage = _p; + { + _text = _text + _x + "
"; + _ctrl ctrlSetStructuredText parseText _text; + if (call _input) exitWith {_p = _pages}; + if (_x != "") then {uisleep 0.8}; + } forEach _page; + }; + + _run = true; + while {if (isNil "ACE_ABOUT_STP") then {_run} else {false}} do { + _ctrl ctrlSetFade 0; + _ctrl ctrlCommit 0; + if (!isNil "_color") then {_ctrl ctrlSetTextColor _color}; + if (!isNil "_bcolor") then {_ctrl ctrlSetBackgroundColor _bcolor}; + + _curPage = _curPage + ACE_ABOUT_INC; + if (_curPage > _pages) then {_curPage = 1}; + if (_curPage <= 0) then {_curPage = 1}; + ACE_ABOUT_INC = 0; + + if (!ACE_ABOUT_RUN) then {ACE_ABOUT_RUN = true}; + + _text = ""; + _page = call compile format ["_page%1",_curPage]; + {_text = _text + _x + "
"} forEach _page; + _ctrl ctrlSetStructuredText parseText _text; + + _ctrl ctrlSetFade 1; + _ctrl ctrlCommit _fadet; + + _time = time + _fadet + 2; + waitUntil{uisleep 1; _run = call _input; _faded = time > _time; (_run || _faded)}; + }; //while RUN +}; +ACE_ABOUT_STP = Nil; +ACE_ABOUT_RUN = Nil; +closeDialog 0; \ No newline at end of file diff --git a/addons/main/config.cpp b/addons/main/config.cpp new file mode 100644 index 0000000000..0bad03d89c --- /dev/null +++ b/addons/main/config.cpp @@ -0,0 +1,538 @@ +#include "script_component.hpp" +class CfgPatches { + class ADDON { + units[] = {}; + weapons[] = {}; + requiredVersion = REQUIRED_VERSION; + requiredAddons[] = { + "a3_air_f", + "a3_air_f_beta", + "a3_air_f_beta_heli_attack_01", + "a3_air_f_beta_heli_attack_02", + "a3_air_f_beta_heli_transport_01", + "a3_air_f_beta_heli_transport_02", + "a3_air_f_beta_parachute_01", + "a3_air_f_beta_parachute_02", + "a3_air_f_epb_heli_light_03", + "a3_air_f_epc_plane_cas_01", + "a3_air_f_epc_plane_cas_02", + "a3_air_f_epc_plane_fighter_03", + "a3_air_f_gamma_plane_fighter_03", + "a3_air_f_gamma_uav_01", + "a3_air_f_gamma_uav_02", + "a3_air_f_heli", + "a3_air_f_heli_heli_attack_01", + "a3_air_f_heli_heli_attack_02", + "a3_air_f_heli_heli_light_01", + "a3_air_f_heli_heli_light_02", + "a3_air_f_heli_heli_light_03", + "a3_air_f_heli_heli_transport_01", + "a3_air_f_heli_heli_transport_02", + "a3_air_f_heli_heli_transport_03", + "a3_air_f_heli_heli_transport_04", + "a3_air_f_heli_light_01", + "a3_air_f_heli_light_02", + "a3_animals_f", + "a3_animals_f_animconfig", + "a3_animals_f_chicken", + "a3_animals_f_dog", + "a3_animals_f_fishes", + "a3_animals_f_goat", + "a3_animals_f_kestrel", + "a3_animals_f_rabbit", + "a3_animals_f_seagull", + "a3_animals_f_sheep", + "a3_animals_f_snakes", + "a3_animals_f_turtle", + "a3_anims_f", + "a3_anims_f_config_sdr", + "a3_anims_f_epa", + "a3_anims_f_epc", + "a3_anims_f_heli", + "a3_anims_f_kart", + "a3_armor_f", + "a3_armor_f_amv", + "a3_armor_f_apc_wheeled_03", + "a3_armor_f_beta", + "a3_armor_f_beta_apc_tracked_02", + "a3_armor_f_epb_apc_tracked_03", + "a3_armor_f_epb_mbt_03", + "a3_armor_f_epc_mbt_01", + "a3_armor_f_marid", + "a3_armor_f_panther", + "a3_armor_f_slammer", + "a3_armor_f_t100k", + "a3_baseconfig_f", + "a3_boat_f", + "a3_boat_f_beta_boat_armed_01", + "a3_boat_f_beta_boat_transport_01", + "a3_boat_f_boat_armed_01", + "a3_boat_f_boat_transport_01", + "a3_boat_f_civilian_boat", + "a3_boat_f_epc_submarine_01_f", + "a3_boat_f_gamma_boat_transport_01", + "a3_boat_f_heli_boat_armed_01", + "a3_boat_f_heli_sdv_01", + "a3_boat_f_sdv_01", + "a3_boat_f_trawler", + "a3_cargoposes_f", + "a3_cargoposes_f_heli", + "a3_characters_f", + "a3_characters_f_beta", + "a3_characters_f_blufor", + "a3_characters_f_bootcamp", + "a3_characters_f_bootcamp_common", + "a3_characters_f_civil", + "a3_characters_f_common", + "a3_characters_f_epa", + "a3_characters_f_epb", + "a3_characters_f_epb_heads", + "a3_characters_f_epc", + "a3_characters_f_gamma", + "a3_characters_f_heads", + "a3_characters_f_indep", + "a3_characters_f_kart", + "a3_characters_f_opfor", + "a3_characters_f_proxies", + "a3_data_f", + "a3_data_f_bootcamp", + "a3_data_f_curator", + "a3_data_f_curator_characters", + "a3_data_f_curator_eagle", + "a3_data_f_curator_intel", + "a3_data_f_curator_misc", + "a3_data_f_curator_respawn", + "a3_data_f_curator_virtual", + "a3_data_f_heli", + "a3_data_f_hook", + "a3_data_f_kart", + "a3_data_f_kart_particleeffects", + "a3_data_f_particleeffects", + "a3_dubbing_radio_f", + "a3_editor_f", + "a3_functions_f", + "a3_functions_f_bootcamp", + "a3_functions_f_curator", + "a3_functions_f_epa", + "a3_functions_f_epc", + "a3_functions_f_heli", + "a3_language_f", + "a3_language_f_beta", + "a3_language_f_bootcamp", + "a3_language_f_curator", + "a3_language_f_epa", + "a3_language_f_epb", + "a3_language_f_epc", + "a3_language_f_gamma", + "a3_language_f_heli", + "a3_language_f_kart", + "a3_languagemissions_f", + "a3_languagemissions_f_beta", + "a3_languagemissions_f_gamma", + "a3_languagemissions_f_kart", + "a3_map_altis", + "a3_map_altis_scenes", + "a3_map_data", + "a3_map_stratis", + "a3_map_stratis_scenes", + "a3_map_vr_scenes", + "a3_misc_f", + "a3_misc_f_helpers", + "a3_missions_f", + "a3_missions_f_beta", + "a3_missions_f_bootcamp", + "a3_missions_f_curator", + "a3_missions_f_epa", + "a3_missions_f_epb", + "a3_missions_f_epc", + "a3_missions_f_gamma", + "a3_missions_f_heli", + "a3_missions_f_kart", + "a3_modules_f", + "a3_modules_f_beta", + "a3_modules_f_beta_firingdrills", + "a3_modules_f_bootcamp", + "a3_modules_f_bootcamp_misc", + "a3_modules_f_curator", + "a3_modules_f_curator_animals", + "a3_modules_f_curator_cas", + "a3_modules_f_curator_chemlights", + "a3_modules_f_curator_curator", + "a3_modules_f_curator_effects", + "a3_modules_f_curator_environment", + "a3_modules_f_curator_flares", + "a3_modules_f_curator_intel", + "a3_modules_f_curator_lightning", + "a3_modules_f_curator_mines", + "a3_modules_f_curator_misc", + "a3_modules_f_curator_multiplayer", + "a3_modules_f_curator_objectives", + "a3_modules_f_curator_ordnance", + "a3_modules_f_curator_respawn", + "a3_modules_f_curator_smokeshells", + "a3_modules_f_dyno", + "a3_modules_f_effects", + "a3_modules_f_epb", + "a3_modules_f_epb_misc", + "a3_modules_f_events", + "a3_modules_f_groupmodifiers", + "a3_modules_f_hc", + "a3_modules_f_heli", + "a3_modules_f_heli_spawnai", + "a3_modules_f_intel", + "a3_modules_f_kart", + "a3_modules_f_kart_timetrials", + "a3_modules_f_livefeed", + "a3_modules_f_marta", + "a3_modules_f_misc", + "a3_modules_f_multiplayer", + "a3_modules_f_objectmodifiers", + "a3_modules_f_sites", + "a3_modules_f_skirmish", + "a3_modules_f_strategicmap", + "a3_modules_f_supports", + "a3_modules_f_uav", + "a3_music_f", + "a3_music_f_bootcamp", + "a3_music_f_epa", + "a3_music_f_epb", + "a3_music_f_epc", + "a3_music_f_heli", + "a3_plants_f_bush", + "a3_roads_f", + "a3_rocks_f", + "a3_signs_f", + "a3_signs_f_ad", + "a3_soft_f", + "a3_soft_f_beta_quadbike", + "a3_soft_f_bootcamp_offroad_01", + "a3_soft_f_bootcamp_quadbike", + "a3_soft_f_bootcamp_truck", + "a3_soft_f_car", + "a3_soft_f_crusher_ugv", + "a3_soft_f_epc_truck_03", + "a3_soft_f_gamma_hemtt", + "a3_soft_f_gamma_offroad", + "a3_soft_f_gamma_quadbike", + "a3_soft_f_gamma_truckheavy", + "a3_soft_f_heli_car", + "a3_soft_f_heli_crusher_ugv", + "a3_soft_f_heli_mrap_01", + "a3_soft_f_heli_mrap_02", + "a3_soft_f_heli_mrap_03", + "a3_soft_f_heli_quadbike", + "a3_soft_f_heli_suv", + "a3_soft_f_heli_truck", + "a3_soft_f_hemtt", + "a3_soft_f_kart_kart_01", + "a3_soft_f_mrap_01", + "a3_soft_f_mrap_02", + "a3_soft_f_mrap_03", + "a3_soft_f_offroad_01", + "a3_soft_f_quadbike", + "a3_soft_f_suv", + "a3_soft_f_truck", + "a3_soft_f_truckheavy", + "a3_sounds_f", + "a3_sounds_f_bootcamp", + "a3_sounds_f_epb", + "a3_sounds_f_epc", + "a3_static_f", + "a3_static_f_beta_mortar_01", + "a3_static_f_gamma", + "a3_static_f_gamma_aa", + "a3_static_f_gamma_at", + "a3_static_f_gamma_mortar_01", + "a3_static_f_mortar_01", + "a3_structures_f", + "a3_structures_f_bootcamp_civ_camping", + "a3_structures_f_bootcamp_civ_sportsgrounds", + "a3_structures_f_bootcamp_ind_cargo", + "a3_structures_f_bootcamp_items_electronics", + "a3_structures_f_bootcamp_items_food", + "a3_structures_f_bootcamp_items_sport", + "a3_structures_f_bootcamp_system", + "a3_structures_f_bootcamp_training", + "a3_structures_f_bootcamp_vr_blocks", + "a3_structures_f_bootcamp_vr_coverobjects", + "a3_structures_f_bootcamp_vr_helpers", + "a3_structures_f_bridges", + "a3_structures_f_civ", + "a3_structures_f_civ_accessories", + "a3_structures_f_civ_ancient", + "a3_structures_f_civ_belltowers", + "a3_structures_f_civ_calvaries", + "a3_structures_f_civ_camping", + "a3_structures_f_civ_chapels", + "a3_structures_f_civ_constructions", + "a3_structures_f_civ_dead", + "a3_structures_f_civ_garbage", + "a3_structures_f_civ_graffiti", + "a3_structures_f_civ_infoboards", + "a3_structures_f_civ_kiosks", + "a3_structures_f_civ_lamps", + "a3_structures_f_civ_market", + "a3_structures_f_civ_offices", + "a3_structures_f_civ_pavements", + "a3_structures_f_civ_playground", + "a3_structures_f_civ_sportsgrounds", + "a3_structures_f_civ_statues", + "a3_structures_f_civ_tourism", + "a3_structures_f_dominants", + "a3_structures_f_dominants_amphitheater", + "a3_structures_f_dominants_castle", + "a3_structures_f_dominants_church", + "a3_structures_f_dominants_hospital", + "a3_structures_f_dominants_lighthouse", + "a3_structures_f_dominants_wip", + "a3_structures_f_epa_civ_camping", + "a3_structures_f_epa_civ_constructions", + "a3_structures_f_epa_items_electronics", + "a3_structures_f_epa_items_food", + "a3_structures_f_epa_items_medical", + "a3_structures_f_epa_items_tools", + "a3_structures_f_epa_items_vessels", + "a3_structures_f_epa_mil_scrapyard", + "a3_structures_f_epa_walls", + "a3_structures_f_epb_civ_accessories", + "a3_structures_f_epb_civ_camping", + "a3_structures_f_epb_civ_dead", + "a3_structures_f_epb_civ_garbage", + "a3_structures_f_epb_civ_graffiti", + "a3_structures_f_epb_civ_playground", + "a3_structures_f_epb_furniture", + "a3_structures_f_epb_items_documents", + "a3_structures_f_epb_items_luggage", + "a3_structures_f_epb_items_military", + "a3_structures_f_epb_items_vessels", + "a3_structures_f_epb_naval_fishing", + "a3_structures_f_epc_civ_accessories", + "a3_structures_f_epc_civ_camping", + "a3_structures_f_epc_civ_garbage", + "a3_structures_f_epc_civ_infoboards", + "a3_structures_f_epc_civ_kiosks", + "a3_structures_f_epc_civ_playground", + "a3_structures_f_epc_civ_tourism", + "a3_structures_f_epc_dominants_ghosthotel", + "a3_structures_f_epc_dominants_stadium", + "a3_structures_f_epc_furniture", + "a3_structures_f_epc_items_documents", + "a3_structures_f_epc_items_electronics", + "a3_structures_f_epc_walls", + "a3_structures_f_furniture", + "a3_structures_f_heli_civ_accessories", + "a3_structures_f_heli_civ_constructions", + "a3_structures_f_heli_civ_garbage", + "a3_structures_f_heli_civ_market", + "a3_structures_f_heli_furniture", + "a3_structures_f_heli_ind_airport", + "a3_structures_f_heli_ind_cargo", + "a3_structures_f_heli_ind_machines", + "a3_structures_f_heli_items_airport", + "a3_structures_f_heli_items_electronics", + "a3_structures_f_heli_items_food", + "a3_structures_f_heli_items_luggage", + "a3_structures_f_heli_items_sport", + "a3_structures_f_heli_items_tools", + "a3_structures_f_heli_vr_helpers", + "a3_structures_f_households", + "a3_structures_f_households_addons", + "a3_structures_f_households_house_big01", + "a3_structures_f_households_house_big02", + "a3_structures_f_households_house_shop01", + "a3_structures_f_households_house_shop02", + "a3_structures_f_households_house_small01", + "a3_structures_f_households_house_small02", + "a3_structures_f_households_house_small03", + "a3_structures_f_households_slum", + "a3_structures_f_households_stone_big", + "a3_structures_f_households_stone_shed", + "a3_structures_f_households_stone_small", + "a3_structures_f_households_wip", + "a3_structures_f_ind", + "a3_structures_f_ind_airport", + "a3_structures_f_ind_cargo", + "a3_structures_f_ind_carservice", + "a3_structures_f_ind_concretemixingplant", + "a3_structures_f_ind_crane", + "a3_structures_f_ind_dieselpowerplant", + "a3_structures_f_ind_factory", + "a3_structures_f_ind_fuelstation", + "a3_structures_f_ind_fuelstation_small", + "a3_structures_f_ind_pipes", + "a3_structures_f_ind_powerlines", + "a3_structures_f_ind_reservoirtank", + "a3_structures_f_ind_shed", + "a3_structures_f_ind_solarpowerplant", + "a3_structures_f_ind_tank", + "a3_structures_f_ind_transmitter_tower", + "a3_structures_f_ind_wavepowerplant", + "a3_structures_f_ind_windmill", + "a3_structures_f_ind_windpowerplant", + "a3_structures_f_items", + "a3_structures_f_items_cans", + "a3_structures_f_items_documents", + "a3_structures_f_items_electronics", + "a3_structures_f_items_gadgets", + "a3_structures_f_items_luggage", + "a3_structures_f_items_medical", + "a3_structures_f_items_military", + "a3_structures_f_items_stationery", + "a3_structures_f_items_tools", + "a3_structures_f_items_valuables", + "a3_structures_f_items_vessels", + "a3_structures_f_kart_civ_sportsgrounds", + "a3_structures_f_kart_mil_flags", + "a3_structures_f_kart_signs_companies", + "a3_structures_f_mil", + "a3_structures_f_mil_bagbunker", + "a3_structures_f_mil_bagfence", + "a3_structures_f_mil_barracks", + "a3_structures_f_mil_bunker", + "a3_structures_f_mil_cargo", + "a3_structures_f_mil_flags", + "a3_structures_f_mil_fortification", + "a3_structures_f_mil_helipads", + "a3_structures_f_mil_offices", + "a3_structures_f_mil_radar", + "a3_structures_f_mil_scrapyard", + "a3_structures_f_mil_shelters", + "a3_structures_f_mil_tenthangar", + "a3_structures_f_naval", + "a3_structures_f_naval_buoys", + "a3_structures_f_naval_fishing", + "a3_structures_f_naval_piers", + "a3_structures_f_naval_rowboats", + "a3_structures_f_research", + "a3_structures_f_signs_companies", + "a3_structures_f_system", + "a3_structures_f_training", + "a3_structures_f_training_invisibletarget", + "a3_structures_f_walls", + "a3_structures_f_wrecks", + "a3_supplies_f_heli", + "a3_supplies_f_heli_bladders", + "a3_supplies_f_heli_cargonets", + "a3_supplies_f_heli_fuel", + "a3_supplies_f_heli_slingload", + "a3_uav_f_characters_f_gamma", + "a3_uav_f_weapons_f_gamma_ammoboxes", + "a3_ui_f", + "a3_ui_f_bootcamp", + "a3_ui_f_curator", + "a3_ui_f_heli", + "a3_ui_f_kart", + "a3_uifonts_f", + "a3_weapons_f", + "a3_weapons_f_aaf", + "a3_weapons_f_acc", + "a3_weapons_f_ammoboxes", + "a3_weapons_f_beta", + "a3_weapons_f_beta_acc", + "a3_weapons_f_beta_ammoboxes", + "a3_weapons_f_beta_ebr", + "a3_weapons_f_beta_rifles_khaybar", + "a3_weapons_f_beta_rifles_mx", + "a3_weapons_f_beta_rifles_trg20", + "a3_weapons_f_bootcamp", + "a3_weapons_f_bootcamp_ammoboxes", + "a3_weapons_f_bootcamp_longrangerifles_gm6", + "a3_weapons_f_bootcamp_longrangerifles_m320", + "a3_weapons_f_csat", + "a3_weapons_f_dummyweapons", + "a3_weapons_f_ebr", + "a3_weapons_f_epa", + "a3_weapons_f_epa_acc", + "a3_weapons_f_epa_ammoboxes", + "a3_weapons_f_epa_ebr", + "a3_weapons_f_epa_longrangerifles_dmr_01", + "a3_weapons_f_epa_longrangerifles_gm6", + "a3_weapons_f_epa_rifles_mx", + "a3_weapons_f_epb", + "a3_weapons_f_epb_acc", + "a3_weapons_f_epb_ammoboxes", + "a3_weapons_f_epb_longrangerifles_gm3", + "a3_weapons_f_epb_longrangerifles_m320", + "a3_weapons_f_epb_rifles_mx_black", + "a3_weapons_f_epc", + "a3_weapons_f_explosives", + "a3_weapons_f_fia", + "a3_weapons_f_gamma", + "a3_weapons_f_gamma_acc", + "a3_weapons_f_gamma_ammoboxes", + "a3_weapons_f_gamma_items", + "a3_weapons_f_headgear", + "a3_weapons_f_itemholders", + "a3_weapons_f_items", + "a3_weapons_f_kart", + "a3_weapons_f_kart_pistols_pistol_signal_f", + "a3_weapons_f_launchers_law", + "a3_weapons_f_launchers_nlaw", + "a3_weapons_f_launchers_titan", + "a3_weapons_f_longrangerifles_gm6", + "a3_weapons_f_longrangerifles_m320", + "a3_weapons_f_machineguns_m200", + "a3_weapons_f_machineguns_zafir", + "a3_weapons_f_nato", + "a3_weapons_f_pistols_acpc2", + "a3_weapons_f_pistols_p07", + "a3_weapons_f_pistols_pdw2000", + "a3_weapons_f_pistols_pistol_heavy_01", + "a3_weapons_f_pistols_pistol_heavy_02", + "a3_weapons_f_pistols_rook40", + "a3_weapons_f_rifles_khaybar", + "a3_weapons_f_rifles_mk20", + "a3_weapons_f_rifles_mx", + "a3_weapons_f_rifles_sdar", + "a3_weapons_f_rifles_smg_02", + "a3_weapons_f_rifles_trg20", + "a3_weapons_f_rifles_vector", + "a3_weapons_f_uniforms", + "a3_weapons_f_vests", + "a3data", + "extended_eventhandlers", "CBA_UI", "CBA_XEH", "CBA_XEH_A3" + }; + author[] = {"ACE Team"}; + authorUrl = ""; + versionDesc = "A.C.E."; + versionAct = "['MAIN',_this] execVM '\z\ace\addons\main\about.sqf';"; + VERSION_CONFIG; + }; +}; + +class CfgMods { + class PREFIX { + dir = "@ACE"; + name = "Core - Advanced Combat Environment"; + picture = "A3\Ui_f\data\Logos\arma3_expansion_alpha_ca"; + hidePicture = "true"; + hideName = "true"; + actionName = "Website"; + action = "http://ace.dev-heaven.net"; + description = "Bugtracker: "; + }; +}; + +class CfgSettings { + class CBA { + class Versioning { + class PREFIX { + level = DEFAULT_VERSIONING_LEVEL; + handler = "ace_common_fnc_mismatch"; + class Dependencies { + CBA[]={"cba_main", {1,0,0}, "true"}; + XEH[]={"cba_xeh", {1,0,0}, "true"}; + }; + }; + }; +/* + class Registry { + class PREFIX { + removed[] = {}; + }; + }; +*/ + }; +}; + +#include "CfgModuleCategories.hpp" diff --git a/addons/main/license.txt b/addons/main/license.txt new file mode 100644 index 0000000000..e97d9c51a3 --- /dev/null +++ b/addons/main/license.txt @@ -0,0 +1,92 @@ +License (short) +=============== + +You are free: +- to Share to copy, distribute and transmit the work + +Under the following conditions: +- Attribution You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). +- Noncommercial You may not use this work for commercial purposes. +- No Derivative Works You may not alter, transform, or build upon this work. + +With the understanding that: + +Waiver Any of the above conditions can be waived if you get permission from the copyright holder. + +Public Domain Where the work or any of its elements is in the public domain under applicable law, that status is in no way affected by the license. + +Other Rights In no way are any of the following rights affected by the license: + - Your fair dealing or fair use rights, or other applicable copyright exceptions and limitations; + - The author's moral rights; + - Rights other persons may have either in the work itself or in how the work is used, such as publicity or privacy rights. + +Notice For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page. + + +Full license text +================= + +THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. + +BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. + +1. Definitions + +"Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. +"Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined above) for the purposes of this License. +"Distribute" means to make available to the public the original and copies of the Work through sale or other transfer of ownership. +"Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. +"Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. +"Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. +"You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. +"Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. +"Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. + +2. Fair Dealing Rights. + +Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. + +3. License Grant. + +Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: + +to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; and, to Distribute and Publicly Perform the Work including as incorporated in Collections. +The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats, but otherwise you have no rights to make Adaptations. Subject to 8(f), all rights not expressly granted by Licensor are hereby reserved, including but not limited to the rights set forth in Section 4(d). + +4. Restrictions. + +The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: + +You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. +You may not exercise any of the rights granted to You in Section 3 above in any manner that is primarily intended for or directed toward commercial advantage or private monetary compensation. The exchange of the Work for other copyrighted works by means of digital file-sharing or otherwise shall not be considered to be intended for or directed toward commercial advantage or private monetary compensation, provided there is no payment of any monetary compensation in connection with the exchange of copyrighted works. +If You Distribute, or Publicly Perform the Work or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work. The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Collection, at a minimum such credit will appear, if a credit for all contributing authors of Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. + +For the avoidance of doubt: + +Non-waivable Compulsory License Schemes. + +In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; +Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License if Your exercise of such rights is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b) and otherwise waives the right to collect royalties through any statutory or compulsory licensing scheme; and, +Voluntary License Schemes. The Licensor reserves the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License that is for a purpose or use which is otherwise than noncommercial as permitted under Section 4(b). +Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. + +5. Representations, Warranties and Disclaimer. + +UNLESS OTHERWISE MUTUALLY AGREED BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + +6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. Termination. + +This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. +Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). + +Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. + +8. Miscellaneous. + +Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. +If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. +No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. +This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. +The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. diff --git a/addons/main/script_common.hpp b/addons/main/script_common.hpp new file mode 100644 index 0000000000..b3f6863d49 --- /dev/null +++ b/addons/main/script_common.hpp @@ -0,0 +1,3 @@ +#define __cr_managers "Manager: " +#define __cr_devs "Developer:" +#define __cr_testers "Contributor: " diff --git a/addons/main/script_component.hpp b/addons/main/script_component.hpp new file mode 100644 index 0000000000..8c224ed41f --- /dev/null +++ b/addons/main/script_component.hpp @@ -0,0 +1,14 @@ +#define COMPONENT main +#include "\z\ace\addons\main\script_mod.hpp" + +// #define DEBUG_MODE_FULL + +#ifdef DEBUG_ENABLED_CORE + #define DEBUG_MODE_FULL +#endif + +#ifdef DEBUG_SETTINGS_CORE + #define DEBUG_SETTINGS DEBUG_SETTINGS_CORE +#endif + +#include "\z\ace\addons\main\script_macros.hpp" diff --git a/addons/main/script_config.hpp b/addons/main/script_config.hpp new file mode 100644 index 0000000000..ac8e18fa12 --- /dev/null +++ b/addons/main/script_config.hpp @@ -0,0 +1,43 @@ +#define true 1 +#define false 0 + +#define private 0 +#define protected 1 +#define public 2 + +#define TEast 0 +#define TWest 1 +#define TGuerrila 2 +#define TCivilian 3 +#define TSideUnknown 4 +#define TEnemy 5 +#define TFriendly 6 +#define TLogic 7 + +#define VSoft 0 +#define VArmor 1 +#define VAir 2 + +#define LockNo 0 +#define LockCadet 1 +#define LockYes 2 + +#define ReadAndWrite 0 +#define ReadAndCreate 1 +#define ReadOnly 2 +#define ReadOnlyVerified 3 + +#define WeaponNoSlot 0 // dummy weapons +#define WeaponSlotPrimary 1 // primary weapons +#define WeaponSlotSecondary 16 // secondary weapons +#define WeaponSlotItem 256 // items +#define WeaponSlotBinocular 4096 // binocular +#define WeaponHardMounted 65536 + +#define CanSeeRadar 1 +#define CanSeeRye 2 +#define CanSeeOptics 4 +#define CanSeeEar 4 +#define CanSeeCompass 16 +#define CanSeeRadarC CanSeeRadar+CanSeeCompass +#define CanSeeAll 31 diff --git a/addons/main/script_macros.hpp b/addons/main/script_macros.hpp new file mode 100644 index 0000000000..fb3136e852 --- /dev/null +++ b/addons/main/script_macros.hpp @@ -0,0 +1,170 @@ +#include "\x\cba\addons\main\script_macros_common.hpp" + +// Default versioning level +#define DEFAULT_VERSIONING_LEVEL 2 + +// RGB Colors +#define RGB_GREEN 0, 0.5, 0, 1 +#define RGB_BLUE 0, 0, 1, 1 +#define RGB_ORANGE 0.5, 0.5, 0, 1 +#define RGB_RED 1, 0, 0, 1 +#define RGB_YELLOW 1, 1, 0, 1 +#define RGB_WHITE 1, 1, 1, 1 +#define RGB_GRAY 0.5, 0.5, 0.5, 1 +#define RGB_BLACK 0, 0, 0, 1 +#define RGB_MAROON 0.5, 0, 0, 1 +#define RGB_OLIVE 0.5, 0.5, 0, 1 +#define RGB_NAVY 0, 0, 0.5, 1 +#define RGB_PURPLE 0.5, 0, 0.5, 1 +#define RGB_FUCHSIA 1, 0, 1, 1 +#define RGB_AQUA 0, 1, 1, 1 +#define RGB_TEAL 0, 0.5, 0.5, 1 +#define RGB_LIME 0, 1, 0, 1 +#define RGB_SILVER 0.75, 0.75, 0.75, 1 + +#include "script_macros_menudef.hpp" + +#define ACE_NOARMORY class Armory { disabled = 1; } +#define ACE_ARMORY class Armory { disabled = 0; } +#define ACE_ACEARMORY class Armory { disabled = 0; author = "A.C.E."; } + + +// Weapon defaults +// NOTE !!!! - Do not forget to dummy-update the configs that use these defines, or the changes won't activate due to binarization! +#define ACE_DEFAULT_WEAPONS "Throw", "Put" + +// Item defaults +// NOTE !!!! - Do not forget to dummy-update the configs that use these defines, or the changes won't activate due to binarization! +#define ACE_ITEMS_TEAMLEADER_B "ItemMap","ItemCompass","ItemWatch","ItemRadio" +#define ACE_ITEMS_SQUADLEADER_B "ItemMap","ItemCompass","ItemWatch","ItemRadio","ACE_DAGR" +#define ACE_ITEMS_SPECIAL "ItemMap","ItemCompass","ItemWatch","ItemRadio" +#define ACE_ITEMS "ItemWatch","ItemRadio" +#define ACE_ITEMS_CIVILIAN "ItemWatch" + + +#define ACE_DEFAULT_SLOTS "1 + 4 + 12* 256 + 2* 4096 + 2 + 8* 16 + 12*131072" + +#define ACE_NOGRIP handAnim[] = {} +#define ACE_DISTANCE_DEFAULT distanceZoomMin = 300; distanceZoomMax = 300 + +#include "script_macros_optics.hpp" + +#define ACE_NOZEROING discreteDistance[] = {}; \ + discreteDistanceInitIndex = 0; \ + weaponInfoType = "RscWeaponEmpty" + +#define ACE_NOTURRETZEROING discreteDistance[] = {}; \ + discreteDistanceInitIndex = 0; \ + turretInfoType = "RscWeaponEmpty" + +#define ACE_LASER irLaserPos = "laser pos"; \ + irLaserEnd = "laser dir"; \ + irDistance = 300 + +#define ACE_LASER_DISTANCE_VANILLA irDistance = 300 + +#define ACE_NOLASER irLaserPos = "laser pos"; \ + irLaserEnd = "laser dir"; \ + irDistance = 0 + +#define ACE_SUPPRESSED ace_suppressed = 1; \ + fireLightDuration = 0; \ + fireLightIntensity = 0 + +// TODO: Cleanup in all the configs around +#define ACE_M_MAG(x,y) class _xx_##x {magazine = ##x; count = ##y;} +#define ACE_M_WEP(x,y) class _xx_##x {weapon = ##x; count = ##y;} +#define ACE_M_ITEM(x,y) class _xx_##x {name = ##x; count = ##y;} +#define ACE_M_BAG(x,y) class _xx_##x {backpack = ##x; count = ##y;} + + +// Vehicle defines +// ACE_canBeLoad = This vehicle acts as transporter, i.e you can load stuff into it +// ACE_canBeCargo = This vehicle acts as cargo, i.e you can load this item into other vehicles +#define ACE_CARGO_FRONT ACE_canBeLoad = false; ACE_canBeCargo = true; ACE_canGear = false; ACE_canLoadFront = true +#define ACE_CARGO_ONLY ACE_canBeLoad = false; ACE_canBeCargo = true; ACE_canGear = false; ACE_canLoadFront = false +#define ACE_LOAD_ONLY ACE_canBeLoad = true; ACE_canBeCargo = false; ACE_canGear = false; ACE_canLoadFront = false +#define ACE_GEAR_ONLY ACE_canBeLoad = true; ACE_canBeCargo = false; ACE_canGear = true; ACE_canLoadFront = false +#define ACE_NOCARGOLOAD ACE_canBeLoad = false; ACE_canBeCargo = false; ACE_canGear = false; ACE_canLoadFront = false + +// Increased FOV for tank driver +// Increased Default US Tank driver optic +#define ACE_DRIVEROPTIC_TANK_US driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver_west.p3d" +// Increased Default RU Tank driver optic +#define ACE_DRIVEROPTIC_TANK_RU driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver_east.p3d" +// Increased Default NON Specified driver optic +#define ACE_DRIVEROPTIC_TANK driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver.p3d" +// Increased Default EP1 NON Specified driver optic +// Default black border thing needs finish +#define ACE_DRIVEROPTIC_TANK_EP1 driverOpticsModel = "\z\ace\addons\m_veh_optics\driver\optika_tank_driver.p3d" + +#define ACE_BWC ace_bwc = 1 + +#define ACE_wind ([] call ace_sys_ballistic_fnc_wind) + + +// SCRIPTING MACROS + +// Items +#define inITEMS(x,y) (##x in (y call ACE_fnc_getGear)) +#define remITEMS(x,y) ([##x,y] call ACE_fnc_removeItem) +//#define addITEMS(x,y) (y addItem ##x) + +// Interaction/ Put anims +#define canANIM(x) (x call ACE_fnc_CanPutDown) +#define playANIM(x) (if (x call ACE_fnc_CanPutDown) then { x call ACE_fnc_PutDown }) + +// In vehicle or on foot +#define ONFOOT(x) (x == vehicle x) +#define INVEHICLE(x) (x != vehicle x) + +// FX +#define COUGH ace_common_fx_fnc_cough +#define BLURRY ace_common_fx_fnc_blurry +#define BLIND ace_common_fx_fnc_blind_view +#define DEAF ace_common_fx_fnc_deaf +#define DIZZY ace_common_fx_fnc_dizzy +#define FLASH ace_common_fx_fnc_flash +#define KICK ace_common_fx_fnc_kick +#define KNOCKOUT ace_common_fx_fnc_knockout +#define RING ace_common_fx_fnc_ring + +// Stamina +#define INC_MASS ace_sys_stamina_fnc_inc_mass + +// Does this work, due to BWC_CONFIG(NAME) ? +#undef BWC_CONFIG + +#define BWC_CONFIG(NAME) class NAME { \ + units[] = {}; \ + weapons[] = {}; \ + requiredVersion = REQUIRED_VERSION; \ + requiredAddons[] = {}; \ + version = VERSION; \ + ACE_BWC; \ +} + +#define ACE_FLASHLIGHT class FlashLight { \ + color[] = {0.9, 0.9, 0.7, 0.9}; \ + ambient[] = {0.1, 0.1, 0.1, 1.0}; \ + position = "flash dir"; \ + direction = "flash"; \ + angle = 30; \ + scale[] = {1, 1, 0.5}; \ + brightness = 0.1; \ + } +#define ACE_SMALL_FLASHLIGHT class FlashLight { \ + color[] = {0.9, 0.9, 0.7, 0.9}; \ + ambient[] = {0.1, 0.1, 0.1, 1.0}; \ + position = "flash dir"; \ + direction = "flash"; \ + angle = 20; \ + scale[] = {0.9, 0.9, 0.4}; \ + brightness = 0.09; \ + } + +// Addaction defines for colored text +#define ACE_TEXT_ORANGE(Text) ("" + ##Text + "") +#define ACE_TEXT_RED(Text) ("" + ##Text + "") +#define ACE_TEXT_GREEN(Text) ("" + ##Text + "") +#define ACE_TEXT_YELLOW(Text) ("" + ##Text + "") \ No newline at end of file diff --git a/addons/main/script_macros_menudef.hpp b/addons/main/script_macros_menudef.hpp new file mode 100644 index 0000000000..3572092852 --- /dev/null +++ b/addons/main/script_macros_menudef.hpp @@ -0,0 +1,27 @@ +// ACE Self Interaction Conditions + +// Self Interaction Menu not available if player is unconscious +#define ACE_INTERACT_ALIVE (alive player) +#define ACE_INTERACT_UNCON (player call ace_sys_wounds_fnc_isUncon) + +// Player is Player Vehicle +#define ACE_INTERACT_PLAYER (player == vehicle player || (player != vehicle player && player in assignedCargo vehicle player)) + +// Player is climbing up a ladder +#define ACE_INTERACT_LADDER (animationState player in ["ladderriflestatic","laddercivilstatic"]) + +// Possible = Self interaction opens only if player is alive and conscious (can be in a vehicle) +#define ACE_SELFINTERACTION_POSSIBLE (!ACE_INTERACT_LADDER && {ACE_INTERACT_ALIVE} && {!ACE_INTERACT_UNCON}) + +// Restricted = Self interaction opens only if player is alive and conscious (can NOT be in a vehicle, i.e Groundmarker, explosives ...) +#define ACE_SELFINTERACTION_RESTRICTED (ACE_SELFINTERACTION_POSSIBLE && {ACE_INTERACT_PLAYER}) + +// Close interaction menu if unconscious +#define ACE_INTERACT_FNC_EXIT if (ACE_INTERACT_UNCON) exitWith {} +#define ACE_ASSEMBLE (getNumber(configFile >> "CfgActions" >> "Assemble" >> "show") == 0) +#define ACE_DISASSEMBLE (getNumber(configFile >> "CfgActions" >> "DisAssemble" >> "show") == 0) +#define ACE_PIPEDEFAULT (getNumber(configFile >> "CfgMagazines" >> "PipeBomb" >> "useAction") == 0) +#define ACE_IDENTITYDEFAULT (isClass(configFile >> "CfgPatches" >> "ace_sys_combatdeaf")) +#define ACE_RUCKDEFAULT (isClass(configFile >> "CfgPatches" >> "ace_sys_stamina")) + +#define ACE_KNOWN2PLAYER (if (name _target in (player getVariable ["ace_sys_recognize_knownnames",[]])) then { name _target } else { " " }) \ No newline at end of file diff --git a/addons/main/script_mod.hpp b/addons/main/script_mod.hpp new file mode 100644 index 0000000000..ed2b6ae87c --- /dev/null +++ b/addons/main/script_mod.hpp @@ -0,0 +1,55 @@ +// COMPONENT should be defined in the script_component.hpp and included BEFORE this hpp + +#define MAINPREFIX z +#define PREFIX ace + +#define MAJOR 3 +#define MINOR 0 +#define PATCHLVL 0 +#define BUILD 1 + +#define VERSION MAJOR.MINOR.PATCHLVL.BUILD +#define VERSION_AR MAJOR,MINOR,PATCHLVL,BUILD + +#define ACE_TAG A.C.E. + +// MINIMAL required version for the Mod. Components can specify others.. +#define REQUIRED_VERSION 0.5 + +/* + #define DEBUG_ENABLED_SYS_ADDONS + #define DEBUG_ENABLED_SYS_ATTACHMENTS + #define DEBUG_ENABLED_sys_weapons_backblast + #define DEBUG_ENABLED_SYS_BLOOD + #define DEBUG_ENABLED_SYS_CARTRIDGES + #define DEBUG_ENABLED_SYS_CRATERS + #define DEBUG_ENABLED_SYS_CREWPROTECTION + #define DEBUG_ENABLED_SYS_DUMMIES + #define DEBUG_ENABLED_SYS_EJECT + #define DEBUG_ENABLED_SYS_EXPLOSIVES + #define DEBUG_ENABLED_SYS_FLARES + #define DEBUG_ENABLED_SYS_FLASHBANG + #define DEBUG_ENABLED_SYS_GRENADETHROW + #define DEBUG_ENABLED_SYS_HUNTIR + #define DEBUG_ENABLED_SYS_INTERACTION + #define DEBUG_ENABLED_SYS_IRSTROBE + #define DEBUG_ENABLED_SYS_MULTI_BARREL + #define DEBUG_ENABLED_SYS_MUZZLEBLAST + #define DEBUG_ENABLED_SYS_NVG + #define DEBUG_ENABLED_sys_weapons_overheating + #define DEBUG_ENABLED_SYS_RECOILDUST + #define DEBUG_ENABLED_SYS_ROCKET_BALLISTICS + #define DEBUG_ENABLED_SYS_SANDBAG + #define DEBUG_ENABLED_SYS_SHOTGUN + #define DEBUG_ENABLED_SYS_SIGHT_ADJUSTMENT_AT + #define DEBUG_ENABLED_SYS_SIGHT_ADJUSTMENT_GL + #define DEBUG_ENABLED_SYS_SIGHT_ADJUSTMENT_RIFLE + #define DEBUG_ENABLED_SYS_SMAW_SPOTTINGRIFLE + #define DEBUG_ENABLED_SYS_TRACERS + #define DEBUG_ENABLED_SYS_TRACKING + #define DEBUG_ENABLED_SYS_VIEWBLOCK + #define DEBUG_ENABLED_SYS_VEHICLE + #define DEBUG_ENABLED_sys_vehicle_damage + #define DEBUG_ENABLED_SYS_WEAPONREST + #define DEBUG_ENABLED_SYS_WOUNDS +*/