diff --git a/.editorconfig b/.editorconfig
index 0deca3d2ab..5822f71d1d 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -10,4 +10,3 @@ trim_trailing_whitespace = true
[*.md]
trim_trailing_whitespace = false
-
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 33ae67cc0e..b8aae89b77 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -6,11 +6,9 @@ If you have found an issue with ACE3 please make sure that ACE3 really is the ca
Indicate if the issue appears on stable or development version. In case it is the development version, please also include the commit SHA-1 hash.
-
-
Please note:
-
It's not a valid to simply remove @ace from the mod list to confirm that ACE3 is the culprit.
-
If the error happens when using a third-party mod contact the author of the appropriate mod and report the issue there.
-
+**Please note:**
+- It's not a valid to simply remove @ace from the mod list to confirm that ACE3 is the culprit.
+- If the error happens when using a third-party mod contact the author of the appropriate mod and report the issue there.
## Reporting the issue
@@ -26,6 +24,6 @@ ACE2, AGM and CSE had a lot of features implemented or planned. All of them are
Please refrain from making requests for any planned or existing features from either ACE2, AGM or CSE. Most of them are already being or have been considered for porting or a rewrite.
## Requesting a feature
-In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/414). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
+In order to avoid duplicates and keep the issue tracker organized, we have created a common issue for [ACE3 Feature requests](https://github.com/acemod/ACE3/issues/3594). Any and all relevant requests should be submitted there, where they will also get discussed and evaluated. Before adding a new one, make sure to check the previous entries from the thread and do a quick search for similar suggestions; please don't reiterate requests for features that had already been accepted for inclusion, or those which were disregarded earlier.
Following their approval, feature requests may be moved by moderators to a separate issue for further discussion.
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 92ba3070ce..8097ed6e28 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,25 +1,23 @@
-**Arma 3 Version:** `x.xx`
-*(indicate if stable, rc or dev*)
-
-**ACE3 Version:** `3.x.x`
-*(indicate if stable or dev, if dev indicate the commit the version is based on)*
+**Arma 3 Version:** `x.xx` (stable / rc / dev)
+**CBA Version:** `2.x.x` (stable / dev + commit hash)
+**ACE3 Version:** `3.x.x` (stable / dev + commit hash)
**Mods:**
-* `@CBA_A3`
-* `@ace`
-* ...
-
-**Placed Modules:**
-* *Add the list of modules you have placed on the map. Use 'None' if the error occurs without using any modules.*
+- `@CBA_A3`
+- `@ace`
**Description:**
-* *Add a detailed description of the error. This makes it easier for us to fix the issue.*
+- Add a detailed description of the error. This makes it easier for us to fix the issue.
**Steps to reproduce:**
-* *Add the steps needed to reproduce the issue.*
+- Add the steps needed to reproduce the issue.
**Where did the issue occur?**
-* *A possible answer might be "Dedicated Server", "Local Multiplayer", "Editor", or "Singleplayer"*
+- Dedicated / Self-Hosted Multiplayer / Singleplayer / Editor (Singleplayer) / Editor (Multiplayer) / Virtual Arsenal
+
+**Placed Modules:**
+- Add the list of modules you have placed on the map. Use 'None' if the error occurs without any modules.
**RPT log file:**
-* *Add a link (pastebin.com) to the client and/or server RPT file. An instruction to find your RPT files can be [found here](https://community.bistudio.com/wiki/Crash_Files#Arma_3)*
+- Add a link ([gist](https://gist.github.com) or [pastebin](http://pastebin.com)) to the client and/or server RPT file. An instruction to find your RPT files can be found [here](https://community.bistudio.com/wiki/Crash_Files#Arma_3).
+- If possible at the time the bug is encountered, go to ACE Options and select "Debug To Clipboard", this will print extensive debug information to the RPT file.
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 982d6137ef..f96a900cb7 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,10 +1,4 @@
-### When merged this pull request will:
-
-1. *Describe what this pull request will do*
-2. *Each change in a seperate line*
-
----
-*Delete this line and everything below*
-
-- [Make sure to respect the file structure](http://ace3mod.com/wiki/development/modularity-and-pbo-structure.html)
-- [Make sure to respect the coding guidelines](http://ace3mod.com/wiki/development/coding-guidelines.html)
+**When merged this pull request will:**
+- Describe what this pull request will do
+- Each change in a separate line
+- Respect the [Development Guidelines](http://ace3mod.com/wiki/development/)
diff --git a/.travis.yml b/.travis.yml
index 1d2a49e2e6..3828300d7f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,6 +12,7 @@ before_script:
fi
script:
- python3 tools/sqf_validator.py
+- python3 tools/config_style_checker.py
- if [ -n "${GH_TOKEN}" ] && [ "${TRAVIS_BRANCH}" == "master" ] && [ "${TRAVIS_PULL_REQUEST}" == "false" ]; then
python3 tools/deploy.py;
fi
diff --git a/AUTHORS.txt b/AUTHORS.txt
index 7de58d43f0..42923c77e5 100644
--- a/AUTHORS.txt
+++ b/AUTHORS.txt
@@ -65,6 +65,7 @@ F3 Project
Falke75
Ferenczi
Ferenzi
+FFAAMOD
Filip Basara
fr89k
FreeZbe
@@ -74,6 +75,7 @@ Gianmarco Varriale (TeamNuke)
GieNkoV
GitHawk
gpgpgpgp
+Grey-Soldierman
Grzegorz
Hamburger SV
Harakhti
@@ -110,6 +112,7 @@ Sniperwolf572
System98
SzwedzikPL
Tachi
+Tessa Elieff
Toaster
Tonic
Tourorist
@@ -118,4 +121,3 @@ voiper
VyMajoris(W-Cephei)
Winter
zGuba
-Grey-Soldierman
diff --git a/LICENSE b/LICENSE
index 037f1df2f3..f748d222de 100644
--- a/LICENSE
+++ b/LICENSE
@@ -26,6 +26,8 @@ Some folders of this project may contain a separate LICENSE file. Should
that be the case, everything in that folder and all subfolders is subject
to that license instead.
+ - ARMA PUBLIC LICENSE (\addons\apl)
+ - CreativeCommons Attributions 3.0 (\addons\fastroping\data\sounds)
============================================================================
Full GNU General Public License Text
diff --git a/README.md b/README.md
index cda0cc7f79..37b5f2a626 100644
--- a/README.md
+++ b/README.md
@@ -3,15 +3,15 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/ace_advanced_ballistics.dll b/ace_advanced_ballistics.dll
index a35dcbd2da..0a3d2366f1 100644
Binary files a/ace_advanced_ballistics.dll and b/ace_advanced_ballistics.dll differ
diff --git a/ace_break_line.dll b/ace_break_line.dll
index d76c3d4819..812455aa6b 100644
Binary files a/ace_break_line.dll and b/ace_break_line.dll differ
diff --git a/ace_clipboard.dll b/ace_clipboard.dll
index c6b771be7f..a21c2da4ab 100644
Binary files a/ace_clipboard.dll and b/ace_clipboard.dll differ
diff --git a/ace_fcs.dll b/ace_fcs.dll
index b224c194cd..f732a8ca03 100644
Binary files a/ace_fcs.dll and b/ace_fcs.dll differ
diff --git a/ace_medical.dll b/ace_medical.dll
index 3b5e97ca19..0091bc67bd 100644
Binary files a/ace_medical.dll and b/ace_medical.dll differ
diff --git a/ace_parse_imagepath.dll b/ace_parse_imagepath.dll
index f2c6054cec..2235393dd4 100644
Binary files a/ace_parse_imagepath.dll and b/ace_parse_imagepath.dll differ
diff --git a/addons/advanced_ballistics/ACE_Settings.hpp b/addons/advanced_ballistics/ACE_Settings.hpp
index d88a9b1148..9815cc8491 100644
--- a/addons/advanced_ballistics/ACE_Settings.hpp
+++ b/addons/advanced_ballistics/ACE_Settings.hpp
@@ -1,29 +1,34 @@
class ACE_Settings {
class GVAR(enabled) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(enabled_DisplayName);
description = CSTRING(enabled_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(simulateForSnipers) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(simulateForSnipers_DisplayName);
description = CSTRING(simulateForSnipers_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(simulateForGroupMembers) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(simulateForGroupMembers_DisplayName);
description = CSTRING(simulateForGroupMembers_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(simulateForEveryone) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(simulateForEveryone_DisplayName);
description = CSTRING(simulateForEveryone_Description);
typeName = "BOOL";
value = 0;
};
class GVAR(disabledInFullAutoMode) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(disabledInFullAutoMod_DisplayName);
description = CSTRING(disabledInFullAutoMod_Description);
typeName = "BOOL";
@@ -31,6 +36,7 @@ class ACE_Settings {
};
/* // TODO: We currently do not have firedEHs on vehicles
class GVAR(vehicleGunnerEnabled) {
+ category = CSTRING(DisplayName);
displayName = "Enabled For Vehicle Gunners";
description = "Enables advanced ballistics for vehicle gunners";
typeName = "BOOL";
@@ -38,30 +44,35 @@ class ACE_Settings {
};
*/
class GVAR(ammoTemperatureEnabled) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(ammoTemperatureEnabled_DisplayName);
description = CSTRING(ammoTemperatureEnabled_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(barrelLengthInfluenceEnabled) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(barrelLengthInfluenceEnabled_DisplayName);
description = CSTRING(barrelLengthInfluenceEnabled_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(bulletTraceEnabled) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(bulletTraceEnabled_DisplayName);
description = CSTRING(bulletTraceEnabled_Description);
typeName = "BOOL";
value = 1;
};
class GVAR(simulationInterval) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(simulationInterval_DisplayName);
description = CSTRING(simulationInterval_Description);
typeName = "SCALAR";
value = 0.0;
};
class GVAR(simulationRadius) {
+ category = CSTRING(DisplayName);
displayName = CSTRING(simulationRadius_DisplayName);
description = CSTRING(simulationRadius_Description);
typeName = "SCALAR";
diff --git a/addons/advanced_ballistics/CfgVehicles.hpp b/addons/advanced_ballistics/CfgVehicles.hpp
index 27ccb2377b..804a6e9236 100644
--- a/addons/advanced_ballistics/CfgVehicles.hpp
+++ b/addons/advanced_ballistics/CfgVehicles.hpp
@@ -3,7 +3,7 @@ class CfgVehicles {
class GVAR(ModuleSettings): ACE_Module {
scope = 2;
displayName = CSTRING(DisplayName);
- icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_Wind_ca.paa);
category = "ACE";
function = QUOTE(DFUNC(initModuleSettings));
functionPriority = 1;
diff --git a/addons/advanced_ballistics/XEH_postInit.sqf b/addons/advanced_ballistics/XEH_postInit.sqf
index a541d30ce8..7263970fb1 100644
--- a/addons/advanced_ballistics/XEH_postInit.sqf
+++ b/addons/advanced_ballistics/XEH_postInit.sqf
@@ -5,7 +5,7 @@
GVAR(currentbulletID) = -1;
GVAR(Protractor) = false;
-GVAR(ProtractorStart) = ACE_time;
+GVAR(ProtractorStart) = CBA_missionTime;
GVAR(allBullets) = [];
GVAR(currentGrid) = 0;
@@ -21,7 +21,6 @@ if (!GVAR(extensionAvailable)) exitWith {
};
};
*/
-[] call FUNC(initializeTerrainExtension);
if (!hasInterface) exitWith {};
@@ -29,10 +28,28 @@ if (!hasInterface) exitWith {};
//If not enabled, dont't add PFEH
if (!GVAR(enabled)) exitWith {};
+ //Run the terrain processor
+ [] call FUNC(initializeTerrainExtension);
+
// Register fire event handler
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
["firedPlayerNonLocal", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
+ //Add warnings for missing compat PBOs (only if AB is on)
+ {
+ _x params ["_modPBO", "_compatPBO"];
+ if ((isClass (configFile >> "CfgPatches" >> _modPBO)) && {!isClass (configFile >> "CfgPatches" >> _compatPBO)}) then {
+ ACE_LOGWARNING_2("Weapon Mod [%1] missing ace compat pbo [%2] (from @ace\optionals)",_modPBO,_compatPBO);
+ };
+ } forEach [
+ ["RH_acc","ace_compat_rh_acc"],
+ ["RH_de_cfg","ace_compat_rh_de"],
+ ["RH_m4_cfg","ace_compat_rh_m4"],
+ ["RH_PDW","ace_compat_rh_pdw"],
+ ["RKSL_PMII","ace_compat_rksl_pm_ii"],
+ ["iansky_opt","ace_compat_sma3_iansky"],
+ ["R3F_Armes","ace_compat_r3f"]
+ ];
}] call EFUNC(common,addEventHandler);
#ifdef DEBUG_MODE_FULL
diff --git a/addons/advanced_ballistics/config.cpp b/addons/advanced_ballistics/config.cpp
index 3f974b18df..692a9391a0 100644
--- a/addons/advanced_ballistics/config.cpp
+++ b/addons/advanced_ballistics/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_ballistics", "ace_weather"};
- author[] = {"Ruthberg"};
- authorUrl = "https://github.com/ulteq";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"Ruthberg"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf b/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf
index 5ad6cb111e..62663c843b 100644
--- a/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf
+++ b/addons/advanced_ballistics/functions/fnc_displayProtractor.sqf
@@ -43,13 +43,13 @@ GVAR(Protractor) = true;
__ctrl1 ctrlSetScale 1;
__ctrl1 ctrlCommit 0;
- __ctrl1 ctrlSetText QUOTE(PATHTOF(UI\protractor.paa));
+ __ctrl1 ctrlSetText QPATHTOF(UI\protractor.paa);
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
__ctrl2 ctrlSetScale 1;
- __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 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY - 0.001 - 0.1074 * (-0.86 max ((ACE_player weaponDirection currentWeapon ACE_player) select 2) min 0.86), 0.2, 0.2 * 4/3];
__ctrl2 ctrlCommit 0;
- __ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
+ __ctrl2 ctrlSetText QPATHTOF(UI\protractor_marker.paa);
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
}, 0.1, []] call CBA_fnc_addPerFrameHandler;
diff --git a/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf b/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf
index fc8dc1b8a2..6bc6e234ae 100644
--- a/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf
+++ b/addons/advanced_ballistics/functions/fnc_handleFirePFH.sqf
@@ -12,7 +12,7 @@
*/
#include "script_component.hpp"
-private _aceTimeSecond = floor ACE_time;
+private _aceTimeSecond = floor CBA_missionTime;
{
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
@@ -31,7 +31,7 @@ private _aceTimeSecond = floor ACE_time;
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.02*_caliber,0.01*_caliber],[[0,0,0,0.65],[0,0,0,0.2]],[1,0],0,0,"","",""];
};
- call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, _aceTimeSecond, ACE_time - _aceTimeSecond]);
+ call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, _aceTimeSecond, CBA_missionTime - _aceTimeSecond]);
};
nil
} count +GVAR(allBullets);
diff --git a/addons/advanced_ballistics/functions/fnc_handleFired.sqf b/addons/advanced_ballistics/functions/fnc_handleFired.sqf
index 9646f065d4..7085224771 100644
--- a/addons/advanced_ballistics/functions/fnc_handleFired.sqf
+++ b/addons/advanced_ballistics/functions/fnc_handleFired.sqf
@@ -88,7 +88,7 @@ if (GVAR(ammoTemperatureEnabled) || GVAR(barrelLengthInfluenceEnabled)) then {
_bulletTraceVisible = false;
if (GVAR(bulletTraceEnabled) && cameraView == "GUNNER") then {
- if (currentWeapon ACE_player in ["ACE_Vector", "Binocular", "Rangefinder", "Laserdesignator"]) then {
+ if (currentWeapon ACE_player == binocular ACE_player) then {
_bulletTraceVisible = true;
} else {
if (currentWeapon ACE_player == primaryWeapon ACE_player && count primaryWeaponItems ACE_player > 2) then {
@@ -110,8 +110,8 @@ if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) th
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
-_aceTimeSecond = floor ACE_time;
-"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _projectile, EGVAR(common,mapLatitude), EGVAR(weather,currentTemperature), EGVAR(common,mapAltitude), EGVAR(weather,currentHumidity), overcast, _aceTimeSecond, ACE_time - _aceTimeSecond];
+_aceTimeSecond = floor CBA_missionTime;
+"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _projectile, EGVAR(common,mapLatitude), EGVAR(weather,currentTemperature), EGVAR(common,mapAltitude), EGVAR(weather,currentHumidity), overcast, _aceTimeSecond, CBA_missionTime - _aceTimeSecond];
GVAR(allBullets) pushBack [_projectile, _caliber, _bulletTraceVisible, GVAR(currentbulletID)];
diff --git a/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf b/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf
index 02468d0349..9fed872a6b 100644
--- a/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf
+++ b/addons/advanced_ballistics/functions/fnc_initializeTerrainExtension.sqf
@@ -18,13 +18,13 @@ if (!GVAR(extensionAvailable)) exitWith {};
private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCells", "_x", "_y", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"];
-_initStartTime = ACE_time;
+_initStartTime = CBA_missionTime;
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
#ifdef DEBUG_MODE_FULL
systemChat "AdvancedBallistics: Terrain already initialized";
- #endIf
+ #endif
};
_mapGrids = ceil(_mapSize / 50) + 1;
@@ -38,7 +38,7 @@ GVAR(currentGrid) = 0;
if (GVAR(currentGrid) >= _gridCells) exitWith {
#ifdef DEBUG_MODE_FULL
- systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
+ systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(CBA_missionTime - _initStartTime)];
#endif
[_idPFH] call CBA_fnc_removePerFrameHandler;
};
diff --git a/addons/advanced_ballistics/stringtable.xml b/addons/advanced_ballistics/stringtable.xml
index 50e8e1ff05..718057a5b4 100644
--- a/addons/advanced_ballistics/stringtable.xml
+++ b/addons/advanced_ballistics/stringtable.xml
@@ -92,7 +92,7 @@
Für Gruppenmitglieder aktiviertPovoleno pro členy skupinyAtivada para membros do grupo
- Activer pour les membres groupés
+ Activer pour les membres du groupeCsoporttagoknak engedélyezveВключена для группыAbilita per Membri del Gruppo
@@ -104,7 +104,7 @@
Aktiviert die erweiterte Ballistik für nicht lokale GruppenmitgliederAktivuje pokročilou balistiku pro nelokální členy skupinyAtiva balística avançada para membros de grupo não locais
- Active la balistique avancée pour les membres groupés non locaux
+ Active la balistique avancée pour les membres du groupe non locauxEngedélyezi a fejlett ballisztikát nem-helyi csoporttagoknakВключает продвинутую баллистику для нелокальных членов группыAbilita Balistica Avanzata per Membri non locali del Gruppo
@@ -128,7 +128,7 @@
Aktiviert die erweiterte Ballistik für alle nicht lokalen Spieler (das Aktivieren dieser Funktion kann zur Beeinträchtigung des Spielerlebnisses im Multiplayer führen)Aktivuje pokročilou balistiku pro všechny nelokální hráče (aktivace této možnosti způsobuje pokles FPS během velké přestřelky v multiplayeru)Ativa balística avançada para todos os jogadores não locais (ativando isso pode degradar a performance durante troca de tiros intensas no multiplayer)
- Active la balistique avancé pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)
+ Active la balistique avancée pour tous les joueurs non locaux (activer cette option peut avoir un impact sur les performance en multi durant les grands échanges de tirs)Engedélyezi a fejlett ballisztikát az összes nem-helyi játékosnak (ez a funkció leronthatja a teljesítményt intenzív többjátékos tűzharcok alatt)Включает продвинутую баллистику для всех нелокальных игроков (включение этой опции может снизить производительность при массовых перестрелках в мультиплеере)Abilita Balistica Avanzata per tutti i giocatori non locali (abilitare questo parametro potrebbe degradare le prestazioni durante scontri intensi in multiplayer)
@@ -140,7 +140,7 @@
Für Gruppenmitglieder immer aktiviertVždy povoleno pro členy skupinySempre ativada para membros do grupo
- Toujours activer pour les membres groupés
+ Toujours activer pour les membres du groupeMindig engedélyezve csoporttagoknakВсегда включена для членов группыSempre abilitato per Membri del Gruppo
@@ -272,7 +272,7 @@
Legt das Intervall zwischen den Berechnungsschritten festUrčuje interval mezi každým výpočtemDefine o intervalo entre cada cálculo
- Défini un intervalle de calcul entre deux simulations
+ Définit un intervalle de calcul entre deux simulationsMeghatározza a számítási lépések közötti időintervallumotОпределяет временной интервал между вычислениямиDefinisce l'intervallo tra ogni step di calcolo
@@ -296,7 +296,7 @@
Gibt den Radius (in Metern) um den Spieler an, bei dem die erweiterte Ballistik auf Geschosse angewendet wirdUrčuje oblast kolem hráče (v metrech), kde je pokročilá balistika použita na projektilDefine o raio ao redor do jogador (em metros) onde a balística avançada será aplicada aos projéteis
- Défini le rayon autour du joueur (en mètres) d'application de la balistique avancée
+ Définit le rayon autour du joueur (en mètres) d'application de la balistique avancéeMeghatározza a játékos körüli hatókört (méterben), ahol a lövedékek fejlett ballisztikát használnakОпределяет радиус вокруг игрока (в метрах), в котором продвинутая баллистика применяется к снарядамDefinisce il raggio attorno al giocatore (in metri) per cui la Balistica Avanzata è applicata ai proiettili
@@ -307,11 +307,11 @@
Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.
- Ce module active la simulation de balistique avancée - ie les projectiles sont influencé par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelles ils sont tirés.
+ Ce module active la simulation de balistique avancée - ie les projectiles sont influencés par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelle ils sont tirés.Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.Questo modulo abilita la simulazione della Balistica Avanzata - cioè la traiettoria dei proiettili è influenzata da variabili come la temperatura dell'aria, pressione atmosferica, umidità, gravità, il tipo di munizione e l'arma da cui è sparata
-
\ No newline at end of file
+
diff --git a/addons/ai/config.cpp b/addons/ai/config.cpp
index fdcb6afe9d..504c8b6e3c 100644
--- a/addons/ai/config.cpp
+++ b/addons/ai/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
- author[] = {"KoffeinFlummi","commy2"};
- authorUrl = "https://github.com/KoffeinFlummi/";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"KoffeinFlummi","commy2"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/aircraft/CfgAmmo.hpp b/addons/aircraft/CfgAmmo.hpp
index 8aa5d3173e..2c3701b8e0 100644
--- a/addons/aircraft/CfgAmmo.hpp
+++ b/addons/aircraft/CfgAmmo.hpp
@@ -11,7 +11,7 @@ class CfgAmmo {
explosive = 1.8;
tracersEvery = 3;
tracerEndTime = 3.5;
-
+
CraterEffects = "ExploAmmoCrater";
explosionEffects = "ExploAmmoExplosion";
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
diff --git a/addons/aircraft/Heli_Attack_01_base_F.hpp b/addons/aircraft/Heli_Attack_01_base_F.hpp
index 26a4605910..a6868033e6 100644
--- a/addons/aircraft/Heli_Attack_01_base_F.hpp
+++ b/addons/aircraft/Heli_Attack_01_base_F.hpp
@@ -860,12 +860,12 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
helmetDown[] = {0,-0.07,0};
};
};
-
+
class Turrets: Turrets {
class MainTurret: MainTurret {
weapons[] = {"ACE_gatling_20mm_Comanche","missiles_DAGR","missiles_ASRAAM", "ACE_AIR_SAFETY"};
magazines[] = {"ACE_500Rnd_20mm_shells_Comanche","4Rnd_AAA_missiles","24Rnd_PG_missiles"};
-
+
outGunnerMayFire = 1;
commanding = -1;
primaryGunner = 1;
@@ -888,13 +888,13 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
minTurn = -120;
maxTurn = 120;
initTurn = 0;
-
+
class OpticsIn
{
delete Narrow;
delete Medium;
delete Wide;
-
+
class ACE_WideUnstabilized {
opticsDisplayName = "W NS";
initAngleX = 0;
@@ -994,4 +994,4 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
weapon = "ACE_gatling_20mm_Comanche";
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/aircraft/RscInGameUI.hpp b/addons/aircraft/RscInGameUI.hpp
index 620d895d9e..6411085b24 100644
--- a/addons/aircraft/RscInGameUI.hpp
+++ b/addons/aircraft/RscInGameUI.hpp
@@ -145,7 +145,7 @@ class RscInGameUI
sizeEx = "0.038*SafezoneH";
shadow = 0;
font = "EtelkaMonospacePro";
- text = PATHTOF(data\Helo_LaserON.paa);
+ text = QPATHTOF(data\Helo_LaserON.paa);
x = "20.45 * (0.01875 * SafezoneH)";
y = "14.1 * (0.025 * SafezoneH)";
w = "12.5 * (0.01875 * SafezoneH)";
@@ -335,7 +335,7 @@ class RscInGameUI
shadow = 0;
align = "right";
font = "EtelkaMonospacePro";
- text = PATHTOF(data\Helo_LaserON.paa);
+ text = QPATHTOF(data\Helo_LaserON.paa);
x = "20.45 * (0.01875 * SafezoneH)";
y = "14.1 * (0.025 * SafezoneH)";
w = "12.5 * (0.01875 * SafezoneH)";
diff --git a/addons/aircraft/config.cpp b/addons/aircraft/config.cpp
index 2ce2d0dc10..f989749383 100644
--- a/addons/aircraft/config.cpp
+++ b/addons/aircraft/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
- author[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
- authorUrl = "https://github.com/KoffeinFlummi/";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/aircraft/flightmodel_thunderbolt.hpp b/addons/aircraft/flightmodel_thunderbolt.hpp
index fa99f40424..2446e166bc 100644
--- a/addons/aircraft/flightmodel_thunderbolt.hpp
+++ b/addons/aircraft/flightmodel_thunderbolt.hpp
@@ -20,4 +20,3 @@ 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/addons/aircraft/stringtable.xml b/addons/aircraft/stringtable.xml
index 9c168d11ff..5480cb9740 100644
--- a/addons/aircraft/stringtable.xml
+++ b/addons/aircraft/stringtable.xml
@@ -7,7 +7,7 @@
RáfagaSeriaDávka
- Contremesure
+ Contre mesuresОчередьSorozatRajada
@@ -29,7 +29,7 @@
Open Cargo DoorLaderampe öffnenAbrir compuerta de carga
- Ourvir la rampe
+ Ouvrir la rampeOtwórz drzwi ładowniOtevřít nákladní prostorRakodórámpa nyitása
@@ -50,4 +50,4 @@
Fechar porta de carga
-
\ No newline at end of file
+
diff --git a/addons/apl/config.cpp b/addons/apl/config.cpp
index 089f4bffe0..3a4743f1ac 100644
--- a/addons/apl/config.cpp
+++ b/addons/apl/config.cpp
@@ -6,8 +6,8 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_main"};
- author[] = {"Bohemia Interactive"};
- authorUrl = "http://ace3mod.com";
+ author = "Bohemia Interactive";
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/atragmx/CfgVehicles.hpp b/addons/atragmx/CfgVehicles.hpp
index cc4a7880fe..6e8a136a03 100644
--- a/addons/atragmx/CfgVehicles.hpp
+++ b/addons/atragmx/CfgVehicles.hpp
@@ -9,7 +9,7 @@ class CfgVehicles {
statement = QUOTE(call FUNC(create_dialog));
showDisabled = 0;
priority = 2;
- icon = PATHTOF(UI\ATRAG_Icon.paa);
+ icon = QPATHTOF(UI\ATRAG_Icon.paa);
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
};
};
diff --git a/addons/atragmx/CfgWeapons.hpp b/addons/atragmx/CfgWeapons.hpp
index 42d1e56ae2..af5e1a9955 100644
--- a/addons/atragmx/CfgWeapons.hpp
+++ b/addons/atragmx/CfgWeapons.hpp
@@ -8,8 +8,8 @@ class CfgWeapons {
scope = 2;
displayName = CSTRING(Name);
descriptionShort = CSTRING(Description);
- model = PATHTOF(data\tdsrecon.p3d);
- picture = PATHTOF(UI\ATRAG_Icon.paa);
+ model = QPATHTOF(data\tdsrecon.p3d);
+ picture = QPATHTOF(UI\ATRAG_Icon.paa);
icon = "iconObject_circle";
mapSize = 0.034;
diff --git a/addons/atragmx/RscTitles.hpp b/addons/atragmx/RscTitles.hpp
index 97dad6e7b6..625cd68deb 100644
--- a/addons/atragmx/RscTitles.hpp
+++ b/addons/atragmx/RscTitles.hpp
@@ -230,7 +230,7 @@ class ATragMX_Display {
idc=-1;
x=0.55*safezoneW+safezoneX+0.315;
};
-
+
class TEXT_GUN_FRAME: ATragMX_RscText {
idc=1001;
style=64;
@@ -610,7 +610,7 @@ class ATragMX_Display {
x=0.550*safezoneW+safezoneX+0.27;
text="4";
action=QUOTE(call FUNC(toggle_solution_setup));
- };
+ };
class TEXT_CALCULATE: TEXT_SCOPE_UNIT {
idc=3000;
style=ST_RIGHT;
@@ -1059,7 +1059,7 @@ class ATragMX_Display {
text="Cancel";
action=QUOTE(false call FUNC(show_add_new_gun); true call FUNC(show_gun_list));
};
-
+
class TEXT_GUN_AMMO_DATA_BORE_HEIGHT: TEXT_BORE_HEIGHT {
idc=12000;
w=0.22;
@@ -1147,7 +1147,7 @@ class ATragMX_Display {
class TEXT_GUN_AMMO_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
idc=12011;
};
-
+
class TEXT_ATMO_ENV_DATA_DEFAULT: TEXT_LEAD {
idc=13000;
w=0.08;
@@ -1231,7 +1231,7 @@ class ATragMX_Display {
y=0.265*safezoneH+safezoneY+0.29;
text="Calc Method";
};
-
+
class TEXT_TARGET_DATA_LATITUDE: TEXT_BORE_HEIGHT {
idc=14000;
w=0.22;
@@ -1379,7 +1379,7 @@ class ATragMX_Display {
class TEXT_TARGET_DATA_NEXT: TEXT_TARGET_SPEED_ASSIST_NEXT {
idc=14011;
};
-
+
class TEXT_SOLUTION_SETUP_SHOW_RESULT_IN: TEXT_GUN_AMMO_DATA_BORE_HEIGHT {
idc=15000;
style=64;
@@ -1469,4 +1469,4 @@ class ATragMX_Display {
action=QUOTE(0 call FUNC(toggle_solution_setup));
};
};
-};
\ No newline at end of file
+};
diff --git a/addons/atragmx/XEH_postInit.sqf b/addons/atragmx/XEH_postInit.sqf
index 4b61a28551..8d4907523b 100644
--- a/addons/atragmx/XEH_postInit.sqf
+++ b/addons/atragmx/XEH_postInit.sqf
@@ -7,41 +7,41 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
} else {
// Profile Name, Muzzle Velocity, Zero Range, Scope Base Angle, AirFriction, Bore Height, Scope Unit, Scope Click Unit, Scope Click Number, Maximum Elevation, Dialed Elevation, Dialed Windage, Mass, Bullet Diameter, Rifle Twist, BC, Drag Model, Atmosphere Model
GVAR(gunList) = [["12.7x108mm" , 820, 100, 0.0657485, -0.00063800, 3.81, 0, 2, 10, 120, 0, 0, 48.28, 12.7, 38.10, 0.630, 1, "ASM" ],
-
+
["12.7x99mm AMAX" , 860, 100, 0.0611565, -0.00036645, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 38.10, 1.050, 1, "ASM" ],
["12.7x99mm" , 900, 100, 0.0582418, -0.00057503, 3.81, 0, 2, 10, 120, 0, 0, 41.92, 12.7, 38.10, 0.670, 1, "ASM" ],
-
+
["12.7x54mm" , 300, 100, 0.3394630, -0.00019268, 3.81, 0, 2, 10, 120, 0, 0, 48.60, 12.7, 24.13, 1.050, 1, "ASM" ],
-
+
[".408 Chey Tac" , 910, 100, 0.0569400, -0.00038944, 3.81, 0, 2, 10, 120, 0, 0, 27.15, 10.4, 33.02, 0.970, 1, "ASM" ],
-
+
["9.3×64mm" , 870, 100, 0.0619295, -0.00108571, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 9.30, 35.56, 0.368, 1, "ASM" ],
-
+
[".338LM 250gr" , 880, 100, 0.0598469, -0.00059133, 3.81, 0, 2, 10, 120, 0, 0, 16.20, 8.58, 25.40, 0.322, 7, "ICAO"],
[".338LM 300gr" , 800, 100, 0.0677343, -0.00052190, 3.81, 0, 2, 10, 120, 0, 0, 19.44, 8.58, 25.40, 0.381, 7, "ICAO"],
[".338LM API526" , 895, 100, 0.0588865, -0.00069611, 3.81, 0, 2, 10, 120, 0, 0, 16.39, 8.58, 25.40, 0.560, 1, "ASM" ],
-
+
[".300WM Mk248 Mod 0", 900, 100, 0.0584442, -0.00070530, 3.81, 0, 2, 10, 120, 0, 0, 13.31, 7.80, 25.40, 0.268, 7, "ICAO"],
[".300WM Mk248 Mod 1", 867, 100, 0.0610738, -0.00061188, 3.81, 0, 2, 10, 120, 0, 0, 14.26, 7.80, 25.40, 0.310, 7, "ICAO"],
[".300WM Berger OTM" , 853, 100, 0.0622179, -0.00053733, 3.81, 0, 2, 10, 120, 0, 0, 14.90, 7.80, 25.40, 0.368, 7, "ICAO"],
-
+
["7.62x54mmR" , 800, 100, 0.0691878, -0.00100023, 3.81, 0, 2, 10, 120, 0, 0, 9.849, 7.92, 24.13, 0.400, 1, "ICAO"],
-
+
["7.62x51mm M80" , 810, 100, 0.0679374, -0.00100957, 3.81, 0, 2, 10, 120, 0, 0, 9.525, 7.82, 25.40, 0.200, 7, "ICAO"],
["7.62x51mm M118LR" , 780, 100, 0.0710319, -0.00082828, 3.81, 0, 2, 10, 120, 0, 0, 11.34, 7.82, 25.40, 0.243, 7, "ICAO"],
["7.62x51mm Mk319" , 910, 100, 0.0584524, -0.00102338, 3.81, 0, 2, 10, 120, 0, 0, 8.424, 7.82, 25.40, 0.377, 1, "ICAO"],
["7.62x51mm M993" , 930, 100, 0.0570316, -0.00107148, 3.81, 0, 2, 10, 120, 0, 0, 8.230, 7.82, 25.40, 0.359, 1, "ICAO"],
["7.62x51mm Subsonic", 320, 100, 0.3059680, -0.00049899, 3.81, 0, 2, 10, 120, 0, 0, 12.96, 7.82, 25.40, 0.235, 7, "ICAO"],
-
+
["6.5x39mm" , 800, 100, 0.0683482, -0.00075308, 3.81, 0, 2, 10, 120, 0, 0, 7.970, 6.71, 22.86, 0.263, 7, "ICAO"],
["6.5x47mm Lapua" , 800, 100, 0.0682221, -0.00067037, 3.81, 0, 2, 10, 120, 0, 0, 9.007, 6.71, 22.86, 0.290, 7, "ICAO"],
["6.5mm Creedmor" , 840, 100, 0.0636501, -0.00060887, 3.81, 0, 2, 10, 120, 0, 0, 9.072, 6.71, 22.86, 0.317, 7, "ICAO"],
-
+
["5.56x45mm M855" , 870, 100, 0.0626386, -0.00126466, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.151, 7, "ASM" ],
["5.56x45mm Mk262" , 820, 100, 0.0671481, -0.00109563, 3.81, 0, 2, 10, 120, 0, 0, 4.990, 5.70, 17.78, 0.361, 1, "ASM" ],
["5.56x45mm Mk318" , 880, 100, 0.0615937, -0.00123318, 3.81, 0, 2, 10, 120, 0, 0, 4.018, 5.70, 17.78, 0.307, 1, "ASM" ],
["5.56x45mm M995" , 869, 100, 0.0626713, -0.00123272, 3.81, 0, 2, 10, 120, 0, 0, 4.536, 5.70, 17.78, 0.310, 1, "ASM" ]];
-
+
[] call FUNC(clear_user_data);
profileNamespace setVariable ["ACE_ATragMX_gunList", GVAR(gunList)];
};
diff --git a/addons/atragmx/config.cpp b/addons/atragmx/config.cpp
index 3abe32ba34..db1b85b761 100644
--- a/addons/atragmx/config.cpp
+++ b/addons/atragmx/config.cpp
@@ -6,7 +6,9 @@ class CfgPatches {
weapons[] = {"ACE_ATragMX"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ACE_common", "ACE_weather"};
- author = "Ruthberg";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"Ruthberg"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
@@ -14,4 +16,4 @@ class CfgPatches {
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"
#include "CfgWeapons.hpp"
-#include "RscTitles.hpp"
\ No newline at end of file
+#include "RscTitles.hpp"
diff --git a/addons/atragmx/functions/fnc_calculate_solution.sqf b/addons/atragmx/functions/fnc_calculate_solution.sqf
index 869ce8d098..e71658f490 100644
--- a/addons/atragmx/functions/fnc_calculate_solution.sqf
+++ b/addons/atragmx/functions/fnc_calculate_solution.sqf
@@ -42,31 +42,14 @@
* Public: No
*/
#include "script_component.hpp"
-
-private ["_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity", "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed1", "_windSpeed2", "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_drag", "_bc", "_dragModel", "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude", "_directionOfFire"];
-_scopeBaseAngle = _this select 0;
-_bulletMass = _this select 1;
-_boreHeight = _this select 2;
-_airFriction = _this select 3;
-_muzzleVelocity = _this select 4;
-_temperature = _this select 5;
-_barometricPressure = _this select 6;
-_relativeHumidity = _this select 7;
-_simSteps = _this select 8;
-_windSpeed1 = (_this select 9) select 0;
-_windSpeed2 = (_this select 9) select 1;
-_windDirection = _this select 10;
-_inclinationAngle = _this select 11;
-_targetSpeed = _this select 12;
-_targetRange = _this select 13;
-_bc = _this select 14;
-_dragModel = _this select 15;
-_atmosphereModel = _this select 16;
-_storeRangeCardData = _this select 17;
-_stabilityFactor = _this select 18;
-_twistDirection = _this select 19;
-_latitude = _this select 20;
-_directionOfFire = _this select 21;
+params [
+ "_scopeBaseAngle", "_bulletMass", "_boreHeight", "_airFriction", "_muzzleVelocity",
+ "_temperature", "_barometricPressure", "_relativeHumidity", "_simSteps", "_windSpeed",
+ "_windDirection", "_inclinationAngle", "_targetSpeed", "_targetRange", "_bc", "_dragModel",
+ "_atmosphereModel", "_storeRangeCardData", "_stabilityFactor", "_twistDirection", "_latitude",
+ "_directionOfFire"
+];
+_windSpeed params ["_windSpeed1", "_windSpeed2"];
private ["_bulletPos", "_bulletVelocity", "_bulletAccel", "_bulletSpeed", "_gravity", "_deltaT"];
_bulletPos = [0, 0, 0];
@@ -133,7 +116,7 @@ _bulletVelocity set [2, Sin(_scopeBaseAngle) * _muzzleVelocity];
while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
_bulletSpeed = vectorMagnitude _bulletVelocity;
-
+
_speedTotal = _speedTotal + _bulletSpeed;
_stepsTotal = _stepsTotal + 1;
_speedAverage = (_speedTotal / _stepsTotal);
@@ -142,7 +125,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
_trueSpeed = vectorMagnitude _trueVelocity;
if (missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) then {
- _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
+ private _drag = if (missionNamespace getVariable [QEGVAR(advanced_ballistics,extensionAvailable), false]) then {
parseNumber(("ace_advanced_ballistics" callExtension format["retard:%1:%2:%3", _dragModel, _bc, _trueSpeed]))
} else {
([_dragModel, _bc, _trueSpeed] call EFUNC(advanced_ballistics,calculateRetardation))
@@ -173,7 +156,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
};
_kineticEnergy = 0.5 * (_bulletMass / 1000 * (_bulletSpeed ^ 2));
_kineticEnergy = _kineticEnergy * 0.737562149;
-
+
if ((missionNamespace getVariable [QEGVAR(advanced_ballistics,enabled), false]) && (_bulletPos select 1) > 0) then {
// Coriolis
_horizontalDeflection = 0.0000729 * ((_bulletPos select 1) ^ 2) * sin(_latitude) / _speedAverage;
@@ -190,7 +173,7 @@ while {_TOF < 15 && (_bulletPos select 1) < _targetRange} do {
_windage1 = _windage1 + _spinDrift;
_windage2 = _windage2 + _spinDrift;
};
-
+
GVAR(rangeCardData) set [_n, [_range, _elevation * 60, [_windage1 * 60, _windage2 * 60], _lead, _TOF, _bulletSpeed, _kineticEnergy]];
_n = _n + 1;
};
diff --git a/addons/atragmx/functions/fnc_change_gun.sqf b/addons/atragmx/functions/fnc_change_gun.sqf
index 7c5abac47e..8fe89dc4fe 100644
--- a/addons/atragmx/functions/fnc_change_gun.sqf
+++ b/addons/atragmx/functions/fnc_change_gun.sqf
@@ -17,10 +17,7 @@
*/
#include "script_component.hpp"
-private ["_gunID", "_restoreMemory", "_updateDisplay"];
-_gunID = _this select 0;
-_restoreMemory = _this select 1;
-_updateDisplay = _this select 2;
+params ["_gunID", "_restoreMemory", "_updateDisplay"];
if (_gunID < 0 || _gunID > (count GVAR(gunList)) - 1) exitWith {};
diff --git a/addons/atragmx/functions/fnc_create_dialog.sqf b/addons/atragmx/functions/fnc_create_dialog.sqf
index 07b93eb2da..a9912ccd34 100644
--- a/addons/atragmx/functions/fnc_create_dialog.sqf
+++ b/addons/atragmx/functions/fnc_create_dialog.sqf
@@ -39,7 +39,7 @@ if (GVAR(showRangeCard)) then {
};
GVAR(showRangeCardSetup) call FUNC(show_range_card_setup);
GVAR(showSolutionSetup) call FUNC(show_solution_setup);
-GVAR(showTargetData) call FUNC(show_target_data);
+GVAR(showTargetData) call FUNC(show_target_data);
GVAR(showTargetRangeAssist) call FUNC(show_target_range_assist);
GVAR(showTargetSpeedAssist) call FUNC(show_target_speed_assist);
GVAR(showTargetSpeedAssistTimer) call FUNC(show_target_speed_assist_timer);
@@ -56,7 +56,7 @@ GVAR(DialogPFH) = [{
if (!GVAR(active)) exitWith {
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
- __ctrlBackground ctrlSetText format [QUOTE(PATHTOF(UI\ATRAG_%1.paa)), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
+ __ctrlBackground ctrlSetText format [QPATHTOF(UI\ATRAG_%1.paa), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
}, 60, []] call CBA_fnc_addPerFrameHandler;
true
diff --git a/addons/atragmx/functions/fnc_show_gun_list.sqf b/addons/atragmx/functions/fnc_show_gun_list.sqf
index 5e1cdfa453..a3c45a977d 100644
--- a/addons/atragmx/functions/fnc_show_gun_list.sqf
+++ b/addons/atragmx/functions/fnc_show_gun_list.sqf
@@ -21,6 +21,5 @@ GVAR(showGunList) = _this;
if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 6002);
-
lbSetCurSel [6000, GVAR(currentGun)];
};
diff --git a/addons/atragmx/functions/fnc_show_range_card_setup.sqf b/addons/atragmx/functions/fnc_show_range_card_setup.sqf
index 3d44c14b53..b3457793b9 100644
--- a/addons/atragmx/functions/fnc_show_range_card_setup.sqf
+++ b/addons/atragmx/functions/fnc_show_range_card_setup.sqf
@@ -21,7 +21,7 @@ GVAR(showRangeCardSetup) = _this;
if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 10006);
-
+
ctrlSetText [10003, Str(Round(GVAR(rangeCardStartRange)))];
ctrlSetText [10004, Str(Round(GVAR(rangeCardEndRange)))];
ctrlSetText [10005, Str(Round(GVAR(rangeCardIncrement)))];
diff --git a/addons/atragmx/functions/fnc_show_target_range_assist.sqf b/addons/atragmx/functions/fnc_show_target_range_assist.sqf
index 4f46932a0b..ec61edd1f4 100644
--- a/addons/atragmx/functions/fnc_show_target_range_assist.sqf
+++ b/addons/atragmx/functions/fnc_show_target_range_assist.sqf
@@ -21,7 +21,6 @@ GVAR(showTargetRangeAssist) = _this;
if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 7018);
-
ctrlSetText [7012, Str(parseNumber(ctrlText 320))];
ctrlSetText [7013, Str(parseNumber(ctrlText 340))];
@@ -30,4 +29,4 @@ if (_this) then {
} else {
ctrlSetText [7016, "Meters"];
};
-};
\ No newline at end of file
+};
diff --git a/addons/atragmx/functions/fnc_show_target_speed_assist.sqf b/addons/atragmx/functions/fnc_show_target_speed_assist.sqf
index 2e66b5ea7b..b3cf1b4393 100644
--- a/addons/atragmx/functions/fnc_show_target_speed_assist.sqf
+++ b/addons/atragmx/functions/fnc_show_target_speed_assist.sqf
@@ -21,7 +21,7 @@ GVAR(showTargetSpeedAssist) = _this;
if (_this) then {
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 8012);
-
+
ctrlSetText [8004, Str(Round((GVAR(targetRange) select GVAR(currentTarget))))];
if (GVAR(currentUnit) == 1) then {
@@ -29,7 +29,7 @@ if (_this) then {
} else {
ctrlSetText [8008, "Meters"];
};
-
+
if (GVAR(currentUnit) == 2) then {
ctrlSetText [8011, "m/s"];
} else {
diff --git a/addons/atragmx/functions/fnc_sord.sqf b/addons/atragmx/functions/fnc_sord.sqf
index a433153c0e..b342072018 100644
--- a/addons/atragmx/functions/fnc_sord.sqf
+++ b/addons/atragmx/functions/fnc_sord.sqf
@@ -17,10 +17,7 @@
*/
#include "script_component.hpp"
-private ["_slopeDistance", "_azimuth", "_inclination"];
-_slopeDistance = _this select 0;
-_azimuth = _this select 1;
-_inclination = _this select 2;
+params ["_slopeDistance", "_azimuth", "_inclination"];
GVAR(inclinationAngle) set [GVAR(currentTarget), round(_inclination)];
GVAR(directionOfFire) set [GVAR(currentTarget), round(_azimuth)];
diff --git a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf
index 0f42f9637c..692de386af 100644
--- a/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf
+++ b/addons/atragmx/functions/fnc_target_speed_assist_timer.sqf
@@ -21,26 +21,26 @@ if !(ctrlVisible 9000) then {
true call FUNC(show_target_speed_assist_timer);
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 9002);
-
+
[{
private ["_args", "_startTime"];
_args = _this select 0;
_startTime = _args select 0;
-
+
if (!(GVAR(speedAssistTimer))) exitWith {
GVAR(speedAssistTimer) = true;
-
- ctrlSetText [8006, Str(Round((ACE_time - _startTime) * 10) / 10)];
+
+ ctrlSetText [8006, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
[] call FUNC(calculate_target_speed_assist);
false call FUNC(show_target_speed_assist_timer);
true call FUNC(show_target_speed_assist);
-
+
[_this select 1] call CBA_fnc_removePerFrameHandler;
};
-
- ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
-
- }, 0.1, [ACE_time]] call CBA_fnc_addPerFrameHandler;
+
+ ctrlSetText [9001, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
+
+ }, 0.1, [CBA_missionTime]] call CBA_fnc_addPerFrameHandler;
};
diff --git a/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf b/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf
index ce761c2216..87e973c7c0 100644
--- a/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf
+++ b/addons/atragmx/functions/fnc_toggle_atmo_env_data.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 13000) then {
false call FUNC(show_atmo_env_data);
true call FUNC(show_main_page);
-
+
if (_this == 1) then {
call FUNC(calculate_target_solution);
};
diff --git a/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf b/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf
index 0fd4b913b8..f3eb814da7 100644
--- a/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf
+++ b/addons/atragmx/functions/fnc_toggle_gun_ammo_data.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 12000) then {
false call FUNC(show_gun_ammo_data);
true call FUNC(show_main_page);
-
+
if (_this == 1) then {
call FUNC(update_zero_range);
call FUNC(calculate_target_solution);
diff --git a/addons/atragmx/functions/fnc_toggle_gun_list.sqf b/addons/atragmx/functions/fnc_toggle_gun_list.sqf
index 1cc1f9338b..e5dbf54bd5 100644
--- a/addons/atragmx/functions/fnc_toggle_gun_list.sqf
+++ b/addons/atragmx/functions/fnc_toggle_gun_list.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 6000) then {
false call FUNC(show_gun_list);
true call FUNC(show_main_page);
-
+
if (_this) then {
[lbCurSel 6000, true, true] call FUNC(change_gun);
};
diff --git a/addons/atragmx/functions/fnc_toggle_range_card.sqf b/addons/atragmx/functions/fnc_toggle_range_card.sqf
index 059bc7e40b..7d8b7a0239 100644
--- a/addons/atragmx/functions/fnc_toggle_range_card.sqf
+++ b/addons/atragmx/functions/fnc_toggle_range_card.sqf
@@ -21,9 +21,9 @@ if (ctrlVisible 5006) then {
} else {
false call FUNC(show_main_page);
true call FUNC(show_range_card);
-
+
ctrlSetFocus ((uiNamespace getVariable "ATragMX_Display") displayCtrl 5001);
-
+
[] call FUNC(calculate_range_card);
[] call FUNC(update_range_card);
};
diff --git a/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf b/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf
index 738a154d17..96c31459b2 100644
--- a/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf
+++ b/addons/atragmx/functions/fnc_toggle_range_card_setup.sqf
@@ -18,12 +18,12 @@
if (ctrlVisible 10000) then {
false call FUNC(show_range_card_setup);
true call FUNC(show_range_card);
-
+
if (_this == 1) then {
GVAR(rangeCardStartRange) = 0 max Round(parseNumber(ctrlText 10003)) min 3000;
GVAR(rangeCardEndRange) = 0 max Round(parseNumber(ctrlText 10004)) min 3000;
GVAR(rangeCardIncrement) = 1 max Round(parseNumber(ctrlText 10005)) min 3000;
-
+
[] call FUNC(calculate_range_card);
[] call FUNC(update_range_card);
};
diff --git a/addons/atragmx/functions/fnc_toggle_solution_setup.sqf b/addons/atragmx/functions/fnc_toggle_solution_setup.sqf
index 0e9f702383..5372b205d0 100644
--- a/addons/atragmx/functions/fnc_toggle_solution_setup.sqf
+++ b/addons/atragmx/functions/fnc_toggle_solution_setup.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 15000) then {
false call FUNC(show_solution_setup);
true call FUNC(show_main_page);
-
+
if (_this == 1) then {
GVAR(currentScopeClickUnit) = GVAR(currentScopeClickUnitTemp);
GVAR(currentScopeClickNumber) = GVAR(currentScopeClickNumberTemp);
@@ -30,9 +30,9 @@ if (ctrlVisible 15000) then {
} else {
true call FUNC(show_solution_setup);
false call FUNC(show_main_page);
-
+
GVAR(currentScopeClickUnitTemp) = GVAR(currentScopeClickUnit);
GVAR(currentScopeClickNumberTemp) = GVAR(currentScopeClickNumber);
-
+
[] call FUNC(update_solution_setup);
};
diff --git a/addons/atragmx/functions/fnc_toggle_target_data.sqf b/addons/atragmx/functions/fnc_toggle_target_data.sqf
index 90fefbf37e..2cfa2f8df5 100644
--- a/addons/atragmx/functions/fnc_toggle_target_data.sqf
+++ b/addons/atragmx/functions/fnc_toggle_target_data.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 14000) then {
false call FUNC(show_target_data);
true call FUNC(show_main_page);
-
+
if (_this == 1) then {
call FUNC(calculate_target_solution);
};
diff --git a/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf b/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf
index d13ef4fb2e..83d2daa95f 100644
--- a/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf
+++ b/addons/atragmx/functions/fnc_toggle_target_range_assist.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 7000) then {
false call FUNC(show_target_range_assist);
true call FUNC(show_main_page);
-
+
if (_this == 1) then {
ctrlSetText [320, Str(parseNumber(ctrlText 7012))];
ctrlSetText [140040, Str(parseNumber(ctrlText 7012))];
diff --git a/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf b/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf
index 5b88a6cfce..4d1680d195 100644
--- a/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf
+++ b/addons/atragmx/functions/fnc_toggle_target_speed_assist.sqf
@@ -18,7 +18,7 @@
if (ctrlVisible 8000) then {
false call FUNC(show_target_speed_assist);
true call FUNC(show_main_page);
-
+
if (_this == 1) then {
[] call FUNC(calculate_target_speed_assist);
private ["_targetSpeed"];
diff --git a/addons/atragmx/functions/fnc_update_range_card.sqf b/addons/atragmx/functions/fnc_update_range_card.sqf
index d084754959..e8c910ca74 100644
--- a/addons/atragmx/functions/fnc_update_range_card.sqf
+++ b/addons/atragmx/functions/fnc_update_range_card.sqf
@@ -43,7 +43,7 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
_TOF = _x select 4;
_velocity = _x select 5;
_kineticEnergy = _x select 6;
-
+
switch (GVAR(currentScopeUnit)) do {
case 0: {
_elevation = _elevation / 3.38;
@@ -63,25 +63,25 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
};
_clickNumber = GVAR(workingMemory) select 8;
_clickInterval = _clickSize / _clickNumber;
-
+
_elevation = Round(_elevation / _clickInterval);
_windage1 = Round(_windage1 / _clickInterval);
_windage2 = Round(_windage2 / _clickInterval);
};
};
-
+
_elevationOutput = Str(Round(_elevation * 100) / 100);
_windageOutput = Str(Round(_windage1 * 100) / 100);
-
+
_rangeOutput = Str(_range);
if (_velocity < _speedOfSound) then {
_rangeOutput = _rangeOutput + "*";
};
-
+
if (GVAR(currentUnit) == 1) then {
_velocity = _velocity * 3.2808399;
};
-
+
switch (GVAR(rangeCardCurrentColumn)) do {
case 0: {
if (GVAR(showWind2)) then {
@@ -100,6 +100,6 @@ _speedOfSound = GVAR(temperature) call EFUNC(weather,calculateSpeedOfSound);
_lastColumnOutput = Str(Round(_TOF * 100) / 100);
}
};
-
+
lnbAddRow [5007, [_rangeOutput, _elevationOutput, _windageOutput, _lastColumnOutput]];
} forEach GVAR(rangeCardData);
diff --git a/addons/atragmx/functions/fnc_update_result.sqf b/addons/atragmx/functions/fnc_update_result.sqf
index bb708efaab..2b6ca29e23 100644
--- a/addons/atragmx/functions/fnc_update_result.sqf
+++ b/addons/atragmx/functions/fnc_update_result.sqf
@@ -33,24 +33,24 @@ switch (GVAR(currentScopeUnit)) do {
case 0: {
_elevationAbs = _elevationAbs / 3.38;
_windageAbs = _windageAbs / 3.38;
-
+
_wind2 = _wind2 / 3.38;
-
+
_elevationRel = _elevationRel / 3.38;
_windageRel = _windageRel / 3.38;
-
+
_elevationCur = _elevationCur / 3.38;
_windageCur = _windageCur / 3.38;
};
case 2: {
_elevationAbs = _elevationAbs * 1.047;
_windageAbs = _windageAbs * 1.047;
-
+
_wind2 = _wind2 / 1.047;
-
+
_elevationRel = _elevationRel * 1.047;
_windageRel = _windageRel * 1.047;
-
+
_elevationCur = _elevationCur * 1.047;
_windageCur = _windageCur * 1.047;
};
@@ -62,15 +62,15 @@ switch (GVAR(currentScopeUnit)) do {
};
_clickNumber = GVAR(workingMemory) select 8;
_clickInterval = _clickSize / _clickNumber;
-
+
_elevationAbs = Round(_elevationAbs / _clickInterval);
_windageAbs = Round(_windageAbs / _clickInterval);
-
+
_wind2 = Round(_wind2 / _clickInterval);
-
+
_elevationRel = Round(_elevationRel / _clickInterval);
_windageRel = Round(_windageRel / _clickInterval);
-
+
_elevationCur = Round(_elevationCur / _clickInterval);
_windageCur = Round(_windageCur / _clickInterval);
};
@@ -166,4 +166,4 @@ if (GVAR(showWind2)) then {
} else {
ctrlSetText [420, "0.0"];
};
-};
\ No newline at end of file
+};
diff --git a/addons/atragmx/initKeybinds.sqf b/addons/atragmx/initKeybinds.sqf
index 51d2338292..94704e8132 100644
--- a/addons/atragmx/initKeybinds.sqf
+++ b/addons/atragmx/initKeybinds.sqf
@@ -33,4 +33,4 @@ _closeCode = {
closeDialog 0;
};
};
-[(localize LSTRING(Name)), QUOTE(PATHTOF(UI\ATRAG_Icon.paa)), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
+[(localize LSTRING(Name)), QPATHTOF(UI\ATRAG_Icon.paa), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
diff --git a/addons/atragmx/stringtable.xml b/addons/atragmx/stringtable.xml
index a8e23ffbda..3790fb1f2d 100644
--- a/addons/atragmx/stringtable.xml
+++ b/addons/atragmx/stringtable.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/addons/attach/CfgMagazines.hpp b/addons/attach/CfgMagazines.hpp
index f85cac82b4..7ba8cebbc5 100644
--- a/addons/attach/CfgMagazines.hpp
+++ b/addons/attach/CfgMagazines.hpp
@@ -3,17 +3,17 @@ class CfgMagazines {
class CA_Magazine;
class B_IR_Grenade: CA_Magazine {
ACE_Attachable = "B_IRStrobe";
- model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
+ model = QPATHTOF(data\ace_IRStrobe.p3d);
};
class O_IR_Grenade: B_IR_Grenade {
ACE_Attachable = "O_IRStrobe";
- model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
+ model = QPATHTOF(data\ace_IRStrobe.p3d);
};
class I_IR_Grenade: B_IR_Grenade {
ACE_Attachable = "I_IRStrobe";
- model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
+ model = QPATHTOF(data\ace_IRStrobe.p3d);
};
class SmokeShell;
diff --git a/addons/attach/CfgVehicles.hpp b/addons/attach/CfgVehicles.hpp
index e462c0cefa..1e0c0f3e71 100644
--- a/addons/attach/CfgVehicles.hpp
+++ b/addons/attach/CfgVehicles.hpp
@@ -9,7 +9,7 @@
exceptions[] = {}; \
showDisabled = 0; \
priority = 0; \
- icon = PATHTOF(UI\attach_ca.paa); \
+ icon = QPATHTOF(UI\attach_ca.paa); \
distance = 4.5; \
}; \
class GVAR(DetachVehicle) { \
@@ -19,7 +19,7 @@
exceptions[] = {}; \
showDisabled = 0; \
priority = 0.1; \
- icon = PATHTOF(UI\detach_ca.paa); \
+ icon = QPATHTOF(UI\detach_ca.paa); \
distance = 4.5; \
}; \
}; \
@@ -60,7 +60,7 @@ class CfgVehicles {
exceptions[] = {"isNotDragging"};
showDisabled = 0;
priority = 5;
- icon = PATHTOF(UI\attach_ca.paa);
+ icon = QPATHTOF(UI\attach_ca.paa);
};
class GVAR(Detach) {
displayName = CSTRING(Detach);
@@ -69,7 +69,7 @@ class CfgVehicles {
exceptions[] = {"isNotDragging"};
showDisabled = 0;
priority = 5;
- icon = PATHTOF(UI\detach_ca.paa);
+ icon = QPATHTOF(UI\detach_ca.paa);
};
};
};
diff --git a/addons/attach/CfgWeapons.hpp b/addons/attach/CfgWeapons.hpp
index dfea64678d..cc50b3be5e 100644
--- a/addons/attach/CfgWeapons.hpp
+++ b/addons/attach/CfgWeapons.hpp
@@ -8,8 +8,8 @@ class CfgWeapons {
scope = 2;
displayName = CSTRING(IrStrobe_Name);
descriptionShort = CSTRING(IrStrobe_Description);
- model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
- picture = PATHTOF(UI\irstrobe_item.paa);
+ model = QPATHTOF(data\ace_IRStrobe.p3d);
+ picture = QPATHTOF(UI\irstrobe_item.paa);
class ItemInfo: InventoryItem_Base_F {
mass = 1;
diff --git a/addons/attach/config.cpp b/addons/attach/config.cpp
index 0ecc37788a..4c06adc3eb 100644
--- a/addons/attach/config.cpp
+++ b/addons/attach/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {"ACE_IR_Strobe_Item"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
- author[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
- authorUrl = "https://github.com/KoffeinFlummi/";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/attach/functions/fnc_attach.sqf b/addons/attach/functions/fnc_attach.sqf
index 305c3c0960..42bfe44dbc 100644
--- a/addons/attach/functions/fnc_attach.sqf
+++ b/addons/attach/functions/fnc_attach.sqf
@@ -51,7 +51,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
- [{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call EFUNC(common,execNextFrame);
+ [{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call CBA_fnc_execNextFrame;
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = PLACE_APPROVE;}] call EFUNC(common,AddActionEventHandler)];
_actionID = _unit addAction [format ["%1", localize LSTRING(CancelAction)], {GVAR(placeAction) = PLACE_CANCEL}];
diff --git a/addons/attach/functions/fnc_detach.sqf b/addons/attach/functions/fnc_detach.sqf
index 05c625b374..0cf5c78082 100644
--- a/addons/attach/functions/fnc_detach.sqf
+++ b/addons/attach/functions/fnc_detach.sqf
@@ -57,7 +57,7 @@ if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then
detach _attachedObject;
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
// Delete attached item after 0.5 seconds
- [{deleteVehicle (_this select 0)}, [_attachedObject], 2] call EFUNC(common,waitAndExecute);
+ [{deleteVehicle (_this select 0)}, [_attachedObject], 2] call CBA_fnc_waitAndExecute;
} else {
// Delete attached item
deleteVehicle _attachedObject;
diff --git a/addons/attach/functions/fnc_getChildrenAttachActions.sqf b/addons/attach/functions/fnc_getChildrenAttachActions.sqf
index aeb75c00d4..9f811197e0 100644
--- a/addons/attach/functions/fnc_getChildrenAttachActions.sqf
+++ b/addons/attach/functions/fnc_getChildrenAttachActions.sqf
@@ -31,7 +31,7 @@ _actions = [];
if (getText (_item >> "ACE_Attachable") != "") then {
_displayName = getText(_item >> "displayName");
_picture = getText(_item >> "picture");
- _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call EFUNC(common,execNextFrame)}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
+ _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
_actions pushBack [_action, [], _target];
};
};
@@ -44,7 +44,7 @@ _actions = [];
if (getText (_item >> "ACE_Attachable") != "") then {
_displayName = getText(_item >> "displayName");
_picture = getText(_item >> "picture");
- _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call EFUNC(common,execNextFrame)}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
+ _action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
_actions pushBack [_action, [], _target];
};
};
diff --git a/addons/attach/functions/fnc_handleGetIn.sqf b/addons/attach/functions/fnc_handleGetIn.sqf
index d9f469eee2..dd173c4125 100644
--- a/addons/attach/functions/fnc_handleGetIn.sqf
+++ b/addons/attach/functions/fnc_handleGetIn.sqf
@@ -36,7 +36,7 @@ if (!isNull _xObject) then {
params ["_detachedLight"];
TRACE_1("delayed delete",_detachedLight);
deleteVehicle _detachedLight;
- }, [_xObject], 2] call EFUNC(common,waitAndExecute);
+ }, [_xObject], 2] call CBA_fnc_waitAndExecute;
(_attachedList select 0) set [0, objNull];
};
diff --git a/addons/attach/functions/fnc_handleKilled.sqf b/addons/attach/functions/fnc_handleKilled.sqf
index 06c5473c88..69ab31122b 100644
--- a/addons/attach/functions/fnc_handleKilled.sqf
+++ b/addons/attach/functions/fnc_handleKilled.sqf
@@ -32,7 +32,7 @@ if ((count _attachedList) == 0) exitWith {};
//If it's a vehicle, also delete the attached
if (!(_deadUnit isKindOf "CAManBase")) then {
_xObject setPos ((getPos _deadUnit) vectorAdd [0, 0, -1000]);
- [{deleteVehicle (_this select 0)}, [_xObject], 2] call EFUNC(common,waitAndExecute);
+ [{deleteVehicle (_this select 0)}, [_xObject], 2] call CBA_fnc_waitAndExecute;
};
} forEach _attachedList;
diff --git a/addons/attach/stringtable.xml b/addons/attach/stringtable.xml
index 4035b389a2..462e3d725c 100644
--- a/addons/attach/stringtable.xml
+++ b/addons/attach/stringtable.xml
@@ -1,4 +1,4 @@
-
+
@@ -90,7 +90,7 @@
Leuchtstab befestigtBarra de luz acopladaPrzyczepiono światło chemiczne
- Chemlight attachée
+ Cyalume attachéeChemické světlo připnutoChemlight FixadaChemlight attaccata
@@ -102,7 +102,7 @@
Leuchtstab entferntBarra de luz quitadaOdczepiono światło chemiczne
- Chemlight détachée
+ Cyalume détachéeChemické světlo odepnutoChemlight SeparadaChemlight staccata
@@ -138,7 +138,7 @@
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.
- La balise IR permet de signaler votre position grace à un clignotement visible par des JVN.
+ La balise IR permet de signaler votre position grâce à 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.
@@ -206,4 +206,4 @@
%1<br/>отсоединен(-а)
-
\ No newline at end of file
+
diff --git a/addons/backpacks/config.cpp b/addons/backpacks/config.cpp
index ddc7639921..278e3ac452 100644
--- a/addons/backpacks/config.cpp
+++ b/addons/backpacks/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
- author[] = {"bux","commy2"};
- authorUrl = "https://github.com/commy2/";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"bux","commy2"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/backpacks/functions/fnc_isBackpack.sqf b/addons/backpacks/functions/fnc_isBackpack.sqf
index d6b0fb1071..aa12b85ad9 100644
--- a/addons/backpacks/functions/fnc_isBackpack.sqf
+++ b/addons/backpacks/functions/fnc_isBackpack.sqf
@@ -12,7 +12,7 @@
*/
#include "script_component.hpp"
-params [["_backpack", objNull, [objNull]]];
+params [["_backpack", objNull, [objNull, ""]]];
if (_backpack isEqualType objNull) then {
_backpack = typeOf _backpack;
diff --git a/addons/ballistics/CfgMagazines.hpp b/addons/ballistics/CfgMagazines.hpp
index e368381333..931a6c2309 100644
--- a/addons/ballistics/CfgMagazines.hpp
+++ b/addons/ballistics/CfgMagazines.hpp
@@ -83,7 +83,7 @@ class CfgMagazines {
descriptionShort = CSTRING(30Rnd_556x45_mag_Tracer_DimDescription);
picture = "\A3\weapons_f\data\ui\m_20stanag_red_ca.paa";
};
-
+
class 20Rnd_762x51_Mag: CA_Magazine {
initSpeed = 833;
};
@@ -121,7 +121,7 @@ class CfgMagazines {
descriptionShort = CSTRING(20Rnd_762x51_mag_SDDescription);
initSpeed = 325;
};
-
+
class ACE_10Rnd_762x51_M118LR_Mag: 10Rnd_762x51_Mag {
author = ECSTRING(common,ACETeam);
ammo = "ACE_762x51_Ball_M118LR";
@@ -247,7 +247,7 @@ class CfgMagazines {
descriptionShort = CSTRING(10Rnd_338_API526_Mag_Description);
initSpeed = 880;
};
-
+
class 5Rnd_127x108_Mag;
class ACE_5Rnd_127x99_Mag: 5Rnd_127x108_Mag {
author = ECSTRING(common,ACETeam);
@@ -273,8 +273,8 @@ class CfgMagazines {
descriptionShort = CSTRING(5Rnd_127x99_AMAX_Mag_Description);
initSpeed = 860;
};
-
-
+
+
class 30Rnd_9x21_Mag: CA_Magazine {
initSpeed = 450;
};
@@ -286,27 +286,27 @@ class CfgMagazines {
descriptionShort = CSTRING(30Rnd_9x19_mag_Description);
initSpeed = 370;
};
-
+
class 11Rnd_45ACP_Mag: CA_Magazine {
initSpeed = 250;
};
-
+
class 6Rnd_45ACP_Cylinder : 11Rnd_45ACP_Mag {
initSpeed = 250;
};
-
+
class 30Rnd_45ACP_Mag_SMG_01: 30Rnd_9x21_Mag {
initSpeed = 250;
};
-
+
class 9Rnd_45ACP_Mag: 30Rnd_45ACP_Mag_SMG_01 {
initSpeed = 250;
};
-
+
class 30Rnd_45ACP_Mag_SMG_01_Tracer_Green: 30Rnd_45ACP_Mag_SMG_01 {
initSpeed = 250;
};
-
+
class 16Rnd_9x21_Mag: 30Rnd_9x21_Mag {
initSpeed = 450;
};
@@ -318,7 +318,7 @@ class CfgMagazines {
descriptionShort = CSTRING(16Rnd_9x19_mag_Description);
initSpeed = 370;
};
-
+
class 10Rnd_762x54_Mag: 10Rnd_762x51_Mag {
initSpeed = 800;
};
@@ -331,15 +331,15 @@ class CfgMagazines {
initSpeed = 800;
tracersEvery = 1;
};
-
+
class 150Rnd_762x54_Box: 150Rnd_762x51_Box {
initSpeed = 750;
};
-
+
class 150Rnd_93x64_Mag: CA_Magazine {
initSpeed = 860;
};
-
+
class 10Rnd_127x54_Mag: CA_Magazine {
initSpeed = 300;
};
diff --git a/addons/ballistics/CfgWeapons.hpp b/addons/ballistics/CfgWeapons.hpp
index 3f6835bbba..1cd705f63f 100644
--- a/addons/ballistics/CfgWeapons.hpp
+++ b/addons/ballistics/CfgWeapons.hpp
@@ -15,81 +15,81 @@ class CfgWeapons {
class Rifle_Base_F;
class Rifle_Long_Base_F;
class MuzzleSlot;
-
+
/* Long Rifles */
-
+
class GM6_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
};
-
+
class LRR_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00020; // radians. Equal to 0.70 MOA.
};
};
-
+
class DMR_06_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
-
+
class FullAuto: Mode_FullAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
};
-
+
class DMR_05_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
-
+
class FullAuto: Mode_FullAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
};
-
+
class DMR_04_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
};
-
+
class DMR_03_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
};
-
+
class FullAuto: Mode_FullAuto {
dispersion = 0.00032; // radians. Equal to 1.10 MOA.
};
};
-
+
class DMR_02_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.000262; // radians. Equal to 0.90 MOA.
};
};
-
+
class DMR_01_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.0004; // radians. Equal to 1.375 MOA.
};
};
-
+
class EBR_base_F: Rifle_Long_Base_F {
class Single: Mode_SemiAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
-
+
class FullAuto: Mode_FullAuto {
dispersion = 0.00029; // radians. Equal to 1.00 MOA.
};
};
-
+
/* MX */
-
+
class arifle_MX_Base_F: Rifle_Base_F {};
class arifle_MX_SW_F: arifle_MX_Base_F {
magazines[] = {
@@ -158,7 +158,7 @@ class CfgWeapons {
class Burst: Mode_Burst {
dispersion = 0.0008727; // radians. Equal to 3 MOA.
};
-
+
class FullAuto: Mode_FullAuto {
dispersion = 0.0008727; // radians. Equal to 3 MOA.
};
@@ -285,6 +285,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -305,6 +307,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -320,6 +324,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -335,6 +341,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -356,6 +364,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -371,6 +381,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -386,6 +398,8 @@ class CfgWeapons {
"30Rnd_556x45_Stanag_Tracer_Red",
"30Rnd_556x45_Stanag_Tracer_Green",
"30Rnd_556x45_Stanag_Tracer_Yellow",
+ "30Rnd_556x45_Stanag_red",
+ "30Rnd_556x45_Stanag_green",
"ACE_30Rnd_556x45_Stanag_M995_AP_mag",
"ACE_30Rnd_556x45_Stanag_Mk262_mag",
"ACE_30Rnd_556x45_Stanag_Mk318_mag",
@@ -511,7 +525,7 @@ class CfgWeapons {
ACE_barrelTwist=234.95;
ACE_barrelLength=609.6;
};
-
+
class HMG_127 : LMG_RCWS {
};
class HMG_01: HMG_127 {
@@ -521,7 +535,7 @@ class CfgWeapons {
ACE_barrelTwist=304.8;
ACE_barrelLength=1143.0;
};
-
+
/* Silencers */
class ItemCore;
diff --git a/addons/ballistics/config.cpp b/addons/ballistics/config.cpp
index 768ba63e02..59c29f0a7f 100644
--- a/addons/ballistics/config.cpp
+++ b/addons/ballistics/config.cpp
@@ -6,7 +6,9 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_common"};
- author[] = {"commy2","Ruthberg"};
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"commy2","Ruthberg"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/ballistics/scripts/initTargetWall.sqf b/addons/ballistics/scripts/initTargetWall.sqf
index d9b16eec10..0ce3950de1 100644
--- a/addons/ballistics/scripts/initTargetWall.sqf
+++ b/addons/ballistics/scripts/initTargetWall.sqf
@@ -11,5 +11,5 @@ if (local _wall) then {
_paper attachTo [_wall, [0,-0.02,0.6]];
_paper setDir getDir _wall;
- _paper setObjectTextureGlobal [0, QUOTE(PATHTOF(textures\target_ca.paa))];
+ _paper setObjectTextureGlobal [0, QPATHTOF(textures\target_ca.paa)];
};
diff --git a/addons/ballistics/stringtable.xml b/addons/ballistics/stringtable.xml
index 39bbac1726..b51303fa6d 100644
--- a/addons/ballistics/stringtable.xml
+++ b/addons/ballistics/stringtable.xml
@@ -1,4 +1,4 @@
-
+
diff --git a/addons/captives/CfgVehicles.hpp b/addons/captives/CfgVehicles.hpp
index a8215c0cdc..2afa1cfea4 100644
--- a/addons/captives/CfgVehicles.hpp
+++ b/addons/captives/CfgVehicles.hpp
@@ -10,7 +10,7 @@ class CfgVehicles {
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
exceptions[] = {};
- icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
+ icon = QPATHTOF(UI\handcuff_ca.paa);
};
class ACE_MainActions {
@@ -21,7 +21,7 @@ class CfgVehicles {
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
exceptions[] = {};
- icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
+ icon = QPATHTOF(UI\handcuff_ca.paa);
};
class ACE_EscortCaptive {
displayName = CSTRING(EscortCaptive);
@@ -30,7 +30,7 @@ class CfgVehicles {
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
exceptions[] = {};
showDisabled = 0;
- icon = QUOTE(PATHTOF(UI\captive_ca.paa));
+ icon = QPATHTOF(UI\captive_ca.paa);
priority = 2.3;
};
class ACE_StopEscorting {
@@ -40,7 +40,7 @@ class CfgVehicles {
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
exceptions[] = {"isNotEscorting"};
showDisabled = 0;
- icon = QUOTE(PATHTOF(UI\captive_ca.paa));
+ icon = QPATHTOF(UI\captive_ca.paa);
priority = 2.3;
};
class ACE_LoadCaptive {
@@ -50,7 +50,7 @@ class CfgVehicles {
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
exceptions[] = {"isNotEscorting"};
showDisabled = 0;
- icon = QUOTE(PATHTOF(UI\captive_ca.paa));
+ icon = QPATHTOF(UI\captive_ca.paa);
priority = 2.2;
};
class GVAR(UnloadCaptive) {
@@ -79,7 +79,7 @@ class CfgVehicles {
exceptions[] = {};
showDisabled = 0;
priority = 0;
- icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
+ icon = QPATHTOF(UI\Surrender_ca.paa);
};
class ACE_StopSurrenderingSelf {
displayName = CSTRING(StopSurrendering);
@@ -88,7 +88,7 @@ class CfgVehicles {
exceptions[] = {"isNotSurrendering"};
showDisabled = 0;
priority = 0;
- icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
+ icon = QPATHTOF(UI\Surrender_ca.paa);
};
};
};
@@ -154,7 +154,7 @@ class CfgVehicles {
scope = 2; //show in editor
isGlobal = 0; //run on server
isTriggerActivated = 1; //Wait for triggers
- icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa);
functionPriority = 0;
class Arguments {};
class ModuleDescription: ModuleDescription {
@@ -170,7 +170,7 @@ class CfgVehicles {
scope = 2; //show in editor
isGlobal = 0; //run on server
isTriggerActivated = 1; //Wait for triggers
- icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa);
functionPriority = 0;
class Arguments {};
class ModuleDescription: ModuleDescription {
@@ -186,7 +186,7 @@ class CfgVehicles {
displayName = CSTRING(ModuleSettings_DisplayName);
function = QFUNC(moduleSettings);
scope = 2;
- icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_settings_ca.paa);
isGlobal = 1;
isSingular = 1;
class Arguments {
diff --git a/addons/captives/CfgWeapons.hpp b/addons/captives/CfgWeapons.hpp
index 7092962519..1b65a0a4bf 100644
--- a/addons/captives/CfgWeapons.hpp
+++ b/addons/captives/CfgWeapons.hpp
@@ -5,8 +5,8 @@ class CfgWeapons {
class ACE_CableTie: ACE_ItemCore {
displayName = CSTRING(CableTie);
descriptionShort = CSTRING(CableTieDescription);
- model = QUOTE(PATHTOF(models\ace_cabletie.p3d));
- picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa));
+ model = QPATHTOF(models\ace_cabletie.p3d);
+ picture = QPATHTOF(UI\ace_cabletie_ca.paa);
scope = 2;
class ItemInfo: InventoryItem_Base_F {
mass = 1;
diff --git a/addons/captives/XEH_postInit.sqf b/addons/captives/XEH_postInit.sqf
index 144d3efb9a..567a107697 100644
--- a/addons/captives/XEH_postInit.sqf
+++ b/addons/captives/XEH_postInit.sqf
@@ -1,5 +1,11 @@
#include "script_component.hpp"
+["SettingsInitialized", {
+ // Hold on a little bit longer to ensure anims will work
+ [{
+ GVAR(captivityEnabled) = true;
+ }, [], 0.05] call CBA_fnc_waitAndExecute;
+}] call EFUNC(common,addEventHandler);
//Handles when someone starts escorting and then disconnects, leaving the captive attached
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
@@ -33,10 +39,3 @@ if (!hasInterface) exitWith {};
["isNotEscorting", {!(GETVAR(_this select 0,GVAR(isEscorting),false))}] call EFUNC(common,addCanInteractWithCondition);
["isNotHandcuffed", {!(GETVAR(_this select 0,GVAR(isHandcuffed),false))}] call EFUNC(common,addCanInteractWithCondition);
["isNotSurrendering", {!(GETVAR(_this select 0,GVAR(isSurrendering),false))}] call EFUNC(common,addCanInteractWithCondition);
-
-["SettingsInitialized", {
- // Hold on a little bit longer to ensure anims will work
- [{
- GVAR(captivityEnabled) = true;
- }, [], 0.05] call EFUNC(common,waitAndExecute);
-}] call EFUNC(common,addEventHandler);
diff --git a/addons/captives/config.cpp b/addons/captives/config.cpp
index c87408b341..a73b604fb2 100644
--- a/addons/captives/config.cpp
+++ b/addons/captives/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {"ACE_CableTie"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ACE_Interaction"};
- author[] = {"commy2", "KoffeinFlummi"};
- authorUrl = "https://github.com/commy2/";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"commy2", "KoffeinFlummi"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/captives/functions/fnc_doEscortCaptive.sqf b/addons/captives/functions/fnc_doEscortCaptive.sqf
index 484151853b..e0d3ae8fa6 100644
--- a/addons/captives/functions/fnc_doEscortCaptive.sqf
+++ b/addons/captives/functions/fnc_doEscortCaptive.sqf
@@ -37,7 +37,7 @@ if (_state) then {
[{
params ["_args", "_pfID"];
_args params ["_unit", "_target", "_actionID"];
-
+
if (_unit getVariable [QGVAR(isEscorting), false]) then {
if (!alive _target || {!alive _unit} || {!canStand _target} || {!canStand _unit} || {_target getVariable ["ACE_isUnconscious", false]} || {_unit getVariable ["ACE_isUnconscious", false]} || {!isNull (attachedTo _unit)}) then {
_unit setVariable [QGVAR(isEscorting), false, true];
diff --git a/addons/captives/functions/fnc_moduleHandcuffed.sqf b/addons/captives/functions/fnc_moduleHandcuffed.sqf
index dcb59ff2a1..9d3079262a 100644
--- a/addons/captives/functions/fnc_moduleHandcuffed.sqf
+++ b/addons/captives/functions/fnc_moduleHandcuffed.sqf
@@ -32,7 +32,7 @@ if (!isServer) exitWith {};
TRACE_2("event",_x,local _x);
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
} forEach _units;
-}, [_units], 0.05] call EFUNC(common,waitAndExecute);
+}, [_units], 0.05] call CBA_fnc_waitAndExecute;
if (!isNull _logic) then {
deleteVehicle _logic;
diff --git a/addons/captives/functions/fnc_moduleSurrender.sqf b/addons/captives/functions/fnc_moduleSurrender.sqf
index 29659b351e..a15d2e4165 100644
--- a/addons/captives/functions/fnc_moduleSurrender.sqf
+++ b/addons/captives/functions/fnc_moduleSurrender.sqf
@@ -32,7 +32,7 @@ if (!isServer) exitWith {};
TRACE_2("event",_x,local _x);
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
} forEach _units;
-}, [_units], 0.05] call EFUNC(common,waitAndExecute);
+}, [_units], 0.05] call CBA_fnc_waitAndExecute;
if (!isNull _logic) then {
deleteVehicle _logic;
diff --git a/addons/captives/functions/fnc_setHandcuffed.sqf b/addons/captives/functions/fnc_setHandcuffed.sqf
index d4f84730e6..58291d0689 100644
--- a/addons/captives/functions/fnc_setHandcuffed.sqf
+++ b/addons/captives/functions/fnc_setHandcuffed.sqf
@@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
// It's to soon to call this function, delay it
if (EGVAR(common,settingsInitFinished)) then {
// Settings are already initialized, but the small wait isn't over
- [DFUNC(setHandCuffed), _this, 0.05] call EFUNC(common,waitAndExecute);
+ [DFUNC(setHandCuffed), _this, 0.05] call CBA_fnc_waitAndExecute;
} else {
// Settings are not initialized yet
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
@@ -98,7 +98,7 @@ if (_state) then {
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
- }, [_unit], 0.01] call EFUNC(common,waitAndExecute);
+ }, [_unit], 0.01] call CBA_fnc_waitAndExecute;
} else {
_unit setVariable [QGVAR(isHandcuffed), false, true];
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
diff --git a/addons/captives/functions/fnc_setSurrendered.sqf b/addons/captives/functions/fnc_setSurrendered.sqf
index ffc3c35081..6fc4c7b9ab 100644
--- a/addons/captives/functions/fnc_setSurrendered.sqf
+++ b/addons/captives/functions/fnc_setSurrendered.sqf
@@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
// It's to soon to call this function, delay it
if (EGVAR(common,settingsInitFinished)) then {
// Settings are already initialized, but the small wait isn't over
- [DFUNC(setSurrendered), _this, 0.05] call EFUNC(common,waitAndExecute);
+ [DFUNC(setSurrendered), _this, 0.05] call CBA_fnc_waitAndExecute;
} else {
// Settings are not initialized yet
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
@@ -73,7 +73,7 @@ if (_state) then {
}];
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
};
- }, [_unit], 0.01] call EFUNC(common,waitAndExecute);
+ }, [_unit], 0.01] call CBA_fnc_waitAndExecute;
} else {
_unit setVariable [QGVAR(isSurrendering), false, true];
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
@@ -103,7 +103,7 @@ if (_state) then {
params ["_args", "_pfID"];
_args params ["_unit", "_maxTime"];
//If waited long enough or they re-surrendered or they are unconscious, exit loop
- if ((ACE_time > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
+ if ((CBA_missionTime > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
[_pfID] call CBA_fnc_removePerFrameHandler;
};
//Only break animation if they are actualy the "hands up" animation (because we are using switchmove there won't be an transition)
@@ -112,7 +112,7 @@ if (_state) then {
//Break out of hands up animation loop
[_unit, "ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
};
- }, 0, [_unit, (ACE_time + 20)]] call CBA_fnc_addPerFrameHandler;
+ }, 0, [_unit, (CBA_missionTime + 20)]] call CBA_fnc_addPerFrameHandler;
};
};
diff --git a/addons/captives/stringtable.xml b/addons/captives/stringtable.xml
index 52ed203fed..4044723c4a 100644
--- a/addons/captives/stringtable.xml
+++ b/addons/captives/stringtable.xml
@@ -201,7 +201,7 @@
Synchronizovat s jednotkou, která má být v poutech.Sincronizza un'unità per metterle le manette.Sincroniza una unidad para hacer que esté esposada.
- Synchronise une unité pour la rendre captive.
+ Synchronisez une unité pour la rendre captive.Captives Settings
@@ -234,7 +234,7 @@
Může spoutat spolubojovníkyKann Kameraden fesselnPode algemar o próprio lado
- Peut menotter sa propre faction
+ Peut capturer sa propre factionSaját oldal megbilincselhetőСвязать союзникаPuoi ammanettare unità alleate
@@ -295,7 +295,7 @@
Requiere que los Jugadores se rindan antes de arrestarlosVyžaduje, aby se hráč nejdříve vzdal, poté může být spoutánI giocatori devono arrendersi prima che possano essere arrestati
- Requiert la reddition des joueurs avant qu'ils ne puissent être arrêtés
+ Requiert la capitulation des joueurs avant qu'ils ne puissent être arrêtésSurrendering only
@@ -317,7 +317,7 @@
Rendición o desarmeVzdávání nebo beze zbraněResa o senza armi
- Reddition ou désarmement
+ Capitulation ou desarmé
-
\ No newline at end of file
+
diff --git a/addons/cargo/CfgEventHandlers.hpp b/addons/cargo/CfgEventHandlers.hpp
index 3f784e7ab4..ff4a88693e 100644
--- a/addons/cargo/CfgEventHandlers.hpp
+++ b/addons/cargo/CfgEventHandlers.hpp
@@ -27,27 +27,7 @@ class Extended_Killed_EventHandlers {
//Need initPost or we have problems with setVariable with 'ACE_Cargo'
class Extended_InitPost_EventHandlers {
- class StaticWeapon {
- class ADDON {
- init = QUOTE(_this call DFUNC(initObject));
- };
- };
- class ReammoBox_F {
- class ADDON {
- init = QUOTE(_this call DFUNC(initObject));
- };
- };
- class Cargo_base_F {
- class ADDON {
- init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
- };
- };
- class CargoNet_01_box_F {
- class ADDON {
- init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
- };
- };
- class Land_CargoBox_V1_F {
+ class ThingX {
class ADDON {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
};
@@ -57,27 +37,17 @@ class Extended_InitPost_EventHandlers {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
};
};
- class RoadCone_F {
+ class PlasticCase_01_base_F {
class ADDON {
init = QUOTE(_this call DFUNC(initObject); _this call DFUNC(initVehicle));
};
};
- class Car {
+ class LandVehicle {
class ADDON {
init = QUOTE(_this call DFUNC(initVehicle));
};
};
- class Tank {
- class ADDON {
- init = QUOTE(_this call DFUNC(initVehicle));
- };
- };
- class Helicopter {
- class ADDON {
- init = QUOTE(_this call DFUNC(initVehicle));
- };
- };
- class Plane {
+ class Air {
class ADDON {
init = QUOTE(_this call DFUNC(initVehicle));
};
@@ -87,16 +57,6 @@ class Extended_InitPost_EventHandlers {
init = QUOTE(_this call DFUNC(initVehicle));
};
};
- class ACE_RepairItem_Base {
- class ADDON {
- init = QUOTE(_this call DFUNC(initObject));
- };
- };
- class ACE_bodyBagObject {
- class ADDON {
- init = QUOTE(_this call DFUNC(initObject));
- };
- };
class ACE_ConcertinaWireCoil {
class ADDON {
init = QUOTE(_this call DFUNC(initObject));
diff --git a/addons/cargo/CfgVehicles.hpp b/addons/cargo/CfgVehicles.hpp
index 9104533302..43412b7b72 100644
--- a/addons/cargo/CfgVehicles.hpp
+++ b/addons/cargo/CfgVehicles.hpp
@@ -1,3 +1,6 @@
+
+class CBA_Extended_EventHandlers;
+
class CfgVehicles {
class Logic;
class Module_F: Logic {
@@ -7,7 +10,7 @@ class CfgVehicles {
class ACE_moduleCargoSettings: ACE_Module {
scope = 2;
displayName = CSTRING(SettingsModule_DisplayName);
- icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_Cargo_ca.paa);
category = "ACE_Logistics";
function = QFUNC(moduleSettings);
functionPriority = 1;
@@ -33,7 +36,7 @@ class CfgVehicles {
class GVAR(makeLoadable): ACE_Module {
scope = 2;
displayName = CSTRING(makeLoadable_displayName);
- icon = QUOTE(PATHTOF(UI\Icon_Module_makeLoadable_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_makeLoadable_ca.paa);
category = "ACE_Logistics";
function = QFUNC(moduleMakeLoadable);
isGlobal = 1;
@@ -191,12 +194,69 @@ class CfgVehicles {
GVAR(hasCargo) = 1;
};
- class Heli_Transport_02_base_F;
- class I_Heli_Transport_02_F : Heli_Transport_02_base_F {
+ class Helicopter_Base_H;
+ class Heli_Light_01_base_F: Helicopter_Base_H {
+ GVAR(space) = 0;
+ GVAR(hasCargo) = 0;
+ };
+
+ class Heli_Light_02_base_F: Helicopter_Base_H {
+ GVAR(space) = 4;
+ };
+
+ class Helicopter_Base_F;
+ class Heli_light_03_base_F: Helicopter_Base_F {
+ GVAR(space) = 4;
+ };
+
+ class Heli_Transport_01_base_F: Helicopter_Base_H {
+ GVAR(space) = 8;
+ };
+
+ class Heli_Transport_02_base_F: Helicopter_Base_H {
+ GVAR(space) = 20;
+ };
+
+ class Heli_Transport_03_base_F: Helicopter_Base_H {
+ GVAR(space) = 40;
+ };
+
+ class Heli_Transport_04_base_F: Helicopter_Base_H {
+ GVAR(space) = 0;
+ GVAR(hasCargo) = 0;
+ };
+
+ class O_Heli_Transport_04_box_F: Heli_Transport_04_base_F {
GVAR(space) = 20;
GVAR(hasCargo) = 1;
};
+ class O_Heli_Transport_04_repair_F: Heli_Transport_04_base_F {
+ GVAR(space) = 12;
+ GVAR(hasCargo) = 1;
+ };
+
+ class O_Heli_Transport_04_ammo_F: Heli_Transport_04_base_F {
+ GVAR(space) = 8;
+ GVAR(hasCargo) = 1;
+ };
+
+ class O_Heli_Transport_04_fuel_F: Heli_Transport_04_base_F {};
+
+ class O_Heli_Transport_04_medevac_F: Heli_Transport_04_base_F {
+ GVAR(space) = 8;
+ GVAR(hasCargo) = 1;
+ };
+
+ class Heli_Attack_01_base_F: Helicopter_Base_F {
+ GVAR(space) = 0;
+ GVAR(hasCargo) = 0;
+ };
+
+ class Heli_Attack_02_base_F: Helicopter_Base_F {
+ GVAR(space) = 4;
+ };
+
// jets
class Plane: Air {
GVAR(space) = 0;
@@ -204,7 +264,6 @@ class CfgVehicles {
};
// autonomus
- class Helicopter_Base_F;
class UAV_01_base_F: Helicopter_Base_F {
GVAR(space) = 0;
GVAR(hasCargo) = 0;
@@ -245,6 +304,26 @@ class CfgVehicles {
GVAR(canLoad) = 1;
};
+ // Taru pods
+ class Pod_Heli_Transport_04_base_F;
+ class Land_Pod_Heli_Transport_04_ammo_F: Pod_Heli_Transport_04_base_F {
+ GVAR(space) = 8;
+ GVAR(hasCargo) = 1;
+ };
+ class Land_Pod_Heli_Transport_04_box_F: Pod_Heli_Transport_04_base_F {
+ GVAR(space) = 20;
+ GVAR(hasCargo) = 1;
+ };
+ class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F {
+ GVAR(space) = 12;
+ GVAR(hasCargo) = 1;
+ };
+ class Pod_Heli_Transport_04_crewed_base_F;
+ class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F {
+ GVAR(space) = 8;
+ GVAR(hasCargo) = 1;
+ };
+
class StaticMortar;
class Mortar_01_base_F: StaticMortar {
GVAR(size) = 2; // 1 = small, 2 = large
@@ -253,6 +332,7 @@ class CfgVehicles {
// Ammo boxes
class ThingX;
+ class Items_base_F;
class ReammoBox_F: ThingX {
GVAR(size) = 2; // 1 = small, 2 = large
GVAR(canLoad) = 1;
@@ -275,6 +355,23 @@ class CfgVehicles {
class Slingload_01_Base_F: Slingload_base_F { //Huron 20ft containers
GVAR(canLoad) = 0;
};
+
+ //Plastic and metal case
+ class PlasticCase_01_base_F: Items_base_F {
+ GVAR(size) = 1; // 1 = small, 2 = large
+ GVAR(canLoad) = 1;
+ };
+ class Land_PlasticCase_01_large_F: PlasticCase_01_base_F {
+ GVAR(size) = 2; // 1 = small, 2 = large
+ };
+ class MetalCase_01_base_F: Items_base_F {
+ GVAR(size) = 1; // 1 = small, 2 = large
+ GVAR(canLoad) = 1;
+ };
+ class Land_MetalCase_01_large_F: MetalCase_01_base_F {
+ GVAR(size) = 2; // 1 = small, 2 = large
+ };
+
// objects
class RoadCone_F: ThingX {
GVAR(size) = 1;
@@ -284,14 +381,16 @@ class CfgVehicles {
GVAR(size) = 2;
};
-
class Scrapyard_base_F;
class Land_PaperBox_closed_F: Scrapyard_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 10;
GVAR(hasCargo) = 1;
GVAR(size) = 11;
GVAR(canLoad) = 1;
- XEH_ENABLED;
class ACE_Actions {
class ACE_MainActions {
@@ -323,163 +422,253 @@ class CfgVehicles {
};
};
class Cargo10_base_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 14;
GVAR(size) = 15;
- XEH_ENABLED;
};
class Land_Cargo20_blue_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_brick_red_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_cyan_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_grey_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_light_blue_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_light_green_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_military_green_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Ruins_F;
class Land_Cargo20_military_ruins_F: Ruins_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_orange_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_red_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_sand_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_vr_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_white_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo20_yellow_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 49;
GVAR(size) = 50;
- XEH_ENABLED;
};
class Land_Cargo40_blue_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_brick_red_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_cyan_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_grey_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_light_blue_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_light_green_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_military_green_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_military_ruins_F: Ruins_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_orange_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_red_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_sand_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_vr_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_white_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
class Land_Cargo40_yellow_F: Cargo_base_F {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 99;
GVAR(size) = 100;
- XEH_ENABLED;
};
// small
class Land_CargoBox_V1_F: ThingX {
+ class EventHandlers {
+ class CBA_Extended_EventHandlers: CBA_Extended_EventHandlers {};
+ };
+
GVAR(space) = 7;
GVAR(hasCargo) = 1;
GVAR(size) = 7;
- XEH_ENABLED;
class ACE_Actions {
class ACE_MainActions {
diff --git a/addons/cargo/config.cpp b/addons/cargo/config.cpp
index 1aefa49616..860eff0d99 100644
--- a/addons/cargo/config.cpp
+++ b/addons/cargo/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
- author[] = {"commy2", "Glowbal"};
- authorUrl = "https://ace3mod.com/";
+ author = ECSTRING(common,ACETeam);
+ authors[] = {"commy2", "Glowbal"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG;
};
};
diff --git a/addons/cargo/functions/fnc_initObject.sqf b/addons/cargo/functions/fnc_initObject.sqf
index dc8db802e5..f740d0e371 100644
--- a/addons/cargo/functions/fnc_initObject.sqf
+++ b/addons/cargo/functions/fnc_initObject.sqf
@@ -39,7 +39,7 @@ private _statement = {
[_player, _target] call FUNC(startLoadIn);
};
private _text = localize LSTRING(loadObject);
-private _icon = QUOTE(PATHTOF(UI\Icon_load.paa));
+private _icon = QPATHTOF(UI\Icon_load.paa);
private _action = [QGVAR(load), _text, _icon, _statement, _condition] call EFUNC(interact_menu,createAction);
[_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
diff --git a/addons/cargo/functions/fnc_initVehicle.sqf b/addons/cargo/functions/fnc_initVehicle.sqf
index c0b312146b..7e19b0acd0 100644
--- a/addons/cargo/functions/fnc_initVehicle.sqf
+++ b/addons/cargo/functions/fnc_initVehicle.sqf
@@ -20,6 +20,8 @@ TRACE_1("params", _vehicle);
private _type = typeOf _vehicle;
+if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
+
if (isServer) then {
{
if (isClass _x) then {
@@ -38,7 +40,6 @@ if (_type in GVAR(initializedVehicleClasses)) exitWith {};
GVAR(initializedVehicleClasses) pushBack _type;
if (!hasInterface) exitWith {};
-if (getNumber (configFile >> "CfgVehicles" >> _type >> QGVAR(hasCargo)) != 1) exitWith {};
TRACE_1("Adding unload cargo action to class", _type);
diff --git a/addons/cargo/stringtable.xml b/addons/cargo/stringtable.xml
index 2b6ce0be17..6a4cf5acfb 100644
--- a/addons/cargo/stringtable.xml
+++ b/addons/cargo/stringtable.xml
@@ -65,7 +65,7 @@
Povolit nákladHabilitar cargaAbilita Cargo
- Activer mise en cargaison
+ Activer la cargaisonEnable the load in cargo module
@@ -76,7 +76,7 @@
Habilitar la carga en el módulo de cargaUmožňuje naložit předměty do nákladového prostoru vozidlaAbilita il modulo di caricamento in cargo
- Active
+ Activer le chargement dans le module de cargaison.Cargo Settings
@@ -87,7 +87,7 @@
Nastavení nákladuAjustes de cargaImpostazioni Cargo
- Options de cargaison
+ Réglages de cargaisonConfigure the cargo module settings
@@ -98,7 +98,7 @@
Configure los ajustes del módulo de cargaKonfigurace nákladního moduluConfigura le impostazioni del modulo cargo
- Configure les options du module de cargaison
+ Configurer les réglages du module de cargaison%1<br/>loaded into<br/>%2
@@ -133,7 +133,7 @@
ПогрузкаCaricandoCargando
- Chargement cargaison
+ Chargement de la cargaisonUnloading Cargo
@@ -144,7 +144,7 @@
ВыгрузкаScaricandoDescargando
- Déchargement cargaison
+ Déchargement de la cargaison%1<br/>could not be loaded
@@ -155,7 +155,7 @@
%1<br/>не может быть погружен%1<br/>non può essere caricato%1<br/>no pudo ser cargado
- %1<br/>ne peut être chargé
+ %1<br /> n'a pas pu être chargé%1<br/>could not be unloaded
@@ -166,7 +166,7 @@
%1<br/>не может быть выгружен%1<br/>non può essere scaricato%1<br/>no pudo ser descargado
- %1<br/>ne peut être déchargé
+ %1<br /> n'a pas pu être déchargéMake Object Loadable
@@ -175,6 +175,7 @@
Rendi oggetto caricabileHacer objeto cargableRendre l'objet chargeable
+ Vytvořit objekt nakladatelnýmFazer objeto carregável
@@ -183,7 +184,8 @@
Ustawia zsynchronizowany obiekt jako możliwy do załadowania poprzez system cargoImposta l'oggetto sincronizzato come caricabile dal sistema cargoSincronizar un objecto para hacerlo cargable.
- Rend l'objet synchronisé chargeable par le système de cargaison.
+ Rend l'objet synchronisé comme chargeable par le système de cargaison.
+ Nastaví synchronizované objekty nakladatelnými za pomocí Nákladního systému.Seta o objeto sincronizado como carregável
@@ -193,6 +195,7 @@
Dimensioni dell'oggettoTamaño del objetoTaille de l'objet
+ Velikost objektuTamanho do objeto
diff --git a/addons/common/ACE_Settings.hpp b/addons/common/ACE_Settings.hpp
index d6226fd0ab..2d8a5d7a27 100644
--- a/addons/common/ACE_Settings.hpp
+++ b/addons/common/ACE_Settings.hpp
@@ -49,7 +49,7 @@ class ACE_Settings {
description = CSTRING(SettingFeedbackIconsDesc);
values[] = {ECSTRING(optionsmenu,Hide), ECSTRING(optionsmenu,TopRightDown), ECSTRING(optionsmenu,TopRightLeft), ECSTRING(optionsmenu,TopLeftDown), ECSTRING(optionsmenu,TopLeftRight)};
};
- class GVAR(SettingProgressBarLocation) {
+ class GVAR(settingProgressBarLocation) {
value = 0;
typeName = "SCALAR";
force = 0;
diff --git a/addons/common/CfgEventHandlers.hpp b/addons/common/CfgEventHandlers.hpp
index bdfeccd4fa..beb07e35e7 100644
--- a/addons/common/CfgEventHandlers.hpp
+++ b/addons/common/CfgEventHandlers.hpp
@@ -21,7 +21,7 @@ class Extended_PostInit_EventHandlers {
class Extended_DisplayLoad_EventHandlers {
class RscDisplayMission {
- ADDON = QUOTE(_this call COMPILE_FILE(XEH_mainDislayLoad));
+ ADDON = QUOTE(_this call COMPILE_FILE(XEH_missionDisplayLoad));
};
};
@@ -33,7 +33,7 @@ class Extended_InitPost_EventHandlers {
};
class CAManBase {
class GVAR(setName) {
- init = QUOTE(if (local (_this select 0)) then {_this call FUNC(setName)};);
+ init = QUOTE(if (local (_this select 0)) then {[ARR_2(FUNC(setName),_this)] call CBA_fnc_execNextFrame};);
};
class GVAR(muteUnit) {
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
@@ -76,3 +76,9 @@ class Extended_FiredBIS_EventHandlers {
ADDON = QUOTE(_this call FUNC(firedEH));
};
};
+
+class Extended_Engine_EventHandlers {
+ class All {
+ ADDON = QUOTE(_this call FUNC(handleEngine));
+ };
+};
diff --git a/addons/common/CfgUnitInsignia.hpp b/addons/common/CfgUnitInsignia.hpp
index c1cd541e9c..337baa4235 100644
--- a/addons/common/CfgUnitInsignia.hpp
+++ b/addons/common/CfgUnitInsignia.hpp
@@ -3,13 +3,13 @@ class CfgUnitInsignia {
class ACE_insignia_logo {
displayName = "ACE3";
author = CSTRING(ACETeam);
- texture = PATHTOF(data\Insignia_ace3logo_ca.paa);
+ texture = QPATHTOF(data\Insignia_ace3logo_ca.paa);
textureVehicle = "";
};
class ACE_insignia_banana {
displayName = "ABE3";
author = CSTRING(ACETeam);
- texture = PATHTOF(data\insignia_banana_ca.paa);
+ texture = QPATHTOF(data\insignia_banana_ca.paa);
textureVehicle = "";
};
};
diff --git a/addons/common/CfgVehicles.hpp b/addons/common/CfgVehicles.hpp
index de1f7f7cf4..1e958027be 100644
--- a/addons/common/CfgVehicles.hpp
+++ b/addons/common/CfgVehicles.hpp
@@ -36,7 +36,7 @@ class CfgVehicles {
scope = 2;
isGlobal = 1;
isSingular = 1;
- icon = QUOTE(PATHTOF(UI\Icon_Module_CheckPBO_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_CheckPBO_ca.paa);
class Arguments {
class Action {
displayName = CSTRING(CheckPBO_Action_DisplayName);
@@ -82,7 +82,7 @@ class CfgVehicles {
displayName = CSTRING(LSDVehicles_DisplayName);
function = "ACE_Common_fnc_moduleLSDVehicles";
scope = 2;
- icon = QUOTE(PATHTOF(UI\Icon_Module_LSD_ca.paa));
+ icon = QPATHTOF(UI\Icon_Module_LSD_ca.paa);
isGlobal = 1;
class Arguments {};
class ModuleDescription: ModuleDescription {
@@ -132,7 +132,7 @@ class CfgVehicles {
class ACE_Headbug_Fix: Bicycle {
scope = 1;
side = 3;
- model = PATHTOF(data\ACE_HeadBanger.p3d);
+ model = QPATHTOF(data\ACE_HeadBanger.p3d);
//model = QPATHTO_M(ACE_HeadBanger.p3d);
author = CSTRING(ACETeam);
displayName = " ";
diff --git a/addons/common/CfgWeapons.hpp b/addons/common/CfgWeapons.hpp
index 22075e2903..488d4210c4 100644
--- a/addons/common/CfgWeapons.hpp
+++ b/addons/common/CfgWeapons.hpp
@@ -34,8 +34,8 @@ class CfgWeapons {
scope = 2;
displayName = CSTRING(bananaDisplayName);
descriptionShort = CSTRING(bananaDescr);
- model = PATHTOF(data\banana.p3d);
- picture = PATHTOF(data\icon_banana_ca.paa);
+ model = QPATHTOF(data\banana.p3d);
+ picture = QPATHTOF(data\icon_banana_ca.paa);
icon = "iconObject_circle";
mapSize = 0.034;
class ItemInfo: InventoryItem_Base_F {
diff --git a/addons/common/RscInfoType.hpp b/addons/common/RscInfoType.hpp
index 327a9814d1..32bc0b698f 100644
--- a/addons/common/RscInfoType.hpp
+++ b/addons/common/RscInfoType.hpp
@@ -15,7 +15,7 @@ class RscInGameUI {
class RscUnitInfoTank: RscUnitInfo {
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgVehicle', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Vehicle')])] call FUNC(localEvent););
};
-
+
class RscUnitInfoAirNoWeapon: RscUnitInfo {
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscUnitInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2('ACE_dlgAircraft', _this select 0)]; [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Aircraft')])] call FUNC(localEvent););
};
@@ -111,4 +111,8 @@ class RscInGameUI {
class RscStaminaBar {
onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStaminaBar"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); uiNamespace setVariable [ARR_2(QUOTE(QGVAR(dlgStaminaBar)),_this select 0)]);
};
+
+ class RscStanceInfo {
+ onLoad = QUOTE([ARR_4(""onLoad"",_this,""RscStanceInfo"",'IGUI')] call (uinamespace getvariable 'BIS_fnc_initDisplay'); [ARR_2('infoDisplayChanged', [ARR_2(_this select 0, 'Stance')])] call FUNC(localEvent););
+ };
};
diff --git a/addons/common/XEH_PREP.hpp b/addons/common/XEH_PREP.hpp
index 0b125af1aa..857a754f6a 100644
--- a/addons/common/XEH_PREP.hpp
+++ b/addons/common/XEH_PREP.hpp
@@ -24,6 +24,7 @@ PREP(debugModule);
PREP(defineVariable);
PREP(deviceKeyFindValidIndex);
PREP(deviceKeyRegisterNew);
+PREP(deprecateComponent);
PREP(disableAI);
PREP(disableUserInput);
PREP(displayIcon);
@@ -87,6 +88,7 @@ PREP(getWindDirection);
PREP(getZoom);
PREP(goKneeling);
PREP(hadamardProduct);
+PREP(handleEngine);
PREP(handleModifierKey);
PREP(handleModifierKeyUp);
PREP(handleScrollWheel);
@@ -276,5 +278,3 @@ PREP(hashListCreateHash);
PREP(hashListSelect);
PREP(hashListSet);
PREP(hashListPush);
-
-PREP(timePFH);
diff --git a/addons/common/XEH_mainDislayLoad.sqf b/addons/common/XEH_missionDisplayLoad.sqf
similarity index 74%
rename from addons/common/XEH_mainDislayLoad.sqf
rename to addons/common/XEH_missionDisplayLoad.sqf
index 57ace32f94..a07c301288 100644
--- a/addons/common/XEH_mainDislayLoad.sqf
+++ b/addons/common/XEH_missionDisplayLoad.sqf
@@ -1,6 +1,4 @@
#include "script_component.hpp"
-GVAR(ScrollWheelFrame) = diag_frameno;
-
call COMPILE_FILE(init_handleScrollWheel);
call COMPILE_FILE(init_handleModifierKey);
diff --git a/addons/common/XEH_postInit.sqf b/addons/common/XEH_postInit.sqf
index 58e674dd8d..5a85452b1b 100644
--- a/addons/common/XEH_postInit.sqf
+++ b/addons/common/XEH_postInit.sqf
@@ -3,47 +3,6 @@
// #define DEBUG_MODE_FULL
#include "script_component.hpp"
-
-//////////////////////////////////////////////////
-// PFHs
-//////////////////////////////////////////////////
-
-//Singe PFEH to handle execNextFrame, waitAndExec and waitUntilAndExec:
-[{
- BEGIN_COUNTER(waitAndExec);
-
- //Handle the waitAndExec array:
- while {!(GVAR(waitAndExecArray) isEqualTo []) && {GVAR(waitAndExecArray) select 0 select 0 <= ACE_Time}} do {
- private _entry = GVAR(waitAndExecArray) deleteAt 0;
- (_entry select 2) call (_entry select 1);
- };
-
- //Handle the execNextFrame array:
- {
- (_x select 0) call (_x select 1);
- false
- } count GVAR(nextFrameBufferA);
-
- //Swap double-buffer:
- GVAR(nextFrameBufferA) = GVAR(nextFrameBufferB);
- GVAR(nextFrameBufferB) = [];
- GVAR(nextFrameNo) = diag_frameno + 1;
-
- //Handle the waitUntilAndExec array:
- {
- // if condition is satisifed call statement
- if ((_x select 2) call (_x select 0)) then {
- // make sure to delete the correct handle when multiple conditions are met in one frame
- GVAR(waitUntilAndExecArray) deleteAt (GVAR(waitUntilAndExecArray) find _x);
- (_x select 2) call (_x select 1);
- };
- nil
- } count +GVAR(waitUntilAndExecArray);
-
- END_COUNTER(waitAndExec);
-}, 0, []] call CBA_fnc_addPerFrameHandler;
-
-
//////////////////////////////////////////////////
// Get Map Data
//////////////////////////////////////////////////
@@ -64,6 +23,7 @@
["blockSprint", false, []] call FUNC(statusEffect_addType);
["setCaptive", true, [QEGVAR(captives,Handcuffed), QEGVAR(captives,Surrendered), QEGVAR(medical,unconscious)]] call FUNC(statusEffect_addType);
["blockDamage", false, ["fixCollision"]] call FUNC(statusEffect_addType);
+["blockEngine", false, ["ACE_Refuel"]] call FUNC(statusEffect_addType);
["forceWalk", {
params ["_object", "_set"];
@@ -90,6 +50,11 @@
_object allowDamage (_set == 0);
};
}] call FUNC(addEventHandler);
+["blockEngine", {
+ params ["_vehicle", "_set"];
+ _vehicle setVariable [QGVAR(blockEngine), _set > 0, true];
+ _vehicle engineOn false;
+}] call FUNC(addEventHandler);
//Add a fix for BIS's zeus remoteControl module not reseting variables on DC when RC a unit
//This variable is used for isPlayer checks
@@ -133,6 +98,7 @@ if (isServer) then {
["fixFloating", FUNC(fixFloating)] call FUNC(addEventhandler);
["fixPosition", FUNC(fixPosition)] call FUNC(addEventhandler);
+["loadPersonEvent", FUNC(loadPersonLocal)] call FUNC(addEventhandler);
["unloadPersonEvent", FUNC(unloadPersonLocal)] call FUNC(addEventhandler);
["lockVehicle", {
@@ -146,16 +112,27 @@ if (isServer) then {
["setDir", {(_this select 0) setDir (_this select 1)}] call FUNC(addEventhandler);
["setFuel", {(_this select 0) setFuel (_this select 1)}] call FUNC(addEventhandler);
+["engineOn", {(_this select 0) engineOn (_this select 1)}] call FUNC(addEventhandler);
["setSpeaker", {(_this select 0) setSpeaker (_this select 1)}] call FUNC(addEventhandler);
["selectLeader", {(_this select 0) selectLeader (_this select 1)}] call FUNC(addEventHandler);
["setVelocity", {(_this select 0) setVelocity (_this select 1)}] call FUNC(addEventHandler);
["playMove", {(_this select 0) playMove (_this select 1)}] call FUNC(addEventHandler);
["playMoveNow", {(_this select 0) playMoveNow (_this select 1)}] call FUNC(addEventHandler);
["switchMove", {(_this select 0) switchMove (_this select 1)}] call FUNC(addEventHandler);
+["setVectorDirAndUp", {(_this select 0) setVectorDirAndUp (_this select 1)}] call FUNC(addEventHandler);
+["setVanillaHitPointDamage", {(_this select 0) setHitPointDamage (_this select 1)}] call FUNC(addEventHandler);
+
+// Request framework
+[QGVAR(requestCallback), FUNC(requestCallback)] call FUNC(addEventHandler);
+[QGVAR(receiveRequest), FUNC(receiveRequest)] call FUNC(addEventHandler);
+
+[QGVAR(systemChatGlobal), {systemChat _this}] call FUNC(addEventHandler);
if (isServer) then {
["hideObjectGlobal", {(_this select 0) hideObjectGlobal (_this select 1)}] call FUNC(addEventHandler);
["enableSimulationGlobal", {(_this select 0) enableSimulationGlobal (_this select 1)}] call FUNC(addEventHandler);
+ ["setOwner", {(_this select 0) setOwner (_this select 1)}] call FUNC(addEventHandler);
+ [QGVAR(serverLog), FUNC(serverLog)] call FUNC(addEventHandler);
};
@@ -323,19 +300,14 @@ enableCamShake true;
GVAR(OldPlayerVehicle) = vehicle objNull;
GVAR(OldPlayerTurret) = [objNull] call FUNC(getTurretIndex);
GVAR(OldPlayerWeapon) = currentWeapon objNull;
-GVAR(OldPlayerInventory) = [objNull] call FUNC(getAllGear);
+GVAR(OldPlayerInventory) = [];
+GVAR(OldPlayerInventoryNoAmmo) = [];
GVAR(OldPlayerVisionMode) = currentVisionMode objNull;
GVAR(OldCameraView) = "";
GVAR(OldVisibleMap) = false;
GVAR(OldInventoryDisplayIsOpen) = nil; //@todo check this
GVAR(OldIsCamera) = false;
-// clean up playerChanged eventhandler from preinit and put it in the same PFH as the other events to reduce overhead and guarantee advantageous execution order
-if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
- [GVAR(PreInit_playerChanged_PFHID)] call CBA_fnc_removePerFrameHandler;
- GVAR(PreInit_playerChanged_PFHID) = nil;
-};
-
// PFH to raise varios events
[{
BEGIN_COUNTER(stateChecker);
@@ -377,11 +349,36 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
};
// "playerInventoryChanged" event
- _data = [ACE_player] call FUNC(getAllGear);
+ _data = getUnitLoadout ACE_player;
if !(_data isEqualTo GVAR(OldPlayerInventory)) then {
// Raise ACE event locally
GVAR(OldPlayerInventory) = _data;
- ["playerInventoryChanged", [ACE_player, _data]] call FUNC(localEvent);
+
+ // we don't want to trigger this just because your ammo counter decreased.
+ _data = + GVAR(OldPlayerInventory);
+
+ private _weaponInfo = _data param [0, []];
+ if !(_weaponInfo isEqualTo []) then {
+ _weaponInfo set [4, primaryWeaponMagazine ACE_player];
+ _weaponInfo deleteAt 5;
+ };
+
+ _weaponInfo = _data param [1, []];
+ if !(_weaponInfo isEqualTo []) then {
+ _weaponInfo set [4, secondaryWeaponMagazine ACE_player];
+ _weaponInfo deleteAt 5;
+ };
+
+ _weaponInfo = _data param [2, []];
+ if !(_weaponInfo isEqualTo []) then {
+ _weaponInfo set [4, handgunMagazine ACE_player];
+ _weaponInfo deleteAt 5;
+ };
+
+ if !(_data isEqualTo GVAR(OldPlayerInventoryNoAmmo)) then {
+ GVAR(OldPlayerInventoryNoAmmo) = _data;
+ ["playerInventoryChanged", [ACE_player, [ACE_player, false] call FUNC(getAllGear)]] call FUNC(localEvent);
+ };
};
// "playerVisionModeChanged" event
@@ -442,6 +439,11 @@ if (!isNil QGVAR(PreInit_playerChanged_PFHID)) then {
// Add various canInteractWith conditions
//////////////////////////////////////////////////
+["isNotDead", {
+ params ["_unit", "_target"];
+ alive _unit
+}] call FUNC(addCanInteractWithCondition);
+
["notOnMap", {!visibleMap}] call FUNC(addCanInteractWithCondition);
["isNotInside", {
diff --git a/addons/common/XEH_preInit.sqf b/addons/common/XEH_preInit.sqf
index 20b3692b9f..0c2922ea64 100644
--- a/addons/common/XEH_preInit.sqf
+++ b/addons/common/XEH_preInit.sqf
@@ -23,13 +23,6 @@ DFUNC(selectWeaponMode) = {
GVAR(syncedEvents) = HASH_CREATE;
GVAR(showHudHash) = [] call FUNC(hashCreate);
-//GVARS for execNextFrame and waitAndExec and waitUntilAndExecute
-GVAR(waitAndExecArray) = [];
-GVAR(nextFrameNo) = diag_frameno;
-GVAR(nextFrameBufferA) = [];
-GVAR(nextFrameBufferB) = [];
-GVAR(waitUntilAndExecArray) = [];
-
GVAR(settingsInitFinished) = false;
GVAR(runAtSettingsInitialized) = [];
@@ -46,44 +39,15 @@ if (isServer) then {
GVAR(statusEffect_Names) = [];
GVAR(statusEffect_isGlobal) = [];
+GVAR(setHearingCapabilityMap) = [];
+
//////////////////////////////////////////////////
-// Set up PlayerChanged eventhandler for pre init
+// Set up PlayerChanged eventhandler for pre init (EH is installed in postInit)
//////////////////////////////////////////////////
ACE_player = objNull;
uiNamespace setVariable ["ACE_player", objNull];
-// @todo check if this can be removed
-if (hasInterface) then {
- // PFH to update the ACE_player variable
- GVAR(PreInit_playerChanged_PFHID) = [{
- if !(ACE_player isEqualTo (call FUNC(player))) then {
- private _oldPlayer = ACE_player;
-
- ACE_player = call FUNC(player);
- uiNamespace setVariable ["ACE_player", ACE_player];
-
- // Raise ACE event
- ["playerChanged", [ACE_player, _oldPlayer]] call FUNC(localEvent);
- };
- }, 0, []] call CBA_fnc_addPerFrameHandler;
-};
-
-
-//////////////////////////////////////////////////
-// Time handling
-//////////////////////////////////////////////////
-
-ACE_time = diag_tickTime;
-ACE_realTime = diag_tickTime;
-ACE_virtualTime = diag_tickTime;
-ACE_diagTime = diag_tickTime;
-ACE_gameTime = time;
-ACE_pausedTime = 0;
-ACE_virtualPausedTime = 0;
-
-[FUNC(timePFH), 0, []] call CBA_fnc_addPerFrameHandler;
-
// Init toHex
[0] call FUNC(toHex);
diff --git a/addons/common/config.cpp b/addons/common/config.cpp
index cbe5c5df6a..2cf6dd4ec9 100644
--- a/addons/common/config.cpp
+++ b/addons/common/config.cpp
@@ -6,8 +6,9 @@ class CfgPatches {
weapons[] = {"ACE_ItemCore","ACE_FakePrimaryWeapon", "ACE_Banana"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_main","ace_modules"};
- author[] = {"KoffeinFlummi"};
- authorUrl = "https://github.com/KoffeinFlummi/";
+ author = CSTRING(ACETeam);
+ authors[] = {"KoffeinFlummi"};
+ url = ECSTRING(main,URL);
VERSION_CONFIG_COMMON;
};
};
diff --git a/addons/common/functions/fnc__handleRequestSyncedEvent.sqf b/addons/common/functions/fnc__handleRequestSyncedEvent.sqf
index 605af2fa85..9d6c062ac2 100644
--- a/addons/common/functions/fnc__handleRequestSyncedEvent.sqf
+++ b/addons/common/functions/fnc__handleRequestSyncedEvent.sqf
@@ -23,7 +23,7 @@ if (isServer) then {
params ["_eventName", "_client"];
if (!HASH_HASKEY(GVAR(syncedEvents),_eventName)) exitWith {
- ACE_LOGERROR("Request for synced event - key not found.");
+ ACE_LOGERROR_1("Request for synced event - key [%1] not found.", _eventName);
false
};
diff --git a/addons/common/functions/fnc__handleSyncedEvent.sqf b/addons/common/functions/fnc__handleSyncedEvent.sqf
index f8fe21d760..c65ccad8b0 100644
--- a/addons/common/functions/fnc__handleSyncedEvent.sqf
+++ b/addons/common/functions/fnc__handleSyncedEvent.sqf
@@ -17,7 +17,7 @@
params ["_name", "_args", "_ttl"];
if (!HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
- ACE_LOGERROR("Synced event key not found.");
+ ACE_LOGERROR_1("Synced event key [%1] not found (_handleSyncedEvent).", _name);
false
};
@@ -29,7 +29,7 @@ if (isServer) then {
_internalData = HASH_GET(GVAR(syncedEvents),_name);
_internalData params ["", "_eventLog"];
- _eventLog pushBack [ACE_diagTime, _args, _ttl];
+ _eventLog pushBack [diag_tickTime, _args, _ttl];
};
};
diff --git a/addons/common/functions/fnc_addActionEventHandler.sqf b/addons/common/functions/fnc_addActionEventHandler.sqf
index fe641010e4..56d2de16db 100644
--- a/addons/common/functions/fnc_addActionEventHandler.sqf
+++ b/addons/common/functions/fnc_addActionEventHandler.sqf
@@ -45,7 +45,7 @@ if (_actionID == -1) then {
private _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)},
+ {[{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)}, _this] call CBA_fnc_directCall},
nil,
-1,
false,
diff --git a/addons/common/functions/fnc_addActionMenuEventHandler.sqf b/addons/common/functions/fnc_addActionMenuEventHandler.sqf
index e68507ae7b..c86cf45f17 100644
--- a/addons/common/functions/fnc_addActionMenuEventHandler.sqf
+++ b/addons/common/functions/fnc_addActionMenuEventHandler.sqf
@@ -52,7 +52,7 @@ _actionIDs pushBack _id;
private _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)}},
+ {[{if (inputAction '%1' == 0) then {if (_this call (%3 select 2)) then {_this call (%3 select 3)}} else {_this call (%3 select 1)}}, _this] call CBA_fnc_directCall},
nil,
%4,
false,
diff --git a/addons/common/functions/fnc_addScrollWheelEventHandler.sqf b/addons/common/functions/fnc_addScrollWheelEventHandler.sqf
index aef88543be..2a9b26e71c 100644
--- a/addons/common/functions/fnc_addScrollWheelEventHandler.sqf
+++ b/addons/common/functions/fnc_addScrollWheelEventHandler.sqf
@@ -15,6 +15,8 @@
params ["_statement"];
+ACE_DEPRECATED("ace_common_fnc_addScrollWheelEventHandler", "3.8.0", "'MouseZChanged' Display EventHandler");
+
if (_statement isEqualType "") then {
_statement = compile _statement;
};
diff --git a/addons/common/functions/fnc_addSyncedEventHandler.sqf b/addons/common/functions/fnc_addSyncedEventHandler.sqf
index 0964e419bc..126bb6a957 100644
--- a/addons/common/functions/fnc_addSyncedEventHandler.sqf
+++ b/addons/common/functions/fnc_addSyncedEventHandler.sqf
@@ -10,6 +10,9 @@
* Return Value:
* Boolean of success
*
+ * Example:
+ * ["myEvent", {_this call x}, 0] call ace_common_fnc_addSyncedEventHandler
+ *
* Public: Yes
*/
#include "script_component.hpp"
@@ -17,7 +20,7 @@
params ["_name", "_handler", ["_ttl", 0]];
if (HASH_HASKEY(GVAR(syncedEvents),_name)) exitWith {
- ACE_LOGERROR("Duplicate synced event creation.");
+ ACE_LOGERROR_1("Duplicate synced event [%1] creation.",_name);
false
};
diff --git a/addons/common/functions/fnc_assignedItemFix.sqf b/addons/common/functions/fnc_assignedItemFix.sqf
index d93409ce7c..18dd6b4e0c 100644
--- a/addons/common/functions/fnc_assignedItemFix.sqf
+++ b/addons/common/functions/fnc_assignedItemFix.sqf
@@ -29,39 +29,17 @@ GVAR(AssignedItemsShownItems) = [
];
["playerInventoryChanged", {
- params ["_unit", "_assignedItems"];
+ params ["_unit"];
- _assignedItems = _assignedItems select 17;
+ private _assignedItems = getUnitLoadout _unit param [9, ["","","","","",""]]; // ["ItemMap","ItemGPS","ItemRadio","ItemCompass","ItemWatch","NVGoggles"]
- GVAR(AssignedItemsShownItems) = [true, true, true, true, true];
-
- {
- if !(_x in GVAR(AssignedItems)) then {
- GVAR(AssignedItems) pushBack _x;
- GVAR(AssignedItemsInfo) pushBack toLower getText (configFile >> "CfgWeapons" >> _x >> "ACE_hideItemType");
- };
-
- switch (GVAR(AssignedItemsInfo) select (GVAR(AssignedItems) find _x)) do {
- case ("map"): {
- GVAR(AssignedItemsShownItems) set [0, false];
- };
- case ("compass"): {
- GVAR(AssignedItemsShownItems) set [1, false];
- };
- case ("watch"): {
- GVAR(AssignedItemsShownItems) set [2, false];
- };
- case ("radio"): {
- GVAR(AssignedItemsShownItems) set [3, false];
- };
- case ("gps"): {
- GVAR(AssignedItemsShownItems) set [4, false];
- };
- };
- false
- } count _assignedItems;
-
- //systemChat str GVAR(AssignedItemsShownItems);
+ GVAR(AssignedItemsShownItems) = [
+ !((_assignedItems select 0) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 0 >> "ACE_hideItemType") != "map"},
+ !((_assignedItems select 3) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 3 >> "ACE_hideItemType") != "compass"},
+ !((_assignedItems select 4) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 4 >> "ACE_hideItemType") != "watch"},
+ !((_assignedItems select 2) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 2 >> "ACE_hideItemType") != "radio"},
+ !((_assignedItems select 1) isEqualTo "") && {getText (configFile >> "CfgWeapons" >> _assignedItems select 1 >> "ACE_hideItemType") != "gps"}
+ ];
GVAR(AssignedItemsShownItems) params ["_showMap", "_showCompass", "_showWatch", "_showRadio", "_showGPS"];
diff --git a/addons/common/functions/fnc_binocularMagazine.sqf b/addons/common/functions/fnc_binocularMagazine.sqf
index b5f4f0558e..aacac7c142 100644
--- a/addons/common/functions/fnc_binocularMagazine.sqf
+++ b/addons/common/functions/fnc_binocularMagazine.sqf
@@ -15,18 +15,6 @@
*/
#include "script_component.hpp"
-params [["_unit", objNull, [objNull]]];
+ACE_DEPRECATED("ace_common_fnc_binocularMagazine","3.8.0","CBA_fnc_binocularMagazine");
-private _binocular = binocular _unit;
-
-scopeName "main";
-
-{
- if ((_x select 0) isEqualTo _binocular) then {
- // note: if there is no magazine, _x(4,0) will be nil, which skips the breakOut.
- (_x select 4 select 0) breakOut "main";
- };
- false
-} count weaponsitems _unit;
-
-""
+_this call CBA_fnc_binocularMagazine
diff --git a/addons/common/functions/fnc_cachedCall.sqf b/addons/common/functions/fnc_cachedCall.sqf
index 2c7cdd4b27..6160dfd090 100644
--- a/addons/common/functions/fnc_cachedCall.sqf
+++ b/addons/common/functions/fnc_cachedCall.sqf
@@ -19,8 +19,8 @@
params ["_params", "_function", "_namespace", "_uid", "_duration", "_event"];
-if ((_namespace getVariable [_uid, [-99999]]) select 0 < ACE_diagTime) then {
- _namespace setVariable [_uid, [ACE_diagTime + _duration, _params call _function]];
+if ((_namespace getVariable [_uid, [-99999]]) select 0 < diag_tickTime) then {
+ _namespace setVariable [_uid, [diag_tickTime + _duration, _params call _function]];
// Does the cache needs to be cleared on an event?
if (!isNil "_event") then {
diff --git a/addons/common/functions/fnc_checkFiles.sqf b/addons/common/functions/fnc_checkFiles.sqf
index 19a4c6f72a..1f3a26db7d 100644
--- a/addons/common/functions/fnc_checkFiles.sqf
+++ b/addons/common/functions/fnc_checkFiles.sqf
@@ -19,6 +19,18 @@ private _version = getText (configFile >> "CfgPatches" >> "ace_main" >> "version
ACE_LOGINFO_1("ACE is version %1.",_version);
+//CBA Versioning check - close main display if using incompatible version
+private _cbaVersionAr = getArray (configFile >> "CfgPatches" >> "cba_main" >> "versionAr");
+private _cbaRequiredAr = (getArray (configFile >> "CfgSettings" >> "CBA" >> "Versioning" >> "ACE" >> "dependencies" >> "CBA")) select 1;
+ACE_LOGINFO_2("CBA is version %1 [min required %2]",_cbaVersionAr,_cbaRequiredAr);
+if ([_cbaRequiredAr, _cbaVersionAr] call cba_versioning_fnc_version_compare) then {
+ private _errorMsg = format ["CBA Version [%1] is outdated [required %2]", _cbaVersionAr, _cbaRequiredAr];
+ ACE_LOGERROR(_errorMsg);
+ if (hasInterface) then {
+ ["[ACE] ERROR", _errorMsg, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
+ };
+};
+
//private _addons = activatedAddons; // broken with High-Command module, see #2134
private _addons = "true" configClasses (configFile >> "CfgPatches");//
_addons = _addons apply {toLower configName _x};//
diff --git a/addons/common/functions/fnc_checkPBOs.sqf b/addons/common/functions/fnc_checkPBOs.sqf
index f447d126af..1e6eac7887 100644
--- a/addons/common/functions/fnc_checkPBOs.sqf
+++ b/addons/common/functions/fnc_checkPBOs.sqf
@@ -61,7 +61,8 @@ if (!isServer) then {
_error = _error + "Newer version; ";
};
- //[_error, "{systemChat _this}"] call FUNC(execRemoteFnc);
+ //[QGVAR(systemChatGlobal), _error] call FUNC(globalEvent);
+
ACE_LOGERROR(_error);
if (_mode < 2) then {
@@ -79,7 +80,7 @@ if (!isServer) then {
params ["_rscLayer"];
TRACE_2("Hiding Error message after 10 seconds",time,_rscLayer);
_rscLayer cutFadeOut 0.2;
- }, [_rscLayer], 10] call FUNC(waitAndExecute);
+ }, [_rscLayer], 10] call CBA_fnc_waitAndExecute;
};
};
@@ -89,7 +90,7 @@ if (!isServer) then {
TRACE_2("Player is alive, showing msg and exiting",time,_text);
_text = composeText [parseText format ["%1", _text]];
["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
- }, [_text]] call FUNC(waitUntilAndExecute);
+ }, [_text]] call CBA_fnc_waitUntilAndExecute;
};
};
diff --git a/addons/common/functions/fnc_codeToString.sqf b/addons/common/functions/fnc_codeToString.sqf
index b2817cd2b8..b4fe37db35 100644
--- a/addons/common/functions/fnc_codeToString.sqf
+++ b/addons/common/functions/fnc_codeToString.sqf
@@ -12,12 +12,11 @@
*/
#include "script_component.hpp"
-params ["_function"];
+params ["_code"];
+if (_code isEqualType "") exitWith {_code};
-if (_function isEqualType "") exitWith {_function};
+_code = str(_code);
+_code = _code select [1, count _code - 2];
-_function = toArray str _function;
-_function deleteAt 0;
-_function deleteAt (count _function - 1);
+_code
-toString _function // return
diff --git a/addons/common/functions/fnc_deprecateComponent.sqf b/addons/common/functions/fnc_deprecateComponent.sqf
new file mode 100644
index 0000000000..21905e8e4e
--- /dev/null
+++ b/addons/common/functions/fnc_deprecateComponent.sqf
@@ -0,0 +1,63 @@
+/*
+ * Author: Glowbal
+ * Mark a component as deprecated and switches it to a new component if that is available
+ *
+ * Arguments:
+ * 0: Component
+ * 1: New component
+ * 2: Version when the compent will be removed
+ *
+ * Return Value:
+ * Replaced by new component
+ *
+ * Public: No
+ *
+ * Example:
+ * [["ace_sitting", "ace_sitting_enabled"], ["acex_sitting", "acex_sitting_enabled"], "3.7.0"] call ace_common_fnc_deprecateComponent;
+ */
+#include "script_component.hpp"
+
+params ["_oldComponent", "_newComponent", "_version"];
+
+_oldComponent params ["_oldComponentName", "_oldSettingName"];
+_newComponent params ["_newComponentName", "_newSettingName"];
+
+private _isReplacementAvailable = isClass (configFile >> "CfgPatches" >> _newComponentName);
+private _isDeprecatedLoaded = missionNamespace getvariable [_oldSettingName, false];
+private _isReplacementLoaded = missionNamespace getvariable [_newSettingName, false];
+
+if (_isDeprecatedLoaded && {_isReplacementAvailable} && {!_isReplacementLoaded}) then {
+ [_newSettingName, true, true, true] call FUNC(setSetting);
+};
+
+if (_isDeprecatedLoaded && {!_isReplacementLoaded}) then {
+ private _componentVersion = getText (configFile >> "CfgPatches" >> _oldComponentName >> "version");
+ ((_componentVersion splitString ".") apply {parseNumber _x}) params ["_componentMajor", "_componentMinor", "_componentPatch"];
+ ((_version splitString ".") apply {parseNumber _x}) params ["_major", "_minor", "_patch"];
+
+ switch (true) do {
+ case (_componentMajor >= _major && {_componentMinor >= _minor} && {_componentPatch >= _patch}): { // Removed from this version
+ private _message = format[
+ "Component %1 is deprecated. It has been replaced by %2. The component %1 is no longer usable on this version. ", _oldComponentName, _newComponentName, _version];
+ systemChat format["ACE [ERROR] - %1", _message];
+ ACE_LOGERROR(_message);
+ };
+ case (_componentMajor >= _major && {_componentMinor >= _minor-1}): { // Removed the next this version
+ private _message = format[
+ "Component %1 is deprecated. It is replaced by %2. Please disable %1 and make use of %2. "
+ + "The component (%1) will no longer be available from version %3 and later.", _oldComponentName, _newComponentName, _version];
+ systemChat format["ACE [WARNING] - %1", _message];
+ ACE_LOGWARNING(_message);
+ };
+ case (_componentMajor == _major && {_componentMinor >= _minor - 2}): { // we are in a version leading up to removal
+ private _message = format[
+ "Component %1 is deprecated. It is replaced by %2. Please disable %1 and make use of %2. "
+ + "The component (%1) will no longer be available from version %3 and later.", _oldComponentName, _newComponentName, _version];
+ ACE_LOGWARNING(_message);
+ };
+ default {
+ };
+ };
+};
+
+_isReplacementAvailable;
diff --git a/addons/common/functions/fnc_deviceKeyRegisterNew.sqf b/addons/common/functions/fnc_deviceKeyRegisterNew.sqf
index 416eef2c77..ce012fc3aa 100644
--- a/addons/common/functions/fnc_deviceKeyRegisterNew.sqf
+++ b/addons/common/functions/fnc_deviceKeyRegisterNew.sqf
@@ -13,7 +13,7 @@
* None
*
* Example:
- * [(localize "STR_ACE_microdagr_itemName"), QUOTE(PATHTOF(images\microDAGR_item.paa)), _conditionCode, _toggleCode, _closeCode] call ace_common_fnc_deviceKeyRegisterNew
+ * [(localize "STR_ACE_microdagr_itemName"), QPATHTOF(images\microDAGR_item.paa), _conditionCode, _toggleCode, _closeCode] call ace_common_fnc_deviceKeyRegisterNew
*
* Public: No
*/
diff --git a/addons/common/functions/fnc_displayIcon.sqf b/addons/common/functions/fnc_displayIcon.sqf
index c51b3bd454..e4f824791a 100644
--- a/addons/common/functions/fnc_displayIcon.sqf
+++ b/addons/common/functions/fnc_displayIcon.sqf
@@ -14,7 +14,7 @@
* None
*
* Example:
- * ["myID", true, QUOTE(PATHTOF(data\icon_group.paa)), [1,1,1,1], 0] call ace_gui_fnc_displayIcon;
+ * ["myID", true, QPATHTOF(data\icon_group.paa), [1,1,1,1], 0] call ace_gui_fnc_displayIcon;
*
* Public: Yes
*/
@@ -89,11 +89,11 @@ private _refresh = {
if (_show) then {
if ({_x select 0 == _iconId} count _list == 0) then {
- _list pushBack [_iconId, _icon, _color, ACE_time];
+ _list pushBack [_iconId, _icon, _color, CBA_missionTime];
} else {
{
if (_x select 0 == _iconId) exitWith {
- _list set [_forEachIndex, [_iconId, _icon, _color, ACE_time]];
+ _list set [_forEachIndex, [_iconId, _icon, _color, CBA_missionTime]];
};
} forEach _list;
};
@@ -104,7 +104,7 @@ if (_show) then {
if (_timeAlive >= 0) then {
[{
[_this select 0, false, "", [0,0,0], 0] call FUNC(displayIcon);
- }, [_iconId], _timeAlive, _timeAlive] call FUNC(waitAndExecute);
+ }, [_iconId], _timeAlive, _timeAlive] call CBA_fnc_waitAndExecute;
};
} else {
diff --git a/addons/common/functions/fnc_displayText.sqf b/addons/common/functions/fnc_displayText.sqf
index 3c68327535..ee22f6949a 100644
--- a/addons/common/functions/fnc_displayText.sqf
+++ b/addons/common/functions/fnc_displayText.sqf
@@ -25,7 +25,7 @@ if !(typeName _text in ["STRING", "TEXT"]) then {_text = str _text};
GVAR(lastHint) params ["_lastHintTime", "_lastHintPriority"];
-private _time = ACE_time;
+private _time = CBA_missionTime;
if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
hintSilent _text;
@@ -33,5 +33,5 @@ if (_time > _lastHintTime + _delay || {_priority >= _lastHintPriority}) then {
GVAR(lastHint) set [0, _time];
GVAR(lastHint) set [1, _priority];
- [{if ((_this select 0) == GVAR(lastHint) select 0) then {hintSilent ""};}, [_time], _delay, 0] call FUNC(waitAndExecute);
+ [{if ((_this select 0) == GVAR(lastHint) select 0) then {hintSilent ""};}, [_time], _delay, 0] call CBA_fnc_waitAndExecute;
};
diff --git a/addons/common/functions/fnc_dumpPerformanceCounters.sqf b/addons/common/functions/fnc_dumpPerformanceCounters.sqf
index bdc4588b05..afb71b423a 100644
--- a/addons/common/functions/fnc_dumpPerformanceCounters.sqf
+++ b/addons/common/functions/fnc_dumpPerformanceCounters.sqf
@@ -21,7 +21,7 @@ if (!isNil "ACE_PFH_COUNTER") then {
private _isActive = ["ACTIVE", "REMOVED"] select isNil {CBA_common_PFHhandles select (_pfh select 0)};
- diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
+ diag_log text format ["Registered PFH: id=%1 [%2, delay %3], %4:%5", _pfh select 0, _isActive, _parameters select 1, _pfh select 1, _pfh select 2];
false
} count ACE_PFH_COUNTER;
};
@@ -42,7 +42,7 @@ diag_log text format ["-------------------------------------------"];
if (_iter > 2) then {
_count = _count + 1;
private _delta = (_x select 1) - (_x select 0);
-
+
_total = _total + _delta;
};
@@ -54,7 +54,7 @@ diag_log text format ["-------------------------------------------"];
_averageResult = (_total / _count) * 1000;
// dump results
- diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult];
+ diag_log text format ["%1: Average: %2s / %3 = %4ms", _counterEntry select 0, _total, _count, _averageResult];
} else {
diag_log text format ["%1: No results", _counterEntry select 0];
};
@@ -68,7 +68,7 @@ diag_log text format["-------------------------------------------"];
{
private _delay = _x select 2;
//if(_delay > 0) then { _delay = _delay / 1000; };
-
+
diag_log text format["%1: %2s, delay=%3, handle=%4",(_x select 0), _delay, (_x select 3), (_x select 4)];
} forEach ACE_PERFORMANCE_EXCESSIVE_STEP_TRACKER;
diff --git a/addons/common/functions/fnc_execNextFrame.sqf b/addons/common/functions/fnc_execNextFrame.sqf
index 7b3f034c6d..c1c4b81592 100644
--- a/addons/common/functions/fnc_execNextFrame.sqf
+++ b/addons/common/functions/fnc_execNextFrame.sqf
@@ -13,10 +13,6 @@
*/
#include "script_component.hpp"
-params ["_func", "_params"];
+ACE_DEPRECATED("ace_common_fnc_execNextFrame","3.8.0","CBA_fnc_execNextFrame");
-if (diag_frameno != GVAR(nextFrameNo)) then {
- GVAR(nextFrameBufferA) pushBack [_params, _func];
-} else {
- GVAR(nextFrameBufferB) pushBack [_params, _func];
-};
+_this call CBA_fnc_execNextFrame;
diff --git a/addons/common/functions/fnc_findUnloadPosition.sqf b/addons/common/functions/fnc_findUnloadPosition.sqf
index f7155fd87b..c3b0dc3f34 100644
--- a/addons/common/functions/fnc_findUnloadPosition.sqf
+++ b/addons/common/functions/fnc_findUnloadPosition.sqf
@@ -92,6 +92,15 @@ while {_rangeToCheck < _maxDistance} do {
private _point1ASL = (AGLtoASL _roundAGL) vectorAdd [_radiusOfItem * cos _angle, _radiusOfItem * sin _angle, 0.1];
private _point2ASL = (AGLtoASL _roundAGL) vectorAdd [-_radiusOfItem * cos _angle, -_radiusOfItem * sin _angle, (_radiusOfItem + 0.5)];
private _testIntersections = lineIntersectsSurfaces [_point1ASL, _point2ASL];
+ if (((count _testIntersections) == 1) && {isNull ((_testIntersections select 0) select 2)}) then {
+ private _hitGroundASL = (_testIntersections select 0) select 0;
+ private _hitHeightOffset = ((AGLtoASL _roundAGL) select 2) - (_hitGroundASL select 2);
+ private _hit2dOffset = _roundAGL distance2D _hitGroundASL;
+ private _slope = _hitHeightOffset atan2 _hit2dOffset;
+ if (_slope < 25) then { //Ignore ground hit if slope is reasonable
+ _testIntersections = [];
+ };
+ };
if (!(_testIntersections isEqualTo [])) exitWith {
TRACE_2("collision low/high",_roundAGL,_testIntersections);
_roundPointIsValid = false;
diff --git a/addons/common/functions/fnc_fixCollision.sqf b/addons/common/functions/fnc_fixCollision.sqf
index c0cf7b93e7..3b3b16a9f9 100644
--- a/addons/common/functions/fnc_fixCollision.sqf
+++ b/addons/common/functions/fnc_fixCollision.sqf
@@ -19,4 +19,4 @@ if (!local _this) exitWith {};
[_this, "blockDamage", "fixCollision", true] call FUNC(statusEffect_set);
// re-allow damage after 2 seconds
-[{[_this, "blockDamage", "fixCollision", false] call FUNC(statusEffect_set);}, _this, 2] call EFUNC(common,waitAndExecute);
+[{[_this, "blockDamage", "fixCollision", false] call FUNC(statusEffect_set);}, _this, 2] call CBA_fnc_waitAndExecute;
diff --git a/addons/common/functions/fnc_fixPosition.sqf b/addons/common/functions/fnc_fixPosition.sqf
index e2e2d71059..689512d925 100644
--- a/addons/common/functions/fnc_fixPosition.sqf
+++ b/addons/common/functions/fnc_fixPosition.sqf
@@ -16,6 +16,16 @@
// setVectorUp requires local object
if (!local _this) exitWith {};
+if ((getText (configFile >> "CfgVehicles" >> (typeOf _this) >> "simulation")) == "house") then {
+ //Houses don't have gravity/physics, so make sure they are not floating
+ private _posAbove = (getPos _this) select 2;
+ TRACE_2("house",_this,_posAbove);
+ if (_posAbove > 0.1) then {
+ private _newPosASL = (getPosASL _this) vectorDiff [0,0,_posAbove];
+ _this setPosASL _newPosASL;
+ };
+};
+
private _position = getPos _this;
// don't place the object below the ground
diff --git a/addons/common/functions/fnc_getAllGear.sqf b/addons/common/functions/fnc_getAllGear.sqf
index 715966b176..de6ea62dff 100644
--- a/addons/common/functions/fnc_getAllGear.sqf
+++ b/addons/common/functions/fnc_getAllGear.sqf
@@ -33,7 +33,11 @@
*/
#include "script_component.hpp"
-params ["_unit"];
+params ["_unit", ["_showDeprecated", true]];
+
+if (_showDeprecated) then {
+ ACE_DEPRECATED("ace_common_fnc_getAllGear","3.7.0","getUnitLoadout");
+};
if (isNull _unit) exitWith {[
"",
@@ -60,5 +64,5 @@ if (isNull _unit) exitWith {[
handgunWeapon _unit, handgunItems _unit, handgunMagazine _unit,
assignedItems _unit,
binocular _unit,
- [_unit] call FUNC(binocularMagazine)
+ [_unit] call CBA_fnc_binocularMagazine
]
diff --git a/addons/common/functions/fnc_getConfigType.sqf b/addons/common/functions/fnc_getConfigType.sqf
index 1496cfa2b9..34aaa03172 100644
--- a/addons/common/functions/fnc_getConfigType.sqf
+++ b/addons/common/functions/fnc_getConfigType.sqf
@@ -12,12 +12,6 @@
*/
#include "script_component.hpp"
-params ["_item"];
+ACE_DEPRECATED("ace_common_fnc_getConfigType","3.8.0","CBA_fnc_getItemConfig");
-if (isClass (configFile >> "CfgWeapons" >> _item)) exitWith {"CfgWeapons"};
-
-if (isClass (configFile >> "CfgMagazines" >> _item)) exitWith {"CfgMagazines"};
-
-if (isClass (configFile >> "CfgGlasses" >> _item)) exitWith {"CfgGlasses"};
-
-""
+configName (configHierarchy (_item call CBA_fnc_getItemConfig) param [1, configNull])
diff --git a/addons/common/functions/fnc_getConfigTypeObject.sqf b/addons/common/functions/fnc_getConfigTypeObject.sqf
index 6186ad6bff..92a6d43a42 100644
--- a/addons/common/functions/fnc_getConfigTypeObject.sqf
+++ b/addons/common/functions/fnc_getConfigTypeObject.sqf
@@ -12,10 +12,6 @@
*/
#include "script_component.hpp"
-params ["_object"];
+ACE_DEPRECATED("ace_common_fnc_getConfigTypeObject","3.8.0","CBA_fnc_getObjectConfig");
-if (isClass (configFile >> "CfgVehicles" >> _object)) exitWith {"CfgVehicles"};
-
-if (isClass (configFile >> "CfgAmmo" >> _object)) exitWith {"CfgAmmo"};
-
-""
+configName (configHierarchy (_item call CBA_fnc_getObjectConfig) param [1, configNull])
diff --git a/addons/common/functions/fnc_getItemType.sqf b/addons/common/functions/fnc_getItemType.sqf
index d3eb511949..eb5015e20a 100644
--- a/addons/common/functions/fnc_getItemType.sqf
+++ b/addons/common/functions/fnc_getItemType.sqf
@@ -15,9 +15,11 @@
params ["_item"];
-private _cfgType = [_item] call FUNC(getConfigType);
+private _config = _item call CBA_fnc_getItemConfig;
-if (_cfgType == "") exitWith {["", ""]};
+if (isNull _config) exitWith {["", ""]};
+
+private _cfgType = configName ((configHierarchy _config) param [1, configNull]);
if (_cfgType == "CfgGlasses") exitWith {["item", "glasses"]};
diff --git a/addons/common/functions/fnc_getMGRSdata.sqf b/addons/common/functions/fnc_getMGRSdata.sqf
index ee6d1e11dc..44fc204638 100644
--- a/addons/common/functions/fnc_getMGRSdata.sqf
+++ b/addons/common/functions/fnc_getMGRSdata.sqf
@@ -22,27 +22,81 @@ private _long = getNumber (configFile >> "CfgWorlds" >> _map >> "longitude");
private _lat = getNumber (configFile >> "CfgWorlds" >> _map >> "latitude");
private _altitude = getNumber (configFile >> "CfgWorlds" >> _map >> "elevationOffset");
-if (_map in ["Chernarus", "Bootcamp_ACR", "Woodland_ACR", "utes"]) then { _lat = 50; _altitude = 0; };
-if (_map in ["Altis", "Stratis"]) then { _lat = 40; _altitude = 0; };
-if (_map in ["Takistan", "Zargabad", "Mountains_ACR"]) then { _lat = 35; _altitude = 2000; };
-if (_map in ["Shapur_BAF", "ProvingGrounds_PMC"]) then { _lat = 35; _altitude = 100; };
+_map = toLower _map;
+if (_map in ["abbottabad"]) then { _lat = 34; _altitude = 1256; }; //Abbottabad elevation 1256m (Wikipedia)
+if (_map in ["abramia"]) then { _lat = 60; _altitude = 0; };
+if (_map in ["af_kandahar_province"]) then { _lat = 42; _altitude = 0; };
+if (_map in ["altis"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["angel"]) then { _lat = 38; _altitude = 0; };
+if (_map in ["anim_helvantis_v2"]) then { _lat = 50; _altitude = 0; };
+if (_map in ["australia"]) then { _lat = -25; _altitude = 0; };
+if (_map in ["bootcamp_acr"]) then { _lat = 50; _altitude = 0; };
+if (_map in ["bornholm"]) then { _lat = 55; _altitude = 0; };
+if (_map in ["bozcaada"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["caribou"]) then { _lat = 68; _altitude = 0; };
+if (_map in ["catalina"]) then { _lat = 33; _altitude = 0; };
+if (_map in ["chernarus", "chernarus_summer", "chernarus_winter"]) then { _lat = 50; _altitude = 0; };
+if (_map in ["chernobylzone", "chernobylzonea2"]) then { _lat = 51; _altitude = 0; };
+if (_map in ["clafghan"]) then { _lat = 34; _altitude = 640; };
+if (_map in ["dakrong"]) then { _lat = 17; _altitude = 0; }; //Unsung Mod
+if (_map in ["desert_e"]) then { _lat = 40; _altitude = 800; };
+if (_map in ["dya"]) then { _lat = 34; _altitude = 110; }; //Diyala Iraq - default elevationOffset
+if (_map in ["esseker"]) then { _lat = 43; _altitude = 2000; };
+if (_map in ["evergreen"]) then { _lat = 41; _altitude = 0; }; //Burgazada, Turkey - default elevationOffset
if (_map in ["fallujah"]) then { _lat = 33; _altitude = 0; };
-if (_map in ["fata", "Abbottabad"]) then { _lat = 30; _altitude = 1000; };
-if (_map in ["sfp_wamako"]) then { _lat = 14; _altitude = 0; };
-if (_map in ["sfp_sturko"]) then { _lat = 56; _altitude = 0; };
-if (_map in ["Bornholm"]) then { _lat = 55; _altitude = 0; };
-if (_map in ["Imrali"]) then { _lat = 40; _altitude = 0; };
-if (_map in ["Caribou"]) then { _lat = 68; _altitude = 0; };
-if (_map in ["Namalsk"]) then { _lat = 65; _altitude = 0; };
-if (_map in ["MCN_Aliabad"]) then { _lat = 36; _altitude = 0; };
-if (_map in ["Clafghan"]) then { _lat = 34; _altitude = 640; };
-if (_map in ["Sangin", "hellskitchen"]) then { _lat = 32; _altitude = 0; };
-if (_map in ["Sara"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["fata"]) then { _lat = 33; _altitude = 1347; };
+if (_map in ["gorgona"]) then { _lat = 43; _altitude = 0; };
+if (_map in ["hellskitchen", "hellskitchens"]) then { _lat = 32; _altitude = 900; }; //Sangin summer, Sangin winter - Sangin elevation 888m (Wikipedia)
+if (_map in ["hindukush"]) then { _lat = 36; _altitude = 0; };
+if (_map in ["imrali", "imralispring"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["intro"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["isladuala3"]) then { _lat = -19; _altitude = 0; };
+if (_map in ["jacobi"]) then { _lat = 34; _altitude = 2000; }; //default elevationOffset
+if (_map in ["kapaulio"]) then { _lat = 0; _altitude = 0; };
+if (_map in ["kerama"]) then { _lat = 26; _altitude = 0; }; //Kerama Islands, Japan - default elevationOffset
+if (_map in ["kholm"]) then { _lat = 36; _altitude = 0; };
+if (_map in ["koplic"]) then { _lat = 42; _altitude = 0; };
+if (_map in ["kunduz"]) then { _lat = 37; _altitude = 0; };
+if (_map in ["lingor", "lingor3"]) then { _lat = -4; _altitude = 0; };
+if (_map in ["lost", "lostw"]) then { _lat = 60; _altitude = 0; };
+if (_map in ["mcn_aliabad"]) then { _lat = 36; _altitude = 0; };
+if (_map in ["malvinas"]) then { _lat = -52; _altitude = 0; };
+if (_map in ["namalsk"]) then { _lat = 65; _altitude = 0; };
+if (_map in ["mef_alaska"]) then { _lat = 60; _altitude = 5; };
+if (_map in ["mountains_acr"]) then { _lat = 35; _altitude = 2000; };
+if (_map in ["napf", "napfwinter"]) then { _lat = 47; _altitude = 0; };
+if (_map in ["panthera3"]) then { _lat = 46; _altitude = 0; };
+if (_map in ["pianosa_aut"]) then { _lat = 43; _altitude = 0; }; //Pianosa, Italy - default elevationOffset
+if (_map in ["pja305"]) then { _lat = 0; _altitude = 0; }; //G.O.S N'Ziwasogo
+if (_map in ["pja306"]) then { _lat = 35; _altitude = 0; }; //G.O.S Kalu Khan
+if (_map in ["pja307"]) then { _lat = 17; _altitude = 0; }; //F.S.F Daryah
+if (_map in ["pja308"]) then { _lat = 36; _altitude = 0; }; //G.O.S Gunkizli
+if (_map in ["pja310"]) then { _lat = 36; _altitude = 0; }; //G.O.S Al Rayak
+if (_map in ["pja312"]) then { _lat = 16; _altitude = 0; }; //G.O.S Song Bin Tanh
+if (_map in ["porquerolles"]) then { _lat = 43; _altitude = 0; };
+if (_map in ["porto"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["provinggrounds_pmc"]) then { _lat = 35; _altitude = 100; };
if (_map in ["reshmaan"]) then { _lat = 35; _altitude = 2000; };
-if (_map in ["Thirsk"]) then { _lat = 65; _altitude = 0; };
-if (_map in ["lingor"]) then { _lat = -4; _altitude = 0; };
-if (_map in ["Panthera3"]) then { _lat = 46; _altitude = 0; };
-if (_map in ["Kunduz"]) then { _lat = 37; _altitude = 400; };
+if (_map in ["sara", "sara_dbe1"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["saralite"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["sb3"]) then { _lat = 53; _altitude = 25; }; //TrpUebPl Einfelde Nord (Munster North Training Area, Germany) - default elevationOffset
+if (_map in ["shapur_baf"]) then { _lat = 35; _altitude = 100; };
+if (_map in ["sfp_sturko"]) then { _lat = 56; _altitude = 0; };
+if (_map in ["sfp_wamako"]) then { _lat = 14; _altitude = 0; };
+if (_map in ["stratis"]) then { _lat = 40; _altitude = 0; };
+if (_map in ["sugarlake"]) then { _lat = 29; _altitude = 0; };
+if (_map in ["takistan"]) then { _lat = 35; _altitude = 2000; };
+if (_map in ["thirsk"]) then { _lat = 65; _altitude = 0; };
+if (_map in ["tilos"]) then { _lat = 36; _altitude = 0; };
+if (_map in ["utes"]) then { _lat = 50; _altitude = 0; };
+if (_map in ["vt5"]) then { _lat = 61; _altitude = 100; }; //Vt5, Suomi Finland - default elevationOffset
+if (_map in ["wake"]) then { _lat = 19; _altitude = 0; };
+if (_map in ["waziristan"]) then { _lat = 33; _altitude = 0; };
+if (_map in ["wintermap"]) then { _lat = 61; _altitude = 0; }; //Nordkvingo - default elevationOffset
+if (_map in ["wintertown", "wintertowna3"]) then { _lat = 39; _altitude = 600; }; //U.S. state Kansas mean elevation 610m (Wikipedia)
+if (_map in ["woodland_acr"]) then { _lat = 50; _altitude = 0; };
+if (_map in ["xcam_prototype"]) then { _lat = 35; _altitude = 0; };
+if (_map in ["zargabad"]) then { _lat = 35; _altitude = 2000; };
private _UTM = [_long,_lat] call BIS_fnc_posDegToUTM;
private _easting = _UTM select 0;
diff --git a/addons/common/functions/fnc_getTurretCommander.sqf b/addons/common/functions/fnc_getTurretCommander.sqf
index e73795e148..3e7f09215f 100644
--- a/addons/common/functions/fnc_getTurretCommander.sqf
+++ b/addons/common/functions/fnc_getTurretCommander.sqf
@@ -14,19 +14,4 @@
params [["_vehicle", objNull, [objNull]]];
-private _turrets = allTurrets [_vehicle, true];
-
-private _turret = [];
-
-{
- private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
-
- _config = [_config, _x] call FUNC(getTurretConfigPath);
-
- if (getNumber (_config >> "primaryObserver") == 1) exitWith {
- _turret = _x;
- };
- false
-} count _turrets;
-
-_turret
+fullCrew [_vehicle, "commander", true] apply {_x select 3} param [0, []] // return
diff --git a/addons/common/functions/fnc_getTurretCopilot.sqf b/addons/common/functions/fnc_getTurretCopilot.sqf
index 6161f5c4cc..49002cc40e 100644
--- a/addons/common/functions/fnc_getTurretCopilot.sqf
+++ b/addons/common/functions/fnc_getTurretCopilot.sqf
@@ -14,19 +14,6 @@
params [["_vehicle", objNull, [objNull]]];
-private _turrets = allTurrets [_vehicle, true];
-
-private _turret = [];
-
-{
- private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
-
- _config = [_config, _x] call FUNC(getTurretConfigPath);
-
- if (getNumber (_config >> "isCopilot") == 1 && {getNumber (_config >> "primaryGunner") != 1} && {getNumber (_config >> "primaryObserver") != 1}) exitWith {
- _turret = _x;
- };
- false
-} count _turrets;
-
-_turret
+fullCrew [_vehicle, "turret", true] apply {_x select 3} select {
+ getNumber ([_vehicle, _x] call CBA_fnc_getTurret >> "isCopilot") == 1
+} param [0, []] // return
diff --git a/addons/common/functions/fnc_getTurretGunner.sqf b/addons/common/functions/fnc_getTurretGunner.sqf
index 6f59798cc6..4a26e2c03d 100644
--- a/addons/common/functions/fnc_getTurretGunner.sqf
+++ b/addons/common/functions/fnc_getTurretGunner.sqf
@@ -14,19 +14,4 @@
params [["_vehicle", objNull, [objNull]]];
-private _turrets = allTurrets [_vehicle, true];
-
-private _turret = [];
-
-{
- private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
-
- _config = [_config, _x] call FUNC(getTurretConfigPath);
-
- if (getNumber (_config >> "primaryGunner") == 1) exitWith {
- _turret = _x;
- };
- false
-} count _turrets;
-
-_turret
+fullCrew [_vehicle, "gunner", true] apply {_x select 3} param [0, []] // return
diff --git a/addons/common/functions/fnc_getTurrets.sqf b/addons/common/functions/fnc_getTurrets.sqf
index 229f3ab1f7..0479580764 100644
--- a/addons/common/functions/fnc_getTurrets.sqf
+++ b/addons/common/functions/fnc_getTurrets.sqf
@@ -8,12 +8,14 @@
* Return Value:
* Turret Indecies
*
- * Public: Yes
+ * Public: No
*
* Note: It's advised to use allTurrets [_vehicle, true] instead whenever possible
*/
#include "script_component.hpp"
+ACE_DEPRECATED("ace_common_fnc_getTurrets","3.7.0","allTurrets [_vehicle, true]");
+
params ["_type"];
private _varName = format [QGVAR(CachedTurrets_%1), _type];
diff --git a/addons/common/functions/fnc_getTurretsFFV.sqf b/addons/common/functions/fnc_getTurretsFFV.sqf
index 8c471824cf..5c36e20197 100644
--- a/addons/common/functions/fnc_getTurretsFFV.sqf
+++ b/addons/common/functions/fnc_getTurretsFFV.sqf
@@ -14,19 +14,4 @@
params [["_vehicle", objNull, [objNull]]];
-private _turrets = allTurrets [_vehicle, true];
-
-private _turret = [];
-
-{
- private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
-
- _config = [_config, _x] call FUNC(getTurretConfigPath);
-
- if (getNumber (_config >> "isPersonTurret") == 1) then {
- _turret pushBack _x;
- };
- false
-} count _turrets;
-
-_turret
+fullCrew [_vehicle, "turret", true] select {_x select 4} apply {_x select 3} // return
diff --git a/addons/common/functions/fnc_getTurretsOther.sqf b/addons/common/functions/fnc_getTurretsOther.sqf
index 408a5529d5..ef2a1278dc 100644
--- a/addons/common/functions/fnc_getTurretsOther.sqf
+++ b/addons/common/functions/fnc_getTurretsOther.sqf
@@ -14,24 +14,6 @@
params [["_vehicle", objNull, [objNull]]];
-private _turrets = allTurrets [_vehicle, true];
-
-private _turret = [];
-
-{
- private _config = configFile >> "CfgVehicles" >> typeOf _vehicle;
-
- _config = [_config, _x] call FUNC(getTurretConfigPath);
-
- if (
- getNumber (_config >> "isCopilot") != 1
- && {getNumber (_config >> "primaryGunner") != 1}
- && {getNumber (_config >> "primaryObserver") != 1}
- && {getNumber (_config >> "isPersonTurret") != 1}
- ) then {
- _turret pushBack _x;
- };
- false
-} count _turrets;
-
-_turret
+fullCrew [_vehicle, "turret", true] select {!(_x select 4)} apply {_x select 3} select {
+ getNumber ([_vehicle, _x] call CBA_fnc_getTurret >> "isCopilot") != 1
+} // return
diff --git a/addons/common/functions/fnc_getWeaponMuzzles.sqf b/addons/common/functions/fnc_getWeaponMuzzles.sqf
index d75a01f2e3..e252d879f9 100644
--- a/addons/common/functions/fnc_getWeaponMuzzles.sqf
+++ b/addons/common/functions/fnc_getWeaponMuzzles.sqf
@@ -18,7 +18,7 @@ private _muzzles = getArray (configFile >> "CfgWeapons" >> _weapon >> "muzzles")
{
if (_x == "this") then {
- _muzzles set [_forEachIndex, _weapon];
+ _muzzles set [_forEachIndex, configName (configFile >> "CfgWeapons" >> _weapon)];
};
} forEach _muzzles;
diff --git a/addons/common/functions/fnc_getWeaponState.sqf b/addons/common/functions/fnc_getWeaponState.sqf
index e7b7bb80ec..73e5897236 100644
--- a/addons/common/functions/fnc_getWeaponState.sqf
+++ b/addons/common/functions/fnc_getWeaponState.sqf
@@ -4,7 +4,7 @@
*
* Arguments:
* 0: unit