mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
AB Performance Optimization (Part 3)
This commit is contained in:
@ -17,8 +17,6 @@
|
|||||||
#define __ctrl1 (__dsp displayCtrl 132950)
|
#define __ctrl1 (__dsp displayCtrl 132950)
|
||||||
#define __ctrl2 (__dsp displayCtrl 132951)
|
#define __ctrl2 (__dsp displayCtrl 132951)
|
||||||
|
|
||||||
private ["_inclinationAngle", "_refPosition"];
|
|
||||||
|
|
||||||
if (GVAR(Protractor)) exitWith {
|
if (GVAR(Protractor)) exitWith {
|
||||||
GVAR(Protractor) = false;
|
GVAR(Protractor) = false;
|
||||||
1 cutText ["", "PLAIN"];
|
1 cutText ["", "PLAIN"];
|
||||||
@ -41,9 +39,6 @@ GVAR(Protractor) = true;
|
|||||||
[_idPFH] call cba_fnc_removePerFrameHandler;
|
[_idPFH] call cba_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
|
||||||
_inclinationAngle = asin((ACE_player weaponDirection currentWeapon ACE_player) select 2);
|
|
||||||
_inclinationAngle = -58 max _inclinationAngle min 58;
|
|
||||||
|
|
||||||
1 cutRsc ["RscProtractor", "PLAIN", 1, false];
|
1 cutRsc ["RscProtractor", "PLAIN", 1, false];
|
||||||
|
|
||||||
__ctrl1 ctrlSetScale 1;
|
__ctrl1 ctrlSetScale 1;
|
||||||
@ -52,7 +47,7 @@ GVAR(Protractor) = true;
|
|||||||
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
||||||
|
|
||||||
__ctrl2 ctrlSetScale 1;
|
__ctrl2 ctrlSetScale 1;
|
||||||
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY + 0.001 - 0.0012 * _inclinationAngle, 0.2, 0.2 * 4/3];
|
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY + 0.001 - 0.0012 * (-58 max (asin((ACE_player weaponDirection currentWeapon ACE_player) select 2)) min 58), 0.2, 0.2 * 4/3];
|
||||||
__ctrl2 ctrlCommit 0;
|
__ctrl2 ctrlCommit 0;
|
||||||
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
|
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
|
||||||
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
params ["_logic","_units", "_activated"];
|
params ["_logic","_units", "_activated"];
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* Reads the ammo class config and updates the config cache
|
* Reads the ammo class config and updates the config cache
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: ammo - classname <STRING>
|
* ammo - classname <STRING>
|
||||||
*
|
*
|
||||||
* Return Value:
|
* Return Value:
|
||||||
* 0: _airFriction
|
* 0: _airFriction
|
||||||
@ -25,50 +25,32 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
private ["_ammo", "_airFriction", "_caliber", "_bulletLength", "_bulletMass", "_transonicStabilityCoef", "_dragModel", "_ballisticCoefficients", "_velocityBoundaries", "_atmosphereModel", "_ammoTempMuzzleVelocityShifts", "_muzzleVelocityTable", "_barrelLengthTable", "_result"];
|
||||||
_ammo = _this;
|
_ammoConfig = configFile >> "CfgAmmo" >> _this;
|
||||||
|
|
||||||
_airFriction = getNumber(configFile >> "CfgAmmo" >> _ammo >> "airFriction");
|
_airFriction = getNumber(_ammoConfig >> "airFriction");
|
||||||
_caliber = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_caliber");
|
_caliber = getNumber(_ammoConfig >> "ACE_caliber");
|
||||||
_bulletLength = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_bulletLength");
|
_bulletLength = getNumber(_ammoConfig >> "ACE_bulletLength");
|
||||||
_bulletMass = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_bulletMass");
|
_bulletMass = getNumber(_ammoConfig >> "ACE_bulletMass");
|
||||||
_transonicStabilityCoef = 0.5;
|
_transonicStabilityCoef = getNumber(_ammoConfig >> "ACE_transonicStabilityCoef");
|
||||||
if (isNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef")) then {
|
if (_transonicStabilityCoef == 0) then {
|
||||||
_transonicStabilityCoef = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_transonicStabilityCoef");
|
_transonicStabilityCoef = 0.5;
|
||||||
};
|
};
|
||||||
_dragModel = 1;
|
_dragModel = getNumber(_ammoConfig >> "ACE_dragModel");
|
||||||
_ballisticCoefficients = [];
|
if (_dragModel == 0 || !(_dragModel in [1, 2, 5, 6, 7, 8])) then {
|
||||||
_velocityBoundaries = [];
|
_dragModel = 1;
|
||||||
_atmosphereModel = "ICAO";
|
|
||||||
if (isNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_dragModel")) then {
|
|
||||||
_dragModel = getNumber(configFile >> "CfgAmmo" >> _ammo >> "ACE_dragModel");
|
|
||||||
if (!(_dragModel in [1, 2, 5, 6, 7, 8])) then {
|
|
||||||
_dragModel = 1;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ballisticCoefficients")) then {
|
_ballisticCoefficients = getArray(_ammoConfig >> "ACE_ballisticCoefficients");
|
||||||
_ballisticCoefficients = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ballisticCoefficients");
|
_velocityBoundaries = getArray(_ammoConfig >> "ACE_velocityBoundaries");
|
||||||
};
|
_atmosphereModel = getText(_ammoConfig >> "ACE_standardAtmosphere");
|
||||||
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_velocityBoundaries")) then {
|
if (_atmosphereModel isEqualTo "") then {
|
||||||
_velocityBoundaries = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_velocityBoundaries");
|
_atmosphereModel = "ICAO";
|
||||||
};
|
|
||||||
if (isText(configFile >> "CfgAmmo" >> _ammo >> "ACE_standardAtmosphere")) then {
|
|
||||||
_atmosphereModel = getText(configFile >> "CfgAmmo" >> _ammo >> "ACE_standardAtmosphere");
|
|
||||||
};
|
|
||||||
_ammoTempMuzzleVelocityShifts = [];
|
|
||||||
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts")) then {
|
|
||||||
_ammoTempMuzzleVelocityShifts = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_ammoTempMuzzleVelocityShifts");
|
|
||||||
};
|
|
||||||
_muzzleVelocityTable = [];
|
|
||||||
_barrelLengthTable = [];
|
|
||||||
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_muzzleVelocities")) then {
|
|
||||||
_muzzleVelocityTable = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_muzzleVelocities");
|
|
||||||
};
|
|
||||||
if (isArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_barrelLengths")) then {
|
|
||||||
_barrelLengthTable = getArray(configFile >> "CfgAmmo" >> _ammo >> "ACE_barrelLengths");
|
|
||||||
};
|
};
|
||||||
|
_ammoTempMuzzleVelocityShifts = getArray(_ammoConfig >> "ACE_ammoTempMuzzleVelocityShifts");
|
||||||
|
_muzzleVelocityTable = getArray(_ammoConfig >> "ACE_muzzleVelocities");
|
||||||
|
_barrelLengthTable = getArray(_ammoConfig >> "ACE_barrelLengths");
|
||||||
|
|
||||||
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
_result = [_airFriction, _caliber, _bulletLength, _bulletMass, _transonicStabilityCoef, _dragModel, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _ammoTempMuzzleVelocityShifts, _muzzleVelocityTable, _barrelLengthTable];
|
||||||
|
|
||||||
uiNamespace setVariable [format[QGVAR(%1), _ammo], _result];
|
uiNamespace setVariable [format[QGVAR(%1), _this], _result];
|
||||||
|
|
||||||
_result
|
_result
|
||||||
|
Reference in New Issue
Block a user