mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Artillery Tables - Support for ammo that has native airFriction
(#10059)
* Artillery Tables - Support for ammo that has native `airFriction` * fix comment Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * Update addons/artillerytables/functions/fnc_rangeTableOpen.sqf Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> * replace if block with select const Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com> --------- Co-authored-by: Grim <69561145+LinkIsGrim@users.noreply.github.com> Co-authored-by: johnb432 <58661205+johnb432@users.noreply.github.com>
This commit is contained in:
parent
05d6327e5e
commit
aed2222b81
@ -35,7 +35,7 @@ if (isNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(airFriction)))
|
|||||||
_airFriction = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(airFriction));
|
_airFriction = getNumber (configFile >> "CfgMagazines" >> _magazine >> QGVAR(airFriction));
|
||||||
};
|
};
|
||||||
TRACE_1("",_airFriction);
|
TRACE_1("",_airFriction);
|
||||||
if (_airFriction >= 0) exitWith {}; // 0 disables everything, >0 makes no sense
|
if (_airFriction == 0) exitWith {}; // 0 disables everything
|
||||||
|
|
||||||
BEGIN_COUNTER(adjustmentsCalc);
|
BEGIN_COUNTER(adjustmentsCalc);
|
||||||
|
|
||||||
@ -60,6 +60,7 @@ if (_newMuzzleVelocityCoefficent != 1) then {
|
|||||||
_projectile setVelocity _bulletVelocity;
|
_projectile setVelocity _bulletVelocity;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (_airFriction > 0) exitWith {}; // positive value indicates it has vanilla airFriction, so we can just exit
|
||||||
|
|
||||||
[{
|
[{
|
||||||
params ["_projectile", "_kFactor", "_time"];
|
params ["_projectile", "_kFactor", "_time"];
|
||||||
|
@ -41,8 +41,15 @@ _mags = _mags apply {
|
|||||||
private _initSpeed = getNumber (_magCfg >> _x >> "initSpeed");
|
private _initSpeed = getNumber (_magCfg >> _x >> "initSpeed");
|
||||||
_magParamsArray pushBackUnique _initSpeed;
|
_magParamsArray pushBackUnique _initSpeed;
|
||||||
private _airFriction = 0;
|
private _airFriction = 0;
|
||||||
|
private _magAirFriction = getNumber (_magCfg >> _x >> QGVAR(airFriction));
|
||||||
|
if (_magAirFriction <= 0) then {
|
||||||
if (_advCorrection) then {
|
if (_advCorrection) then {
|
||||||
_airFriction = if (isNumber (_magCfg >> _x >> QGVAR(airFriction))) then { getNumber (_magCfg >> _x >> QGVAR(airFriction)) } else { DEFAULT_AIR_FRICTION };
|
_airFriction = [DEFAULT_AIR_FRICTION, _magAirFriction] select (isNumber (_magCfg >> _x >> QGVAR(airFriction)));
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
// positive value, use ammo's airFriction (regardless of setting)
|
||||||
|
private _ammo = getText (_magCfg >> _x >> "ammo");
|
||||||
|
_airFriction = getNumber (configFile >> "CfgAmmo" >> _ammo >> "airFriction");
|
||||||
};
|
};
|
||||||
_magParamsArray pushBackUnique _airFriction;
|
_magParamsArray pushBackUnique _airFriction;
|
||||||
[getText (_magCfg >> _x >> "displayNameShort"), getText (_magCfg >> _x >> "displayName"), _initSpeed, _airFriction]
|
[getText (_magCfg >> _x >> "displayNameShort"), getText (_magCfg >> _x >> "displayName"), _initSpeed, _airFriction]
|
||||||
|
38
docs/wiki/framework/artillery-tables-framework.md
Normal file
38
docs/wiki/framework/artillery-tables-framework.md
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
layout: wiki
|
||||||
|
title: Artillery Tables
|
||||||
|
description: Explains the configs for artillery tables.
|
||||||
|
group: framework
|
||||||
|
parent: wiki
|
||||||
|
mod: ace
|
||||||
|
version:
|
||||||
|
major: 3
|
||||||
|
minor: 13
|
||||||
|
patch: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
## 1. Magazine Configs
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
class CfgMagazines {
|
||||||
|
class yourMag {
|
||||||
|
ace_artillerytables_airFriction = -0.00006; // default value
|
||||||
|
// drag coefficent (when Air Resistance setting is enabled)
|
||||||
|
// can set to 0 to disable all muzzle effects and airFriction
|
||||||
|
// can set to +1 to use the ammo's native airFriction (not common, as most artillery ammo will have none)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 2. Vehicle Configs
|
||||||
|
|
||||||
|
```cpp
|
||||||
|
class CfgVehicles {
|
||||||
|
class yourVic {
|
||||||
|
ace_artillerytables_showRangetable = 1; // [0 disabled, 1 enabled] falls back to artilleryScanner
|
||||||
|
// Show rangetable for this vehicle
|
||||||
|
|
||||||
|
ace_artillerytables_showGunLaying = 1; // [0 disabled, 1 enabled, 2 enabled w/ alt elevationMode] falls back to artilleryScanner
|
||||||
|
// Shows gun laying info (elev/azimuth)
|
||||||
|
|
||||||
|
ace_artillerytables_applyCorrections = 1; // [0 disabled, 1 enabled] falls back to artilleryScanner
|
||||||
|
// Apply advanced corrections (when setting enabled)
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user